From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD970C43463 for ; Fri, 18 Sep 2020 06:59:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8F19421534 for ; Fri, 18 Sep 2020 06:59:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.b="OsBPDmJR" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726465AbgIRG7j (ORCPT ); Fri, 18 Sep 2020 02:59:39 -0400 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:36948 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726064AbgIRG7j (ORCPT ); Fri, 18 Sep 2020 02:59:39 -0400 X-Greylist: delayed 2792 seconds by postgrey-1.27 at vger.kernel.org; Fri, 18 Sep 2020 02:59:30 EDT Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 08I6BWae008959; Fri, 18 Sep 2020 02:12:42 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-00128a01.pphosted.com with ESMTP id 33k5p08ead-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Sep 2020 02:12:42 -0400 Received: from m0167090.ppops.net (m0167090.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 08I6Cfc3010460; Fri, 18 Sep 2020 02:12:41 -0400 Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2052.outbound.protection.outlook.com [104.47.37.52]) by mx0b-00128a01.pphosted.com with ESMTP id 33k5p08eaa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Sep 2020 02:12:41 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TdfZUrOa4cPJ1W/nm6Dkqb/V2r/5CAme5StaPNZEjG7Yp1kfEiak7pkX3vB3N907cfCIcpPSuoNEViCxB1CsU+R2imTiK9aXXSHwq4B1SmflRCxONQZlB0hoahGNIArDhqclP1NP8VtuBGbsh8QNZcXqJL/br54RZp4LB5yuiCE4qMyP8WxY0eOzTKL9E2n/rGHxaNSMLUm5QBwtNZMcPVtMCGnREXfbhpEms1jpPOjoCPCAmojiffDECQuOn9XzmJgEufEkN4iHKcjhk97xVKoGnT0y+EJqL4H6Ui+oEz4JkC89ko8t28C4VDtL7rrlpYvjHqMW5hDSxl/v4QHuqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6aNL6Hbblih7/nE4BlYRv3tQG/5/qPyVxKaw4nJcSuU=; b=MH2FHKOP/5bEoc7iS/YITR+KQ9cuBvEz2jEkn/nWDn3V7jT1oeh3yTSrr/VHdCExeGcvMPMJRc6jlPfuzFQrwY5rS03++pzSISIpP8flbp51aYLHMtWrdi5t62AdOZasvdNLsM3eqP7npeo6uPhuA5KWxvV4mpmy0SVp2uBox7+dQh+kdR+pX5z+rZImmPxecJWzG7Mt5AuxpvCwnuoFu7KUs0RmM01XanHC4xE5WXwJFAAhHhjmvTuMsVWs83IftSQvBtvh9G/pljA6Zvfi62T0ejRNWGrl8yD4ikq0bgVut6cIgdsMmSWYn/ggJNwV3Dx4euAXejFFEwHUQ3eFXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6aNL6Hbblih7/nE4BlYRv3tQG/5/qPyVxKaw4nJcSuU=; b=OsBPDmJREZ8OHFGEN5t3zAAmOUVr4M2w7HR/ON1X7mbe7+6IDrVx4nUZxMZKzieqJzHdEKLA5anvAuJDQV48OTIRKFdZkxPI6T8ht769G8r/ms/RRzFEPpNYRxQq4M67hcXG31yiMzPHH44E6vCLndf1WIwSB5VxMcFQuJ1RvFk= Received: from DM6PR03MB5274.namprd03.prod.outlook.com (2603:10b6:5:24b::14) by DM5PR03MB2907.namprd03.prod.outlook.com (2603:10b6:3:11e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Fri, 18 Sep 2020 06:12:39 +0000 Received: from DM6PR03MB5274.namprd03.prod.outlook.com ([fe80::a009:4abe:2aee:b0dd]) by DM6PR03MB5274.namprd03.prod.outlook.com ([fe80::a009:4abe:2aee:b0dd%4]) with mapi id 15.20.3391.011; Fri, 18 Sep 2020 06:12:39 +0000 From: "Togorean, Bogdan" To: Laurent Pinchart CC: Sakari Ailus , "linux-media@vger.kernel.org" , Mauro Carvalho Chehab , Rob Herring , "David S. Miller" , Laurent Pinchart , Jacopo Mondi , Kieran Bingham , YueHaibing , Bingbu Cao , Manivannan Sadhasivam , Shawn Tu , Dongchun Zhu , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Cozma, Andrei" Subject: RE: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end Thread-Topic: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end Thread-Index: AQHWh3XvzR+FuqmqSEu3z8jI/XRrEqlibP0AgAD3UQCABtmmAIACMpGwgABYO4CAASy0AA== Date: Fri, 18 Sep 2020 06:12:38 +0000 Message-ID: References: <20200910162426.55306-1-bogdan.togorean@analog.com> <20200910220138.GJ3940@pendragon.ideasonboard.com> <20200915212322.GB3998@pendragon.ideasonboard.com> <20200917121239.GB3969@pendragon.ideasonboard.com> In-Reply-To: <20200917121239.GB3969@pendragon.ideasonboard.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWW5SdloyOXlaV0ZjWVhCd1pHRjBZVnh5YjJGdGFXNW5YREE1WkRnME9X?= =?utf-8?B?STJMVE15WkRNdE5HRTBNQzA0TldWbExUWmlPRFJpWVRJNVpUTTFZbHh0YzJk?= =?utf-8?B?elhHMXpaeTFtTlRJMk9USXdZaTFtT1RjMUxURXhaV0V0T0RaaE9DMHhPREZr?= =?utf-8?B?WldFMU5EWmxaREpjWVcxbExYUmxjM1JjWmpVeU5qa3lNR1F0WmprM05TMHhN?= =?utf-8?B?V1ZoTFRnMllUZ3RNVGd4WkdWaE5UUTJaV1F5WW05a2VTNTBlSFFpSUhONlBT?= =?utf-8?B?SXpNemd6TUNJZ2REMGlNVE15TkRRNE9ETXhOakUzTnpVNU5UUTVJaUJvUFNJ?= =?utf-8?B?cldYRlpibXBHZERWRE5qazRXa1pOZWxSWmNuQjJaRmsyWW5NOUlpQnBaRDBp?= =?utf-8?B?SWlCaWJEMGlNQ0lnWW04OUlqRWlJR05wUFNKalFVRkJRVVZTU0ZVeFVsTlNW?= =?utf-8?B?VVpPUTJkVlFVRkZiME5CUVVFNUsxZ3lNMmR2TTFkQllpOUtWVlJ3U1ZsWFJt?= =?utf-8?B?MTJPR3hTVDJ0b2FGbFhXVVJCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJTRUZCUVVGRVlVRlJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlJVRkJVVUZDUVVGQlFWa3ZSM0ZLZDBGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VW8wUVVGQlFtaEJSMUZCWVZGQ1prRklUVUZhVVVKcVFVaFZRV05uUW14QlJq?= =?utf-8?B?aEJZMEZDZVVGSE9FRmhaMEpzUVVkTlFXUkJRbnBCUmpoQldtZENhRUZIZDBG?= =?utf-8?B?amQwSnNRVVk0UVZwblFuWkJTRTFCWVZGQ01FRkhhMEZrWjBKc1FVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVG?= =?utf-8?B?QlFXZEJRVUZCUVVGdVowRkJRVWRGUVZwQlFuQkJSamhCWTNkQ2JFRkhUVUZr?= =?utf-8?B?VVVKNVFVZFZRVmgzUW5kQlNFbEJZbmRDY1VGSFZVRlpkMEl3UVVoTlFWaDNR?= =?utf-8?B?akJCUjJ0QldsRkNlVUZFUlVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJV?= =?utf-8?B?VUZCUVVGQlFVRkJRVU5CUVVGQlFVRkRaVUZCUVVGWlVVSnJRVWRyUVZoM1Fu?= =?utf-8?B?cEJSMVZCV1hkQ01VRklTVUZhVVVKbVFVaEJRV05uUW5aQlIyOUJXbEZDYWtG?= =?utf-8?B?SVVVRmpkMEptUVVoUlFXRlJRbXhCU0VsQlRXZEJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVGSlFVRkJRVUZCUVQwOUlpOCtQQzl0?= =?utf-8?B?WlhSaFBnPT0=?= x-dg-rorf: true authentication-results: ideasonboard.com; dkim=none (message not signed) header.d=none;ideasonboard.com; dmarc=none action=none header.from=analog.com; x-originating-ip: [137.71.226.54] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 40604de0-3d3a-4a6e-4ddd-08d85b99d84e x-ms-traffictypediagnostic: DM5PR03MB2907: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +js6yRETg/ulEpLhkM0H1Au2Od59EClc94CleGEwPxftYqXdgeub52t2DK1cSOIMEDTjvn3rjs9RgBix2D+3/bprgolK6WqCMxvslzHpBPpt4cZQVTV7OGiRzjZuv1tNHNDk9B65vKXqj8J16Undoai6k79/lQLNkSK2HFc4A+FwLxppWpff4zQ9D3YJLRdI3uNBMpfgIGkZ2+6wnzTpR4s9J8YAeiI42dbyyqx8+CZDEY/XSODbm1D9r/27CFiopnYJJsOKzJiXvtrjRQiPIv6PzFZeQxS4ua2LBWe1crDnPuZ44IxoR0qCaCatQaHdWW1JObG8DoMqcEHmqUiLV2sQn221bG6MV5uvUCQOD//TlrdIm0r6V4cFCY0GJGs40ZnIDbsfNHFsFXfPIlYh9v3b+gv2XPctCt7z0+OklAxTa3IJz803bjm4xO25+s9/Yr8xTlu+RBd6kRXfyTXZMA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(136003)(346002)(396003)(39860400002)(316002)(6506007)(83380400001)(9686003)(71200400001)(107886003)(26005)(478600001)(5660300002)(7696005)(54906003)(33656002)(52536014)(8676002)(30864003)(66476007)(76116006)(8936002)(2906002)(55016002)(4326008)(7416002)(186003)(66946007)(66556008)(64756008)(86362001)(6916009)(66446008)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: EjtQaM+thmGSiPdnzhmYncQ/+SFPzMP7URa9xjlDI7+TlMznt/028RkuwnaDKKC6W4WgywTMiuxRBSImH1a0dT0bXU7gS3NgqynRqoY+3RPodCuD1f8zwQ7aXiRkuHfjdDC7/Ekxct3yw+l/PGfCeBSBojlAOeE6HiIRAKVO54ayVMNJ0Vd4s5es0wsTqbnB7KTOYOe3GlzrW3maj3qMKhTFbv5cesI0WXvLPYieTfqCnwAtMKw4xg5uN7r/a/40f/abDNEWzuyaAhL7yBIIc74Pd/bCVXKaKaG9iORXJe6VAPEVJDf+tWFBLxqlfhTyFSrkuw3xraAgdqEtMCIvPxeHTZtdmLnjKlDsTHX1tFYlhsqjVx9UPylhd41s3BTH6AEYFm6aGul65WPaG4UWHQNHlKxIlGqu01K5s4/z1yPk3nDjKkczCue5PCjKsTUzIbM17KevOqYdU4WymDazIWpoTuL7cv6JhODirKQHw8DlPbzavCVeEUsvfDlhiw/vSUwWTkgnWWTn6yXEeywpBeqOAEfdJbFewx6H9j2BklehkLbSLbKIWAeXwwJ6IqTmo4G/sgCaEdZm880Tnm9+guogMXk2jLaAmVw6LwwF9dTF8eODDmXZ+3ByY28UqY5eSldkfebEtb+Ch6hI6lA+Dg== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40604de0-3d3a-4a6e-4ddd-08d85b99d84e X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2020 06:12:38.7321 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Q8e/2nSIZA3xcPbjo0E1hkigf+kQxRslFuaDqEWE1rX1buWwAGU9NdRXh4pkmgnq1Tvrzm/SNvBKxG3vQpIDprQoEbdeCPJCEigyaUKOe1U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2907 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-09-18_06:2020-09-16,2020-09-18 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009180054 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgTGF1cmVudCwNCj4gDQo+IEhpIEJvZ2RhbiwNCj4gDQo+IE9uIFRodSwgU2VwIDE3LCAyMDIw IGF0IDA3OjA2OjEwQU0gKzAwMDAsIFRvZ29yZWFuLCBCb2dkYW4gd3JvdGU6DQo+ID4gSGkgTGF1 cmVudCBhbmQgU2FrYXJpLA0KPiA+IFRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcsDQo+ID4gPiBI aSBCb2dkYW4sDQo+ID4gPg0KPiA+ID4gT24gRnJpLCBTZXAgMTEsIDIwMjAgYXQgMDE6MzI6MzlQ TSArMDAwMCwgVG9nb3JlYW4sIEJvZ2RhbiB3cm90ZToNCj4gPiA+ID4gPiBPbiBUaHUsIFNlcCAx MCwgMjAyMCBhdCAwNzoyNDowNlBNICswMzAwLCBCb2dkYW4gVG9nb3JlYW4gd3JvdGU6DQo+ID4g PiA+ID4gPiBUaGUgQURESTkwMzYgaXMgYSBjb21wbGV0ZSwgNDUgTUh6LCBmcm9udC1lbmQgc29s dXRpb24gZm9yIGNoYXJnZQ0KPiA+ID4gPiA+ID4gY291cGxlZCBkZXZpY2UgKENDRCkgdGltZSBv ZiBmbGlnaHQgKFRPRikgaW1hZ2luZyBhcHBsaWNhdGlvbnMuDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gSXQgaGFzIDItbGFuZSBNSVBJIENTSS0yIFJBVzEyIGRhdGEgb3V0cHV0IGFuZCBpMmMg Y29udHJvbCBpbnRlcmZhY2UuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIHByb2dyYW1t aW5nIG9mIGNhbGlicmF0aW9uIGFuZCBmaXJtd2FyZSBpcyBwZXJmb3JtZWQgYnkgdXNlcnNwYWNl DQo+ID4gPiA+ID4gPiBTREsgdGhyb3VnaCBDSURfVVNFUiBjbGFzcyBJT0NUTHMuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJJ20gYWZyYWlkIHRoYXQncyBub3QgYWNjZXB0YWJsZS4gVGhlIGZpcm13 YXJlIHNob3VsZCBiZSBsb2FkZWQgdXNpbmcNCj4gPiA+ID4gPiB0aGUgTGludXgga2VybmVsIGZp cm13YXJlIEFQSS4gQXMgZm9yIGNhbGlicmF0aW9uLCBpcyBpdCBzdGF0aWMgZGF0YSA/DQo+ID4g PiA+ID4gSG93IGlzIGl0IGdlbmVyYXRlZCA/DQo+ID4gPiA+DQo+ID4gPiA+IENhbGlicmF0aW9u IGRhdGEgaXMgc3RhdGljIGRhdGEsIGdlbmVyYXRlZCBhdCBwcm9kdWN0aW9uIGFuZCBzdG9yZWQg b24gYW5kDQo+IEVFUFJPTQ0KPiA+ID4gPiBtZW1vcnkgb24gY2FtZXJhIGJvYXJkLiBUaGUgY2Ft ZXJhIGJvYXJkIGNvbnNpc3RzIG1haW5seSBvZiBBRERJOTAzNg0KPiBwcm9jZXNzb3INCj4gPiA+ ID4gKyBDQ0QgaW1hZ2Ugc2Vuc29yICsgRUVQUk9NLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgZmly bXdhcmUgaXMgYSBzZXQgb2YgKGFkZHJlc3MsIGRhdGEpIHR1cGxlcyB0aGF0IGFyZSB3cml0dGVu IHZpYSBJMkMuDQo+ID4gPg0KPiA+ID4gSXMgaXQgYSBmaXJtd2FyZSBpbiB0aGUgc2Vuc2Ugb2Yg c29mdHdhcmUgcnVubmluZyBvbiB0aGUgQURESTkwMzYsIG9yIGlzDQo+ID4gPiBpdCBhIGRldmlj ZSBjb25maWd1cmF0aW9uIHRvIGJlIGxvYWRlZCBpbiByZWdpc3RlcnMgPw0KPiA+DQo+ID4gQWN0 dWFsbHkgd2hhdCB3ZSBjYWxsICJmaXJtd2FyZSIgaXMgYSBjb21iaW5hdGlvbiBvZiBib3RoLiBU aGUgYmluYXJ5IGJsb2IgdGhhdA0KPiBnZXRzIHdyaXR0ZW4NCj4gPiBjb250YWlucyBUb0YgcHJv Y2Vzc29yIGluc3RydWN0aW9ucyB0aGF0IGVuZCBpbiBhIFJBTSBtZW1vcnkgaW50ZXJuYWwgdG8N Cj4gQURESTkwMzYgYW5kDQo+ID4gYWxzbyByZWdpc3RlciBjb25maWd1cmF0aW9ucy4NCj4gDQo+ IFRoaXMgbWFrZXMgaXQgZWZmZWN0aXZlbHkgaW1wb3NzaWJsZSB0byB1c2UgdGhlIGRldmljZSB1 bmxlc3MgeW91IGhhdmUgYQ0KPiBjbG9zZWQtc291cmNlIHVzZXJzcGFjZSBhcHBsaWNhdGlvbiB0 byBjb25maWd1cmUgaXQsIGlzbid0IGl0ID8NCj4gDQo+IEZpcm13YXJlIHRoYXQgcnVucyBvbiBh IGRldmljZSBjYW4gYmUgc2hpcHBlZCBhcyBhIGJpbmFyeSBibG9iLCBidXQNCj4gY29uZmlndXJh dGlvbiBvZiB0aGUgZGV2aWNlIG11c3Qgbm90IHJlcXVpcmUgY2xvc2VkLXNvdXJjZSBzb2Z0d2Fy ZS4gVG8NCj4gYmUgdXBzdHJlYW1lZCwgYSBkcml2ZXIgbmVlZHMgdG8gYmUgdXNhYmxlIGVpdGhl ciBvbiBpdHMgb3duICh3aXRoIGl0cw0KPiB1c2Vyc3BhY2UgQVBJcyBkb2N1bWVudCBhbmQgdXNh YmxlIGJ5IGFsbCBhcHBsaWNhdGlvbnMpLCBvciBpbg0KPiBjb21iaW5hdGlvbiB3aXRoIGFuIG9w ZW4tc291cmNlIHVzZXJzcGFjZSBzdGFjay4NCj4gDQpUaGUgb3BlbiBzb3VyY2UgdXNlcnNwYWNl IFNESyBwcm92aWRlZCBieSBBbmFsb2cgRGV2aWNlcyB3aWxsIHN0aWxsIGJlIHJlcXVpcmVkDQpi ZWNhdXNlIGl0IGNvbXB1dGVzIGNvcnJlY3Rpb25zIGFuZCBhcHBseSB0aGVtIHRvIGV2ZXJ5IGZy YW1lIGJhc2VkIG9uIA0KY2FsaWJyYXRpb24gZGF0YSByZWFkIGZyb20gRUVQUk9NLg0KIA0KPiA+ IEkgYW0gd29ya2luZyBvbiBhIFYyIHRoYXQgdXNlcyBmaXJtd2FyZSBBUEkgYW5kIE5WTUVNIHN1 YnN5c3RlbSBmb3INCj4gRUVQUk9NIHN0b3JlZCBkYXRhLg0KPiA+DQo+ID4gPiA+IFdlIHdhbnQg dGhpcyBkcml2ZXIgdG8gYmUgYSBnZW5lcmljIG9uZSBhbmQgc3VwcG9ydCBhbGwgaW1wbGVtZW50 YXRpb25zDQo+ID4gPiA+IG9mIEFEREk5MDM2IFRvRiBwcm9jZXNzb3IuIE5vdyB0aGUgcHJvYmxl bSBpcyB0aGF0IHNvbWUgaW1wbGVtZW50YXRpb25zDQo+ID4gPiA+IHN0b3JlIGZpcm13YXJlICsg Y2FsaWJyYXRpb24gb24gZXh0ZXJuYWwgRUVQUk9NIGFuZCBzb21lIHN0b3JlIGp1c3QNCj4gY2Fs aWJyYXRpb24NCj4gPiA+ID4gZGF0YSBvbiBFRVBST00gYW5kIGZpcm13YXJlIGlzIGxvYWRlZCBm cm9tIGEgZmlsZSBzdG9yZWQgaW4gU0RLLiBXaXRoIHRoZQ0KPiBoZWxwDQo+ID4gPiA+IG9mIHRo ZSAyIGN1c3RvbSBjb250cm9scyB3ZSBtb3ZlIHRoZSBjYW1lcmEgbW9kZWwgZGV0ZWN0aW9uLCBm aXJtd2FyZQ0KPiA+ID4gPiBhbmQgY2FsaWJyYXRpb24gZmV0Y2hpbmcgZnJvbSBkcml2ZXIgdG8g dXNlciBzcGFjZSBTREsuDQo+ID4gPiA+DQo+ID4gPiA+IEFsc28gYW4gaW1wb3J0YW50IHBvaW50 IGlzIHRoYXQgdGhlIFRvRiBwcm9jZXNzb3IgaGFzIDMgb3BlcmF0aW5nIG1vZGVzDQo+ID4gPiA+ IChuZWFyLCBtZWRpdW0gYW5kIGZhcikuIEF0IGVhY2ggbW9kZSBjaGFuZ2UgYSBuZXcgc2V0IG9m IGZpcm13YXJlICsNCj4gPiA+ID4gY2FsaWJyYXRpb24gZGF0YSBpcyBsb2FkZWQgaW50byBBRERJ OTAzNiBjaGlwLiBJZiB3ZSBtb3ZlIHRoZSBmaXJtd2FyZQ0KPiBsb2FkaW5nDQo+ID4gPiA+IGlu IGRyaXZlciB3ZSB3b3VsZCBzdGlsbCBuZWVkIGEgY3VzdG9tIGVudW1lcmF0aW9uIGNvbnRyb2wg dG8gc2VsZWN0IHRoZQ0KPiB3b3JraW5nIG1vZGUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBCb2dkYW4gVG9nb3JlYW4gPGJvZ2Rhbi50b2dvcmVhbkBhbmFsb2cuY29tPg0K PiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArDQo+ID4gPiA+ID4gPiAgZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZyAg ICAgICAgICB8ICAxNCArDQo+ID4gPiA+ID4gPiAgZHJpdmVycy9tZWRpYS9pMmMvTWFrZWZpbGUg ICAgICAgICB8ICAgMSArDQo+ID4gPiA+ID4gPiAgZHJpdmVycy9tZWRpYS9pMmMvYWRkaTkwMzYu YyAgICAgICB8IDY3Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ ID4gIGluY2x1ZGUvdWFwaS9saW51eC92NGwyLWNvbnRyb2xzLmggfCAgIDYgKw0KPiA+ID4gPiA+ ID4gIDUgZmlsZXMgY2hhbmdlZCwgNzA0IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9pMmMvYWRkaTkwMzYuYw0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQo+ID4g PiA+ID4gPiBpbmRleCBiNWNmYWIwMTViZDYuLmZiMDNhZDljYTkyMCAxMDA2NDQNCj4gPiA+ID4g PiA+IC0tLSBhL01BSU5UQUlORVJTDQo+ID4gPiA+ID4gPiArKysgYi9NQUlOVEFJTkVSUw0KPiA+ ID4gPiA+ID4gQEAgLTQ3Nyw2ICs0NzcsMTYgQEAgVzoJaHR0cDovL3dpa2kuYW5hbG9nLmNvbS9B RDc4NzkNCj4gPiA+ID4gPiA+ICBXOglodHRwOi8vZXouYW5hbG9nLmNvbS9jb21tdW5pdHkvbGlu dXgtZGV2aWNlLWRyaXZlcnMNCj4gPiA+ID4gPiA+ICBGOglkcml2ZXJzL2lucHV0L3RvdWNoc2Ny ZWVuL2FkNzg3OS5jDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gK0FEREk5MDM2IFRPRiBGUk9O VEVORCBEUklWRVINCj4gPiA+ID4gPiA+ICtNOglCb2dkYW4gVG9nb3JlYW4gPGJvZ2Rhbi50b2dv cmVhbkBhbmFsb2cuY29tPg0KPiA+ID4gPiA+ID4gK0w6CWxpbnV4LW1lZGlhQHZnZXIua2VybmVs Lm9yZw0KPiA+ID4gPiA+ID4gK1M6CVN1cHBvcnRlZA0KPiA+ID4gPiA+ID4gK1c6CWh0dHBzOi8v d3d3LmFuYWxvZy5jb20vZW4vcHJvZHVjdHMvYWRkaTkwMzYuaHRtbA0KPiA+ID4gPiA+ID4gK1c6 CWh0dHA6Ly9lei5hbmFsb2cuY29tL2NvbW11bml0eS9saW51eC1kZXZpY2UtZHJpdmVycw0KPiA+ ID4gPiA+ID4gK1Q6CWdpdCBnaXQ6Ly9saW51eHR2Lm9yZy9tZWRpYV90cmVlLmdpdA0KPiA+ID4g PiA+ID4gK0Y6DQo+IAlEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvaTJj L2FkaSxhZGRpOTAzNi55YW1sDQo+ID4gPiA+ID4gPiArRjoJZHJpdmVycy9tZWRpYS9pMmMvYWRk aTkwMzYuYw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gIEFERFJFU1MgU1BBQ0UgTEFZT1VU IFJBTkRPTUlaQVRJT04gKEFTTFIpDQo+ID4gPiA+ID4gPiAgTToJSmlyaSBLb3NpbmEgPGppa29z QGtlcm5lbC5vcmc+DQo+ID4gPiA+ID4gPiAgUzoJTWFpbnRhaW5lZA0KPiA+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2kyYy9L Y29uZmlnDQo+ID4gPiA+ID4gPiBpbmRleCBjN2JhNzZmZWU1OTkuLjA4N2RkMzA3NTA1ZCAxMDA2 NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcNCj4gPiA+ID4g PiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcNCj4gPiA+ID4gPiA+IEBAIC03MjUs NiArNzI1LDIwIEBAIGNvbmZpZyBWSURFT19BUFRJTkFfUExMDQo+ID4gPiA+ID4gPiAgY29uZmln IFZJREVPX1NNSUFQUF9QTEwNCj4gPiA+ID4gPiA+ICAJdHJpc3RhdGUNCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiArY29uZmlnIFZJREVPX0FEREk5MDM2DQo+ID4gPiA+ID4gPiArCXRyaXN0YXRl ICJBbmFsb2cgRGV2aWNlcyBBRERJOTAzNiBUb0YgZnJvbnQtZW5kIHN1cHBvcnQiDQo+ID4gPiA+ ID4gPiArCWRlcGVuZHMgb24gSTJDICYmIFZJREVPX1Y0TDINCj4gPiA+ID4gPiA+ICsJc2VsZWN0 IE1FRElBX0NPTlRST0xMRVINCj4gPiA+ID4gPiA+ICsJc2VsZWN0IFZJREVPX1Y0TDJfU1VCREVW X0FQSQ0KPiA+ID4gPiA+ID4gKwlzZWxlY3QgVjRMMl9GV05PREUNCj4gPiA+ID4gPiA+ICsJc2Vs ZWN0IFJFR01BUF9JMkMNCj4gPiA+ID4gPiA+ICsJaGVscA0KPiA+ID4gPiA+ID4gKwkgIFRoaXMg aXMgYSBWaWRlbzRMaW51eDIgZHJpdmVyIGZvciBBbmFsb2cgRGV2aWNlcyBBRERJOTAzNg0KPiA+ ID4gPiA+ID4gKwkgIFRpbWUgb2YgRmxpZ2h0IGZyb250LWVuZC4NCj4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ICsJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2Ug TSBoZXJlOiB0aGUNCj4gPiA+ID4gPiA+ICsJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYWRkaTkw MzYuDQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgY29uZmlnIFZJREVPX0hJNTU2DQo+ID4g PiA+ID4gPiAgCXRyaXN0YXRlICJIeW5peCBIaS01NTYgc2Vuc29yIHN1cHBvcnQiDQo+ID4gPiA+ ID4gPiAgCWRlcGVuZHMgb24gSTJDICYmIFZJREVPX1Y0TDINCj4gPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvaTJjL01ha2Vm aWxlDQo+ID4gPiA+ID4gPiBpbmRleCBmMGE3NzQ3Mzk3OWQuLjYzMWE3Yzc2MTJjYSAxMDA2NDQN Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlDQo+ID4gPiA+ID4g PiArKysgYi9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQ0KPiA+ID4gPiA+ID4gQEAgLTI2LDYg KzI2LDcgQEAgb2JqLSQoQ09ORklHX1ZJREVPX0FLNzM3NSkgICs9IGFrNzM3NS5vDQo+ID4gPiA+ ID4gPiAgb2JqLSQoQ09ORklHX1ZJREVPX0RXOTcxNCkgICs9IGR3OTcxNC5vDQo+ID4gPiA+ID4g PiAgb2JqLSQoQ09ORklHX1ZJREVPX0RXOTc2OCkgICs9IGR3OTc2OC5vDQo+ID4gPiA+ID4gPiAg b2JqLSQoQ09ORklHX1ZJREVPX0RXOTgwN19WQ00pICArPSBkdzk4MDctdmNtLm8NCj4gPiA+ID4g PiA+ICtvYmotJChDT05GSUdfVklERU9fQURESTkwMzYpICs9IGFkZGk5MDM2Lm8NCj4gPiA+ID4g PiA+ICBvYmotJChDT05GSUdfVklERU9fQURWNzE3MCkgKz0gYWR2NzE3MC5vDQo+ID4gPiA+ID4g PiAgb2JqLSQoQ09ORklHX1ZJREVPX0FEVjcxNzUpICs9IGFkdjcxNzUubw0KPiA+ID4gPiA+ID4g IG9iai0kKENPTkZJR19WSURFT19BRFY3MTgwKSArPSBhZHY3MTgwLm8NCj4gPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9hZGRpOTAzNi5jIGIvZHJpdmVycy9tZWRpYS9p MmMvYWRkaTkwMzYuYw0KPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4g PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzZjMzQ0NDA1OGRjDQo+ID4gPiA+ID4gPiAtLS0gL2Rl di9udWxsDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL21lZGlhL2kyYy9hZGRpOTAzNi5jDQo+ ID4gPiA+ID4gPiBAQCAtMCwwICsxLDY3MyBAQA0KPiA+ID4gPiA+ID4gKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4gPiA+ID4gPiArLyoNCj4gPiA+ID4gPiA+ICsgKiBE cml2ZXIgZm9yIHRoZSBBbmFsb2cgRGV2aWNlcyBBRERJOTAzNiBUb0YgZnJvbnQtZW5kLg0KPiA+ ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQW5h bG9nIERldmljZXMsIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo+ID4gPiA+ID4gPiArICoNCj4gPiA+ ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgv ZGV2aWNlLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4N Cj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1 ZGUgPGxpbnV4L2luaXQuaD4NCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+DQo+ID4gPiA+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L29mLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBo Lmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPg0KPiA+ID4gPiA+ID4g KyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4NCj4gPiA+ID4g PiA+ICsjaW5jbHVkZSA8bWVkaWEvdjRsMi1jdHJscy5oPg0KPiA+ID4gPiA+ID4gKyNpbmNsdWRl IDxtZWRpYS92NGwyLWZ3bm9kZS5oPg0KPiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxtZWRpYS92NGwy LXN1YmRldi5oPg0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0cnVjdCBhZGRpOTAzNl9t b2RlX2luZm8gew0KPiA+ID4gPiA+ID4gKwl1MzIgd2lkdGg7DQo+ID4gPiA+ID4gPiArCXUzMiBo ZWlnaHQ7DQo+ID4gPiA+ID4gPiArCXUzMiBwaXhlbF9yYXRlOw0KPiA+ID4gPiA+ID4gKwl1MzIg bGlua19mcmVxX2lkeDsNCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gK3N0cnVjdCBhZGRpOTAzNiB7DQo+ID4gPiA+ID4gPiArCXN0cnVjdCByZWdtYXAgKnJlZ21h cDsNCj4gPiA+ID4gPiA+ICsJc3RydWN0IGRldmljZSAqZGV2Ow0KPiA+ID4gPiA+ID4gKwlzdHJ1 Y3QgdjRsMl9zdWJkZXYgc2Q7DQo+ID4gPiA+ID4gPiArCXN0cnVjdCBtZWRpYV9wYWQgcGFkOw0K PiA+ID4gPiA+ID4gKwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgZXA7DQo+ID4gPiA+ID4g PiArCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgZm10Ow0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3Qg djRsMl9yZWN0IGNyb3A7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWNvbnN0IHN0cnVj dCBhZGRpOTAzNl9tb2RlX2luZm8gKmN1cnJlbnRfbW9kZTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ICsJc3RydWN0IHY0bDJfY3RybF9oYW5kbGVyIGN0cmxzOw0KPiA+ID4gPiA+ID4gKwlz dHJ1Y3QgdjRsMl9jdHJsICpwaXhlbF9yYXRlOw0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgdjRsMl9j dHJsICpsaW5rX2ZyZXE7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCS8qIGxvY2sgdG8g cHJvdGVjdCBwb3dlciBzdGF0ZSAqLw0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgbXV0ZXggcG93ZXJf bG9jazsNCj4gPiA+ID4gPiA+ICsJaW50IHBvd2VyX2NvdW50Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyc3RfZ3BpbzsNCj4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ICsJLyogY29udHJvbHMgKi8NCj4gPiA+ID4gPiA+ICsJc3RydWN0IHY0bDJfY3Ry bCAqc2V0X2NoaXBfY29uZmlnOw0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgdjRsMl9jdHJsICpyZWdf cmVhZDsNCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRp YyBpbmxpbmUgc3RydWN0IGFkZGk5MDM2ICp0b19hZGRpOTAzNihzdHJ1Y3QgdjRsMl9zdWJkZXYg KnNkKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihz ZCwgc3RydWN0IGFkZGk5MDM2LCBzZCk7DQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gKyNkZWZpbmUgVjRMMl9DSURfQURfREVWX1NFVF9DSElQX0NPTkZJR19RVUVS WQ0KPiAoVjRMMl9DSURfVVNFUl9BRERJOTAzNl9CQVNFICsgMCkNCj4gPiA+ID4gPiA+ICsjZGVm aW5lIFY0TDJfQ0lEX0FEX0RFVl9SRUdfUkVBRF9RVUVSWQ0KPiAoVjRMMl9DSURfVVNFUl9BRERJ OTAzNl9CQVNFICsgMSkNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IHJlZ19zZXF1ZW5jZSBhZGRpOTAzNl9wb3dlcnVwX3NldHRpbmdbXSA9IHsNCj4gPiA+ ID4gPiA+ICsJeyAweGM0YzAsIDB4MDAxYyB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzRjMywgMHgw MDFjIH0sDQo+ID4gPiA+ID4gPiArCXsgMHhjNGQ3LCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJ eyAweGM0ZDUsIDB4MDAwMiB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzRkYSwgMHgwMDAxIH0sDQo+ ID4gPiA+ID4gPiArCXsgMHhjNGYwLCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJeyAweGM0Mjcs IDB4MDAwMyB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzQyNywgMHgwMDAxIH0sDQo+ID4gPiA+ID4g PiArCXsgMHhjNDI3LCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJeyAweGM0MjYsIDB4MDAzMCB9 LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzQyNiwgMHgwMDEwIH0sDQo+ID4gPiA+ID4gPiArCXsgMHhj NDI2LCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJeyAweGM0MjMsIDB4MDA4MCB9LA0KPiA+ID4g PiA+ID4gKwl7IDB4YzQzMSwgMHgwMDgwIH0sDQo+ID4gPiA+ID4gPiArCXsgMHg0MDAxLCAweDAw MDcgfSwNCj4gPiA+ID4gPiA+ICsJeyAweDdjMjIsIDB4MDAwNCB9DQo+ID4gPiA+ID4gPiArfTsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19zZXF1 ZW5jZSBhZGRpOTAzNl9wb3dlcmRvd25fc2V0dGluZ1tdID0gew0KPiA+ID4gPiA+ID4gKwl7IDB4 YzAyMiwgMHgwMDAxIH0sDQo+ID4gPiA+ID4gPiArCXsgMHg0MDAxLCAweDAwMDYgfSwNCj4gPiA+ ID4gPiA+ICsJeyAweDdjMjIsIDB4MDAwNCB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzQzMSwgMHgw MDgyIH0sDQo+ID4gPiA+ID4gPiArCXsgMHhjNDIzLCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJ eyAweGM0MjYsIDB4MDAyMCB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzQyNywgMHgwMDAyIH0sDQo+ ID4gPiA+ID4gPiArCXsgMHhjNGMwLCAweDAwM2MgfSwNCj4gPiA+ID4gPiA+ICsJeyAweGM0YzMs IDB4MDAzYyB9LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzRkNSwgMHgwMDAzIH0sDQo+ID4gPiA+ID4g PiArCXsgMHhjNGRhLCAweDAwMDAgfSwNCj4gPiA+ID4gPiA+ICsJeyAweGM0ZDcsIDB4MDAwMSB9 LA0KPiA+ID4gPiA+ID4gKwl7IDB4YzRmMCwgMHgwMDAxIH0NCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCBzNjQgbGlua19mcmVxX3RibFtd ID0gew0KPiA+ID4gPiA+ID4gKwkxMTA1MjkwMDAsDQo+ID4gPiA+ID4gPiArCTIyMTE4NDAwMCwN Cj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKy8qIEVsZW1lbnRz IG9mIHRoZSBzdHJ1Y3R1cmUgbXVzdCBiZSBvcmRlcmVkIGFzY2VuZGluZyBieSB3aWR0aCAmDQo+ IGhlaWdodCAqLw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWRkaTkwMzZfbW9k ZV9pbmZvIGFkZGk5MDM2X21vZGVfaW5mb19kYXRhW10gPQ0KPiB7DQo+ID4gPiA+ID4gPiArCXsN Cj4gPiA+ID4gPiA+ICsJCS53aWR0aCA9IDY0MCwNCj4gPiA+ID4gPiA+ICsJCS5oZWlnaHQgPSA0 ODAsDQo+ID4gPiA+ID4gPiArCQkucGl4ZWxfcmF0ZSA9IDM2ODY0MDAwLA0KPiA+ID4gPiA+ID4g KwkJLmxpbmtfZnJlcV9pZHggPSAwIC8qIGFuIGluZGV4IGluIGxpbmtfZnJlcV90YmxbXSAqLw0K PiA+ID4gPiA+ID4gKwl9LA0KPiA+ID4gPiA+ID4gKwl7DQo+ID4gPiA+ID4gPiArCQkud2lkdGgg PSA2NDAsDQo+ID4gPiA+ID4gPiArCQkuaGVpZ2h0ID0gOTYwLA0KPiA+ID4gPiA+ID4gKwkJLnBp eGVsX3JhdGUgPSA3MzcyODAwMCwNCj4gPiA+ID4gPiA+ICsJCS5saW5rX2ZyZXFfaWR4ID0gMSAv KiBhbiBpbmRleCBpbiBsaW5rX2ZyZXFfdGJsW10gKi8NCj4gPiA+ID4gPiA+ICsJfSwNCj4gPiA+ ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBib29sIGFkZGk5 MzA2X3JlYWRhYmxlX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQNCj4gaW50 IHJlZykNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArCWlmICgoKHJlZyA+PSAweDQwMDAp ICYmIChyZWcgPD0gMHg2RkZGKSkgfHwNCj4gPiA+ID4gPiA+ICsJICAgICgocmVnID49IDB4N0Mw MCkgJiYgKHJlZyA8PSAweDdGRkYpKSB8fA0KPiA+ID4gPiA+ID4gKwkgICAgKChyZWcgPj0gMHhD MDAwKSAmJiAocmVnIDw9IDB4QzIwMCkpIHx8DQo+ID4gPiA+ID4gPiArCSAgICAoKHJlZyA+PSAw eEMzMDApICYmIChyZWcgPD0gMHhDNkJGKSkpDQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsN Cj4gPiA+ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ID4g PiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgYm9vbCBhZGRpOTMw Nl93cml0ZWFibGVfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZA0KPiBpbnQg cmVnKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJaWYgKCgocmVnID49IDB4NDAwMCkg JiYgKHJlZyA8PSAweDZGRkYpKSB8fA0KPiA+ID4gPiA+ID4gKwkgICAgKChyZWcgPj0gMHg3QzAw KSAmJiAocmVnIDw9IDB4N0ZGRikpIHx8DQo+ID4gPiA+ID4gPiArCSAgICAoKHJlZyA+PSAweEMw MDApICYmIChyZWcgPD0gMHhDMTEzKSkgfHwNCj4gPiA+ID4gPiA+ICsJICAgICgocmVnID49IDB4 QzMwMCkgJiYgKHJlZyA8PSAweEM3RkYpKSkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiB0cnVlOw0K PiA+ID4gPiA+ID4gKwllbHNlDQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+ ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cmVnbWFwX2NvbmZpZyBhZGRpOTAzNl9pMmNfcmVnbWFwX2NvbmZpZyA9IHsNCj4gPiA+ID4gPiA+ ICsJLnJlZ19iaXRzID0gMTYsDQo+ID4gPiA+ID4gPiArCS52YWxfYml0cyA9IDE2LA0KPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gKwkubWF4X3JlZ2lzdGVyID0gMHhDN0ZGLA0KPiA+ID4gPiA+ ID4gKwkud3JpdGVhYmxlX3JlZyA9IGFkZGk5MzA2X3dyaXRlYWJsZV9yZWdpc3RlciwNCj4gPiA+ ID4gPiA+ICsJLnJlYWRhYmxlX3JlZyA9IGFkZGk5MzA2X3JlYWRhYmxlX3JlZ2lzdGVyLA0KPiA+ ID4gPiA+ID4gKwkuY2FjaGVfdHlwZSA9IFJFR0NBQ0hFX05PTkUsDQo+ID4gPiA+ID4gPiArfTsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X3NldF9wb3dl cl9vbihzdHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2KQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4g PiA+ICsJaW50IHJldDsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKGFkZGk5MDM2 LT5yc3RfZ3BpbykNCj4gPiA+ID4gPiA+ICsJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChhZGRp OTAzNi0+cnN0X2dwaW8sIDApOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXQgPSBy ZWdtYXBfcmVnaXN0ZXJfcGF0Y2goYWRkaTkwMzYtPnJlZ21hcCwNCj4gYWRkaTkwMzZfcG93ZXJ1 cF9zZXR0aW5nLA0KPiA+ID4gPiA+ID4gKw0KPiBBUlJBWV9TSVpFKGFkZGk5MDM2X3Bvd2VydXBf c2V0dGluZykpOw0KPiA+ID4gPiA+ID4gKwlpZiAocmV0KQ0KPiA+ID4gPiA+ID4gKwkJZGV2X2Vy cihhZGRpOTAzNi0+ZGV2LCAiQ291bGQgbm90IHNldCBwb3dlciB1cA0KPiByZWdpc3RlcnNcbiIp Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ID4gPiA+ID4g K30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X3NldF9w b3dlcl9vZmYoc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNikNCj4gPiA+ID4gPiA+ICt7DQo+ID4g PiA+ID4gPiArCWludCByZXQ7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldCA9IHJl Z21hcF9yZWdpc3Rlcl9wYXRjaChhZGRpOTAzNi0+cmVnbWFwLA0KPiA+ID4gPiA+ID4gKwkJCQkg ICAgYWRkaTkwMzZfcG93ZXJkb3duX3NldHRpbmcsDQo+ID4gPiA+ID4gPiArDQo+IEFSUkFZX1NJ WkUoYWRkaTkwMzZfcG93ZXJkb3duX3NldHRpbmcpKTsNCj4gPiA+ID4gPiA+ICsJaWYgKHJldCkN Cj4gPiA+ID4gPiA+ICsJCWRldl9lcnIoYWRkaTkwMzYtPmRldiwgImNvdWxkIG5vdCBzZXQgcG93 ZXIgZG93bg0KPiByZWdpc3RlcnNcbiIpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlp ZiAoYWRkaTkwMzYtPnJzdF9ncGlvKQ0KPiA+ID4gPiA+ID4gKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2Nh bnNsZWVwKGFkZGk5MDM2LT5yc3RfZ3BpbywgMSk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiArCXJldHVybiByZXQ7DQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gK3N0YXRpYyBpbnQgYWRkaTkwMzZfc19wb3dlcihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCBp bnQgb24pDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgYWRkaTkwMzYgKmFk ZGk5MDM2ID0gdG9fYWRkaTkwMzYoc2QpOw0KPiA+ID4gPiA+ID4gKwlpbnQgcmV0ID0gMDsNCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJbXV0ZXhfbG9jaygmYWRkaTkwMzYtPnBvd2VyX2xv Y2spOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlkZXZfZGJnKGFkZGk5MDM2LT5kZXYs ICJzX3Bvd2VyOiAlZFxuIiwgb24pOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwkvKiBJ ZiB0aGUgcG93ZXIgY291bnQgaXMgbW9kaWZpZWQgZnJvbSAwIHRvICE9IDAgb3IgZnJvbSAhPSAw IHRvIDAsDQo+ID4gPiA+ID4gPiArCSAqIHVwZGF0ZSB0aGUgcG93ZXIgc3RhdGUuDQo+ID4gPiA+ ID4gPiArCSAqLw0KPiA+ID4gPiA+ID4gKwlpZiAoYWRkaTkwMzYtPnBvd2VyX2NvdW50ID09ICFv bikgew0KPiA+ID4gPiA+ID4gKwkJaWYgKG9uKQ0KPiA+ID4gPiA+ID4gKwkJCXJldCA9IGFkZGk5 MDM2X3NldF9wb3dlcl9vbihhZGRpOTAzNik7DQo+ID4gPiA+ID4gPiArCQllbHNlDQo+ID4gPiA+ ID4gPiArCQkJcmV0ID0gYWRkaTkwMzZfc2V0X3Bvd2VyX29mZihhZGRpOTAzNik7DQo+ID4gPiA+ ID4gPiArCX0NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKCFyZXQpIHsNCj4gPiA+ ID4gPiA+ICsJCS8qIFVwZGF0ZSB0aGUgcG93ZXIgY291bnQuICovDQo+ID4gPiA+ID4gPiArCQlh ZGRpOTAzNi0+cG93ZXJfY291bnQgKz0gb24gPyAxIDogLTE7DQo+ID4gPiA+ID4gPiArCQlXQVJO KGFkZGk5MDM2LT5wb3dlcl9jb3VudCA8IDAsICJVbmJhbGFuY2VkIHBvd2VyDQo+IGNvdW50XG4i KTsNCj4gPiA+ID4gPiA+ICsJCVdBUk4oYWRkaTkwMzYtPnBvd2VyX2NvdW50ID4gMSwgIkR1cGxp Y2F0ZWQgc19wb3dlcg0KPiBjYWxsXG4iKTsNCj4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gKwltdXRleF91bmxvY2soJmFkZGk5MDM2LT5wb3dlcl9sb2NrKTsNCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJcmV0dXJuIHJldDsNCj4gPiA+ID4gPiA+ICt9DQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBhZGRpOTAzNl9zZXRfY2hpcF9j b25maWcoc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiwNCj4gPiA+ID4gPiA+ICsJCQkJICAgIHN0 cnVjdCB2NGwyX2N0cmwgKmN0cmwpDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKwlpbnQg aW5kZXg7DQo+ID4gPiA+ID4gPiArCXVuc2lnbmVkIHNob3J0ICpyZWcsICp2YWw7DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArCXJlZyA9ICh1bnNpZ25lZCBzaG9ydCAqKShjdHJsLT5wX25l dy5wX3UxNik7DQo+ID4gPiA+ID4gPiArCXZhbCA9ICh1bnNpZ25lZCBzaG9ydCAqKShjdHJsLT5w X25ldy5wX3UxNiArIDEpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlmb3IgKGluZGV4 ID0gMDsgaW5kZXggPCBjdHJsLT5lbGVtczsgaW5kZXggKz0gMikgew0KPiA+ID4gPiA+ID4gKwkJ cmVnbWFwX3dyaXRlKGFkZGk5MDM2LT5yZWdtYXAsICpyZWcsICp2YWwpOw0KPiA+ID4gPiA+ID4g KwkJcmVnICs9IDI7DQo+ID4gPiA+ID4gPiArCQl2YWwgKz0gMjsNCj4gPiA+ID4gPiA+ICsJfQ0K PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ICt9DQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBhZGRpOTAzNl9zX2N0cmwoc3Ry dWN0IHY0bDJfY3RybCAqY3RybCkNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArCXN0cnVj dCBhZGRpOTAzNiAqYWRkaTkwMzYgPSBjb250YWluZXJfb2YoY3RybC0+aGFuZGxlciwNCj4gPiA+ ID4gPiA+ICsJCQkJCQkgc3RydWN0IGFkZGk5MDM2LCBjdHJscyk7DQo+ID4gPiA+ID4gPiArCWlu dCByZXQgPSAwOw0KPiA+ID4gPiA+ID4gKwl1bnNpZ25lZCBpbnQgdmFsOw0KPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gKwlzd2l0Y2ggKGN0cmwtPmlkKSB7DQo+ID4gPiA+ID4gPiArCWNhc2Ug VjRMMl9DSURfQURfREVWX1NFVF9DSElQX0NPTkZJR19RVUVSWToNCj4gPiA+ID4gPiA+ICsJCXJl dCA9IGFkZGk5MDM2X3NldF9jaGlwX2NvbmZpZyhhZGRpOTAzNiwgY3RybCk7DQo+ID4gPiA+ID4g PiArCQlicmVhazsNCj4gPiA+ID4gPiA+ICsJY2FzZSBWNEwyX0NJRF9BRF9ERVZfUkVHX1JFQURf UVVFUlk6DQo+ID4gPiA+ID4gPiArCQlyZXQgPSByZWdtYXBfcmVhZChhZGRpOTAzNi0+cmVnbWFw LCAqKHUxNiAqKShjdHJsLQ0KPiA+ID4gPiA+ID5wX25ldy5wX3UxNiksDQo+ID4gPiA+ID4gPiAr CQkJCSAgJnZhbCk7DQo+ID4gPiA+ID4gPiArCQlpZiAocmV0KQ0KPiA+ID4gPiA+ID4gKwkJCWRl dl93YXJuKGFkZGk5MDM2LT5kZXYsDQo+ID4gPiA+ID4gPiArCQkJCSAiY291bGQgbm90IHJlYWQg ZnJvbSByZWdpc3RlclxuIik7DQo+ID4gPiA+ID4gPiArCQllbHNlDQo+ID4gPiA+ID4gPiArCQkJ Kih1MTYgKikoY3RybC0+cF9uZXcucF91MTYpID0gdmFsOw0KPiA+ID4gPiA+ID4gKwkJYnJlYWs7 DQo+ID4gPiA+ID4gPiArCWNhc2UgVjRMMl9DSURfUElYRUxfUkFURToNCj4gPiA+ID4gPiA+ICsJ Y2FzZSBWNEwyX0NJRF9MSU5LX0ZSRVE6DQo+ID4gPiA+ID4gPiArCQlicmVhazsNCj4gPiA+ID4g PiA+ICsJZGVmYXVsdDoNCj4gPiA+ID4gPiA+ICsJCWRldl9lcnIoYWRkaTkwMzYtPmRldiwgIiVz ID4gVW5oYW5kbGVkOiAleA0KPiBwYXJhbT0leFxuIiwNCj4gPiA+ID4gPiA+ICsJCQlfX2Z1bmNf XywgY3RybC0+aWQsIGN0cmwtPnZhbCk7DQo+ID4gPiA+ID4gPiArCQlyZXQgPSAtRUlOVkFMOw0K PiA+ID4gPiA+ID4gKwkJYnJlYWs7DQo+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ICsJcmV0dXJuIHJldDsNCj4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfb3BzIGFkZGk5MDM2X2N0 cmxfb3BzID0gew0KPiA+ID4gPiA+ID4gKwkuc19jdHJsID0gYWRkaTkwMzZfc19jdHJsLA0KPiA+ ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCB2NGwyX2N0cmxfY29uZmlnIGFkZGk5MDM2X2N0cmxfY2hpcF9jb25maWcgPSB7DQo+ID4g PiA+ID4gPiArCS5vcHMJCT0gJmFkZGk5MDM2X2N0cmxfb3BzLA0KPiA+ID4gPiA+ID4gKwkuaWQJ CT0NCj4gVjRMMl9DSURfQURfREVWX1NFVF9DSElQX0NPTkZJR19RVUVSWSwNCj4gPiA+ID4gPiA+ ICsJLm5hbWUJCT0gImNoaXBfY29uZmlnIiwNCj4gPiA+ID4gPiA+ICsJLnR5cGUJCT0gVjRMMl9D VFJMX1RZUEVfVTE2LA0KPiA+ID4gPiA+ID4gKwkuZGVmCQk9IDB4RkYsDQo+ID4gPiA+ID4gPiAr CS5taW4JCT0gMHgwMCwNCj4gPiA+ID4gPiA+ICsJLm1heAkJPSAweEZGRkYsDQo+ID4gPiA+ID4g PiArCS5zdGVwCQk9IDEsDQo+ID4gPiA+ID4gPiArCS5kaW1zCQk9IHsgMjA0OCB9LA0KPiA+ID4g PiA+ID4gKwkuZWxlbV9zaXplCT0gMg0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfY29uZmlnIGFkZGk5MDM2 X2N0cmxfcmVnX3JlYWQgPSB7DQo+ID4gPiA+ID4gPiArCS5vcHMJPSAmYWRkaTkwMzZfY3RybF9v cHMsDQo+ID4gPiA+ID4gPiArCS5pZAk9IFY0TDJfQ0lEX0FEX0RFVl9SRUdfUkVBRF9RVUVSWSwN Cj4gPiA+ID4gPiA+ICsJLm5hbWUJPSAicmVnX3JlYWQiLA0KPiA+ID4gPiA+ID4gKwkudHlwZQk9 IFY0TDJfQ1RSTF9UWVBFX1UxNiwNCj4gPiA+ID4gPiA+ICsJLmRlZgk9IDAsDQo+ID4gPiA+ID4g PiArCS5taW4JPSAweDAwLA0KPiA+ID4gPiA+ID4gKwkubWF4CT0gMHhGRkZGLA0KPiA+ID4gPiA+ ID4gKwkuc3RlcAk9IDENCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gK3N0YXRpYyBpbnQgYWRkaTkwMzZfZW51bV9tYnVzX2NvZGUoc3RydWN0IHY0bDJfc3ViZGV2 ICpzZCwNCj4gPiA+ID4gPiA+ICsJCQkJICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcg KmNmZywNCj4gPiA+ID4gPiA+ICsJCQkJICAgc3RydWN0IHY0bDJfc3ViZGV2X21idXNfY29kZV9l bnVtDQo+ICpjb2RlKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJaWYgKGNvZGUtPmlu ZGV4ID4gMCkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gKwljb2RlLT5jb2RlID0gTUVESUFfQlVTX0ZNVF9TQkdHUjEyXzFYMTI7DQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVybiAwOw0KPiA+ID4gPiA+ID4gK30NCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X2VudW1fZnJhbWVf c2l6ZShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwNCj4gPiA+ID4gPiA+ICsJCQkJICAgIHN0 cnVjdCB2NGwyX3N1YmRldl9wYWRfY29uZmlnICpjZmcsDQo+ID4gPiA+ID4gPiArCQkJCSAgICBz dHJ1Y3QgdjRsMl9zdWJkZXZfZnJhbWVfc2l6ZV9lbnVtDQo+ICpmc2UpDQo+ID4gPiA+ID4gPiAr ew0KPiA+ID4gPiA+ID4gKwlpZiAoZnNlLT5jb2RlICE9IE1FRElBX0JVU19GTVRfU0JHR1IxMl8x WDEyKQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArCWlmIChmc2UtPmluZGV4ID49IEFSUkFZX1NJWkUoYWRkaTkwMzZfbW9kZV9pbmZv X2RhdGEpKQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArCWZzZS0+bWluX3dpZHRoID0gYWRkaTkwMzZfbW9kZV9pbmZvX2RhdGFbZnNl LT5pbmRleF0ud2lkdGg7DQo+ID4gPiA+ID4gPiArCWZzZS0+bWF4X3dpZHRoID0gYWRkaTkwMzZf bW9kZV9pbmZvX2RhdGFbZnNlLT5pbmRleF0ud2lkdGg7DQo+ID4gPiA+ID4gPiArCWZzZS0+bWlu X2hlaWdodCA9IGFkZGk5MDM2X21vZGVfaW5mb19kYXRhW2ZzZS0NCj4gPmluZGV4XS5oZWlnaHQ7 DQo+ID4gPiA+ID4gPiArCWZzZS0+bWF4X2hlaWdodCA9IGFkZGk5MDM2X21vZGVfaW5mb19kYXRh W2ZzZS0NCj4gPmluZGV4XS5oZWlnaHQ7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJl dHVybiAwOw0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0 aWMgc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqDQo+ID4gPiA+ID4gPiArYWRkaTkwMzZfZ2V0 X3BhZF9mb3JtYXQoc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiwNCj4gPiA+ID4gPiA+ICsJCQlz dHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyAqY2ZnLA0KPiA+ID4gPiA+ID4gKwkJCXVuc2ln bmVkIGludCBwYWQsDQo+ID4gPiA+ID4gPiArCQkJZW51bSB2NGwyX3N1YmRldl9mb3JtYXRfd2hl bmNlIHdoaWNoKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJc3dpdGNoICh3aGljaCkg ew0KPiA+ID4gPiA+ID4gKwljYXNlIFY0TDJfU1VCREVWX0ZPUk1BVF9UUlk6DQo+ID4gPiA+ID4g PiArCQlyZXR1cm4gdjRsMl9zdWJkZXZfZ2V0X3RyeV9mb3JtYXQoJmFkZGk5MDM2LT5zZCwgY2Zn LA0KPiBwYWQpOw0KPiA+ID4gPiA+ID4gKwljYXNlIFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkU6 DQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gJmFkZGk5MDM2LT5mbXQ7DQo+ID4gPiA+ID4gPiArCWRl ZmF1bHQ6DQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gTlVMTDsNCj4gPiA+ID4gPiA+ICsJfQ0KPiA+ ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGFkZGk5 MDM2X2dldF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwNCj4gPiA+ID4gPiA+ICsJCQkg ICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgKmNmZywNCj4gPiA+ID4gPiA+ICsJ CQkgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCAqZm9ybWF0KQ0KPiA+ID4gPiA+ID4g K3sNCj4gPiA+ID4gPiA+ICsJc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IHRvX2FkZGk5MDM2 KHNkKTsNCj4gPiA+ID4gPiA+ICsJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqcGFkX2Zvcm1h dDsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJcGFkX2Zvcm1hdCA9IGFkZGk5MDM2X2dl dF9wYWRfZm9ybWF0KGFkZGk5MDM2LCBjZmcsIGZvcm1hdC0NCj4gPnBhZCwNCj4gPiA+ID4gPiA+ ICsJCQkJCSAgICAgZm9ybWF0LT53aGljaCk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr CWlmICghcGFkX2Zvcm1hdCkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlmb3JtYXQtPmZvcm1hdCA9ICpwYWRfZm9ybWF0Ow0KPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ICt9DQo+ID4g PiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIHN0cnVjdCB2NGwyX3JlY3QgKg0KPiA+ID4g PiA+ID4gK2FkZGk5MDM2X2dldF9wYWRfY3JvcChzdHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2LA0K PiA+ID4gPiA+ID4gKwkJICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgKmNmZywN Cj4gPiA+ID4gPiA+ICsJCSAgICAgIHVuc2lnbmVkIGludCBwYWQsIGVudW0gdjRsMl9zdWJkZXZf Zm9ybWF0X3doZW5jZQ0KPiB3aGljaCkNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArCXN3 aXRjaCAod2hpY2gpIHsNCj4gPiA+ID4gPiA+ICsJY2FzZSBWNEwyX1NVQkRFVl9GT1JNQVRfVFJZ Og0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIHY0bDJfc3ViZGV2X2dldF90cnlfY3JvcCgmYWRkaTkw MzYtPnNkLCBjZmcsDQo+IHBhZCk7DQo+ID4gPiA+ID4gPiArCWNhc2UgVjRMMl9TVUJERVZfRk9S TUFUX0FDVElWRToNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAmYWRkaTkwMzYtPmNyb3A7DQo+ID4g PiA+ID4gPiArCWRlZmF1bHQ6DQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gTlVMTDsNCj4gPiA+ID4g PiA+ICsJfQ0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGFkZGk5MDM2X21vZGVfaW5mbyAqDQo+ID4gPiA+ID4gPiArYWRkaTkw MzZfZmluZF9uZWFyZXN0X21vZGUodW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVp Z2h0KQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJdW5zaWduZWQgaW50IGk7DQo+ID4g PiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWZvciAoaSA9IEFSUkFZX1NJWkUoYWRkaTkwMzZfbW9k ZV9pbmZvX2RhdGEpIC0gMTsgaSA+IDA7IGktLSkgew0KPiA+ID4gPiA+ID4gKwkJaWYgKGFkZGk5 MDM2X21vZGVfaW5mb19kYXRhW2ldLndpZHRoIDw9IHdpZHRoICYmDQo+ID4gPiA+ID4gPiArCQkg ICAgYWRkaTkwMzZfbW9kZV9pbmZvX2RhdGFbaV0uaGVpZ2h0IDw9IGhlaWdodCkNCj4gPiA+ID4g PiA+ICsJCQlicmVhazsNCj4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gKwlyZXR1cm4gJmFkZGk5MDM2X21vZGVfaW5mb19kYXRhW2ldOw0KPiA+ID4gPiA+ID4gK30N Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X3NldF9mb3Jt YXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwNCj4gPiA+ID4gPiA+ICsJCQkgICAgICAgc3RydWN0 IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgKmNmZywNCj4gPiA+ID4gPiA+ICsJCQkgICAgICAgc3Ry dWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCAqZm9ybWF0KQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4g PiA+ICsJc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IHRvX2FkZGk5MDM2KHNkKTsNCj4gPiA+ ID4gPiA+ICsJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqZnJhbWVmbXQ7DQo+ID4gPiA+ID4g PiArCXN0cnVjdCB2NGwyX3JlY3QgKmNyb3A7DQo+ID4gPiA+ID4gPiArCWNvbnN0IHN0cnVjdCBh ZGRpOTAzNl9tb2RlX2luZm8gKm5ld19tb2RlOw0KPiA+ID4gPiA+ID4gKwlpbnQgcmV0Ow0KPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlkZXZfZGJnKGFkZGk5MDM2LT5kZXYsICJzZXRfZm10 OiAleCAlZHglZFxuIiwNCj4gPiA+ID4gPiA+ICsJCWZvcm1hdC0+Zm9ybWF0LmNvZGUsIGZvcm1h dC0+Zm9ybWF0LndpZHRoLA0KPiA+ID4gPiA+ID4gKwkJZm9ybWF0LT5mb3JtYXQuaGVpZ2h0KTsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJY3JvcCA9IGFkZGk5MDM2X2dldF9wYWRfY3Jv cChhZGRpOTAzNiwgY2ZnLCBmb3JtYXQtPnBhZCwNCj4gPiA+ID4gPiA+ICsJCQkJICAgICBmb3Jt YXQtPndoaWNoKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKCFjcm9wKQ0KPiA+ ID4gPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr CW5ld19tb2RlID0gYWRkaTkwMzZfZmluZF9uZWFyZXN0X21vZGUoZm9ybWF0LQ0KPiA+Zm9ybWF0 LndpZHRoLA0KPiA+ID4gPiA+ID4gKwkJCQkJICAgICAgZm9ybWF0LT5mb3JtYXQuaGVpZ2h0KTsN Cj4gPiA+ID4gPiA+ICsJY3JvcC0+d2lkdGggPSBuZXdfbW9kZS0+d2lkdGg7DQo+ID4gPiA+ID4g PiArCWNyb3AtPmhlaWdodCA9IG5ld19tb2RlLT5oZWlnaHQ7DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArCWlmIChmb3JtYXQtPndoaWNoID09IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUp IHsNCj4gPiA+ID4gPiA+ICsJCXJldCA9IHY0bDJfY3RybF9zX2N0cmxfaW50NjQoYWRkaTkwMzYt PnBpeGVsX3JhdGUsDQo+ID4gPiA+ID4gPiArCQkJCQkgICAgIG5ld19tb2RlLT5waXhlbF9yYXRl KTsNCj4gPiA+ID4gPiA+ICsJCWlmIChyZXQgPCAwKQ0KPiA+ID4gPiA+ID4gKwkJCXJldHVybiBy ZXQ7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCQlyZXQgPSB2NGwyX2N0cmxfc19jdHJs KGFkZGk5MDM2LT5saW5rX2ZyZXEsDQo+ID4gPiA+ID4gPiArCQkJCSAgICAgICBuZXdfbW9kZS0+ bGlua19mcmVxX2lkeCk7DQo+ID4gPiA+ID4gPiArCQlpZiAocmV0IDwgMCkNCj4gPiA+ID4gPiA+ ICsJCQlyZXR1cm4gcmV0Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwkJYWRkaTkwMzYt PmN1cnJlbnRfbW9kZSA9IG5ld19tb2RlOw0KPiA+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiArCWZyYW1lZm10ID0gYWRkaTkwMzZfZ2V0X3BhZF9mb3JtYXQoYWRkaTkw MzYsIGNmZywgZm9ybWF0LQ0KPiA+cGFkLA0KPiA+ID4gPiA+ID4gKwkJCQkJICAgZm9ybWF0LT53 aGljaCk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWlmICghZnJhbWVmbXQpDQo+ID4g PiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJ ZnJhbWVmbXQtPndpZHRoID0gY3JvcC0+d2lkdGg7DQo+ID4gPiA+ID4gPiArCWZyYW1lZm10LT5o ZWlnaHQgPSBjcm9wLT5oZWlnaHQ7DQo+ID4gPiA+ID4gPiArCWZyYW1lZm10LT5jb2RlID0gTUVE SUFfQlVTX0ZNVF9TQkdHUjEyXzFYMTI7DQo+ID4gPiA+ID4gPiArCWZyYW1lZm10LT5maWVsZCA9 IFY0TDJfRklFTERfTk9ORTsNCj4gPiA+ID4gPiA+ICsJZnJhbWVmbXQtPmNvbG9yc3BhY2UgPSBW NEwyX0NPTE9SU1BBQ0VfU1JHQjsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJZm9ybWF0 LT5mb3JtYXQgPSAqZnJhbWVmbXQ7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVy biAwOw0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMg aW50IGFkZGk5MDM2X2VudGl0eV9pbml0X2NmZyhzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwN Cj4gPiA+ID4gPiA+ICsJCQkJICAgIHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfY29uZmlnICpjZmcp DQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0 IGZtdCA9IHsgMCB9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlpZiAoY2ZnKQ0KPiA+ ID4gPiA+ID4gKwkJZm10LndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFUX1RSWTsNCj4gPiA+ID4g PiA+ICsJZWxzZQ0KPiA+ID4gPiA+ID4gKwkJZm10LndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFU X0FDVElWRTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJZm10LmZvcm1hdC53aWR0aCA9 IDY0MDsNCj4gPiA+ID4gPiA+ICsJZm10LmZvcm1hdC5oZWlnaHQgPSA5NjA7DQo+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiArCWFkZGk5MDM2X3NldF9mb3JtYXQoc3ViZGV2LCBjZmcsICZmbXQp Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ICt9 DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBhZGRpOTAzNl9nZXRfc2Vs ZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsDQo+ID4gPiA+ID4gPiArCQkJCSAgc3RydWN0 IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgKmNmZywNCj4gPiA+ID4gPiA+ICsJCQkJICBzdHJ1Y3Qg djRsMl9zdWJkZXZfc2VsZWN0aW9uICpzZWwpDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4g KwlzdHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2ID0gdG9fYWRkaTkwMzYoc2QpOw0KPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gKwlpZiAoc2VsLT50YXJnZXQgIT0gVjRMMl9TRUxfVEdUX0NST1Ap DQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ICsJc2VsLT5yID0gKmFkZGk5MDM2X2dldF9wYWRfY3JvcChhZGRpOTAzNiwgY2ZnLCBzZWwt PnBhZCwgc2VsLQ0KPiA+d2hpY2gpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXR1 cm4gMDsNCj4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGlj IGludCBhZGRpOTAzNl9zX3N0cmVhbShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwgaW50IGVu YWJsZSkNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArCXN0cnVjdCBhZGRpOTAzNiAqYWRk aTkwMzYgPSB0b19hZGRpOTAzNihzdWJkZXYpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g KwlkZXZfZGJnKGFkZGk5MDM2LT5kZXYsICJzdHJlYW0gJWRcbiIsIGVuYWJsZSk7DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVybiAwOw0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X2NvcmVf b3BzIGFkZGk5MDM2X2NvcmVfb3BzID0gew0KPiA+ID4gPiA+ID4gKwkuc19wb3dlcgk9IGFkZGk5 MDM2X3NfcG93ZXIsDQo+ID4gPiA+ID4gPiArfTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3ZpZGVvX29wcyBhZGRpOTAzNl92aWRl b19vcHMgPSB7DQo+ID4gPiA+ID4gPiArCS5zX3N0cmVhbQk9IGFkZGk5MDM2X3Nfc3RyZWFtLA0K PiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0 IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIGFkZGk5MDM2X3N1YmRldl9wYWRfb3BzID0NCj4g ew0KPiA+ID4gPiA+ID4gKwkuaW5pdF9jZmcJCT0gYWRkaTkwMzZfZW50aXR5X2luaXRfY2ZnLA0K PiA+ID4gPiA+ID4gKwkuZW51bV9tYnVzX2NvZGUJCT0gYWRkaTkwMzZfZW51bV9tYnVzX2NvZGUs DQo+ID4gPiA+ID4gPiArCS5lbnVtX2ZyYW1lX3NpemUJPSBhZGRpOTAzNl9lbnVtX2ZyYW1lX3Np emUsDQo+ID4gPiA+ID4gPiArCS5nZXRfZm10CQk9IGFkZGk5MDM2X2dldF9mb3JtYXQsDQo+ID4g PiA+ID4gPiArCS5zZXRfZm10CQk9IGFkZGk5MDM2X3NldF9mb3JtYXQsDQo+ID4gPiA+ID4gPiAr CS5nZXRfc2VsZWN0aW9uCQk9IGFkZGk5MDM2X2dldF9zZWxlY3Rpb24sDQo+ID4gPiA+ID4gPiAr fTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJf c3ViZGV2X29wcyBhZGRpOTAzNl9zdWJkZXZfb3BzID0gew0KPiA+ID4gPiA+ID4gKwkuY29yZQk9 ICZhZGRpOTAzNl9jb3JlX29wcywNCj4gPiA+ID4gPiA+ICsJLnZpZGVvCT0gJmFkZGk5MDM2X3Zp ZGVvX29wcywNCj4gPiA+ID4gPiA+ICsJLnBhZAk9ICZhZGRpOTAzNl9zdWJkZXZfcGFkX29wcywN Cj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBpbnQg YWRkaTkwMzZfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkNCj4gPiA+ID4gPiA+ICt7 DQo+ID4gPiA+ID4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZjbGllbnQtPmRldjsNCj4gPiA+ ID4gPiA+ICsJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmVuZHBvaW50Ow0KPiA+ID4gPiA+ID4gKwlz dHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2Ow0KPiA+ID4gPiA+ID4gKwlpbnQgcmV0Ow0KPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlkZXZfZGJnKGRldiwgIiVzOiBpMmMgYWRkciA9IDB4JXhc biIsIF9fZnVuY19fLCBjbGllbnQtPmFkZHIpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g KwlhZGRpOTAzNiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZihzdHJ1Y3QgYWRkaTkwMzYpLA0K PiBHRlBfS0VSTkVMKTsNCj4gPiA+ID4gPiA+ICsJaWYgKCFhZGRpOTAzNikNCj4gPiA+ID4gPiA+ ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlhZGRpOTAz Ni0+ZGV2ID0gZGV2Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlhZGRpOTAzNi0+cmVn bWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LA0KPiA+ID4gPiA+ID4gKw0KPiAJJmFk ZGk5MDM2X2kyY19yZWdtYXBfY29uZmlnKTsNCj4gPiA+ID4gPiA+ICsJaWYgKElTX0VSUihhZGRp OTAzNi0+cmVnbWFwKSkgew0KPiA+ID4gPiA+ID4gKwkJZGV2X2VycihkZXYsICJFcnJvciBpbml0 aWFsaXppbmcgaTJjIHJlZ21hcFxuIik7DQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gUFRSX0VSUihh ZGRpOTAzNi0+cmVnbWFwKTsNCj4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gKwltdXRleF9pbml0KCZhZGRpOTAzNi0+cG93ZXJfbG9jayk7DQo+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiArCWVuZHBvaW50ID0NCj4gZndub2RlX2dyYXBoX2dldF9uZXh0X2VuZHBv aW50KGRldl9md25vZGUoZGV2KSwgTlVMTCk7DQo+ID4gPiA+ID4gPiArCWlmICghZW5kcG9pbnQp IHsNCj4gPiA+ID4gPiA+ICsJCWRldl9lcnIoZGV2LCAiZW5kcG9pbnQgbm9kZSBub3QgZm91bmRc biIpOw0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ID4gPiArCX0NCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJcmV0ID0gdjRsMl9md25vZGVfZW5kcG9pbnRfcGFy c2UoZW5kcG9pbnQsICZhZGRpOTAzNi0+ZXApOw0KPiA+ID4gPiA+ID4gKwlpZiAocmV0IDwgMCkg ew0KPiA+ID4gPiA+ID4gKwkJZGV2X2VycihkZXYsICJwYXJzaW5nIGVuZHBvaW50IG5vZGUgZmFp bGVkXG4iKTsNCj4gPiA+ID4gPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gPiA+ID4gPiArCX0NCj4g PiA+ID4gPiA+ICsJZndub2RlX2hhbmRsZV9wdXQoZW5kcG9pbnQpOw0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gKwlpZiAoYWRkaTkwMzYtPmVwLmJ1c190eXBlICE9IFY0TDJfTUJVU19DU0ky X0RQSFkpIHsNCj4gPiA+ID4gPiA+ICsJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBidXMgdHlwZSwg bXVzdCBiZSBNSVBJIENTSTJcbiIpOw0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJYWRkaTkwMzYtPnJz dF9ncGlvID0gZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwNCj4gR1BJT0RfT1VUX0hJ R0gpOw0KPiA+ID4gPiA+ID4gKwlpZiAoSVNfRVJSKGFkZGk5MDM2LT5yc3RfZ3BpbykpIHsNCj4g PiA+ID4gPiA+ICsJCWRldl9pbmZvKGRldiwgIlVuYWJsZSB0byBnZXQgXCJyZXNldFwiIGdwaW9c biIpOw0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIFBUUl9FUlIoYWRkaTkwMzYtPnJzdF9ncGlvKTsN Cj4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwl2NGwyX2N0cmxf aGFuZGxlcl9pbml0KCZhZGRpOTAzNi0+Y3RybHMsIDQpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gKwlhZGRpOTAzNi0+cGl4ZWxfcmF0ZSA9IHY0bDJfY3RybF9uZXdfc3RkKCZhZGRpOTAz Ni0+Y3RybHMsDQo+ID4gPiA+ID4gPiArCQkJCQkJICAmYWRkaTkwMzZfY3RybF9vcHMsDQo+ID4g PiA+ID4gPiArCQkJCQkJICBWNEwyX0NJRF9QSVhFTF9SQVRFLA0KPiA+ID4gPiA+ID4gKwkJCQkJ CSAgMSwgSU5UX01BWCwgMSwgMSk7DQo+ID4gPiA+ID4gPiArCWFkZGk5MDM2LT5saW5rX2ZyZXEg PSB2NGwyX2N0cmxfbmV3X2ludF9tZW51KCZhZGRpOTAzNi0NCj4gPmN0cmxzLA0KPiA+ID4gPiA+ ID4gKwkJCQkJCSAgICAgJmFkZGk5MDM2X2N0cmxfb3BzLA0KPiA+ID4gPiA+ID4gKwkJCQkJCSAg ICAgVjRMMl9DSURfTElOS19GUkVRLA0KPiA+ID4gPiA+ID4gKwkJCQkJCSAgICAgQVJSQVlfU0la RSgNCj4gPiA+ID4gPiA+ICsJCQkJCQkJICAgICBsaW5rX2ZyZXFfdGJsKSAtDQo+IDEsDQo+ID4g PiA+ID4gPiArCQkJCQkJICAgICAwLCBsaW5rX2ZyZXFfdGJsKTsNCj4gPiA+ID4gPiA+ICsJaWYg KGFkZGk5MDM2LT5saW5rX2ZyZXEpDQo+ID4gPiA+ID4gPiArCQlhZGRpOTAzNi0+bGlua19mcmVx LT5mbGFncyB8PQ0KPiBWNEwyX0NUUkxfRkxBR19SRUFEX09OTFk7DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArCWFkZGk5MDM2LT5zZXRfY2hpcF9jb25maWcgPSB2NGwyX2N0cmxfbmV3X2N1 c3RvbSgmYWRkaTkwMzYtDQo+ID5jdHJscywNCj4gPiA+ID4gPiA+ICsNCj4gCSZhZGRpOTAzNl9j dHJsX2NoaXBfY29uZmlnLA0KPiA+ID4gPiA+ID4gKwkJCQkJCU5VTEwpOw0KPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gKwlhZGRpOTAzNi0+cmVnX3JlYWQgPSB2NGwyX2N0cmxfbmV3X2N1c3Rv bSgmYWRkaTkwMzYtPmN0cmxzLA0KPiA+ID4gPiA+ID4gKw0KPiAmYWRkaTkwMzZfY3RybF9yZWdf cmVhZCwNCj4gPiA+ID4gPiA+ICsJCQkJCQkgIE5VTEwpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gKwlhZGRpOTAzNi0+c2QuY3RybF9oYW5kbGVyID0gJmFkZGk5MDM2LT5jdHJsczsNCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKGFkZGk5MDM2LT5jdHJscy5lcnJvcikgew0K PiA+ID4gPiA+ID4gKwkJZGV2X2VycihkZXYsICIlczogY29udHJvbCBpbml0aWFsaXphdGlvbiBl cnJvciAlZFxuIiwNCj4gPiA+ID4gPiA+ICsJCQlfX2Z1bmNfXywgYWRkaTkwMzYtPmN0cmxzLmVy cm9yKTsNCj4gPiA+ID4gPiA+ICsJCXJldCA9IGFkZGk5MDM2LT5jdHJscy5lcnJvcjsNCj4gPiA+ ID4gPiA+ICsJCWdvdG8gZnJlZV9jdHJsOw0KPiA+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiArCXY0bDJfaTJjX3N1YmRldl9pbml0KCZhZGRpOTAzNi0+c2QsIGNsaWVu dCwNCj4gJmFkZGk5MDM2X3N1YmRldl9vcHMpOw0KPiA+ID4gPiA+ID4gKwlhZGRpOTAzNi0+c2Qu ZmxhZ3MgfD0gVjRMMl9TVUJERVZfRkxfSEFTX0RFVk5PREU7DQo+ID4gPiA+ID4gPiArCWFkZGk5 MDM2LT5wYWQuZmxhZ3MgPSBNRURJQV9QQURfRkxfU09VUkNFOw0KPiA+ID4gPiA+ID4gKwlhZGRp OTAzNi0+c2QuZGV2ID0gJmNsaWVudC0+ZGV2Ow0KPiA+ID4gPiA+ID4gKwlhZGRpOTAzNi0+c2Qu ZW50aXR5LmZ1bmN0aW9uID0gTUVESUFfRU5UX0ZfQ0FNX1NFTlNPUjsNCj4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ICsJcmV0ID0gbWVkaWFfZW50aXR5X3BhZHNfaW5pdCgmYWRkaTkwMzYtPnNk LmVudGl0eSwgMSwNCj4gJmFkZGk5MDM2LT5wYWQpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gKwlpZiAocmV0IDwgMCkgew0KPiA+ID4gPiA+ID4gKwkJZGV2X2VycihkZXYsICJjb3VsZCBu b3QgcmVnaXN0ZXIgbWVkaWEgZW50aXR5XG4iKTsNCj4gPiA+ID4gPiA+ICsJCWdvdG8gZnJlZV9j dHJsOw0KPiA+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldCA9 IGFkZGk5MDM2X3NfcG93ZXIoJmFkZGk5MDM2LT5zZCwgdHJ1ZSk7DQo+ID4gPiA+ID4gPiArCWlm IChyZXQgPCAwKSB7DQo+ID4gPiA+ID4gPiArCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBwb3dl ciB1cCBhZGRpOTAzNlxuIik7DQo+ID4gPiA+ID4gPiArCQlnb3RvIGZyZWVfZW50aXR5Ow0KPiA+ ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWRldl9pbmZvKGRldiwg ImFkZGk5MDM2IGRldGVjdGVkIGF0IGFkZHJlc3MgMHglMDJ4XG4iLCBjbGllbnQtDQo+ID5hZGRy KTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJcmV0ID0gYWRkaTkwMzZfc19wb3dlcigm YWRkaTkwMzYtPnNkLCBmYWxzZSk7DQo+ID4gPiA+ID4gPiArCWlmIChyZXQgPCAwKSB7DQo+ID4g PiA+ID4gPiArCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBwb3dlciBkb3duIGFkZGk5MDM2XG4i KTsNCj4gPiA+ID4gPiA+ICsJCWdvdG8gZnJlZV9lbnRpdHk7DQo+ID4gPiA+ID4gPiArCX0NCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJYWRkaTkwMzZfZW50aXR5X2luaXRfY2ZnKCZhZGRp OTAzNi0+c2QsIE5VTEwpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlyZXQgPSB2NGwy X2FzeW5jX3JlZ2lzdGVyX3N1YmRldigmYWRkaTkwMzYtPnNkKTsNCj4gPiA+ID4gPiA+ICsJaWYg KHJldCA8IDApDQo+ID4gPiA+ID4gPiArCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCByZWdpc3Rl ciB2NGwyIGRldmljZVxuIik7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVybiAw Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK2ZyZWVfZW50aXR5Og0KPiA+ID4gPiA+ID4g KwltZWRpYV9lbnRpdHlfY2xlYW51cCgmYWRkaTkwMzYtPnNkLmVudGl0eSk7DQo+ID4gPiA+ID4g PiArZnJlZV9jdHJsOg0KPiA+ID4gPiA+ID4gKwl2NGwyX2N0cmxfaGFuZGxlcl9mcmVlKCZhZGRp OTAzNi0+Y3RybHMpOw0KPiA+ID4gPiA+ID4gKwltdXRleF9kZXN0cm95KCZhZGRpOTAzNi0+cG93 ZXJfbG9jayk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVybiByZXQ7DQo+ID4g PiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBpbnQgYWRkaTkw MzZfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpDQo+ID4gPiA+ID4gPiArew0KPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkID0gaTJjX2dldF9jbGllbnRkYXRhKGNs aWVudCk7DQo+ID4gPiA+ID4gPiArCXN0cnVjdCBhZGRpOTAzNiAqYWRkaTkwMzYgPSB0b19hZGRp OTAzNihzZCk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXY0bDJfYXN5bmNfdW5yZWdp c3Rlcl9zdWJkZXYoJmFkZGk5MDM2LT5zZCk7DQo+ID4gPiA+ID4gPiArCW1lZGlhX2VudGl0eV9j bGVhbnVwKCZhZGRpOTAzNi0+c2QuZW50aXR5KTsNCj4gPiA+ID4gPiA+ICsJaWYgKGFkZGk5MDM2 LT5yc3RfZ3BpbykNCj4gPiA+ID4gPiA+ICsJCWdwaW9kX3B1dChhZGRpOTAzNi0+cnN0X2dwaW8p Ow0KPiA+ID4gPiA+ID4gKwl2NGwyX2N0cmxfaGFuZGxlcl9mcmVlKCZhZGRpOTAzNi0+Y3RybHMp Ow0KPiA+ID4gPiA+ID4gKwltdXRleF9kZXN0cm95KCZhZGRpOTAzNi0+cG93ZXJfbG9jayk7DQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCXJldHVybiAwOw0KPiA+ID4gPiA+ID4gK30NCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2Vf aWQgYWRkaTkwMzZfaWRbXSA9IHsNCj4gPiA+ID4gPiA+ICsJeyAiYWRkaTkwMzYiLCAwIH0sDQo+ ID4gPiA+ID4gPiArCXt9DQo+ID4gPiA+ID4gPiArfTsNCj4gPiA+ID4gPiA+ICtNT0RVTEVfREVW SUNFX1RBQkxFKGkyYywgYWRkaTkwMzZfaWQpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFkZGk5MDM2X29mX21hdGNoW10gPSB7 DQo+ID4gPiA+ID4gPiArCXsgLmNvbXBhdGlibGUgPSAiYWRpLGFkZGk5MDM2IiB9LA0KPiA+ID4g PiA+ID4gKwl7IC8qIHNlbnRpbmVsICovIH0NCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4g K01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFkZGk5MDM2X29mX21hdGNoKTsNCj4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgYWRkaTkwMzZfaTJjX2Ry aXZlciA9IHsNCj4gPiA+ID4gPiA+ICsJLmRyaXZlcgkJCT0gew0KPiA+ID4gPiA+ID4gKwkJLm9m X21hdGNoX3RhYmxlID0gYWRkaTkwMzZfb2ZfbWF0Y2gsDQo+ID4gPiA+ID4gPiArCQkubmFtZQkJ PSAiYWRkaTkwMzYiLA0KPiA+ID4gPiA+ID4gKwl9LA0KPiA+ID4gPiA+ID4gKwkucHJvYmVfbmV3 CQk9IGFkZGk5MDM2X3Byb2JlLA0KPiA+ID4gPiA+ID4gKwkucmVtb3ZlCQkJPSBhZGRpOTAzNl9y ZW1vdmUsDQo+ID4gPiA+ID4gPiArCS5pZF90YWJsZQkJPSBhZGRpOTAzNl9pZCwNCj4gPiA+ID4g PiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK21vZHVsZV9pMmNfZHJpdmVyKGFk ZGk5MDM2X2kyY19kcml2ZXIpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK01PRFVMRV9E RVNDUklQVElPTigiQW5hbG9nIERldmljZXMgQURESTkwMzYgQ2FtZXJhIERyaXZlciIpOw0KPiA+ ID4gPiA+ID4gK01PRFVMRV9BVVRIT1IoIkJvZ2RhbiBUb2dvcmVhbiIpOw0KPiA+ID4gPiA+ID4g K01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsNCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDIt DQo+IGNvbnRyb2xzLmgNCj4gPiA+ID4gPiA+IGluZGV4IDYyMjcxNDE4YzFiZS4uZjg4YjU2NDc5 YmMxIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29u dHJvbHMuaA0KPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJv bHMuaA0KPiA+ID4gPiA+ID4gQEAgLTE5OCw2ICsxOTgsMTIgQEAgZW51bSB2NGwyX2NvbG9yZngg ew0KPiA+ID4gPiA+ID4gICAqLw0KPiA+ID4gPiA+ID4gICNkZWZpbmUgVjRMMl9DSURfVVNFUl9B VE1FTF9JU0NfQkFTRSAJKFY0TDJfQ0lEX1VTRVJfQkFTRSArDQo+IDB4MTBjMCkNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArLyoNCj4gPiA+ID4gPiA+ICsgKiBUaGUgYmFzZSBmb3IgdGhlIGFk ZGk5MDM2IGRyaXZlciBjb250cm9scy4NCj4gPiA+ID4gPiA+ICsgKiBXZSByZXNlcnZlIDE2IGNv bnRyb2xzIGZvciB0aGlzIGRyaXZlci4NCj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICsj ZGVmaW5lIFY0TDJfQ0lEX1VTRVJfQURESTkwMzZfQkFTRSAJKFY0TDJfQ0lEX1VTRVJfQkFTRSAr DQo+IDB4MTBlMCkNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAvKiBNUEVHLWNsYXNzIGNv bnRyb2wgSURzICovDQo+ID4gPiA+ID4gPiAgLyogVGhlIE1QRUcgY29udHJvbHMgYXJlIGFwcGxp Y2FibGUgdG8gYWxsIGNvZGVjIGNvbnRyb2xzDQo+ID4gPiA+ID4gPiAgICogYW5kIHRoZSAnTVBF RycgcGFydCBvZiB0aGUgZGVmaW5lIGlzIGhpc3RvcmljYWwgKi8NCj4gDQo+IC0tDQo+IFJlZ2Fy ZHMsDQo+IA0KPiBMYXVyZW50IFBpbmNoYXJ0DQo=