From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web08.29591.1632739072707804708 for ; Mon, 27 Sep 2021 03:37:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=YTawSTjB; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: star.zeng@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10119"; a="204603070" X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="204603070" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 03:37:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="486112203" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP; 27 Sep 2021 03:37:37 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 03:37:37 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 03:37:36 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 27 Sep 2021 03:37:36 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 27 Sep 2021 03:37:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UNhU7QoNzD/zikc/XOMRo4nlPn6T8cFSdZI1QZV9XBM1WXX6pHiP4MhBRZuyCXgzSEoRcpoX4ywFsgnFYMIz97W/pa2tk7y2yZjAdKe0SimQ4Sd0AmAcVUluaJkgJ/ZSKuIJWN1U4YcNrUsvdAQKy9vtnKj5tXidOZcoRRuniGUzZUyIity/MiEgMNP5ddFwfmYG4O8pvdXspZao5OWtSUZyf1VMOoPwU3C6ge80qRe696aqUb1QL/i95J0qIJfkri2QynMz8+6/OrX8baq8Asrspj6f0XR366C/wVxITmvWhPVyc2drUJrtw8jALjiGKRykxYfcyNsPhrBBBlhH8w== 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; bh=B7yA1+wIQaJMQ/R1sr2hJTBtuYwkU/aMh1YMLTj+7a4=; b=iVExy9qEMX1gcx2jdDpR/feWIy62c/v0cbRQgM8o6NkgQeJrowtVKemtQ1B3A8whbLEWEEYOmBmJAYAJDjGFZYHtx1iVXjNwlG7EbtzJic6oSbF2Q5YZsfh3cMKiQtxZ0Ohxfq/K/5dArCjXWrWfzw6SdKX5GakWzDXoakjaRRkQrg7NgTHTbAQlzWDuV8GwpMc18/SBZG6v/fysVmd3L1ahRJHuaPj1529NRpMJcOSA/hldjUo9O+NvoikOqbgzgJBLOwTjyYodW1kuEpgGCLBTdESDUZPeI2vqdVU+rya5JG+XYSw+yd5Xn0w0IT+POt6dfwRbkHXy/TCRgqXasg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B7yA1+wIQaJMQ/R1sr2hJTBtuYwkU/aMh1YMLTj+7a4=; b=YTawSTjB+2YitqeH0XTQioFqwI7NtJvl0OfrBu3Ql3onSck0GM84Me2Ioopqakj4sqQcyR8QNpk6nNLj5x1R8ex5CSPytwS/Tktwu8cSpIcK+CXKri3+lnMSa0pC5AYBzkGzNhW8BpuU9eVXKfAKk0CQkTv1yFHjLKhaAtSV7cc= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM5PR11MB1322.namprd11.prod.outlook.com (2603:10b6:3:d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.19; Mon, 27 Sep 2021 10:37:34 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::dd12:1911:3b44:25b4]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::dd12:1911:3b44:25b4%4]) with mapi id 15.20.4544.021; Mon, 27 Sep 2021 10:37:34 +0000 From: "Zeng, Star" To: "devel@edk2.groups.io" , "Zeng, Star" , "S, Ashraf Ali" , "Chiu, Chasel" CC: "Desimone, Nathaniel L" , "Kuo, Ted" , "Duggapu, Chinni B" , "Chaganty, Rangasai V" , "Solanki, Digant H" , "V, Sangeetha" , "Ni, Ray" , "Zeng, Star" Subject: Re: [edk2-devel] [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Topic: [edk2-devel] [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Index: AQHXsTlTJ6fjWxdzhUigwLgljBZrPau3Fl+AgAB9PxCAABsmAIAAAbTggAAES2A= Date: Mon, 27 Sep 2021 10:37:34 +0000 Message-ID: References: <16A8A77591607F71.12372@groups.io> In-Reply-To: <16A8A77591607F71.12372@groups.io> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b5df62d2-4f26-4dfe-6195-08d981a2d155 x-ms-traffictypediagnostic: DM5PR11MB1322: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2089; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6Va6bx0nIvHrkdCSfK0Q4Pv/r6cTz5Kh9DlyzIyD+gHMHhL1HfcC9LPVtzqz3Xs2bWU78X6bI+GYXRADRVjeTzJZAaU6F/yiQvghQT0Zw/0nv4fy7aw9+w91w70XRwPKH7nH+TI+EqFuE7dfcTHwFgDP+271iM/j/VGa6f16wwSXLSaE6WJNpa6O8x287yI1pCDvx2FggXXtymoC0uA5UVhXaejXhEWx8kJHd4RuIAUc4pxl3j0HwTIvopN22Kv6kvvzZumohc1NQ+ZRqx1gsD7fsoiLv6E+kunK3xTm4TX/d8gzsYxbn30wnDzPfQI1Poyxvv83ZEcu7Q580FA/Y7ajPIS0wMT2VEwdMRHZ1tiWweVx3QkLsPzXeaC7qUY+qLxbXj0o1UEkkw/n8eRdZFLKgiSWi9fqv+l3RWun3WszIz7ZMJG+zw4ExdlXhKoRajqMUwAqsmXjxlJBE0DukOo3XqGzp8rIzYxQDcYDOgx6GXvJJGoITfsG6vHdgKG72Y4EcU1Y1owaOGs8TYbVAhccHY+V1IQhaunc3pSPXg7/UdtVhFxxFokViMinCCaXO/aO9IpUWDErOrCOnoE4Nj8K0HK1qaCs4e99St0eCSJUAMRB0kgwUh2njbX/xhnzQS8wUGi0TIa/gy3WALAoeVf1/jZyqbRQD8wgalpmEmGWBRLdR2/W+Cd0evK9SgNWSSGh2oqQHUozyTHMmQ/JXukUvjrBq6PyHXseOtcZf0wrudxhP6Vvf9NtxeORLsl8R4gSuRanV+c1IELE8kD+tzkOPXayZku0HOyZnyU0+t5UpqKiitl+mB6ahvRtlc1whBC+hFrJm3VKw6fWmmHnrw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(316002)(71200400001)(38070700005)(76116006)(66446008)(64756008)(66556008)(66476007)(66946007)(19627235002)(6636002)(33656002)(2906002)(4326008)(186003)(26005)(110136005)(54906003)(107886003)(9686003)(5660300002)(7696005)(52536014)(53546011)(8936002)(6506007)(86362001)(30864003)(508600001)(83380400001)(8676002)(38100700002)(55016002)(966005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YXF4eS9nKzBKTUVyREl1U0JCc2VQMVppVnE3dlRuRERtWGtMQjliK2ExOU5W?= =?utf-8?B?TGNqSUhBWUlLTndEb3VjSHBxbW9CRlFKS0tZQ2UrOWs2ZVhvVzdZYUN4UnJH?= =?utf-8?B?NWlWTXQrM1UyRmhmN2pPeisyZkF4Q0U5RkxaM1ovei9yUXhnN1drMmxmV1pH?= =?utf-8?B?Qk82d1gvNjdIVmNvR2ZVZmR4SEY3aVVETkozZGxEanZ1R2xNeERzVDA0Q1Vl?= =?utf-8?B?b3RYcXUxd3pWVEZDRFN5Sk5VQ2lLZ1VuUnk4OHBHQ08xS1JCUW11QVdBRi9v?= =?utf-8?B?WUU1emoyK3MwNGJtRHdwWTJIdFZOaHB4cE4xQkJMb1k1UzE0WEw0Q1R6anZ2?= =?utf-8?B?Zm54TnNNaW1kSDZwc2x5eGl6VGpkSlM2bVJzbzdCLzlicytiZ0dCNWhVeUJj?= =?utf-8?B?WGxsOTFwVzZ5MEczenprVnkxMWpsT29BQk9ZaDlSbHIxUk9aSlhDOHlqU3ZC?= =?utf-8?B?Y1RPWnRyQ1hGaDdJK0t4dUFZTy9nQlJta1dCODJld2EyUG9YVTIzdDhJbWNv?= =?utf-8?B?MTNmSmtCM2RRR1IxRlNhd0pvS05TRVdlQTh1UmRLQ3ptMTRkSWMyUjZyN0RP?= =?utf-8?B?cTliVkhJMktGaUdJSi9XMGQzczJwYURoZmJ5cHBVeUM1LzhXNWtYNTZDRFRi?= =?utf-8?B?QUtLbHlTNTJHWnYyVSttelFwMmZEMDA3LzltbloybUFqeHY2VW53Q0tzUnBn?= =?utf-8?B?MjhFR3RGelZrK0lLNmlJS2s4UjI1UjRuQzU2bUJTTXJjZ1hUR0ZMeVlnN0JI?= =?utf-8?B?K1lSU1YrVEhhRE02N0tSVjJUaWgxWTNtMUhBMkNnRGZibzQvOHAxOUl3T3FT?= =?utf-8?B?cTdJNEZYVU5jOUI5Zk9DZGFWdi8rSkNVa1NERHNuVEt2engyM1ZKY1l0UHZt?= =?utf-8?B?a3dVQmE4bVdqQ0tBZy80cWRGYVREb2g0Rkg5bXd6RmNuOHhGMjlsVEVlKzhM?= =?utf-8?B?SVhGWlgxZmMxQnRibGlCV05zS3ZPZlNsSFA0OGRTMjJNam5xNlU5dDNBekJJ?= =?utf-8?B?YVRHbzJNNDVHakRlcEtjMzBhWDNDME4yanh5Tnpza1dqeTZwaTd6N2FSU1Vo?= =?utf-8?B?T0F2Zm9senlxelhTRXQ5YWRNdmNYUnpRSnlHei9JVjk1RlF6V0RXTllxM3Zt?= =?utf-8?B?WWhTcWNrOHF4bGRXTldIM1NlVjJoa3JYYlVBOUdCZ3MzbGhwVk5ZVVZObnZL?= =?utf-8?B?RmlzWndYOUJFUG5URXhUM0VZT2piSUdrcFhxd0h2SWI4OExHZGdKR3V3RU9K?= =?utf-8?B?VDNKMUJFQnFsUEl6QnNiVVNhblhIbVVaZForUm1LMEtSZGgweEU3NVBqUkpJ?= =?utf-8?B?UHhlSk9SSTQyeDhTdUdvMmwrN2g3TjVpa2RWU3N5MzJ1ZGcyS2xKZTlPZUc4?= =?utf-8?B?OFhRaUZ4Y3poU0ppWUhkOVZYdnNORjQ2OU9XZmVYanRLaWd1eGRRUllVTnNK?= =?utf-8?B?M3V0T1VhdDB2VzQ0VVZXMmFueGNDR3lIN3ZMNGxHSTMwcDhMLzZhdmlzN05v?= =?utf-8?B?ZDBEdTV5SDFaY0FiL1BOa1V1elkwdU5ub1BYK0ZraGJJRUhSblFUNVdleUQ0?= =?utf-8?B?VWYyOVJLVDEyb0FpZFZOZXVFdzBHTUhDdW9pYnBqTU1wNGVzMDZqc0lEUStK?= =?utf-8?B?bHdmZmNEUEQzWDlYV0w2ZHc1QTU2UnVIbHNVUzFOVUl6T2JtVkZMdHZNeDli?= =?utf-8?B?dzdTZC93MFowam1LS2VjcVVMS1BKTWU2OUlzM1dSQnVkaVdEOWhCaXVNSk9J?= =?utf-8?Q?20MrRC3edl6lEbW+J0=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5df62d2-4f26-4dfe-6195-08d981a2d155 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2021 10:37:34.4945 (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: vTPOLPpfEYhnJFMdme5TWMV8vuYE1B3QLQg3+rnGNZnOGN80JYHPSkt6YvWe2Qro44ypKxhO5YQpLarXXwhtQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1322 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VHlwbyAiaWdub3JlZCIgdG8gIm5vdCBpZ25vcmVkIi4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mIFplbmcsIFN0YXINClNlbnQ6IDIwMjHlubQ55pyIMjfml6UgMTg6MzYNClRv OiBTLCBBc2hyYWYgQWxpIDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPjsgQ2hpdSwgQ2hhc2VsIDxj aGFzZWwuY2hpdUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6IERlc2ltb25l LCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgS3VvLCBUZWQg PHRlZC5rdW9AaW50ZWwuY29tPjsgRHVnZ2FwdSwgQ2hpbm5pIEIgPGNoaW5uaS5iLmR1Z2dhcHVA aW50ZWwuY29tPjsgQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50 ZWwuY29tPjsgU29sYW5raSwgRGlnYW50IEggPGRpZ2FudC5oLnNvbGFua2lAaW50ZWwuY29tPjsg ViwgU2FuZ2VldGhhIDxzYW5nZWV0aGEudkBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBb ZWRrMi1kZXZlbF0gW1BBVENIIHY3XSBJbnRlbEZzcDJXcmFwcGVyUGtnIDogRlNQTS9TIFVQRCBk YXRhIGFkZHJlc3MgYmFzZWQgb24gQnVpbGQgVHlwZQ0KDQpJZiBzb21lb25lIHNldHMgdGhlIFBD RCBQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCBhY2NpZGVudGFsbHksIGl0IGlzIGJldHRlciB0byBi ZSBjYXVnaHQgYnkgc29tZSB3YXkgYnV0IGlnbm9yZWQuDQoNCkJUVywgaWYgdGhlIGZ1bmN0aW9u IEdldEZzcG1VcGREYXRhQWRkcmVzcygpIGlzIGEgaW50ZXJuYWwgZnVuY3Rpb24gaW4gdGhlIG1v ZHVsZSwgbm8gRUZJQVBJIGlzIG5lZWRlZCBpbiB0aGUgZGVjbGFyYXRpb24uDQoNCkFuZCwgQENo aXUsIENoYXNlbCwgaXMgUGNkRnNwbVVwZERhdGFBZGRyZXNzIHN1cHBvc2VkIHRvIGJlIGFsd2F5 cyBjb25maWd1cmVkIHRvIGJlIER5bmFtaWMgdHlwZSBieSBwbGF0Zm9ybT8NCg0KSWYgeWVzLCBt YXliZSB3ZSBjYW4gaGF2ZSB0d28gaGVscCBmdW5jdGlvbnMgaW4gRnNwV3JhcHBlclBsYXRmb3Jt TGliIGxpa2UgYmVsb3cgYW5kIHJlbW92ZSAiUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc1BhdGNoYWJs ZUluTW9kdWxlIiBpbiBkZWMuIFBsYXRmb3JtIGNhbiB1c2UgU2V0RnNwbVVwZERhdGFBZGRyZXNz KCkgd2l0aG91dCBuZWVkIHRvIGJlIGF3YXJlIG9mIHRoZSBQQ0RzLg0KDQpVSU5UTg0KRUZJQVBJ DQpHZXRGc3BtVXBkRGF0YUFkZHJlc3MgKA0KICBWT0lEDQogICkNCnsNCiAgaWYgKFBjZEdldDY0 IChQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCkgIT0gMCkgew0KICAgIHJldHVybiAoVUlOVE4pIFBj ZEdldDY0IChQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCk7DQogIH0gZWxzZSB7DQogICAgcmV0dXJu IChVSU5UTikgUGNkR2V0MzIgKFBjZEZzcG1VcGREYXRhQWRkcmVzcyk7DQogIH0NCn0NCg0KVk9J RA0KRUZJQVBJDQpTZXRGc3BtVXBkRGF0YUFkZHJlc3MgKA0KICBJTiBVSU5UTiBBZGRyZXNzDQog ICkNCnsNCiAgaWYgKEFkZHJlc3MgPD0gTUFYX1VJTlQzMikgew0KICAgIFBjZFNldDMyUyAoUGNk RnNwbVVwZERhdGFBZGRyZXNzLCAoVUlOVDMyKSBBZGRyZXNzKTsNCiAgfSBlbHNlIHsNCiAgICBQ Y2RTZXQ2NFMgKFBjZEZzcG1VcGREYXRhQWRkcmVzczY0LCAoVUlOVDY0KSBBZGRyZXNzKTsNCiAg fQ0KfQ0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBTLCBBc2hyYWYgQWxp IDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPg0KU2VudDogMjAyMeW5tDnmnIgyN+aXpSAxODoxNg0K VG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBDaGl1LCBDaGFzZWwgPGNoYXNl bC5jaGl1QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogRGVzaW1vbmUsIE5h dGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVk Lmt1b0BpbnRlbC5jb20+OyBEdWdnYXB1LCBDaGlubmkgQiA8Y2hpbm5pLmIuZHVnZ2FwdUBpbnRl bC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5j b20+OyBTb2xhbmtpLCBEaWdhbnQgSCA8ZGlnYW50Lmguc29sYW5raUBpbnRlbC5jb20+OyBWLCBT YW5nZWV0aGEgPHNhbmdlZXRoYS52QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5j b20+DQpTdWJqZWN0OiBSRTogW1BBVENIIHY3XSBJbnRlbEZzcDJXcmFwcGVyUGtnIDogRlNQTS9T IFVQRCBkYXRhIGFkZHJlc3MgYmFzZWQgb24gQnVpbGQgVHlwZQ0KDQpIaS4sIEBaZW5nLCBTdGFy DQoNCkNyZWF0aW5nIGEgc2luZ2xlIGZ1bmN0aW9uIGlzIGRvYWJsZSwgYnV0IHRoZSBwcm9ibGVt IHdpdGggdGhhdCBpcyBJZiBzb21lb25lIHNldCB0aGUgUENEICBQY2RGc3BtVXBkRGF0YUFkZHJl c3M2NCBhY2NpZGVudGFsbHkgd2hpY2ggc2hvdWxkIGJlIGFwcGxpY2FibGUgb25seSBpbiBYNjQu IFNpbmNlIHRoZSBQQ0QgaGFzIHNvbWUganVuayB2YWx1ZSwgaXQgd2lsbCByZXR1cm4gdGhlIGZh bHNlIGRhdGEgaW4gSUEzMiBjYXNlLiBXaGljaCB3aWxsIGJyZWFrIGV2ZXJ5dGhpbmcgd2l0aCBy ZXNwZWN0IHRvIEZTUC1TL00uDQoNClRvIEF2b2lkIFN1Y2ggY2FzZXMgc2VwYXJhdGluZyB0aGUg SUEzMiB2cyBYNjQgaXMgbW9yZSBmZWFzaWJsZS4gQW5kIGVhc2lseSBkaWZmZXJlbnRpYXRpbmcg d2l0aCBJQTMyIGFuZCBYNjQuIA0KDQpSZWdhcmRzLA0KQXNocmFmIEFsaSBTDQpJbnRlbCBUZWNo bm9sb2d5IEluZGlhIFB2dC4gTHRkLsKgDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpG cm9tOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KU2VudDogTW9uZGF5LCBTZXB0 ZW1iZXIgMjcsIDIwMjEgMjoxNSBQTQ0KVG86IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50 ZWwuY29tPjsgUywgQXNocmFmIEFsaSA8YXNocmFmLmFsaS5zQGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvDQpDYzogRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNp bW9uZUBpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdWdnYXB1LCBD aGlubmkgQiA8Y2hpbm5pLmIuZHVnZ2FwdUBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkg ViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBTb2xhbmtpLCBEaWdhbnQgSCA8ZGln YW50Lmguc29sYW5raUBpbnRlbC5jb20+OyBWLCBTYW5nZWV0aGEgPHNhbmdlZXRoYS52QGludGVs LmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdA aW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtQQVRDSCB2N10gSW50ZWxGc3AyV3JhcHBlclBrZyA6 IEZTUE0vUyBVUEQgZGF0YSBhZGRyZXNzIGJhc2VkIG9uIEJ1aWxkIFR5cGUNCg0KQ3VyaW91czog SXQgZG9lcyBub3Qgd29yayB0byBoYXZlIG9uZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBsaWtl IGJlbG93Pw0KDQpVSU5UTg0KRUZJQVBJDQpHZXRGc3BtVXBkRGF0YUFkZHJlc3MgKA0KICBWT0lE DQogICkNCnsNCiAgaWYgKFBjZEdldDY0IChQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCkgIT0gMCkg ew0KICAgIHJldHVybiAoVUlOVE4pIFBjZEdldDY0IChQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCk7 DQogIH0gZWxzZSB7DQogICAgcmV0dXJuIChVSU5UTikgUGNkR2V0MzIgKFBjZEZzcG1VcGREYXRh QWRkcmVzcyk7DQogIH0NCn0NCg0KVGhhbmtzLA0KU3Rhcg0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KRnJvbTogQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQpTZW50 OiBNb25kYXksIFNlcHRlbWJlciAyNywgMjAyMSA5OjEwIEFNDQpUbzogUywgQXNocmFmIEFsaSA8 YXNocmFmLmFsaS5zQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogRGVzaW1v bmUsIE5hdGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBaZW5nLCBT dGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsg RHVnZ2FwdSwgQ2hpbm5pIEIgPGNoaW5uaS5iLmR1Z2dhcHVAaW50ZWwuY29tPjsgQ2hhZ2FudHks IFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgU29sYW5raSwgRGln YW50IEggPGRpZ2FudC5oLnNvbGFua2lAaW50ZWwuY29tPjsgViwgU2FuZ2VldGhhIDxzYW5nZWV0 aGEudkBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6 IFtQQVRDSCB2N10gSW50ZWxGc3AyV3JhcHBlclBrZyA6IEZTUE0vUyBVUEQgZGF0YSBhZGRyZXNz IGJhc2VkIG9uIEJ1aWxkIFR5cGUNCg0KDQpSZXZpZXdlZC1ieTogQ2hhc2VsIENoaXUgPGNoYXNl bC5jaGl1QGludGVsLmNvbT4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBTLCBBc2hyYWYgQWxpIDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXks IFNlcHRlbWJlciAyNCwgMjAyMSA3OjQzIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiBDYzogUywgQXNocmFmIEFsaSA8YXNocmFmLmFsaS5zQGludGVsLmNvbT47IENoaXUsIENoYXNl bCANCj4gPGNoYXNlbC5jaGl1QGludGVsLmNvbT47IERlc2ltb25lLCBOYXRoYW5pZWwgTCANCj4g PG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0Bp bnRlbC5jb20+OyANCj4gS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHVnZ2FwdSwgQ2hp bm5pIEIgDQo+IDxjaGlubmkuYi5kdWdnYXB1QGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNh aSBWIA0KPiA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBTb2xhbmtpLCBEaWdhbnQg SCANCj4gPGRpZ2FudC5oLnNvbGFua2lAaW50ZWwuY29tPjsgViwgU2FuZ2VldGhhIDxzYW5nZWV0 aGEudkBpbnRlbC5jb20+OyANCj4gTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU3ViamVj dDogW1BBVENIIHY3XSBJbnRlbEZzcDJXcmFwcGVyUGtnIDogRlNQTS9TIFVQRCBkYXRhIGFkZHJl c3MgDQo+IGJhc2VkIG9uIEJ1aWxkIFR5cGUNCj4gDQo+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDINCj4gd2hlbiB0aGUgbW9kdWxlIGlzIG5v dCBidWlsZGluZyBpbiBJQTMyIG1vZGUgd2hpY2ggd2lsbCBsZWFkIHRvIGJ1aWxkaW5nIGVycm9y Lg0KPiB3aGVuIGEgbW9kdWxlIGJ1aWx0LWluIFg2NCBmdW5jdGlvbiBwb2ludGVyIHdpbGwgYmUg dGhlIHNpemUgb2YgNjRiaXQgDQo+IHdpZHRoIHdoaWNoIGNhbm5vdCBiZSBmaXQgaW4gMzJiaXQg YWRkcmVzcyB3aGljaCB3aWxsIGxlYWQgdG8gZXJyb3IuDQo+IHRvIG92ZXJjb21lIHRoaXMgaXNz dWUgaW50cm9kdWNpbmcgdGhlIDIgbmV3IFBDRCdzIGZvciB0aGUgNjRiaXQgbW9kdWxlcyBjYW4g Y29uc3VtZSBpdC4NCj4gQ3JlYXRpbmcgdGhlIEFQSSdzIHRvIHN1cHBvcnQgZGlmZmVyZW50IGFy Y2hpdGVjdHVyZQ0KPiANCj4gQ2M6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+ DQo+IENjOiBOYXRlIERlU2ltb25lIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+ IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IENjOiBLdW8gVGVkIDx0ZWQu a3VvQGludGVsLmNvbT4NCj4gQ2M6IER1Z2dhcHUgQ2hpbm5pIEIgPGNoaW5uaS5iLmR1Z2dhcHVA aW50ZWwuY29tPg0KPiBDYzogUmFuZ2FzYWkgViBDaGFnYW50eSA8cmFuZ2FzYWkudi5jaGFnYW50 eUBpbnRlbC5jb20+DQo+IENjOiBEaWdhbnQgSCBTb2xhbmtpIDxkaWdhbnQuaC5zb2xhbmtpQGlu dGVsLmNvbT4NCj4gQ2M6IFNhbmdlZXRoYSBWIDxzYW5nZWV0aGEudkBpbnRlbC5jb20+DQo+IENj OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEFzaHJhZiBBbGkg UyA8YXNocmFmLmFsaS5zQGludGVsLmNvbT4NCj4gLS0tDQo+ICAuLi4vRnNwbVdyYXBwZXJQZWlt L0ZzcG1XcmFwcGVyUGVpbS5jICAgICAgICAgfCAxOSArKysrKysrKysrKy0tLQ0KPiAgLi4uL0Zz cG1XcmFwcGVyUGVpbS9Gc3BtV3JhcHBlclBlaW0uaW5mICAgICAgIHwgMTYgKysrKysrKysrKy0t DQo+ICAuLi4vRnNwbVdyYXBwZXJQZWltL0lBMzIvRnNwbUhlbHBlci5jICAgICAgICAgfCAyNiAr KysrKysrKysrKysrKysrKysrDQo+ICAuLi4vRnNwbVdyYXBwZXJQZWltL1g2NC9Gc3BtSGVscGVy LmMgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrDQo+ICAuLi4vRnNwc1dyYXBwZXJQ ZWltL0ZzcHNXcmFwcGVyUGVpbS5jICAgICAgICAgfCAxNyArKysrKysrKystLS0NCj4gIC4uLi9G c3BzV3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmluZiAgICAgICB8IDE0ICsrKysrKysrKy0N Cj4gIC4uLi9Gc3BzV3JhcHBlclBlaW0vSUEzMi9Gc3BzSGVscGVyLmMgICAgICAgICB8IDI2ICsr KysrKysrKysrKysrKysrKysNCj4gIC4uLi9Gc3BzV3JhcHBlclBlaW0vWDY0L0ZzcHNIZWxwZXIu YyAgICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysNCj4gIEludGVsRnNwMldyYXBwZXJQ a2cvSW50ZWxGc3AyV3JhcHBlclBrZy5kZWMgICB8ICAyICsrDQo+ICA5IGZpbGVzIGNoYW5nZWQs IDE2MiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlDQo+IDEwMDY0 NCBJbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9JQTMyL0ZzcG1IZWxwZXIuYw0K PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IEludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQ ZWltL1g2NC9Gc3BtSGVscGVyLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBJbnRlbEZzcDJX cmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9JQTMyL0ZzcHNIZWxwZXIuYw0KPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0DQo+IEludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL1g2NC9Gc3Bz SGVscGVyLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFw cGVyUGVpbS9Gc3BtV3JhcHBlclBlaW0uYw0KPiBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdy YXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jDQo+IGluZGV4IDI0YWI1MzQ2MjAuLjRhMTUxMzZj MzkgMTAwNjQ0DQo+IC0tLSBhL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0Zz cG1XcmFwcGVyUGVpbS5jDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQ ZWltL0ZzcG1XcmFwcGVyUGVpbS5jDQo+IEBAIC0zLDcgKzMsNyBAQA0KPiAgICByZWdpc3RlciBU ZW1wb3JhcnlSYW1Eb25lUHBpIHRvIGNhbGwgVGVtcFJhbUV4aXQgQVBJLCBhbmQgcmVnaXN0ZXIg DQo+IE1lbW9yeURpc2NvdmVyZWRQcGkNCj4gICAgbm90aWZ5IHRvIGNhbGwgRnNwU2lsaWNvbklu aXQgQVBJLg0KPiANCj4gLSAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMCwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgDQo+IHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAy MDE0IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ICsgcmVzZXJ2ZWQu PEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiANCj4gICoqLw0KPiBAQCAtMzksNiArMzksMTcgQEANCj4gDQo+ICBleHRlcm4gRUZJX0dVSUQg Z0ZzcEhvYkd1aWQ7DQo+IA0KPiArLyoqDQo+ICsgIEdldCB0aGUgRnNwbSBVcGQgRGF0YSBBZGRy ZXNzIGZyb20gdGhlIFBDRA0KPiArDQo+ICsgIEByZXR1cm4gRlNQTSBVUEQgRGF0YSBBZGRyZXNz DQo+ICsqKi8NCj4gK1VJTlRODQo+ICtFRklBUEkNCj4gK0dldEZzcG1VcGREYXRhQWRkcmVzcyAo DQo+ICsgIFZPSUQNCj4gKyAgKTsNCj4gKw0KPiAgLyoqDQo+ICAgIENhbGwgRnNwTWVtb3J5SW5p dCBBUEkuDQo+IA0KPiBAQCAtNTksNyArNzAsNyBAQCBQZWlGc3BNZW1vcnlJbml0ICgNCj4gDQo+ ICAgIERFQlVHICgoREVCVUdfSU5GTywgIlBlaUZzcE1lbW9yeUluaXQgZW50ZXJcbiIpKTsNCj4g DQo+IC0gIEZzcEhvYkxpc3RQdHIgPSBOVUxMOw0KPiArICBGc3BIb2JMaXN0UHRyICA9IE5VTEw7 DQo+ICAgIEZzcG1VcGREYXRhUHRyID0gTlVMTDsNCj4gDQo+ICAgIEZzcG1IZWFkZXJQdHIgPSAo RlNQX0lORk9fSEVBREVSICopIEZzcEZpbmRGc3BIZWFkZXIgKFBjZEdldDMyIA0KPiAoUGNkRnNw bUJhc2VBZGRyZXNzKSk7IEBAIC02OCw3ICs3OSw3IEBAIFBlaUZzcE1lbW9yeUluaXQgKA0KPiAg ICAgIHJldHVybiBFRklfREVWSUNFX0VSUk9SOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoUGNkR2V0 MzIgKFBjZEZzcG1VcGREYXRhQWRkcmVzcykgPT0gMCAmJiAoRnNwbUhlYWRlclB0ci0NCj4gPkNm Z1JlZ2lvblNpemUgIT0gMCkgJiYgKEZzcG1IZWFkZXJQdHItPkNmZ1JlZ2lvbk9mZnNldCAhPSAw KSkgew0KPiArICBpZiAoR2V0RnNwbVVwZERhdGFBZGRyZXNzICgpID09IDAgJiYgKEZzcG1IZWFk ZXJQdHItPkNmZ1JlZ2lvblNpemUgDQo+ICsgIT0NCj4gKyAwKSAmJiAoRnNwbUhlYWRlclB0ci0+ Q2ZnUmVnaW9uT2Zmc2V0ICE9IDApKSB7DQo+ICAgICAgLy8NCj4gICAgICAvLyBDb3B5IGRlZmF1 bHQgRlNQLU0gVVBEIGRhdGEgZnJvbSBGbGFzaA0KPiAgICAgIC8vDQo+IEBAIC04MCw3ICs5MSw3 IEBAIFBlaUZzcE1lbW9yeUluaXQgKA0KPiAgICAgIC8vDQo+ICAgICAgLy8gRXh0ZXJuYWwgVVBE IGlzIHJlYWR5LCBnZXQgdGhlIGJ1ZmZlciBmcm9tIFBDRCBwb2ludGVyLg0KPiAgICAgIC8vDQo+ IC0gICAgRnNwbVVwZERhdGFQdHIgPSAoRlNQTV9VUERfQ09NTU9OICopUGNkR2V0MzINCj4gKFBj ZEZzcG1VcGREYXRhQWRkcmVzcyk7DQo+ICsgICAgRnNwbVVwZERhdGFQdHIgPSAoRlNQTV9VUERf Q09NTU9OICopIEdldEZzcG1VcGREYXRhQWRkcmVzcyAoKTsNCj4gICAgICBBU1NFUlQgKEZzcG1V cGREYXRhUHRyICE9IE5VTEwpOw0KPiAgICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvSW50ZWxGc3Ay V3JhcHBlclBrZy9Gc3BtV3JhcHBlclBlaW0vRnNwbVdyYXBwZXJQZWltLmluZg0KPiBiL0ludGVs RnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5pbmYNCj4gaW5k ZXggMDAxNjZlNTZhMC4uNWI0YWQ1MzFlNyAxMDA2NDQNCj4gLS0tIGEvSW50ZWxGc3AyV3JhcHBl clBrZy9Gc3BtV3JhcHBlclBlaW0vRnNwbVdyYXBwZXJQZWltLmluZg0KPiArKysgYi9JbnRlbEZz cDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9Gc3BtV3JhcHBlclBlaW0uaW5mDQo+IEBAIC02 LDcgKzYsNyBAQA0KPiAgIyByZWdpc3RlciBUZW1wb3JhcnlSYW1Eb25lUHBpIHRvIGNhbGwgVGVt cFJhbUV4aXQgQVBJLCBhbmQgcmVnaXN0ZXIgDQo+IE1lbW9yeURpc2NvdmVyZWRQcGkgICMgbm90 aWZ5IHRvIGNhbGwgRnNwU2lsaWNvbkluaXQgQVBJLg0KPiAgIw0KPiAtIyAgQ29weXJpZ2h0IChj KSAyMDE0IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+IHJlc2VydmVk LjxCUj4NCj4gKyMgIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIA0KPiArcmVzZXJ2ZWQuPEJSPg0KPiAgIw0KPiAgIyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICMgQEAgLTQ1LDYgKzQ1LDcgQEANCj4g ICAgRnNwV3JhcHBlckFwaUxpYg0KPiAgICBGc3BXcmFwcGVyQXBpVGVzdExpYg0KPiAgICBGc3BN ZWFzdXJlbWVudExpYg0KPiArICBQY2RMaWINCj4gDQo+ICBbUGFja2FnZXNdDQo+ICAgIE1kZVBr Zy9NZGVQa2cuZGVjDQo+IEBAIC01NiwxNCArNTcsMjUgQEANCj4gDQo+ICBbUGNkXQ0KPiAgICBn SW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcG1CYXNlQWRkcmVzcyAgICAgICAj IyBDT05TVU1FUw0KPiAtICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcG1V cGREYXRhQWRkcmVzcyAgICAjIw0KPiBDT05TVU1FUw0KPiAgICBnSW50ZWxGc3AyV3JhcHBlclRv a2VuU3BhY2VHdWlkLlBjZEZzcE1vZGVTZWxlY3Rpb24gICAgICAjIyBDT05TVU1FUw0KPiAgICBn SW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcHRCYXNlQWRkcmVzcyAgICAgICAj IyBDT05TVU1FUw0KPiAgICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcE1l YXN1cmVtZW50Q29uZmlnICAjIyANCj4gQ09OU1VNRVMNCj4gDQo+ICtbUGNkLklBMzJdDQo+ICsg IGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwbVVwZERhdGFBZGRyZXNzICAg ICMjDQo+IENPTlNVTUVTDQo+ICsNCj4gK1tQY2QuWDY0XQ0KPiArICBnSW50ZWxGc3AyV3JhcHBl clRva2VuU3BhY2VHdWlkLlBjZEZzcG1VcGREYXRhQWRkcmVzczY0ICAjIw0KPiBDT05TVU1FUw0K PiArDQo+ICBbU291cmNlc10NCj4gICAgRnNwbVdyYXBwZXJQZWltLmMNCj4gDQo+ICtbU291cmNl cy5JQTMyXQ0KPiArICBJQTMyL0ZzcG1IZWxwZXIuYw0KPiArDQo+ICtbU291cmNlcy5YNjRdDQo+ ICsgIFg2NC9Gc3BtSGVscGVyLmMNCj4gKw0KPiAgW0d1aWRzXQ0KPiAgICBnRnNwSG9iR3VpZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTICMjIEhPQg0KPiAgICBnRnNwQXBp UGVyZm9ybWFuY2VHdWlkICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBH VUlEDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9J QTMyL0ZzcG1IZWxwZXIuYw0KPiBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWlt L0lBMzIvRnNwbUhlbHBlci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAuLmNhYjExMTczY2MNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9JbnRlbEZzcDJXcmFw cGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9JQTMyL0ZzcG1IZWxwZXIuYw0KPiBAQCAtMCwwICsxLDI2 IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgU2FtcGxlIHRvIHByb3ZpZGUgRlNQIHdyYXBwZXIgcmVs YXRlZCBmdW5jdGlvbi4NCj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIDIwMjEsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ICsNCj4gKw0KPiArI2lu Y2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9Gc3BXcmFwcGVy UGxhdGZvcm1MaWIuaD4gI2luY2x1ZGUgDQo+ICs8VWVmaS9VZWZpQmFzZVR5cGUuaD4NCj4gKw0K PiArLyoqDQo+ICsgIEdldCB0aGUgRnNwbSBVcGQgRGF0YSBBZGRyZXNzIGZyb20gdGhlIFBDRA0K PiArDQo+ICsgIEByZXR1cm4gRlNQTSBVUEQgRGF0YSBBZGRyZXNzDQo+ICsqKi8NCj4gK1VJTlRO DQo+ICtFRklBUEkNCj4gK0dldEZzcG1VcGREYXRhQWRkcmVzcyAoDQo+ICsgIFZPSUQNCj4gKyAg KQ0KPiArew0KPiArICByZXR1cm4gUGNkR2V0MzIgKFBjZEZzcG1VcGREYXRhQWRkcmVzcyk7IH0N Cj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL1g2NC9G c3BtSGVscGVyLmMNCj4gYi9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9YNjQv RnNwbUhlbHBlci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu LjI1Yjg5ZmYyZTENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9JbnRlbEZzcDJXcmFwcGVyUGtn L0ZzcG1XcmFwcGVyUGVpbS9YNjQvRnNwbUhlbHBlci5jDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4g Ky8qKiBAZmlsZQ0KPiArICBTYW1wbGUgdG8gcHJvdmlkZSBGU1Agd3JhcHBlciByZWxhdGVkIGZ1 bmN0aW9uLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArDQo+ICsjaW5jbHVkZSA8 TGlicmFyeS9QY2RMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0ZzcFdyYXBwZXJQbGF0Zm9y bUxpYi5oPiAjaW5jbHVkZSANCj4gKzxVZWZpL1VlZmlCYXNlVHlwZS5oPg0KPiArDQo+ICsvKioN Cj4gKyAgR2V0IHRoZSBGc3BtIFVwZCBEYXRhIEFkZHJlc3MgZnJvbSB0aGUgUENEDQo+ICsNCj4g KyAgQHJldHVybiBGU1BNIFVQRCBEYXRhIEFkZHJlc3MNCj4gKyoqLw0KPiArVUlOVE4NCj4gK0VG SUFQSQ0KPiArR2V0RnNwbVVwZERhdGFBZGRyZXNzICgNCj4gKyAgVk9JRA0KPiArICApDQo+ICt7 DQo+ICsgIHJldHVybiBQY2RHZXQ2NCAoUGNkRnNwbVVwZERhdGFBZGRyZXNzNjQpOyB9DQo+IGRp ZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9Gc3BzV3JhcHBl clBlaW0uYw0KPiBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFw cGVyUGVpbS5jDQo+IGluZGV4IDlkNGYyNzllODEuLjhiZDUxMDUwMmYgMTAwNjQ0DQo+IC0tLSBh L0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jDQo+ ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVp bS5jDQo+IEBAIC0zLDcgKzMsNyBAQA0KPiAgICByZWdpc3RlciBUZW1wb3JhcnlSYW1Eb25lUHBp IHRvIGNhbGwgVGVtcFJhbUV4aXQgQVBJLCBhbmQgcmVnaXN0ZXIgDQo+IE1lbW9yeURpc2NvdmVy ZWRQcGkNCj4gICAgbm90aWZ5IHRvIGNhbGwgRnNwU2lsaWNvbkluaXQgQVBJLg0KPiANCj4gLSAg Q29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg DQo+IHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMSwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gICoqLw0KPiBAQCAt NTgsNiArNTgsMTcgQEAgUzNFbmRPZlBlaU5vdGlmeSgNCj4gICAgSU4gVk9JRCAgICAgICAgICAg ICAgICAgICAgICAqUHBpDQo+ICAgICk7DQo+IA0KPiArLyoqDQo+ICsgIEdldCB0aGUgRnNwcyBV cGQgRGF0YSBBZGRyZXNzIGZyb20gdGhlIFBDRA0KPiArDQo+ICsgIEByZXR1cm4gRlNQUyBVUEQg RGF0YSBBZGRyZXNzDQo+ICsqKi8NCj4gK1VJTlRODQo+ICtFRklBUEkNCj4gK0dldEZzcHNVcGRE YXRhQWRkcmVzcyAoDQo+ICsgIFZPSUQNCj4gKyAgKTsNCj4gKw0KPiAgRUZJX1BFSV9OT1RJRllf REVTQ1JJUFRPUiBtUzNFbmRPZlBlaU5vdGlmeURlc2MgPSB7DQo+ICAgIChFRklfUEVJX1BQSV9E RVNDUklQVE9SX05PVElGWV9DQUxMQkFDSyB8IA0KPiBFRklfUEVJX1BQSV9ERVNDUklQVE9SX1RF Uk1JTkFURV9MSVNUKSwNCj4gICAgJmdFZmlFbmRPZlBlaVNpZ25hbFBwaUd1aWQsDQo+IEBAIC0y ODMsNyArMjk0LDcgQEAgUGVpTWVtb3J5RGlzY292ZXJlZE5vdGlmeSAoDQo+ICAgICAgcmV0dXJu IEVGSV9ERVZJQ0VfRVJST1I7DQo+ICAgIH0NCj4gDQo+IC0gIGlmIChQY2RHZXQzMiAoUGNkRnNw c1VwZERhdGFBZGRyZXNzKSA9PSAwICYmIChGc3BzSGVhZGVyUHRyLQ0KPiA+Q2ZnUmVnaW9uU2l6 ZSAhPSAwKSAmJiAoRnNwc0hlYWRlclB0ci0+Q2ZnUmVnaW9uT2Zmc2V0ICE9IDApKSB7DQo+ICsg IGlmIChHZXRGc3BzVXBkRGF0YUFkZHJlc3MgKCkgPT0gMCAmJiAoRnNwc0hlYWRlclB0ci0+Q2Zn UmVnaW9uU2l6ZSANCj4gKyAhPQ0KPiArIDApICYmIChGc3BzSGVhZGVyUHRyLT5DZmdSZWdpb25P ZmZzZXQgIT0gMCkpIHsNCj4gICAgICAvLw0KPiAgICAgIC8vIENvcHkgZGVmYXVsdCBGU1AtUyBV UEQgZGF0YSBmcm9tIEZsYXNoDQo+ICAgICAgLy8NCj4gQEAgLTI5Miw3ICszMDMsNyBAQCBQZWlN ZW1vcnlEaXNjb3ZlcmVkTm90aWZ5ICgNCj4gICAgICBTb3VyY2VEYXRhID0gKFVJTlROICopKChV SU5UTilGc3BzSGVhZGVyUHRyLT5JbWFnZUJhc2UgKyANCj4gKFVJTlROKUZzcHNIZWFkZXJQdHIt PkNmZ1JlZ2lvbk9mZnNldCk7DQo+ICAgICAgQ29weU1lbSAoRnNwc1VwZERhdGFQdHIsIFNvdXJj ZURhdGEsIChVSU5UTilGc3BzSGVhZGVyUHRyLQ0KPiA+Q2ZnUmVnaW9uU2l6ZSk7DQo+ICAgIH0g ZWxzZSB7DQo+IC0gICAgRnNwc1VwZERhdGFQdHIgPSAoRlNQU19VUERfQ09NTU9OICopUGNkR2V0 MzINCj4gKFBjZEZzcHNVcGREYXRhQWRkcmVzcyk7DQo+ICsgICAgRnNwc1VwZERhdGFQdHIgPSAo RlNQU19VUERfQ09NTU9OICopIEdldEZzcHNVcGREYXRhQWRkcmVzcyAoKTsNCj4gICAgICBBU1NF UlQgKEZzcHNVcGREYXRhUHRyICE9IE5VTEwpOw0KPiAgICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEv SW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmluZg0K PiBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5p bmYNCj4gaW5kZXggYWVlY2E1OGQ2ZC4uZTk4OGViYWIyMSAxMDA2NDQNCj4gLS0tIGEvSW50ZWxG c3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmluZg0KPiArKysg Yi9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9Gc3BzV3JhcHBlclBlaW0uaW5m DQo+IEBAIC00NSw2ICs0NSw3IEBADQo+ICAgIEZzcFdyYXBwZXJBcGlMaWINCj4gICAgRnNwV3Jh cHBlckFwaVRlc3RMaWINCj4gICAgRnNwTWVhc3VyZW1lbnRMaWINCj4gKyAgUGNkTGliDQo+IA0K PiAgW1BhY2thZ2VzXQ0KPiAgICBNZGVQa2cvTWRlUGtnLmRlYw0KPiBAQCAtNjUsMTAgKzY2LDE1 IEBADQo+IA0KPiAgW1BjZF0NCj4gICAgZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5Q Y2RGc3BzQmFzZUFkZHJlc3MgICAgICAgIyMgQ09OU1VNRVMNCj4gLSAgZ0ludGVsRnNwMldyYXBw ZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BzVXBkRGF0YUFkZHJlc3MgICAgIyMgQ09OU1VNRVMNCj4g ICAgZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BNb2RlU2VsZWN0aW9uICAg ICAgIyMgQ09OU1VNRVMNCj4gICAgZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5QY2RG c3BNZWFzdXJlbWVudENvbmZpZyAgIyMgDQo+IENPTlNVTUVTDQo+IA0KPiArW1BjZC5JQTMyXQ0K PiArICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcHNVcGREYXRhQWRkcmVz cyAgICAjIyBDT05TVU1FUw0KPiArDQo+ICtbUGNkLlg2NF0NCj4gKyAgZ0ludGVsRnNwMldyYXBw ZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BzVXBkRGF0YUFkZHJlc3M2NCAgIyMNCj4gQ09OU1VNRVMN Cj4gKw0KPiAgW0d1aWRzXQ0KPiAgICBnRnNwSG9iR3VpZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICMjIENPTlNVTUVTICMjIEhPQg0KPiAgICBnRnNwQXBpUGVyZm9ybWFuY2VHdWlkICAgICAg ICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlEDQo+IEBAIC03Niw1ICs4Miwx MSBAQA0KPiAgW1NvdXJjZXNdDQo+ICAgIEZzcHNXcmFwcGVyUGVpbS5jDQo+IA0KPiArW1NvdXJj ZXMuSUEzMl0NCj4gKyAgSUEzMi9Gc3BzSGVscGVyLmMNCj4gKw0KPiArW1NvdXJjZXMuWDY0XQ0K PiArICBYNjQvRnNwc0hlbHBlci5jDQo+ICsNCj4gIFtEZXBleF0NCj4gICAgZ0VmaVBlaU1lbW9y eURpc2NvdmVyZWRQcGlHdWlkDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0Zz cHNXcmFwcGVyUGVpbS9JQTMyL0ZzcHNIZWxwZXIuYw0KPiBiL0ludGVsRnNwMldyYXBwZXJQa2cv RnNwc1dyYXBwZXJQZWltL0lBMzIvRnNwc0hlbHBlci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMDAuLmM0YWUyOTJmZmINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysg Yi9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9JQTMyL0ZzcHNIZWxwZXIuYw0K PiBAQCAtMCwwICsxLDI2IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgU2FtcGxlIHRvIHByb3ZpZGUg RlNQIHdyYXBwZXIgcmVsYXRlZCBmdW5jdGlvbi4NCj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIDIw MjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKw0KPiArKiovDQo+ ICsNCj4gKw0KPiArI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ICsjaW5jbHVkZSA8TGli cmFyeS9Gc3BXcmFwcGVyUGxhdGZvcm1MaWIuaD4gI2luY2x1ZGUgDQo+ICs8VWVmaS9VZWZpQmFz ZVR5cGUuaD4NCj4gKw0KPiArLyoqDQo+ICsgIEdldCB0aGUgRnNwcyBVcGQgRGF0YSBBZGRyZXNz IGZyb20gdGhlIFBDRA0KPiArDQo+ICsgIEByZXR1cm4gRlNQUyBVUEQgRGF0YSBBZGRyZXNzDQo+ ICsqKi8NCj4gK1VJTlRODQo+ICtFRklBUEkNCj4gK0dldEZzcHNVcGREYXRhQWRkcmVzcyAoDQo+ ICsgIFZPSUQNCj4gKyAgKQ0KPiArew0KPiArICByZXR1cm4gUGNkR2V0MzIgKFBjZEZzcHNVcGRE YXRhQWRkcmVzcyk7IH0NCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dy YXBwZXJQZWltL1g2NC9Gc3BzSGVscGVyLmMNCj4gYi9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNX cmFwcGVyUGVpbS9YNjQvRnNwc0hlbHBlci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGlu ZGV4IDAwMDAwMDAwMDAuLmEwZDZhZGIyODENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9JbnRl bEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9YNjQvRnNwc0hlbHBlci5jDQo+IEBAIC0w LDAgKzEsMjYgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBTYW1wbGUgdG8gcHJvdmlkZSBGU1Agd3Jh cHBlciByZWxhdGVkIGZ1bmN0aW9uLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMSwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiAr DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Zz cFdyYXBwZXJQbGF0Zm9ybUxpYi5oPiAjaW5jbHVkZSANCj4gKzxVZWZpL1VlZmlCYXNlVHlwZS5o Pg0KPiArDQo+ICsvKioNCj4gKyAgR2V0IHRoZSBGc3BzIFVwZCBEYXRhIEFkZHJlc3MgZnJvbSB0 aGUgUENEDQo+ICsNCj4gKyAgQHJldHVybiBGU1BTIFVQRCBEYXRhIEFkZHJlc3MNCj4gKyoqLw0K PiArVUlOVE4NCj4gK0VGSUFQSQ0KPiArR2V0RnNwc1VwZERhdGFBZGRyZXNzICgNCj4gKyAgVk9J RA0KPiArICApDQo+ICt7DQo+ICsgIHJldHVybiBQY2RHZXQ2NCAoUGNkRnNwc1VwZERhdGFBZGRy ZXNzNjQpOyB9DQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ludGVsRnNwMldy YXBwZXJQa2cuZGVjDQo+IGIvSW50ZWxGc3AyV3JhcHBlclBrZy9JbnRlbEZzcDJXcmFwcGVyUGtn LmRlYw0KPiBpbmRleCBhM2I5MzYzNzc5Li44Yzk4ZGJkNTVkIDEwMDY0NA0KPiAtLS0gYS9JbnRl bEZzcDJXcmFwcGVyUGtnL0ludGVsRnNwMldyYXBwZXJQa2cuZGVjDQo+ICsrKyBiL0ludGVsRnNw MldyYXBwZXJQa2cvSW50ZWxGc3AyV3JhcHBlclBrZy5kZWMNCj4gQEAgLTEyMSwzICsxMjEsNSBA QA0KPiAgICAjDQo+IA0KPiBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcG1V cGREYXRhQWRkcmVzc3wweDAwMDAwMDAwfFVJTg0KPiBUMzJ8MHg1MDAwMDAwMA0KPiANCj4gZ0lu dGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BzVXBkRGF0YUFkZHJlc3N8MHgwMDAw MDAwMHxVSU5UDQo+IDMyfDB4NTAwMDAwMDENCj4gKw0KPiArDQo+IGdJbnRlbEZzcDJXcmFwcGVy VG9rZW5TcGFjZUd1aWQuUGNkRnNwbVVwZERhdGFBZGRyZXNzNjR8MHgwMDAwMDAwMHxVDQo+IElO DQo+ICsgVDY0fDB4NTAwMDAwMDINCj4gKw0KPiArDQo+IGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5T cGFjZUd1aWQuUGNkRnNwc1VwZERhdGFBZGRyZXNzNjR8MHgwMDAwMDAwMHxVSQ0KPiBODQo+ICsg VDY0fDB4NTAwMDAwMDMNCj4gLS0NCj4gMi4zMC4yLndpbmRvd3MuMQ0KDQoNCg0KDQoNCg0K