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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 5A951C4332F for ; Thu, 10 Nov 2022 01:29:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 69A4110E644; Thu, 10 Nov 2022 01:29:07 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id ABA9D10E642; Thu, 10 Nov 2022 01:29:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668043744; x=1699579744; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=9jLdq3vuBaE2o5YosWs80QZ49vtDI1AaIIiE6sHye/U=; b=ChwVsFUlK4QnUJ+TKuDk1LosIVwIoCM9IsG6kw6wjw8qH6GR6q3fgxP9 nQl0ZZKBKF9S9G9OsfLVMcOKWRn3SGX0/g8xOEFImx9ks1BsoHudNdkie Wu4yQlcRcXo8XFfbSTn0J0tT8uwAnCx6pU0bCOE+PH/Um0QUIy8/vRP07 k/vHEOrJTJsXyN4sbAM3pTcfvTwf1BcLPRngRRX2Ad7smayrOvxh+Ep6F CgngEcCKI6fOIGDUHIqZml63hVHfJf0Cldhib9giXw9SAZq8rQGcL5TQJ 7be9omgCSYnb/e99CeMlwrKOKMOnXz15V6Auu968Fh3gwQ8pQiF0yi6Py g==; X-IronPort-AV: E=McAfee;i="6500,9779,10526"; a="298666632" X-IronPort-AV: E=Sophos;i="5.96,152,1665471600"; d="scan'208";a="298666632" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2022 17:29:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10526"; a="631464478" X-IronPort-AV: E=Sophos;i="5.96,152,1665471600"; d="scan'208";a="631464478" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga007.jf.intel.com with ESMTP; 09 Nov 2022 17:29:03 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 9 Nov 2022 17:29:03 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 9 Nov 2022 17:29:03 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 9 Nov 2022 17:29:03 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 9 Nov 2022 17:29:02 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PiyOFx6lX/G6Gf1Yw7Jln4rnF2aXyl6SQEi2ijVOffrggFJg6atlhwUTJB9BdKQ8p29kOSfw2cvRUDE0CtOAPUWFcmCYC/H/jYyU4gjGLUVxCI8xa9psMZcTYQWC3M3P/7xSe4rH7dFE+IgE4IsS2TsDXyLE0ZCJtJND3jWtZ/M94Vs3ZyKrjxbnkFBAVY2U8LQh10HCr7YN9dKoFDGf/7XA5zHO1fj/HZrCH6FE1nu8C+VAIixWBlQajeI70k5LaW+TgLXAlMioMDPwABBt5TSqy3vJRTC1P2C+viVMS/scIBi4jrXNxuhLtfS96Lw/X7OuwyRasAU/68UnByn/1w== 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=9jLdq3vuBaE2o5YosWs80QZ49vtDI1AaIIiE6sHye/U=; b=QpTf9aMpOupJIILq58Kw6lwffVLr4lkecH6APM82I73lEzR3ApXlgNDXaE48c9AffB3I34sYX+AVbBarQ3M/ttbdqzGbLh0YvwmwEVFNmymXjOFKsntkKwEqg8QdCS6Dd/x2XhQdyFJSjaZLrJCNyVe39hNJcwAV9RwHFHerCJQpBIK0u1Ac0F7qiNYj2fPwjdpRi2v2+I+eA8yyoxgSKawqS6XQbuq9pCZSr6YgOPFFMMVZZKqWDCJFxwoVZSsdteiGtwt/KBCm+Cd5sdQ7EsRwX0AcX/5i2p6IpClT4BUMymE6X0VmEUnpzRfHlvxqJmdonzhaQzpGHZW9BszECg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO6PR11MB5620.namprd11.prod.outlook.com (2603:10b6:303:13e::17) by LV2PR11MB5975.namprd11.prod.outlook.com (2603:10b6:408:17d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Thu, 10 Nov 2022 01:28:59 +0000 Received: from CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::bd11:c577:72ab:57ed]) by CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::bd11:c577:72ab:57ed%8]) with mapi id 15.20.5791.027; Thu, 10 Nov 2022 01:28:59 +0000 From: "Zanoni, Paulo R" To: "dri-devel@lists.freedesktop.org" , "Vishwanathapura, Niranjana" , "intel-gfx@lists.freedesktop.org" Subject: Re: [PATCH v6 05/20] drm/i915/vm_bind: Implement bind and unbind of object Thread-Topic: [PATCH v6 05/20] drm/i915/vm_bind: Implement bind and unbind of object Thread-Index: AQHY8oZF6OTkBii9KUeZ8416rHSoPK43Yo8A Date: Thu, 10 Nov 2022 01:28:59 +0000 Message-ID: References: <20221107085210.17221-1-niranjana.vishwanathapura@intel.com> <20221107085210.17221-6-niranjana.vishwanathapura@intel.com> In-Reply-To: <20221107085210.17221-6-niranjana.vishwanathapura@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.38.3-1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR11MB5620:EE_|LV2PR11MB5975:EE_ x-ms-office365-filtering-correlation-id: 64cd6629-fc66-492b-cc2d-08dac2baf12d x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dw/rLpDu8cj6ji5hSmr8iF2nfivarl68AwACVhSgvOf/JqBGPkGMTz8dB3oL0qCsvuNoYPEERUwOLk6VFVN6QiCrTNim1am+DapZAAfgJLj/AC8jL7czO11vXKapmEczjrQ3gK2bQK3kpg9wiRqYMAnUINKO506NnUezrVBMq3iz8psAp8ZwHVFE9dsoEw9P0dzu5ETZ3HxMYElaZQfWyFzpLbfgxfj5aaNRKG/8qUCzC4+yFQYjfYaJnrggnbDij6BZ5dK6c2uN6vi/9DMvjuBMQmhTwFfix/cW/E1ZmfDAfVEkWjn02ojWfWxgncbj3p4J1EX+7OLqeLlDP2iRZQ46kd2JpWhSQ6aLUQY9Q4rdj6jM6l/xHQe9EyLujCHPSOFWU0AQd1VWjxVjGEeQMAIPKSYWddJqSuXBretqdWuRwvjoUeMO+cRvZDYAkOKZiPgzt0cJm0H4UH8GOY0K6sRv0hm/Yg5ZG85K8BT9mub/hwITYqNgDvnGC/umKiE8ZICNf0LBaxOqBpLRhDqvwYHaCAIIooHjc1E2kB6JVb1ufsfYvG0qdWvljVlZfNCCe9nZvQYHWgB4lQYoeW2Pp49XDl97GacDc2Kv+faD9o6vVYt0R9bBvucsM5dHEU/CyQMVwqscJydbsPwbT2XJBIQY6ox6/oOltP4sDcUUw0jF9Q+O8y7cEsY4nj3/3IP0xpQUdrDDpG26njESjlPKQuoeQSkWHGcugVCtz7mcFRt76uC0t4jr9NVR3E0y195wL6CQWJ1OK+HEKsaP7V+B6A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR11MB5620.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(376002)(346002)(366004)(396003)(136003)(451199015)(2616005)(30864003)(6512007)(5660300002)(186003)(6506007)(6486002)(36756003)(83380400001)(71200400001)(2906002)(66446008)(66476007)(91956017)(478600001)(66556008)(76116006)(38070700005)(66946007)(110136005)(41300700001)(86362001)(122000001)(54906003)(8936002)(38100700002)(64756008)(82960400001)(4326008)(8676002)(316002)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WTZzaXFCZjRpL01zelEyK1k5L2t0OHJEbFFlcTlWWWc1ZG9zekJCcjIzcTln?= =?utf-8?B?SFRZRkVEMm9ieEd5RnF2dmFZQUNWVW9LbkpEMzA5ZU1HZWJPTGZwcGo0NThL?= =?utf-8?B?VndwTGNQQjROZDJGbzZrdG9KVGxUQ3lWMGFTU0RjQy9DUHJxdlRENllvTkZz?= =?utf-8?B?NEdJSitTRDdHdVZxdWZ3TkgwZ2tFUTNDL2hyazEyYnB6ZHZDaVNMbTRPbXR5?= =?utf-8?B?a1Y3SVlBeGZ3SkVqV3diVHErMEdEMmpqbXRveGw3d0VlRG9NelNYdWNUMjB0?= =?utf-8?B?UnEzN3dZTVZldVMyQU16K3E4TkFBR3RwR3BUTDI1cU9iU1Zac1dtVFZXY2c3?= =?utf-8?B?Q1Y0akpHT05QVFl0Kzh4VDUzZnl1L0RNV2RjT3hZOWVNeTN4bW4vdWtwZE44?= =?utf-8?B?RGVteDFEbll6MGlnTGpvTDFKb25qYUNzczM5ajdCS09GWE5WWUxFemZwSUY3?= =?utf-8?B?MU5NRXNrVlo1c3prWDVwMExMeDJBK1pkRmE2VXBybHgweXdHdFRULzE5Nyts?= =?utf-8?B?bXNhS241VjhnR3hnSmdwcUhRcGFCQ2owVll1YUIydXlHaWkvRmJPZ2JjS3Rv?= =?utf-8?B?Rzc2LzBjVmNzMzR4UG0xK2ZNNXdlMDhoSGxFWm8vTUZtNmxMaDg0NkFSb2Jl?= =?utf-8?B?cmxBeU5IWk9oWHBpVTkxTkczZ0xPYXZzZEFncjBZQUtEbnhoeXpmZk92YVpX?= =?utf-8?B?Sk5kTWU5UnhIcHphejlaN2dmTFhiTERoNXlZaHo5dTNXcURZaUlrRFBBVDVD?= =?utf-8?B?aHpnTm9YMDBnd0h1dGhhMEQ4ZFp6MzgwejNpKzVmRzJQV2ZTMGViR2s5YkhO?= =?utf-8?B?WWVyZTBoNDZMM1JiTWYyQi9oVnZNczNMT2ZDOFdpeFN1d2FsVEZFSk8wVlVP?= =?utf-8?B?L3ZKWDRTcGplYTRFMTZseXdNYUJiSjI4SHE5cys4V2NUODFqQjFGRnlMUDNz?= =?utf-8?B?S1lubWNrcWZMUHF6OThFUXJsVktXNEt6ZFljVHQzdjN2aENxVUdEc2E0bVpH?= =?utf-8?B?QmUvUTJtUG81RXkwRlJTazN2QlB3TmkyNFJsLzlXWnJhNmFvSnVLbzFaM3dy?= =?utf-8?B?K3B5VkwwQkthMXZlVzZxRUV0VnRONXFnR0tHK2ZHRG01ckRLeDFCd2U5NzUv?= =?utf-8?B?WDdGT1Q1SGdkV0xUaWpHWW1OeTFjRlo2c0JpZlhoSTVOMjJMbmd0OXJISWt1?= =?utf-8?B?WVhibG5EdUh0aDNBUkJ6aFNqTTZ6R2o2RS8zanRhVEl1TGNTOWQ2cnJaRC84?= =?utf-8?B?RDExaWtkdk45ejdoT1JnQ00wMDlaN2RSK2N3anRZZFNQVWI1UlRMSlFieisx?= =?utf-8?B?MG01SHRXNWJMdC9HOS85QTV4WEpTNU4wY1N6eUV1SVladTZqdkR1ZGNqQWFz?= =?utf-8?B?VmFPT3FtcXlzOWcxOEFwSVM0V2JtY1Z0amYvMDlha2Ivb3MzUkRWcms5YXo3?= =?utf-8?B?VElHNzFOcGV5Z1FGdnh2MzVNT3dMMWdpM1FLSlFwMXhpUEp1RTZSVTE4WUxE?= =?utf-8?B?SlRUQ29yd1FEUEFuc2NLSVozM0tydnJITkVFaHQyRkFEUHRPL1pOTTVScE1k?= =?utf-8?B?aDhYTWNIM1FMRGFBT2MvejBxUVk4U2w5QWs4Q2RYSmJaQU40MUdMUUl4dkVD?= =?utf-8?B?ZjRVU0JaQ1Jkak1lVG9CcU9WUnFwZlNuMEhGV2ViYlZwd1hXWmJybUVBNi9E?= =?utf-8?B?OXNaZTU0L0lrMERzeGovUGJGeVY5aHdvTnJmaWpneVVQWGJLcTNxalpTS0VS?= =?utf-8?B?dmxwS2tmQ0RVUElwTGJzcEZ1NVRZN3k2RDlxQnZrVnVubktkMTk1LzRrSXhP?= =?utf-8?B?b29keWxZQStRUDJyQzNwWm8wbHdqRkc2RVJ1RFFqTXphS3orRmpsZ040M0NN?= =?utf-8?B?eE0vR1hlUzJrd1Y2MDVzNGhxWWlFRlBjUWNQOVJZaVhuZENVa1VzbHl1dE1a?= =?utf-8?B?bzRhNjd3OExmekx4MG1BNk0rOGR4eXpIQ0tTMko5bkU0THhBd00yWFFXd0lM?= =?utf-8?B?OHpwRnB2K2xseHVaellBZmhwc0ZVSDRYajdiVTgvaEZRZ3Y0YnhqUUZTMnF4?= =?utf-8?B?ZnNrckZlcEhrTVNwRHZHZkduTkpRdytjb0Q4OWExczBwMFVTSEJKYTJiOXps?= =?utf-8?B?RS91UTVrWFFnYmNXZUJoWUx5S2JBNnRHbWpmK09mUHhhb2s3M0ZRb1NwdGFz?= =?utf-8?B?d01INXB6M3JpWWZhM2swU3loVjZRNVdaSVBZVUJjaEJOTkFrYkRGNUtYcTAw?= =?utf-8?B?Sk1yNDB3M3BaWk5IV2g4U20xZVRnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <7CFCEE5B2295B1428EC73E9C64B58F40@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5620.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64cd6629-fc66-492b-cc2d-08dac2baf12d X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Nov 2022 01:28:59.2050 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QyRqEaJpp/x6fYYRxeDDXarQZQmKvnpjZrIlGlMemmCRlDq/FV4JW4gIVwAg7vuZT7GM3za8ioJB7KUlrjwpKG5R5/PwgMP9WYlmGcCHf4s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR11MB5975 X-OriginatorOrg: intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Brost, Matthew" , "andi.shyti@linux.intel.com" , "Ursulin, Tvrtko" , "Nikula, Jani" , "Landwerlin, Lionel G" , "Hellstrom, Thomas" , "Auld, Matthew" , "jason@jlekstrand.net" , "Vetter, Daniel" , "christian.koenig@amd.com" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gTW9uLCAyMDIyLTExLTA3IGF0IDAwOjUxIC0wODAwLCBOaXJhbmphbmEgVmlzaHdhbmF0aGFw dXJhIHdyb3RlOg0KPiBBZGQgdWFwaSBhbmQgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGJpbmQgYW5k IHVuYmluZCBvZiBhbg0KPiBvYmplY3QgYXQgdGhlIHNwZWNpZmllZCBHUFUgdmlydHVhbCBhZGRy ZXNzZXMuDQo+IA0KPiBUaGUgdm1fYmluZCBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gbGVnYWN5 IGV4ZWNidWYyIGlvY3RsLg0KPiBJdCB3aWxsIGJlIHN1cHBvcnRlZCBvbmx5IGluIHRoZSBuZXdl ciBleGVjYnVmMyBpb2N0bC4NCj4gDQo+IHYyOiBPbiBvbGRlciBwbGF0Zm9ybXMgY3R4LT52bSBp cyBub3Qgc2V0LCBjaGVjayBmb3IgaXQuDQo+IMKgwqDCoMKgSW4gdm1fYmluZCBjYWxsLCBhZGQg dm1hIHRvIHZtX2JpbmRfbGlzdC4NCj4gwqDCoMKgwqBBZGQgbW9yZSBpbnB1dCB2YWxpZGl0eSBj aGVja3MuDQo+IMKgwqDCoMKgVXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbi4NCj4gdjM6IEluIHZt X2JpbmQgY2FsbCwgYWRkIHZtYSB0byB2bV9ib3VuZF9saXN0IGFzIHVzZXIgY2FuDQo+IMKgwqDC oMKgcmVxdWVzdCBhIGZlbmNlIGFuZCBwYXNzIHRvIGV4ZWNidWYzIGFzIGlucHV0IGZlbmNlLg0K PiDCoMKgwqDCoFJlbW92ZSBzaG9ydCB0ZXJtIHBpbm5pbmcgd2l0aCBQSU5fVkFMSURBVEUgZmxh Zy4NCj4gdjQ6IFJlcGxhY2Ugdm0tPnZtX2JpbmRfbW9kZSBjaGVjayB3aXRoIGk5MTVfZ2VtX3Zt X2lzX3ZtX2JpbmRfbW9kZSgpLg0KPiB2NTogRW5zdXJlIGFsbCByZXNlcnZlZCBmaWVsZHMgYXJl IDAsIHVzZSBQSU5fTk9FVklDVC4NCj4gdjY6IEFkZCByZXNlcnZlZCBmaWVsZHMgdG8gZHJtX2k5 MTVfZ2VtX3ZtX2JpbmQuDQo+IA0KPiBSZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3 LmF1bGRAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBOaXJhbmphbmEgVmlzaHdhbmF0aGFw dXJhIDxuaXJhbmphbmEudmlzaHdhbmF0aGFwdXJhQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1i eTogUHJhdGhhcCBLdW1hciBWYWxzYW4gPHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNvbT4N Cj4gU2lnbmVkLW9mZi1ieTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBsaW51eC5pbnRlbC5jb20+ DQo+IC0tLQ0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAg ICB8ICAgMSArDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQu aCAgIHwgIDE1ICsNCj4gwqAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgICAgfCAgIDUgKw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92bV9i aW5kLmggICB8ICAyNiArKw0KPiDCoC4uLi9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdm1fYmluZF9v YmplY3QuYyAgICB8IDMyNCArKysrKysrKysrKysrKysrKysNCj4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9ndHQuYyAgICAgICAgICAgfCAgMTAgKw0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2d0dC5oICAgICAgICAgICB8ICAgOSArDQo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcml2ZXIuYyAgICAgICAgICAgIHwgICAzICsNCj4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgICAgfCAgIDEgKw0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmggICAgICAgICB8ICAxNCArDQo+IMKgaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgICAgIHwgIDk5ICsrKysrKw0KPiDC oDExIGZpbGVzIGNoYW5nZWQsIDUwNyBpbnNlcnRpb25zKCspDQo+IMKgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92bV9iaW5kLmgNCj4gwqBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3ZtX2JpbmRf b2JqZWN0LmMNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlDQo+IGluZGV4IDUxNzA0YjU0MzE3Yy4u YjczMWYzYWM4MGRhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQ0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiBAQCAtMTY2LDYgKzE2 Niw3IEBAIGdlbS15ICs9IFwNCj4gwqAJZ2VtL2k5MTVfZ2VtX3R0bV9tb3ZlLm8gXA0KPiDCoAln ZW0vaTkxNV9nZW1fdHRtX3BtLm8gXA0KPiDCoAlnZW0vaTkxNV9nZW1fdXNlcnB0ci5vIFwNCj4g KwlnZW0vaTkxNV9nZW1fdm1fYmluZF9vYmplY3QubyBcDQo+IMKgCWdlbS9pOTE1X2dlbV93YWl0 Lm8gXA0KPiDCoAlnZW0vaTkxNV9nZW1mcy5vDQo+IMKgaTkxNS15ICs9IFwNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oDQo+IGluZGV4IDg5OWZhOGYxZTBm ZS4uZThiNDFhYThmOGM0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fY29udGV4dC5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmgNCj4gQEAgLTEzOSw2ICsxMzksMjEgQEAgaW50IGk5MTVfZ2VtX2NvbnRl eHRfc2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4g wqBpbnQgaTkxNV9nZW1fY29udGV4dF9yZXNldF9zdGF0c19pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLA0KPiDCoAkJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxl KTsNCj4gwqANCj4gDQo+IA0KPiANCj4gKy8qKg0KPiArICogaTkxNV9nZW1fdm1faXNfdm1fYmlu ZF9tb2RlKCkgLSBDaGVjayBpZiBhZGRyZXNzIHNwYWNlIGlzIGluIHZtX2JpbmQgbW9kZQ0KPiAr ICogQHZtOiB0aGUgYWRkcmVzcyBzcGFjZQ0KPiArICoNCj4gKyAqIFJldHVybnM6DQo+ICsgKiB0 cnVlOiBAdm0gaXMgaW4gdm1fYmluZCBtb2RlOyBhbGxvd3Mgb25seSB2bV9iaW5kIG1ldGhvZCBv ZiBiaW5kaW5nLg0KPiArICogZmFsc2U6IEB2bSBpcyBub3QgaW4gdm1fYmluZCBtb2RlOyBhbGxv d3Mgb25seSBsZWdhY3kgZXhlY2J1ZmYgbWV0aG9kDQo+ICsgKiAgICAgICAgb2YgYmluZGluZy4N Cj4gKyAqLw0KPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3ZtX2lzX3ZtX2JpbmRfbW9k ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkNCj4gK3sNCj4gKwkvKiBObyBzdXBwb3J0 IHRvIGVuYWJsZSB2bV9iaW5kIG1vZGUgeWV0ICovDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArfQ0K PiArDQo+IMKgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqDQo+IMKgaTkxNV9nZW1fdm1fbG9v a3VwKHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiwgdTMyIGlkKTsNCj4g wqANCj4gDQo+IA0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f ZXhlY2J1ZmZlci5jDQo+IGluZGV4IDExNjA3MjNjOWQyZC4uYzViYzlmNmU4ODdmIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMNCj4g QEAgLTc4MSw2ICs3ODEsMTEgQEAgc3RhdGljIGludCBlYl9zZWxlY3RfY29udGV4dChzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyICplYikNCj4gwqAJaWYgKHVubGlrZWx5KElTX0VSUihjdHgpKSkNCj4g wqAJCXJldHVybiBQVFJfRVJSKGN0eCk7DQo+IMKgDQo+IA0KPiANCj4gDQo+ICsJaWYgKGN0eC0+ dm0gJiYgaTkxNV9nZW1fdm1faXNfdm1fYmluZF9tb2RlKGN0eC0+dm0pKSB7DQo+ICsJCWk5MTVf Z2VtX2NvbnRleHRfcHV0KGN0eCk7DQo+ICsJCXJldHVybiAtRU9QTk9UU1VQUDsNCj4gKwl9DQo+ ICsNCj4gwqAJZWItPmdlbV9jb250ZXh0ID0gY3R4Ow0KPiDCoAlpZiAoaTkxNV9nZW1fY29udGV4 dF9oYXNfZnVsbF9wcGd0dChjdHgpKQ0KPiDCoAkJZWItPmludmFsaWRfZmxhZ3MgfD0gRVhFQ19P QkpFQ1RfTkVFRFNfR1RUOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3ZtX2JpbmQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92 bV9iaW5kLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4z NjI2MmE2MzU3YjUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fdm1fYmluZC5oDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8NCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgwqkgMjAy MiBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX19JOTE1X0dFTV9W TV9CSU5EX0gNCj4gKyNkZWZpbmUgX19JOTE1X0dFTV9WTV9CSU5EX0gNCj4gKw0KPiArI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+DQo+ICsNCj4gK3N0cnVjdCBkcm1fZGV2aWNlOw0KPiArc3RydWN0 IGRybV9maWxlOw0KPiArc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZTsNCj4gK3N0cnVjdCBpOTE1 X3ZtYTsNCj4gKw0KPiArc3RydWN0IGk5MTVfdm1hICoNCj4gK2k5MTVfZ2VtX3ZtX2JpbmRfbG9v a3VwX3ZtYShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgdTY0IHZhKTsNCj4gKw0KPiAr aW50IGk5MTVfZ2VtX3ZtX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwNCj4gKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7DQo+ICtpbnQgaTkxNV9nZW1f dm1fdW5iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+ICsJ CQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7DQo+ICsNCj4gK3ZvaWQgaTkxNV9nZW1fdm1f dW5iaW5kX2FsbChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSk7DQo+ICsNCj4gKyNlbmRp ZiAvKiBfX0k5MTVfR0VNX1ZNX0JJTkRfSCAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3ZtX2JpbmRfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fdm1fYmluZF9vYmplY3QuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjZmMjk5ODA2YmVlMQ0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92bV9iaW5kX29iamVjdC5j DQo+IEBAIC0wLDAgKzEsMzI0IEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlU DQo+ICsvKg0KPiArICogQ29weXJpZ2h0IMKpIDIwMjIgSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAq Lw0KPiArDQo+ICsjaW5jbHVkZSA8dWFwaS9kcm0vaTkxNV9kcm0uaD4NCj4gKw0KPiArI2luY2x1 ZGUgPGxpbnV4L2ludGVydmFsX3RyZWVfZ2VuZXJpYy5oPg0KPiArDQo+ICsjaW5jbHVkZSAiZ2Vt L2k5MTVfZ2VtX2NvbnRleHQuaCINCj4gKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fdm1fYmluZC5o Ig0KPiArDQo+ICsjaW5jbHVkZSAiZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgiDQo+ICsNCj4gKyNk ZWZpbmUgU1RBUlQobm9kZSkgKChub2RlKS0+c3RhcnQpDQo+ICsjZGVmaW5lIExBU1Qobm9kZSkg KChub2RlKS0+bGFzdCkNCj4gKw0KPiArLyogTm90IGFsbCBkZWZpbmVkIGZ1bmN0aW9ucyBhcmUg dXNlZCwgaGVuY2UgdXNlIF9fbWF5YmVfdW51c2VkICovDQo+ICtJTlRFUlZBTF9UUkVFX0RFRklO RShzdHJ1Y3QgaTkxNV92bWEsIHJiLCB1NjQsIF9fc3VidHJlZV9sYXN0LA0KPiArCQkgICAgIFNU QVJULCBMQVNULCBfX21heWJlX3VudXNlZCBzdGF0aWMgaW5saW5lLCBpOTE1X3ZtX2JpbmRfaXQp DQo+ICsNCj4gKyN1bmRlZiBTVEFSVA0KPiArI3VuZGVmIExBU1QNCj4gKw0KPiArLyoqDQo+ICsg KiBET0M6IFZNX0JJTkQvVU5CSU5EIGlvY3Rscw0KPiArICoNCj4gKyAqIERSTV9JOTE1X0dFTV9W TV9CSU5EL1VOQklORCBpb2N0bHMgYWxsb3dzIFVNRCB0byBiaW5kL3VuYmluZCBHRU0gYnVmZmVy DQo+ICsgKiBvYmplY3RzIChCT3MpIG9yIHNlY3Rpb25zIG9mIGEgQk9zIGF0IHNwZWNpZmllZCBH UFUgdmlydHVhbCBhZGRyZXNzZXMgb24gYQ0KPiArICogc3BlY2lmaWVkIGFkZHJlc3Mgc3BhY2Ug KFZNKS4gTXVsdGlwbGUgbWFwcGluZ3MgY2FuIG1hcCB0byB0aGUgc2FtZSBwaHlzaWNhbA0KPiAr ICogcGFnZXMgb2YgYW4gb2JqZWN0IChhbGlhc2luZykuIFRoZXNlIG1hcHBpbmdzIChhbHNvIHJl ZmVycmVkIHRvIGFzIHBlcnNpc3RlbnQNCj4gKyAqIG1hcHBpbmdzKSB3aWxsIGJlIHBlcnNpc3Rl bnQgYWNyb3NzIG11bHRpcGxlIEdQVSBzdWJtaXNzaW9ucyAoZXhlY2J1ZiBjYWxscykNCj4gKyAq IGlzc3VlZCBieSB0aGUgVU1ELCB3aXRob3V0IHVzZXIgaGF2aW5nIHRvIHByb3ZpZGUgYSBsaXN0 IG9mIGFsbCByZXF1aXJlZA0KPiArICogbWFwcGluZ3MgZHVyaW5nIGVhY2ggc3VibWlzc2lvbiAo YXMgcmVxdWlyZWQgYnkgb2xkZXIgZXhlY2J1ZiBtb2RlKS4NCj4gKyAqDQo+ICsgKiBUaGUgVk1f QklORC9VTkJJTkQgY2FsbHMgYWxsb3cgVU1EcyB0byByZXF1ZXN0IGEgdGltZWxpbmUgb3V0IGZl bmNlIGZvcg0KPiArICogc2lnbmFsaW5nIHRoZSBjb21wbGV0aW9uIG9mIGJpbmQvdW5iaW5kIG9w ZXJhdGlvbi4NCj4gKyAqDQo+ICsgKiBWTV9CSU5EIGZlYXR1cmUgaXMgYWR2ZXJ0aXNlZCB0byB1 c2VyIHZpYSBJOTE1X1BBUkFNX1ZNX0JJTkRfVkVSU0lPTi4NCj4gKyAqIFVzZXIgaGFzIHRvIG9w dC1pbiBmb3IgVk1fQklORCBtb2RlIG9mIGJpbmRpbmcgZm9yIGFuIGFkZHJlc3Mgc3BhY2UgKFZN KQ0KPiArICogZHVyaW5nIFZNIGNyZWF0aW9uIHRpbWUgdmlhIEk5MTVfVk1fQ1JFQVRFX0ZMQUdT X1VTRV9WTV9CSU5EIGV4dGVuc2lvbi4NCj4gKyAqDQo+ICsgKiBWTV9CSU5EL1VOQklORCBpb2N0 bCBjYWxscyBleGVjdXRlZCBvbiBkaWZmZXJlbnQgQ1BVIHRocmVhZHMgY29uY3VycmVudGx5DQo+ ICsgKiBhcmUgbm90IG9yZGVyZWQuIEZ1cnRoZXJtb3JlLCBwYXJ0cyBvZiB0aGUgVk1fQklORC9V TkJJTkQgb3BlcmF0aW9ucyBjYW4gYmUNCj4gKyAqIGRvbmUgYXN5bmNocm9ub3VzbHksIHdoZW4g dmFsaWQgb3V0IGZlbmNlIGlzIHNwZWNpZmllZC4NCj4gKyAqDQo+ICsgKiBWTV9CSU5EIGxvY2tp bmcgb3JkZXIgaXMgYXMgYmVsb3cuDQo+ICsgKg0KPiArICogMSkgdm1fYmluZF9sb2NrIG11dGV4 IHdpbGwgcHJvdGVjdCB2bV9iaW5kIGxpc3RzLiBUaGlzIGxvY2sgaXMgdGFrZW4gaW4NCj4gKyAq ICAgIHZtX2JpbmQvdm1fdW5iaW5kIGlvY3RsIGNhbGxzLCBpbiB0aGUgZXhlY2J1ZiBwYXRoIGFu ZCB3aGlsZSByZWxlYXNpbmcgdGhlDQo+ICsgKiAgICBtYXBwaW5nLg0KPiArICoNCj4gKyAqICAg IEluIGZ1dHVyZSwgd2hlbiBHUFUgcGFnZSBmYXVsdHMgYXJlIHN1cHBvcnRlZCwgd2UgY2FuIHBv dGVudGlhbGx5IHVzZSBhDQo+ICsgKiAgICByd3NlbSBpbnN0ZWFkLCBzbyB0aGF0IG11bHRpcGxl IHBhZ2UgZmF1bHQgaGFuZGxlcnMgY2FuIHRha2UgdGhlIHJlYWQNCj4gKyAqICAgIHNpZGUgbG9j ayB0byBsb29rdXAgdGhlIG1hcHBpbmcgYW5kIGhlbmNlIGNhbiBydW4gaW4gcGFyYWxsZWwuDQo+ ICsgKiAgICBUaGUgb2xkZXIgZXhlY2J1ZiBtb2RlIG9mIGJpbmRpbmcgZG8gbm90IG5lZWQgdGhp cyBsb2NrLg0KPiArICoNCj4gKyAqIDIpIFRoZSBvYmplY3QncyBkbWEtcmVzdiBsb2NrIHdpbGwg cHJvdGVjdCBpOTE1X3ZtYSBzdGF0ZSBhbmQgbmVlZHMNCj4gKyAqICAgIHRvIGJlIGhlbGQgd2hp bGUgYmluZGluZy91bmJpbmRpbmcgYSB2bWEgaW4gdGhlIGFzeW5jIHdvcmtlciBhbmQgd2hpbGUN Cj4gKyAqICAgIHVwZGF0aW5nIGRtYS1yZXN2IGZlbmNlIGxpc3Qgb2YgYW4gb2JqZWN0LiBOb3Rl IHRoYXQgcHJpdmF0ZSBCT3Mgb2YgYSBWTQ0KPiArICogICAgd2lsbCBhbGwgc2hhcmUgYSBkbWEt cmVzdiBvYmplY3QuDQo+ICsgKg0KPiArICogMykgU3BpbmxvY2svcyB0byBwcm90ZWN0IHNvbWUg b2YgdGhlIFZNJ3MgbGlzdHMgbGlrZSB0aGUgbGlzdCBvZg0KPiArICogICAgaW52YWxpZGF0ZWQg dm1hcyAoZHVlIHRvIGV2aWN0aW9uIGFuZCB1c2VycHRyIGludmFsaWRhdGlvbikgZXRjLg0KPiAr ICovDQo+ICsNCj4gKy8qKg0KPiArICogaTkxNV9nZW1fdm1fYmluZF9sb29rdXBfdm1hKCkgLSBs b29rdXAgZm9yIHBlcnNpc3RlbnQgdm1hIG1hcHBlZCBhdCBhDQo+ICsgKiBzcGVjaWZpZWQgYWRk cmVzcw0KPiArICogQHZtOiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgdG8gbG9vayBmb3IgcGVyc2lz dGVudCB2bWENCj4gKyAqIEB2YTogc3RhcnRpbmcgYWRkcmVzcyB3aGVyZSB2bWEgaXMgbWFwcGVk DQo+ICsgKg0KPiArICogUmV0cmlldmVzIHRoZSBwZXJzaXN0ZW50IHZtYSBtYXBwZWQgYWRkcmVz cyBAdmEgZnJvbSB0aGUgQHZtJ3Mgdm1hIHRyZWUuDQo+ICsgKg0KPiArICogUmV0dXJucyB2bWEg cG9pbnRlciBvbiBzdWNjZXNzLCBOVUxMIG9uIGZhaWx1cmUuDQo+ICsgKi8NCj4gK3N0cnVjdCBp OTE1X3ZtYSAqDQo+ICtpOTE1X2dlbV92bV9iaW5kX2xvb2t1cF92bWEoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sIHU2NCB2YSkNCj4gK3sNCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2 bS0+dm1fYmluZF9sb2NrKTsNCj4gKw0KPiArCXJldHVybiBpOTE1X3ZtX2JpbmRfaXRfaXRlcl9m aXJzdCgmdm0tPnZhLCB2YSwgdmEpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBpOTE1X2dl bV92bV9iaW5kX3JlbW92ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgYm9vbCByZWxlYXNlX29iaikN Cj4gK3sNCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT52bV9iaW5kX2xvY2spOw0K PiArDQo+ICsJbGlzdF9kZWxfaW5pdCgmdm1hLT52bV9iaW5kX2xpbmspOw0KPiArCWk5MTVfdm1f YmluZF9pdF9yZW1vdmUodm1hLCAmdm1hLT52bS0+dmEpOw0KPiArDQo+ICsJLyogUmVsZWFzZSBv YmplY3QgKi8NCj4gKwlpZiAocmVsZWFzZV9vYmopDQo+ICsJCWk5MTVfZ2VtX29iamVjdF9wdXQo dm1hLT5vYmopOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGk5MTVfZ2VtX3ZtX3VuYmluZF92 bWEoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sDQo+ICsJCQkJICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3ZtX3VuYmluZCAqdmEpDQo+ICt7DQo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsNCj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ ICsJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZ2bS0+dm1fYmluZF9sb2NrKTsNCj4g KwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJdmEtPnN0YXJ0ID0gZ2VuOF9u b25jYW5vbmljYWxfYWRkcih2YS0+c3RhcnQpOw0KPiArCXZtYSA9IGk5MTVfZ2VtX3ZtX2JpbmRf bG9va3VwX3ZtYSh2bSwgdmEtPnN0YXJ0KTsNCj4gKw0KPiArCWlmICghdm1hKQ0KPiArCQlyZXQg PSAtRU5PRU5UOw0KPiArCWVsc2UgaWYgKHZtYS0+c2l6ZSAhPSB2YS0+bGVuZ3RoKQ0KPiArCQly ZXQgPSAtRUlOVkFMOw0KPiArDQo+ICsJaWYgKHJldCkgew0KPiArCQltdXRleF91bmxvY2soJnZt LT52bV9iaW5kX2xvY2spOw0KPiArCQlyZXR1cm4gcmV0Ow0KPiArCX0NCj4gKw0KPiArCWk5MTVf Z2VtX3ZtX2JpbmRfcmVtb3ZlKHZtYSwgZmFsc2UpOw0KPiArDQo+ICsJbXV0ZXhfdW5sb2NrKCZ2 bS0+dm1fYmluZF9sb2NrKTsNCj4gKw0KPiArCS8qDQo+ICsJICogRGVzdHJveSB0aGUgdm1hIGFu ZCB0aGVuIHJlbGVhc2UgdGhlIG9iamVjdC4NCj4gKwkgKiBBcyBwZXJzaXN0ZW50IHZtYSBob2xk cyBvYmplY3QgcmVmZXJlbmNlLCBpdCBjYW4gb25seSBiZSBkZXN0cm95ZWQNCj4gKwkgKiBlaXRo ZXIgYnkgdm1fdW5iaW5kIGlvY3RsIG9yIHdoZW4gVk0gaXMgYmVpbmcgcmVsZWFzZWQuIEFzIHdl IGFyZQ0KPiArCSAqIGhvbGRpbmcgVk0gcmVmZXJlbmNlIGhlcmUsIGl0IGlzIHNhZmUgYWNjZXNz aW5nIHRoZSB2bWEgaGVyZS4NCj4gKwkgKi8NCj4gKwlvYmogPSB2bWEtPm9iajsNCj4gKwlpOTE1 X2dlbV9vYmplY3RfbG9jayhvYmosIE5VTEwpOw0KPiArCWk5MTVfdm1hX2Rlc3Ryb3kodm1hKTsN Cj4gKwlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7DQo+ICsNCj4gKwlpOTE1X2dlbV9vYmpl Y3RfcHV0KG9iaik7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsg KiBpOTE1X2dlbV92bV91bmJpbmRfYWxsKCkgLSB1bmJpbmQgYWxsIHBlcnNpc3RlbnQgbWFwcGlu Z3MgZnJvbSBhbg0KPiArICogYWRkcmVzcyBzcGFjZQ0KPiArICogQHZtOiBBZGRyZXNzIHNwZWNl IHRvIHJlbW92ZSBwZXJzaXN0ZW50IG1hcHBpbmdzIGZyb20NCj4gKyAqDQo+ICsgKiBVbmJpbmQg YWxsIHVzZXJzcGFjZSByZXF1ZXN0ZWQgdm1fYmluZCBtYXBwaW5ncyBmcm9tIEB2bS4NCj4gKyAq Lw0KPiArdm9pZCBpOTE1X2dlbV92bV91bmJpbmRfYWxsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtKQ0KPiArew0KPiArCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdDsNCj4gKw0KPiArCW11 dGV4X2xvY2soJnZtLT52bV9iaW5kX2xvY2spOw0KPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZSh2bWEsIHQsICZ2bS0+dm1fYmluZF9saXN0LCB2bV9iaW5kX2xpbmspDQo+ICsJCWk5MTVfZ2Vt X3ZtX2JpbmRfcmVtb3ZlKHZtYSwgdHJ1ZSk7DQo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KHZtYSwgdCwgJnZtLT52bV9ib3VuZF9saXN0LCB2bV9iaW5kX2xpbmspDQo+ICsJCWk5MTVfZ2Vt X3ZtX2JpbmRfcmVtb3ZlKHZtYSwgdHJ1ZSk7DQo+ICsJbXV0ZXhfdW5sb2NrKCZ2bS0+dm1fYmlu ZF9sb2NrKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqdm1fYmluZF9n ZXRfdm1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLA0KPiArCQkJCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLA0KPiArCQkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3ZtX2Jp bmQgKnZhKQ0KPiArew0KPiArCXN0cnVjdCBpOTE1X2d0dF92aWV3IHZpZXc7DQo+ICsJc3RydWN0 IGk5MTVfdm1hICp2bWE7DQo+ICsNCj4gKwl2YS0+c3RhcnQgPSBnZW44X25vbmNhbm9uaWNhbF9h ZGRyKHZhLT5zdGFydCk7DQo+ICsJdm1hID0gaTkxNV9nZW1fdm1fYmluZF9sb29rdXBfdm1hKHZt LCB2YS0+c3RhcnQpOw0KPiArCWlmICh2bWEpDQo+ICsJCXJldHVybiBFUlJfUFRSKC1FRVhJU1Qp Ow0KPiArDQo+ICsJdmlldy50eXBlID0gSTkxNV9HVFRfVklFV19QQVJUSUFMOw0KPiArCXZpZXcu cGFydGlhbC5vZmZzZXQgPSB2YS0+b2Zmc2V0ID4+IFBBR0VfU0hJRlQ7DQo+ICsJdmlldy5wYXJ0 aWFsLnNpemUgPSB2YS0+bGVuZ3RoID4+IFBBR0VfU0hJRlQ7DQo+ICsJdm1hID0gaTkxNV92bWFf Y3JlYXRlX3BlcnNpc3RlbnQob2JqLCB2bSwgJnZpZXcpOw0KPiArCWlmIChJU19FUlIodm1hKSkN Cj4gKwkJcmV0dXJuIHZtYTsNCj4gKw0KPiArCXZtYS0+c3RhcnQgPSB2YS0+c3RhcnQ7DQo+ICsJ dm1hLT5sYXN0ID0gdmEtPnN0YXJ0ICsgdmEtPmxlbmd0aCAtIDE7DQo+ICsNCj4gKwlyZXR1cm4g dm1hOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGk5MTVfZ2VtX3ZtX2JpbmRfb2JqKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLA0KPiArCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fdm1f YmluZCAqdmEsDQo+ICsJCQkJc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiArew0KPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7DQo+ICsJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBO VUxMOw0KPiArCXN0cnVjdCBpOTE1X2dlbV93d19jdHggd3c7DQo+ICsJdTY0IHBpbl9mbGFnczsN Cj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0KPiArCWlmICghaTkxNV9nZW1fdm1faXNfdm1fYmluZF9t b2RlKHZtKSkNCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiArDQo+ICsJLyogRW5zdXJlIHN0 YXJ0IGFuZCBsZW5ndGggZmllbGRzIGFyZSB2YWxpZCAqLw0KPiArCWlmICghdmEtPmxlbmd0aCB8 fCAhSVNfQUxJR05FRCh2YS0+c3RhcnQsIEk5MTVfR1RUX1BBR0VfU0laRSkpDQo+ICsJCXJldCA9 IC1FSU5WQUw7DQo+ICsNCj4gKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfbG9va3VwKGZpbGUsIHZh LT5oYW5kbGUpOw0KPiArCWlmICghb2JqKQ0KPiArCQlyZXR1cm4gLUVOT0VOVDsNCj4gKw0KPiAr CS8qIEVuc3VyZSBvZmZzZXQgYW5kIGxlbmd0aCBhcmUgYWxpZ25lZCB0byBvYmplY3QncyBtYXgg cGFnZSBzaXplICovDQo+ICsJaWYgKCFJU19BTElHTkVEKHZhLT5vZmZzZXQgfCB2YS0+bGVuZ3Ro LA0KPiArCQkJaTkxNV9nZW1fb2JqZWN0X21heF9wYWdlX3NpemUob2JqLT5tbS5wbGFjZW1lbnRz LA0KPiArCQkJCQkJICAgICAgb2JqLT5tbS5uX3BsYWNlbWVudHMpKSkNCj4gKwkJcmV0ID0gLUVJ TlZBTDsNCj4gKw0KPiArCS8qIENoZWNrIGZvciBtYXBwaW5nIHJhbmdlIG92ZXJmbG93ICovDQo+ ICsJaWYgKHJhbmdlX292ZXJmbG93c190KHU2NCwgdmEtPm9mZnNldCwgdmEtPmxlbmd0aCwgb2Jq LT5iYXNlLnNpemUpKQ0KPiArCQlyZXQgPSAtRUlOVkFMOw0KPiArDQo+ICsJaWYgKHJldCkNCj4g KwkJZ290byBwdXRfb2JqOw0KPiArDQo+ICsJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KCZ2bS0+dm1fYmluZF9sb2NrKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlnb3RvIHB1dF9vYmo7DQo+ ICsNCj4gKwl2bWEgPSB2bV9iaW5kX2dldF92bWEodm0sIG9iaiwgdmEpOw0KPiArCWlmIChJU19F UlIodm1hKSkgew0KPiArCQlyZXQgPSBQVFJfRVJSKHZtYSk7DQo+ICsJCWdvdG8gdW5sb2NrX3Zt Ow0KPiArCX0NCj4gKw0KPiArCXBpbl9mbGFncyA9IHZhLT5zdGFydCB8IFBJTl9PRkZTRVRfRklY RUQgfCBQSU5fVVNFUiB8DQo+ICsJCSAgICBQSU5fVkFMSURBVEUgfCBQSU5fTk9FVklDVDsNCj4g Kw0KPiArCWZvcl9pOTE1X2dlbV93dygmd3csIHJldCwgdHJ1ZSkgew0KPiArCQlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfbG9jayh2bWEtPm9iaiwgJnd3KTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCWNv bnRpbnVlOw0KPiArDQo+ICsJCXJldCA9IGk5MTVfdm1hX3Bpbl93dyh2bWEsICZ3dywgMCwgMCwg cGluX2ZsYWdzKTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWxp c3RfYWRkX3RhaWwoJnZtYS0+dm1fYmluZF9saW5rLCAmdm0tPnZtX2JvdW5kX2xpc3QpOw0KPiAr CQlpOTE1X3ZtX2JpbmRfaXRfaW5zZXJ0KHZtYSwgJnZtLT52YSk7DQo+ICsNCj4gKwkJLyogSG9s ZCBvYmplY3QgcmVmZXJlbmNlIHVudGlsIHZtX3VuYmluZCAqLw0KPiArCQlpOTE1X2dlbV9vYmpl Y3RfZ2V0KHZtYS0+b2JqKTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAocmV0KQ0KPiArCQlpOTE1X3Zt YV9kZXN0cm95KHZtYSk7DQo+ICt1bmxvY2tfdm06DQo+ICsJbXV0ZXhfdW5sb2NrKCZ2bS0+dm1f YmluZF9sb2NrKTsNCj4gK3B1dF9vYmo6DQo+ICsJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOw0K PiArDQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBpOTE1X2dlbV92 bV9iaW5kX2lvY3RsKCkgLSBpb2N0bCBmdW5jdGlvbiBmb3IgYmluZGluZyBhIHNlY3Rpb24gb2Yg b2JqZWN0DQo+ICsgKiBhdCBhIHNwZWNpZmllZCB2aXJ0dWFsIGFkZHJlc3MNCj4gKyAqIEBkZXY6 IGRybV9kZXZpY2UgcG9pbnRlcg0KPiArICogQGRhdGE6IGlvY3RsIGRhdGEgc3RydWN0dXJlDQo+ ICsgKiBAZmlsZTogZHJtX2ZpbGUgcG9pbnRlcg0KPiArICoNCj4gKyAqIEFkZHMgdGhlIHNwZWNp ZmllZCBwZXJzaXN0ZW50IG1hcHBpbmcgKHZpcnR1YWwgYWRkcmVzcyB0byBhIHNlY3Rpb24gb2Yg YW4NCj4gKyAqIG9iamVjdCkgYW5kIGJpbmRzIGl0IGluIHRoZSBkZXZpY2UgcGFnZSB0YWJsZS4N Cj4gKyAqDQo+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJl Lg0KPiArICovDQo+ICtpbnQgaTkxNV9nZW1fdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLA0KPiArCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiAr ew0KPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fdm1fYmluZCAqYXJncyA9IGRhdGE7DQo+ICsJc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCS8qIFJl c2VydmVkIGZpZWxkcyBtdXN0IGJlIDAgKi8NCj4gKwlpZiAoYXJncy0+cnN2ZFswXSB8fCBhcmdz LT5yc3ZkWzFdIHx8IGFyZ3MtPnJzdmRbMl0gfHwgYXJncy0+ZXh0ZW5zaW9ucykNCj4gKwkJcmV0 dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwl2bSA9IGk5MTVfZ2VtX3ZtX2xvb2t1cChmaWxlLT5kcml2 ZXJfcHJpdiwgYXJncy0+dm1faWQpOw0KPiArCWlmICh1bmxpa2VseSghdm0pKQ0KPiArCQlyZXR1 cm4gLUVOT0VOVDsNCj4gKw0KPiArCXJldCA9IGk5MTVfZ2VtX3ZtX2JpbmRfb2JqKHZtLCBhcmdz LCBmaWxlKTsNCj4gKw0KPiArCWk5MTVfdm1fcHV0KHZtKTsNCj4gKwlyZXR1cm4gcmV0Ow0KPiAr fQ0KPiArDQo+ICsvKioNCj4gKyAqIGk5MTVfZ2VtX3ZtX3VuYmluZF9pb2N0bCgpIC0gaW9jdGwg ZnVuY3Rpb24gZm9yIHVuYmluZGluZyBhIG1hcHBpbmcgYXQgYQ0KPiArICogc3BlY2lmaWVkIHZp cnR1YWwgYWRkcmVzcw0KPiArICogQGRldjogZHJtX2RldmljZSBwb2ludGVyDQo+ICsgKiBAZGF0 YTogaW9jdGwgZGF0YSBzdHJ1Y3R1cmUNCj4gKyAqIEBmaWxlOiBkcm1fZmlsZSBwb2ludGVyDQo+ ICsgKg0KPiArICogUmVtb3ZlcyB0aGUgcGVyc2lzdGVudCBtYXBwaW5nIGF0IHRoZSBzcGVjaWZp ZWQgYWRkcmVzcyBhbmQgdW5iaW5kcyBpdA0KPiArICogZnJvbSB0aGUgZGV2aWNlIHBhZ2UgdGFi bGUuDQo+ICsgKg0KPiArICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb24gZmFp bHVyZS4gLUVOT0VOVCBpcyByZXR1cm5lZCBpZiB0aGUNCj4gKyAqIHNwZWNpZmllZCBtYXBwaW5n IGlzIG5vdCBmb3VuZC4NCj4gKyAqLw0KPiAraW50IGk5MTVfZ2VtX3ZtX3VuYmluZF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiArCQkJICAgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGUpDQo+ICt7DQo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV92bV91bmJpbmQgKmFy Z3MgPSBkYXRhOw0KPiArCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOw0KPiArCWludCBy ZXQ7DQo+ICsNCj4gKwkvKiBSZXNlcnZlZCBmaWVsZHMgbXVzdCBiZSAwICovDQo+ICsJaWYgKGFy Z3MtPnJzdmQgfHwgYXJncy0+cnN2ZDJbMF0gfHwgYXJncy0+cnN2ZDJbMV0gfHwNCj4gKwkgICAg YXJncy0+cnN2ZDJbMl0gfHwgYXJncy0+ZXh0ZW5zaW9ucykNCj4gKwkJcmV0dXJuIC1FSU5WQUw7 DQo+ICsNCj4gKwl2bSA9IGk5MTVfZ2VtX3ZtX2xvb2t1cChmaWxlLT5kcml2ZXJfcHJpdiwgYXJn cy0+dm1faWQpOw0KPiArCWlmICh1bmxpa2VseSghdm0pKQ0KPiArCQlyZXR1cm4gLUVOT0VOVDsN Cj4gKw0KPiArCXJldCA9IGk5MTVfZ2VtX3ZtX3VuYmluZF92bWEodm0sIGFyZ3MpOw0KPiArDQo+ ICsJaTkxNV92bV9wdXQodm0pOw0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0dC5jDQo+IGluZGV4IGU4MmE5ZDc2M2U1Ny4uNDEyMzY4YzY3YzQ2IDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuYw0KPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuYw0KPiBAQCAtMTIsNiArMTIsNyBA QA0KPiDCoA0KPiANCj4gDQo+IA0KPiDCoCNpbmNsdWRlICJnZW0vaTkxNV9nZW1faW50ZXJuYWwu aCINCj4gwqAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2xtZW0uaCINCj4gKyNpbmNsdWRlICJnZW0v aTkxNV9nZW1fdm1fYmluZC5oIg0KPiDCoCNpbmNsdWRlICJpOTE1X3RyYWNlLmgiDQo+IMKgI2lu Y2x1ZGUgImk5MTVfdXRpbHMuaCINCj4gwqAjaW5jbHVkZSAiaW50ZWxfZ3QuaCINCj4gQEAgLTE3 Nyw2ICsxNzgsOCBAQCBpbnQgaTkxNV92bV9sb2NrX29iamVjdHMoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sDQo+IMKgdm9pZCBpOTE1X2FkZHJlc3Nfc3BhY2VfZmluaShzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSkNCj4gwqB7DQo+IMKgCWRybV9tbV90YWtlZG93bigmdm0tPm1t KTsNCj4gKwlHRU1fQlVHX09OKCFSQl9FTVBUWV9ST09UKCZ2bS0+dmEucmJfcm9vdCkpOw0KPiAr CW11dGV4X2Rlc3Ryb3koJnZtLT52bV9iaW5kX2xvY2spOw0KPiDCoH0NCj4gwqANCj4gDQo+IA0K PiANCj4gwqAvKioNCj4gQEAgLTIwMyw2ICsyMDYsOCBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfdm1f cmVsZWFzZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+IMKgCXN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtID0NCj4gwqAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlLCByZWxlYXNlX3dvcmspOw0KPiDCoA0KPiANCj4gDQo+IA0KPiArCWk5MTVfZ2Vt X3ZtX3VuYmluZF9hbGwodm0pOw0KPiArDQo+IMKgCV9faTkxNV92bV9jbG9zZSh2bSk7DQo+IMKg DQo+IA0KPiANCj4gDQo+IMKgCS8qIFN5bmNocm9uaXplIGFzeW5jIHVuYmluZHMuICovDQo+IEBA IC0yNzksNiArMjg0LDExIEBAIHZvaWQgaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sIGludCBzdWJjbGFzcykNCj4gwqANCj4gDQo+IA0KPiANCj4g wqAJSU5JVF9MSVNUX0hFQUQoJnZtLT5ib3VuZF9saXN0KTsNCj4gwqAJSU5JVF9MSVNUX0hFQUQo JnZtLT51bmJvdW5kX2xpc3QpOw0KPiArDQo+ICsJdm0tPnZhID0gUkJfUk9PVF9DQUNIRUQ7DQo+ ICsJSU5JVF9MSVNUX0hFQUQoJnZtLT52bV9iaW5kX2xpc3QpOw0KPiArCUlOSVRfTElTVF9IRUFE KCZ2bS0+dm1fYm91bmRfbGlzdCk7DQo+ICsJbXV0ZXhfaW5pdCgmdm0tPnZtX2JpbmRfbG9jayk7 DQo+IMKgfQ0KPiDCoA0KPiANCj4gDQo+IA0KPiDCoHZvaWQgKl9fcHhfdmFkZHIoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKnApDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5oDQo+ IGluZGV4IDRkNzViYTRiYjQxZC4uM2E5YmVlMWI5ZDAzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ndHQuaA0KPiBAQCAtMjYwLDYgKzI2MCwxNSBAQCBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlIHsNCj4gwqAJICovDQo+IMKgCXN0cnVjdCBsaXN0X2hlYWQgdW5ib3VuZF9saXN0 Ow0KPiDCoA0KPiANCj4gDQo+IA0KPiArCS8qKiBAdm1fYmluZF9sb2NrOiBNdXRleCB0byBwcm90 ZWN0IEB2bV9iaW5kX2xpc3QgYW5kIEB2bV9ib3VuZF9saXN0ICovDQo+ICsJc3RydWN0IG11dGV4 IHZtX2JpbmRfbG9jazsNCj4gKwkvKiogQHZtX2JpbmRfbGlzdDogTGlzdCBvZiB2bV9iaW5kaW5n IGluIHByb2Nlc3MgKi8NCj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHZtX2JpbmRfbGlzdDsNCj4gKwkv KiogQHZtX2JvdW5kX2xpc3Q6IExpc3Qgb2Ygdm1fYmluZGluZyBjb21wbGV0ZWQgKi8NCj4gKwlz dHJ1Y3QgbGlzdF9oZWFkIHZtX2JvdW5kX2xpc3Q7DQo+ICsJLyoqIEB2YTogdHJlZSBvZiBwZXJz aXN0ZW50IHZtYXMgKi8NCj4gKwlzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgdmE7DQo+ICsNCj4gwqAJ LyogR2xvYmFsIEdUVCAqLw0KPiDCoAlib29sIGlzX2dndHQ6MTsNCj4gwqANCj4gDQo+IA0KPiAN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RyaXZlci5jDQo+IGluZGV4IGMzZDQzZjliMWU0NS4uY2Y0 MWI5NmFjNDg1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RyaXZl ci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMNCj4gQEAgLTY5 LDYgKzY5LDcgQEANCj4gwqAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2lvY3Rscy5oIg0KPiDCoCNp bmNsdWRlICJnZW0vaTkxNV9nZW1fbW1hbi5oIg0KPiDCoCNpbmNsdWRlICJnZW0vaTkxNV9nZW1f cG0uaCINCj4gKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fdm1fYmluZC5oIg0KPiDCoCNpbmNsdWRl ICJndC9pbnRlbF9ndC5oIg0KPiDCoCNpbmNsdWRlICJndC9pbnRlbF9ndF9wbS5oIg0KPiDCoCNp bmNsdWRlICJndC9pbnRlbF9yYzYuaCINCj4gQEAgLTE4OTIsNiArMTg5Myw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgaTkxNV9pb2N0bHNbXSA9IHsNCj4gwqAJRFJNX0lP Q1RMX0RFRl9EUlYoSTkxNV9RVUVSWSwgaTkxNV9xdWVyeV9pb2N0bCwgRFJNX1JFTkRFUl9BTExP VyksDQo+IMKgCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX1ZNX0NSRUFURSwgaTkxNV9nZW1f dm1fY3JlYXRlX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwNCj4gwqAJRFJNX0lPQ1RMX0RFRl9E UlYoSTkxNV9HRU1fVk1fREVTVFJPWSwgaTkxNV9nZW1fdm1fZGVzdHJveV9pb2N0bCwgRFJNX1JF TkRFUl9BTExPVyksDQo+ICsJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fVk1fQklORCwgaTkx NV9nZW1fdm1fYmluZF9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksDQo+ICsJRFJNX0lPQ1RMX0RF Rl9EUlYoSTkxNV9HRU1fVk1fVU5CSU5ELCBpOTE1X2dlbV92bV91bmJpbmRfaW9jdGwsIERSTV9S RU5ERVJfQUxMT1cpLA0KPiDCoH07DQo+IMKgDQo+IA0KPiANCj4gDQo+IMKgLyoNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5jDQo+IGluZGV4IDUyOWQ5NzMxOGYwMC4uNmE2NGExMzBkYmNkIDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jDQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMNCj4gQEAgLTIzOSw2ICsyMzksNyBAQCB2bWFfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosDQo+IMKgCXNwaW5fdW5sb2NrKCZv YmotPnZtYS5sb2NrKTsNCj4gwqAJbXV0ZXhfdW5sb2NrKCZ2bS0+bXV0ZXgpOw0KPiDCoA0KPiAN Cj4gDQo+IA0KPiArCUlOSVRfTElTVF9IRUFEKCZ2bWEtPnZtX2JpbmRfbGluayk7DQo+IMKgCXJl dHVybiB2bWE7DQo+IMKgDQo+IA0KPiANCj4gDQo+IMKgZXJyX3VubG9jazoNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYV90eXBlcy5oDQo+IGluZGV4IDMxNDRkNzFhMGMzZS4uZGI3ODZkMmQx NTMwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYV90eXBlcy5o DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmgNCj4gQEAgLTI5 NSw2ICsyOTUsMjAgQEAgc3RydWN0IGk5MTVfdm1hIHsNCj4gwqAJLyoqIFRoaXMgb2JqZWN0J3Mg cGxhY2Ugb24gdGhlIGFjdGl2ZS9pbmFjdGl2ZSBsaXN0cyAqLw0KPiDCoAlzdHJ1Y3QgbGlzdF9o ZWFkIHZtX2xpbms7DQo+IMKgDQo+IA0KPiANCj4gDQo+ICsJLyoqIEB2bV9iaW5kX2xpbms6IG5v ZGUgZm9yIHRoZSB2bV9iaW5kIHJlbGF0ZWQgbGlzdHMgb2Ygdm0gKi8NCj4gKwlzdHJ1Y3QgbGlz dF9oZWFkIHZtX2JpbmRfbGluazsNCj4gKw0KPiArCS8qKiBJbnRlcnZhbCB0cmVlIHN0cnVjdHVy ZXMgZm9yIHBlcnNpc3RlbnQgdm1hICovDQo+ICsNCj4gKwkvKiogQHJiOiBub2RlIGZvciB0aGUg aW50ZXJ2YWwgdHJlZSBvZiB2bSBmb3IgcGVyc2lzdGVudCB2bWFzICovDQo+ICsJc3RydWN0IHJi X25vZGUgcmI7DQo+ICsJLyoqIEBzdGFydDogc3RhcnQgZW5kcG9pbnQgb2YgdGhlIHJiIG5vZGUg Ki8NCj4gKwl1NjQgc3RhcnQ7DQo+ICsJLyoqIEBsYXN0OiBMYXN0IGVuZHBvaW50IG9mIHRoZSBy YiBub2RlICovDQo+ICsJdTY0IGxhc3Q7DQo+ICsJLyoqIEBfX3N1YnRyZWVfbGFzdDogbGFzdCBp biBzdWJ0cmVlICovDQo+ICsJdTY0IF9fc3VidHJlZV9sYXN0Ow0KPiArDQo+IMKgCXN0cnVjdCBs aXN0X2hlYWQgb2JqX2xpbms7IC8qIExpbmsgaW4gdGhlIG9iamVjdCdzIFZNQSBsaXN0ICovDQo+ IMKgCXN0cnVjdCByYl9ub2RlIG9ial9ub2RlOw0KPiDCoAlzdHJ1Y3QgaGxpc3Rfbm9kZSBvYmpf aGFzaDsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaA0KPiBpbmRleCA4ZGYyNjFjNWFiOWIuLmYwNmEwOWYxZGIy ZCAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oDQo+ICsrKyBiL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaA0KPiBAQCAtNDcwLDYgKzQ3MCw4IEBAIHR5cGVkZWYg c3RydWN0IF9kcm1faTkxNV9zYXJlYSB7DQo+IMKgI2RlZmluZSBEUk1fSTkxNV9HRU1fVk1fQ1JF QVRFCQkweDNhDQo+IMKgI2RlZmluZSBEUk1fSTkxNV9HRU1fVk1fREVTVFJPWQkJMHgzYg0KPiDC oCNkZWZpbmUgRFJNX0k5MTVfR0VNX0NSRUFURV9FWFQJCTB4M2MNCj4gKyNkZWZpbmUgRFJNX0k5 MTVfR0VNX1ZNX0JJTkQJCTB4M2QNCj4gKyNkZWZpbmUgRFJNX0k5MTVfR0VNX1ZNX1VOQklORAkJ MHgzZQ0KPiDCoC8qIE11c3QgYmUga2VwdCBjb21wYWN0IC0tIG5vIGhvbGVzICovDQo+IMKgDQo+ IA0KPiANCj4gDQo+IMKgI2RlZmluZSBEUk1fSU9DVExfSTkxNV9JTklUCQlEUk1fSU9XKCBEUk1f Q09NTUFORF9CQVNFICsgRFJNX0k5MTVfSU5JVCwgZHJtX2k5MTVfaW5pdF90KQ0KPiBAQCAtNTM0 LDYgKzUzNiw4IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7DQo+IMKgI2RlZmlu ZSBEUk1fSU9DVExfSTkxNV9RVUVSWQkJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f STkxNV9RVUVSWSwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5KQ0KPiDCoCNkZWZpbmUgRFJNX0lPQ1RM X0k5MTVfR0VNX1ZNX0NSRUFURQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVf R0VNX1ZNX0NSRUFURSwgc3RydWN0IGRybV9pOTE1X2dlbV92bV9jb250cm9sKQ0KPiDCoCNkZWZp bmUgRFJNX0lPQ1RMX0k5MTVfR0VNX1ZNX0RFU1RST1kJRFJNX0lPVyAoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9JOTE1X0dFTV9WTV9ERVNUUk9ZLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3ZtX2NvbnRy b2wpDQo+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9WTV9CSU5ECURSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fVk1fQklORCwgc3RydWN0IGRybV9pOTE1X2dlbV92 bV9iaW5kKQ0KPiArI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fVk1fVU5CSU5ECURSTV9JT1dS KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fVk1fVU5CSU5ELCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3ZtX3VuYmluZCkNCj4gwqANCj4gDQo+IA0KPiANCj4gwqAvKiBBbGxvdyBkcml2ZXJz IHRvIHN1Ym1pdCBiYXRjaGJ1ZmZlcnMgZGlyZWN0bHkgdG8gaGFyZHdhcmUsIHJlbHlpbmcNCj4g wqDCoCogb24gdGhlIHNlY3VyaXR5IG1lY2hhbmlzbXMgcHJvdmlkZWQgYnkgaGFyZHdhcmUuDQo+ IEBAIC0zNzI3LDYgKzM3MzEsMTAxIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dF9w cm90ZWN0ZWRfY29udGVudCB7DQo+IMKgLyogSUQgb2YgdGhlIHByb3RlY3RlZCBjb250ZW50IHNl c3Npb24gbWFuYWdlZCBieSBpOTE1IHdoZW4gUFhQIGlzIGFjdGl2ZSAqLw0KPiDCoCNkZWZpbmUg STkxNV9QUk9URUNURURfQ09OVEVOVF9ERUZBVUxUX1NFU1NJT04gMHhmDQo+IMKgDQo+IA0KPiAN Cj4gDQo+ICsvKioNCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9nZW1fdm1fYmluZCAtIFZBIHRvIG9i amVjdCBtYXBwaW5nIHRvIGJpbmQuDQo+ICsgKg0KPiArICogVGhpcyBzdHJ1Y3R1cmUgaXMgcGFz c2VkIHRvIFZNX0JJTkQgaW9jdGwgYW5kIHNwZWNpZmllcyB0aGUgbWFwcGluZyBvZiBHUFUNCj4g KyAqIHZpcnR1YWwgYWRkcmVzcyAoVkEpIHJhbmdlIHRvIHRoZSBzZWN0aW9uIG9mIGFuIG9iamVj dCB0aGF0IHNob3VsZCBiZSBib3VuZA0KPiArICogaW4gdGhlIGRldmljZSBwYWdlIHRhYmxlIG9m IHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBzcGFjZSAoVk0pLg0KPiArICogVGhlIFZBIHJhbmdlIHNw ZWNpZmllZCBtdXN0IGJlIHVuaXF1ZSAoaWUuLCBub3QgY3VycmVudGx5IGJvdW5kKSBhbmQgY2Fu DQo+ICsgKiBiZSBtYXBwZWQgdG8gd2hvbGUgb2JqZWN0IG9yIGEgc2VjdGlvbiBvZiB0aGUgb2Jq ZWN0IChwYXJ0aWFsIGJpbmRpbmcpLg0KPiArICogTXVsdGlwbGUgVkEgbWFwcGluZ3MgY2FuIGJl IGNyZWF0ZWQgdG8gdGhlIHNhbWUgc2VjdGlvbiBvZiB0aGUgb2JqZWN0DQo+ICsgKiAoYWxpYXNp bmcpLg0KPiArICoNCj4gKyAqIFRoZSBAc3RhcnQsIEBvZmZzZXQgYW5kIEBsZW5ndGggbXVzdCBi ZSA0SyBwYWdlIGFsaWduZWQuIEhvd2V2ZXIgdGhlIERHMg0KPiArICogYW5kIFhFSFBTRFYgaGFz IDY0SyBwYWdlIHNpemUgZm9yIGRldmljZSBsb2NhbCBtZW1vcnkgYW5kIGhhcyBjb21wYWN0IHBh Z2UNCj4gKyAqIHRhYmxlLiBPbiB0aG9zZSBwbGF0Zm9ybXMsIGZvciBiaW5kaW5nIGRldmljZSBs b2NhbC1tZW1vcnkgb2JqZWN0cywgdGhlDQo+ICsgKiBAc3RhcnQsIEBvZmZzZXQgYW5kIEBsZW5n dGggbXVzdCBiZSA2NEsgYWxpZ25lZC4NCj4gKyAqDQo+ICsgKiBFcnJvciBjb2RlIC1FSU5WQUwg d2lsbCBiZSByZXR1cm5lZCBpZiBAc3RhcnQsIEBvZmZzZXQgYW5kIEBsZW5ndGggYXJlIG5vdA0K PiArICogcHJvcGVybHkgYWxpZ25lZC4gSW4gdmVyc2lvbiAxIChTZWUgSTkxNV9QQVJBTV9WTV9C SU5EX1ZFUlNJT04pLCBlcnJvciBjb2RlDQo+ICsgKiAtRU5PU1BDIHdpbGwgYmUgcmV0dXJuZWQg aWYgdGhlIFZBIHJhbmdlIHNwZWNpZmllZCBjYW4ndCBiZSByZXNlcnZlZC4NCj4gKyAqDQo+ICsg KiBWTV9CSU5EL1VOQklORCBpb2N0bCBjYWxscyBleGVjdXRlZCBvbiBkaWZmZXJlbnQgQ1BVIHRo cmVhZHMgY29uY3VycmVudGx5DQo+ICsgKiBhcmUgbm90IG9yZGVyZWQuIEZ1cnRoZXJtb3JlLCBw YXJ0cyBvZiB0aGUgVk1fQklORCBvcGVyYXRpb24gY2FuIGJlIGRvbmUNCj4gKyAqIGFzeW5jaHJv bm91c2x5LCBpZiB2YWxpZCBAZmVuY2UgaXMgc3BlY2lmaWVkLg0KPiArICovDQo+ICtzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3ZtX2JpbmQgew0KPiArCS8qKiBAdm1faWQ6IFZNIChhZGRyZXNzIHNwYWNl KSBpZCB0byBiaW5kICovDQo+ICsJX191MzIgdm1faWQ7DQo+ICsNCj4gKwkvKiogQGhhbmRsZTog T2JqZWN0IGhhbmRsZSAqLw0KPiArCV9fdTMyIGhhbmRsZTsNCj4gKw0KPiArCS8qKiBAc3RhcnQ6 IFZpcnR1YWwgQWRkcmVzcyBzdGFydCB0byBiaW5kICovDQo+ICsJX191NjQgc3RhcnQ7DQo+ICsN Cj4gKwkvKiogQG9mZnNldDogT2Zmc2V0IGluIG9iamVjdCB0byBiaW5kICovDQo+ICsJX191NjQg b2Zmc2V0Ow0KPiArDQo+ICsJLyoqIEBsZW5ndGg6IExlbmd0aCBvZiBtYXBwaW5nIHRvIGJpbmQg Ki8NCj4gKwlfX3U2NCBsZW5ndGg7DQo+ICsNCj4gKwkvKiogQHJzdmQ6IFJlc2VydmVkLCBNQlog Ki8NCj4gKwlfX3U2NCByc3ZkWzNdOw0KDQpJbiBhIGJyYW5kIG5ldyBpb2N0bCB3aXRoIGV2ZW4g ZXh0ZW5zaW9ucyBzdXBwb3J0LCB3aHkgZG8gd2UgbmVlZCB0aGlzPw0KSWYgd2UgaGF2ZSBhIHBs YW4gdG8gYWRkIHNvbWV0aGluZyBoZXJlIGluIHRoZSBmdXR1cmUsIGNhbiB5b3UgcGxlYXNlDQp0 ZWxsIHVzIHdoYXQgaXQgbWF5IGJlPyBQZXJoYXBzIGhhdmluZyB0aGF0IGZpZWxkIGFscmVhZHkg YnV0IGFjY2VwdGluZw0Kb25seSBhIGRlZmF1bHQgdmFsdWUvZmxhZyB3b3VsZCBiZSBiZXR0ZXIu DQoNCkkgc2VlIGluIHByZXZpb3VzIHZlcnNpb25zIHdlIGhhZCAnZmxhZ3MnIGhlcmUuIEhhdmlu ZyAnZmxhZ3MnLCBldmVuIGlmDQpNQlogZm9yIHRoZSBpbml0aWFsIHZlcnNpb24sIHNlZW1zIGxp a2UgYSBuaWNlIHRoaW5nIHRvIGhhdmUgZm9yIGZ1dHVyZQ0KZXh0ZW5zaWJpbGl0eS4gQWxzbywg eW91J3JlIGdvaW5nIHRvIGFkZCBiYWNrIHRoZSBmbGFnIHRvIG1ha2UgdGhlIHBhZ2UNCnJlYWQt b25seSBhdCBzb21lIHBvaW50LCByaWdodD8NCg0KPiArDQo+ICsJLyoqIEByc3ZkMjogUmVzZXJ2 ZWQgZm9yIHRpbWVsaW5lIGZlbmNlICovDQo+ICsJX191NjQgcnN2ZDJbMl07DQoNCkkgc2VlIHRo aXMgb25lIGdldHMgY2hhbmdlZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzZXJpZXMuDQoNCj4gKw0K PiArCS8qKg0KPiArCSAqIEBleHRlbnNpb25zOiBaZXJvLXRlcm1pbmF0ZWQgY2hhaW4gb2YgZXh0 ZW5zaW9ucy4NCj4gKwkgKg0KPiArCSAqIEZvciBmdXR1cmUgZXh0ZW5zaW9ucy4gU2VlIHN0cnVj dCBpOTE1X3VzZXJfZXh0ZW5zaW9uLg0KPiArCSAqLw0KPiArCV9fdTY0IGV4dGVuc2lvbnM7DQo+ ICt9Ow0KPiArDQo+ICsvKioNCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9nZW1fdm1fdW5iaW5kIC0g VkEgdG8gb2JqZWN0IG1hcHBpbmcgdG8gdW5iaW5kLg0KPiArICoNCj4gKyAqIFRoaXMgc3RydWN0 dXJlIGlzIHBhc3NlZCB0byBWTV9VTkJJTkQgaW9jdGwgYW5kIHNwZWNpZmllcyB0aGUgR1BVIHZp cnR1YWwNCj4gKyAqIGFkZHJlc3MgKFZBKSByYW5nZSB0aGF0IHNob3VsZCBiZSB1bmJvdW5kIGZy b20gdGhlIGRldmljZSBwYWdlIHRhYmxlIG9mIHRoZQ0KPiArICogc3BlY2lmaWVkIGFkZHJlc3Mg c3BhY2UgKFZNKS4gVk1fVU5CSU5EIHdpbGwgZm9yY2UgdW5iaW5kIHRoZSBzcGVjaWZpZWQNCj4g KyAqIHJhbmdlIGZyb20gZGV2aWNlIHBhZ2UgdGFibGUgd2l0aG91dCB3YWl0aW5nIGZvciBhbnkg R1BVIGpvYiB0byBjb21wbGV0ZS4NCj4gKyAqIEl0IGlzIFVNRHMgcmVzcG9uc2liaWxpdHkgdG8g ZW5zdXJlIHRoZSBtYXBwaW5nIGlzIG5vIGxvbmdlciBpbiB1c2UgYmVmb3JlDQo+ICsgKiBjYWxs aW5nIFZNX1VOQklORC4NCj4gKyAqDQo+ICsgKiBJZiB0aGUgc3BlY2lmaWVkIG1hcHBpbmcgaXMg bm90IGZvdW5kLCB0aGUgaW9jdGwgd2lsbCBzaW1wbHkgcmV0dXJuIHdpdGhvdXQNCj4gKyAqIGFu eSBlcnJvci4NCj4gKyAqDQo+ICsgKiBWTV9CSU5EL1VOQklORCBpb2N0bCBjYWxscyBleGVjdXRl ZCBvbiBkaWZmZXJlbnQgQ1BVIHRocmVhZHMgY29uY3VycmVudGx5DQo+ICsgKiBhcmUgbm90IG9y ZGVyZWQuIEZ1cnRoZXJtb3JlLCBwYXJ0cyBvZiB0aGUgVk1fVU5CSU5EIG9wZXJhdGlvbiBjYW4g YmUgZG9uZQ0KPiArICogYXN5bmNocm9ub3VzbHksIGlmIHZhbGlkIEBmZW5jZSBpcyBzcGVjaWZp ZWQuDQoNCldoYXQgQGZlbmNlPyBUaGVyZSdzIG5vIHdheSB0byBzcGVjaWZ5IG9uZS4NCg0KPiAr ICovDQo+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3ZtX3VuYmluZCB7DQo+ICsJLyoqIEB2bV9pZDog Vk0gKGFkZHJlc3Mgc3BhY2UpIGlkIHRvIGJpbmQgKi8NCj4gKwlfX3UzMiB2bV9pZDsNCj4gKw0K PiArCS8qKiBAcnN2ZDogUmVzZXJ2ZWQsIE1CWiAqLw0KPiArCV9fdTMyIHJzdmQ7DQoNCkFnYWlu IGhlcmUsIHNhbWUgcXVlc3Rpb24uIFBlcmhhcHMgd2UgY291bGQgbmFtZSBpdCAncGFkJyBvciAn cGFkMCcgaWYNCnRoYXQncyB0aGUgc3BlY2lmaWMgZ29hbCBvZiBoYXZpbmcgdGhpcz8NCg0KPiAr DQo+ICsJLyoqIEBzdGFydDogVmlydHVhbCBBZGRyZXNzIHN0YXJ0IHRvIHVuYmluZCAqLw0KPiAr CV9fdTY0IHN0YXJ0Ow0KPiArDQo+ICsJLyoqIEBsZW5ndGg6IExlbmd0aCBvZiBtYXBwaW5nIHRv IHVuYmluZCAqLw0KPiArCV9fdTY0IGxlbmd0aDsNCj4gKw0KPiArCS8qKiBAcnN2ZDI6IFJlc2Vy dmVkLCBNQlogKi8NCj4gKwlfX3U2NCByc3ZkMlszXTsNCg0KQW5kIGhlcmUsIGJ1dCB0aGlzIGlz IGRlZmluaXRlbHkgbm90IGp1c3QgcGFkZGluZy4NCg0KPiArDQo+ICsJLyoqDQo+ICsJICogQGV4 dGVuc2lvbnM6IFplcm8tdGVybWluYXRlZCBjaGFpbiBvZiBleHRlbnNpb25zLg0KPiArCSAqDQo+ ICsJICogRm9yIGZ1dHVyZSBleHRlbnNpb25zLiBTZWUgc3RydWN0IGk5MTVfdXNlcl9leHRlbnNp b24uDQo+ICsJICovDQo+ICsJX191NjQgZXh0ZW5zaW9uczsNCj4gK307DQo+ICsNCj4gwqAjaWYg ZGVmaW5lZChfX2NwbHVzcGx1cykNCj4gwqB9DQo+IMKgI2VuZGlmDQoNCg==