From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web09.6351.1642466570281433241 for ; Mon, 17 Jan 2022 16:42:51 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=SjhXqC5/; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: lin.z.chen@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642466570; x=1674002570; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=kxAbcfYp/Ung65kaYqOy975EctcgHP18rYyo0OsWsZw=; b=SjhXqC5/l9g5WkMLa46UuwMHykZoHdeXBODoQQraIufHBRPX5QNxZ/CO X+99HsIMnyZ/5keijiriH0Oszqxsn5zLj5aJuYgb73GGTAr50QB3vVaPW +RXzJWpaDpvGvb7Un0r05bE92jNZuGieQArM1CtRxyzuRPH4Hs3+daAVb SiZvtZvO6nMfr4sgh5Fl8anP0aAXLpOLOrfQZystKB+fFqyq3nLq21eUS F9nSlTL00eAEg2s0gN8S/yWo9T6CRUiOFcxpvomFSTSuTjTIux6ZZQTe6 UiearJv8tT2+/CghnpGUiksL3pR0wPEbh4oIH/CMHzj4QRlzpFtB8I5tC g==; X-IronPort-AV: E=McAfee;i="6200,9189,10230"; a="244907735" X-IronPort-AV: E=Sophos;i="5.88,296,1635231600"; d="scan'208";a="244907735" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 16:42:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,296,1635231600"; d="scan'208";a="474592743" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga003.jf.intel.com with ESMTP; 17 Jan 2022 16:42:48 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 17 Jan 2022 16:42:48 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Mon, 17 Jan 2022 16:42:48 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.106) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Mon, 17 Jan 2022 16:42:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DFhhoKjAVeDF0BSTXuJTU0F3ws07oCWHK12erijF3wTDrt8QvI48AIA8cXHf8N9hM5fYerh0Jn9qCYmZtqRuulx86rDHxAQ1eZ7mjvPQaH6Hc0WBVLIvVFkk5yn2fpT701LPGQaMC9/ZXMMXrDiCAufdC/UkJZXE0Cg3cjlM3LlE6DnXGz/dd8hfakHIWzyOe2PsexAtr65ku6o+WPSqE8Ai+lgeVWzk4D4ijpAG7lHfoWOcYZ7kc6B8phmQ0nI1WopuuGeS7zzWLkslzJjP10ii2TTqCJgIuLJOP3x8Y8DBdLWx+9reZGqT+ZaaHiJIbamQgvmju47AmtZNaZR1mg== 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=kxAbcfYp/Ung65kaYqOy975EctcgHP18rYyo0OsWsZw=; b=Dh0LLxMGZaF1D+n9G4jS/QG9qU61fjlOsnaTOFfhKHO43V3l4mxMvcBe4ekNj5zQ8Qt9iqO93xc481Wq+fl+ZLoHxPfk9blPAYbLVzJj9R6uCiBYxmHB7ewVCOAT0YpDOV9NSRVp18mEp0bJU4H7V32E+ngEUvoA+UBjxls2QD5p2XzEaFFbH7KStlVTRPnotgBu0+3npTm1X/lAcwx6O8iRk0t+0PcL0fkUwjyahofizb0FUXunRNDIauCq8UhL/891S0wyna431UZYmE1c34WHCWN+pTirvvdiQf5ycXOl+WXyxAB9XBMw/BFBNq0+moPJbYGQsTTvHCdukefWKQ== 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 DM6PR11MB2668.namprd11.prod.outlook.com (2603:10b6:5:c7::14) by DM8PR11MB5685.namprd11.prod.outlook.com (2603:10b6:8:20::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Tue, 18 Jan 2022 00:42:27 +0000 Received: from DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::8838:289a:895f:1fc4]) by DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::8838:289a:895f:1fc4%4]) with mapi id 15.20.4888.014; Tue, 18 Jan 2022 00:42:27 +0000 From: "Chen Lin Z" To: "Gao, Liming" , "devel@edk2.groups.io" , "Huang, Long1" CC: "Bi, Dandan" , "Feng, Bob C" , "Zhang, Di" , "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: AQHYBgAkWD0utY1K8Uq6mu7hIOGU7qxnFZMAgADhqXA= Date: Tue, 18 Jan 2022 00:42:27 +0000 Message-ID: References: <035601d80b90$cab5fc30$6021f490$@byosoft.com.cn> In-Reply-To: <035601d80b90$cab5fc30$6021f490$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action 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: 76ad9847-2865-409d-a226-08d9da1b66b8 x-ms-traffictypediagnostic: DM8PR11MB5685:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /Y1uX5AHwQRsC8jc8YSytLFf68x1Rc+amzRrTzJ7VopEC63D58mjV+9aK8AIdoNDb454LqFnm+tzVrIqy3504oFzMQk83+XwW2iY3NT9OBVgOvrRfceIGM5k80Gvz2mt/6Ts8292ZPjA/OwYSwbBVB7SY9NAu60QF07lEEhBdD/JUBGWimJUFmqrlvR0Hs5U170fX9l2lDi9h5uNJ8JSNa7Jqep2J0n/OrZzGyEstMhKrxmQFudvgI94qEnuDGmg6BTABUReLJ4Pbuh9Kbbmk6BkeEm0Zu7bRxeOuoAP9xGG4g/YHoa/1s3sbDrDrwRjoezy4QsoLolwTMuoFIaO9Mnxhrl2QgfjMQ+ceLddggyQS1jBG64h+NY/uUOtalwbXIlZyzJFdgtX4SbzhKyYL9wojs9JFNUitR2JdhRLCC88DJM9MOixJ5D0eknZhuGZVRO8ikrMlJZlPHwDtahut3ZBtm0tp1LcvAtIo7NtE8sGJjqzymG4NNCECn5eknKnl0IuoDBTExptccd7dmdDY1YYwvNpIg5YDorIZzUHVre3pmt0U5rgLkq5ggNSwgg5MuwP0o8Aq6OgS7Yn10/x9NqLMyANgTVyDBvoo8y5Xc+CtYrdZVcxLqyP5hULrrwhpR0cOhhCV1iTQV0Hfwx3lMDBwqGbGA99140Vqw/4rRhS/h+oKRea5O0eCSxGqBcUZpjk8LWmXOzpneaVQR+pIjKN51O6LBn0AiMzZiweFePc0G9g1Zifz0/x2/oQdP9e1u9dKEZiK+cTRW21cyCbvhUEa7sx7xpSfDAhExP8FoyJ03TmCgRNXhVHaHSSptptx2HdKYVJxgd4jDmyByNHOQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2668.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66476007)(2906002)(66446008)(66556008)(107886003)(19627235002)(9686003)(66946007)(64756008)(33656002)(6636002)(110136005)(186003)(54906003)(5660300002)(52536014)(8676002)(4326008)(8936002)(71200400001)(316002)(30864003)(6506007)(26005)(38100700002)(508600001)(122000001)(966005)(7696005)(76116006)(38070700005)(83380400001)(82960400001)(86362001)(53546011)(55016003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UzJJWGlrRUVLbGtYNWs2cFh3UVZpQnUxcXY5RHZVMzhZcE1ucWMzem8xeWVY?= =?utf-8?B?ZFhlSWlnYnErUU1aYll6ZTVXZE0vMG1VQVhKRG8rMEI1Z21VZDlPUm0yREVN?= =?utf-8?B?S29Bd2ZkNC9vZlEzc255ZFdtRFFZZXRzMi9aTncyRS9yc1FuLzQ0Mjc4d1Ey?= =?utf-8?B?Yzc3bXFqM1IzQzVYQ0hMZkMxL0VNbGFxMGExeGZZVldHQ3gzT3hBenZmWjVo?= =?utf-8?B?aENvdXpPQm1CMTVGV0R2eGFuYmRmMExtaytwTFI0VEJYV0t1NXJjNmd0dVRy?= =?utf-8?B?REZnM0ZRWmZWaktpWUtYbnYzL2xjMmdXZlhjZzhBTDFwbDFUSHZCUWVBZ0p6?= =?utf-8?B?N3F5YTVxdlNHTDl6dXRRQkxxcGtJbHh1QTB3ZlovTDBVd3J3RWtmR3FGSFZF?= =?utf-8?B?SlNQU1BuNDVJYzZ3UmVRVUx6dUV6akpkUTVKeDhLTGlJTVNrM1VPOTNPb2lS?= =?utf-8?B?a3h4V21HS3ZvNGltcU5ra0luS09lVk1LYUNPY0Noc21qUE91djFuMFIwQ0g2?= =?utf-8?B?ZVdMOUhGUStxSUd0UW9EYnJURHp1T0pQQkJmakZRd21nOEx2a3ZKVUwrVTN6?= =?utf-8?B?djY0QUlCWXArTTQ3b1ROeE5ibWprSlp6SEEyWkN4KzVFVEtSRHdpbVZMZlJC?= =?utf-8?B?M2JkcUNCWjZWR05rcUtSQVhMbzUzbklsUnpJUHRrYWVjTVNxUnlPNlhQNmM0?= =?utf-8?B?MkdadlFydlRDaFJVSU84VFkyNmQ3ZVRLbE9ZTElBV00waEdWV0hZRytrNUJm?= =?utf-8?B?R1VWbDRKeFJZaEFWc0pnd3BsNTdoVGJudHJwcEovRUppQUdwQVZHQWJUZ2V3?= =?utf-8?B?cmIrUGIwRG9Fb3lQcWNnTnBzM3AvTTB1VUFVNWI0R0sxUXdOdnhKV212a2FL?= =?utf-8?B?RHVkYmYyRjdvblZucGpJdEtHVlRnUnNBbVQ2TzNZSzZMcHo0QzJORk14QTNm?= =?utf-8?B?OGt2OHFhQzdhcG9CeVlOWHkwamMzOWNNMEVWWGtkWTZyNjIwTmZRUVZPSy9K?= =?utf-8?B?K1R3ZFg5UGVvcmVZVzZBaFlWbExSVXhEM0tOcW9JN0tMZFZTcmtqWTdEekFF?= =?utf-8?B?S1JhWmJVdkhFUkhsUnNudFc5TDNlRU5IK1VLbEFqQTRkaVQ2cGY4VDM2RllZ?= =?utf-8?B?NmVwbjRJcWFUMDl6NjNlYUFsMnk1c3FQTmpuN2FTeVA0TnlVYmc5WUt3UElC?= =?utf-8?B?cVJiQzdXdFJPdnZ2Vmw1MlFJb2gxY1JBMzR4M1pXMjhSN1R1aXVSekZrL3lh?= =?utf-8?B?d0hqVURlZVFWNDg5R0dsMEthanpDdm54QTVmMUJxdHkwNFgzVHQ0Z1QwaU1G?= =?utf-8?B?WHJIdjNRRFI0WmtvUnMwMi81U0VOWE9KcUtPVHVtODBGRnUwZzdNMG00STBH?= =?utf-8?B?L3JQMWM5RzZ5a0h1K0QvRFNlOFQ2OGtrL1ZqbTdUcDlYK0pUajFBRVZYaTlZ?= =?utf-8?B?M0lwc3BtNHBvT01GVDN6cmhOc01Xand2RHN4VWNhS1orTmdFTFBGdGRqYVNP?= =?utf-8?B?N1RtMUhFa3E4SGZaSHR1clVDbkdqM2J1a2hhQU1DdkN0c2UwNkg5UlZZVE9Q?= =?utf-8?B?Y3ROZzdBcGNJOEEvaUtWNkxBVVh2UzhzSjR4T3I0dlhTSVpMbnB3TEFBZnd4?= =?utf-8?B?b0FiM1JxWENERHhGWDEvaHEzaVBxSldGVVBCUjA2dXYvZ0VyeTRyRGZuYXNl?= =?utf-8?B?ay9xUEI4N0dnc3hHaDBTM2tpYmhGYjEvcU9Yb25jSklNSk5kZFRvcW03YkdR?= =?utf-8?B?Yk5wamhFM1hRM0YwTHpkSDcrMWJ5SGk5bU41NlVWKzVWWkk0WjNqTHhYSEVT?= =?utf-8?B?UVMweFF6NVhQZXJmTmpjcFByVCtTYVEzOERsSkdDbGM5Rk9mS0tiVDhZTWlF?= =?utf-8?B?OU9KdjlyL3JCdWVKMk1zYmpNNHYvanBOTm1ndHFiZmtNc2dobG44SkhUUEdT?= =?utf-8?B?Y2lRQzNxR0RKV003c3dEQWJ1bHpuWWx3cnVTaUlhWG5Ca1ArenpYcFNHa2p1?= =?utf-8?B?b0RGNjRmY1M1dmlGTUVxSStvdUZleFVSWFVyT3NGbm1qa2htQUxiOTJlbWNP?= =?utf-8?B?ZmczRU95MlFoVFpEOHBwdENjRGZCZHlySXU1VW05blFpRmZmQzJVNDBWMEts?= =?utf-8?B?cW5ncERuYmgvM0xXQVFjcWVIQ0x3YUg4NXREYTVsSFBiTzJjdWhjRHJOa0gv?= =?utf-8?Q?VHgw7WPgVs20DT0IEkSzVj0=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2668.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76ad9847-2865-409d-a226-08d9da1b66b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2022 00:42:27.0734 (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: MTY08QdzgPeIPBJtgM1k1tr3si4sQdmjT6ZNaSmAfLeLiT2s+21QE5v583aBt6Me32llJMoNNOzQ6I1DIMJe5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR11MB5685 Return-Path: lin.z.chen@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLCANCiAgDQogICBQbHMgc2VlIG15IGNvbW1lbnRzIGJlbG93Lg0KDQoxLiANClBj ZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIgdHlwZSBpcyBEeW5hbWljRXguIEl0cyBQY2RHZXRQ dHIgaXMgc2FtZSB0byBQY2RHZXRFeFB0ci4gVGhpcyBjaGFuZ2UgaXMgbm90IHJlcXVpcmVkLg0K DQpbTGluXSBJdCdsbCBnZXQgYWxpZ25tZW50IHdpdGggUEVJIHBoYXNlIHJlZmVyZW5jZSBJZiB1 c2luZyBQY2RHZXRFeFB0ciB2ZXJzaW9uLg0KRWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1BD RC9QZWkvUGNkLmMjMTY2DQpEYXRhQnVmZmVyID0gKFVJTlQ4ICopUGVpUGNkR2V0UHRyRXggKCZn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQsIFBjZFRva2VuIChQY2ROdlN0b3JlRGVmYXVs dFZhbHVlQnVmZmVyKSk7DQoNCjIuIA0KVmFyaWFibGVTdG9yYWdlIGRhdGEgYnVmZmVyIGlzIGZy b20gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlci4NClBjZE52U3RvcmVEZWZhdWx0VmFsdWVC dWZmZXIgaXMgYXV0byBnZW5lcmF0ZWQgYnkgQmFzZVRvb2xzLiANCkJ5IGRlc2lnbiwgaXRzIGRh dGEgZm9ybWF0IGlzIGFsd2F5cyBub3JtYWwgdmFyaWFibGUgc3RvcmFnZSBmb3JtYXQuIA0KU28s IGl0cyB2YWx1ZSBjYW4ndCBiZSBhdXRoIHZhcmlhYmxlIGZvcm1hdC4NCg0KW0xpbl0gQmFzZVRv b2xzIGNhbiBnZW5lcmF0ZSBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIHN0b3JhZ2UgZm9ybWF0IG5v dyAoc2VlIGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzgzMzI5KSwgDQog c2luY2UgcHJldmlvdXMgRkNFIHRvb2wgZ2VuZXJhdGVzIGF1dGhlbnRpY2F0ZWQgZm9ybWF0LCB3 ZSB3YW50IHRvIGtlZXAgdmFyaWFibGUgc3RvcmFnZSBmb3JtYXQgbm8gY2hhbmdlcyBhZnRlciBz d2l0Y2hpbmcgdG8gU3RydWN0dXJlUGNkLg0KDQpUaGFua3MsDQpMaW4NCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu PiANClNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNywgMjAyMiA2OjU2IFBNDQpUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IEh1YW5nLCBMb25nMSA8bG9uZzEuaHVhbmdAaW50ZWwuY29tPg0KQ2M6IENo ZW4sIExpbiBaIDxsaW4uei5jaGVuQGludGVsLmNvbT47IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBp bnRlbC5jb20+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiDl m57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9IaWlEYXRhYmFzZUR4ZTog QWRkIFN1cHBvcnQgZm9yIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCg0KTG9uZzoNCiAgSSBhZGQg bXkgY29tbWVudHMgYmVsb3cuIA0KDQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu2 5Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IOS7o+ihqCBM b25nMSBIdWFuZw0KPiDlj5HpgIHml7bpl7Q6IDIwMjLlubQx5pyIMTHml6UgMTowMw0KPiDmlLbk u7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IOaKhOmAgTogSHVhbmcgTG9uZyA8bG9uZzEu aHVhbmdAaW50ZWwuY29tPjsgTGltaW5nIEdhbyANCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47IENoZW4gTGluIFogPGxpbi56LmNoZW5AaW50ZWwuY29tPjsgRGFuZGFuIA0KPiBCaSA8ZGFu ZGFuLmJpQGludGVsLmNvbT4NCj4g5Li76aKYOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1 bGVQa2cvSGlpRGF0YWJhc2VEeGU6IEFkZCBTdXBwb3J0IGZvciANCj4gYXV0aGVudGljYXRlZCB2 YXJpYWJsZQ0KPiANCj4gUkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9Mzc5Ng0KPiANCj4gRGF0YWJhc2UuYzoNCj4gCTEuIFJlcGxhY2UgUGNkR2V0RXhQ dHIgd2l0aCBQY2RHZXRFeFB0ci4NCj4gCTIuIEFkZCBGaW5kQXV0aFZhcmlhYmxlRGF0YSBmdW5j dGlvbiB0byBwYXJzZSBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIA0KPiB0eXBlIGZvciBnZXR0aW5n IGEgY29ycmVjdCBkZWZhdWx0IHZhbHVlIGluIFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIu DQo+IA0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiBDYzog Q2hlbiBMaW4gWiA8bGluLnouY2hlbkBpbnRlbC5jb20+DQo+IENjOiBEYW5kYW4gQmkgPGRhbmRh bi5iaUBpbnRlbC5jb20+DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBMb25nIDxsb25nMS5o dWFuZ0BpbnRlbC5jb20+DQo+IC0tLQ0KPiAgLi4uL1VuaXZlcnNhbC9IaWlEYXRhYmFzZUR4ZS9E YXRhYmFzZS5jICAgICAgIHwgMTQ3ICsrKysrKysrKysrKystLS0tLQ0KPiAgLi4uL0hpaURhdGFi YXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZiAgICAgICAgIHwgICAzICsNCj4gIDIgZmlsZXMgY2hh bmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdp dCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VEeGUvRGF0YWJhc2UuYw0KPiBi L01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VEeGUvRGF0YWJhc2UuYw0KPiBpbmRl eCAwYjA5YzI0ZDUyLi5jMDU1ZmEwZjI5IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9IaWlEYXRhYmFzZUR4ZS9EYXRhYmFzZS5jDQo+IEBAIC02MDMsNiArNjAzLDQ1IEBA IEZpbmRWYXJpYWJsZURhdGEgKA0KPiAgICByZXR1cm4gTlVMTDsNCj4gDQo+ICB9DQo+IA0KPiAN Cj4gDQo+ICsvKioNCj4gDQo+ICsgIEZpbmQgdGhlIG1hdGNoZWQgYXV0aGVudGljYXRlZCB2YXJp YWJsZSBmcm9tIHRoZSBpbnB1dCB2YXJpYWJsZQ0Kc3RvcmFnZS4NCj4gDQo+ICsNCj4gDQo+ICsg IEBwYXJhbVtpbl0gVmFyaWFibGVTdG9yYWdlIFBvaW50IHRvIHRoZSB2YXJpYWJsZSBzdG9yYWdl IGhlYWRlci4NCj4gDQo+ICsgIEBwYXJhbVtpbl0gVmFyR3VpZCAgICAgICAgIEEgdW5pcXVlIGlk ZW50aWZpZXIgZm9yIHRoZSB2YXJpYWJsZS4NCj4gDQo+ICsgIEBwYXJhbVtpbl0gVmFyQXR0cmli dXRlICAgIFRoZSBhdHRyaWJ1dGVzIGJpdG1hc2sgZm9yIHRoZSB2YXJpYWJsZS4NCj4gDQo+ICsg IEBwYXJhbVtpbl0gVmFyTmFtZSAgICAgICAgIEEgTnVsbC10ZXJtaW5hdGVkIGFzY2lpIHN0cmlu ZyB0aGF0IGlzIHRoZQ0KPiBuYW1lIG9mIHRoZSB2YXJpYWJsZS4NCj4gDQo+ICsNCj4gDQo+ICsg IEByZXR1cm4gUG9pbnRlciB0byB0aGUgbWF0Y2hlZCB2YXJpYWJsZSBoZWFkZXIgb3IgTlVMTCBp ZiBub3QgZm91bmQuDQo+IA0KPiArKiovDQo+IA0KPiArQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9I RUFERVIgKg0KPiANCj4gK0ZpbmRBdXRoVmFyaWFibGVEYXRhICgNCj4gDQo+ICsgIElOICBWQVJJ QUJMRV9TVE9SRV9IRUFERVIgICpWYXJpYWJsZVN0b3JhZ2UsDQo+IA0KPiArICBJTiAgRUZJX0dV SUQgICAgICAgICAgICAgICAqVmFyR3VpZCwNCj4gDQo+ICsgIElOICBVSU5UMzIgICAgICAgICAg ICAgICAgIFZhckF0dHJpYnV0ZSwNCj4gDQo+ICsgIElOICBDSEFSMTYgICAgICAgICAgICAgICAg ICpWYXJOYW1lDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgQVVUSEVOVElDQVRFRF9W QVJJQUJMRV9IRUFERVIgICpBdXRoVmFyaWFibGVIZWFkZXI7DQo+IA0KPiArICBBVVRIRU5USUNB VEVEX1ZBUklBQkxFX0hFQURFUiAgKkF1dGhWYXJpYWJsZUVuZDsNCj4gDQo+ICsNCj4gDQo+ICsg IEF1dGhWYXJpYWJsZUVuZCAgICA9IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUiAqKSgo VUlOVDgNCj4gKilWYXJpYWJsZVN0b3JhZ2UgKyBWYXJpYWJsZVN0b3JhZ2UtPlNpemUpOw0KPiAN Cj4gKyAgQXV0aFZhcmlhYmxlSGVhZGVyID0gKEFVVEhFTlRJQ0FURURfVkFSSUFCTEVfSEVBREVS DQo+ICopKFZhcmlhYmxlU3RvcmFnZSArIDEpOw0KPiANCj4gKyAgQXV0aFZhcmlhYmxlSGVhZGVy ID0gKEFVVEhFTlRJQ0FURURfVkFSSUFCTEVfSEVBREVSDQo+ICopSEVBREVSX0FMSUdOIChBdXRo VmFyaWFibGVIZWFkZXIpOw0KPiANCj4gKyAgd2hpbGUgKEF1dGhWYXJpYWJsZUhlYWRlciA8IEF1 dGhWYXJpYWJsZUVuZCkgew0KPiANCj4gKyAgICBpZiAoQ29tcGFyZUd1aWQgKCZBdXRoVmFyaWFi bGVIZWFkZXItPlZlbmRvckd1aWQsIFZhckd1aWQpICYmDQo+IA0KPiArICAgICAgICAoQXV0aFZh cmlhYmxlSGVhZGVyLT5BdHRyaWJ1dGVzID09IFZhckF0dHJpYnV0ZSkgJiYNCj4gDQo+ICsgICAg ICAgIChTdHJDbXAgKFZhck5hbWUsIChDSEFSMTYgKikoQXV0aFZhcmlhYmxlSGVhZGVyICsgMSkp ID09IDApKQ0KPiANCj4gKyAgICB7DQo+IA0KPiArICAgICAgcmV0dXJuIEF1dGhWYXJpYWJsZUhl YWRlcjsNCj4gDQo+ICsgICAgfQ0KPiANCj4gKw0KPiANCj4gKyAgICBBdXRoVmFyaWFibGVIZWFk ZXIgPSAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVINCj4gKikoKFVJTlQ4ICopQXV0aFZh cmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUikg KyBBdXRoVmFyaWFibGVIZWFkZXItPk5hbWVTaXplICsNCj4gQXV0aFZhcmlhYmxlSGVhZGVyLT5E YXRhU2l6ZSk7DQo+IA0KPiArICAgIEF1dGhWYXJpYWJsZUhlYWRlciA9IChBVVRIRU5USUNBVEVE X1ZBUklBQkxFX0hFQURFUg0KPiAqKUhFQURFUl9BTElHTiAoQXV0aFZhcmlhYmxlSGVhZGVyKTsN Cj4gDQo+ICsgIH0NCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiBOVUxMOw0KPiANCj4gK30NCj4g DQo+ICsNCj4gDQo+ICAvKioNCj4gDQo+ICAgIEZpbmQgcXVlc3Rpb24gZGVmYXVsdCB2YWx1ZSBm cm9tIFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXINCj4gDQo+IA0KPiANCj4gQEAgLTYyNiwy NSArNjY1LDI3IEBAIEZpbmRRdWVzdGlvbkRlZmF1bHRTZXR0aW5nICgNCj4gICAgSU4gIEJPT0xF QU4gICAgICAgICAgICAgICAgICBCaXRGaWVsZFF1ZXN0aW9uDQo+IA0KPiAgICApDQo+IA0KPiAg ew0KPiANCj4gLSAgVkFSSUFCTEVfSEVBREVSICAgICAgICAgICpWYXJpYWJsZUhlYWRlcjsNCj4g DQo+IC0gIFZBUklBQkxFX1NUT1JFX0hFQURFUiAgICAqVmFyaWFibGVTdG9yYWdlOw0KPiANCj4g LSAgTElTVF9FTlRSWSAgICAgICAgICAgICAgICpMaW5rOw0KPiANCj4gLSAgVkFSU1RPUkFHRV9E RUZBVUxUX0RBVEEgICpFbnRyeTsNCj4gDQo+IC0gIFZBUklBQkxFX1NUT1JFX0hFQURFUiAgICAq TnZTdG9yZUJ1ZmZlcjsNCj4gDQo+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqRGF0YUJ1 ZmZlcjsNCj4gDQo+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqQnVmZmVyRW5kOw0KPiAN Cj4gLSAgQk9PTEVBTiAgICAgICAgICAgICAgICAgIElzRm91bmQ7DQo+IA0KPiAtICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+IA0KPiAtICBVSU5UMzIgICAgICAgICAgICAgICAg ICAgQnVmZmVyVmFsdWU7DQo+IA0KPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgQml0Rmll bGRWYWw7DQo+IA0KPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgQml0T2Zmc2V0Ow0KPiAN Cj4gLSAgVUlOVE4gICAgICAgICAgICAgICAgICAgIEJ5dGVPZmZzZXQ7DQo+IA0KPiAtICBVSU5U TiAgICAgICAgICAgICAgICAgICAgQml0V2lkdGg7DQo+IA0KPiAtICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgU3RhcnRCaXQ7DQo+IA0KPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgRW5k Qml0Ow0KPiANCj4gLSAgUENEX0RFRkFVTFRfREFUQSAgICAgICAgICpEYXRhSGVhZGVyOw0KPiAN Cj4gLSAgUENEX0RFRkFVTFRfSU5GTyAgICAgICAgICpEZWZhdWx0SW5mbzsNCj4gDQo+IC0gIFBD RF9EQVRBX0RFTFRBICAgICAgICAgICAqRGVsdGFEYXRhOw0KPiANCj4gKyAgVkFSSUFCTEVfSEVB REVSICAgICAgICAgICAgICAgICAgICpWYXJpYWJsZUhlYWRlcjsNCj4gDQo+ICsgIEFVVEhFTlRJ Q0FURURfVkFSSUFCTEVfSEVBREVSICAgICAqQXV0aFZhcmlhYmxlSGVhZGVyOw0KPiANCj4gKyAg VkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICAgICAgICAgICpWYXJpYWJsZVN0b3JhZ2U7DQo+IA0K PiArICBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICAgICAgICAgKkxpbms7DQo+IA0KPiArICBW QVJTVE9SQUdFX0RFRkFVTFRfREFUQSAgICAgICAgICAgKkVudHJ5Ow0KPiANCj4gKyAgVkFSSUFC TEVfU1RPUkVfSEVBREVSICAgICAgICAgICAgICpOdlN0b3JlQnVmZmVyOw0KPiANCj4gKyAgVUlO VDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICpEYXRhQnVmZmVyOw0KPiANCj4gKyAgVUlO VDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICpCdWZmZXJFbmQ7DQo+IA0KPiArICBCT09M RUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aEZvcm1hdDsNCj4gDQo+ICsgIEJPT0xF QU4gICAgICAgICAgICAgICAgICAgICAgICAgICBJc0ZvdW5kOw0KPiANCj4gKyAgVUlOVE4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiANCj4gKyAgVUlOVDMyICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJ1ZmZlclZhbHVlOw0KPiANCj4gKyAgVUlOVDMyICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJpdEZpZWxkVmFsOw0KPiANCj4gKyAgVUlOVE4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJpdE9mZnNldDsNCj4gDQo+ICsgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCeXRlT2Zmc2V0Ow0KPiANCj4gKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJpdFdpZHRoOw0KPiANCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0YXJ0Qml0Ow0KPiANCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVuZEJpdDsNCj4gDQo+ICsgIFBDRF9ERUZBVUxUX0RBVEEgICAgICAgICAgICAg ICAgICAqRGF0YUhlYWRlcjsNCj4gDQo+ICsgIFBDRF9ERUZBVUxUX0lORk8gICAgICAgICAgICAg ICAgICAqRGVmYXVsdEluZm87DQo+IA0KPiArICBQQ0RfREFUQV9ERUxUQSAgICAgICAgICAgICAg ICAgICAgKkRlbHRhRGF0YTsNCj4gDQo+IA0KPiANCj4gICAgaWYgKGdTa3VJZCA9PSAweEZGRkZG RkZGRkZGRkZGRkYpIHsNCj4gDQo+ICAgICAgZ1NrdUlkID0gTGliUGNkR2V0U2t1ICgpOw0KPiAN Cj4gQEAgLTY2Niw3ICs3MDcsNyBAQCBGaW5kUXVlc3Rpb25EZWZhdWx0U2V0dGluZyAoDQo+ICAg IH0NCj4gDQo+IA0KPiANCj4gICAgaWYgKExpbmsgPT0gJmdWYXJTdG9yYWdlTGlzdCkgew0KPiAN Cj4gLSAgICBEYXRhQnVmZmVyICAgICAgICAgID0gKFVJTlQ4ICopUGNkR2V0UHRyDQo+IChQY2RO dlN0b3JlRGVmYXVsdFZhbHVlQnVmZmVyKTsNCj4gDQo+ICsgICAgRGF0YUJ1ZmZlciAgICAgICAg ICA9IChVSU5UOCAqKVBjZEdldEV4UHRyDQo+ICgmZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLCBQY2ROdlN0b3JlRGVmYXVsdFZhbHVlQnVmZmVyKTsNCj4gDQpQY2ROdlN0b3JlRGVmYXVs dFZhbHVlQnVmZmVyIHR5cGUgaXMgRHluYW1pY0V4LiBJdHMgUGNkR2V0UHRyIGlzIHNhbWUgdG8g UGNkR2V0RXhQdHIuIFRoaXMgY2hhbmdlIGlzIG5vdCByZXF1aXJlZC4gDQoNCj4gICAgICBnTnZE ZWZhdWx0U3RvcmVTaXplID0gKChQQ0RfTlZfU1RPUkVfREVGQVVMVF9CVUZGRVJfSEVBREVSDQo+ ICopRGF0YUJ1ZmZlciktPkxlbmd0aDsNCj4gDQo+ICAgICAgLy8NCj4gDQo+ICAgICAgLy8gVGhl IGZpcnN0IHNlY3Rpb24gZGF0YSBpbmNsdWRlcyBOViBzdG9yYWdlIGRlZmF1bHQgc2V0dGluZy4N Cj4gDQo+IEBAIC03NTAsMTIgKzc5MSwyNyBAQCBGaW5kUXVlc3Rpb25EZWZhdWx0U2V0dGluZyAo DQo+ICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+IA0KPiAgICB9DQo+IA0KPiANCj4gDQo+ ICsgIC8vDQo+IA0KPiArICAvLyBKdWRnZSBpZiB0aGUgdmFyaWFibGUgdHlwZSBpcyBhdXRoZW50 aWNhdGVkLCBkZWZhdWx0IGlzIGZhbHNlDQo+IA0KPiArICAvLw0KPiANCj4gKyAgQXV0aEZvcm1h dCA9IEZBTFNFOw0KPiANCj4gKyAgaWYgKENvbXBhcmVHdWlkICgmVmFyaWFibGVTdG9yYWdlLT5T aWduYXR1cmUsDQo+ICZnRWZpQXV0aGVudGljYXRlZFZhcmlhYmxlR3VpZCkpIHsNCj4gDQo+ICsg ICAgQXV0aEZvcm1hdCA9IFRSVUU7DQo+IA0KPiArICB9DQo+IA0KPiArDQo+IA0KDQoNCj4gICAg Ly8NCj4gDQo+ICAgIC8vIEZpbmQgdGhlIHF1ZXN0aW9uIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUg dmFyaWFibGUgc3RvcmFnZQ0KPiANCj4gICAgLy8NCj4gDQo+IC0gIFZhcmlhYmxlSGVhZGVyID0g RmluZFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLCANCj4gJkVmaVZhclN0b3JlLT5HdWlk LA0KPiBFZmlWYXJTdG9yZS0+QXR0cmlidXRlcywgKENIQVIxNiAqKUVmaVZhclN0b3JlLT5OYW1l KTsNCj4gDQo+IC0gIGlmIChWYXJpYWJsZUhlYWRlciA9PSBOVUxMKSB7DQo+IA0KPiAtICAgIHJl dHVybiBFRklfTk9UX0ZPVU5EOw0KPiANCj4gKyAgaWYoQXV0aEZvcm1hdCkgew0KPiANCj4gKyAg ICBBdXRoVmFyaWFibGVIZWFkZXIgPSBGaW5kQXV0aFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9y YWdlLA0KPiAmRWZpVmFyU3RvcmUtPkd1aWQsIEVmaVZhclN0b3JlLT5BdHRyaWJ1dGVzLCAoQ0hB UjE2IA0KPiAqKUVmaVZhclN0b3JlLT5OYW1lKTsNCj4gDQo+ICsgICAgaWYgKEF1dGhWYXJpYWJs ZUhlYWRlciA9PSBOVUxMKSB7DQo+IA0KPiArICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ IA0KPiArICAgIH0NCj4gDQo+ICsgIH0gZWxzZSB7DQo+IA0KPiArICAgIFZhcmlhYmxlSGVhZGVy ID0gRmluZFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLA0KPiAmRWZpVmFyU3RvcmUtPkd1 aWQsIEVmaVZhclN0b3JlLT5BdHRyaWJ1dGVzLCAoQ0hBUjE2IA0KPiAqKUVmaVZhclN0b3JlLT5O YW1lKTsNCj4gDQo+ICsgICAgaWYgKFZhcmlhYmxlSGVhZGVyID09IE5VTEwpIHsNCj4gDQo+ICsg ICAgICByZXR1cm4gRUZJX05PVF9GT1VORDsNCj4gDQo+ICsgICAgfQ0KPiANCj4gICAgfQ0KPiAN ClZhcmlhYmxlU3RvcmFnZSBkYXRhIGJ1ZmZlciBpcyBmcm9tIFBjZE52U3RvcmVEZWZhdWx0VmFs dWVCdWZmZXIuDQpQY2ROdlN0b3JlRGVmYXVsdFZhbHVlQnVmZmVyIGlzIGF1dG8gZ2VuZXJhdGVk IGJ5IEJhc2VUb29scy4gDQpCeSBkZXNpZ24sIGl0cyBkYXRhIGZvcm1hdCBpcyBhbHdheXMgbm9y bWFsIHZhcmlhYmxlIHN0b3JhZ2UgZm9ybWF0LiANClNvLCBpdHMgdmFsdWUgY2FuJ3QgYmUgYXV0 aCB2YXJpYWJsZSBmb3JtYXQuIA0KDQpUaGFua3MNCkxpbWluZw0KPiANCj4gDQo+ICAgIFN0YXJ0 Qml0ICAgPSAwOw0KPiANCj4gQEAgLTc3MCwyMCArODI2LDM5IEBAIEZpbmRRdWVzdGlvbkRlZmF1 bHRTZXR0aW5nICgNCj4gICAgICBXaWR0aCAgICAgID0gRW5kQml0IC8gOCArIDE7DQo+IA0KPiAg ICB9DQo+IA0KPiANCj4gDQo+IC0gIGlmIChWYXJpYWJsZUhlYWRlci0+RGF0YVNpemUgPCBCeXRl T2Zmc2V0ICsgV2lkdGgpIHsNCj4gDQo+IC0gICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4gDQo+IC0gIH0NCj4gDQo+ICsgIGlmKEF1dGhGb3JtYXQpIHsNCj4gDQo+ICsgICAgaWYg KEF1dGhWYXJpYWJsZUhlYWRlci0+RGF0YVNpemUgPCBCeXRlT2Zmc2V0ICsgV2lkdGgpIHsNCj4g DQo+ICsgICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiANCj4gKyAgICB9DQo+ IA0KPiANCj4gDQo+IC0gIC8vDQo+IA0KPiAtICAvLyBDb3B5IHRoZSBxdWVzdGlvbiB2YWx1ZQ0K PiANCj4gLSAgLy8NCj4gDQo+IC0gIGlmIChWYWx1ZUJ1ZmZlciAhPSBOVUxMKSB7DQo+IA0KPiAt ICAgIGlmIChCaXRGaWVsZFF1ZXN0aW9uKSB7DQo+IA0KPiAtICAgICAgQ29weU1lbSAoJkJ1ZmZl clZhbHVlLCAoVUlOVDggKilWYXJpYWJsZUhlYWRlciArIHNpemVvZg0KPiAoVkFSSUFCTEVfSEVB REVSKSArIFZhcmlhYmxlSGVhZGVyLT5OYW1lU2l6ZSArIEJ5dGVPZmZzZXQsIFdpZHRoKTsNCj4g DQo+IC0gICAgICBCaXRGaWVsZFZhbCA9IEJpdEZpZWxkUmVhZDMyIChCdWZmZXJWYWx1ZSwgU3Rh cnRCaXQsIEVuZEJpdCk7DQo+IA0KPiAtICAgICAgQ29weU1lbSAoVmFsdWVCdWZmZXIsICZCaXRG aWVsZFZhbCwgV2lkdGgpOw0KPiANCj4gLSAgICB9IGVsc2Ugew0KPiANCj4gLSAgICAgIENvcHlN ZW0gKFZhbHVlQnVmZmVyLCAoVUlOVDggKilWYXJpYWJsZUhlYWRlciArIHNpemVvZg0KPiAoVkFS SUFCTEVfSEVBREVSKSArIFZhcmlhYmxlSGVhZGVyLT5OYW1lU2l6ZSArDQo+IElmclF1ZXN0aW9u SGRyLT5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0LCBXaWR0aCk7DQo+IA0KPiArICAgIC8vDQo+IA0K PiArICAgIC8vIENvcHkgdGhlIHF1ZXN0aW9uIHZhbHVlDQo+IA0KPiArICAgIC8vDQo+IA0KPiAr ICAgIGlmIChWYWx1ZUJ1ZmZlciAhPSBOVUxMKSB7DQo+IA0KPiArICAgICAgaWYgKEJpdEZpZWxk UXVlc3Rpb24pIHsNCj4gDQo+ICsgICAgICAgIENvcHlNZW0gKCZCdWZmZXJWYWx1ZSwgKFVJTlQ4 ICopQXV0aFZhcmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+IChBVVRIRU5USUNBVEVEX1ZBUklBQkxF X0hFQURFUikgKyBBdXRoVmFyaWFibGVIZWFkZXItPk5hbWVTaXplICsgDQo+IEJ5dGVPZmZzZXQs IFdpZHRoKTsNCj4gDQo+ICsgICAgICAgIEJpdEZpZWxkVmFsID0gQml0RmllbGRSZWFkMzIgKEJ1 ZmZlclZhbHVlLCBTdGFydEJpdCwgRW5kQml0KTsNCj4gDQo+ICsgICAgICAgIENvcHlNZW0gKFZh bHVlQnVmZmVyLCAmQml0RmllbGRWYWwsIFdpZHRoKTsNCj4gDQo+ICsgICAgICB9IGVsc2Ugew0K PiANCj4gKyAgICAgICAgQ29weU1lbSAoVmFsdWVCdWZmZXIsIChVSU5UOCAqKUF1dGhWYXJpYWJs ZUhlYWRlciArIHNpemVvZg0KPiAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIpICsgQXV0 aFZhcmlhYmxlSGVhZGVyLT5OYW1lU2l6ZSArDQo+IElmclF1ZXN0aW9uSGRyLT5WYXJTdG9yZUlu Zm8uVmFyT2Zmc2V0LCBXaWR0aCk7DQo+IA0KPiArICAgICAgfQ0KPiANCj4gKyAgICB9DQo+IA0K PiArICB9IGVsc2Ugew0KPiANCj4gKyAgICBpZiAoVmFyaWFibGVIZWFkZXItPkRhdGFTaXplIDwg Qnl0ZU9mZnNldCArIFdpZHRoKSB7DQo+IA0KPiArICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BB UkFNRVRFUjsNCj4gDQo+ICsgICAgfQ0KPiANCj4gKw0KPiANCj4gKyAgICAvLw0KPiANCj4gKyAg ICAvLyBDb3B5IHRoZSBxdWVzdGlvbiB2YWx1ZQ0KPiANCj4gKyAgICAvLw0KPiANCj4gKyAgICBp ZiAoVmFsdWVCdWZmZXIgIT0gTlVMTCkgew0KPiANCj4gKyAgICAgIGlmIChCaXRGaWVsZFF1ZXN0 aW9uKSB7DQo+IA0KPiArICAgICAgICBDb3B5TWVtICgmQnVmZmVyVmFsdWUsIChVSU5UOCAqKVZh cmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+IChWQVJJQUJMRV9IRUFERVIpICsgVmFyaWFibGVIZWFk ZXItPk5hbWVTaXplICsgQnl0ZU9mZnNldCwgV2lkdGgpOw0KPiANCj4gKyAgICAgICAgQml0Rmll bGRWYWwgPSBCaXRGaWVsZFJlYWQzMiAoQnVmZmVyVmFsdWUsIFN0YXJ0Qml0LCBFbmRCaXQpOw0K PiANCj4gKyAgICAgICAgQ29weU1lbSAoVmFsdWVCdWZmZXIsICZCaXRGaWVsZFZhbCwgV2lkdGgp Ow0KPiANCj4gKyAgICAgIH0gZWxzZSB7DQo+IA0KPiArICAgICAgICBDb3B5TWVtIChWYWx1ZUJ1 ZmZlciwgKFVJTlQ4ICopVmFyaWFibGVIZWFkZXIgKyBzaXplb2YNCj4gKFZBUklBQkxFX0hFQURF UikgKyBWYXJpYWJsZUhlYWRlci0+TmFtZVNpemUgKw0KPiBJZnJRdWVzdGlvbkhkci0+VmFyU3Rv cmVJbmZvLlZhck9mZnNldCwgV2lkdGgpOw0KPiANCj4gKyAgICAgIH0NCj4gDQo+ICAgICAgfQ0K PiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9IaWlEYXRhYmFzZUR4ZS9IaWlEYXRhYmFzZUR4ZS5pbmYNCj4gYi9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZg0KPiBpbmRleCAwMTE2 ZmI2ZWNiLi5kYWM0ZDYxNGE4IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZg0KPiArKysgYi9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZg0KPiBAQCAtODYsNiAr ODYsOSBAQA0KPiAgICBnRWZpSGlpSW1hZ2VEZWNvZGVyTmFtZUpwZWdHdWlkDQo+IHxnRWZpTWRl TW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkU3VwcG9ydEhpaUltYWdlUHJvdG9jb2wgICMjDQo+ IFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlEDQo+IA0KPiAgICBnRWZpSGlpSW1hZ2VEZWNvZGVy TmFtZVBuZ0d1aWQNCj4gfGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTdXBwb3J0 SGlpSW1hZ2VQcm90b2NvbCAgIyMNCj4gU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQNCj4gDQo+ ICAgIGdFZGtpaUlmckJpdFZhcnN0b3JlR3VpZA0KPiAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMg R1VJRA0KPiANCj4gKyAgZ0VmaUF1dGhlbnRpY2F0ZWRWYXJpYWJsZUd1aWQNCj4gDQo+ICsgIGdF ZmlWYXJpYWJsZUd1aWQNCj4gDQo+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZA0K PiANCj4gDQo+IA0KPiAgW0RlcGV4XQ0KPiANCj4gICAgVFJVRQ0KPiANCj4gLS0NCj4gMi4yNS4x DQo+IA0KPiANCj4gDQo+IC09LT0tPS09LT0tPQ0KPiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNl aXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuDQo+IFZpZXcvUmVwbHkgT25saW5l ICgjODU0NDcpOiANCj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvODU0 NDcNCj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC84ODMxOTQ0OC80OTA1 OTUzDQo+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiBVbnN1YnNj cmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViDQo+IFtnYW9saW1pbmdA Ynlvc29mdC5jb20uY25dDQo+IC09LT0tPS09LT0tPQ0KPiANCg0KDQoNCg==