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 335A3CD98C0 for ; Tue, 10 Oct 2023 21:57:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0354110E3E8; Tue, 10 Oct 2023 21:57:56 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0653C10E3E6 for ; Tue, 10 Oct 2023 21:57:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696975074; x=1728511074; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=sedRSZQYULa2oIWUf3ubX7CTtv60AWfJH1VGDg5BVzk=; b=L8nk4/22cJpRaNIq7tkKTWwJKWWn0GxjsWeaK9gLk1Q6+x5YVlGwNGQN OUd/aMz9akCBfhQ2ZBiVPn5pVDFlLF1mOC9HMT4ND/Xv1343Ih/T3/E3Z 5gNnWU+a3QYZHh5LJAqSdqHHJ94Yl489PWoJh0oyaGqAipVd9QplaEcug Gmu+lMrPCxBbCZwXHPqayjKm0CS37ni1nl8yZ97dISXQORreKW99okj+3 uxYKzLDUUOhT8UDjQzsULleoRRNWujctOQBdHKa0Y+MvPUZU/JStk2GcJ Ih2nruWRcPbKZtyV0quZayS4Xp81vauF5700lqudZV75rEdUxmeVvuYjL A==; X-IronPort-AV: E=McAfee;i="6600,9927,10859"; a="363867280" X-IronPort-AV: E=Sophos;i="6.03,214,1694761200"; d="scan'208";a="363867280" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Oct 2023 14:57:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10859"; a="819423682" X-IronPort-AV: E=Sophos;i="6.03,214,1694761200"; d="scan'208";a="819423682" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 10 Oct 2023 14:57:53 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 10 Oct 2023 14:57:52 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 10 Oct 2023 14:57:52 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.41) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Tue, 10 Oct 2023 14:57:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pre5cdU3Monu/WLAZXVYEuLGLkDhtCULKln1SomkKxzvxt1AYQHQ43+mpOTkKMz2vQ/8BQbY4uA4VHULBmMFDbABJsIuqaB2LzyThDLYgiS3m1wz3kNrJqdt3RMPWqWDRRGWxxsdiUkUv02w3NzmwU9dKw/fM4MJ9SwEsT66YQvNBI9WNdPwmva0jZjRtn2qLsM6HbspgtyB5PjOm8e5oxs6EbMlQNSxwOFzoR8QJhMF45ASfmzAW6KZwBtPSTzdLa9IQqiBijVyj+RUQyUiWB6ft3NVcb3eunyvbOk3C+IryxnABvRaS0dAX8HBH9w4Tj48dZerpH8CwNytSF7Z7w== 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=sedRSZQYULa2oIWUf3ubX7CTtv60AWfJH1VGDg5BVzk=; b=EN2uKWYfxIByx3p5S62nLpy+K7mvW7knDi2k8SQ6Il5K32/3swoNo0fBY0KvOvopyeSBGr2BwuEPRj2sIWLW1D8oY28/ozfY08/eroqdWnV4ii3e8fr40Cjsm+ZRa6fXgQ4VtaYxWafvsSHj2wI/pL9oa+02LIbGoOVGyMPpv4LEUAbKGdkvTTCMqzjaxhgQeaBmDLgX3uYiNVZ6w5lSbZuDaAtBqeyLsrYROp4q7Jl2PNANguPckJlSsSg837d5aoI+o0m1TB+O+hcXAklGBooCXaMGJ/ajSkpC9wWIH1rRyNtWDtE/JlGiOADtoUuH6kPd8cDppX5QQI5EYFq0Xw== 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 DS0PR11MB6400.namprd11.prod.outlook.com (2603:10b6:8:c7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.43; Tue, 10 Oct 2023 21:57:44 +0000 Received: from CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::f665:b942:9842:c322]) by CO6PR11MB5620.namprd11.prod.outlook.com ([fe80::f665:b942:9842:c322%7]) with mapi id 15.20.6863.032; Tue, 10 Oct 2023 21:57:44 +0000 From: "Zanoni, Paulo R" To: "intel-xe@lists.freedesktop.org" , "thomas.hellstrom@linux.intel.com" Thread-Topic: [RFC PATCH] Documentation/gpu: Add a VM_BIND async document Thread-Index: AQHZ+4Hvg31CgLTuX0SonDnYVhbPLrBDkpOA Date: Tue, 10 Oct 2023 21:57:44 +0000 Message-ID: <3d1506a6143f36ade5c49dc3a9370f91fd8d7002.camel@intel.com> References: <20231010135845.8594-1-thomas.hellstrom@linux.intel.com> In-Reply-To: <20231010135845.8594-1-thomas.hellstrom@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.46.4-2 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_|DS0PR11MB6400:EE_ x-ms-office365-filtering-correlation-id: 7c65f36a-6672-41e7-f5b7-08dbc9dbeec5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZgBwBK7EzRue8RhWqzX7eoU/UowTkr8dIdbAs6Rgsq1uTkwhLnCTVLFyUZKw9lDVhDNngk1ZuyvoQFO8SjZZYghb2N1Z7ZKAd14IxezaTSv0fJ94IqHP4iydWlkvvS5iNEeLSSkidGegBCmiHpED+tyvs55dEXew412P05UpmmJjkHCTXXuyvL+A5Q3oZcWhvUJa4NoJlir3nfoQCV/4hDD+f8Mc7HHQc9yY3rz464NI4CpILgVVCabXj9ViQtK2qopn317mPVoRRfESt/v/y2ocKNZa/4Y1OSJc2BOIUeLDQhQni02aAGg4pA3a/eyzyMmCiiLHTjo0DRoPvU96N4aNXQk4mLuVaF1byF1JH5z9GkWFwgXWbUHwoqJtNzJwF6FO9R+Q3BjRinMY2+5bGVaAxBvfdM4C0tpN9yEwSyaa6m9+6ult1/CR0YPbv8BeSJlDcPDATCFKDpMVayJ3D6cjjfVuEr5HwGSQ+k/q/B4jdEI4LWWA3O+VOtHHzci9u/cbUc5u52dQX8r9kLCwkhma5J1TSsts242F85bG9mMc6nbdb83SB4y5Z1PR6ttygkTOENZnf3B1MaWJhWNz4qNJv8iHhY++BDxiLdQ78VZb3xS4kiwCRrVecR358MUU 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:(13230031)(376002)(39860400002)(346002)(366004)(136003)(396003)(230922051799003)(1800799009)(451199024)(186009)(64100799003)(6512007)(66899024)(83380400001)(2616005)(66574015)(82960400001)(76116006)(66946007)(66476007)(110136005)(54906003)(64756008)(316002)(66446008)(66556008)(8936002)(4326008)(41300700001)(71200400001)(5660300002)(6506007)(6486002)(2906002)(30864003)(4001150100001)(478600001)(8676002)(36756003)(38100700002)(122000001)(86362001)(38070700005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MFVibUkvSEpEMUxVaDhkbUlPZFR5UkRvSmQvWnQxRE1CRStiWEhvRlRMTjBj?= =?utf-8?B?WUZQV2dkWTBlTTUxbTZQRjRKQ3BZNjVwbEpheVl5S3NEYjJyaGl0TS9jQ1hY?= =?utf-8?B?YTcvak9kWVR1M3Vvb1hYOVBiZnVVN1Z3VWFUSUlzeEdtUXlvdk81ZFFuQ3pT?= =?utf-8?B?cGQ5ZW5tOExrZkt2aDNaT3ZXT3F3YVdDNzFoTEtmZjN5d3l3Z05tL2Ztc2w5?= =?utf-8?B?VTZzRmM3ZEhqbHU1WjFod3RBNU4vWDM1RXVqRHZYdjhPUkdGaDZIeUkxYUtu?= =?utf-8?B?Z3c5Q0NnT0pnRjZxNDF3cFNocHRraGUwejVSTWRaZTUvMkdrSEluSGNJN3Yy?= =?utf-8?B?QTg0ME9RQWdjbUtxM1IrREZJc3B0aHRhcUhVQWlocEg3NnZoZ2YyNWF3VlF1?= =?utf-8?B?ek1QOUhFdVhGQ0VGSHkwWjd2aDByYWZvM1Q2ZTNpOG1xTEpIMXJGUVBwd1J3?= =?utf-8?B?aFRNN0QrSGYxS3Jxc3prUUNTQkFlZy9ONUlIRWUrQ2poU0IzRGMwMi9XSlVo?= =?utf-8?B?UEliNUREUDJpQkpPSjVTemxlNlZqMENjZCtQVFJWV29PdWlaSWloQXFnYVNq?= =?utf-8?B?ckJ3L2JsQXlNZkNvdGY5SFl4bWVpYkgyV3ZGai9hZVZmODFrc2N0KzlYZmhX?= =?utf-8?B?UzFpQkk2eGoyZ2ZhWnBKQTJNVThDUE9Qeit5Y0E5aDdUcjFwV1JwRGFJOERE?= =?utf-8?B?bXNUbVJoL0ZQT3VXajh3eGpYaXByYkh6eVUvV0R0T1Nzc1NuRTNQTVErVm5x?= =?utf-8?B?SklXOW8vTVZTT0o5QzU1NU1VcStEOHFmS1YyUTNqZHBYK1ZEMEh2OWgxQkVG?= =?utf-8?B?bjBZZGkxUGdYUzFjMzJtTzQzU0psMGxkSFdwZ0ZXRUNMcTBoTGJMd1hqUlp1?= =?utf-8?B?cHo1dWR5d0kraWpRMWVDaXlrdklxR1dwbVZSTFJuakpWYmxpU1dqcnE0Zitp?= =?utf-8?B?Q0VvQ3ZvWTVxVlFGWk9BU2FXUjRBem03UEZ1OG5YNE56M3lHNnAwdnVYZHlJ?= =?utf-8?B?OFkxT0crQkhzZFg1WUhPUmU5L0xrZy9vdTIrVGxvZHdKRnlBWW1WclkrZm95?= =?utf-8?B?Vllma0c3NC9NUm1xbUZWekFVR2t2MW9oT25zTmY2N3dWL1FwYi9tU0hxWUV0?= =?utf-8?B?TTJjYytQd0xsZVVwNE4wUDg1SURkM0VYd2I0dU1MSk9wNnhhMExsTHU4WFo1?= =?utf-8?B?emtMKytTdDlGMW1qSVNoemNoa2hDbE9rcFZ4UVc2WTRVR01YVDZDZGxKTGVO?= =?utf-8?B?a1JsZmtYWXN2alAycHpDZ2pzSUkwVCtzRnI5NGlxbHdUSksyVXdQOWlVc0NX?= =?utf-8?B?c0cySGZHRTNPaWpYTUtUT0hTcUVWUmdLbFVXRDhjK01LS05BMU5rVGNQVE84?= =?utf-8?B?aE1MeThuOFB2aDB2SkVvU0VyQmN6dXRXZkppakVaeEJMQUx3cSsrNDlXblZL?= =?utf-8?B?c3prbCtQK2hiZmc0WndvK0ZWU1JuRmt4ZE9GcHNiNHZ4TWZrd0lwNjd5VHQ1?= =?utf-8?B?aXd1ajRDTzZvRDFGazVIbjlhaFArWnZ4OHpDWnVlV1pzeTVLNkkvdnJCanRp?= =?utf-8?B?bzdVNmJSR1FKYXVFY1FRbEhFc0VDUFA2UUVlVmxscHlPVXk5MlVWd1RhWndZ?= =?utf-8?B?QUNHTXQ1TFlQY3E5bHZmL21BaUVHY1VVSFB1N0pjdjNKQk5oTXZGV1FmL3Fk?= =?utf-8?B?N1p1Nkc3QVBSbXRxcUE1bDNNWFNTWUV6YjhlNmtMYlR1NHhHNFdJTjhDWStI?= =?utf-8?B?ZDN6ZE5YakEzVTU5RW9xSjVMWXlwRHZLSU8wdDFWNk9ER0xBL1dPUUxWRk1y?= =?utf-8?B?dVIxTGNOdWxMZlZBMTlJSVBUQ0Q5dTNYNmJNRGVZaXY4UXE1aFdoVWY0cnJS?= =?utf-8?B?aEJ4aVdycjFMSVdLWmc0QzJYbEw3QVVCRERnOHhuUTdSZFM4bWt0OTRjQjl1?= =?utf-8?B?Ym1iWmRMdUhmWjAxM3dqc2d1V3ZEZ0NXbHU3MDVpRWNMZ1k2b1crenNoa2ZU?= =?utf-8?B?YVhkWmc0Y0JBeG5XQmtMaXgzTmZnc1RuYTNHQ3Vhb01oNU1RVjdEc01HeDhm?= =?utf-8?B?MFM3OWV4VC9IeUdOalRHbFVuSExqWmV3Rlk2TWVBNW5ZSW0vQmdabFI5TUpu?= =?utf-8?B?RkM0K2JwQ2Vlb0VERXBqUml2dWQwTHZBN28vQ05tOU9pK2krWkVKSXdjTCtC?= =?utf-8?B?RkxDY1RUelhZNm1uU2pUd3Z2c3FIZ1EyTzRxa2piY0VveitjUXJlVGxXeWZr?= =?utf-8?B?Yk9BejNkdXdaZGNUWUF0b2xKbzFRPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 7c65f36a-6672-41e7-f5b7-08dbc9dbeec5 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2023 21:57:44.3668 (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: +vg9fwPD9wZu/9D0oiAqFA9vumptx5q5BpBaqnTT0ta1sii+w0BFuEFy6ZArpMPzlAH51oTe9uVhVTcXO/gdVbSoiOV3B9o2ELsUlc1ft0k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6400 X-OriginatorOrg: intel.com Subject: Re: [Intel-xe] [RFC PATCH] Documentation/gpu: Add a VM_BIND async document X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Vivi, Rodrigo" , "dakr@redhat.com" , "Das, Nirmoy" Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gVHVlLCAyMDIzLTEwLTEwIGF0IDE1OjU4ICswMjAwLCBUaG9tYXMgSGVsbHN0csO2bSB3cm90 ZToNCj4gQWRkIGEgbW90aXZhdGlvbiBmb3IgYW5kIGRlc2NyaXB0aW9uIG9mIGFzeW5jaHJvbm91 cyBWTV9CSU5EIG9wZXJhdGlvbg0KPiANCj4gdjI6DQo+IC0gRml4IHR5cG9zIChOaXJtb3kgRGFz KQ0KPiAtIEltcHJvdmUgdGhlIGRlc2NyaXB0aW9uIG9mIGEgbWVtb3J5IGZlbmNlIChPYWsgWmVu ZykNCj4gLSBBZGQgYSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50IGluIHRoZSBYZSBSRkMuDQo+ IC0gQWRkIHBvaW50ZXJzIHRvIHNhbXBsZSB1QVBJIHN1Z2dlc3Rpb25zDQo+IHYzOg0KPiAtIEFk ZHJlc3MgcmV2aWV3IGNvbW1lbnRzIChEYW5pbG8gS3J1bW1yaWNoKQ0KPiAtIEZvcm1hdHRpbmcg Zml4ZXMNCj4gdjQ6DQo+IC0gQWRkcmVzcyB0eXBvcyAoRnJhbmNvaXMgRHVnYXN0KQ0KPiAtIEV4 cGxhaW4gd2h5IGluLWZlbmNlcyBhcmUgbm90IGFsbG93ZWQgZm9yIFZNX0JJTkQgb3BlcmF0aW9u cyBmb3IgbG9uZy0NCj4gICBydW5uaW5nIHdvcmtsb2FkcyAoTWF0dGhldyBCcm9zdCkNCj4gdjU6 DQo+IC0gTW9yZSB0eXBvLSBhbmQgc3R5bGUgZml4aW5nDQo+IC0gRnVydGhlciBjbGFyaWZ5IHRo ZSBpbXBsaWNhdGlvbnMgb2YgZGlzYWxsb3dpbmcgaW4tZmVuY2VzIGZvciBWTV9CSU5EDQo+ICAg b3BlcmF0aW9ucyBmb3IgbG9uZy1ydW5uaW5nIHdvcmtsb2FkcyAoTWF0dGhldyBCcm9zdCkNCj4g djY6DQo+IC0gUG9pbnQgb3V0IHRoYXQgYSBncHVfdm0gaXMgYSB2aXJ0dWFsIEdQVSBBZGRyZXNz IHNwYWNlLg0KPiAgIChEYW5pbG8gS3J1bW1yaWNoKQ0KPiAtIEZvciBhbiBleHBsYW5hdGlvbiBv ZiBkbWEtZmVuY2VzIHBvaW50IHRvIHRoZSBkbWEtZmVuY2UgZG9jdW1lbnRhdGlvbi4NCj4gICAo UGFvbG8gWmFub25pKQ0KDQpzL1Bhb2xvL1BhdWxvLw0KDQo+IC0gQ2xhcmlmeSB0aGF0IFZNX0JJ TkQgZXJyb3JzIGFyZSByZXBvcnRlZCBzeW5jaHJvbm91c2x5LiAoUGF1bG8gWmFub25pKQ0KPiAt IFVzZSBhbiByc3QgZG9jIHJlZmVyZW5jZSB3aGVuIHBvaW50aW5nIHRvIHRoZSBhc3luYyB2bV9i aW5kIGRvY3VtZW50DQo+ICAgZnJvbSB0aGUgeGUgbWVyZ2UgcGxhbi4NCj4gLSBBZGQgdGhlIFZN X0JJTkQgZG9jdW1lbnRhdGlvbiB0byB0aGUgZHJtIGRvY3VtZW50YXRpb24gdGFibGUtb2YtY29u dGVudCwNCj4gICB1c2luZyBhbiBpbnRlcm1lZGlhdGUgIk1pc2MgRFJNIGRyaXZlciB1QVBJLSBh bmQgZmVhdHVyZSBpbXBsZW1lbnRhdGlvbg0KPiAgIGd1aWRlbGluZXMiDQo+IHY3Og0KPiAtIFVw ZGF0ZSB0aGUgZXJyb3IgaGFuZGxpbmcgZG9jdW1lbnRhdGlvbiB0byByZW1vdmUgdGhlIFZNIGVy cm9yIHN0YXRlLg0KPiANCj4gQ2M6IFBhdWxvIFIgWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRl bC5jb20+DQoNClJldmlld2VkLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVs LmNvbT4NCg0KDQo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVs bHN0cm9tQGxpbnV4LmludGVsLmNvbT4NCj4gQWNrZWQtYnk6IE5pcm1veSBEYXMgPG5pcm1veS5k YXNAaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogRGFuaWxvIEtydW1tcmljaCA8ZGFrckByZWRo YXQuY29tPg0KPiBSZXZpZXdlZC1ieTogTWF0dGhldyBCcm9zdCA8bWF0dGhldy5icm9zdEBpbnRl bC5jb20+DQo+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5j b20+DQo+IC0tLQ0KPiAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQtYXN5bmMucnN0ICAg ICAgIHwgMzA5ICsrKysrKysrKysrKysrKysrKw0KPiAgLi4uL2dwdS9pbXBsZW1lbnRhdGlvbl9n dWlkZWxpbmVzLnJzdCAgICAgICAgIHwgICA5ICsNCj4gIERvY3VtZW50YXRpb24vZ3B1L2luZGV4 LnJzdCAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICBEb2N1bWVudGF0aW9uL2dwdS9yZmMv eGUucnN0ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgMzIx IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ncHUvZHJtLXZtLWJpbmQtYXN5bmMucnN0DQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgRG9jdW1lbnRhdGlvbi9ncHUvaW1wbGVtZW50YXRpb25fZ3VpZGVsaW5lcy5yc3QNCj4gDQo+ IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QgYi9E b2N1bWVudGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4zZDcwOWQwMjA5OWMNCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdm0tYmluZC1hc3luYy5yc3QNCj4gQEAg LTAsMCArMSwzMDkgQEANCj4gKy4uIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCsg T1IgTUlUKQ0KPiArDQo+ICs9PT09PT09PT09PT09PT09PT09PQ0KPiArQXN5bmNocm9ub3VzIFZN X0JJTkQNCj4gKz09PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK05vbWVuY2xhdHVyZToNCj4g Kz09PT09PT09PT09PT0NCj4gKw0KPiArKiBgYFZSQU1gYDogT24tZGV2aWNlIG1lbW9yeS4gU29t ZXRpbWVzIHJlZmVycmVkIHRvIGFzIGRldmljZSBsb2NhbCBtZW1vcnkuDQo+ICsNCj4gKyogYGBn cHVfdm1gYDogQSB2aXJ0dWFsIEdQVSBhZGRyZXNzIHNwYWNlLiBUeXBpY2FsbHkgcGVyIHByb2Nl c3MsIGJ1dA0KPiArICBjYW4gYmUgc2hhcmVkIGJ5IG11bHRpcGxlIHByb2Nlc3Nlcy4NCj4gKw0K PiArKiBgYFZNX0JJTkRgYDogQW4gb3BlcmF0aW9uIG9yIGEgbGlzdCBvZiBvcGVyYXRpb25zIHRv IG1vZGlmeSBhIGdwdV92bSB1c2luZw0KPiArICBhbiBJT0NUTC4gVGhlIG9wZXJhdGlvbnMgaW5j bHVkZSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgc3lzdGVtLSBvcg0KPiArICBWUkFNIG1lbW9yeS4N Cj4gKw0KPiArKiBgYHN5bmNvYmpgYDogQSBjb250YWluZXIgdGhhdCBhYnN0cmFjdHMgc3luY2hy b25pemF0aW9uIG9iamVjdHMuIFRoZQ0KPiArICBzeW5jaHJvbml6YXRpb24gb2JqZWN0cyBjYW4g YmUgZWl0aGVyIGdlbmVyaWMsIGxpa2UgZG1hLWZlbmNlcyBvcg0KPiArICBkcml2ZXIgc3BlY2lm aWMuIEEgc3luY29iaiB0eXBpY2FsbHkgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRoZQ0KPiArICB1 bmRlcmx5aW5nIHN5bmNocm9uaXphdGlvbiBvYmplY3QuDQo+ICsNCj4gKyogYGBpbi1zeW5jb2Jq YGA6IEFyZ3VtZW50IHRvIGEgVk1fQklORCBJT0NUTCwgdGhlIFZNX0JJTkQgb3BlcmF0aW9uIHdh aXRzDQo+ICsgIGZvciB0aGVzZSBiZWZvcmUgc3RhcnRpbmcuDQo+ICsNCj4gKyogYGBvdXQtc3lu Y29iamBgOiBBcmd1bWVudCB0byBhIFZNX0JJTkRfSU9DVEwsIHRoZSBWTV9CSU5EIG9wZXJhdGlv bg0KPiArICBzaWduYWxzIHRoZXNlIHdoZW4gdGhlIGJpbmQgb3BlcmF0aW9uIGlzIGNvbXBsZXRl Lg0KPiArDQo+ICsqIGBgZG1hLWZlbmNlYGA6IEEgY3Jvc3MtZHJpdmVyIHN5bmNocm9uaXphdGlv biBvYmplY3QuIEEgYmFzaWMNCj4gKyAgdW5kZXJzdGFuZGluZyBvZiBkbWEtZmVuY2VzIGlzIHJl cXVpcmVkIHRvIGRpZ2VzdCB0aGlzDQo+ICsgIGRvY3VtZW50LiBQbGVhc2UgcmVmZXIgdG8gdGhl IGBgRE1BIEZlbmNlc2BgIHNlY3Rpb24gb2YgdGhlDQo+ICsgIDpkb2M6YGRtYS1idWYgZG9jIDwv ZHJpdmVyLWFwaS9kbWEtYnVmPmAuDQo+ICsNCj4gKyogYGBtZW1vcnkgZmVuY2VgYDogQSBzeW5j aHJvbml6YXRpb24gb2JqZWN0LCBkaWZmZXJlbnQgZnJvbSBhIGRtYS1mZW5jZS4NCj4gKyAgQSBt ZW1vcnkgZmVuY2UgdXNlcyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9u IHRvIGRldGVybWluZQ0KPiArICBzaWduYWxlZCBzdGF0dXMuIEEgbWVtb3J5IGZlbmNlIGNhbiBi ZSBhd2FpdGVkIGFuZCBzaWduYWxlZCBieSBib3RoDQo+ICsgIHRoZSBHUFUgYW5kIENQVS4gTWVt b3J5IGZlbmNlcyBhcmUgc29tZXRpbWVzIHJlZmVycmVkIHRvIGFzDQo+ICsgIHVzZXItZmVuY2Vz LCB1c2Vyc3BhY2UtZmVuY2VzIG9yIGdwdSBmdXRleGVzIGFuZCBkbyBub3QgbmVjZXNzYXJpbHkg b2JleQ0KPiArICB0aGUgZG1hLWZlbmNlIHJ1bGUgb2Ygc2lnbmFsaW5nIHdpdGhpbiBhICJyZWFz b25hYmxlIGFtb3VudCBvZiB0aW1lIi4NCj4gKyAgVGhlIGtlcm5lbCBzaG91bGQgdGh1cyBhdm9p ZCB3YWl0aW5nIGZvciBtZW1vcnkgZmVuY2VzIHdpdGggbG9ja3MgaGVsZC4NCj4gKw0KPiArKiBg YGxvbmctcnVubmluZyB3b3JrbG9hZGBgOiBBIHdvcmtsb2FkIHRoYXQgbWF5IHRha2UgbW9yZSB0 aGFuIHRoZQ0KPiArICBjdXJyZW50IHN0aXB1bGF0ZWQgZG1hLWZlbmNlIG1heGltdW0gc2lnbmFs IGRlbGF5IHRvIGNvbXBsZXRlIGFuZA0KPiArICB3aGljaCB0aGVyZWZvcmUgbmVlZHMgdG8gc2V0 IHRoZSBncHVfdm0gb3IgdGhlIEdQVSBleGVjdXRpb24gY29udGV4dCBpbg0KPiArICBhIGNlcnRh aW4gbW9kZSB0aGF0IGRpc2FsbG93cyBjb21wbGV0aW9uIGRtYS1mZW5jZXMuDQo+ICsNCj4gKyog YGBleGVjIGZ1bmN0aW9uYGA6IEFuIGV4ZWMgZnVuY3Rpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHJl dmFsaWRhdGVzIGFsbA0KPiArICBhZmZlY3RlZCBncHVfdm1hcywgc3VibWl0cyBhIEdQVSBjb21t YW5kIGJhdGNoIGFuZCByZWdpc3RlcnMgdGhlDQo+ICsgIGRtYV9mZW5jZSByZXByZXNlbnRpbmcg dGhlIEdQVSBjb21tYW5kJ3MgYWN0aXZpdHkgd2l0aCBhbGwgYWZmZWN0ZWQNCj4gKyAgZG1hX3Jl c3ZzLiBGb3IgY29tcGxldGVuZXNzLCBhbHRob3VnaCBub3QgY292ZXJlZCBieSB0aGlzIGRvY3Vt ZW50LA0KPiArICBpdCdzIHdvcnRoIG1lbnRpb25pbmcgdGhhdCBhbiBleGVjIGZ1bmN0aW9uIG1h eSBhbHNvIGJlIHRoZQ0KPiArICByZXZhbGlkYXRpb24gd29ya2VyIHRoYXQgaXMgdXNlZCBieSBz b21lIGRyaXZlcnMgaW4gY29tcHV0ZSAvDQo+ICsgIGxvbmctcnVubmluZyBtb2RlLg0KPiArDQo+ ICsqIGBgYmluZCBjb250ZXh0YGA6IEEgY29udGV4dCBpZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBW TV9CSU5EDQo+ICsgIG9wZXJhdGlvbi4gVk1fQklORCBvcGVyYXRpb25zIHRoYXQgdXNlIHRoZSBz YW1lIGJpbmQgY29udGV4dCBjYW4gYmUNCj4gKyAgYXNzdW1lZCwgd2hlcmUgaXQgbWF0dGVycywg dG8gY29tcGxldGUgaW4gb3JkZXIgb2Ygc3VibWlzc2lvbi4gTm8gc3VjaA0KPiArICBhc3N1bXB0 aW9ucyBjYW4gYmUgbWFkZSBmb3IgVk1fQklORCBvcGVyYXRpb25zIHVzaW5nIHNlcGFyYXRlIGJp bmQgY29udGV4dHMuDQo+ICsNCj4gKyogYGBVTURgYDogVXNlci1tb2RlIGRyaXZlci4NCj4gKw0K PiArKiBgYEtNRGBgOiBLZXJuZWwtbW9kZSBkcml2ZXIuDQo+ICsNCj4gKw0KPiArU3luY2hyb25v dXMgLyBBc3luY2hyb25vdXMgVk1fQklORCBvcGVyYXRpb24NCj4gKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK1N5bmNocm9ub3VzIFZNX0JJTkQN Cj4gK19fX19fX19fX19fX19fX19fX18NCj4gK1dpdGggU3luY2hyb25vdXMgVk1fQklORCwgdGhl IFZNX0JJTkQgb3BlcmF0aW9ucyBhbGwgY29tcGxldGUgYmVmb3JlIHRoZQ0KPiArSU9DVEwgcmV0 dXJucy4gQSBzeW5jaHJvbm91cyBWTV9CSU5EIHRha2VzIG5laXRoZXIgaW4tZmVuY2VzIG5vcg0K PiArb3V0LWZlbmNlcy4gU3luY2hyb25vdXMgVk1fQklORCBtYXkgYmxvY2sgYW5kIHdhaXQgZm9y IEdQVSBvcGVyYXRpb25zOw0KPiArZm9yIGV4YW1wbGUgc3dhcC1pbiBvciBjbGVhcmluZywgb3Ig ZXZlbiBwcmV2aW91cyBiaW5kcy4NCj4gKw0KPiArQXN5bmNocm9ub3VzIFZNX0JJTkQNCj4gK19f X19fX19fX19fX19fX19fX19fDQo+ICtBc3luY2hyb25vdXMgVk1fQklORCBhY2NlcHRzIGJvdGgg aW4tc3luY29ianMgYW5kIG91dC1zeW5jb2Jqcy4gV2hpbGUgdGhlDQo+ICtJT0NUTCBtYXkgcmV0 dXJuIGltbWVkaWF0ZWx5LCB0aGUgVk1fQklORCBvcGVyYXRpb25zIHdhaXQgZm9yIHRoZSBpbi1z eW5jb2Jqcw0KPiArYmVmb3JlIG1vZGlmeWluZyB0aGUgR1BVIHBhZ2UtdGFibGVzLCBhbmQgc2ln bmFsIHRoZSBvdXQtc3luY29ianMgd2hlbg0KPiArdGhlIG1vZGlmaWNhdGlvbiBpcyBkb25lIGlu IHRoZSBzZW5zZSB0aGF0IHRoZSBuZXh0IGV4ZWMgZnVuY3Rpb24gdGhhdA0KPiArYXdhaXRzIGZv ciB0aGUgb3V0LXN5bmNvYmpzIHdpbGwgc2VlIHRoZSBjaGFuZ2UuIEVycm9ycyBhcmUgcmVwb3J0 ZWQNCj4gK3N5bmNocm9ub3VzbHkuDQo+ICtJbiBsb3ctbWVtb3J5IHNpdHVhdGlvbnMgdGhlIGlt cGxlbWVudGF0aW9uIG1heSBibG9jaywgcGVyZm9ybWluZyB0aGUNCj4gK1ZNX0JJTkQgc3luY2hy b25vdXNseSwgYmVjYXVzZSB0aGVyZSBtaWdodCBub3QgYmUgZW5vdWdoIG1lbW9yeQ0KPiAraW1t ZWRpYXRlbHkgYXZhaWxhYmxlIGZvciBwcmVwYXJpbmcgdGhlIGFzeW5jaHJvbm91cyBvcGVyYXRp b24uDQo+ICsNCj4gK0lmIHRoZSBWTV9CSU5EIElPQ1RMIHRha2VzIGEgbGlzdCBvciBhbiBhcnJh eSBvZiBvcGVyYXRpb25zIGFzIGFuIGFyZ3VtZW50LA0KPiArdGhlIGluLXN5bmNvYmpzIG5lZWRz IHRvIHNpZ25hbCBiZWZvcmUgdGhlIGZpcnN0IG9wZXJhdGlvbiBzdGFydHMgdG8NCj4gK2V4ZWN1 dGUsIGFuZCB0aGUgb3V0LXN5bmNvYmpzIHNpZ25hbCBhZnRlciB0aGUgbGFzdCBvcGVyYXRpb24N Cj4gK2NvbXBsZXRlcy4gT3BlcmF0aW9ucyBpbiB0aGUgb3BlcmF0aW9uIGxpc3QgY2FuIGJlIGFz c3VtZWQsIHdoZXJlIGl0DQo+ICttYXR0ZXJzLCB0byBjb21wbGV0ZSBpbiBvcmRlci4NCj4gKw0K PiArU2luY2UgYXN5bmNocm9ub3VzIFZNX0JJTkQgb3BlcmF0aW9ucyBtYXkgdXNlIGRtYS1mZW5j ZXMgZW1iZWRkZWQgaW4NCj4gK291dC1zeW5jb2JqcyBhbmQgaW50ZXJuYWxseSBpbiBLTUQgdG8g c2lnbmFsIGJpbmQgY29tcGxldGlvbiwgIGFueQ0KPiArbWVtb3J5IGZlbmNlcyBnaXZlbiBhcyBW TV9CSU5EIGluLWZlbmNlcyBuZWVkIHRvIGJlIGF3YWl0ZWQNCj4gK3N5bmNocm9ub3VzbHkgYmVm b3JlIHRoZSBWTV9CSU5EIGlvY3RsIHJldHVybnMsIHNpbmNlIGRtYS1mZW5jZXMsDQo+ICtyZXF1 aXJlZCB0byBzaWduYWwgaW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lLCBjYW4gbmV2ZXIg YmUgbWFkZQ0KPiArdG8gZGVwZW5kIG9uIG1lbW9yeSBmZW5jZXMgdGhhdCBkb24ndCBoYXZlIHN1 Y2ggYSByZXN0cmljdGlvbi4NCj4gKw0KPiArVGhlIHB1cnBvc2Ugb2YgYW4gQXN5bmNocm9ub3Vz IFZNX0JJTkQgb3BlcmF0aW9uIGlzIGZvciB1c2VyLW1vZGUNCj4gK2RyaXZlcnMgdG8gYmUgYWJs ZSB0byBwaXBlbGluZSBpbnRlcmxlYXZlZCBncHVfdm0gbW9kaWZpY2F0aW9ucyBhbmQNCj4gK2V4 ZWMgZnVuY3Rpb25zLiBGb3IgbG9uZy1ydW5uaW5nIHdvcmtsb2Fkcywgc3VjaCBwaXBlbGluaW5n IG9mIGEgYmluZA0KPiArb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkIGFuZCBhbnkgaW4tZmVuY2Vz IG5lZWQgdG8gYmUgYXdhaXRlZA0KPiArc3luY2hyb25vdXNseS4gVGhlIHJlYXNvbiBmb3IgdGhp cyBpcyB0d29mb2xkLiBGaXJzdCwgYW55IG1lbW9yeQ0KPiArZmVuY2VzIGdhdGVkIGJ5IGEgbG9u Zy1ydW5uaW5nIHdvcmtsb2FkIGFuZCB1c2VkIGFzIGluLXN5bmNvYmpzIGZvciB0aGUNCj4gK1ZN X0JJTkQgb3BlcmF0aW9uIHdpbGwgbmVlZCB0byBiZSBhd2FpdGVkIHN5bmNocm9ub3VzbHkgYW55 d2F5IChzZWUNCj4gK2Fib3ZlKS4gU2Vjb25kLCBhbnkgZG1hLWZlbmNlcyB1c2VkIGFzIGluLXN5 bmNvYmpzIGZvciBWTV9CSU5EDQo+ICtvcGVyYXRpb25zIGZvciBsb25nLXJ1bm5pbmcgd29ya2xv YWRzIHdpbGwgbm90IGFsbG93IGZvciBwaXBlbGluaW5nDQo+ICthbnl3YXkgc2luY2UgbG9uZy1y dW5uaW5nIHdvcmtsb2FkcyBkb24ndCBhbGxvdyBmb3IgZG1hLWZlbmNlcyBhcw0KPiArb3V0LXN5 bmNvYmpzLCBzbyB3aGlsZSB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIHRoZSB1c2Ugb2YgdGhlbSBp cw0KPiArcXVlc3Rpb25hYmxlIGFuZCBzaG91bGQgYmUgcmVqZWN0ZWQgdW50aWwgdGhlcmUgaXMg YSB2YWx1YWJsZSB1c2UtY2FzZS4NCj4gK05vdGUgdGhhdCB0aGlzIGlzIG5vdCBhIGxpbWl0YXRp b24gaW1wb3NlZCBieSBkbWEtZmVuY2UgcnVsZXMsIGJ1dA0KPiArcmF0aGVyIGEgbGltaXRhdGlv biBpbXBvc2VkIHRvIGtlZXAgS01EIGltcGxlbWVudGF0aW9uIHNpbXBsZS4gSXQgZG9lcw0KPiAr bm90IGFmZmVjdCB1c2luZyBkbWEtZmVuY2VzIGFzIGRlcGVuZGVuY2llcyBmb3IgdGhlIGxvbmct cnVubmluZw0KPiArd29ya2xvYWQgaXRzZWxmLCB3aGljaCBpcyBhbGxvd2VkIGJ5IGRtYS1mZW5j ZSBydWxlcywgYnV0IHJhdGhlciBmb3INCj4gK3RoZSBWTV9CSU5EIG9wZXJhdGlvbiBvbmx5Lg0K PiArDQo+ICtBbiBhc3luY2hyb25vdXMgVk1fQklORCBvcGVyYXRpb24gbWF5IHRha2Ugc3Vic3Rh bnRpYWwgdGltZSB0bw0KPiArY29tcGxldGUgYW5kIHNpZ25hbCB0aGUgb3V0X2ZlbmNlLiBJbiBw YXJ0aWN1bGFyIGlmIHRoZSBvcGVyYXRpb24gaXMNCj4gK2RlZXBseSBwaXBlbGluZWQgYmVoaW5k IG90aGVyIFZNX0JJTkQgb3BlcmF0aW9ucyBhbmQgd29ya2xvYWRzDQo+ICtzdWJtaXR0ZWQgdXNp bmcgZXhlYyBmdW5jdGlvbnMuIEluIHRoYXQgY2FzZSwgVU1EIG1pZ2h0IHdhbnQgdG8gYXZvaWQg YQ0KPiArc3Vic2VxdWVudCBWTV9CSU5EIG9wZXJhdGlvbiB0byBiZSBxdWV1ZWQgYmVoaW5kIHRo ZSBmaXJzdCBvbmUgaWYNCj4gK3RoZXJlIGFyZSBubyBleHBsaWNpdCBkZXBlbmRlbmNpZXMuIElu IG9yZGVyIHRvIGNpcmN1bXZlbnQgc3VjaCBhIHF1ZXVlLXVwLCBhDQo+ICtWTV9CSU5EIGltcGxl bWVudGF0aW9uIG1heSBhbGxvdyBmb3IgVk1fQklORCBjb250ZXh0cyB0byBiZQ0KPiArY3JlYXRl ZC4gRm9yIGVhY2ggY29udGV4dCwgVk1fQklORCBvcGVyYXRpb25zIHdpbGwgYmUgZ3VhcmFudGVl ZCB0bw0KPiArY29tcGxldGUgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBzdWJtaXR0ZWQsIGJ1dCB0 aGF0IGlzIG5vdCB0aGUgY2FzZQ0KPiArZm9yIFZNX0JJTkQgb3BlcmF0aW9ucyBleGVjdXRpbmcg b24gc2VwYXJhdGUgVk1fQklORCBjb250ZXh0cy4gSW5zdGVhZA0KPiArS01EIHdpbGwgYXR0ZW1w dCB0byBleGVjdXRlIHN1Y2ggVk1fQklORCBvcGVyYXRpb25zIGluIHBhcmFsbGVsIGJ1dA0KPiAr bGVhdmluZyBubyBndWFyYW50ZWUgdGhhdCB0aGV5IHdpbGwgYWN0dWFsbHkgYmUgZXhlY3V0ZWQg aW4NCj4gK3BhcmFsbGVsLiBUaGVyZSBtYXkgYmUgaW50ZXJuYWwgaW1wbGljaXQgZGVwZW5kZW5j aWVzIHRoYXQgb25seSBLTUQga25vd3MNCj4gK2Fib3V0LCBmb3IgZXhhbXBsZSBwYWdlLXRhYmxl IHN0cnVjdHVyZSBjaGFuZ2VzLiBBIHdheSB0byBhdHRlbXB0DQo+ICt0byBhdm9pZCBzdWNoIGlu dGVybmFsIGRlcGVuZGVuY2llcyBpcyB0byBoYXZlIGRpZmZlcmVudCBWTV9CSU5EDQo+ICtjb250 ZXh0cyB1c2Ugc2VwYXJhdGUgcmVnaW9ucyBvZiBhIFZNLg0KPiArDQo+ICtBbHNvIGZvciBWTV9C SU5EUyBmb3IgbG9uZy1ydW5uaW5nIGdwdV92bXMgdGhlIHVzZXItbW9kZSBkcml2ZXIgc2hvdWxk IHR5cGljYWxseQ0KPiArc2VsZWN0IG1lbW9yeSBmZW5jZXMgYXMgb3V0LWZlbmNlcyBzaW5jZSB0 aGF0IGdpdmVzIGdyZWF0ZXIgZmxleGliaWxpdHkgZm9yDQo+ICt0aGUga2VybmVsIG1vZGUgZHJp dmVyIHRvIGluamVjdCBvdGhlciBvcGVyYXRpb25zIGludG8gdGhlIGJpbmQgLw0KPiArdW5iaW5k IG9wZXJhdGlvbnMuIExpa2UgZm9yIGV4YW1wbGUgaW5zZXJ0aW5nIGJyZWFrcG9pbnRzIGludG8g YmF0Y2gNCj4gK2J1ZmZlcnMuIFRoZSB3b3JrbG9hZCBleGVjdXRpb24gY2FuIHRoZW4gZWFzaWx5 IGJlIHBpcGVsaW5lZCBiZWhpbmQNCj4gK3RoZSBiaW5kIGNvbXBsZXRpb24gdXNpbmcgdGhlIG1l bW9yeSBvdXQtZmVuY2UgYXMgdGhlIHNpZ25hbCBjb25kaXRpb24NCj4gK2ZvciBhIEdQVSBzZW1h cGhvcmUgZW1iZWRkZWQgYnkgVU1EIGluIHRoZSB3b3JrbG9hZC4NCj4gKw0KPiArVGhlcmUgaXMg bm8gZGlmZmVyZW5jZSBpbiB0aGUgb3BlcmF0aW9ucyBzdXBwb3J0ZWQgb3IgaW4NCj4gK211bHRp LW9wZXJhdGlvbiBzdXBwb3J0IGJldHdlZW4gYXN5bmNocm9ub3VzIFZNX0JJTkQgYW5kIHN5bmNo cm9ub3VzIFZNX0JJTkQuDQo+ICsNCj4gK011bHRpLW9wZXJhdGlvbiBWTV9CSU5EIElPQ1RMIGVy cm9yIGhhbmRsaW5nIGFuZCBpbnRlcnJ1cHRzDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArDQo+ICtUaGUgVk1fQklORCBv cGVyYXRpb25zIG9mIHRoZSBJT0NUTCBtYXkgZXJyb3IgZm9yIHZhcmlvdXMgcmVhc29ucywgZm9y DQo+ICtleGFtcGxlIGR1ZSB0byBsYWNrIG9mIHJlc291cmNlcyB0byBjb21wbGV0ZSBhbmQgZHVl IHRvIGludGVycnVwdGVkDQo+ICt3YWl0cy4NCj4gK0luIHRoZXNlIHNpdHVhdGlvbnMgVU1EIHNo b3VsZCBwcmVmZXJhYmx5IHJlc3RhcnQgdGhlIElPQ1RMIGFmdGVyDQo+ICt0YWtpbmcgc3VpdGFi bGUgYWN0aW9uLg0KPiArSWYgVU1EIGhhcyBvdmVyLWNvbW1pdHRlZCBhIG1lbW9yeSByZXNvdXJj ZSwgYW4gLUVOT1NQQyBlcnJvciB3aWxsIGJlDQo+ICtyZXR1cm5lZCwgYW5kIFVNRCBtYXkgdGhl biB1bmJpbmQgcmVzb3VyY2VzIHRoYXQgYXJlIG5vdCB1c2VkIGF0IHRoZQ0KPiArbW9tZW50IGFu ZCByZXJ1biB0aGUgSU9DVEwuIE9uIC1FSU5UUiwgVU1EIHNob3VsZCBzaW1wbHkgcmVydW4gdGhl DQo+ICtJT0NUTCBhbmQgb24gLUVOT01FTSB1c2VyLXNwYWNlIG1heSBlaXRoZXIgYXR0ZW1wdCB0 byBmcmVlIGtub3duDQo+ICtzeXN0ZW0gbWVtb3J5IHJlc291cmNlcyBvciBmYWlsLiBJbiBjYXNl IG9mIFVNRCBkZWNpZGluZyB0byBmYWlsIGENCj4gK2JpbmQgb3BlcmF0aW9uLCBkdWUgdG8gYW4g ZXJyb3IgcmV0dXJuLCBubyBhZGRpdGlvbmFsIGFjdGlvbiBpcyBuZWVkZWQNCj4gK3RvIGNsZWFu IHVwIHRoZSBmYWlsZWQgb3BlcmF0aW9uLCBhbmQgdGhlIFZNIGlzIGxlZnQgaW4gdGhlIHNhbWUg c3RhdGUNCj4gK2FzIGl0IHdhcyBiZWZvcmUgdGhlIGZhaWxpbmcgSU9DVEwuDQo+ICtVbmJpbmQg b3BlcmF0aW9ucyBhcmUgZ3VhcmFudGVlZCBub3QgdG8gcmV0dXJuIGFueSBlcnJvcnMgZHVlIHRv DQo+ICtyZXNvdXJjZSBjb25zdHJhaW50cywgYnV0IG1heSByZXR1cm4gZXJyb3JzIGR1ZSB0bywg Zm9yIGV4YW1wbGUsDQo+ICtpbnZhbGlkIGFyZ3VtZW50cyBvciB0aGUgZ3B1X3ZtIGJlaW5nIGJh bm5lZC4NCj4gK0luIHRoZSBjYXNlIGFuIHVuZXhwZWN0ZWQgZXJyb3IgaGFwcGVucyBkdXJpbmcg dGhlIGFzeW5jaHJvbm91cyBiaW5kDQo+ICtwcm9jZXNzLCB0aGUgZ3B1X3ZtIHdpbGwgYmUgYmFu bmVkLCBhbmQgYXR0ZW1wdHMgdG8gdXNlIGl0IGFmdGVyIGJhbm5pbmcNCj4gK3dpbGwgcmV0dXJu IC1FTk9FTlQuDQo+ICsNCj4gK0V4YW1wbGU6IFRoZSBYZSBWTV9CSU5EIHVBUEkNCj4gKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCj4gKw0KPiArU3RhcnRpbmcgd2l0aCB0aGUgVk1fQklO RCBvcGVyYXRpb24gc3RydWN0LCB0aGUgSU9DVEwgY2FsbCBjYW4gdGFrZQ0KPiAremVybywgb25l IG9yIG1hbnkgc3VjaCBvcGVyYXRpb25zLiBBIHplcm8gbnVtYmVyIG1lYW5zIG9ubHkgdGhlDQo+ ICtzeW5jaHJvbml6YXRpb24gcGFydCBvZiB0aGUgSU9DVEwgaXMgY2FycmllZCBvdXQ6IGFuIGFz eW5jaHJvbm91cw0KPiArVk1fQklORCB1cGRhdGVzIHRoZSBzeW5jb2JqZWN0cywgd2hlcmVhcyBh IHN5bmMgVk1fQklORCB3YWl0cyBmb3IgdGhlDQo+ICtpbXBsaWNpdCBkZXBlbmRlbmNpZXMgdG8g YmUgZnVsZmlsbGVkLg0KPiArDQo+ICsuLiBjb2RlLWJsb2NrOjogYw0KPiArDQo+ICsgICBzdHJ1 Y3QgZHJtX3hlX3ZtX2JpbmRfb3Agew0KPiArCS8qKg0KPiArCSAqIEBvYmo6IEdFTSBvYmplY3Qg dG8gb3BlcmF0ZSBvbiwgTUJaIGZvciBNQVBfVVNFUlBUUiwgTUJaIGZvciBVTk1BUA0KPiArCSAq Lw0KPiArCV9fdTMyIG9iajsNCj4gKw0KPiArCS8qKiBAcGFkOiBNQlogKi8NCj4gKwlfX3UzMiBw YWQ7DQo+ICsNCj4gKwl1bmlvbiB7DQo+ICsJCS8qKg0KPiArCQkgKiBAb2JqX29mZnNldDogT2Zm c2V0IGludG8gdGhlIG9iamVjdCBmb3IgTUFQLg0KPiArCQkgKi8NCj4gKwkJX191NjQgb2JqX29m ZnNldDsNCj4gKw0KPiArCQkvKiogQHVzZXJwdHI6IHVzZXIgdmlydHVhbCBhZGRyZXNzIGZvciBN QVBfVVNFUlBUUiAqLw0KPiArCQlfX3U2NCB1c2VycHRyOw0KPiArCX07DQo+ICsNCj4gKwkvKioN Cj4gKwkgKiBAcmFuZ2U6IE51bWJlciBvZiBieXRlcyBmcm9tIHRoZSBvYmplY3QgdG8gYmluZCB0 byBhZGRyLCBNQlogZm9yIFVOTUFQX0FMTA0KPiArCSAqLw0KPiArCV9fdTY0IHJhbmdlOw0KPiAr DQo+ICsJLyoqIEBhZGRyOiBBZGRyZXNzIHRvIG9wZXJhdGUgb24sIE1CWiBmb3IgVU5NQVBfQUxM ICovDQo+ICsJX191NjQgYWRkcjsNCj4gKw0KPiArCS8qKg0KPiArCSAqIEB0aWxlX21hc2s6IE1h c2sgZm9yIHdoaWNoIHRpbGVzIHRvIGNyZWF0ZSBiaW5kcyBmb3IsIDAgPT0gQWxsIHRpbGVzLA0K PiArCSAqIG9ubHkgYXBwbGllcyB0byBjcmVhdGluZyBuZXcgVk1Bcw0KPiArCSAqLw0KPiArCV9f dTY0IHRpbGVfbWFzazsNCj4gKw0KPiArICAgICAgIC8qIE1hcCAocGFydHMgb2YpIGFuIG9iamVj dCBpbnRvIHRoZSBHUFUgdmlydHVhbCBhZGRyZXNzIHJhbmdlLg0KPiArICAgICNkZWZpbmUgWEVf Vk1fQklORF9PUF9NQVAJCTB4MA0KPiArICAgICAgICAvKiBVbm1hcCBhIEdQVSB2aXJ0dWFsIGFk ZHJlc3MgcmFuZ2UgKi8NCj4gKyAgICAjZGVmaW5lIFhFX1ZNX0JJTkRfT1BfVU5NQVAJCTB4MQ0K PiArICAgICAgICAvKg0KPiArCSAqIE1hcCBhIENQVSB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UgaW50 byBhIEdQVSB2aXJ0dWFsDQo+ICsJICogYWRkcmVzcyByYW5nZS4NCj4gKwkgKi8NCj4gKyAgICAj ZGVmaW5lIFhFX1ZNX0JJTkRfT1BfTUFQX1VTRVJQVFIJMHgyDQo+ICsgICAgICAgIC8qIFVubWFw IGEgZ2VtIG9iamVjdCBmcm9tIHRoZSBWTS4gKi8NCj4gKyAgICAjZGVmaW5lIFhFX1ZNX0JJTkRf T1BfVU5NQVBfQUxMCTB4Mw0KPiArICAgICAgICAvKg0KPiArCSAqIE1ha2UgdGhlIGJhY2tpbmcg bWVtb3J5IG9mIGFuIGFkZHJlc3MgcmFuZ2UgcmVzaWRlbnQgaWYNCj4gKwkgKiBwb3NzaWJsZS4g Tm90ZSB0aGF0IHRoaXMgZG9lc24ndCBwaW4gYmFja2luZyBtZW1vcnkuDQo+ICsJICovDQo+ICsg ICAgI2RlZmluZSBYRV9WTV9CSU5EX09QX1BSRUZFVENICTB4NA0KPiArDQo+ICsgICAgICAgIC8q IE1ha2UgdGhlIEdQVSBtYXAgcmVhZG9ubHkuICovDQo+ICsgICAgI2RlZmluZSBYRV9WTV9CSU5E X0ZMQUdfUkVBRE9OTFkJKDB4MSA8PCAxNikNCj4gKwkvKg0KPiArCSAqIFZhbGlkIG9uIGEgZmF1 bHRpbmcgVk0gb25seSwgZG8gdGhlIE1BUCBvcGVyYXRpb24gaW1tZWRpYXRlbHkgcmF0aGVyDQo+ ICsJICogdGhhbiBkZWZlcnJpbmcgdGhlIE1BUCB0byB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyLg0K PiArCSAqLw0KPiArICAgICNkZWZpbmUgWEVfVk1fQklORF9GTEFHX0lNTUVESUFURQkoMHgxIDw8 IDE3KQ0KPiArCS8qDQo+ICsJICogV2hlbiB0aGUgTlVMTCBmbGFnIGlzIHNldCwgdGhlIHBhZ2Ug dGFibGVzIGFyZSBzZXR1cCB3aXRoIGEgc3BlY2lhbA0KPiArCSAqIGJpdCB3aGljaCBpbmRpY2F0 ZXMgd3JpdGVzIGFyZSBkcm9wcGVkIGFuZCBhbGwgcmVhZHMgcmV0dXJuIHplcm8uICBJbg0KPiAr CSAqIHRoZSBmdXR1cmUsIHRoZSBOVUxMIGZsYWdzIHdpbGwgb25seSBiZSB2YWxpZCBmb3IgWEVf Vk1fQklORF9PUF9NQVANCj4gKwkgKiBvcGVyYXRpb25zLCB0aGUgQk8gaGFuZGxlIE1CWiwgYW5k IHRoZSBCTyBvZmZzZXQgTUJaLiBUaGlzIGZsYWcgaXMNCj4gKwkgKiBpbnRlbmRlZCB0byBpbXBs ZW1lbnQgVksgc3BhcnNlIGJpbmRpbmdzLg0KPiArCSAqLw0KPiArICAgICNkZWZpbmUgWEVfVk1f QklORF9GTEFHX05VTEwJKDB4MSA8PCAxOCkNCj4gKwkvKiogQG9wOiBPcGVyYXRpb24gdG8gcGVy Zm9ybSAobG93ZXIgMTYgYml0cykgYW5kIGZsYWdzICh1cHBlciAxNiBiaXRzKSAqLw0KPiArCV9f dTMyIG9wOw0KPiArDQo+ICsJLyoqIEBtZW1fcmVnaW9uOiBNZW1vcnkgcmVnaW9uIHRvIHByZWZl dGNoIFZNQSB0bywgaW5zdGFuY2Ugbm90IGEgbWFzayAqLw0KPiArCV9fdTMyIHJlZ2lvbjsNCj4g Kw0KPiArCS8qKiBAcmVzZXJ2ZWQ6IFJlc2VydmVkICovDQo+ICsJX191NjQgcmVzZXJ2ZWRbMl07 DQo+ICsgICB9Ow0KPiArDQo+ICsNCj4gK1RoZSBWTV9CSU5EIElPQ1RMIGFyZ3VtZW50IGl0c2Vs ZiwgbG9va3MgbGlrZSBmb2xsb3dzLiBOb3RlIHRoYXQgZm9yDQo+ICtzeW5jaHJvbm91cyBWTV9C SU5ELCB0aGUgbnVtX3N5bmNzIGFuZCBzeW5jcyBmaWVsZHMgbXVzdCBiZSB6ZXJvLiBIZXJlDQo+ ICt0aGUgYGBleGVjX3F1ZXVlX2lkYGAgZmllbGQgaXMgdGhlIFZNX0JJTkQgY29udGV4dCBkaXNj dXNzZWQgcHJldmlvdXNseQ0KPiArdGhhdCBpcyB1c2VkIHRvIGZhY2lsaXRhdGUgb3V0LW9mLW9y ZGVyIFZNX0JJTkRzLg0KPiArDQo+ICsuLiBjb2RlLWJsb2NrOjogYw0KPiArDQo+ICsgICAgc3Ry dWN0IGRybV94ZV92bV9iaW5kIHsNCj4gKwkvKiogQGV4dGVuc2lvbnM6IFBvaW50ZXIgdG8gdGhl IGZpcnN0IGV4dGVuc2lvbiBzdHJ1Y3QsIGlmIGFueSAqLw0KPiArCV9fdTY0IGV4dGVuc2lvbnM7 DQo+ICsNCj4gKwkvKiogQHZtX2lkOiBUaGUgSUQgb2YgdGhlIFZNIHRvIGJpbmQgdG8gKi8NCj4g KwlfX3UzMiB2bV9pZDsNCj4gKw0KPiArCS8qKg0KPiArCSAqIEBleGVjX3F1ZXVlX2lkOiBleGVj X3F1ZXVlX2lkLCBtdXN0IGJlIG9mIGNsYXNzIERSTV9YRV9FTkdJTkVfQ0xBU1NfVk1fQklORA0K PiArCSAqIGFuZCBleGVjIHF1ZXVlIG11c3QgaGF2ZSBzYW1lIHZtX2lkLiBJZiB6ZXJvLCB0aGUg ZGVmYXVsdCBWTSBiaW5kIGVuZ2luZQ0KPiArCSAqIGlzIHVzZWQuDQo+ICsJICovDQo+ICsJX191 MzIgZXhlY19xdWV1ZV9pZDsNCj4gKw0KPiArCS8qKiBAbnVtX2JpbmRzOiBudW1iZXIgb2YgYmlu ZHMgaW4gdGhpcyBJT0NUTCAqLw0KPiArCV9fdTMyIG51bV9iaW5kczsNCj4gKw0KPiArICAgICAg ICAvKiBJZiBzZXQsIHBlcmZvcm0gYW4gYXN5bmMgVk1fQklORCwgaWYgY2xlYXIgYSBzeW5jIFZN X0JJTkQgKi8NCj4gKyAgICAjZGVmaW5lIFhFX1ZNX0JJTkRfSU9DVExfRkxBR19BU1lOQwkoMHgx IDw8IDApDQo+ICsNCj4gKwkvKiogQGZsYWc6IEZsYWdzIGNvbnRyb2xsaW5nIGFsbCBvcGVyYXRp b25zIGluIHRoaXMgaW9jdGwuICovDQo+ICsJX191MzIgZmxhZ3M7DQo+ICsNCj4gKwl1bmlvbiB7 DQo+ICsJCS8qKiBAYmluZDogdXNlZCBpZiBudW1fYmluZHMgPT0gMSAqLw0KPiArCQlzdHJ1Y3Qg ZHJtX3hlX3ZtX2JpbmRfb3AgYmluZDsNCj4gKw0KPiArCQkvKioNCj4gKwkJICogQHZlY3Rvcl9v Zl9iaW5kczogdXNlcnB0ciB0byBhcnJheSBvZiBzdHJ1Y3QNCj4gKwkJICogZHJtX3hlX3ZtX2Jp bmRfb3AgaWYgbnVtX2JpbmRzID4gMQ0KPiArCQkgKi8NCj4gKwkJX191NjQgdmVjdG9yX29mX2Jp bmRzOw0KPiArCX07DQo+ICsNCj4gKwkvKiogQG51bV9zeW5jczogYW1vdW50IG9mIHN5bmNzIHRv IHdhaXQgZm9yIG9yIHRvIHNpZ25hbCBvbiBjb21wbGV0aW9uLiAqLw0KPiArCV9fdTMyIG51bV9z eW5jczsNCj4gKw0KPiArCS8qKiBAcGFkMjogTUJaICovDQo+ICsJX191MzIgcGFkMjsNCj4gKw0K PiArCS8qKiBAc3luY3M6IHBvaW50ZXIgdG8gc3RydWN0IGRybV94ZV9zeW5jIGFycmF5ICovDQo+ ICsJX191NjQgc3luY3M7DQo+ICsNCj4gKwkvKiogQHJlc2VydmVkOiBSZXNlcnZlZCAqLw0KPiAr CV9fdTY0IHJlc2VydmVkWzJdOw0KPiArICAgIH07DQo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2dwdS9pbXBsZW1lbnRhdGlvbl9ndWlkZWxpbmVzLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1 L2ltcGxlbWVudGF0aW9uX2d1aWRlbGluZXMucnN0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uMTM4ZTYzN2RjYzZiDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvRG9jdW1lbnRhdGlvbi9ncHUvaW1wbGVtZW50YXRpb25fZ3VpZGVsaW5lcy5yc3QNCj4gQEAg LTAsMCArMSw5IEBADQo+ICsuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjArIE9S IE1JVCkNCj4gKw0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gK01pc2MgRFJNIGRyaXZlciB1QVBJLSBhbmQgZmVhdHVyZSBp bXBsZW1lbnRhdGlvbiBndWlkZWxpbmVzDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArDQo+ICsuLiB0b2N0cmVlOjoNCj4g Kw0KPiArICAgZHJtLXZtLWJpbmQtYXN5bmMNCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v Z3B1L2luZGV4LnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2luZGV4LnJzdA0KPiBpbmRleCBlNDVm ZjA5MTUyNDYuLjM3ZTM4M2NjZjczZiAxMDA2NDQNCj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUv aW5kZXgucnN0DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2luZGV4LnJzdA0KPiBAQCAtMTgs NiArMTgsNyBAQCBHUFUgRHJpdmVyIERldmVsb3BlcidzIEd1aWRlDQo+ICAgICB2Z2Etc3dpdGNo ZXJvbw0KPiAgICAgdmdhYXJiaXRlcg0KPiAgICAgYXV0b21hdGVkX3Rlc3RpbmcNCj4gKyAgIGlt cGxlbWVudGF0aW9uX2d1aWRlbGluZXMNCj4gICAgIHRvZG8NCj4gICAgIHJmYy9pbmRleA0KPiAg DQo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9yZmMveGUucnN0IGIvRG9jdW1lbnRh dGlvbi9ncHUvcmZjL3hlLnJzdA0KPiBpbmRleCBiNjdmOGU2YTE4MjUuLmMyOTExM2EwYWMzMCAx MDA2NDQNCj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL3hlLnJzdA0KPiArKysgYi9Eb2N1 bWVudGF0aW9uL2dwdS9yZmMveGUucnN0DQo+IEBAIC05Nyw4ICs5Nyw4IEBAIG1lbW9yeSBmZW5j ZXMuIElkZWFsbHkgd2l0aCBoZWxwZXIgc3VwcG9ydCBzbyBwZW9wbGUgZG9uJ3QgZ2V0IGl0IHdy b25nIGluIGFsbA0KPiAgcG9zc2libGUgd2F5cy4NCj4gIA0KPiAgQXMgYSBrZXkgbWVhc3VyYWJs ZSByZXN1bHQsIHRoZSBiZW5lZml0cyBvZiBBU1lOQyBWTV9CSU5EIGFuZCBhIGRpc2N1c3Npb24g b2YNCj4gLXZhcmlvdXMgZmxhdm9ycywgZXJyb3IgaGFuZGxpbmcgYW5kIGEgc2FtcGxlIEFQSSBz aG91bGQgYmUgZG9jdW1lbnRlZCBoZXJlIG9yIGluDQo+IC1hIHNlcGFyYXRlIGRvY3VtZW50IHBv aW50ZWQgdG8gYnkgdGhpcyBkb2N1bWVudC4NCj4gK3ZhcmlvdXMgZmxhdm9ycywgZXJyb3IgaGFu ZGxpbmcgYW5kIHNhbXBsZSBBUEkgc3VnZ2VzdGlvbnMgYXJlIGRvY3VtZW50ZWQgaW4NCj4gKzpk b2M6YFRoZSBBU1lOQyBWTV9CSU5EIGRvY3VtZW50IDwvZ3B1L2RybS12bS1iaW5kLWFzeW5jPmAu DQo+ICANCj4gIFVzZXJwdHIgaW50ZWdyYXRpb24gYW5kIHZtX2JpbmQNCj4gIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K