From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.6811.1642391303028436157 for ; Sun, 16 Jan 2022 19:48:23 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=EdRh+MgN; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: dandan.bi@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642391303; x=1673927303; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KHT4Sf1MEavHgtwbxw8bJo21rb2PE0584FAhoGDLePk=; b=EdRh+MgN2J28eELJ7dByaH2bNAwV/gE3vxxFkACp7lz4W4lytbo6iPiM OcllO82DEJk0nfmF48b2wcrEyt0s13gKe9zjAz3LchHNUqAb0kP4Wg7Qo NTjSl8OufbcBskkf3+KLFQLcgyvGsHFvZrVpsiJBEfprzlNpXcXwph79G pibeTwB+VCJ/vN40nrcsV6VyixaC0a/hZeeiriUpIQ30mnKiIK5Y/LlTJ vWiCvYFW4S7yHhAj0lX/Uq+uI2d5t9mJLVSoRxzjUUdRyffIZPOJN2Glg 7ibLTtRPBN5uen5t6dBn7U0nUFGLLoOMFe7+23ZpDMhCiVQNJWFCI6OhB Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10229"; a="330896451" X-IronPort-AV: E=Sophos;i="5.88,294,1635231600"; d="scan'208";a="330896451" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jan 2022 19:48:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,294,1635231600"; d="scan'208";a="692927441" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga005.jf.intel.com with ESMTP; 16 Jan 2022 19:48:22 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 16 Jan 2022 19:48:21 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 16 Jan 2022 19:48:21 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.2308.20 via Frontend Transport; Sun, 16 Jan 2022 19:48:21 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Sun, 16 Jan 2022 19:48:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O+L8cP5PFQp+OHtDkJycs9u2S6M2/7TQAK7MQAjWgy6IjXWT2h9x5ZsA53DTw/Mzx2NJ3o6FikmvISIwe8HFD2dm3B+Q8+CJWGA267hF7NyC8YE8L/dcDTA+wRinA2vrguSfnq+e84dQmFlMUiEG6xirKi+L1og4tJMwVZMO4jiS2UxETmGM7zoZUJMwNj2tqlIxk1tWk/97QjWV2+scy4VEf8XbMGqeJEGWKUZpSawsMdvjCvinV/cHOgAKTdDKJJShaShfKkBjvBQZ6qJghp10+z3uZsfPbfgmSKOH0zj+PLCtEXzG8uJcJ9m0Dg1qTJvI3efZrggsWs8m6/2jiw== 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=KHT4Sf1MEavHgtwbxw8bJo21rb2PE0584FAhoGDLePk=; b=i4j+zuNO4kN8kTLKB8/EeSxizlNqxvoxNV+7tcAdm/52U/IpCKsuSWzqkm/XPl9fn6baRNg5vQxECV6sfaEziPMiKPAN/Dbx5+gK2HGvhTo23pLprnvXjVK5pFmvlXbtBL8ruGLcD1p+Y4ibkhwxIEM1CGdk5zciWwLECg54ZXHyuaXzgItVqGE2OAjJRABLua9gt0xwnZbZq6++q849haljHwpNtY+OK/ecux/fwZLoPdvaPM63iuPLNh/UehhQYIZQ3UzGWYkvYyXIlG9eCe5wB+GN4FaTsPdhBJSPGaFYxSWUN109Kk2CJ6sybeH2QOJ0rNtf+Ty0mUMO2WvewA== 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 PH0PR11MB5928.namprd11.prod.outlook.com (2603:10b6:510:144::16) by DM4PR11MB5357.namprd11.prod.outlook.com (2603:10b6:5:394::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Mon, 17 Jan 2022 03:48:09 +0000 Received: from PH0PR11MB5928.namprd11.prod.outlook.com ([fe80::b003:4016:91be:20d7]) by PH0PR11MB5928.namprd11.prod.outlook.com ([fe80::b003:4016:91be:20d7%6]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 03:48:09 +0000 From: "Dandan Bi" To: "Gao, Liming" , "devel@edk2.groups.io" , "Huang, Long1" CC: "Feng, Bob C" , "Chen, Lin Z" , "Li, Zhuangzhi" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/HiiDatabaseDxe: Add Support for authenticated variable Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/HiiDatabaseDxe: Add Support for authenticated variable Thread-Index: AQHYB5L5xav2d7GRL0WrI42fM2OQUaxgbtbQgAYAu/CAACEqAIAACVqw Date: Mon, 17 Jan 2022 03:48:09 +0000 Message-ID: References: <802446c5bddb6e7de746d733c68d92c0e09e5ca8.1642007174.git.long1.huang@intel.com> <025c01d80b4f$f115cf90$d3416eb0$@byosoft.com.cn> In-Reply-To: <025c01d80b4f$f115cf90$d3416eb0$@byosoft.com.cn> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 437a0922-8777-4011-9f42-08d9d96c2da4 x-ms-traffictypediagnostic: DM4PR11MB5357:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CUPjXa28u1gSnMFDaoeTXi32n1U8G7fnKwLRHiIkTAQQeQ5KdMjqW9nhaX6sXr4ue9LEc2oBa/tTeAE6uSoDB/BU6hJnQXvyanp3+/TiZi6esylujvTi6uQNM8gRnoPMKB1V+VhYEapRjvI31CkDvHg7AfVkz1699FPafaftP3aFfzAndvDHXbOh1lewt1VOoSOLvCBOoI+DgZ9yuytWWW3eBUyKddYyPDlBM7f4r6Jkau+UJfVtaDLdbo7/P0d4P65FCy2lpZqZoXmBwEtm7d5BBfrqk18ue1l/l3BP5zYETQuKCHEpf6NKUSvL9ckn3659sGBCnRy2TdWIl0HyXHV0WB1YITEGV1APEfyRiK3pHqEDxHjCxG1BbjayaliqvigOv5YifyZ3CNnuUhxlU3RhlSzS2HCzjjnYXgyx1fwpGthinl3qrOjhTGJvNowo0GCqz3Ou0RXutUIIlmKPL8xS3Ubb2mTpv2g2nhqlEHnS6I1iWJZGwnaUD9KTRz1HhYerEkfnbjOqGIEiC9/qj9KFXgWslN+enqA+dRNX902zObixuhraXE/rkEkv1YL93+Saf1TziZ7Ij3jJMntFgFSfW8etRXebNFwStGCvisf0Rm9zhIo0ZyPHprSJ+atkwuV+A+PzsU5rV7uPAvvotUKU2SOtQyObVh8unWQe5f1Lwiz+xkZd3ChR36IIEoMqaVokb6nQwtqlZ2iC3Uzb88Zat9obqPdBMg3RYxWKJxGRtwsj8TfV+LDxI9zoCqEuQZFbZLzCd3lnxYKlyzTRdLwczvII0O6vgdPMsLuEkKSxEygymC+sQDmevTMEF7XFUW6zVW/z7l8qKxAdg+hObw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5928.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2906002)(186003)(66556008)(76116006)(316002)(9686003)(30864003)(82960400001)(52536014)(38100700002)(122000001)(4326008)(66446008)(54906003)(86362001)(66946007)(71200400001)(110136005)(8676002)(83380400001)(66476007)(508600001)(966005)(107886003)(55016003)(6636002)(64756008)(53546011)(7696005)(33656002)(5660300002)(6506007)(8936002)(38070700005)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cDkyWnd5RUxOSGNNQWtPNHNEcVd3VGQ2UFBTWUhLNmF4dnhqS3lNSnFJS1JB?= =?utf-8?B?RGdJWS94c2hXTTNoK0xWT2xIVmF4R0EzMEQvTFljKzdzSFYwK3FEWEcwZUhj?= =?utf-8?B?L3JvNEdDZndyeElQR084MFJqTUtLeTRmdVBTMUtMa0lKeUtLOTlRWnBzRzVz?= =?utf-8?B?YWVrbWZQOHRnZm9RMHdVZCt5enlpVk9kblJhQWNnV3Znc2dIc1BCSVRxbEhP?= =?utf-8?B?RGVpTzVFTWFqYlBSQm13RVZvVk5jRk83LzRSR0ZtUXRSQnlYSmxIN0lGZVZu?= =?utf-8?B?dFdCOWkyQW1ZNVl2WWJxTStKNkhBSm4wY0xSNGNQclJQVTdaTlM4d1g1dnNP?= =?utf-8?B?ajBQVldEakhkMjlSUFRpaWZvUVBPb2ZxcHFpZVNuL2FXQ1ZUYmpKUjJiWDd3?= =?utf-8?B?ZWZ2VE56L3g4QTd6SHZ2VDNUcitVTVpEWHZ1cldSNWMwL0toMklnTklzQ1ZP?= =?utf-8?B?NjlpYkh3eUJscERreitsa0hqTVR2eExLUVc1NWtKOVQ4d3ppY29BL3N1eHZK?= =?utf-8?B?MlNUWVM2MkY5T1BlK0I5YTRpNVJEWm1BeVdxdFpJZlBSR29GaVhOY1BCS2Fz?= =?utf-8?B?bHdoOHJkRXZHcTNqSExIdGFEY1F6OElJRzYrSTNVYnNPREVkLzU4YTdVelJT?= =?utf-8?B?U3daRnF6SEZZZ3g4blRLU3BjVXd2cGd3NCtlRkFEeHZpeUNWNUozRGlnVWFN?= =?utf-8?B?UnJ0ZlNScmRUMEM0TVFSWkIyRWlIVVRRYWpxN3J1UmVSOXBIM0x2WmhrdHY1?= =?utf-8?B?d3lOdnJyTTdEcXhmQ0JuMXFLRWhUbXlGZWovM2xjYXRGZllyTFFOa1phdDBH?= =?utf-8?B?a0ZPNmhlN2dkUVhEVTlMQjBSdWs3ZjFmMkVodFJQNGdYK1ZCc2REcmNmWi9l?= =?utf-8?B?OHFaa2JHZzZKbURvSnRMZ2tjZGdKdmVRK0J1SVdkSW5NcTVDaVVCUVhaS3h4?= =?utf-8?B?bzNqeE5iMUZkUWtNYVJnSzU2TXBpNmJrVmdRWlU2UHFhMzBIWE4xRzkwdXcy?= =?utf-8?B?TEJDcENzVlZiVlcrdCtiYlJsY01zZEkrVVhya1ZCemlsdHQ0VWFBR1ZhMlJq?= =?utf-8?B?TllmY0t1ekNpdVNKMHJhaDBNd2thc29FaGY1UVpJWU9vaGM0eGt0ZDZzcjkr?= =?utf-8?B?cldaS3JjQ0FkZWtjSmlGVDFPWkxoV2QvRWdoaVk4OUtLWnRSUWV4L2UrWUFG?= =?utf-8?B?T1lTbUFISkZraGtpTE8wMGxUL1ZFUTZQbCtxWElKZ09tQ0VNam92Y1JDRHhB?= =?utf-8?B?blNwKzlGaUE3MFhtMTcybDBWT01IZlRWeUdpUG1CcW5PL3U0QWxoL0NTZzVo?= =?utf-8?B?blkyeDRpQnduM0lwZDlXb1ZhZ3oxQjdiS3phUkUzVkpLZHY4MXd1S2FKTTdu?= =?utf-8?B?OUQ1SThwMnkxREVaVXpuajFBOTYvOWlGVVhML3l4c3RvRlVkL0gxaFN4YUh3?= =?utf-8?B?ZEI1dkRZc1R4Q2VEbVRXU2k4NXNSYnoySmFSbWkxWjZRak5qbitvQVM3QWly?= =?utf-8?B?eVUreGN5ajNtcm5VVjhnSGdvNTNzOFdKbGFBbUt0Vy81ZlZhWXBCMHpTTC9k?= =?utf-8?B?dldRaUIrWlU0VWtnbEhvdnFxLzdFWkVuWlZMd3BOS2xMWlVGcVBqQ2tHRnVq?= =?utf-8?B?bk1ROXpZckU0RmVsOUFOWHMydTFSdG5tanY3QUdnL2lpQ0hQRzNRTm1sSldy?= =?utf-8?B?V0c1QVFZSkk3bm1iT0g3YVZBbEdLQXBEV3RXeGxyaXAvZC9MWW5UMEdxdFZL?= =?utf-8?B?NDBtTk1BT1gyT1YvejJOZU5JM2dHN3ZCbmdKV2tFSjljNEtDUGNYVzl5ZXpu?= =?utf-8?B?OGdBZ2EvbnZSdC90enYyTGk3TnY4OVF2UDFrb3pOTnVsbm1UODUwUFY2R2pp?= =?utf-8?B?a3dKYnp1T2tLVmtPeXlwL0tWQTVHWFJGcGpTeEVuVWh6bUxuN1dzRDF4Z0Q5?= =?utf-8?B?czE4aFp5TkdYU2JqM2tzNldLYW9TS0tmWE1wbUFIcitQZ3N2aU9Ub1BscDA5?= =?utf-8?B?MlFUdnBEdFFYOUNpVUozRnZCWjJRQmFwQnVSUjV4VVEwWWlUNUxOajhXRGNw?= =?utf-8?B?NU5VM1dBdnhXdXVWdW03bFVIQkN4Mm4yRVM5N044S0pDR1o3bDZ6RlJobzlJ?= =?utf-8?B?SkNISU5xVmFESGhTMG45UlBiNWFyaXlDZVpNUE52VTk3NUN4RXdmUlJKRG4v?= =?utf-8?Q?CvsKq9ZbAUvO16H1N5RjzBU=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5928.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 437a0922-8777-4011-9f42-08d9d96c2da4 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 03:48:09.4157 (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: thKOE9X3aEhj/jYp7X4vbnGW4WHCMMQiOR/kbKb3GPRWIo0w3/DTuKQOtNxba9TFsswHRKQQp2ZzbcPR0fN5xQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5357 Return-Path: dandan.bi@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VyZS4gVGhhbmtzIExpbWluZy4NCg0KDQpUaGFua3MsDQpEYW5kYW4NCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+DQo+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNywgMjAyMiAxMToxMiBBTQ0KPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBIdWFu ZywNCj4gTG9uZzEgPGxvbmcxLmh1YW5nQGludGVsLmNvbT4NCj4gQ2M6IEZlbmcsIEJvYiBDIDxi b2IuYy5mZW5nQGludGVsLmNvbT47IENoZW4sIExpbiBaIDxsaW4uei5jaGVuQGludGVsLmNvbT47 DQo+IExpLCBaaHVhbmd6aGkgPHpodWFuZ3poaS5saUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IOWb nuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL0hpaURhdGFiYXNlRHhlOiBB ZGQNCj4gU3VwcG9ydCBmb3IgYXV0aGVudGljYXRlZCB2YXJpYWJsZQ0KPiANCj4gRGFuZGFuOg0K PiAgIEkgd2lsbCByZXZpZXcgdGhpcyBwYXRjaCB0b2RheS4gUGxlYXNlIHdhaXQgb25lIGRheSBm b3IgbWUuDQo+IA0KPiBUaGFua3MNCj4gTGltaW5nDQo+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0t LQ0KPiA+IOWPkeS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiDku6PooaggRGFuZGFuIEJpDQo+ID4g5Y+R6YCB5pe26Ze0OiAyMDIy5bm0MeaciDE35pel IDk6MTMNCj4gPiDmlLbku7bkuro6IEh1YW5nLCBMb25nMSA8bG9uZzEuaHVhbmdAaW50ZWwuY29t PjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiDmioTpgIE6IEZlbmcsIEJvYiBDIDxib2IuYy5m ZW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47IENoZW4sIExpbiBaIDxsaW4uei5jaGVuQGludGVsLmNvbT47IExpLA0KPiA+IFpodWFuZ3po aSA8emh1YW5nemhpLmxpQGludGVsLmNvbT4NCj4gPiDkuLvpopg6IFJlOiBbZWRrMi1kZXZlbF0g W1BBVENIXSBNZGVNb2R1bGVQa2cvSGlpRGF0YWJhc2VEeGU6IEFkZA0KPiBTdXBwb3J0DQo+ID4g Zm9yIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCj4gPg0KPiA+ICBJIHdpbGwgcHVzaCB0aGlzIHBh dGNoIHRvZGF5IGlmIG5vIG90aGVyIGNvbW1lbnQuDQo+ID4NCj4gPg0KPiA+IFRoYW5rcywNCj4g PiBEYW5kYW4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZy b206IEJpLCBEYW5kYW4NCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDEzLCAyMDIyIDE6 MzUgUE0NCj4gPiA+IFRvOiBIdWFuZywgTG9uZzEgPGxvbmcxLmh1YW5nQGludGVsLmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50 ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBD aGVuLCBMaW4gWiA8bGluLnouY2hlbkBpbnRlbC5jb20+OyBMaSwNCj4gPiA+IFpodWFuZ3poaSA8 emh1YW5nemhpLmxpQGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIE1kZU1v ZHVsZVBrZy9IaWlEYXRhYmFzZUR4ZTogQWRkIFN1cHBvcnQgZm9yDQo+ID4gPiBhdXRoZW50aWNh dGVkIHZhcmlhYmxlDQo+ID4gPg0KPiA+ID4gVGhlIGNoYW5nZSBpcyBvayB0byBtZS4gUmV2aWV3 ZWQtYnk6IERhbmRhbiBCaSA8ZGFuZGFuLmJpQGludGVsLmNvbT4NCj4gPiA+DQo+ID4gPiBIaSBM aW1pbmcsDQo+ID4gPg0KPiA+ID4gQ291bGQgeW91IGFsc28gaGVscCByZXZpZXcgaXQ/DQo+ID4g Pg0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+IERhbmRhbg0KPiA+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBIdWFuZywgTG9uZzEgPGxvbmcxLmh1YW5n QGludGVsLmNvbT4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMTMsIDIwMjIgMTow NiBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gQ2M6IEh1YW5n LCBMb25nMSA8bG9uZzEuaHVhbmdAaW50ZWwuY29tPjsgRmVuZywgQm9iIEMNCj4gPiA+ID4gPGJv Yi5jLmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47DQo+ID4gPiA+IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBDaGVuLCBMaW4g Wg0KPiA+ID4gPiA8bGluLnouY2hlbkBpbnRlbC5jb20+OyBMaSwgWmh1YW5nemhpIDx6aHVhbmd6 aGkubGlAaW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9I aWlEYXRhYmFzZUR4ZTogQWRkIFN1cHBvcnQgZm9yDQo+ID4gPiA+IGF1dGhlbnRpY2F0ZWQgdmFy aWFibGUNCj4gPiA+ID4NCj4gPiA+ID4gUkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzc5Ng0KPiA+ID4gPg0KPiA+ID4gPiBEYXRhYmFzZS5jOg0KPiA+ ID4gPiAJMS4gUmVwbGFjZSBQY2RHZXRFeFB0ciB3aXRoIFBjZEdldEV4UHRyLg0KPiA+ID4gPiAJ Mi4gQWRkIEZpbmRBdXRoVmFyaWFibGVEYXRhIGZ1bmN0aW9uIHRvIHBhcnNlIGF1dGhlbnRpY2F0 ZWQNCj4gPiA+IHZhcmlhYmxlDQo+ID4gPiA+IHR5cGUgZm9yIGdldHRpbmcgYSBjb3JyZWN0IGRl ZmF1bHQgdmFsdWUgaW4NCj4gPiA+ID4gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlci4NCj4g PiA+ID4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSHVhbmcgTG9uZyA8bG9uZzEuaHVhbmdAaW50 ZWwuY29tPg0KPiA+ID4gPg0KPiA+ID4gPiBDYzogQm9iIEZlbmcgPGJvYi5jLmZlbmdAaW50ZWwu Y29tPg0KPiA+ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0K PiA+ID4gPiBDYzogRGFuZGFuIEJpIDxkYW5kYW4uYmlAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzog TGluIFogQ2hlbiA8bGluLnouY2hlbkBpbnRlbC5jb20+DQo+ID4gPiA+IENjOiBaaHVhbmd6aGkg TGkgPHpodWFuZ3poaS5saUBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgLi4uL1Vu aXZlcnNhbC9IaWlEYXRhYmFzZUR4ZS9EYXRhYmFzZS5jICAgICAgIHwgMTMwDQo+ID4gKysrKysr KysrKysrKystLS0tDQo+ID4gPiA+ICAuLi4vSGlpRGF0YWJhc2VEeGUvSGlpRGF0YWJhc2VEeGUu aW5mICAgICAgICAgfCAgIDMgKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0 aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMNCj4gPiA+ID4g Yi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMNCj4gPiA+ ID4gaW5kZXggMGIwOWMyNGQ1Mi4uYzdhOTJkNmFlZCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9IaWlEYXRhYmFzZUR4ZS9EYXRhYmFzZS5jDQo+ID4gPiA+ICsr KyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VEeGUvRGF0YWJhc2UuYw0KPiA+ ID4gPiBAQCAtNjAzLDYgKzYwMyw0NSBAQCBGaW5kVmFyaWFibGVEYXRhICgNCj4gPiA+ID4gICAg cmV0dXJuIE5VTEw7DQo+ID4gPiA+DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+ICsvKioNCj4gPiA+ID4NCj4gPiA+ID4gKyAgRmluZCB0aGUgbWF0Y2hlZCBh dXRoZW50aWNhdGVkIHZhcmlhYmxlIGZyb20gdGhlIGlucHV0IHZhcmlhYmxlDQo+ID4gc3RvcmFn ZS4NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICBAcGFyYW1baW5dIFZh cmlhYmxlU3RvcmFnZSBQb2ludCB0byB0aGUgdmFyaWFibGUgc3RvcmFnZSBoZWFkZXIuDQo+ID4g PiA+DQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gVmFyR3VpZCAgICAgICAgIEEgdW5pcXVlIGlkZW50 aWZpZXIgZm9yIHRoZSB2YXJpYWJsZS4NCj4gPiA+ID4NCj4gPiA+ID4gKyAgQHBhcmFtW2luXSBW YXJBdHRyaWJ1dGUgICAgVGhlIGF0dHJpYnV0ZXMgYml0bWFzayBmb3IgdGhlIHZhcmlhYmxlLg0K PiA+ID4gPg0KPiA+ID4gPiArICBAcGFyYW1baW5dIFZhck5hbWUgICAgICAgICBBIE51bGwtdGVy bWluYXRlZCBhc2NpaSBzdHJpbmcgdGhhdCBpcw0KPiA+IHRoZSBuYW1lDQo+ID4gPiBvZg0KPiA+ ID4gPiB0aGUgdmFyaWFibGUuDQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgQHJldHVybiBQb2ludGVyIHRvIHRoZSBtYXRjaGVkIHZhcmlhYmxlIGhlYWRlciBvciBOVUxM IGlmIG5vdA0KPiBmb3VuZC4NCj4gPiA+ID4NCj4gPiA+ID4gKyoqLw0KPiA+ID4gPg0KPiA+ID4g PiArQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIgKg0KPiA+ID4gPg0KPiA+ID4gPiArRmlu ZEF1dGhWYXJpYWJsZURhdGEgKA0KPiA+ID4gPg0KPiA+ID4gPiArICBJTiAgVkFSSUFCTEVfU1RP UkVfSEVBREVSICAqVmFyaWFibGVTdG9yYWdlLA0KPiA+ID4gPg0KPiA+ID4gPiArICBJTiAgRUZJ X0dVSUQgICAgICAgICAgICAgICAqVmFyR3VpZCwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgSU4gIFVJ TlQzMiAgICAgICAgICAgICAgICAgVmFyQXR0cmlidXRlLA0KPiA+ID4gPg0KPiA+ID4gPiArICBJ TiAgQ0hBUjE2ICAgICAgICAgICAgICAgICAqVmFyTmFtZQ0KPiA+ID4gPg0KPiA+ID4gPiArICAp DQo+ID4gPiA+DQo+ID4gPiA+ICt7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIEFVVEhFTlRJQ0FURURf VkFSSUFCTEVfSEVBREVSICAqQXV0aFZhcmlhYmxlSGVhZGVyOw0KPiA+ID4gPg0KPiA+ID4gPiAr ICBBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUiAgKkF1dGhWYXJpYWJsZUVuZDsNCj4gPiA+ ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICBBdXRoVmFyaWFibGVFbmQgICAgPSAo QVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVINCj4gPiAqKSgoVUlOVDgNCj4gPiA+ID4gKilW YXJpYWJsZVN0b3JhZ2UgKyBWYXJpYWJsZVN0b3JhZ2UtPlNpemUpOw0KPiA+ID4gPg0KPiA+ID4g PiArICBBdXRoVmFyaWFibGVIZWFkZXIgPSAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIN Cj4gPiA+ID4gKikoVmFyaWFibGVTdG9yYWdlICsgMSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIEF1 dGhWYXJpYWJsZUhlYWRlciA9IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUg0KPiA+ID4g PiAqKUhFQURFUl9BTElHTiAoQXV0aFZhcmlhYmxlSGVhZGVyKTsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgd2hpbGUgKEF1dGhWYXJpYWJsZUhlYWRlciA8IEF1dGhWYXJpYWJsZUVuZCkgew0KPiA+ID4g Pg0KPiA+ID4gPiArICAgIGlmIChDb21wYXJlR3VpZCAoJkF1dGhWYXJpYWJsZUhlYWRlci0+VmVu ZG9yR3VpZCwgVmFyR3VpZCkgJiYNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgKEF1dGhWYXJp YWJsZUhlYWRlci0+QXR0cmlidXRlcyA9PSBWYXJBdHRyaWJ1dGUpICYmDQo+ID4gPiA+DQo+ID4g PiA+ICsgICAgICAgIChTdHJDbXAgKFZhck5hbWUsIChDSEFSMTYgKikoQXV0aFZhcmlhYmxlSGVh ZGVyICsgMSkpID09DQo+ID4gMCkpDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgew0KPiA+ID4gPg0K PiA+ID4gPiArICAgICAgcmV0dXJuIEF1dGhWYXJpYWJsZUhlYWRlcjsNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBBdXRo VmFyaWFibGVIZWFkZXIgPSAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVINCj4gPiAqKSgo VUlOVDgNCj4gPiA+ID4gKilBdXRoVmFyaWFibGVIZWFkZXIgKyBzaXplb2YgKEFVVEhFTlRJQ0FU RURfVkFSSUFCTEVfSEVBREVSKQ0KPiArDQo+ID4gPiA+IEF1dGhWYXJpYWJsZUhlYWRlci0+TmFt ZVNpemUgKyBBdXRoVmFyaWFibGVIZWFkZXItPkRhdGFTaXplKTsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICBBdXRoVmFyaWFibGVIZWFkZXIgPSAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIN Cj4gPiA+ID4gKilIRUFERVJfQUxJR04gKEF1dGhWYXJpYWJsZUhlYWRlcik7DQo+ID4gPiA+DQo+ ID4gPiA+ICsgIH0NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICByZXR1 cm4gTlVMTDsNCj4gPiA+ID4NCj4gPiA+ID4gK30NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4g Pg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+DQo+ID4gPiA+ICAgIEZpbmQgcXVlc3Rpb24gZGVmYXVs dCB2YWx1ZSBmcm9tIFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXINCj4gPiA+ID4NCj4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTYyNiwyNSArNjY1LDI5IEBAIEZpbmRRdWVzdGlvbkRl ZmF1bHRTZXR0aW5nICgNCj4gPiA+ID4gICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICBC aXRGaWVsZFF1ZXN0aW9uDQo+ID4gPiA+DQo+ID4gPiA+ICAgICkNCj4gPiA+ID4NCj4gPiA+ID4g IHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVkFSSUFCTEVfSEVBREVSICAgICAgICAgICpWYXJpYWJs ZUhlYWRlcjsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICpW YXJpYWJsZVN0b3JhZ2U7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIExJU1RfRU5UUlkgICAgICAgICAg ICAgICAqTGluazsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVkFSU1RPUkFHRV9ERUZBVUxUX0RBVEEg ICpFbnRyeTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICpO dlN0b3JlQnVmZmVyOw0KPiA+ID4gPg0KPiA+ID4gPiAtICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgKkRhdGFCdWZmZXI7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICAg ICAgICAqQnVmZmVyRW5kOw0KPiA+ID4gPg0KPiA+ID4gPiAtICBCT09MRUFOICAgICAgICAgICAg ICAgICAgSXNGb3VuZDsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVUlOVE4gICAgICAgICAgICAgICAg ICAgIEluZGV4Ow0KPiA+ID4gPg0KPiA+ID4gPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAg QnVmZmVyVmFsdWU7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFVJTlQzMiAgICAgICAgICAgICAgICAg ICBCaXRGaWVsZFZhbDsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVUlOVE4gICAgICAgICAgICAgICAg ICAgIEJpdE9mZnNldDsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVUlOVE4gICAgICAgICAgICAgICAg ICAgIEJ5dGVPZmZzZXQ7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFVJTlROICAgICAgICAgICAgICAg ICAgICBCaXRXaWR0aDsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVUlOVE4gICAgICAgICAgICAgICAg ICAgIFN0YXJ0Qml0Ow0KPiA+ID4gPg0KPiA+ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgRW5kQml0Ow0KPiA+ID4gPg0KPiA+ID4gPiAtICBQQ0RfREVGQVVMVF9EQVRBICAgICAgICAg KkRhdGFIZWFkZXI7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFBDRF9ERUZBVUxUX0lORk8gICAgICAg ICAqRGVmYXVsdEluZm87DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFBDRF9EQVRBX0RFTFRBICAgICAg ICAgICAqRGVsdGFEYXRhOw0KPiA+ID4gPg0KPiA+ID4gPiArICBWQVJJQUJMRV9IRUFERVIgICAg ICAgICAgICAgICAgICAgKlZhcmlhYmxlSGVhZGVyOw0KPiA+ID4gPg0KPiA+ID4gPiArICBBVVRI RU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUiAgICAgKkF1dGhWYXJpYWJsZUhlYWRlcjsNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgVkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICAgICAgICAgICpWYXJpYWJs ZVN0b3JhZ2U7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIExJU1RfRU5UUlkgICAgICAgICAgICAgICAg ICAgICAgICAqTGluazsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgVkFSU1RPUkFHRV9ERUZBVUxUX0RB VEEgICAgICAgICAgICpFbnRyeTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgVkFSSUFCTEVfU1RPUkVf SEVBREVSICAgICAgICAgICAgICpOdlN0b3JlQnVmZmVyOw0KPiA+ID4gPg0KPiA+ID4gPiArICBW T0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlZhbHVlU291cmNlOw0KPiA+ID4gPg0K PiA+ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkJpdFZhbHVlU291 cmNlOw0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKkRhdGFCdWZmZXI7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqQnVmZmVyRW5kOw0KPiA+ID4gPg0KPiA+ID4gPiArICBCT09MRUFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgQXV0aEZvcm1hdDsNCj4gPiA+ID4NCj4gPiA+ID4gKyAg Qk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIElzRm91bmQ7DQo+ID4gPiA+DQo+ID4g PiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclZhbHVl Ow0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg Qml0RmllbGRWYWw7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCaXRPZmZzZXQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCeXRlT2Zmc2V0Ow0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQml0V2lkdGg7DQo+ID4gPiA+DQo+ID4gPiA+ ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydEJpdDsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZEJpdDsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgUENEX0RFRkFVTFRfREFUQSAgICAgICAgICAgICAgICAgICpEYXRh SGVhZGVyOw0KPiA+ID4gPg0KPiA+ID4gPiArICBQQ0RfREVGQVVMVF9JTkZPICAgICAgICAgICAg ICAgICAgKkRlZmF1bHRJbmZvOw0KPiA+ID4gPg0KPiA+ID4gPiArICBQQ0RfREFUQV9ERUxUQSAg ICAgICAgICAgICAgICAgICAgKkRlbHRhRGF0YTsNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gICAgaWYgKGdTa3VJZCA9PSAweEZGRkZGRkZGRkZGRkZGRkYpIHsNCj4gPiA+ID4N Cj4gPiA+ID4gICAgICBnU2t1SWQgPSBMaWJQY2RHZXRTa3UgKCk7DQo+ID4gPiA+DQo+ID4gPiA+ IEBAIC02NjYsNyArNzA5LDcgQEAgRmluZFF1ZXN0aW9uRGVmYXVsdFNldHRpbmcgKA0KPiA+ID4g PiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICAgIGlmIChMaW5rID09 ICZnVmFyU3RvcmFnZUxpc3QpIHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICBEYXRhQnVmZmVyICAg ICAgICAgID0gKFVJTlQ4ICopUGNkR2V0UHRyDQo+ID4gKFBjZE52U3RvcmVEZWZhdWx0VmFsdWVC dWZmZXIpOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIERhdGFCdWZmZXIgICAgICAgICAgPSAoVUlO VDggKilQY2RHZXRFeFB0cg0KPiA+ID4gPiAoJmdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZCwNCj4gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlcik7DQo+ID4gPiA+DQo+ID4gPiA+ICAg ICAgZ052RGVmYXVsdFN0b3JlU2l6ZSA9DQo+ID4gKChQQ0RfTlZfU1RPUkVfREVGQVVMVF9CVUZG RVJfSEVBREVSDQo+ID4gPiA+ICopRGF0YUJ1ZmZlciktPkxlbmd0aDsNCj4gPiA+ID4NCj4gPiA+ ID4gICAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIC8vIFRoZSBmaXJzdCBzZWN0aW9uIGRh dGEgaW5jbHVkZXMgTlYgc3RvcmFnZSBkZWZhdWx0IHNldHRpbmcuDQo+ID4gPiA+DQo+ID4gPiA+ IEBAIC03NTAsMTIgKzc5MywyNyBAQCBGaW5kUXVlc3Rpb25EZWZhdWx0U2V0dGluZyAoDQo+ID4g PiA+ICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ID4gPiA+DQo+ID4gPiA+ICAgIH0NCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4g KyAgLy8gSnVkZ2UgaWYgdGhlIHZhcmlhYmxlIHR5cGUgaXMgYXV0aGVudGljYXRlZCwgZGVmYXVs dCBpcw0KPiA+ID4gPiArIGZhbHNlDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+DQo+ ID4gPiA+ICsgIEF1dGhGb3JtYXQgPSBGQUxTRTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKENv bXBhcmVHdWlkICgmVmFyaWFibGVTdG9yYWdlLT5TaWduYXR1cmUsDQo+ID4gPiA+ICZnRWZpQXV0 aGVudGljYXRlZFZhcmlhYmxlR3VpZCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBBdXRoRm9y bWF0ID0gVFJVRTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ ID4gPiA+DQo+ID4gPiA+ICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICAgIC8vIEZpbmQgdGhlIHF1 ZXN0aW9uIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUgdmFyaWFibGUgc3RvcmFnZQ0KPiA+ID4gPg0K PiA+ID4gPiAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAtICBWYXJpYWJsZUhlYWRlciA9IEZpbmRW YXJpYWJsZURhdGEgKFZhcmlhYmxlU3RvcmFnZSwNCj4gPiA+ID4gJkVmaVZhclN0b3JlLT5HdWlk LA0KPiA+ID4gPiBFZmlWYXJTdG9yZS0+QXR0cmlidXRlcywgKENIQVIxNiAqKUVmaVZhclN0b3Jl LT5OYW1lKTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgaWYgKFZhcmlhYmxlSGVhZGVyID09IE5VTEwp IHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICByZXR1cm4gRUZJX05PVF9GT1VORDsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgaWYoQXV0aEZvcm1hdCkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIEF1dGhW YXJpYWJsZUhlYWRlciA9IEZpbmRBdXRoVmFyaWFibGVEYXRhIChWYXJpYWJsZVN0b3JhZ2UsDQo+ ID4gPiA+ICZFZmlWYXJTdG9yZS0+R3VpZCwgRWZpVmFyU3RvcmUtPkF0dHJpYnV0ZXMsIChDSEFS MTYNCj4gPiA+ID4gKilFZmlWYXJTdG9yZS0NCj4gPiA+ID4gPk5hbWUpOw0KPiA+ID4gPg0KPiA+ ID4gPiArICAgIGlmIChBdXRoVmFyaWFibGVIZWFkZXIgPT0gTlVMTCkgew0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAg fQ0KPiA+ID4gPg0KPiA+ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIFZh cmlhYmxlSGVhZGVyID0gRmluZFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLA0KPiA+ID4g PiArICZFZmlWYXJTdG9yZS0+R3VpZCwNCj4gPiA+ID4gRWZpVmFyU3RvcmUtPkF0dHJpYnV0ZXMs IChDSEFSMTYgKilFZmlWYXJTdG9yZS0+TmFtZSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgaWYg KFZhcmlhYmxlSGVhZGVyID09IE5VTEwpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgIHJldHVy biBFRklfTk9UX0ZPVU5EOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4NCj4gPiA+ ID4gICAgfQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICBTdGFydEJpdCAg ID0gMDsNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTc3MCw4ICs4MjgsMjQgQEAgRmluZFF1ZXN0aW9u RGVmYXVsdFNldHRpbmcgKA0KPiA+ID4gPiAgICAgIFdpZHRoICAgICAgPSBFbmRCaXQgLyA4ICsg MTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgfQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPiAtICBpZiAoVmFyaWFibGVIZWFkZXItPkRhdGFTaXplIDwgQnl0ZU9mZnNldCArIFdpZHRo KSB7DQo+ID4gPiA+DQo+ID4gPiA+IC0gICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKEF1dGhGb3JtYXQpIHsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICBpZiAoQXV0aFZhcmlhYmxlSGVhZGVyLT5EYXRhU2l6ZSA8IEJ5dGVPZmZzZXQgKyBXaWR0 aCkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgICBWYWx1ZVNvdXJjZSA9IChVSU5UOCAqKUF1dGhWYXJpYWJsZUhlYWRlciAr IHNpemVvZg0KPiA+ID4gPiAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIpICsgQXV0aFZh cmlhYmxlSGVhZGVyLQ0KPiA+TmFtZVNpemUNCj4gPiA+ICsNCj4gPiA+ID4gSWZyUXVlc3Rpb25I ZHItPlZhclN0b3JlSW5mby5WYXJPZmZzZXQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgaWYgKEJp dEZpZWxkUXVlc3Rpb24pIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgIEJpdFZhbHVlU291cmNl ID0gKFVJTlQ4ICopQXV0aFZhcmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+ID4gPiA+IChBVVRIRU5U SUNBVEVEX1ZBUklBQkxFX0hFQURFUikgKyBBdXRoVmFyaWFibGVIZWFkZXItDQo+ID5OYW1lU2l6 ZQ0KPiA+ID4gKw0KPiA+ID4gPiBCeXRlT2Zmc2V0Ow0KPiA+ID4gPg0KPiA+ID4gPiArICAgIH0N Cj4gPiA+ID4NCj4gPiA+ID4gKyAgfSBlbHNlIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBpZiAo VmFyaWFibGVIZWFkZXItPkRhdGFTaXplIDwgQnl0ZU9mZnNldCArIFdpZHRoKSB7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ID4gPg0K PiA+ID4gPiArICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICAg IFZhbHVlU291cmNlID0gKFVJTlQ4ICopVmFyaWFibGVIZWFkZXIgKyBzaXplb2YNCj4gPiAoVkFS SUFCTEVfSEVBREVSKQ0KPiA+ID4gPiArICsNCj4gPiA+ID4gVmFyaWFibGVIZWFkZXItPk5hbWVT aXplICsgSWZyUXVlc3Rpb25IZHItPlZhclN0b3JlSW5mby5WYXJPZmZzZXQ7DQo+ID4gPiA+DQo+ ID4gPiA+ICsgICAgaWYgKEJpdEZpZWxkUXVlc3Rpb24pIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAg ICAgIEJpdFZhbHVlU291cmNlID0gKFVJTlQ4ICopVmFyaWFibGVIZWFkZXIgKyBzaXplb2YNCj4g PiA+ID4gKyAoVkFSSUFCTEVfSEVBREVSKQ0KPiA+ID4gPiArIFZhcmlhYmxlSGVhZGVyLT5OYW1l U2l6ZSArIEJ5dGVPZmZzZXQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPg0KPiA+ ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICAgIC8vDQo+ID4g PiA+DQo+ID4gPiA+IEBAIC03NzksMTEgKzg1MywxMSBAQCBGaW5kUXVlc3Rpb25EZWZhdWx0U2V0 dGluZyAoDQo+ID4gPiA+ICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICAgIGlmIChWYWx1ZUJ1ZmZl ciAhPSBOVUxMKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgaWYgKEJpdEZpZWxkUXVlc3Rpb24p IHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgIENvcHlNZW0gKCZCdWZmZXJWYWx1ZSwgKFVJTlQ4 ICopVmFyaWFibGVIZWFkZXIgKyBzaXplb2YNCj4gPiA+ID4gKFZBUklBQkxFX0hFQURFUikgKyBW YXJpYWJsZUhlYWRlci0+TmFtZVNpemUgKyBCeXRlT2Zmc2V0LA0KPiBXaWR0aCk7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgICBDb3B5TWVtICgmQnVmZmVyVmFsdWUsIEJpdFZhbHVlU291cmNlLCBX aWR0aCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICBCaXRGaWVsZFZhbCA9IEJpdEZpZWxkUmVh ZDMyIChCdWZmZXJWYWx1ZSwgU3RhcnRCaXQsDQo+ID4gPiA+IEVuZEJpdCk7DQo+ID4gPiA+DQo+ ID4gPiA+ICAgICAgICBDb3B5TWVtIChWYWx1ZUJ1ZmZlciwgJkJpdEZpZWxkVmFsLCBXaWR0aCk7 DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgfSBlbHNlIHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAg IENvcHlNZW0gKFZhbHVlQnVmZmVyLCAoVUlOVDggKilWYXJpYWJsZUhlYWRlciArIHNpemVvZg0K PiA+ID4gPiAoVkFSSUFCTEVfSEVBREVSKSArIFZhcmlhYmxlSGVhZGVyLT5OYW1lU2l6ZSArIElm clF1ZXN0aW9uSGRyLQ0KPiA+ID4gPiA+VmFyU3RvcmVJbmZvLlZhck9mZnNldCwgV2lkdGgpOw0K PiA+ID4gPg0KPiA+ID4gPiArICAgICAgQ29weU1lbSAoVmFsdWVCdWZmZXIsIFZhbHVlU291cmNl LCBXaWR0aCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgICB9 DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC04MzIsNyArOTA2LDcgQEAg VXBkYXRlRGVmYXVsdFNldHRpbmdJbkZvcm1QYWNrYWdlICgNCj4gPiA+ID4gICAgLy8gSWYgbm8g ZGVmYXVsdCBzZXR0aW5nLCBkbyBub3RoaW5nDQo+ID4gPiA+DQo+ID4gPiA+ICAgIC8vDQo+ID4g PiA+DQo+ID4gPiA+ICAgIGlmIChnTnZEZWZhdWx0U3RvcmVTaXplID09IDApIHsNCj4gPiA+ID4N Cj4gPiA+ID4gLSAgICBnTnZEZWZhdWx0U3RvcmVTaXplID0gUGNkR2V0U2l6ZSAoUGNkTnZTdG9y ZURlZmF1bHRWYWx1ZUJ1ZmZlcik7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgZ052RGVmYXVsdFN0 b3JlU2l6ZSA9IFBjZEdldEV4U2l6ZQ0KPiA+ID4gPiAoJmdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZCwNCj4gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlcik7DQo+ID4gPiA+DQo+ID4g PiA+ICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYgKGdOdkRl ZmF1bHRTdG9yZVNpemUgPCBzaXplb2YNCj4gPiA+ID4gKFBDRF9OVl9TVE9SRV9ERUZBVUxUX0JV RkZFUl9IRUFERVIpKSB7DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4gYS9N ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZg0K PiA+ID4gPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VEeGUvSGlpRGF0YWJh c2VEeGUuaW5mDQo+ID4gPiA+IGluZGV4IDAxMTZmYjZlY2IuLmRhYzRkNjE0YTggMTAwNjQ0DQo+ ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VEeGUvSGlpRGF0 YWJhc2VEeGUuaW5mDQo+ID4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0 YWJhc2VEeGUvSGlpRGF0YWJhc2VEeGUuaW5mDQo+ID4gPiA+IEBAIC04Niw2ICs4Niw5IEBADQo+ ID4gPiA+ICAgIGdFZmlIaWlJbWFnZURlY29kZXJOYW1lSnBlZ0d1aWQNCj4gPiA+ID4gfGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTdXBwb3J0SGlpSW1hZ2VQcm90b2NvbCAgIyMN Cj4gPiA+ID4gU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQNCj4gPiA+ID4NCj4gPiA+ID4gICAg Z0VmaUhpaUltYWdlRGVjb2Rlck5hbWVQbmdHdWlkDQo+ID4gPiA+IHxnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkU3VwcG9ydEhpaUltYWdlUHJvdG9jb2wgICMjDQo+ID4gPiA+IFNP TUVUSU1FU19DT05TVU1FUyAjIyBHVUlEDQo+ID4gPiA+DQo+ID4gPiA+ICAgIGdFZGtpaUlmckJp dFZhcnN0b3JlR3VpZA0KPiA+ICMjDQo+ID4gPiA+IFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlE DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGdFZmlBdXRoZW50aWNhdGVkVmFyaWFibGVHdWlkDQo+ID4g PiA+DQo+ID4gPiA+ICsgIGdFZmlWYXJpYWJsZUd1aWQNCj4gPiA+ID4NCj4gPiA+ID4gKyAgZ0Vm aU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+ICBbRGVwZXhdDQo+ID4gPiA+DQo+ID4gPiA+ICAgIFRSVUUNCj4gPiA+ID4NCj4gPiA+ ID4gLS0NCj4gPiA+ID4gMi4yNS4xDQo+ID4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCj4gDQo+IA0K DQo=