Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1776861iob; Fri, 29 Apr 2022 12:35:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxG/3rs9HCA9mZTU+Ulgh+HeJ2aTXI8uwVZfppdzd4YFoqWgFi7jLhBD93yyRQGmmIUEorf X-Received: by 2002:a05:6512:158b:b0:472:3c49:15f with SMTP id bp11-20020a056512158b00b004723c49015fmr534732lfb.408.1651260909733; Fri, 29 Apr 2022 12:35:09 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1651260909; cv=pass; d=google.com; s=arc-20160816; b=Lkm3k9AJaWp5AFJXae895jNav1atjH6utLTIxi5624MaBRYAG1u4+kDsqORORHQGiw V3J+dZ5Izs9njUUOYzxKAxnVCaYM3yQcuOFjdE5akCo+cp6dnDs3nmxoKYzJRJ3/tv13 HDK/OQmB7t8GSq/hC9S7xv6XkQG/de37f+P4zjNOP04SfH5xPpZEGVstUxzk74zgdj4d rWM0uwgJa1/QqkGQh/3D42OmdpA98nEDKS1RvmrUu3YUpbbyzzpipE/qSpBJhU3lMt/3 CQHeV3IwpDudB/twlXROXMjLO/ni6LYi4n5J8G5XgFchzGRwA6/r40oKHZCGXSygMr27 xb2A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:dkim-signature; bh=5N6cFQ8Ucu5VbNDsz1zTvvQH0U4FdYcgfta5X0JMT7I=; b=UTUshSUK/6OUCgWIuG5mM1XmDGJlbOJYNpT1z6jZIhbvd6guW1K/Hjw6UyAPDmVcLz L3uAicRjT9AmEVkwJUWKNX6z3PS3wGhqg81ynUzgubiiNn73MQdptzzifojeAwL7nC+p q9AzArM0HfbwL4CZXkpLLONUxph0tFWRNdrCL3LIJYH36Z9al9oxIEP/GNOQHkZRKiof ukc4RU92DVU41xFaff0vOOR7mnWCuUHO8RB51LHq1hOgChgqrMvNqofvOEQK9R2afq1Y 0JMjJz1u6HLhUkJUeZRkmxc9v10Yqit4O/OfsgH0SxxJCoAbp2hvzQ169oiSxyezETig +U6w== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=lcCz5Lys; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=A2dKAVTq; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u12-20020a05651206cc00b00449fff281b2si7956742lff.308.2022.04.29.12.34.42; Fri, 29 Apr 2022 12:35:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=lcCz5Lys; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=A2dKAVTq; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355709AbiD2Ibq (ORCPT + 99 others); Fri, 29 Apr 2022 04:31:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352839AbiD2Ibp (ORCPT ); Fri, 29 Apr 2022 04:31:45 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CC2763BEA; Fri, 29 Apr 2022 01:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1651220906; x=1682756906; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=5N6cFQ8Ucu5VbNDsz1zTvvQH0U4FdYcgfta5X0JMT7I=; b=lcCz5LysRksSsjGAjCk86io03gcREZmfOOZVWQ1yRDfZrppWT9TMvp9a A6p/tUTutPdVRVTcEnoWi2VM+eqPuS0otlidPMKIiZeB54h/RqZs6bPes hsQVac3BuIV7zjyA6eoVEDVtWNI1PLal6gRb4HlXusD0hGJBkxdYhnL1S ZH1tPDA5Oc4dgSQU8baJTWQ25XHHKh3EOzuOdeVounMBeV3ozeQJRgMtr uGDTbYX8h5RetGCxaEzifRBVPSbmlGBLTpJtrzHOPidC6Db/eMevM5Eiv HR9cnIZr2xCeIgmSTDnkT/ngW+UsNw7l9osa9yCRVa58I7tSu+2t3D8so Q==; X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="161785457" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 29 Apr 2022 01:28:25 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Fri, 29 Apr 2022 01:28:24 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Fri, 29 Apr 2022 01:28:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H0n9CFknbtA67FxS27+gvjNUW9IUfMdXhKLlaYOpl7F5z8cuuXyeH9/0/XmPInFU2q28cJ/yLY6buiFf/7sGm8J6e8ysJuXRLwyZvEaVCDiJlqMtKNgjPq24ApCbyN7SZq+MaQWye8cuPnqIMv6OyXCCNWgisvTefBcWuEEns9VHR2Hzxco+nzLLZpz8OVRV3G1OCKOp7eeI6mdu1yzzUdYxiyyj6RAaQDomXQqPKLPlWV76fZcL9JaKvRP8TPjwk+IP0RbwydYhg4dbwGLWO5Nw9SN5Jh7zfExfiEqj2xfdy9NMh4oemgNLMyb+hxbLZXkabuhroRkn6qgT2pk5uw== 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=5N6cFQ8Ucu5VbNDsz1zTvvQH0U4FdYcgfta5X0JMT7I=; b=TPRQGUoNUa1w/iFW4bjYpzAQmEBkI/2DPzq41elIGouYdImxTtuv54tRd/q2p5fhpvyDX/TaZEF5sNqi5wy44giAk4k4P1GjmtE5Hl5gqS9WfXKP7czy2yghfn84hGs57A8n6iZO+EBtTY1bv9Fdy+yEustxPN/SyDYXzdWiygDg7+598961io5GLPQhO5DZEaIytrm0flULCGqHtjxCC8OxaWff206l8I3xHXK/WAWCIkQvzSCA16UvrCLGHZG3qn38IWdG6UPu5SZrkVcPx6iFFfNz0arFZjyrV6Ow51wx79kChjnOUiewJGhavmksNgWvwyt1gCTm9pkpUEjwdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5N6cFQ8Ucu5VbNDsz1zTvvQH0U4FdYcgfta5X0JMT7I=; b=A2dKAVTqBwfROIzF+nompzLesJhR+lKXx+8bHiqD8/U/LGyyktSPbHvpn8vJuWokOG5BR6Wl/oEVlRlRRc340mCayLtzN+FXecGOP5LcTvMeQVL1zKYGGTWqJOXH8hEVyb0FQm/K4cwNoIfN9PzMMR00aqMEnX5hA3z16Rl9tDk= Received: from BL1PR11MB5384.namprd11.prod.outlook.com (2603:10b6:208:311::14) by BY5PR11MB4403.namprd11.prod.outlook.com (2603:10b6:a03:1ba::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.15; Fri, 29 Apr 2022 08:28:18 +0000 Received: from BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::39cb:eae2:1dbc:a5f2]) by BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::39cb:eae2:1dbc:a5f2%8]) with mapi id 15.20.5186.026; Fri, 29 Apr 2022 08:28:17 +0000 From: To: , , , CC: , , , , , Subject: Re: [PATCH v9 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Topic: [PATCH v9 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Index: AQHYNGSlGFK9XkrrkEmECxEfnwRnzq0G2l2AgAAC+4A= Date: Fri, 29 Apr 2022 08:28:17 +0000 Message-ID: References: <20220310095202.2701399-1-eugen.hristev@microchip.com> <20220310095202.2701399-9-eugen.hristev@microchip.com> <39f541ec-313f-fe15-b93f-dd78469b2366@xs4all.nl> In-Reply-To: <39f541ec-313f-fe15-b93f-dd78469b2366@xs4all.nl> Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a36d7ea1-04b0-4ba5-14cc-08da29ba3629 x-ms-traffictypediagnostic: BY5PR11MB4403:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hvFL4hKJG272hNoVhmHN9QSE2HtfLjGQ/qaTpHZ4q/KA2ltX8PUCYuTc4lf1QtU/IfpsYAek9cKqwIbQdB+y26NsJjQO4uxea6HmU7vYasQvpxGbh2qIFI109742JhKKOeHfTsLvpC9OL/Y9fsKkWbVhmB1cqF5JZPQFUfhXjQchu7EsrBzjU6/0tlnoEC4oVSP+zcDo77wiWV+2/0jaPHoZSxaKEnOj1hrpeKhi/hnmOSNJ60smhqkC2An+gjXxY6KyQDdEVjym+FQiA/gLyhWZoD+wkv0wLqeCw65/eI+DJsfm7fLYz3hkWwTdMZzbBu7jZOHI+CBig5EuLxWUfRHQrcBZhagOrtSlE/G+Md2JuEWiEqemT0XDJfarQI5u40XnMR1EWc+ehp6umrwtb9jNWanvxaoHQEb/MlaA1mifgYyiEoSuk6auSi8nyYgdQ4bA1vMIJdDOkRncFoT2NoRZbkpDXrGQVlvleflqDflpoYdOvQK6hIr7IaZjMIHGV7WRgFS+ScV2SHvMEFGtHtt9f42wEZtB0+NFkPAUIHPqW+GBrrV4ptDqUTB5plzGs6a9Kw/QxwkbiA7nR+yhF0jQY0K4JqWO6MsNklVHZyehZkHAvVSyadTKKkdEL1ZNpU3+du6pvXYOBfiX+5qn3NOsIjw/LTYhWDghwdgPJ9wJFw9sw/GhtTeTcGOnNILHaeMm5RYX1OCetpaM5BoO52L1IB/by1O+DbQA9p5jbZJcC8mo6rX1mOPIxJtGWlg7ENrKAem4OBNDWSYboz/3IA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5384.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(91956017)(66556008)(107886003)(71200400001)(2616005)(4326008)(36756003)(8936002)(76116006)(316002)(6506007)(66946007)(186003)(26005)(83380400001)(5660300002)(122000001)(8676002)(64756008)(66476007)(31686004)(66446008)(6486002)(38100700002)(38070700005)(2906002)(508600001)(31696002)(6512007)(86362001)(15650500001)(54906003)(53546011)(30864003)(110136005)(43740500002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SW1YNFl5YUhhaHNOTERCQlp3cnVMeit4YVVyV2tjeWN4Ukg5RmpoRThIaFk4?= =?utf-8?B?ZnZQWWVoaWgwTmF4SUN3aHo1Y2ZzY2FjbTAybmpubEZzRzVWOXRYUmZ4Ni92?= =?utf-8?B?ZHNGTFlKb2pnWmVXT0k1STgrYWh2VU9lZ3ZQOWtZZitFZjRVeENNZ084dVdk?= =?utf-8?B?UXhQb2ZkSllaQ3lvUUZGcEVCUWg4SmVWL2V5TG9MWEQyZjdXNDdKWG81R0tD?= =?utf-8?B?NzhKRWo4M050K2pYcmZjVUhCbFQrNFVOeDFiWkhwOEVpN2R1WTZBTHVXZGdy?= =?utf-8?B?QzJrdjVxSEF3Y3BCb2lCcGNuVHlmb3lZMEs3ZWhOZkdRRlZQTEwvQU5yZ0li?= =?utf-8?B?SmJrSGlrR0JINmkwMW5vTWZBVDJFV0pFNDdBeXBPT2J0cGl0WkxPVVZ0eWk3?= =?utf-8?B?c1c3WE8vZHpDaVI5Uk91dXFtVTU2bE5oMUp4SGEvM0MzMWxrY1ZyQm9FVDd6?= =?utf-8?B?akh3cWlkS2ZxeXQyeUpYNEc5Y3BtVjF2Z0dpTmpFL1JySjdOSURkNEIxMUdS?= =?utf-8?B?d1IwcE1DYlNSRTQ0Tmh0cVNDb0xZSS9YSnVTUzlHbmtlaVVQZk9hdmp0SEth?= =?utf-8?B?elN6ZjFhaUNhWVF4NTA2RmFrTGlKK3pzY3lENHZyRmJWaHhxRU52WWV5aGN0?= =?utf-8?B?Nk1iQ0ZmVlIvMlhCYWdtRzdhNVc0aitiMDltdnNKNlJtN3VLVzdPbWxkdEJx?= =?utf-8?B?Y2lVVDBucktybWs2TEh5MzFoS0NTQTFXZTdJaXdqTlhrc21waE5yYWczMTkv?= =?utf-8?B?MzFoQjV6L1FlaHNoSWVmd1h6L3F6cEwzVnhZbG9yNDM3UzNKS2NmK1ZSMThM?= =?utf-8?B?RUNOckN4cCtKakRXc1RQdktpblRqQjBwOXJZT3FnK0JaOWtabGFZRWh3anR1?= =?utf-8?B?azdkUFpvcHN4ZnFaWi9QanVEWG1JRVVnRHQxb1FML25aSDZCd3pjdFpsa01F?= =?utf-8?B?SENWMkppbyt1RmV5cFdxOHp6SzlPcFZZM0NtSjh2R25WenhiZnV3cDNOTmU4?= =?utf-8?B?RUNGRjQwSExQaHQ4Z2ZCcWlkd1FMSmdxOUwrYkRXcUUybCtZWUJLQmJCcERF?= =?utf-8?B?ZXhhUEFzamZ0Y1RCMGVGZ3gzY2RSd1BWZmZOVnBqV01XZ0ZXQUwxOE9DRU9W?= =?utf-8?B?c2Vkck85dU1wQkFjVlVSRkNrUkFSelE0bmU1SnFGS2o0REg4enlpNFltSzJa?= =?utf-8?B?Vm1kMC9mRytCUitoNEtQZEdQZ2tuNXhGcVNhUDBNZzZoQVNjamJFa3h0ZGpI?= =?utf-8?B?NnYzYVdqcnR5NUUrL280Z1E1RmlHNEhsTHByQmh5dzdnU3RlWVlpWEEvamRs?= =?utf-8?B?NTBubkh3Zi9WRk0ycnVOMEc4Z1pVMUV1NUlVclhSaWEyNjdhMHVtY1Nqalg3?= =?utf-8?B?Z0x4UnErNm5sOXUweHZBN0hRUisyTmhzdkFZbkdxejJ0OFNsKzN2ZHhROGlW?= =?utf-8?B?WHdZZW1SYURld2pEVHFRL3MwME5LQU44YkF3cURDbVVHRmJoMG9CNFRPYW4w?= =?utf-8?B?cE4rbHFQSVJUL0MvRGNuRTgvdTlBU1J6S3Nlc1RwejhUOEVzRGtWRVJLVkNH?= =?utf-8?B?TDRERWRZMXpkUG8zWnE1NFIxRUpiMDRjcE5rS1RwcFhMUWRYT1VydjJJelUw?= =?utf-8?B?VHFyM1FNelY0M3VOS1g3MkRWdE04dnU0d051bmJyQXdFeVNPdkxpc3MvcnJa?= =?utf-8?B?V25HcXErNm51d2J6S2ZyQWpzV0RRcndwMndrS1M4Q0d4ZmNuUElVOWFjYVpX?= =?utf-8?B?aVo1a3c2VGlObnl0SGZ5cTFlcDRLMU40UU03RWc5Y0lsUHVmR1RrRkFFamxq?= =?utf-8?B?L1lLSW9BdWsvWU1FSEFqaGEzTWNtT0U0UEJrd0xzOFlWUVBUbzJTZFczSFY2?= =?utf-8?B?SUdDR1NwUnhaN1l4QzRDaGNObklTTXNjWW1aM1REdDV1Vll2V2pqREFmMFpS?= =?utf-8?B?LytCSGIyTFVoUW1EYTdGWHF2ckVyRDg3NzZEcVk1U2lBRlNUSHVRRE9SR2l4?= =?utf-8?B?dEsrb0JlQlVEWEFuVzdmcUl3SEFlSG00RzhRNnF2eDdQUXkvTzAzNk1VUXRS?= =?utf-8?B?cHVIamFGcXRtYlJNN1FIamhiK1BXN2oxY1RSaVArZnRjK0dEbDRjWC8rOWVn?= =?utf-8?B?NnV0dVpNWFVoWFZKaUtacDFsN3Q5Ylo0Q1FyZDV3SU1CWnY3bEV5Rm56aVhw?= =?utf-8?B?TmJ5MzVROHhyUGlOMDNBbzAxUDk0NExOT1liUkxVVWxJSGt2UTBLWUU5RGJU?= =?utf-8?B?eHRpZmw2a1U0SXB3VDRoVnJleEMvMEIyRzB2U2RKZ2RUQzhKUGtRRzRWUVl5?= =?utf-8?B?QitqM21XTzd0MGVVNytSd1NGMXBZeUlKWVkwVEYwTkFZNHhzdU5mYThZazM0?= =?utf-8?Q?3y3JoPv5qUS7CzyA=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4516EDA464822F43AFD55A3B8F2AE282@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5384.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a36d7ea1-04b0-4ba5-14cc-08da29ba3629 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2022 08:28:17.5039 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: X+BKNtjfoKLz4fe4fYfQ+k78tqt3I5uJdsGssn3312M68Sy54QvU0mCLxGvLChx4IlnfoGbh2ojCK6BvKBV7IlsoAQtm2gMcSlPjD0SgLBQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4403 X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gNC8yOS8yMiAxMToxNyBBTSwgSGFucyBWZXJrdWlsIHdyb3RlOg0KPiBPbiAxMC8wMy8yMDIy IDEwOjUxLCBFdWdlbiBIcmlzdGV2IHdyb3RlOg0KPj4gQXMgYSB0b3AgTUMgdmlkZW8gZHJpdmVy LCB0aGUgYXRtZWwtaXNjIHNob3VsZCBub3QgcHJvcGFnYXRlIHRoZSBmb3JtYXQgdG8gdGhlDQo+ PiBzdWJkZXZpY2UsIGl0IHNob3VsZCByYXRoZXIgY2hlY2sgYXQgc3RhcnRfc3RyZWFtaW5nKCkg dGltZSBpZiB0aGUgc3ViZGV2IGlzIHByb3Blcmx5DQo+PiBjb25maWd1cmVkIHdpdGggYSBjb21w YXRpYmxlIGZvcm1hdC4NCj4+IFJlbW92ZWQgdGhlIHdob2xlIGZvcm1hdCBmaW5kaW5nIGxvZ2lj LCBhbmQgcmV3b3JrZWQgdGhlIGZvcm1hdCB2ZXJpZmljYXRpb24NCj4+IGF0IHN0YXJ0X3N0cmVh bWluZyB0aW1lLCBzdWNoIHRoYXQgdGhlIElTQyB3aWxsIHJldHVybiBhbiBlcnJvciBpZiB0aGUg c3ViZGV2aWNlDQo+PiBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZC4gVG8gYWNoaWV2ZSB0aGlz LCBtZWRpYV9waXBlbGluZV9zdGFydA0KPj4gaXMgY2FsbGVkIGFuZCBhIGxpbmtfdmFsaWRhdGUg Y2FsbGJhY2sgaXMgY3JlYXRlZCB0byBjaGVjayB0aGUgZm9ybWF0cy4NCj4+IFdpdGggdGhpcyBi ZWluZyBkb25lLCB0aGUgbW9kdWxlIHBhcmFtZXRlciAnc2Vuc29yX3ByZWZlcnJlZCcgbWFrZXMg bm8gc2Vuc2UNCj4+IGFueW1vcmUuIFRoZSBJU0Mgc2hvdWxkIG5vdCBkZWNpZGUgd2hpY2ggZm9y bWF0IHRoZSBzZW5zb3IgaXMgdXNpbmcuIFRoZQ0KPj4gSVNDIHNob3VsZCBvbmx5IGNvcGUgd2l0 aCB0aGUgc2l0dWF0aW9uIGFuZCBpbmZvcm0gdXNlcnNwYWNlIGlmIHRoZSBzdHJlYW1pbmcNCj4+ IGlzIHBvc3NpYmxlIGluIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uDQo+PiBUaGUgcmVkZXNp Z24gb2YgdGhlIGZvcm1hdCBwcm9wYWdhdGlvbiBoYXMgYWxzbyByaXNlbiB0aGUgcXVlc3Rpb24g b2YgdGhlDQo+PiBlbnVtZm10IGNhbGxiYWNrLiBJZiBlbnVtZm10IGlzIGNhbGxlZCB3aXRoIGFu IG1idXNfY29kZSwgdGhlIGVudW1mbXQgaGFuZGxlcg0KPj4gc2hvdWxkIG9ubHkgcmV0dXJuIHRo ZSBmb3JtYXRzIHRoYXQgYXJlIHN1cHBvcnRlZCBmb3IgdGhpcyBtYnVzX2NvZGUuDQo+PiBPdGhl cndpc2UsIHRoZSBlbnVtZm10IHdpbGwgcmVwb3J0IGFsbCB0aGUgZm9ybWF0cyB0aGF0IHRoZSBJ U0MgY291bGQgb3V0cHV0Lg0KPj4gV2l0aCB0aGlzIHJld29yaywgdGhlIGR5bmFtaWMgbGlzdCBv ZiB1c2VyIGZvcm1hdHMgaXMgcmVtb3ZlZC4gSXQgbWFrZXMgbm8NCj4+IG1vcmUgc2Vuc2UgdG8g aWRlbnRpZnkgYXQgY29tcGxldGUgdGltZSB3aGljaCBmb3JtYXRzIHRoZSBzZW5zb3IgY291bGQg ZW1pdCwNCj4+IGFuZCBhZGQgdGhvc2UgaW50byBhIHNlcGFyYXRlIGR5bmFtaWMgbGlzdC4NCj4+ IFRoZSBJU0Mgd2lsbCBzdGFydCB3aXRoIGEgc2ltcGxlIHByZWNvbmZpZ3VyZWQgZGVmYXVsdCBm b3JtYXQsIGFuZCBhdA0KPj4gbGluayB2YWxpZGF0ZSB0aW1lLCBkZWNpZGUgd2hldGhlciBpdCBj YW4gdXNlIHRoZSBmb3JtYXQgdGhhdCBpcyBjb25maWd1cmVkDQo+PiBvbiB0aGUgc2luayBvciBu b3QuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogRXVnZW4gSHJpc3RldiA8ZXVnZW4uaHJpc3RldkBt aWNyb2NoaXAuY29tPg0KPj4gUmV2aWV3ZWQtYnk6IEphY29wbyBNb25kaSA8amFjb3BvQGptb25k aS5vcmc+DQo+PiAtLS0NCj4+IENoYW5nZXMgaW4gdjk6DQo+PiAtIGlzY19saW5rX3ZhbGlkYXRl IG5vdyBzdGF0aWMNCj4+DQo+PiBDaGFuZ2VzIGluIHY3Og0KPj4gLSBtaW5vciB0eXBvcyBhcyBz dWdnZXN0ZWQgYnkgSmFjb3BvDQo+PiAtIHNtYWxsIGNoYW5nZXMsIHJlZHVjZSBzb21lIGluZGVu dGF0aW9uLCBtb2RpZmllZCBhbiBpbmRleCwgYXMgc3VnZ2VzdGVkIGJ5DQo+PiBKYWNvcG8NCj4+ DQo+PiBDaGFuZ2VzIGluIHY2Og0KPj4gLSByZXdvcmtlZCBhIGJpdCBlbnVtX2ZtdCBhcyBzdWdn ZXN0ZWQgYnkgSmFjb3BvDQo+Pg0KPj4gQ2hhbmdlcyBpbiB2NToNCj4+IC0gcmVtb3ZlZCB1c2Vy X2Zvcm1hdHMgZHluYW1pYyBsaXN0IGFzIGl0IGlzIG5vdyBwb2ludGxlc3MNCj4+IC0gZ3JlYXRs eSBzaW1wbGlmaWVkIHRoZSBlbnVtX2ZtdCBmdW5jdGlvbg0KPj4gLSByZW1vdmVkIHNvbWUgaW5p dCBjb2RlIHRoYXQgd2FzIHVzZWxlc3Mgbm93DQo+Pg0KPj4gQ2hhbmdlcyBpbiB2NDoNCj4+IC0g bW92ZWQgdmFsaWRhdGlvbiBjb2RlIGludG8gbGlua192YWxpZGF0ZSBhbmQgdXNlZCBtZWRpYV9w aXBlbGluZV9zdGFydA0KPj4gLSBtZXJnZWQgdGhpcyBwYXRjaCB3aXRoIHRoZSBlbnVtX2ZtdCBw YXRjaCB3aGljaCB3YXMgcHJldmlvdXNseSBpbiB2MyBvZg0KPj4gdGhlIHNlcmllcw0KPj4NCj4+ IENoYW5nZXMgaW4gdjM6DQo+PiAtIGNsYW1wIHRvIG1heGltdW0gcmVzb2x1dGlvbiBvbmNlIHRo ZSBmcmFtZSBzaXplIGZyb20gdGhlIHN1YmRldiBpcyBmb3VuZA0KPj4gICBkcml2ZXJzL21lZGlh L3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1iYXNlLmMgfCA0MTIgKysrKysrKystLS0tLS0tLS0t DQo+PiAgIC4uLi9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMgICB8ICAg NSArDQo+PiAgIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLmggICAgICB8 ICAxMyArLQ0KPj4gICAuLi4vbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2FtYTVkMi1pc2Mu YyAgfCAgMjAgKw0KPj4gICAuLi4vbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2FtYTdnNS1p c2MuYyAgfCAgMjAgKw0KPj4gICA1IGZpbGVzIGNoYW5nZWQsIDIzNiBpbnNlcnRpb25zKCspLCAy MzQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYXRtZWwvYXRtZWwtaXNjLWJhc2UuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwv YXRtZWwtaXNjLWJhc2UuYw0KPj4gaW5kZXggZWUxZGRhNjcwN2EwLi5mZTJjMGFmNTgwNjAgMTAw NjQ0DQo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1iYXNl LmMNCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLWJhc2Uu Yw0KPj4gQEAgLTM2LDExICszNiw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZGVidWc7DQo+PiAg IG1vZHVsZV9wYXJhbShkZWJ1ZywgaW50LCAwNjQ0KTsNCj4+ICAgTU9EVUxFX1BBUk1fREVTQyhk ZWJ1ZywgImRlYnVnIGxldmVsICgwLTIpIik7DQo+Pg0KPj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQg c2Vuc29yX3ByZWZlcnJlZCA9IDE7DQo+PiAtbW9kdWxlX3BhcmFtKHNlbnNvcl9wcmVmZXJyZWQs IHVpbnQsIDA2NDQpOw0KPj4gLU1PRFVMRV9QQVJNX0RFU0Moc2Vuc29yX3ByZWZlcnJlZCwNCj4+ IC0gICAgICAgICAgICAgICJTZW5zb3IgaXMgcHJlZmVycmVkIHRvIG91dHB1dCB0aGUgc3BlY2lm aWVkIGZvcm1hdCAoMS1vbiAwLW9mZiksIGRlZmF1bHQgMSIpOw0KPj4gLQ0KPj4gICAjZGVmaW5l IElTQ19JU19GT1JNQVRfUkFXKG1idXNfY29kZSkgXA0KPj4gICAgICAgICgoKG1idXNfY29kZSkg JiAweGYwMDApID09IDB4MzAwMCkNCj4+DQo+PiBAQCAtMzM3LDYgKzMzMiwxMCBAQCBzdGF0aWMg aW50IGlzY19zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVuc2lnbmVkIGlu dCBjb3VudCkNCj4+ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gICAgICAgIGludCBy ZXQ7DQo+Pg0KPj4gKyAgICAgcmV0ID0gbWVkaWFfcGlwZWxpbmVfc3RhcnQoJmlzYy0+dmlkZW9f ZGV2LmVudGl0eSwgJmlzYy0+bXBpcGUpOw0KPiANCj4gVGhlIHBpcGVsaW5lIHZhbGlkYXRpb24g aXMgZG9uZSBpbiBzdGFydF9zdHJlYW1pbmcsIGJ1dCBJIGRvbid0IHRoaW5rIHRoYXQNCj4gaXMg dGhlIGJlc3QgcGxhY2U6IGlmIFNUUkVBTU9OIGlzIGNhbGxlZCBiZWZvcmUgYnVmZmVycyBhcmUg cXVldWVkLCB0aGVuDQo+IGFuIGludmFsaWQgcGlwZWxpbmUgaXNuJ3QgZGlzY292ZXJlZCB1bnRp bCBlbm91Z2ggYnVmZmVycyBhcmUgcXVldWVkIHRvDQo+IGtpY2sgb2ZmIHN0YXJ0X3N0cmVhbWlu Zy4NCj4gDQo+IERyaXZlcnMgbGlrZSB2c3AxLCBvbWFwM2lzcCBhbmQgdGhlIHNhbXN1bmcgZHJp dmVycyBhbGwgZG8gdGhpcyBpbiBzdHJlYW1vbigpLg0KPiANCj4gSSB0aGluayB0aGF0IGlzIHRo ZSBjb3JyZWN0IHRpbWUgdG8gZG8gdGhpcy4NCg0KSGVsbG8gSGFucywNCg0KSW5pdGlhbGx5ICh2 MiwgdjMpIEkgaGFkIHRoaXMgaW4gc3RyZWFtb24oKS4gVGhlIHByb2JsZW0gdGhhdCBJIGZhY2Vk IGF0IA0KdGhhdCB0aW1lIHdhcyB0aGF0IHN0cmVhbW9mZiB3YXMgbmV2ZXIgY2FsbGVkLCBzbyBJ IGNvdWxkIG5vdCBjYWxsIA0KbWVkaWFfcGlwZWxpbmVfc3RvcCgpLiBUaGVuIEphY29wbyB0b2xk IG1lIHRvIG1vdmUgaXQgdG8gc3RhcnRfc3RyZWFtaW5nIA0KKHNlZSBjaGFuZ2UgbG9nIGZvciB2 NCkgLCBhbmQgSSBkaWQgbm90IGZhY2UgYW55IG1vcmUgcHJvYmxlbXMuDQoNCkV1Z2VuDQoNCj4g DQo+IExhdXJlbnQsIEphY29wbywgZG8geW91IGFncmVlIHdpdGggdGhhdD8NCj4gDQo+IEkgbm90 aWNlIHRoYXQgcXVpdGUgYSBmZXcgb3RoZXIgZHJpdmVycyBkbyB0aGlzIGluIHN0YXJ0X3N0cmVh bWluZyBhcyB3ZWxsLA0KPiBidXQgSSB0aGluayBpdCBqdXN0IHdlaXJkIHRoYXQgYSBRQlVGIGNh biByZXR1cm4gRVBJUEUgd2hpbGUgU1RSRUFNT04gbWlnaHQNCj4gc3VjY2VlZC4NCj4gDQo+IFBl cmhhcHMgd2UgbmVlZCBhbiBvcHRpb25hbCB2YjIgdmFsaWRhdGUoKSBjYWxsYmFjayB0aGF0IGlz IGNhbGxlZCBieQ0KPiB2YjJfY29yZV9zdHJlYW1vbigpIHRvIHZhbGlkYXRlIHRoZSBwaXBlbGlu ZSBiZWZvcmUgc3RyZWFtaW5nLiBUaGF0IG1ha2VzDQo+IGl0IGVhc2llciB0byBpbXBsZW1lbnQg dGhlc2UgY2hlY2tzIHJhdGhlciB0aGFuIGhhdmluZyB0byBpbXBsZW1lbnQgeW91cg0KPiBvd24g c3RyZWFtb24gaW9jdGwuDQo+IA0KPiBSZWdhcmRzLA0KPiANCj4gICAgICAgICAgSGFucw0KPiAN Cj4+ICsgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgIGdvdG8gZXJyX3BpcGVsaW5lX3N0 YXJ0Ow0KPj4gKw0KPj4gICAgICAgIC8qIEVuYWJsZSBzdHJlYW0gb24gdGhlIHN1YiBkZXZpY2Ug Ki8NCj4+ICAgICAgICByZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYt PnNkLCB2aWRlbywgc19zdHJlYW0sIDEpOw0KPj4gICAgICAgIGlmIChyZXQgJiYgcmV0ICE9IC1F Tk9JT0NUTENNRCkgew0KPj4gQEAgLTM4NSw2ICszODQsOSBAQCBzdGF0aWMgaW50IGlzY19zdGFy dF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVuc2lnbmVkIGludCBjb3VudCkNCj4+ ICAgICAgICB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYtPnNkLCB2aWRlbywg c19zdHJlYW0sIDApOw0KPj4NCj4+ICAgZXJyX3N0YXJ0X3N0cmVhbToNCj4+ICsgICAgIG1lZGlh X3BpcGVsaW5lX3N0b3AoJmlzYy0+dmlkZW9fZGV2LmVudGl0eSk7DQo+PiArDQo+PiArZXJyX3Bp cGVsaW5lX3N0YXJ0Og0KPj4gICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpc2MtPmRtYV9xdWV1 ZV9sb2NrLCBmbGFncyk7DQo+PiAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShidWYsICZpc2Mt PmRtYV9xdWV1ZSwgbGlzdCkNCj4+ICAgICAgICAgICAgICAgIHZiMl9idWZmZXJfZG9uZSgmYnVm LT52Yi52YjJfYnVmLCBWQjJfQlVGX1NUQVRFX1FVRVVFRCk7DQo+PiBAQCAtNDIzLDYgKzQyNSw5 IEBAIHN0YXRpYyB2b2lkIGlzY19zdG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICp2cSkN Cj4+ICAgICAgICBpZiAocmV0ICYmIHJldCAhPSAtRU5PSU9DVExDTUQpDQo+PiAgICAgICAgICAg ICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgInN0cmVhbSBvZmYgZmFpbGVkIGluIHN1YmRl dlxuIik7DQo+Pg0KPj4gKyAgICAgLyogU3RvcCBtZWRpYSBwaXBlbGluZSAqLw0KPj4gKyAgICAg bWVkaWFfcGlwZWxpbmVfc3RvcCgmaXNjLT52aWRlb19kZXYuZW50aXR5KTsNCj4+ICsNCj4+ICAg ICAgICAvKiBSZWxlYXNlIGFsbCBhY3RpdmUgYnVmZmVycyAqLw0KPj4gICAgICAgIHNwaW5fbG9j a19pcnFzYXZlKCZpc2MtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7DQo+PiAgICAgICAgaWYgKHVu bGlrZWx5KGlzYy0+Y3VyX2ZybSkpIHsNCj4+IEBAIC00NTMsMjIgKzQ1OCw2IEBAIHN0YXRpYyB2 b2lkIGlzY19idWZmZXJfcXVldWUoc3RydWN0IHZiMl9idWZmZXIgKnZiKQ0KPj4gICAgICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlzYy0+ZG1hX3F1ZXVlX2xvY2ssIGZsYWdzKTsNCj4+ICAg fQ0KPj4NCj4+IC1zdGF0aWMgc3RydWN0IGlzY19mb3JtYXQgKmZpbmRfZm9ybWF0X2J5X2ZvdXJj YyhzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm91cmNjKQ0KPj4gLXsNCj4+IC0gICAg IHVuc2lnbmVkIGludCBudW1fZm9ybWF0cyA9IGlzYy0+bnVtX3VzZXJfZm9ybWF0czsNCj4+IC0g ICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpmbXQ7DQo+PiAtICAgICB1bnNpZ25lZCBpbnQgaTsNCj4+ IC0NCj4+IC0gICAgIGZvciAoaSA9IDA7IGkgPCBudW1fZm9ybWF0czsgaSsrKSB7DQo+PiAtICAg ICAgICAgICAgIGZtdCA9IGlzYy0+dXNlcl9mb3JtYXRzW2ldOw0KPj4gLSAgICAgICAgICAgICBp ZiAoZm10LT5mb3VyY2MgPT0gZm91cmNjKQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVy biBmbXQ7DQo+PiAtICAgICB9DQo+PiAtDQo+PiAtICAgICByZXR1cm4gTlVMTDsNCj4+IC19DQo+ PiAtDQo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmIyX29wcyBpc2NfdmIyX29wcyA9IHsNCj4+ ICAgICAgICAucXVldWVfc2V0dXAgICAgICAgICAgICA9IGlzY19xdWV1ZV9zZXR1cCwNCj4+ICAg ICAgICAud2FpdF9wcmVwYXJlICAgICAgICAgICA9IHZiMl9vcHNfd2FpdF9wcmVwYXJlLA0KPj4g QEAgLTQ5NywyMyArNDg2LDU3IEBAIHN0YXRpYyBpbnQgaXNjX2VudW1fZm10X3ZpZF9jYXAoc3Ry dWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsDQo+PiAgIHsNCj4+ICAgICAgICBzdHJ1Y3QgaXNj X2RldmljZSAqaXNjID0gdmlkZW9fZHJ2ZGF0YShmaWxlKTsNCj4+ICAgICAgICB1MzIgaW5kZXgg PSBmLT5pbmRleDsNCj4+IC0gICAgIHUzMiBpLCBzdXBwb3J0ZWRfaW5kZXg7DQo+PiArICAgICB1 MzIgaSwgc3VwcG9ydGVkX2luZGV4ID0gMDsNCj4+ICsgICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpm bXQ7DQo+PiArDQo+PiArICAgICAvKg0KPj4gKyAgICAgICogSWYgd2UgYXJlIG5vdCBhc2tlZCBh IHNwZWNpZmljIG1idXNfY29kZSwgd2UgaGF2ZSB0byByZXBvcnQgYWxsDQo+PiArICAgICAgKiB0 aGUgZm9ybWF0cyB0aGF0IHdlIGNhbiBvdXRwdXQuDQo+PiArICAgICAgKi8NCj4+ICsgICAgIGlm ICghZi0+bWJ1c19jb2RlKSB7DQo+PiArICAgICAgICAgICAgIGlmIChpbmRleCA+PSBpc2MtPmNv bnRyb2xsZXJfZm9ybWF0c19zaXplKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOw0KPj4NCj4+IC0gICAgIGlmIChpbmRleCA8IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRz X3NpemUpIHsNCj4+ICAgICAgICAgICAgICAgIGYtPnBpeGVsZm9ybWF0ID0gaXNjLT5jb250cm9s bGVyX2Zvcm1hdHNbaW5kZXhdLmZvdXJjYzsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgcmV0dXJu IDA7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICAvKg0KPj4gKyAgICAgICogSWYgYSBzcGVj aWZpYyBtYnVzX2NvZGUgaXMgcmVxdWVzdGVkLCBjaGVjayBpZiB3ZSBzdXBwb3J0DQo+PiArICAg ICAgKiB0aGlzIG1idXNfY29kZSBhcyBpbnB1dCBmb3IgdGhlIElTQy4NCj4+ICsgICAgICAqIElm IGl0J3Mgc3VwcG9ydGVkLCB0aGVuIHdlIHJlcG9ydCB0aGUgY29ycmVzcG9uZGluZyBwaXhlbGZv cm1hdA0KPj4gKyAgICAgICogYXMgZmlyc3QgcG9zc2libGUgb3B0aW9uIGZvciB0aGUgSVNDLg0K Pj4gKyAgICAgICogRS5nLiBtYnVzIE1FRElBX0JVU19GTVRfWVVZVjhfMlg4IGFuZCByZXBvcnQN Cj4+ICsgICAgICAqICdZVVlWJyAoWVVZViA0OjI6MikNCj4+ICsgICAgICAqLw0KPj4gKyAgICAg Zm10ID0gaXNjX2ZpbmRfZm9ybWF0X2J5X2NvZGUoaXNjLCBmLT5tYnVzX2NvZGUsICZpKTsNCj4+ ICsgICAgIGlmICghZm10KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsN Cj4+ICsgICAgIGlmICghaW5kZXgpIHsNCj4+ICsgICAgICAgICAgICAgZi0+cGl4ZWxmb3JtYXQg PSBmbXQtPmZvdXJjYzsNCj4+ICsNCj4+ICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPj4gICAg ICAgIH0NCj4+DQo+PiAtICAgICBpbmRleCAtPSBpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c19zaXpl Ow0KPj4gKyAgICAgc3VwcG9ydGVkX2luZGV4Kys7DQo+Pg0KPj4gLSAgICAgc3VwcG9ydGVkX2lu ZGV4ID0gMDsNCj4+ICsgICAgIC8qIElmIHRoZSBpbmRleCBpcyBub3QgcmF3LCB3ZSBkb24ndCBo YXZlIGFueW1vcmUgZm9ybWF0cyB0byByZXBvcnQgKi8NCj4+ICsgICAgIGlmICghSVNDX0lTX0ZP Uk1BVF9SQVcoZi0+bWJ1c19jb2RlKSkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 DQo+Pg0KPj4gLSAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Zm9ybWF0c19saXN0X3NpemU7IGkr Kykgew0KPj4gLSAgICAgICAgICAgICBpZiAoIUlTQ19JU19GT1JNQVRfUkFXKGlzYy0+Zm9ybWF0 c19saXN0W2ldLm1idXNfY29kZSkgfHwNCj4+IC0gICAgICAgICAgICAgICAgICFpc2MtPmZvcm1h dHNfbGlzdFtpXS5zZF9zdXBwb3J0KQ0KPj4gKyAgICAgLyoNCj4+ICsgICAgICAqIFdlIGFyZSBh c2tlZCBmb3IgYSBzcGVjaWZpYyBtYnVzIGNvZGUsIHdoaWNoIGlzIHJhdy4NCj4+ICsgICAgICAq IFdlIGhhdmUgdG8gc2VhcmNoIHRocm91Z2ggdGhlIGZvcm1hdHMgd2UgY2FuIGNvbnZlcnQgdG8u DQo+PiArICAgICAgKiBXZSBoYXZlIHRvIHNraXAgdGhlIHJhdyBmb3JtYXRzLCB3ZSBjYW5ub3Qg Y29udmVydCB0byByYXcuDQo+PiArICAgICAgKiBFLmcuICdBUjEyJyAoMTYtYml0IEFSR0IgNC00 LTQtNCksICdBUjE1JyAoMTYtYml0IEFSR0IgMS01LTUtNSksIGV0Yy4NCj4+ICsgICAgICAqLw0K Pj4gKyAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemU7IGkr Kykgew0KPj4gKyAgICAgICAgICAgICBpZiAoaXNjLT5jb250cm9sbGVyX2Zvcm1hdHNbaV0ucmF3 KQ0KPj4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4+IC0gICAgICAgICAgICAg aWYgKHN1cHBvcnRlZF9pbmRleCA9PSBpbmRleCkgew0KPj4gLSAgICAgICAgICAgICAgICAgICAg IGYtPnBpeGVsZm9ybWF0ID0gaXNjLT5mb3JtYXRzX2xpc3RbaV0uZm91cmNjOw0KPj4gKyAgICAg ICAgICAgICBpZiAoaW5kZXggPT0gc3VwcG9ydGVkX2luZGV4KSB7DQo+PiArICAgICAgICAgICAg ICAgICAgICAgZi0+cGl4ZWxmb3JtYXQgPSBpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c1tpXS5mb3Vy Y2M7DQo+PiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPj4gICAgICAgICAgICAg ICAgfQ0KPj4gICAgICAgICAgICAgICAgc3VwcG9ydGVkX2luZGV4Kys7DQo+PiBAQCAtNTg0LDIw ICs2MDcsMzAgQEAgc3RhdGljIGludCBpc2NfdHJ5X3ZhbGlkYXRlX2Zvcm1hdHMoc3RydWN0IGlz Y19kZXZpY2UgKmlzYykNCj4+ICAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgIGRlZmF1 bHQ6DQo+PiAgICAgICAgLyogYW55IG90aGVyIGRpZmZlcmVudCBmb3JtYXRzIGFyZSBub3Qgc3Vw cG9ydGVkICovDQo+PiArICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiUmVx dWVzdGVkIHVuc3VwcG9ydGVkIGZvcm1hdC5cbiIpOw0KPj4gICAgICAgICAgICAgICAgcmV0ID0g LUVJTlZBTDsNCj4+ICAgICAgICB9DQo+PiAgICAgICAgdjRsMl9kYmcoMSwgZGVidWcsICZpc2Mt PnY0bDJfZGV2LA0KPj4gICAgICAgICAgICAgICAgICJGb3JtYXQgdmFsaWRhdGlvbiwgcmVxdWVz dGVkIHJnYj0ldSwgeXV2PSV1LCBncmV5PSV1LCBiYXllcj0ldVxuIiwNCj4+ICAgICAgICAgICAg ICAgICByZ2IsIHl1diwgZ3JleSwgYmF5ZXIpOw0KPj4NCj4+IC0gICAgIC8qIHdlIGNhbm5vdCBv dXRwdXQgUkFXIGlmIHdlIGRvIG5vdCByZWNlaXZlIFJBVyAqLw0KPj4gLSAgICAgaWYgKChiYXll cikgJiYgIUlTQ19JU19GT1JNQVRfUkFXKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNf Y29kZSkpDQo+PiArICAgICBpZiAoYmF5ZXIgJiYNCj4+ICsgICAgICAgICAhSVNDX0lTX0ZPUk1B VF9SQVcoaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+bWJ1c19jb2RlKSkgew0KPj4gKyAgICAg ICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgIkNhbm5vdCBvdXRwdXQgUkFXIGlmIHdl IGRvIG5vdCByZWNlaXZlIFJBVy5cbiIpOw0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7DQo+PiArICAgICB9DQo+Pg0KPj4gLSAgICAgLyogd2UgY2Fubm90IG91dHB1dCBHUkVZIGlm IHdlIGRvIG5vdCByZWNlaXZlIFJBVy9HUkVZICovDQo+PiAgICAgICAgaWYgKGdyZXkgJiYgIUlT Q19JU19GT1JNQVRfUkFXKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkgJiYN Cj4+IC0gICAgICAgICAhSVNDX0lTX0ZPUk1BVF9HUkVZKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3Jt YXQtPm1idXNfY29kZSkpDQo+PiArICAgICAgICAgIUlTQ19JU19GT1JNQVRfR1JFWShpc2MtPnRy eV9jb25maWcuc2RfZm9ybWF0LT5tYnVzX2NvZGUpKSB7DQo+PiArICAgICAgICAgICAgIHY0bDJf ZXJyKCZpc2MtPnY0bDJfZGV2LCAiQ2Fubm90IG91dHB1dCBHUkVZIGlmIHdlIGRvIG5vdCByZWNl aXZlIFJBVy9HUkVZLlxuIik7DQo+PiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ ICsgICAgIH0NCj4+ICsNCj4+ICsgICAgIGlmICgocmdiIHx8IGJheWVyIHx8IHl1dikgJiYNCj4+ ICsgICAgICAgICBJU0NfSVNfRk9STUFUX0dSRVkoaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+ bWJ1c19jb2RlKSkgew0KPj4gKyAgICAgICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2Rldiwg IkNhbm5vdCBjb252ZXJ0IEdSRVkgdG8gYW5vdGhlciBmb3JtYXQuXG4iKTsNCj4+ICsgICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICB9DQo+Pg0KPj4gICAgICAgIHJldHVybiBy ZXQ7DQo+PiAgIH0NCj4+IEBAIC04MjUsNyArODU4LDcgQEAgc3RhdGljIHZvaWQgaXNjX3RyeV9m c2Uoc3RydWN0IGlzY19kZXZpY2UgKmlzYywNCj4+ICAgICAgICAgKiBJZiB3ZSBkbyBub3Qga25v dyB5ZXQgd2hpY2ggZm9ybWF0IHRoZSBzdWJkZXYgaXMgdXNpbmcsIHdlIGNhbm5vdA0KPj4gICAg ICAgICAqIGRvIGFueXRoaW5nLg0KPj4gICAgICAgICAqLw0KPj4gLSAgICAgaWYgKCFpc2MtPnRy eV9jb25maWcuc2RfZm9ybWF0KQ0KPj4gKyAgICAgaWYgKCFpc2MtPmNvbmZpZy5zZF9mb3JtYXQp DQo+PiAgICAgICAgICAgICAgICByZXR1cm47DQo+Pg0KPj4gICAgICAgIGZzZS5jb2RlID0gaXNj LT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+bWJ1c19jb2RlOw0KPj4gQEAgLTg0NiwxODAgKzg3OSwx NDAgQEAgc3RhdGljIHZvaWQgaXNjX3RyeV9mc2Uoc3RydWN0IGlzY19kZXZpY2UgKmlzYywNCj4+ ICAgICAgICB9DQo+PiAgIH0NCj4+DQo+PiAtc3RhdGljIGludCBpc2NfdHJ5X2ZtdChzdHJ1Y3Qg aXNjX2RldmljZSAqaXNjLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYsDQo+PiAtICAgICAgICAgICAg ICAgICAgICAgdTMyICpjb2RlKQ0KPj4gK3N0YXRpYyBpbnQgaXNjX3RyeV9mbXQoc3RydWN0IGlz Y19kZXZpY2UgKmlzYywgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KPj4gICB7DQo+PiAtICAgICBp bnQgaTsNCj4+IC0gICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpzZF9mbXQgPSBOVUxMLCAqZGlyZWN0 X2ZtdCA9IE5VTEw7DQo+PiAgICAgICAgc3RydWN0IHY0bDJfcGl4X2Zvcm1hdCAqcGl4Zm10ID0g JmYtPmZtdC5waXg7DQo+PiAtICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyBwYWRf Y2ZnID0ge307DQo+PiAtICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgcGFkX3N0YXRlID0g ew0KPj4gLSAgICAgICAgICAgICAucGFkcyA9ICZwYWRfY2ZnDQo+PiAtICAgICAgICAgICAgIH07 DQo+PiAtICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZvcm1hdCA9IHsNCj4+IC0gICAg ICAgICAgICAgLndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFUX1RSWSwNCj4+IC0gICAgIH07DQo+ PiAtICAgICB1MzIgbWJ1c19jb2RlOw0KPj4gLSAgICAgaW50IHJldDsNCj4+IC0gICAgIGJvb2wg cmxwX2RtYV9kaXJlY3RfZHVtcCA9IGZhbHNlOw0KPj4gKyAgICAgdW5zaWduZWQgaW50IGk7DQo+ Pg0KPj4gICAgICAgIGlmIChmLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkN Cj4+ICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4NCj4+IC0gICAgIC8qIFN0ZXAg MTogZmluZCBhIFJBVyBmb3JtYXQgdGhhdCBpcyBzdXBwb3J0ZWQgKi8NCj4+IC0gICAgIGZvciAo aSA9IDA7IGkgPCBpc2MtPm51bV91c2VyX2Zvcm1hdHM7IGkrKykgew0KPj4gLSAgICAgICAgICAg ICBpZiAoSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT51c2VyX2Zvcm1hdHNbaV0tPm1idXNfY29kZSkp IHsNCj4+IC0gICAgICAgICAgICAgICAgICAgICBzZF9mbXQgPSBpc2MtPnVzZXJfZm9ybWF0c1tp XTsNCj4+ICsgICAgIGlzYy0+dHJ5X2NvbmZpZy5mb3VyY2MgPSBpc2MtPmNvbnRyb2xsZXJfZm9y bWF0c1swXS5mb3VyY2M7DQo+PiArDQo+PiArICAgICAvKiBmaW5kIGlmIHRoZSBmb3JtYXQgcmVx dWVzdGVkIGlzIHN1cHBvcnRlZCAqLw0KPj4gKyAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Y29u dHJvbGxlcl9mb3JtYXRzX3NpemU7IGkrKykNCj4+ICsgICAgICAgICAgICAgaWYgKGlzYy0+Y29u dHJvbGxlcl9mb3JtYXRzW2ldLmZvdXJjYyA9PSBwaXhmbXQtPnBpeGVsZm9ybWF0KSB7DQo+PiAr ICAgICAgICAgICAgICAgICAgICAgaXNjLT50cnlfY29uZmlnLmZvdXJjYyA9IHBpeGZtdC0+cGl4 ZWxmb3JtYXQ7DQo+PiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgICAg ICAgICAgfQ0KPj4gLSAgICAgfQ0KPj4gLSAgICAgLyogU3RlcCAyOiBXZSBjYW4gY29udGludWUg d2l0aCB0aGlzIFJBVyBmb3JtYXQsIG9yIHdlIGNhbiBsb29rDQo+PiAtICAgICAgKiBmb3IgYmV0 dGVyOiBtYXliZSBzZW5zb3Igc3VwcG9ydHMgZGlyZWN0bHkgd2hhdCB3ZSBuZWVkLg0KPj4gLSAg ICAgICovDQo+PiAtICAgICBkaXJlY3RfZm10ID0gZmluZF9mb3JtYXRfYnlfZm91cmNjKGlzYywg cGl4Zm10LT5waXhlbGZvcm1hdCk7DQo+PiAtDQo+PiAtICAgICAvKiBTdGVwIDM6IFdlIGhhdmUg Ym90aC4gV2UgZGVjaWRlIGdpdmVuIHRoZSBtb2R1bGUgcGFyYW1ldGVyIHdoaWNoDQo+PiAtICAg ICAgKiBvbmUgdG8gdXNlLg0KPj4gLSAgICAgICovDQo+PiAtICAgICBpZiAoZGlyZWN0X2ZtdCAm JiBzZF9mbXQgJiYgc2Vuc29yX3ByZWZlcnJlZCkNCj4+IC0gICAgICAgICAgICAgc2RfZm10ID0g ZGlyZWN0X2ZtdDsNCj4+IC0NCj4+IC0gICAgIC8qIFN0ZXAgNDogd2UgZG8gbm90IGhhdmUgUkFX IGJ1dCB3ZSBoYXZlIGEgZGlyZWN0IGZvcm1hdC4gVXNlIGl0LiAqLw0KPj4gLSAgICAgaWYgKGRp cmVjdF9mbXQgJiYgIXNkX2ZtdCkNCj4+IC0gICAgICAgICAgICAgc2RfZm10ID0gZGlyZWN0X2Zt dDsNCj4+IC0NCj4+IC0gICAgIC8qIFN0ZXAgNTogaWYgd2UgYXJlIHVzaW5nIGEgZGlyZWN0IGZv cm1hdCwgd2UgbmVlZCB0byBwYWNrYWdlDQo+PiAtICAgICAgKiBldmVyeXRoaW5nIGFzIDggYml0 IGRhdGEgYW5kIGp1c3QgZHVtcCBpdA0KPj4gLSAgICAgICovDQo+PiAtICAgICBpZiAoc2RfZm10 ID09IGRpcmVjdF9mbXQpDQo+PiAtICAgICAgICAgICAgIHJscF9kbWFfZGlyZWN0X2R1bXAgPSB0 cnVlOw0KPj4gLQ0KPj4gLSAgICAgLyogU3RlcCA2OiBXZSBoYXZlIG5vIGZvcm1hdC4gVGhpcyBj YW4gaGFwcGVuIGlmIHRoZSB1c2Vyc3BhY2UNCj4+IC0gICAgICAqIHJlcXVlc3RzIHNvbWUgd2Vp cmQvaW52YWxpZCBmb3JtYXQuDQo+PiAtICAgICAgKiBJbiB0aGlzIGNhc2UsIGRlZmF1bHQgdG8g d2hhdGV2ZXIgd2UgaGF2ZQ0KPj4gLSAgICAgICovDQo+PiAtICAgICBpZiAoIXNkX2ZtdCAmJiAh ZGlyZWN0X2ZtdCkgew0KPj4gLSAgICAgICAgICAgICBzZF9mbXQgPSBpc2MtPnVzZXJfZm9ybWF0 c1tpc2MtPm51bV91c2VyX2Zvcm1hdHMgLSAxXTsNCj4+IC0gICAgICAgICAgICAgdjRsMl9kYmco MSwgZGVidWcsICZpc2MtPnY0bDJfZGV2LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAiU2Vu c29yIG5vdCBzdXBwb3J0aW5nICUuNHMsIHVzaW5nICUuNHNcbiIsDQo+PiAtICAgICAgICAgICAg ICAgICAgICAgIChjaGFyICopJnBpeGZtdC0+cGl4ZWxmb3JtYXQsIChjaGFyICopJnNkX2ZtdC0+ Zm91cmNjKTsNCj4+IC0gICAgIH0NCj4+IC0NCj4+IC0gICAgIGlmICghc2RfZm10KSB7DQo+PiAt ICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7DQo+PiAtICAgICAgICAgICAgIGdvdG8gaXNjX3Ry eV9mbXRfZXJyOw0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgLyogU3RlcCA3OiBQcmludCBv dXQgd2hhdCB3ZSBkZWNpZGVkIGZvciBkZWJ1Z2dpbmcgKi8NCj4+IC0gICAgIHY0bDJfZGJnKDEs IGRlYnVnLCAmaXNjLT52NGwyX2RldiwNCj4+IC0gICAgICAgICAgICAgICJQcmVmZXJyaW5nIHRv IGhhdmUgc2Vuc29yIHVzaW5nIGZvcm1hdCAlLjRzXG4iLA0KPj4gLSAgICAgICAgICAgICAgKGNo YXIgKikmc2RfZm10LT5mb3VyY2MpOw0KPj4NCj4+IC0gICAgIC8qIFN0ZXAgODogYXQgdGhpcyBt b21lbnQgd2UgZGVjaWRlZCB3aGljaCBmb3JtYXQgdGhlIHN1YmRldiB3aWxsIHVzZSAqLw0KPj4g LSAgICAgaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdCA9IHNkX2ZtdDsNCj4+ICsgICAgIGlzY190 cnlfY29uZmlndXJlX3JscF9kbWEoaXNjLCBmYWxzZSk7DQo+Pg0KPj4gICAgICAgIC8qIExpbWl0 IHRvIEF0bWVsIElTQyBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgKi8NCj4+IC0gICAgIGlmIChwaXhm bXQtPndpZHRoID4gaXNjLT5tYXhfd2lkdGgpDQo+PiAtICAgICAgICAgICAgIHBpeGZtdC0+d2lk dGggPSBpc2MtPm1heF93aWR0aDsNCj4+IC0gICAgIGlmIChwaXhmbXQtPmhlaWdodCA+IGlzYy0+ bWF4X2hlaWdodCkNCj4+IC0gICAgICAgICAgICAgcGl4Zm10LT5oZWlnaHQgPSBpc2MtPm1heF9o ZWlnaHQ7DQo+PiAtDQo+PiAtICAgICAvKg0KPj4gLSAgICAgICogVGhlIG1idXMgZm9ybWF0IGlz IHRoZSBvbmUgdGhlIHN1YmRldiBvdXRwdXRzLg0KPj4gLSAgICAgICogVGhlIHBpeGVscyB3aWxs IGJlIHRyYW5zZmVycmVkIGluIHRoaXMgZm9ybWF0IFNlbnNvciAtPiBJU0MNCj4+IC0gICAgICAq Lw0KPj4gLSAgICAgbWJ1c19jb2RlID0gc2RfZm10LT5tYnVzX2NvZGU7DQo+PiAtDQo+PiAtICAg ICAvKg0KPj4gLSAgICAgICogVmFsaWRhdGUgZm9ybWF0cy4gSWYgdGhlIHJlcXVpcmVkIGZvcm1h dCBpcyBub3QgT0ssIGRlZmF1bHQgdG8gcmF3Lg0KPj4gLSAgICAgICovDQo+PiAtDQo+PiAtICAg ICBpc2MtPnRyeV9jb25maWcuZm91cmNjID0gcGl4Zm10LT5waXhlbGZvcm1hdDsNCj4+IC0NCj4+ IC0gICAgIGlmIChpc2NfdHJ5X3ZhbGlkYXRlX2Zvcm1hdHMoaXNjKSkgew0KPj4gLSAgICAgICAg ICAgICBwaXhmbXQtPnBpeGVsZm9ybWF0ID0gaXNjLT50cnlfY29uZmlnLmZvdXJjYyA9IHNkX2Zt dC0+Zm91cmNjOw0KPj4gLSAgICAgICAgICAgICAvKiBSZS10cnkgdG8gdmFsaWRhdGUgdGhlIG5l dyBmb3JtYXQgKi8NCj4+IC0gICAgICAgICAgICAgcmV0ID0gaXNjX3RyeV92YWxpZGF0ZV9mb3Jt YXRzKGlzYyk7DQo+PiAtICAgICAgICAgICAgIGlmIChyZXQpDQo+PiAtICAgICAgICAgICAgICAg ICAgICAgZ290byBpc2NfdHJ5X2ZtdF9lcnI7DQo+PiAtICAgICB9DQo+PiAtDQo+PiAtICAgICBy ZXQgPSBpc2NfdHJ5X2NvbmZpZ3VyZV9ybHBfZG1hKGlzYywgcmxwX2RtYV9kaXJlY3RfZHVtcCk7 DQo+PiAtICAgICBpZiAocmV0KQ0KPj4gLSAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2Vy cjsNCj4+IC0NCj4+IC0gICAgIHJldCA9IGlzY190cnlfY29uZmlndXJlX3BpcGVsaW5lKGlzYyk7 DQo+PiAtICAgICBpZiAocmV0KQ0KPj4gLSAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2Vy cjsNCj4+IC0NCj4+IC0gICAgIC8qIE9idGFpbiBmcmFtZSBzaXplcyBpZiBwb3NzaWJsZSB0byBo YXZlIGNyb3AgcmVxdWlyZW1lbnRzIHJlYWR5ICovDQo+PiAtICAgICBpc2NfdHJ5X2ZzZShpc2Ms ICZwYWRfc3RhdGUpOw0KPj4gLQ0KPj4gLSAgICAgdjRsMl9maWxsX21idXNfZm9ybWF0KCZmb3Jt YXQuZm9ybWF0LCBwaXhmbXQsIG1idXNfY29kZSk7DQo+PiAtICAgICByZXQgPSB2NGwyX3N1YmRl dl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYtPnNkLCBwYWQsIHNldF9mbXQsDQo+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZwYWRfc3RhdGUsICZmb3JtYXQpOw0KPj4gLSAgICAgaWYg KHJldCA8IDApDQo+PiAtICAgICAgICAgICAgIGdvdG8gaXNjX3RyeV9mbXRfc3ViZGV2X2VycjsN Cj4+IC0NCj4+IC0gICAgIHY0bDJfZmlsbF9waXhfZm9ybWF0KHBpeGZtdCwgJmZvcm1hdC5mb3Jt YXQpOw0KPj4gKyAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlKCZwaXhmbXQtPndpZHRoLCAxNiwg aXNjLT5tYXhfd2lkdGgsIDAsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpeGZt dC0+aGVpZ2h0LCAxNiwgaXNjLT5tYXhfaGVpZ2h0LCAwLCAwKTsNCj4+ICsgICAgIC8qIElmIHdl IGRpZCBub3QgZmluZCB0aGUgcmVxdWVzdGVkIGZvcm1hdCwgd2Ugd2lsbCBmYWxsYmFjayBoZXJl ICovDQo+PiArICAgICBwaXhmbXQtPnBpeGVsZm9ybWF0ID0gaXNjLT50cnlfY29uZmlnLmZvdXJj YzsNCj4+ICsgICAgIHBpeGZtdC0+Y29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOw0K Pj4gKyAgICAgcGl4Zm10LT5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsNCj4+DQo+PiAtICAgICAv KiBMaW1pdCB0byBBdG1lbCBJU0MgaGFyZHdhcmUgY2FwYWJpbGl0aWVzICovDQo+PiAtICAgICBp ZiAocGl4Zm10LT53aWR0aCA+IGlzYy0+bWF4X3dpZHRoKQ0KPj4gLSAgICAgICAgICAgICBwaXhm bXQtPndpZHRoID0gaXNjLT5tYXhfd2lkdGg7DQo+PiAtICAgICBpZiAocGl4Zm10LT5oZWlnaHQg PiBpc2MtPm1heF9oZWlnaHQpDQo+PiAtICAgICAgICAgICAgIHBpeGZtdC0+aGVpZ2h0ID0gaXNj LT5tYXhfaGVpZ2h0Ow0KPj4NCj4+IC0gICAgIHBpeGZtdC0+ZmllbGQgPSBWNEwyX0ZJRUxEX05P TkU7DQo+PiAgICAgICAgcGl4Zm10LT5ieXRlc3BlcmxpbmUgPSAocGl4Zm10LT53aWR0aCAqIGlz Yy0+dHJ5X2NvbmZpZy5icHBfdjRsMikgPj4gMzsNCj4+ICAgICAgICBwaXhmbXQtPnNpemVpbWFn ZSA9ICgocGl4Zm10LT53aWR0aCAqIGlzYy0+dHJ5X2NvbmZpZy5icHApID4+IDMpICoNCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhmbXQtPmhlaWdodDsNCj4+DQo+PiAtICAgICBp ZiAoY29kZSkNCj4+IC0gICAgICAgICAgICAgKmNvZGUgPSBtYnVzX2NvZGU7DQo+PiArICAgICBp c2MtPnRyeV9mbXQgPSAqZjsNCj4+DQo+PiAgICAgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4NCj4+ IC1pc2NfdHJ5X2ZtdF9lcnI6DQo+PiAtICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgIkNv dWxkIG5vdCBmaW5kIGFueSBwb3NzaWJsZSBmb3JtYXQgZm9yIGEgd29ya2luZyBwaXBlbGluZVxu Iik7DQo+PiAtaXNjX3RyeV9mbXRfc3ViZGV2X2VycjoNCj4+IC0gICAgIG1lbXNldCgmaXNjLT50 cnlfY29uZmlnLCAwLCBzaXplb2YoaXNjLT50cnlfY29uZmlnKSk7DQo+PiArc3RhdGljIGludCBp c2Nfc2V0X2ZtdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYp DQo+PiArew0KPj4gKyAgICAgaXNjX3RyeV9mbXQoaXNjLCBmKTsNCj4+DQo+PiAtICAgICByZXR1 cm4gcmV0Ow0KPj4gKyAgICAgLyogbWFrZSB0aGUgdHJ5IGNvbmZpZ3VyYXRpb24gYWN0aXZlICov DQo+PiArICAgICBpc2MtPmNvbmZpZyA9IGlzYy0+dHJ5X2NvbmZpZzsNCj4+ICsgICAgIGlzYy0+ Zm10ID0gaXNjLT50cnlfZm10Ow0KPj4gKw0KPj4gKyAgICAgdjRsMl9kYmcoMSwgZGVidWcsICZp c2MtPnY0bDJfZGV2LCAiSVNDIHNldF9mbXQgdG8gJS40cyBAJWR4JWRcbiIsDQo+PiArICAgICAg ICAgICAgICAoY2hhciAqKSZmLT5mbXQucGl4LnBpeGVsZm9ybWF0LA0KPj4gKyAgICAgICAgICAg ICAgZi0+Zm10LnBpeC53aWR0aCwgZi0+Zm10LnBpeC5oZWlnaHQpOw0KPj4gKw0KPj4gKyAgICAg cmV0dXJuIDA7DQo+PiAgIH0NCj4+DQo+PiAtc3RhdGljIGludCBpc2Nfc2V0X2ZtdChzdHJ1Y3Qg aXNjX2RldmljZSAqaXNjLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpDQo+PiArc3RhdGljIGludCBp c2NfdmFsaWRhdGUoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgew0KPj4gKyAgICAgaW50 IHJldDsNCj4+ICsgICAgIGludCBpOw0KPj4gKyAgICAgc3RydWN0IGlzY19mb3JtYXQgKnNkX2Zt dCA9IE5VTEw7DQo+PiArICAgICBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0ICpwaXhmbXQgPSAmaXNj LT5mbXQuZm10LnBpeDsNCj4+ICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZvcm1h dCA9IHsNCj4+ICAgICAgICAgICAgICAgIC53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJ VkUsDQo+PiArICAgICAgICAgICAgIC5wYWQgPSBpc2MtPnJlbW90ZV9wYWQsDQo+PiArICAgICB9 Ow0KPj4gKyAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgcGFkX2NmZyA9IHt9Ow0K Pj4gKyAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlIHBhZF9zdGF0ZSA9IHsNCj4+ICsgICAg ICAgICAgICAgLnBhZHMgPSAmcGFkX2NmZywNCj4+ICAgICAgICB9Ow0KPj4gLSAgICAgdTMyIG1i dXNfY29kZSA9IDA7DQo+PiAtICAgICBpbnQgcmV0Ow0KPj4NCj4+IC0gICAgIHJldCA9IGlzY190 cnlfZm10KGlzYywgZiwgJm1idXNfY29kZSk7DQo+PiArICAgICAvKiBHZXQgY3VycmVudCBmb3Jt YXQgZnJvbSBzdWJkZXYgKi8NCj4+ICsgICAgIHJldCA9IHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5j dXJyZW50X3N1YmRldi0+c2QsIHBhZCwgZ2V0X2ZtdCwgTlVMTCwNCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZvcm1hdCk7DQo+PiAgICAgICAgaWYgKHJldCkNCj4+ICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+Pg0KPj4gLSAgICAgdjRsMl9maWxsX21idXNfZm9ybWF0KCZm b3JtYXQuZm9ybWF0LCAmZi0+Zm10LnBpeCwgbWJ1c19jb2RlKTsNCj4+IC0gICAgIHJldCA9IHY0 bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+c2QsIHBhZCwNCj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2V0X2ZtdCwgTlVMTCwgJmZvcm1hdCk7DQo+PiAtICAgICBp ZiAocmV0IDwgMCkNCj4+IC0gICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgIC8qIElk ZW50aWZ5IHRoZSBzdWJkZXYncyBmb3JtYXQgY29uZmlndXJhdGlvbiAqLw0KPj4gKyAgICAgZm9y IChpID0gMDsgaSA8IGlzYy0+Zm9ybWF0c19saXN0X3NpemU7IGkrKykNCj4+ICsgICAgICAgICAg ICAgaWYgKGlzYy0+Zm9ybWF0c19saXN0W2ldLm1idXNfY29kZSA9PSBmb3JtYXQuZm9ybWF0LmNv ZGUpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBzZF9mbXQgPSAmaXNjLT5mb3JtYXRzX2xp c3RbaV07DQo+PiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+PiArICAgICAgICAgICAg IH0NCj4+ICsNCj4+ICsgICAgIC8qIENoZWNrIGlmIHRoZSBmb3JtYXQgaXMgbm90IHN1cHBvcnRl ZCAqLw0KPj4gKyAgICAgaWYgKCFzZF9mbXQpIHsNCj4+ICsgICAgICAgICAgICAgdjRsMl9lcnIo JmlzYy0+djRsMl9kZXYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICJDdXJyZW50IHN1YmRl dmljZSBpcyBzdHJlYW1pbmcgYSBtZWRpYSBidXMgY29kZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQg MHgleFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmZvcm1hdC5jb2RlKTsN Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FUElQRTsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsg ICAgIC8qIEF0IHRoaXMgbW9tZW50IHdlIGtub3cgd2hpY2ggZm9ybWF0IHRoZSBzdWJkZXYgd2ls bCB1c2UgKi8NCj4+ICsgICAgIGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQgPSBzZF9mbXQ7DQo+ PiArDQo+PiArICAgICAvKiBJZiB0aGUgc2Vuc29yIGlzIG5vdCBSQVcsIHdlIGNhbiBvbmx5IGRv IGEgZGlyZWN0IGR1bXAgKi8NCj4+ICsgICAgIGlmICghSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT50 cnlfY29uZmlnLnNkX2Zvcm1hdC0+bWJ1c19jb2RlKSkNCj4+ICsgICAgICAgICAgICAgaXNjX3Ry eV9jb25maWd1cmVfcmxwX2RtYShpc2MsIHRydWUpOw0KPj4NCj4+ICAgICAgICAvKiBMaW1pdCB0 byBBdG1lbCBJU0MgaGFyZHdhcmUgY2FwYWJpbGl0aWVzICovDQo+PiAtICAgICBpZiAoZi0+Zm10 LnBpeC53aWR0aCA+IGlzYy0+bWF4X3dpZHRoKQ0KPj4gLSAgICAgICAgICAgICBmLT5mbXQucGl4 LndpZHRoID0gaXNjLT5tYXhfd2lkdGg7DQo+PiAtICAgICBpZiAoZi0+Zm10LnBpeC5oZWlnaHQg PiBpc2MtPm1heF9oZWlnaHQpDQo+PiAtICAgICAgICAgICAgIGYtPmZtdC5waXguaGVpZ2h0ID0g aXNjLT5tYXhfaGVpZ2h0Ow0KPj4gKyAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlKCZmb3JtYXQu Zm9ybWF0LndpZHRoLCAxNiwgaXNjLT5tYXhfd2lkdGgsIDAsDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmZvcm1hdC5mb3JtYXQuaGVpZ2h0LCAxNiwgaXNjLT5tYXhfaGVpZ2h0LCAw LCAwKTsNCj4+DQo+PiAtICAgICBpc2MtPmZtdCA9ICpmOw0KPj4gKyAgICAgLyogQ2hlY2sgaWYg dGhlIGZyYW1lIHNpemUgaXMgdGhlIHNhbWUuIE90aGVyd2lzZSB3ZSBtYXkgb3ZlcmZsb3cgKi8N Cj4+ICsgICAgIGlmIChwaXhmbXQtPmhlaWdodCAhPSBmb3JtYXQuZm9ybWF0LmhlaWdodCB8fA0K Pj4gKyAgICAgICAgIHBpeGZtdC0+d2lkdGggIT0gZm9ybWF0LmZvcm1hdC53aWR0aCkgew0KPj4g KyAgICAgICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwNCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIklTQyBub3QgY29uZmlndXJlZCB3aXRoIHRoZSBwcm9wZXIgZnJhbWUgc2l6ZTog JWR4JWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQud2lkdGgs IGZvcm1hdC5mb3JtYXQuaGVpZ2h0KTsNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FUElQRTsN Cj4+ICsgICAgIH0NCj4+DQo+PiArICAgICB2NGwyX2RiZygxLCBkZWJ1ZywgJmlzYy0+djRsMl9k ZXYsDQo+PiArICAgICAgICAgICAgICAiSWRlbnRpZmllZCBzdWJkZXYgdXNpbmcgZm9ybWF0ICUu NHMgd2l0aCAlZHglZCAlZCBicHBcbiIsDQo+PiArICAgICAgICAgICAgICAoY2hhciAqKSZzZF9m bXQtPmZvdXJjYywgcGl4Zm10LT53aWR0aCwgcGl4Zm10LT5oZWlnaHQsDQo+PiArICAgICAgICAg ICAgICBpc2MtPnRyeV9jb25maWcuYnBwKTsNCj4+ICsNCj4+ICsgICAgIC8qIFJlc2V0IGFuZCBy ZXN0YXJ0IEFXQiBpZiB0aGUgc3ViZGV2aWNlIGNoYW5nZWQgdGhlIGZvcm1hdCAqLw0KPj4gICAg ICAgIGlmIChpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ICYmIGlzYy0+Y29uZmlnLnNkX2Zvcm1h dCAmJg0KPj4gICAgICAgICAgICBpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ICE9IGlzYy0+Y29u ZmlnLnNkX2Zvcm1hdCkgew0KPj4gICAgICAgICAgICAgICAgaXNjLT5jdHJscy5oaXN0X3N0YXQg PSBISVNUX0lOSVQ7DQo+PiAgICAgICAgICAgICAgICBpc2NfcmVzZXRfYXdiX2N0cmxzKGlzYyk7 DQo+PiAgICAgICAgICAgICAgICBpc2NfdXBkYXRlX3Y0bDJfY3RybHMoaXNjKTsNCj4+ICAgICAg ICB9DQo+PiAtICAgICAvKiBtYWtlIHRoZSB0cnkgY29uZmlndXJhdGlvbiBhY3RpdmUgKi8NCj4+ ICsNCj4+ICsgICAgIC8qIFZhbGlkYXRlIGZvcm1hdHMgKi8NCj4+ICsgICAgIHJldCA9IGlzY190 cnlfdmFsaWRhdGVfZm9ybWF0cyhpc2MpOw0KPj4gKyAgICAgaWYgKHJldCkNCj4+ICsgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgIC8qIE9idGFpbiBmcmFtZSBzaXplcyBp ZiBwb3NzaWJsZSB0byBoYXZlIGNyb3AgcmVxdWlyZW1lbnRzIHJlYWR5ICovDQo+PiArICAgICBp c2NfdHJ5X2ZzZShpc2MsICZwYWRfc3RhdGUpOw0KPj4gKw0KPj4gKyAgICAgLyogQ29uZmlndXJl IElTQyBwaXBlbGluZSBmb3IgdGhlIGNvbmZpZyAqLw0KPj4gKyAgICAgcmV0ID0gaXNjX3RyeV9j b25maWd1cmVfcGlwZWxpbmUoaXNjKTsNCj4+ICsgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAg ICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiAgICAgICAgaXNjLT5jb25maWcgPSBpc2MtPnRyeV9j b25maWc7DQo+Pg0KPj4gICAgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2Rldiwg Ik5ldyBJU0MgY29uZmlndXJhdGlvbiBpbiBwbGFjZVxuIik7DQo+PiBAQCAtMTA0Myw3ICsxMDM2 LDcgQEAgc3RhdGljIGludCBpc2NfdHJ5X2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2 b2lkICpwcml2LA0KPj4gICB7DQo+PiAgICAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IHZp ZGVvX2RydmRhdGEoZmlsZSk7DQo+Pg0KPj4gLSAgICAgcmV0dXJuIGlzY190cnlfZm10KGlzYywg ZiwgTlVMTCk7DQo+PiArICAgICByZXR1cm4gaXNjX3RyeV9mbXQoaXNjLCBmKTsNCj4+ICAgfQ0K Pj4NCj4+ICAgc3RhdGljIGludCBpc2NfZW51bV9pbnB1dChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9p ZCAqcHJpdiwNCj4+IEBAIC0xMDk4LDEwICsxMDkxLDYgQEAgc3RhdGljIGludCBpc2NfZW51bV9m cmFtZXNpemVzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwNCj4+ICAgICAgICBpZiAoZnNp emUtPmluZGV4KQ0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pg0KPj4gLSAg ICAgZm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJfZm9ybWF0czsgaSsrKQ0KPj4gLSAgICAg ICAgICAgICBpZiAoaXNjLT51c2VyX2Zvcm1hdHNbaV0tPmZvdXJjYyA9PSBmc2l6ZS0+cGl4ZWxf Zm9ybWF0KQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIHJldCA9IDA7DQo+PiAtDQo+PiAgICAg ICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemU7IGkrKykNCj4+ ICAgICAgICAgICAgICAgIGlmIChpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c1tpXS5mb3VyY2MgPT0g ZnNpemUtPnBpeGVsX2Zvcm1hdCkNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsN Cj4+IEBAIC0xNzgyLDUyICsxNzcxLDYgQEAgc3RydWN0IGlzY19mb3JtYXQgKmlzY19maW5kX2Zv cm1hdF9ieV9jb2RlKHN0cnVjdCBpc2NfZGV2aWNlICppc2MsDQo+PiAgIH0NCj4+ICAgRVhQT1JU X1NZTUJPTF9HUEwoaXNjX2ZpbmRfZm9ybWF0X2J5X2NvZGUpOw0KPj4NCj4+IC1zdGF0aWMgaW50 IGlzY19mb3JtYXRzX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+IC17DQo+PiAtICAg ICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10Ow0KPj4gLSAgICAgc3RydWN0IHY0bDJfc3ViZGV2ICpz dWJkZXYgPSBpc2MtPmN1cnJlbnRfc3ViZGV2LT5zZDsNCj4+IC0gICAgIHVuc2lnbmVkIGludCBu dW1fZm10cywgaSwgajsNCj4+IC0gICAgIHUzMiBsaXN0X3NpemUgPSBpc2MtPmZvcm1hdHNfbGlz dF9zaXplOw0KPj4gLSAgICAgc3RydWN0IHY0bDJfc3ViZGV2X21idXNfY29kZV9lbnVtIG1idXNf Y29kZSA9IHsNCj4+IC0gICAgICAgICAgICAgLndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFUX0FD VElWRSwNCj4+IC0gICAgIH07DQo+PiAtDQo+PiAtICAgICBudW1fZm10cyA9IDA7DQo+PiAtICAg ICB3aGlsZSAoIXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCBwYWQsIGVudW1fbWJ1c19jb2RlLA0K Pj4gLSAgICAgICAgICAgIE5VTEwsICZtYnVzX2NvZGUpKSB7DQo+PiAtICAgICAgICAgICAgIG1i dXNfY29kZS5pbmRleCsrOw0KPj4gLQ0KPj4gLSAgICAgICAgICAgICBmbXQgPSBpc2NfZmluZF9m b3JtYXRfYnlfY29kZShpc2MsIG1idXNfY29kZS5jb2RlLCAmaSk7DQo+PiAtICAgICAgICAgICAg IGlmICghZm10KSB7DQo+PiAtICAgICAgICAgICAgICAgICAgICAgdjRsMl93YXJuKCZpc2MtPnY0 bDJfZGV2LCAiTWJ1cyBjb2RlICV4IG5vdCBzdXBwb3J0ZWRcbiIsDQo+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1idXNfY29kZS5jb2RlKTsNCj4+IC0gICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsNCj4+IC0gICAgICAgICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICAgICAg ICBmbXQtPnNkX3N1cHBvcnQgPSB0cnVlOw0KPj4gLSAgICAgICAgICAgICBudW1fZm10cysrOw0K Pj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgaWYgKCFudW1fZm10cykNCj4+IC0gICAgICAgICAg ICAgcmV0dXJuIC1FTlhJTzsNCj4+IC0NCj4+IC0gICAgIGlzYy0+bnVtX3VzZXJfZm9ybWF0cyA9 IG51bV9mbXRzOw0KPj4gLSAgICAgaXNjLT51c2VyX2Zvcm1hdHMgPSBkZXZtX2tjYWxsb2MoaXNj LT5kZXYsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fZm10 cywgc2l6ZW9mKCppc2MtPnVzZXJfZm9ybWF0cyksDQo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsNCj4+IC0gICAgIGlmICghaXNjLT51c2VyX2Zv cm1hdHMpDQo+PiAtICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPj4gLQ0KPj4gLSAgICAg Zm10ID0gJmlzYy0+Zm9ybWF0c19saXN0WzBdOw0KPj4gLSAgICAgZm9yIChpID0gMCwgaiA9IDA7 IGkgPCBsaXN0X3NpemU7IGkrKykgew0KPj4gLSAgICAgICAgICAgICBpZiAoZm10LT5zZF9zdXBw b3J0KQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIGlzYy0+dXNlcl9mb3JtYXRzW2orK10gPSBm bXQ7DQo+PiAtICAgICAgICAgICAgIGZtdCsrOw0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAgICAg cmV0dXJuIDA7DQo+PiAtfQ0KPj4gLQ0KPj4gICBzdGF0aWMgaW50IGlzY19zZXRfZGVmYXVsdF9m bXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCB2NGwy X2Zvcm1hdCBmID0gew0KPj4gQEAgLTE4MzYsMTIgKzE3NzksMTIgQEAgc3RhdGljIGludCBpc2Nf c2V0X2RlZmF1bHRfZm10KHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+PiAgICAgICAgICAgICAg ICAgICAgICAgIC53aWR0aCAgICAgICAgICA9IFZHQV9XSURUSCwNCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgLmhlaWdodCAgICAgICAgID0gVkdBX0hFSUdIVCwNCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgLmZpZWxkICAgICAgICAgID0gVjRMMl9GSUVMRF9OT05FLA0KPj4gLSAgICAgICAg ICAgICAgICAgICAgIC5waXhlbGZvcm1hdCAgICA9IGlzYy0+dXNlcl9mb3JtYXRzWzBdLT5mb3Vy Y2MsDQo+PiArICAgICAgICAgICAgICAgICAgICAgLnBpeGVsZm9ybWF0ICAgID0gaXNjLT5jb250 cm9sbGVyX2Zvcm1hdHNbMF0uZm91cmNjLA0KPj4gICAgICAgICAgICAgICAgfSwNCj4+ICAgICAg ICB9Ow0KPj4gICAgICAgIGludCByZXQ7DQo+Pg0KPj4gLSAgICAgcmV0ID0gaXNjX3RyeV9mbXQo aXNjLCAmZiwgTlVMTCk7DQo+PiArICAgICByZXQgPSBpc2NfdHJ5X2ZtdChpc2MsICZmKTsNCj4+ ICAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+DQo+PiBA QCAtMTg5NiwxMyArMTgzOSw2IEBAIHN0YXRpYyBpbnQgaXNjX2FzeW5jX2NvbXBsZXRlKHN0cnVj dCB2NGwyX2FzeW5jX25vdGlmaWVyICpub3RpZmllcikNCj4+ICAgICAgICBzcGluX2xvY2tfaW5p dCgmaXNjLT5kbWFfcXVldWVfbG9jayk7DQo+PiAgICAgICAgc3Bpbl9sb2NrX2luaXQoJmlzYy0+ YXdiX2xvY2spOw0KPj4NCj4+IC0gICAgIHJldCA9IGlzY19mb3JtYXRzX2luaXQoaXNjKTsNCj4+ IC0gICAgIGlmIChyZXQgPCAwKSB7DQo+PiAtICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2MtPnY0 bDJfZGV2LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAiSW5pdCBmb3JtYXQgZmFpbGVkOiAl ZFxuIiwgcmV0KTsNCj4+IC0gICAgICAgICAgICAgZ290byBpc2NfYXN5bmNfY29tcGxldGVfZXJy Ow0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gICAgICAgIHJldCA9IGlzY19zZXRfZGVmYXVsdF9mbXQo aXNjKTsNCj4+ICAgICAgICBpZiAocmV0KSB7DQo+PiAgICAgICAgICAgICAgICB2NGwyX2Vycigm aXNjLT52NGwyX2RldiwgIkNvdWxkIG5vdCBzZXQgZGVmYXVsdCBmb3JtYXRcbiIpOw0KPj4gQEAg LTIwMTYsNiArMTk1MiwyNCBAQCBpbnQgaXNjX3BpcGVsaW5lX2luaXQoc3RydWN0IGlzY19kZXZp Y2UgKmlzYykNCj4+ICAgfQ0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTChpc2NfcGlwZWxpbmVfaW5p dCk7DQo+Pg0KPj4gK3N0YXRpYyBpbnQgaXNjX2xpbmtfdmFsaWRhdGUoc3RydWN0IG1lZGlhX2xp bmsgKmxpbmspDQo+PiArew0KPj4gKyAgICAgc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9DQo+ PiArICAgICAgICAgICAgIG1lZGlhX2VudGl0eV90b192aWRlb19kZXZpY2UobGluay0+c2luay0+ ZW50aXR5KTsNCj4+ICsgICAgIHN0cnVjdCBpc2NfZGV2aWNlICppc2MgPSB2aWRlb19nZXRfZHJ2 ZGF0YSh2ZGV2KTsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICByZXQgPSB2NGwy X3N1YmRldl9saW5rX3ZhbGlkYXRlKGxpbmspOw0KPj4gKyAgICAgaWYgKHJldCkNCj4+ICsgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgIHJldHVybiBpc2NfdmFsaWRhdGUo aXNjKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYV9lbnRpdHlf b3BlcmF0aW9ucyBpc2NfZW50aXR5X29wZXJhdGlvbnMgPSB7DQo+PiArICAgICAubGlua192YWxp ZGF0ZSA9IGlzY19saW5rX3ZhbGlkYXRlLA0KPj4gK307DQo+PiArDQo+PiAgIGludCBpc2NfbWNf aW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCB1MzIgdmVyKQ0KPj4gICB7DQo+PiAgICAgICAg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7DQo+PiBAQCAtMjAyMyw2ICsxOTc3LDgg QEAgaW50IGlzY19tY19pbml0KHN0cnVjdCBpc2NfZGV2aWNlICppc2MsIHUzMiB2ZXIpDQo+Pg0K Pj4gICAgICAgIGlzYy0+dmlkZW9fZGV2LmVudGl0eS5mdW5jdGlvbiA9IE1FRElBX0VOVF9GX0lP X1Y0TDsNCj4+ICAgICAgICBpc2MtPnZpZGVvX2Rldi5lbnRpdHkuZmxhZ3MgPSBNRURJQV9FTlRf RkxfREVGQVVMVDsNCj4+ICsgICAgIGlzYy0+dmlkZW9fZGV2LmVudGl0eS5vcHMgPSAmaXNjX2Vu dGl0eV9vcGVyYXRpb25zOw0KPj4gKw0KPj4gICAgICAgIGlzYy0+cGFkc1tJU0NfUEFEX1NJTktd LmZsYWdzID0gTUVESUFfUEFEX0ZMX1NJTks7DQo+Pg0KPj4gICAgICAgIHJldCA9IG1lZGlhX2Vu dGl0eV9wYWRzX2luaXQoJmlzYy0+dmlkZW9fZGV2LmVudGl0eSwgSVNDX1BBRFNfTlVNLA0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxl ci5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMNCj4+ IGluZGV4IGExY2E0NjMzNzg3Yy4uMmIwNjIxMjk3ZGZlIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMNCj4+ICsrKyBiL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5jDQo+PiBAQCAtMTczLDYg KzE3MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9vcHMgaXNjX3Nj YWxlcl9wYWRfb3BzID0gew0KPj4gICAgICAgIC5pbml0X2NmZyA9IGlzY19zY2FsZXJfaW5pdF9j ZmcsDQo+PiAgIH07DQo+Pg0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWFfZW50aXR5X29w ZXJhdGlvbnMgaXNjX3NjYWxlcl9lbnRpdHlfb3BzID0gew0KPj4gKyAgICAgLmxpbmtfdmFsaWRh dGUgPSB2NGwyX3N1YmRldl9saW5rX3ZhbGlkYXRlLA0KPj4gK307DQo+PiArDQo+PiAgIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfb3BzIHhpc2Nfc2NhbGVyX3N1YmRldl9vcHMgPSB7 DQo+PiAgICAgICAgLnBhZCA9ICZpc2Nfc2NhbGVyX3BhZF9vcHMsDQo+PiAgIH07DQo+PiBAQCAt MTkwLDYgKzE5NCw3IEBAIGludCBpc2Nfc2NhbGVyX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlz YykNCj4+DQo+PiAgICAgICAgaXNjLT5zY2FsZXJfc2QuZmxhZ3MgfD0gVjRMMl9TVUJERVZfRkxf SEFTX0RFVk5PREU7DQo+PiAgICAgICAgaXNjLT5zY2FsZXJfc2QuZW50aXR5LmZ1bmN0aW9uID0g TUVESUFfRU5UX0ZfUFJPQ19WSURFT19TQ0FMRVI7DQo+PiArICAgICBpc2MtPnNjYWxlcl9zZC5l bnRpdHkub3BzID0gJmlzY19zY2FsZXJfZW50aXR5X29wczsNCj4+ICAgICAgICBpc2MtPnNjYWxl cl9wYWRzW0lTQ19TQ0FMRVJfUEFEX1NJTktdLmZsYWdzID0gTUVESUFfUEFEX0ZMX1NJTks7DQo+ PiAgICAgICAgaXNjLT5zY2FsZXJfcGFkc1tJU0NfU0NBTEVSX1BBRF9TT1VSQ0VdLmZsYWdzID0g TUVESUFfUEFEX0ZMX1NPVVJDRTsNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwv YXRtZWwtaXNjLmgNCj4+IGluZGV4IGY5OGYyNWE1NWU3My4uNWIwMTAwYzhjMjQ1IDEwMDY0NA0K Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuaA0KPj4gKysr IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuaA0KPj4gQEAgLTYzLDE1 ICs2MywxNiBAQCBzdHJ1Y3QgaXNjX3N1YmRldl9lbnRpdHkgew0KPj4gICAgKiBAY2ZhX2JheWNm ZzogICAgICAgICAgICAgIElmIHRoaXMgZm9ybWF0IGlzIFJBVyBCQVlFUiwgaW5kaWNhdGUgdGhl IHR5cGUgb2YgYmF5ZXIuDQo+PiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgZWl0aGVy IEJHQkcsIFJHUkcsIGV0Yy4NCj4+ICAgICogQHBmZV9jZmcwX2JwczogICAgTnVtYmVyIG9mIGhh cmR3YXJlIGRhdGEgbGluZXMgY29ubmVjdGVkIHRvIHRoZSBJU0MNCj4+ICsgKiBAcmF3OiAgICAg ICAgICAgICBJZiB0aGUgZm9ybWF0IGlzIHJhdyBiYXllci4NCj4+ICAgICovDQo+Pg0KPj4gICBz dHJ1Y3QgaXNjX2Zvcm1hdCB7DQo+PiAgICAgICAgdTMyICAgICBmb3VyY2M7DQo+PiAgICAgICAg dTMyICAgICBtYnVzX2NvZGU7DQo+PiAgICAgICAgdTMyICAgICBjZmFfYmF5Y2ZnOw0KPj4gLQ0K Pj4gLSAgICAgYm9vbCAgICBzZF9zdXBwb3J0Ow0KPj4gICAgICAgIHUzMiAgICAgcGZlX2NmZzBf YnBzOw0KPj4gKw0KPj4gKyAgICAgYm9vbCAgICByYXc7DQo+PiAgIH07DQo+Pg0KPj4gICAvKiBQ aXBlbGluZSBiaXRtYXAgKi8NCj4+IEBAIC0yMTYsOCArMjE3LDcgQEAgZW51bSBpc2Nfc2NhbGVy X3BhZHMgew0KPj4gICAgKiBAY29tcDogICAgICAgICAgICBjb21wbGV0aW9uIHJlZmVyZW5jZSB0 aGF0IHNpZ25hbHMgZnJhbWUgY29tcGxldGlvbg0KPj4gICAgKg0KPj4gICAgKiBAZm10OiAgICAg ICAgICAgICBjdXJyZW50IHY0MmwgZm9ybWF0DQo+PiAtICogQHVzZXJfZm9ybWF0czogICAgbGlz dCBvZiBmb3JtYXRzIHRoYXQgYXJlIHN1cHBvcnRlZCBhbmQgYWdyZWVkIHdpdGggc2QNCj4+IC0g KiBAbnVtX3VzZXJfZm9ybWF0czogICAgICAgIGhvdyBtYW55IGZvcm1hdHMgYXJlIGluIHVzZXJf Zm9ybWF0cw0KPj4gKyAqIEB0cnlfZm10OiAgICAgICAgIGN1cnJlbnQgdjRsMiB0cnkgZm9ybWF0 DQo+PiAgICAqDQo+PiAgICAqIEBjb25maWc6ICAgICAgICAgIGN1cnJlbnQgSVNDIGZvcm1hdCBj b25maWd1cmF0aW9uDQo+PiAgICAqIEB0cnlfY29uZmlnOiAgICAgICAgICAgICAgdGhlIGN1cnJl bnQgSVNDIHRyeSBmb3JtYXQgLCBub3QgeWV0IGFjdGl2YXRlZA0KPj4gQEAgLTI3Miw2ICsyNzIs NyBAQCBlbnVtIGlzY19zY2FsZXJfcGFkcyB7DQo+PiAgICAqIEBmb3JtYXRzX2xpc3Rfc2l6ZTog ICAgICAgc2l6ZSBvZiBmb3JtYXRzX2xpc3QgYXJyYXkNCj4+ICAgICogQHBhZHM6ICAgICAgICAg ICAgbWVkaWEgY29udHJvbGxlciBwYWRzIGZvciBpc2MgdmlkZW8gZW50aXR5DQo+PiAgICAqIEBt ZGV2OiAgICAgICAgICAgIG1lZGlhIGRldmljZSB0aGF0IGlzIHJlZ2lzdGVyZWQgYnkgdGhlIGlz Yw0KPj4gKyAqIEBtcGlwZTogICAgICAgICAgIG1lZGlhIGRldmljZSBwaXBlbGluZSB1c2VkIGJ5 IHRoZSBpc2MNCj4+ICAgICogQHJlbW90ZV9wYWQ6ICAgICAgICAgICAgICByZW1vdGUgcGFkIG9u IHRoZSBjb25uZWN0ZWQgc3ViZGV2aWNlDQo+PiAgICAqIEBzY2FsZXJfc2Q6ICAgICAgICAgICAg ICAgc3ViZGV2aWNlIGZvciB0aGUgc2NhbGVyIHRoYXQgaXNjIHJlZ2lzdGVycw0KPj4gICAgKiBA c2NhbGVyX3BhZHM6ICAgICBtZWRpYSBjb250cm9sbGVyIHBhZHMgZm9yIHRoZSBzY2FsZXIgc3Vi ZGV2aWNlDQo+PiBAQCAtMjk4LDggKzI5OSw3IEBAIHN0cnVjdCBpc2NfZGV2aWNlIHsNCj4+ICAg ICAgICBzdHJ1Y3QgY29tcGxldGlvbiAgICAgICBjb21wOw0KPj4NCj4+ICAgICAgICBzdHJ1Y3Qg djRsMl9mb3JtYXQgICAgICBmbXQ7DQo+PiAtICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAgICAgICAq KnVzZXJfZm9ybWF0czsNCj4+IC0gICAgIHVuc2lnbmVkIGludCAgICAgICAgICAgIG51bV91c2Vy X2Zvcm1hdHM7DQo+PiArICAgICBzdHJ1Y3QgdjRsMl9mb3JtYXQgICAgICB0cnlfZm10Ow0KPj4N Cj4+ICAgICAgICBzdHJ1Y3QgZm10X2NvbmZpZyAgICAgICBjb25maWc7DQo+PiAgICAgICAgc3Ry dWN0IGZtdF9jb25maWcgICAgICAgdHJ5X2NvbmZpZzsNCj4+IEBAIC0zNjksNiArMzY5LDcgQEAg c3RydWN0IGlzY19kZXZpY2Ugew0KPj4gICAgICAgIHN0cnVjdCB7DQo+PiAgICAgICAgICAgICAg ICBzdHJ1Y3QgbWVkaWFfcGFkICAgICAgICAgICAgICAgIHBhZHNbSVNDX1BBRFNfTlVNXTsNCj4+ ICAgICAgICAgICAgICAgIHN0cnVjdCBtZWRpYV9kZXZpY2UgICAgICAgICAgICAgbWRldjsNCj4+ ICsgICAgICAgICAgICAgc3RydWN0IG1lZGlhX3BpcGVsaW5lICAgICAgICAgICBtcGlwZTsNCj4+ DQo+PiAgICAgICAgICAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90 ZV9wYWQ7DQo+PiAgICAgICAgfTsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0 bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMNCj4+IGluZGV4IGQ5NmVlMzM3Mzg4OS4uMmE2NTFlMjM3 MTkzIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1z YW1hNWQyLWlzYy5jDQo+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVs LXNhbWE1ZDItaXNjLmMNCj4+IEBAIC04MCwyMCArODAsNDAgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBpc2NfZm9ybWF0IHNhbWE1ZDJfY29udHJvbGxlcl9mb3JtYXRzW10gPSB7DQo+PiAgICAgICAg ICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfWTEwLA0KPj4gICAgICAgIH0s IHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TQkdH UjgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+PiAgICAgICAg fSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NH QlJHOCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICAgICAg ICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRf U0dSQkc4LA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4gICAg ICAgIH0sIHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZN VF9TUkdHQjgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+PiAg ICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhf Rk1UX1NCR0dSMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+ PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9Q SVhfRk1UX1NHQlJHMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUs DQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRM Ml9QSVhfRk1UX1NHUkJHMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRy dWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0g VjRMMl9QSVhfRk1UX1NSR0dCMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9 IHRydWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9 IFY0TDJfUElYX0ZNVF9TQkdHUjEyLA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAg PSB0cnVlLA0KPj4gKyAgICAgfSwgew0KPj4gKyAgICAgICAgICAgICAuZm91cmNjICAgICAgICAg PSBWNEwyX1BJWF9GTVRfU0dCUkcxMiwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAg ID0gdHJ1ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAg ID0gVjRMMl9QSVhfRk1UX1NHUkJHMTIsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAg ICA9IHRydWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAgIC5mb3VyY2MgICAgICAg ICA9IFY0TDJfUElYX0ZNVF9TUkdHQjEyLA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAg ICAgPSB0cnVlLA0KPj4gICAgICAgIH0sDQo+PiAgIH07DQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2FtYTdnNS1pc2MuYyBiL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2FtYTdnNS1pc2MuYw0KPj4gaW5kZXggZTA3YWUx ODhjMTVmLi5hMGQ2MGNmZGJhN2IgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2F0bWVsL2F0bWVsLXNhbWE3ZzUtaXNjLmMNCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vYXRtZWwvYXRtZWwtc2FtYTdnNS1pc2MuYw0KPj4gQEAgLTg5LDIwICs4OSw0MCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGlzY19mb3JtYXQgc2FtYTdnNV9jb250cm9sbGVyX2Zvcm1hdHNb XSA9IHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9Z MTYsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0g VjRMMl9QSVhfRk1UX1NCR0dSOCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0g dHJ1ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAg PSBWNEwyX1BJWF9GTVRfU0dCUkc4LA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAg PSB0cnVlLA0KPj4gICAgICAgIH0sIHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAg ICA9IFY0TDJfUElYX0ZNVF9TR1JCRzgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAg ICA9IHRydWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAg ICAgID0gVjRMMl9QSVhfRk1UX1NSR0dCOCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAg ICAgID0gdHJ1ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAg ICAgICAgPSBWNEwyX1BJWF9GTVRfU0JHR1IxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAg ICAgICAgID0gdHJ1ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNj ICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dCUkcxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAg ICAgICAgICAgID0gdHJ1ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91 cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dSQkcxMCwNCj4+ICsgICAgICAgICAgICAgLnJh dyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAu Zm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU1JHR0IxMCwNCj4+ICsgICAgICAgICAgICAg LnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAgICAg LmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NCR0dSMTIsDQo+PiArICAgICAgICAgICAg IC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAg IC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TR0JSRzEyLA0KPj4gKyAgICAgICAgICAg ICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4gKyAgICAgfSwgew0KPj4gKyAgICAgICAgICAg ICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dSQkcxMiwNCj4+ICsgICAgICAgICAg ICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAg ICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NSR0dCMTIsDQo+PiArICAgICAgICAg ICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+PiAgICAgICAgfSwNCj4+ICAgfTsNCj4+DQo+ IA0KDQo=