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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DBC2AC32771 for ; Wed, 28 Sep 2022 10:03:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References:Cc:To:From: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6e5V6dJ5iMyJOk03S0rakkgMwSwBt+nyBSkUDdWAGww=; b=OE1zzYmN9NY9xmtebONettNI1B R6laWsBzQRSI3O9Nk7hgUaa54ZV+wzctA5h137XI62Db4RPOTW5WYA6RZPOh3+xDaNjVAJzS1LXO/ 4Jeu5782KZ02R62OSrok4Ue+xuh7jhI0z+2avZSyS29qA3HtXSjrTZasyLr2xprJnKIMpyBAMQX97 lhMZkZ884q4ns+tUOgSrrWuy8kBFq6oB6JkCK/CN1mDcldHpg5Rk6N9rCludDKEMoRbuEJLokIbSn xG65MVnjIgqhNh6tH9kOfpczurvpzXx6a9IcEekXqE4Z+yQSjjABDYQqowahEN0bV7pf8a0WBWuDv Ai+wo1BQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1odTtG-00FSJY-Ej; Wed, 28 Sep 2022 10:02:06 +0000 Received: from mail-db8eur05on2055.outbound.protection.outlook.com ([40.107.20.55] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1odTtB-00FSIM-TM for linux-arm-kernel@lists.infradead.org; Wed, 28 Sep 2022 10:02:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EtUqj5KU1B962AHmsr40aXoNdl39TsqWWnTgLH5ItibXp8rQsF5jmiGd0f6MST77fSouPJitnDXPRjXrhQBvSwrjns8woGqruJo9NwFUUrttrt5LTawpntP0xMJNyvy/iOdnGWuMNrjh5vwiTRwcbG1Lo1xuZLk1IP9f7zHbQfzP3Q7TFcN5XGm4jQQS2FJNuq6Sn3y1xcsv3Rzm7Q3IFP3Nun65H9DRGM+Rc3FBchTgr190R7R5MFDBo5CdpMXb9+xpW0ey1pdnWMaiZzDpTzt70xipCO0tOCpcTCavx4lqPpoRnDpEo4d8y7ApBB424Drjz2AswFRl72y1LlxY4w== 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=0qg4QrkZAS7SnTEJlwTu7IEj0IWGQUf7CViadMbdFUA=; b=dnOon4l+VJtMruMCY/PPcZ0kVTJnozYXBt64wAN/0krlz89fPmPgTgdGS2kpYkkj4dAtqFChBMQR4v8llV5n2Iv8YWOgZXRFvSxqPzHUro/Suc48vWzocCEqF4y30NdgjoxZpy8CIMLWGER9olOfi/9Yj0+EnJzAHn82gy/u07xlRpzwD8NC6qGZMk4IjQEcloApf/XZF+dYZWLd02ESg/zHGdV2dqn5Cb7O3Zp16J829WxYfgrOwYlqgmWQ+YZXvuo+uYKMw527c391qbtq8cm4uczL568UUsA8H0FhiJ8iewlqqJTVGsIvmSdhVsludOxQcCHKhBms6tGPmZ/Qiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0qg4QrkZAS7SnTEJlwTu7IEj0IWGQUf7CViadMbdFUA=; b=ODkf69EACg2Bj+zbSGCTyI2HoSVYLsUkpTwBQvgS5qvpJdo1rwOxFHen6v0Gm5azZN2RneDM88Ju9Gsnn4JyYJtqFtSrRjwd+ihVl/GQtggJMd3fVyJCQBvJ7+/3OgqeosGr5OEvUyi1uJysKzVM1u/ksqif9i67ugjqt185cPs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by PAXPR04MB8427.eurprd04.prod.outlook.com (2603:10a6:102:1cd::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.15; Wed, 28 Sep 2022 10:01:56 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::1eb:dcf:8fd7:867]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::1eb:dcf:8fd7:867%5]) with mapi id 15.20.5654.025; Wed, 28 Sep 2022 10:01:56 +0000 Message-ID: <65b7224d-d3eb-4513-d733-ec781864fb7b@oss.nxp.com> Date: Wed, 28 Sep 2022 18:01:45 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.0 Subject: Re: [PATCH V5 3/6] remoteproc: imx_rproc: support attaching to i.MX8QXP M4 Content-Language: en-US From: Peng Fan To: Mathieu Poirier , Peng Fan Cc: "robh+dt@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "linux-remoteproc@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Bjorn Andersson References: <20220824011023.1493050-1-peng.fan@oss.nxp.com> <20220824011023.1493050-4-peng.fan@oss.nxp.com> <20220926232127.GB2817947@p14s> <20220927175649.GB2883698@p14s> <64c6bdc2-583d-a2d0-f8b8-c4487f8a4d97@oss.nxp.com> In-Reply-To: <64c6bdc2-583d-a2d0-f8b8-c4487f8a4d97@oss.nxp.com> X-ClientProxiedBy: SG3P274CA0006.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::18) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|PAXPR04MB8427:EE_ X-MS-Office365-Filtering-Correlation-Id: f0878ada-13bc-4cde-9f20-08daa13879e2 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jVqdl7oiVF7el8K6+GLOr7xE3B6omhwDfqAIuaAaclioOClbNRsZsICFsP3j0BMccucBxrCp1h7vfIbZgCbulzU2xlisoBI6ecnJ6ifJDjWphPVCtsG4SfzRltEavR0VXS83csu1e5QWPLBs7ZtL5tqKABJzoPitm7TafH6JG71dO3D/h4vrPViQ1Ix6f7V9beNp7XlMJn1+6kxToNw1hSES4Z0vxOnrxylwDhFBvK41HIXiKK5u9ov9yWmZkpgBgpdkVcn1dVThGAQBL+B/3lqOR2yNonm7piXuLuIQWgD10rLbB135ZaqoejEPWMt5z+hz0KJ9dQsxdIS0NL2orly9TOrDN6eXBc3wPEDPCF9mVtslFuTLdUn0I7GUMsHd/Yyg9XAJEohzRO83NNHWDGx+tpzDn1mebpfRIcU7SZuLxBSw0Yp+NhYrZ2IiILyjgsyOnbPHj60/nN/3csgVHAOST10lZOau2+Si5EYEZWm2NXlNR0t9HzFYk45AC4ozdnhn1/y/Jc1ygx2CkOsRSQjCs5LFhst7vzvnFPVMR058hDZAimu3RtWierFeQdZq6fng53YFasJrARuP0yTLKQV/sgkQFxVny4yCLP8tcUNEskaH4gJ1+JaL6eYWhtgslLk2599wZFtJJ9ZjcYvJRbum69ZexputQUCQ7TxUoJ/WV4XqwARrtPGis+ddGQt6RTHZ35zQQS3N+rYFvjstWtCmJ2kYXdEHdqU31nioVKCHBwnqx/NKYNmPexQ5/tHbulkq4nTn9o0F+nnryhzsQRKKuc8svpld8aJBrVr1yvvfwUnOa26xmynZvMgeZrvbtbTp2B0kEx6xIbJjcbamq4WmCT1ytz7Oxb4qEVh4iyc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(376002)(346002)(39860400002)(136003)(451199015)(44832011)(966005)(31686004)(45080400002)(30864003)(6512007)(53546011)(38350700002)(6486002)(8936002)(110136005)(38100700002)(6506007)(8676002)(4326008)(2906002)(2616005)(41300700001)(31696002)(86362001)(83380400001)(52116002)(6666004)(7416002)(66946007)(54906003)(478600001)(316002)(26005)(66556008)(186003)(5660300002)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QmFhbWdpRUdTTlg0cGkzRkpDUWNSZis1L3V6UnhibXR2aW1XWTZkQmlubzMz?= =?utf-8?B?RlRzOXJ0U2ovNU5ja3BLTkNtdEpjbnlMODlMbDhLOVlQQ3FrNENTRzloak9k?= =?utf-8?B?d2VVYURoK2xYeng3d3VZWXhNK0xTdzlXcUpUbXdNZ01PNkxHMFZkalc3QjhK?= =?utf-8?B?bHMvZ2VwZmdoL2dDcjIzSkIzMURqRlVXSVIvZEZrU2dUM0F1eFNscmdLRGNV?= =?utf-8?B?NzhqSVRRWjZNZXh2MmZNQUk1N2hyMjhHTkkvcEVGN29IRmVhcmxYc1lGaWw0?= =?utf-8?B?S1lYL1YyVjJzeTU4NGhZQnE5UG1xdnk3Y0cwaVFtS1FCckduUHY2ZEVhWFdB?= =?utf-8?B?QzZFbVFjc3RTV3lGSEgwelJzUlQzZW44VzMxMnprT3hhS0d2U3dPdkFvWS9U?= =?utf-8?B?UWg1aXFFMzZpZjAvVG9XUXRsaDdLN0tCSDVhMllmM3BnR1BkMWFQUWtkYVFz?= =?utf-8?B?aW5UQVhCSjhFc09uTFRJTlkydnlLcGRZbE0rajJVS1lrOWQ3Z096Qnd4dWlV?= =?utf-8?B?UmdLZUlZa1ZvSHFRWmIxT3lBc0JKeG1jZFJEdVd4VEJaMXNnMTg4S0VQS3JM?= =?utf-8?B?L3p4UHlNaFJKbm1UZWZrSENFZnFOcWNVc1VBclZkeEU3SmFOdWZSd2xQNDk3?= =?utf-8?B?d25xMkxsVE1vQXorTkJkNW8wMXlFOXFQb1E5bVVpeDl3S0VHQ2lwRG0zUGVr?= =?utf-8?B?bkw2eW5MWnpzZWVtK2F1dzhXeEZVaS8rdk5FWTVZUVI3NkdQUHV4QURhY2lZ?= =?utf-8?B?ZFNxTmxnWGNTSHVnYVpyUVE4MzlSUUpBK0JCY1N2cEdhWVFrQ3VBcHE2VTBi?= =?utf-8?B?c0JSbHNHckgvMXJGRVhHMUVxUnNndlk3QmgxWEYwZmtEKzI3NW1UNnVmWGd6?= =?utf-8?B?ZXlqQmxZQ1NjNmthVWhSdFlPcmtIQzhSbHRER0hnL2ZQeUpFV0ZUTzJSdVlS?= =?utf-8?B?ODhFU2NvNzVXM0J3VWlRazJLSE5PUDFaRk9ES3o1UU9pZXhMS0hvSUtTVE1a?= =?utf-8?B?YUtGbGlUcGZ4Q0Z5KzU0ank4VnVmdzIyaVpjVUNhMDB3WVVLNmNLL0U5VmFO?= =?utf-8?B?cUpvUUloWlVZbUJCZWtjZUtOczlTbzE1cGVaTVVHS1lCUjA5K3ovYkdyMHJ4?= =?utf-8?B?K0hidEpsbDdhUjhTS25sRXZSd1QwbW03U0ZYc3VMN29FNUd0eC9zZlVEMVlu?= =?utf-8?B?RVJDdS8va0llMnBLbmJjSHY2bkNBalNqaXpJV1dIMlg5VVJraHdKMnRkWjV3?= =?utf-8?B?L0NzS1VPWHdUQkxUb3NkZExVdlhQY3EyM3A5cVRWNVA3djdTQnZ4RisyK1lJ?= =?utf-8?B?cCtYZndoalp1Qlg2bXlxdG1JM2tDMHROeFhvaWExMzI3OXl2S3hIRGJFRjhN?= =?utf-8?B?bHkrWkhtcExnWFZFR3kwdFdjbS9EQ1FhRTYvL3BlWTdIOVFqeHl6Z2xreWFv?= =?utf-8?B?bE5tVks2Q004WVRoUW8rTVUwMDVWSUNVZUtUbVJqZG9QM1dtMmtzWXNQZ3BK?= =?utf-8?B?Smt1clFtNEszeWpIY0toc1lYU0hzS2pXQlN2RFlqVEFabCtTZ2pNS3lwekpx?= =?utf-8?B?bmMybHg1dDEzSk54di9DZktiOGd6dU1xWXcrTUdPU05LTHNsamdmYUtYUDBY?= =?utf-8?B?UkdwNEwrR1B6VjZlR0NHWHlpeThQNzhqdjFPenZTblgvRENFb0ZmeFh0alcr?= =?utf-8?B?QXpmVFlZd0NkbEVnV1NNZy9Fc05iRmFFZ3B2UnFwalF1T1dEc3JjNXc3MWIz?= =?utf-8?B?N2Y0OWM5UmtpM1dCWmR6WkZDd3RUWnNpNFdtdUE1c1NRcGJNQVRMSXE0NE1B?= =?utf-8?B?OFpKK1hOdkZQTmdhS0xnZHNqWkp2R3JZS3V5ZVhIczdPdzk5MmpwN3V3QTBq?= =?utf-8?B?TzkxYmJ2a3ZBcHFITlN1bE9SWmhka0NqSmhVODFqMU52Z2krQWpKSnhWbFRN?= =?utf-8?B?T29TZ0huK2ZTNnRoQW9kMlAyYVdiRnI0TjUxQkxIVXU1L0ZsVVcvamdrRW44?= =?utf-8?B?TGxhbWxncnZEamlaOUpQM202QWJOL1VLeERxUGJsbzFBM0Jub3pWSytxWHdF?= =?utf-8?B?NjVKc1QyUVhBbW5aTHpmcFdKNWdFOFNRR09lcTZOTTl4TkxySkpjVmpwUWkx?= =?utf-8?Q?7Nv1iaAXWDBLdd2tsu/VWIKD2?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0878ada-13bc-4cde-9f20-08daa13879e2 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 10:01:56.4463 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2HqAJ5F7AjsVN1bWeKEY601vJ0aYJA7K826vJLLVVThDTtE86LQ7v36OF9rIr81XCshIPfwU2ZlS/gjDhG7WHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8427 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220928_030202_109480_60E3FDFA X-CRM114-Status: GOOD ( 18.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWF0aGlldSwKCk9uIDkvMjgvMjAyMiAzOjM5IFBNLCBQZW5nIEZhbiB3cm90ZToKPiAKPiAK PiBPbiA5LzI4LzIwMjIgMTo1NiBBTSwgTWF0aGlldSBQb2lyaWVyIHdyb3RlOgo+PiBPbiBUdWUs IFNlcCAyNywgMjAyMiBhdCAwMjo0ODowMkFNICswMDAwLCBQZW5nIEZhbiB3cm90ZToKPj4+IEhp IE1hdGhpZXUsCj4+Pgo+Pj4gVGhhbmtzIGZvciByZXZpZXdpbmcgdGhpcyBwYXRjaHNldC4KPj4+ PiBTdWJqZWN0OiBSZTogW1BBVENIIFY1IDMvNl0gcmVtb3RlcHJvYzogaW14X3Jwcm9jOiBzdXBw b3J0IGF0dGFjaGluZyB0bwo+Pj4+IGkuTVg4UVhQIE00Cj4+Pj4KPj4+PiBPbiBXZWQsIEF1ZyAy NCwgMjAyMiBhdCAwOToxMDoyMEFNICswODAwLCBQZW5nIEZhbiAoT1NTKSB3cm90ZToKPj4+Pj4g RnJvbTogUGVuZyBGYW4gPHBlbmcuZmFuQG54cC5jb20+Cj4+Pj4+Cj4+Pj4+IFdoZW4gTTQgaXMg a2lja2VkIGJ5IFNDRlcsIE00IHJ1bnMgaW4gaXRzIG93biBoYXJkd2FyZSBwYXJ0aXRpb24sCj4+ Pj4+IExpbnV4IGNvdWxkIG9ubHkgZG8gSVBDIHdpdGggTTQsIGl0IGNvdWxkIG5vdCBzdGFydCwg c3RvcCwgdXBkYXRlIAo+Pj4+PiBpbWFnZS4KPj4+Pj4KPj4+Pj4gV2UgZGlzYWJsZSByZWNvdmVy eSByZWJvb3Qgd2hlbiBNNCBpcyBtYW5hZ2VkIGJ5IFNDRlcsIGJlY2F1c2UKPj4+Pj4gcmVtb3Rl cHJvYyBjb3JlIHN0aWxsIG5vdCBzdXBwb3J0IE00IGF1dG8tcmVjb3Zlcnkgd2l0aG91dCBsb2Fk aW5nCj4+Pj4+IGltYWdlLgo+Pj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBQZW5nIEZhbiA8cGVu Zy5mYW5AbnhwLmNvbT4KPj4+Pj4gLS0tCj4+Pj4+IMKgIGRyaXZlcnMvcmVtb3RlcHJvYy9pbXhf cnByb2MuYyB8IDEwOAo+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4+ Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+ Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3JlbW90ZXByb2MvaW14X3Jwcm9jLmMKPj4+ Pj4gYi9kcml2ZXJzL3JlbW90ZXByb2MvaW14X3Jwcm9jLmMgaW5kZXggN2NjNGZkMjA3ZTJkLi5i Y2JhNzRlOTAwMjAKPj4+Pj4gMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvcmVtb3RlcHJvYy9p bXhfcnByb2MuYwo+Pj4+PiArKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvaW14X3Jwcm9jLmMKPj4+ Pj4gQEAgLTYsNiArNiw3IEBACj4+Pj4+IMKgICNpbmNsdWRlIDxsaW51eC9hcm0tc21jY2MuaD4K Pj4+Pj4gwqAgI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+Pj4+PiDCoCAjaW5jbHVkZSA8bGludXgv ZXJyLmg+Cj4+Pj4+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUvaW14L3NjaS5oPgo+Pj4+PiDC oCAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4+Pj4+IMKgICNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KPj4+Pj4gwqAgI2luY2x1ZGUgPGxpbnV4L21haWxib3hfY2xpZW50Lmg+Cj4+Pj4+ IEBAIC01OSw2ICs2MCw4IEBACj4+Pj4+IMKgICNkZWZpbmUgSU1YX1NJUF9SUFJPQ19TVEFSVEVE wqDCoMKgwqDCoMKgwqAgMHgwMQo+Pj4+PiDCoCAjZGVmaW5lIElNWF9TSVBfUlBST0NfU1RPUMKg wqDCoMKgwqDCoMKgIDB4MDIKPj4+Pj4KPj4+Pj4gKyNkZWZpbmUgSU1YX1NDX0lSUV9HUk9VUF9S RUJPT1RFRMKgwqDCoCA1Cj4+Pj4+ICsKPj4+Pj4gwqAgLyoqCj4+Pj4+IMKgwqAgKiBzdHJ1Y3Qg aW14X3Jwcm9jX21lbSAtIHNsaW0gaW50ZXJuYWwgbWVtb3J5IHN0cnVjdHVyZQo+Pj4+PiDCoMKg ICogQGNwdV9hZGRyOiBNUFUgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcmVnaW9uIEBA IC04OSw2Cj4+Pj4+ICs5MiwxMCBAQCBzdHJ1Y3QgaW14X3Jwcm9jIHsKPj4+Pj4gwqDCoMKgwqDC oCBzdHJ1Y3Qgd29ya19zdHJ1Y3TCoMKgwqDCoMKgwqDCoCBycHJvY193b3JrOwo+Pj4+PiDCoMKg wqDCoMKgIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0wqDCoMKgwqDCoMKgwqAgKndvcmtxdWV1ZTsK Pj4+Pj4gwqDCoMKgwqDCoCB2b2lkIF9faW9tZW3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgICpyc2Nf dGFibGU7Cj4+Pj4+ICvCoMKgwqAgc3RydWN0IGlteF9zY19pcGPCoMKgwqDCoMKgwqDCoCAqaXBj X2hhbmRsZTsKPj4+Pj4gK8KgwqDCoCBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2vCoMKgwqDCoMKgwqDC oCBycHJvY19uYjsKPj4+Pj4gK8KgwqDCoCB1MzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcnByb2NfcHQ7wqDCoMKgIC8qIHBhcnRpdGlvbiBpZCAqLwo+Pj4+PiArwqDCoMKgIHUzMsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByc3JjX2lkO8KgwqDCoCAvKiByZXNvdXJjZSBp ZCAqLwo+Pj4+PiDCoCB9Owo+Pj4+Pgo+Pj4+PiDCoCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteF9y cHJvY19hdHQgaW14X3Jwcm9jX2F0dF9pbXg5M1tdID0geyBAQCAKPj4+Pj4gLTExNyw2Cj4+Pj4+ ICsxMjQsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcnByb2NfYXR0IGlteF9ycHJvY19h dHRfaW14OTNbXSA9IHsKPj4+Pj4gwqDCoMKgwqDCoCB7IDB4RDAwMDAwMDAsIDB4YTAwMDAwMDAs IDB4MTAwMDAwMDAsIDAgfSzCoCB9Owo+Pj4+Pgo+Pj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBp bXhfcnByb2NfYXR0IGlteF9ycHJvY19hdHRfaW14OHF4cFtdID0gewo+Pj4+PiArwqDCoMKgIHsg MHgwODAwMDAwMCwgMHgwODAwMDAwMCwgMHgxMDAwMDAwMCwgMCB9LAo+Pj4+PiArwqDCoMKgIC8q IFRDTUwvVSAqLwo+Pj4+PiArwqDCoMKgIHsgMHgxRkZFMDAwMCwgMHgzNEZFMDAwMCwgMHgwMDA0 MDAwMCwgQVRUX09XTiB8IEFUVF9JT01FTSB9LAo+Pj4+PiArwqDCoMKgIC8qIE9DUkFNKExvdyA5 NktCKSAqLwo+Pj4+PiArwqDCoMKgIHsgMHgyMTAwMDAwMCwgMHgwMDEwMDAwMCwgMHgwMDAxODAw MCwgMCB9LAo+Pj4+PiArwqDCoMKgIC8qIE9DUkFNICovCj4+Pj4+ICvCoMKgwqAgeyAweDIxMTAw MDAwLCAweDAwMTAwMDAwLCAweDAwMDQwMDAwLCAwIH0sCj4+Pj4+ICvCoMKgwqAgLyogRERSIChE YXRhKSAqLwo+Pj4+PiArwqDCoMKgIHsgMHg4MDAwMDAwMCwgMHg4MDAwMDAwMCwgMHg2MDAwMDAw MCwgMCB9LCB9Owo+Pj4+PiArCj4+Pj4+IMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14X3Jwcm9j X2F0dCBpbXhfcnByb2NfYXR0X2lteDhtbltdID0gewo+Pj4+PiDCoMKgwqDCoMKgIC8qIGRldiBh ZGRyICwgc3lzIGFkZHLCoCAsIHNpemXCoMKgwqDCoMKgwqDCoCAsIGZsYWdzICovCj4+Pj4+IMKg wqDCoMKgwqAgLyogSVRDTcKgwqAgKi8KPj4+Pj4gQEAgLTI1NSw2ICsyNzQsMTIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbXhfcnByb2NfZGNmZwo+Pj4+IGlteF9ycHJvY19jZmdfaW14OG1xID0g ewo+Pj4+PiDCoMKgwqDCoMKgIC5tZXRob2TCoMKgwqDCoMKgwqDCoCA9IElNWF9SUFJPQ19NTUlP LAo+Pj4+PiDCoCB9Owo+Pj4+Pgo+Pj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcnByb2Nf ZGNmZyBpbXhfcnByb2NfY2ZnX2lteDhxeHAgPSB7Cj4+Pj4+ICvCoMKgwqAgLmF0dMKgwqDCoMKg wqDCoMKgID0gaW14X3Jwcm9jX2F0dF9pbXg4cXhwLAo+Pj4+PiArwqDCoMKgIC5hdHRfc2l6ZcKg wqDCoCA9IEFSUkFZX1NJWkUoaW14X3Jwcm9jX2F0dF9pbXg4cXhwKSwKPj4+Pj4gK8KgwqDCoCAu bWV0aG9kwqDCoMKgwqDCoMKgwqAgPSBJTVhfUlBST0NfU0NVX0FQSSwKPj4+Pj4gK307Cj4+Pj4+ ICsKPj4+Pj4gwqAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfcnByb2NfZGNmZyBpbXhfcnByb2Nf Y2ZnX2lteDh1bHAgPSB7Cj4+Pj4+IMKgwqDCoMKgwqAgLmF0dMKgwqDCoMKgwqDCoMKgID0gaW14 X3Jwcm9jX2F0dF9pbXg4dWxwLAo+Pj4+PiDCoMKgwqDCoMKgIC5hdHRfc2l6ZcKgwqDCoCA9IEFS UkFZX1NJWkUoaW14X3Jwcm9jX2F0dF9pbXg4dWxwKSwKPj4+Pj4gQEAgLTY4MCw2ICs3MDUsMzcg QEAgc3RhdGljIHZvaWQgaW14X3Jwcm9jX2ZyZWVfbWJveChzdHJ1Y3QgcnByb2MKPj4+PiAqcnBy b2MpCj4+Pj4+IMKgwqDCoMKgwqAgbWJveF9mcmVlX2NoYW5uZWwocHJpdi0+cnhfY2gpOwo+Pj4+ PiDCoCB9Cj4+Pj4+Cj4+Pj4+ICtzdGF0aWMgdm9pZCBpbXhfcnByb2NfcHV0X3NjdShzdHJ1Y3Qg cnByb2MgKnJwcm9jKSB7Cj4+Pj4+ICvCoMKgwqAgc3RydWN0IGlteF9ycHJvYyAqcHJpdiA9IHJw cm9jLT5wcml2Owo+Pj4+PiArwqDCoMKgIGNvbnN0IHN0cnVjdCBpbXhfcnByb2NfZGNmZyAqZGNm ZyA9IHByaXYtPmRjZmc7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBpZiAoZGNmZy0+bWV0aG9kICE9 IElNWF9SUFJPQ19TQ1VfQVBJKQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+Pj4+PiAr Cj4+Pj4+ICvCoMKgwqAgaWYgKCFpbXhfc2Nfcm1faXNfcmVzb3VyY2Vfb3duZWQocHJpdi0+aXBj X2hhbmRsZSwgCj4+Pj4+IHByaXYtPnJzcmNfaWQpKQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0 dXJuOwo+Pj4+PiArCj4+Pj4+ICvCoMKgwqAgaW14X3NjdV9pcnFfZ3JvdXBfZW5hYmxlKElNWF9T Q19JUlFfR1JPVVBfUkVCT09URUQsCj4+Pj4gQklUKHByaXYtPnJwcm9jX3B0KSwgZmFsc2UpOwo+ Pj4+PiArwqDCoMKgIGlteF9zY3VfaXJxX3VucmVnaXN0ZXJfbm90aWZpZXIoJnByaXYtPnJwcm9j X25iKTsKPj4+Pj4gK30KPj4+Pj4gKwo+Pj4+PiArc3RhdGljIGludCBpbXhfcnByb2NfcGFydGl0 aW9uX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAo+Pj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQg Kmdyb3VwKSB7Cj4+Pj4+ICvCoMKgwqAgc3RydWN0IGlteF9ycHJvYyAqcHJpdiA9IGNvbnRhaW5l cl9vZihuYiwgc3RydWN0IGlteF9ycHJvYywKPj4+Pj4gK3Jwcm9jX25iKTsKPj4+Pj4gKwo+Pj4+ PiArwqDCoMKgIC8qIElnbm9yZSBvdGhlciBpcnFzICovCj4+Pj4+ICvCoMKgwqAgaWYgKCEoKGV2 ZW50ICYgQklUKHByaXYtPnJwcm9jX3B0KSkgJiYgKCoodTggKilncm91cCA9PQo+Pj4+IElNWF9T Q19JUlFfR1JPVVBfUkVCT09URUQpKSkKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+ Pj4+PiArCj4+Pj4+ICvCoMKgwqAgcnByb2NfcmVwb3J0X2NyYXNoKHByaXYtPnJwcm9jLCBSUFJP Q19XQVRDSERPRyk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBwcl9pbmZvKCJQYXJ0aXRpb24lZCBy ZXNldCFcbiIsIHByaXYtPnJwcm9jX3B0KTsKPj4+Pj4gKwo+Pj4+PiArwqDCoMKgIHJldHVybiAw Owo+Pj4+PiArfQo+Pj4+PiArCj4+Pj4+IMKgIHN0YXRpYyBpbnQgaW14X3Jwcm9jX2RldGVjdF9t b2RlKHN0cnVjdCBpbXhfcnByb2MgKnByaXYpwqAgewo+Pj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBy ZWdtYXBfY29uZmlnIGNvbmZpZyA9IHsgLm5hbWUgPSAiaW14LXJwcm9jIiB9OyBAQCAtNjg5LDYK Pj4+Pj4gKzc0NSw3IEBAIHN0YXRpYyBpbnQgaW14X3Jwcm9jX2RldGVjdF9tb2RlKHN0cnVjdCBp bXhfcnByb2MgKnByaXYpCj4+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IGFybV9zbWNjY19yZXMgcmVz Owo+Pj4+PiDCoMKgwqDCoMKgIGludCByZXQ7Cj4+Pj4+IMKgwqDCoMKgwqAgdTMyIHZhbDsKPj4+ Pj4gK8KgwqDCoCB1OCBwdDsKPj4+Pj4KPj4+Pj4gwqDCoMKgwqDCoCBzd2l0Y2ggKGRjZmctPm1l dGhvZCkgewo+Pj4+PiDCoMKgwqDCoMKgIGNhc2UgSU1YX1JQUk9DX05PTkU6Cj4+Pj4+IEBAIC02 OTksNiArNzU2LDUxIEBAIHN0YXRpYyBpbnQgaW14X3Jwcm9jX2RldGVjdF9tb2RlKHN0cnVjdAo+ Pj4+IGlteF9ycHJvYyAqcHJpdikKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXMuYTAp Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHByaXYtPnJwcm9jLT5zdGF0ZSA9IFJQ Uk9DX0RFVEFDSEVEOwo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+ICvC oMKgwqAgY2FzZSBJTVhfUlBST0NfU0NVX0FQSToKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldCA9 IGlteF9zY3VfZ2V0X2hhbmRsZSgmcHJpdi0+aXBjX2hhbmRsZSk7Cj4+Pj4+ICvCoMKgwqDCoMKg wqDCoCBpZiAocmV0KQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIoZGV2LT5vZl9u b2RlLCAiZnNsLHJlc291cmNlLWlkIiwKPj4+PiAmcHJpdi0+cnNyY19pZCk7Cj4+Pj4+ICvCoMKg wqDCoMKgwqDCoCBpZiAocmV0KSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9l cnIoZGV2LCAiTm8gZnNsLHJlc291cmNlLWlkIHByb3BlcnR5XG4iKTsKPj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4+Pj4g Kwo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgLyoKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBJZiBN Y29yZSByZXNvdXJjZSBpcyBub3Qgb3duZWQgYnkgQWNvcmUgcGFydGl0aW9uLCBJdCBpcwo+Pj4+ IGtpY2tlZCBieSBST00sCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICogYW5kIExpbnV4IGNvdWxk IG9ubHkgZG8gSVBDIHdpdGggTWNvcmUgYW5kIG5vdGhpbmcgZWxzZS4KPj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqAgKi8KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChpbXhfc2Nfcm1faXNfcmVzb3Vy Y2Vfb3duZWQocHJpdi0+aXBjX2hhbmRsZSwgcHJpdi0KPj4+Pj4gcnNyY19pZCkpCj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+Cj4+Pj4gSWYgaW14X3NjX3JtX2lz X3Jlc291cmNlX293bmVkKCkgcmV0dXJuICcxJyB0aGFuIHRoZSByZW1vdGUgCj4+Pj4gcHJvY2Vz c29yIGlzCj4+Pj4gdW5kZXIgTGludXgncyBjb250cm9sIGFuZCB3aGF0IGZvbGxvd3MgYmVsb3cg aXMgbm90IG5lZWRlZC7CoCBUaGF0IGlzIAo+Pj4+IGFsc28KPj4+PiBjb2hlcmVudCB3aXRoIHRo ZSBjb21tZW50IGluIFsxXS4KPj4+Cj4+PiBDYXNlIDE6IElmIE00IGlzIG93bmVkIGJ5IExpbnV4 LCBoZXJlIGRpcmVjdGx5IHJldHVybiAwLgo+Pj4gQ2FzZSAyOiBJZiBNNCBpcyBub3Qgb3duZWQg YnkgTGludXgsIHRoZSBmb2xsb3dpbmcgY29kZSBhZnRlciB0aGlzIAo+Pj4gbGluZSB3aWxsIHNl dAo+Pj4gc3RhdGUgYXMgUlBST0NfREVUQUNIRUQuCj4+Cj4+IEkgdW5kZXJzdGFuZCB0aGF0IHBh cnQuCj4+Cj4+Pgo+Pj4gUGF0Y2ggMy82KHRoaXMgcGF0Y2gpIGlzIG9ubHkgdG8gc3VwcG9ydCBj YXNlIDIuCj4+PiBQYXRjaCA0LzYgaXMgdG8gc3VwcG9ydCBjYXNlIDEuCj4+Pgo+Pgo+PiBMZXQn cyBsZWF2ZSB0aGUgc3Vic2VxdWVudCBwYXRjaGVzIGFsb25lIGZvciBub3cuCj4+Cj4+Pj4KPj4+ PiBUaGF0IGlzIGluIGNvbnRyYXN0IHdpdGggd2hhdCBpcyBoYXBwZW5pbmcgaW4gaW14X3Jwcm9j X3B1dF9zY3UoKS4gIAo+Pj4+IFRoZXJlLCBpZgo+Pj4+IHRoZSByZW1vdGUgcHJvY2Vzc29yIGlz IF9ub3RfIG93bmVkIGJ5IExpbnV4IHRoYW4gdGhlIGNvbmRpdGlvbiByZXR1cm5zCj4+Pj4gd2l0 aG91dCBjYWxsaW5nIGlteF9zY3VfaXJxX2dyb3VwX2VuYWJsZSgpIGFuZAo+Pj4+IGlteF9zY3Vf aXJxX3VucmVnaXN0ZXJfbm90aWZpZXIoKS7CoCBUaGF0IHNlZW1zIHRvIGJlIGEgYnVnLgo+Pj4K Pj4+IE5vLiBUaGUgdHdvIGZ1bmN0aW9ucyBvbmx5IG5lZWRlZCB3aGVuIE00IGlzIGluIGEgc2Vw YXJhdGUgaGFyZHdhcmUgCj4+PiBwYXJ0aXRpb24uCj4+Pgo+Pj4gVGhlIHNjdSBpcnEgaXMgb25s eSBuZWVkZWQgd2hlbiBNNCBpcyBvdXQgb2YgbGludXggY29udHJvbCBhbmQgbmVlZCBzb21lCj4+ PiBub3RpZmljYXRpb24gc3VjaCBhcyBNNCBpcyByZXNldCBieSBTQ1UoU3lzdGVtIENvbnRyb2wg VW5pdCkuIFRoYXQgCj4+PiBsaW51eCBnb3QKPj4+IG5vdGlmaWNhdGlvbiB0aGF0IE00IGlzIHJl c2V0IGJ5IFNDVS4KPj4KPj4gSSBhbHNvIHVuZGVyc3RhbmQgdGhhdCBwYXJ0Lgo+Pgo+PiBXaGF0 IEkgYW0gdW5kZXJsaW5pbmcgaGVyZSBpcyB0aGF0IHdoZW4gdGhlIE00IGlzIGluZGVwZW5kZW50 LCBmdW5jdGlvbgo+PiBpbXhfc2N1X2lycV9yZWdpc3Rlcl9ub3RpZmllcigpIGFuZCBpbXhfc2N1 X2lycV9ncm91cF9lbmFibGUoKSBhcmUgCj4+IGNhbGxlZCBidXQKPj4gdGhlaXIgY2xlYW51cCBl cXVpdmFsZW50IGFyZSBub3QgY2FsbGVkIGluIGlteF9ycHJvY19wdXRfc2N1KCkgYmVjYXVzZSAK Pj4gb2YgdGhlICchJwo+PiBpbiB0aGUgaWYoKSBzdGF0ZW1lbnQuCj4gCj4geW91IGFyZSByaWdo dCwgdGhpcyBpcyBidWcgaW4gbXkgc2lkZS4gSXQgc2hvdWxkIGJlIGFzIGJlbG93IGJhc2VkIG9u IAo+IHBhdGNoIDMvNi4KPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZW1vdGVwcm9jL2lteF9y cHJvYy5jIAo+IGIvZHJpdmVycy9yZW1vdGVwcm9jL2lteF9ycHJvYy5jCj4gaW5kZXggYmNiYTc0 ZTkwMDIwLi5hNTZhZWNhZTAwYzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL2lt eF9ycHJvYy5jCj4gKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL2lteF9ycHJvYy5jCj4gQEAgLTcx Myw3ICs3MTMsNyBAQCBzdGF0aWMgdm9pZCBpbXhfcnByb2NfcHV0X3NjdShzdHJ1Y3QgcnByb2Mg KnJwcm9jKQo+ICDCoMKgwqDCoMKgwqDCoCBpZiAoZGNmZy0+bWV0aG9kICE9IElNWF9SUFJPQ19T Q1VfQVBJKQo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+IAo+IC3C oMKgwqDCoMKgwqAgaWYgKCFpbXhfc2Nfcm1faXNfcmVzb3VyY2Vfb3duZWQocHJpdi0+aXBjX2hh bmRsZSwgcHJpdi0+cnNyY19pZCkpCj4gK8KgwqDCoMKgwqDCoCBpZiAoaW14X3NjX3JtX2lzX3Jl c291cmNlX293bmVkKHByaXYtPmlwY19oYW5kbGUsIHByaXYtPnJzcmNfaWQpKQo+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+IAo+IFRoYW5rcyBmb3IgZGV0YWlsZWQg cmV2aWV3aW5nLgoKSWYgeW91IGFyZSBmaW5lIHdpdGggdGhpcyBjaGFuZ2UsIEkgY291bGQgc2Vu ZCBvdXQgVjYuIEFueXdheSwgSSdsbCB3YWl0CnRvIHNlZSBpZiB5b3UgaGF2ZSBvdGhlciBjb21t ZW50cyBpbiB0aGlzIHBhdGNoc2V0LgoKVGhhbmtzLApQZW5nLgoKPiAKPiBUaGFua3MsCj4gUGVu Zy4KPiAKPj4KPj4+Cj4+Pj4KPj4+PiBUaGVyZSBpcyBhbHNvIGEgcHJvYmxlbSBpbiBwYXRjaCA0 LzYgYXNzb2NpYXRlZCB0byB0aGF0Lgo+Pj4KPj4+IElmIHRoZSB1cHBlciBleHBsYW5hdGlvbiBl bGltaW5hdGUgeW91ciBjb25jZXJuLCAiYSBwcm9ibGVtIGluIHBhdGNoIAo+Pj4gNC82IiBzaG91 bGQKPj4+IG5vdCBiZSBhIHByb2JsZW0uCj4+Pgo+Pj4gV2hlbiBNNCBpcyBvd25lZCBieSBMaW51 eCwgTGludXggbmVlZCBoYW5kbGUgdGhlIHBvd2VyIGRvbWFpbi4gSWYgTTQgCj4+PiBpcyBub3Qg b3duZWQKPj4+IGJ5IExpbnV4LCBTQ1UgZmlybXdhcmUgd2lsbCBoYW5kbGUgdGhlIHBvd2VyIGRv bWFpbiwgYW5kIExpbnV4IGhhcyBubyAKPj4+IHBlcm1pc3Npb24gdG8KPj4+IHRvdWNoIHRoYXQu Cj4+Pgo+Pj4gVGhhbmtzCj4+PiBQZW5nCj4+Pgo+Pj4+Cj4+Pj4gVGhhbmtzLAo+Pj4+IE1hdGhp ZXUKPj4+Pgo+Pj4+Cj4+Pj4gWzFdLgo+Pj4+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3Rl Y3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmVsaXhpcgo+Pj4+IC5ib290bGlu LmNvbSUyRmxpbnV4JTJGdjYuMC0KPj4+PiByYzclMkZzb3VyY2UlMkZkcml2ZXJzJTJGZmlybXdh cmUlMkZpbXglMkZybS5jJTIzTDI0JmFtcDtkYXRhPTAKPj4+PiA1JTdDMDElN0NwZW5nLmZhbiU0 MG54cC5jb20lN0NiZTY3OWU5YTQwOWE0OGI4MzRiOTA4ZGFhMDE1ZDkyCj4+Pj4gYyU3QzY4NmVh MWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2Mzc5OTgzMTI5NDY5MTMKPj4+ PiA3MTAlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpv aVYybHUKPj4+PiBNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCU3QyU3 QyU3QyZhbXA7c2RhdGE9Cj4+Pj4gSkRSdm9ER0dnRWlTbWJoajM0MTBWMkROeGFtWmJEbU1TMFUy R3ZCbkk3NCUzRCZhbXA7cmVzZXJ2ZWQKPj4+PiA9MAo+Pj4+Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDC oMKgwqDCoMKgIHByaXYtPnJwcm9jLT5zdGF0ZSA9IFJQUk9DX0RFVEFDSEVEOwo+Pj4+PiArwqDC oMKgwqDCoMKgwqAgcHJpdi0+cnByb2MtPnJlY292ZXJ5X2Rpc2FibGVkID0gdHJ1ZTsKPj4+Pj4g Kwo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgLyogR2V0IHBhcnRpdGlvbiBpZCBhbmQgZW5hYmxlIGly cSBpbiBTQ0ZXICovCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBpbXhfc2Nfcm1fZ2V0X3Jl c291cmNlX293bmVyKHByaXYtPmlwY19oYW5kbGUsCj4+Pj4gcHJpdi0+cnNyY19pZCwgJnB0KTsK Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXQpIHsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZGV2X2VycihkZXYsICJub3QgYWJsZSB0byBnZXQgcmVzb3VyY2Ugb3duZXJcbiIpOwo+ Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4+PiArwqDCoMKgwqDC oMKgwqAgfQo+Pj4+PiArCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBwcml2LT5ycHJvY19wdCA9IHB0 Owo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcHJpdi0+cnByb2NfbmIubm90aWZpZXJfY2FsbCA9IGlt eF9ycHJvY19wYXJ0aXRpb25fbm90aWZ5Owo+Pj4+PiArCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBy ZXQgPSBpbXhfc2N1X2lycV9yZWdpc3Rlcl9ub3RpZmllcigmcHJpdi0+cnByb2NfbmIpOwo+Pj4+ PiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkgewo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBkZXZfd2FybihkZXYsICJyZWdpc3RlciBzY3Ugbm90aWZpZXIgZmFpbGVkLlxuIik7Cj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDC oCB9Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldCA9Cj4+Pj4gaW14X3NjdV9pcnFf Z3JvdXBfZW5hYmxlKElNWF9TQ19JUlFfR1JPVVBfUkVCT09URUQsIEJJVChwcml2LQo+Pj4+PiBy cHJvY19wdCksCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHRydWUpOwo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkgewo+Pj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbXhfc2N1X2lycV91bnJlZ2lzdGVyX25vdGlmaWVy KCZwcml2LT5ycHJvY19uYik7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl93YXJu KGRldiwgIkVuYWJsZSBpcnEgZmFpbGVkLlxuIik7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldHVybiByZXQ7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ICsKPj4+Pj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+PiDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4+Pj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+Pj4gwqDCoMKgwqDCoCB9Cj4+Pj4+IEBAIC04MDMs NyArOTA1LDcgQEAgc3RhdGljIGludCBpbXhfcnByb2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZQo+Pj4+PiAqcGRldikKPj4+Pj4KPj4+Pj4gwqDCoMKgwqDCoCByZXQgPSBpbXhfcnByb2Nf Y2xrX2VuYWJsZShwcml2KTsKPj4+Pj4gwqDCoMKgwqDCoCBpZiAocmV0KQo+Pj4+PiAtwqDCoMKg wqDCoMKgwqAgZ290byBlcnJfcHV0X21ib3g7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGVy cl9wdXRfc2N1Owo+Pj4+Pgo+Pj4+PiDCoMKgwqDCoMKgIElOSVRfV09SSygmcHJpdi0+cnByb2Nf d29yaywgaW14X3Jwcm9jX3ZxX3dvcmspOwo+Pj4+Pgo+Pj4+PiBAQCAtODIwLDYgKzkyMiw4IEBA IHN0YXRpYyBpbnQgaW14X3Jwcm9jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UKPj4+Pj4g KnBkZXYpCj4+Pj4+Cj4+Pj4+IMKgIGVycl9wdXRfY2xrOgo+Pj4+PiDCoMKgwqDCoMKgIGNsa19k aXNhYmxlX3VucHJlcGFyZShwcml2LT5jbGspOwo+Pj4+PiArZXJyX3B1dF9zY3U6Cj4+Pj4+ICvC oMKgwqAgaW14X3Jwcm9jX3B1dF9zY3UocnByb2MpOwo+Pj4+PiDCoCBlcnJfcHV0X21ib3g6Cj4+ Pj4+IMKgwqDCoMKgwqAgaW14X3Jwcm9jX2ZyZWVfbWJveChycHJvYyk7Cj4+Pj4+IMKgIGVycl9w dXRfd2txOgo+Pj4+PiBAQCAtODM3LDYgKzk0MSw3IEBAIHN0YXRpYyBpbnQgaW14X3Jwcm9jX3Jl bW92ZShzdHJ1Y3QKPj4+PiBwbGF0Zm9ybV9kZXZpY2UKPj4+Pj4gKnBkZXYpCj4+Pj4+Cj4+Pj4+ IMKgwqDCoMKgwqAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7Cj4+Pj4+IMKgwqDC oMKgwqAgcnByb2NfZGVsKHJwcm9jKTsKPj4+Pj4gK8KgwqDCoCBpbXhfcnByb2NfcHV0X3NjdShy cHJvYyk7Cj4+Pj4+IMKgwqDCoMKgwqAgaW14X3Jwcm9jX2ZyZWVfbWJveChycHJvYyk7Cj4+Pj4+ IMKgwqDCoMKgwqAgZGVzdHJveV93b3JrcXVldWUocHJpdi0+d29ya3F1ZXVlKTsKPj4+Pj4gwqDC oMKgwqDCoCBycHJvY19mcmVlKHJwcm9jKTsKPj4+Pj4gQEAgLTg1Miw2ICs5NTcsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZAo+Pj4+IGlteF9ycHJvY19vZl9tYXRjaFtdID0g ewo+Pj4+PiDCoMKgwqDCoMKgIHsgLmNvbXBhdGlibGUgPSAiZnNsLGlteDhtbS1jbTQiLCAuZGF0 YSA9Cj4+Pj4gJmlteF9ycHJvY19jZmdfaW14OG1xIH0sCj4+Pj4+IMKgwqDCoMKgwqAgeyAuY29t cGF0aWJsZSA9ICJmc2wsaW14OG1uLWNtNyIsIC5kYXRhID0KPj4+PiAmaW14X3Jwcm9jX2NmZ19p bXg4bW4gfSwKPj4+Pj4gwqDCoMKgwqDCoCB7IC5jb21wYXRpYmxlID0gImZzbCxpbXg4bXAtY203 IiwgLmRhdGEgPQo+Pj4+ICZpbXhfcnByb2NfY2ZnX2lteDhtbiB9LAo+Pj4+PiArwqDCoMKgIHsg LmNvbXBhdGlibGUgPSAiZnNsLGlteDhxeHAtY200IiwgLmRhdGEgPQo+Pj4+ICZpbXhfcnByb2Nf Y2ZnX2lteDhxeHAgfSwKPj4+Pj4gwqDCoMKgwqDCoCB7IC5jb21wYXRpYmxlID0gImZzbCxpbXg4 dWxwLWNtMzMiLCAuZGF0YSA9Cj4+Pj4gJmlteF9ycHJvY19jZmdfaW14OHVscCB9LAo+Pj4+PiDC oMKgwqDCoMKgIHsgLmNvbXBhdGlibGUgPSAiZnNsLGlteDkzLWNtMzMiLCAuZGF0YSA9IAo+Pj4+ PiAmaW14X3Jwcm9jX2NmZ19pbXg5MyB9LAo+Pj4+PiDCoMKgwqDCoMKgIHt9LAo+Pj4+PiAtLSAK Pj4+Pj4gMi4zNy4xCj4+Pj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==