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.web11.4840.1615268072744560835 for ; Mon, 08 Mar 2021 21:34:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=bIwshT4w; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: min.m.xu@intel.com) IronPort-SDR: j72EKdoa/PtD8v+UOLdnWxBKxq5vypSFgCwzX8oQxavxV9Zo9xiNY8x/y6QEwvhcyPhRu0NLeG hMaqUmlLUJ2g== X-IronPort-AV: E=McAfee;i="6000,8403,9917"; a="168076370" X-IronPort-AV: E=Sophos;i="5.81,234,1610438400"; d="scan'208";a="168076370" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Mar 2021 21:34:31 -0800 IronPort-SDR: +4he0IIMe6bgrB8jiPJhSuWbzujlmhDZWBmXdm8MnxK6SCXJ1m0NuktbEILqGHhsZVFIezQzbC PYZ0bx4jE/TA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,234,1610438400"; d="scan'208";a="509167250" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 08 Mar 2021 21:34:31 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) 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.2106.2; Mon, 8 Mar 2021 21:34:30 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 8 Mar 2021 21:34:30 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) 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.2106.2; Mon, 8 Mar 2021 21:33:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TDpgvuRLvRkJCvPn7TxV65WarEGSvCat3qIYf7Fidns5S5Y/Jfz2hJzpDQCQtvIdmIQ/aSS6S2MkKW9++d0/LozIegmRlzyRLtnhgAuIw19SQpfDnDeyDbXtaU5jhi7ZpIjRgBtKXCczRmEGbQmGHN1E+Z76gBX5ezBpPoECkX8Kxip0r55+gwDtmTJ15nr8sMlvP0MGR59VlmdBSYB3yUC2I9/iDzedSkmd5nKgQGJ4NE8IngDnef8iosSOL5DTWFcN3FSGPLMhyMNZaVZBKS4RcKHLOFDHBLNTD+AM3KMgT2NzS5Aa68+1iHKKibVnA66oEkK/ncHUYH4EMmCidw== 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-SenderADCheck; bh=Amr+JPE/W8EW85sXFUCeT7r4oQr/qujb14iovQCw++I=; b=BBRipySIElgvvIBPyCmMDsTGLeekSBhdeEdsTqT8DTwn5JUCUJalYIyrjYkw7wNTrrsGYeN64KSde3u0JOuS4k+aVNy/UqKdUIDz0CE/9dAIgwWF46QMUMU5PJejEE10XaxIgV/XalsKggocvBln72GgrQ6jlWwSZCx1EvGeGoDbJ2cIuI8S9eFZjHnJq/fMN5+km2aHekCTOjXRhEN+IHapnrbXx+fC+iKbz/Id/QVThWi9iykOV3SQfPBJy0tRgVAs0TT2RJ46jksAzmBqSssrFZXgzv9HroWO9ORX0lltQJ7k4PHXpJVsEzUydGnw1M8B3QcsWWMdCn7A8QnWxQ== 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=Amr+JPE/W8EW85sXFUCeT7r4oQr/qujb14iovQCw++I=; b=bIwshT4woXBZtGSb1zdYN6zadafXfExCzKbbH7TSp6I4/u2SnDbHYHdYLpsl05acixVspKNNjYKzqY3CVM5H8pL+3u6ed7jREKwIgPXZs3/g5O8M5gJwZDuWNs0POeItT5QUWXwhRev3IsZbWFq91R4akdQFB4p88YRYfCxQ0Jg= Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by PH0PR11MB4968.namprd11.prod.outlook.com (2603:10b6:510:39::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17; Tue, 9 Mar 2021 05:33:08 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::5dd:1fc:498c:93ae]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::5dd:1fc:498c:93ae%7]) with mapi id 15.20.3890.039; Tue, 9 Mar 2021 05:33:08 +0000 From: "Min Xu" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Reiland, Doug" , "Liu, Zhiguang" , "Yao, Jiewen" Subject: Re: [edk2-devel] [PATCH 1/3] MdePkg: Add Tdx support lib Thread-Topic: [edk2-devel] [PATCH 1/3] MdePkg: Add Tdx support lib Thread-Index: AQHXFH7T2+we185TwE2KkbwtftejJ6p64OEAgAAlUWA= Date: Tue, 9 Mar 2021 05:33:08 +0000 Message-ID: References: <9986f966565c980ac4e33a86c7a7ce41533433ae.1615249174.git.min.m.xu@intel.com> <000c01d71484$f0169790$d043c6b0$@byosoft.com.cn> In-Reply-To: <000c01d71484$f0169790$d043c6b0$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 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-originating-ip: [192.198.147.198] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2fc5c69c-5170-4481-ddcf-08d8e2bcd282 x-ms-traffictypediagnostic: PH0PR11MB4968: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sHtXj5QOMjxr+vY4oQOi3hZO20NyJmTJa1uEpAKnGhoRt7NsoL5ezThoVu7ajR3jlGddoTSmSJeca8+oT36VVFmfxeQpUS5zaS2gdGFqDn3nMyeJsYYfFR4IH4UOx2yz47RY3QsbdpVPkhhDRbihag4eOHDfSKhjtMR7AhSAIMlTRl0wM0pWnSySZjOKeJGudJaPBU+Jz5sWJG8hK7PfdIWBzwB3f7q6Vjwv8KHdje3KgBAFm7kDjYP0wzfQm5V0BiuV29vcan8PmBAZEINB77thA9UxY4/LOMcDnTHK30y9bGMmozbmC/pqLHQ4tJPIIlKW6MtdeA2+QNqET4DMi3ozDTs4vipWT9RKj2S4144NbBhUn5xGEFuGR6+iVW1JLK9p5SUzzAY/ZyqIIVAVRcfyx2CpTnCpaqrCL6T/xteZczBTf0K0CHk9rRy//7idY/kFN6GRmSH/6F8L7NSF65xni02bIkO+7nKHnqiCKsA2FYv2UvYWOVQjTy3Hlx4hae+sSm2ZeP6XK6fhgYinoyzg+9wSyyJisbMeuRzZkQaMTayojc0AZjNssgNtTB/eDVVirOzauEo900CNFRlPeg2ydyz2bcQsbt1vOz3L1Uw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(136003)(376002)(346002)(39860400002)(396003)(110136005)(76116006)(478600001)(86362001)(16799955002)(52536014)(186003)(5660300002)(55016002)(71200400001)(54906003)(8936002)(8676002)(66476007)(64756008)(2906002)(53546011)(4326008)(9686003)(66446008)(15188155005)(966005)(107886003)(83380400001)(66556008)(7696005)(33656002)(66946007)(30864003)(26005)(6506007)(316002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NmtPQ09xRU5mcEhUejZhaTY0OGZ2U0FOSndQRDl2Y09sMk5kZEMvVUljcnU1?= =?utf-8?B?Mm1XK01TcmYxYVliY1JhV0FnYzVDUmovVXRiRzZhYjRONzZpY3ozMVZqenp3?= =?utf-8?B?T0NDVkc0YWVZY3AxZDhvVVkwblFUU0Uwb2hPQ004UFljTW1Fc2x3QTRDbXRZ?= =?utf-8?B?bWVleVJjSVpNMUUxMTFoSktzSUtkaHdTV2d1dk1MZjlVZjVuZEpMeDVOejJN?= =?utf-8?B?d01XVEtZYkRaem5CQ09CYWJjMVVvbEwzdW5FN3IrOHZBWU1TOStHUHJ6OFFW?= =?utf-8?B?eXREWWlsaTJEUWg2UnhqNHlodXloMFJqd2N5a0NVRUFGckJvVXpzU0diSEk5?= =?utf-8?B?cFZMeGtwdk85VnJlR0dUaW8ya1l2ekw1c0NjR250dHcrTk9CekNWNXRlTEhw?= =?utf-8?B?NWxabmRJTmVJdVYvbnpVYS95YitKSVB6NW1oeko1MXpmckdDRk5PZU40Sy93?= =?utf-8?B?amhRU3I2WjV6eU5xNGNVUkNxc0VXSnhrb3p5MmpKcVpIa0lNNjVLb01LQS9p?= =?utf-8?B?aTBMK1RVaTgvYUM4aUdUeXFDaCtuSENURVdaWVB0dkdJbzdOY2dhOFUvUVUr?= =?utf-8?B?MnFzcW0zRk5HRjlGendpUTVTb2wzeWhkZXFxTHA2TFZqUDRwMjhEQ3hnSDQ1?= =?utf-8?B?TVJRRW5wcFpiaTA5WkJDSEVGZGd2SGNMVGtKSitJWFROL3J5RmxCZHdnTHU5?= =?utf-8?B?MkZ2QmV1U2NBUU10bWlVNW94b21wNHBCbzdObjkraENYL0I0cjhtWC95REZr?= =?utf-8?B?NWx5YUd4R1lzMGVEZ3p5NHhyV0dVYVRxTG94NGpLb0lBZ3hzZXREVnVCbDR5?= =?utf-8?B?ZWh5SnlqN3krV2R4My9uR3RaalhlUmh6MC9zaEIvNmdqS1YxRGUxSHh5ZTNF?= =?utf-8?B?cFdUbFZ2SXloRlYxQ2hqbFRMYkw1TDBFeW9DVk1ZOHg5OHJnRi9Ca1dkSndO?= =?utf-8?B?dVpkVUtNb3V5YlRINXR0QXZqVDVTRmY0TklyNEY1a3JreitxODRpOU5EK0Qw?= =?utf-8?B?dXhqekhSOWxra1ZEU0cxeUlHSUlMYjd0bGJDMFd0dG8zNkUvU1QzNW5EeFhk?= =?utf-8?B?QzJ3b0o4SVcrSjJrSHlvQnBOcmV3dDIzSUVxSXovSEdyMVdmQVZkV2NReEJy?= =?utf-8?B?SEJwelU2MDYyd0RUK05BUGNvMGdtdTJEVDdLSFdtOTU2OWcrSkk1bFMxU084?= =?utf-8?B?dDArQm0xc2ZSTkJlZHZPbmo3ci9RQ0ZpNGh3TFhTbjZ1eEY1YUozQmVQYWlt?= =?utf-8?B?Q0xMZkJ2cnN0ZHMrUWtYNWJoSmpROWs4Ry9XM083QnV2QmlOMCtDeUdNVUN3?= =?utf-8?B?ZGU3TUZmZ2NDZmRsQmEweFBVRitNZ21CdGRJSWF2WDNaMHkzSE1reDNqcEZ3?= =?utf-8?B?TkMrWU8xWFhpcWpXc1BDTXkwdHA2UnNyNENHM1owSHhEL1NMMmxaZSsrWEQ2?= =?utf-8?B?YisyVmgzR3F1NERONEhDR2lmcWFMNkl0QXNPNUp3eHlLaEFKclN6dk9HT2g1?= =?utf-8?B?SnB5Y2p6b0dOYUZlRkdrOEtsKzg1emRsMUdZUXpxZmxTa3VKVzNuVFlSTmdx?= =?utf-8?B?WEpDM2lYeGZXUVpJd2t2c3NDaUo4T01jYWNjSnVnUTF0RVlLMkdLalJLZVJj?= =?utf-8?B?Yk5FSUIwWnJ3eldaTktqaXY5cFByeDNFM0VJOHZpSUJndHhueW5VN2lXcFgz?= =?utf-8?B?RFlNSWEvdUV2ZFF1NWYyZGRlYkFMNFI4a0l6OVMvOXB2THhwRzZOTmFmZzNp?= =?utf-8?Q?gCLP7heiUmd6e3HXd7oTBgC1RW8/39hr9ee7hVx?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2fc5c69c-5170-4481-ddcf-08d8e2bcd282 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2021 05:33:08.5211 (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: JE1fioI8vhSmD0SM5rUW0Osz7jnNUXq/pC+Y/0/MLL75o/sgPXJiVMb9j2v7o2KCjJkx+pFm54bLspJpKheZSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4968 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIExpbWluZw0KSW4gaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vY29udGVudC93d3cvdXMv ZW4vZGV2ZWxvcC9hcnRpY2xlcy8NCmludGVsLXRydXN0LWRvbWFpbi1leHRlbnNpb25zLmh0bWws IHRoZXJlIGFyZSBkb2N1bWVudHM6DQogIFsxXSBJbnRlbCBURFgoUikgTW9kdWxlIDEuMCBFQVMN CiAgWzJdIEludGVsKFIpIFREWCBHdWVzdC1IeXBlcnZpc29yIENvbW11bmljYXRpb24gSW50ZXJm YWNlDQoNCkRlZml0aW9uIG9mIE1kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVGR4Lmgg Y29tZXMgZnJvbSBbMV1bMl0NCkRlZml0aW9uIG9mIE1kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Rk eC5oIENvbWVzIGZyb20gWzJdIENoYXAgNC4zDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ IE9uIEJlaGFsZiBPZg0KPiBnYW9saW1pbmcNCj4gU2VudDogVHVlc2RheSwgTWFyY2ggOSwgMjAy MSA5OjM5IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWHUsIE1pbiBNIDxtaW4ubS54 dUBpbnRlbC5jb20+DQo+IENjOiBSZWlsYW5kLCBEb3VnIDxkb3VnLnJlaWxhbmRAaW50ZWwuY29t PjsgTGl1LCBaaGlndWFuZw0KPiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IFlhbywgSmlld2Vu IDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbZWRrMi1kZXZlbF0g W1BBVENIIDEvM10gTWRlUGtnOiBBZGQgVGR4IHN1cHBvcnQgbGliDQo+IA0KPiBNaW46DQo+IA0K PiBXaGVyZSBpcyB0aGUgZGVmaW5pdGlvbiBpbiBNZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5k YXJkL1RkeC5oIGZyb20/DQo+IElzIGl0IGZyb20NCj4gaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5j b20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcC9hcnRpY2xlcy9pbnRlbC0NCj4gdHJ1c3QtZG8N Cj4gbWFpbi1leHRlbnNpb25zLmh0bWw/DQo+IA0KPiBXaGVyZSBpcyB0aGUgZGVmaW5pdGlvbiBp biBNZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9UZHguaCBmcm9tPw0KPiANCj4gVGhhbmtzDQo+IExp bWluZw0KPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiDlj5Hku7bkuro6IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g5Luj6KGoDQo+ID4gbWluLm0ueHVA aW50ZWwuY29tDQo+ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0M+aciDnml6UgODo1NQ0KPiA+IOaU tuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiDmioTpgIE6IE1pbiBYdSA8bWluLm0u eHVAaW50ZWwuY29tPjsgRG91ZyBSZWlsYW5kDQo+ID4gPGRvdWcucmVpbGFuZEBpbnRlbC5jb20+ OyBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiA+IFpoaWd1YW5nIExp dSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IEppZXdlbiBZYW8NCj4gPiA8amlld2VuLnlhb0Bp bnRlbC5jb20+DQo+ID4g5Li76aKYOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvM10gTWRlUGtnOiBB ZGQgVGR4IHN1cHBvcnQgbGliDQo+ID4NCj4gPiBGcm9tOiBNaW4gWHUgPG1pbi5tLnh1QGludGVs LmNvbT4NCj4gPg0KPiA+IEludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb24gKEludGVsIFREWCkg cmVmZXJzIHRvIGFuIEludGVsIHRlY2hub2xvZ3kNCj4gPiB0aGF0IGV4dGVuZHMgVmlydHVhbCBN YWNoaW5lcyBFeHRlbnNpb25zIChWTVgpIGFuZCBNdWx0aS1LZXkgVG90YWwNCj4gPiBNZW1vcnkg RW5jcnlwdGlvbiAoTUtUTUUpIHdpdGggYSBuZXcga2luZCBvZiB2aXJ0dWFsIG1hY2hpbmUgZ3Vl c3QNCj4gPiBjYWxsZWQgYSBUcnVzdCBEb21haW4gKFREKS4NCj4gPg0KPiA+IFRkeExpYiBpcyBj cmVhdGVkIHdpdGggZnVuY3Rpb25zIHRvIHBlcmZvcm0gdGhlIHJlbGF0ZWQgVGR4IG9wZXJhdGlv bi4NCj4gPiBUaGlzIGluY2x1ZGVzIGZ1bmN0aW9ucyBmb3I6DQo+ID4gICAtIFRkQ2FsbCAgICAg ICAgIDogdG8gY2F1c2UgYSBWTSBleGl0IHRvIHRoZSBJbnRlbCBURFggbW9kdWxlDQo+ID4gICAt IFRkVm1DYWxsICAgICAgIDogaXQgaXMgYSBsZWFmIGZ1bmN0aW9uIDAgZm9yIFREQ0FMTA0KPiA+ ICAgLSBUZFZtQ2FsbENwdWlkICA6IGVuYWJsZSB0aGUgVEQgZ3Vlc3QgdG8gcmVxdWVzdCBWTU0g dG8gZW11bGF0ZQ0KPiA+IENQVUlEDQo+ID4gICAtIFRkUmVwb3J0ICAgICAgIDogdG8gcmV0cmll dmUgVERSRVBPUlRfU1RSVUNUDQo+ID4gICAtIFRkQWNjZXB0UGFnZXMgIDogdG8gYWNjZXB0IHBl bmRpbmcgcHJpdmF0ZSBwYWdlcw0KPiA+ICAgLSBUZEV4dGVuZFJ0bXIgICA6IHRvIGV4dGVuZCBv bmUgb2YgdGhlIFJUTVIgcmVnaXN0ZXJzDQo+ID4NCj4gPiBUaGUgYmFzZSBmdW5jdGlvbiBpbiB0 aGlzIGRpcnZlciB3aWxsIG5vdCBkbyBhbnl0aGluZyBhbmQgd2lsbCByZXR1cm4NCj4gPiBhbiBl cnJvciBpZiBhIHJldHVybiB2YWx1ZSBpcyByZXF1aXJlZC4gSXQgaXMgZXhwZWN0ZWQgdGhhdCBv dGhlcg0KPiA+IHBhY2thZ2VzIChsaWtlIE92bWZQa2cpIHdpbGwgY3JlYXRlIGEgdmVyc2lvbiBv ZiB0aGUgbGlicmFyeSB0byBmdWxseQ0KPiA+IHN1cHBvcnQgYSBURCBndWVzdC4NCj4gPg0KPiA+ IFNpZ25lZC1vZmYtYnk6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IERvdWcgUmVpbGFuZCA8ZG91Zy5yZWlsYW5kQGludGVsLmNvbT4NCj4gPg0KPiA+IEND OiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gQ0M6IFpoaWd1YW5n IExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiBDQzogSmlld2VuIFlhbyA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIE1kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3Rh bmRhcmQvVGR4LmggfCAyMDENCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBN ZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1RkeExpYi5oICAgICAgIHwgMTY1ICsrKysrKysrKysrKysr KysrKysrKw0KPiA+ICBNZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9UZHguaCAgICAgICAgIHwgIDIy ICsrKw0KPiA+ICBNZGVQa2cvTGlicmFyeS9UZHhMaWIvVGR4TGliTnVsbC5jICAgIHwgMTU1ICsr KysrKysrKysrKysrKysrKysrDQo+ID4gIE1kZVBrZy9MaWJyYXJ5L1RkeExpYi9UZHhMaWJOdWxs LmluZiAgfCAgMzMgKysrKysNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA1NzYgaW5zZXJ0aW9ucygr KQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFy ZC9UZHguaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9U ZHhMaWIuaCAgY3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQgTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wv VGR4LmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IE1kZVBrZy9MaWJyYXJ5L1RkeExpYi9UZHhM aWJOdWxsLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1RkeExpYi9U ZHhMaWJOdWxsLmluZg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0luZHVz dHJ5U3RhbmRhcmQvVGR4LmgNCj4gPiBiL01kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQv VGR4LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLmRi Y2MzMWMyNjUNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvTWRlUGtnL0luY2x1ZGUvSW5k dXN0cnlTdGFuZGFyZC9UZHguaA0KPiA+IEBAIC0wLDAgKzEsMjAxIEBADQo+ID4gKy8qKiBAZmls ZQ0KPiA+DQo+ID4gKyAgSW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbiBkZWZpbml0aW9ucw0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDIwIC0gMjAyMSwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiArIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsg IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPg0KPiA+ICsg IGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mDQo+ID4gKyB0aGUNCj4gPiBCU0QgTGljZW5zZQ0KPiA+DQo+ID4gKyAgd2hpY2gg YWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNl bnNlDQo+ID4gKyBtYXkNCj4gYmUNCj4gPiBmb3VuZCBhdA0KPiA+DQo+ID4gKyAgaHR0cDovL29w ZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9O IEFOICJBUyBJUyINCj4gPiBCQVNJUywNCj4gPg0KPiA+ICsgIFdJVEhPVVQgV0FSUkFOVElFUyBP UiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiA+IEVYUFJFU1MgT1IgSU1Q TElFRC4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsj aWZuZGVmIF9URFhfSF8NCj4gPg0KPiA+ICsjZGVmaW5lIF9URFhfSF8NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsjZGVmaW5lIEVYSVRfUkVBU09OX0VYVEVSTkFMX0lOVEVSUlVQVCAgMQ0KPiA+DQo+ ID4gKyNkZWZpbmUgRVhJVF9SRUFTT05fVFJJUExFX0ZBVUxUICAgICAgICAyDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9QRU5ESU5HX0lOVEVSUlVQVCAgIDcNCj4g Pg0KPiA+ICsjZGVmaW5lIEVYSVRfUkVBU09OX05NSV9XSU5ET1cgICAgICAgICAgOA0KPiA+DQo+ ID4gKyNkZWZpbmUgRVhJVF9SRUFTT05fVEFTS19TV0lUQ0ggICAgICAgICA5DQo+ID4NCj4gPiAr I2RlZmluZSBFWElUX1JFQVNPTl9DUFVJRCAgICAgICAgICAgICAgIDEwDQo+ID4NCj4gPiArI2Rl ZmluZSBFWElUX1JFQVNPTl9ITFQgICAgICAgICAgICAgICAgIDEyDQo+ID4NCj4gPiArI2RlZmlu ZSBFWElUX1JFQVNPTl9JTlZEICAgICAgICAgICAgICAgIDEzDQo+ID4NCj4gPiArI2RlZmluZSBF WElUX1JFQVNPTl9JTlZMUEcgICAgICAgICAgICAgIDE0DQo+ID4NCj4gPiArI2RlZmluZSBFWElU X1JFQVNPTl9SRFBNQyAgICAgICAgICAgICAgIDE1DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JF QVNPTl9SRFRTQyAgICAgICAgICAgICAgIDE2DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNP Tl9WTUNBTEwgICAgICAgICAgICAgIDE4DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9W TUNMRUFSICAgICAgICAgICAgIDE5DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTUxB VU5DSCAgICAgICAgICAgIDIwDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTVBUUkxE ICAgICAgICAgICAgIDIxDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTVBUUlNUICAg ICAgICAgICAgIDIyDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTVJFQUQgICAgICAg ICAgICAgIDIzDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTVJFU1VNRSAgICAgICAg ICAgIDI0DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTVdSSVRFICAgICAgICAgICAg IDI1DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTU9GRiAgICAgICAgICAgICAgIDI2 DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9WTU9OICAgICAgICAgICAgICAgIDI3DQo+ ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9DUl9BQ0NFU1MgICAgICAgICAgIDI4DQo+ID4N Cj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9EUl9BQ0NFU1MgICAgICAgICAgIDI5DQo+ID4NCj4g PiArI2RlZmluZSBFWElUX1JFQVNPTl9JT19JTlNUUlVDVElPTiAgICAgIDMwDQo+ID4NCj4gPiAr I2RlZmluZSBFWElUX1JFQVNPTl9NU1JfUkVBRCAgICAgICAgICAgIDMxDQo+ID4NCj4gPiArI2Rl ZmluZSBFWElUX1JFQVNPTl9NU1JfV1JJVEUgICAgICAgICAgIDMyDQo+ID4NCj4gPiArI2RlZmlu ZSBFWElUX1JFQVNPTl9JTlZBTElEX1NUQVRFICAgICAgIDMzDQo+ID4NCj4gPiArI2RlZmluZSBF WElUX1JFQVNPTl9NU1JfTE9BRF9GQUlMICAgICAgIDM0DQo+ID4NCj4gPiArI2RlZmluZSBFWElU X1JFQVNPTl9NV0FJVF9JTlNUUlVDVElPTiAgIDM2DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JF QVNPTl9NT05JVE9SX1RSQVBfRkxBRyAgIDM3DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNP Tl9NT05JVE9SX0lOU1RSVUNUSU9OIDM5DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9Q QVVTRV9JTlNUUlVDVElPTiAgIDQwDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9NQ0Vf RFVSSU5HX1ZNRU5UUlkgIDQxDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9UUFJfQkVM T1dfVEhSRVNIT0xEIDQzDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9BUElDX0FDQ0VT UyAgICAgICAgIDQ0DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9FT0lfSU5EVUNFRCAg ICAgICAgIDQ1DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9HRFRSX0lEVFIgICAgICAg ICAgIDQ2DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9MRFRSX1RSICAgICAgICAgICAg IDQ3DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9FUFRfVklPTEFUSU9OICAgICAgIDQ4 DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9FUFRfTUlTQ09ORklHICAgICAgIDQ5DQo+ ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9JTlZFUFQgICAgICAgICAgICAgIDUwDQo+ID4N Cj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9SRFRTQ1AgICAgICAgICAgICAgIDUxDQo+ID4NCj4g PiArI2RlZmluZSBFWElUX1JFQVNPTl9QUkVFTVBUSU9OX1RJTUVSICAgIDUyDQo+ID4NCj4gPiAr I2RlZmluZSBFWElUX1JFQVNPTl9JTlZWUElEICAgICAgICAgICAgIDUzDQo+ID4NCj4gPiArI2Rl ZmluZSBFWElUX1JFQVNPTl9XQklOVkQgICAgICAgICAgICAgIDU0DQo+ID4NCj4gPiArI2RlZmlu ZSBFWElUX1JFQVNPTl9YU0VUQlYgICAgICAgICAgICAgIDU1DQo+ID4NCj4gPiArI2RlZmluZSBF WElUX1JFQVNPTl9BUElDX1dSSVRFICAgICAgICAgIDU2DQo+ID4NCj4gPiArI2RlZmluZSBFWElU X1JFQVNPTl9SRFJBTkQgICAgICAgICAgICAgIDU3DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JF QVNPTl9JTlZQQ0lEICAgICAgICAgICAgIDU4DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNP Tl9WTUZVTkMgICAgICAgICAgICAgIDU5DQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9F TkNMUyAgICAgICAgICAgICAgIDYwDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9SRFNF RUQgICAgICAgICAgICAgIDYxDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9QTUxfRlVM TCAgICAgICAgICAgIDYyDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9YU0FWRVMgICAg ICAgICAgICAgIDYzDQo+ID4NCj4gPiArI2RlZmluZSBFWElUX1JFQVNPTl9YUlNUT1JTICAgICAg ICAgICAgIDY0DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLy8gVERDQUxMIEFQSSBGdW5jdGlvbiBD b21wbGV0aW9uIFN0YXR1cyBDb2Rlcw0KPiA+DQo+ID4gKyNkZWZpbmUgVERYX0VYSVRfUkVBU09O X1NVQ0NFU1MNCj4gPiAweDAwMDAwMDAwMDAwMDAwMDANCj4gPg0KPiA+ICsjZGVmaW5lIFREWF9F WElUX1JFQVNPTl9QQUdFX0FMUkVBRFlfQUNDRVBURUQNCj4gPiAweDAwMDAwQjBBMDAwMDAwMDAN Cj4gPg0KPiA+ICsjZGVmaW5lIFREWF9FWElUX1JFQVNPTl9PUEVSQU5EX0lOVkFMSUQNCj4gPiAw eEMwMDAwMTAwMDAwMDAwMDANCj4gPg0KPiA+ICsjZGVmaW5lIFREWF9FWElUX1JFQVNPTl9PUEVS QU5EX0JVU1kNCj4gPiAweDgwMDAwMjAwMDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsj ZGVmaW5lIFREQ0FMTF9URFZNQ0FMTCAgICAgICAgICAgICAgICAgMA0KPiA+DQo+ID4gKyNkZWZp bmUgVERDQUxMX1RESU5GTyAgICAgICAgICAgICAgICAgICAxDQo+ID4NCj4gPiArI2RlZmluZSBU RENBTExfVERFWFRFTkRSVE1SICAgICAgICAgICAgIDINCj4gPg0KPiA+ICsjZGVmaW5lIFREQ0FM TF9UREdFVFZFSU5GTyAgICAgICAgICAgICAgMw0KPiA+DQo+ID4gKyNkZWZpbmUgVERDQUxMX1RE UkVQT1JUICAgICAgICAgICAgICAgICA0DQo+ID4NCj4gPiArI2RlZmluZSBURENBTExfVERTRVRD UFVJRFZFICAgICAgICAgICAgIDUNCj4gPg0KPiA+ICsjZGVmaW5lIFREQ0FMTF9UREFDQ0VQVFBB R0UgICAgICAgICAgICAgNg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNkZWZpbmUgVERWTUNBTExf Q1BVSUQgICAgICAgICAgICAgICAgICAweDAwMDBhDQo+ID4NCj4gPiArI2RlZmluZSBURFZNQ0FM TF9IQUxUICAgICAgICAgICAgICAgICAgIDB4MDAwMGMNCj4gPg0KPiA+ICsjZGVmaW5lIFREVk1D QUxMX0lPICAgICAgICAgICAgICAgICAgICAgMHgwMDAxZQ0KPiA+DQo+ID4gKyNkZWZpbmUgVERW TUNBTExfUkRNU1IgICAgICAgICAgICAgICAgICAweDAwMDFmDQo+ID4NCj4gPiArI2RlZmluZSBU RFZNQ0FMTF9XUk1TUiAgICAgICAgICAgICAgICAgIDB4MDAwMjANCj4gPg0KPiA+ICsjZGVmaW5l IFREVk1DQUxMX01NSU8gICAgICAgICAgICAgICAgICAgMHgwMDAzMA0KPiA+DQo+ID4gKyNkZWZp bmUgVERWTUNBTExfUENPTkZJRyAgICAgICAgICAgICAgICAweDAwMDQxDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArI2RlZmluZSBURFZNQ0FMTF9HRVRfVERWTUNBTExfSU5GTyAgICAgIDB4MTAwMDAN Cj4gPg0KPiA+ICsjZGVmaW5lIFREVk1DQUxMX01BUEdQQSAgICAgICAgICAgICAgICAgMHgxMDAw MQ0KPiA+DQo+ID4gKyNkZWZpbmUgVERWTUNBTExfR0VUX1FVT1RFICAgICAgICAgICAgICAweDEw MDAyDQo+ID4NCj4gPiArI2RlZmluZSBURFZNQ0FMTF9SRVBPUlRfRkFUQUxfRVJSICAgICAgIDB4 MTAwMDMNCj4gPg0KPiA+ICsjZGVmaW5lIFREVk1DQUxMX1NFVFVQX0VWRU5UX05PVElGWSAgICAg MHgxMDAwNA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNwcmFnbWEgcGFjaygxKQ0KPiA+DQo+ID4g K3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsgIFVJTlQ2NCAgRGF0YVs2XTsNCj4gPg0KPiA+ ICt9IFREQ0FMTF9HRU5FUklDX1JFVFVSTl9EQVRBOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK3R5 cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsgIFVJTlQ2NCAgR3BhdzsNCj4gPg0KPiA+ICsgIFVJ TlQ2NCAgQXR0cmlidXRlczsNCj4gPg0KPiA+ICsgIFVJTlQzMiAgTWF4VmNwdXM7DQo+ID4NCj4g PiArICBVSU5UMzIgIE51bVZjcHVzOw0KPiA+DQo+ID4gKyAgVUlOVDY0ICBSZXN2WzNdOw0KPiA+ DQo+ID4gK30gVERDQUxMX0lORk9fUkVUVVJOX0RBVEE7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr dHlwZWRlZiB1bmlvbiB7DQo+ID4NCj4gPiArICBVSU5UNjQgIFZhbDsNCj4gPg0KPiA+ICsgIHN0 cnVjdCB7DQo+ID4NCj4gPiArICAgIFVJTlQzMiAgU2l6ZTozOw0KPiA+DQo+ID4gKyAgICBVSU5U MzIgIERpcmVjdGlvbjoxOw0KPiA+DQo+ID4gKyAgICBVSU5UMzIgIFN0cmluZzoxOw0KPiA+DQo+ ID4gKyAgICBVSU5UMzIgIFJlcDoxOw0KPiA+DQo+ID4gKyAgICBVSU5UMzIgIEVuY29kaW5nOjE7 DQo+ID4NCj4gPiArICAgIFVJTlQzMiAgUmVzdjo5Ow0KPiA+DQo+ID4gKyAgICBVSU5UMzIgIFBv cnQ6MTY7DQo+ID4NCj4gPiArICAgIFVJTlQzMiAgUmVzdjI7DQo+ID4NCj4gPiArICB9IElvOw0K PiA+DQo+ID4gK30gVk1YX0VYSVRfUVVBTElGSUNBVElPTjsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICBF eGl0UmVhc29uOw0KPiA+DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgUmVzdjsNCj4g Pg0KPiA+ICsgIFZNWF9FWElUX1FVQUxJRklDQVRJT04gIEV4aXRRdWFsaWZpY2F0aW9uOw0KPiA+ DQo+ID4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgR3Vlc3RMQTsNCj4gPg0KPiA+ICsgIFVJ TlQ2NCAgICAgICAgICAgICAgICAgIEd1ZXN0UEE7DQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAg ICAgICAgICAgICBFeGl0SW5zdHJ1Y3Rpb25MZW5ndGg7DQo+ID4NCj4gPiArICBVSU5UMzIgICAg ICAgICAgICAgICAgICBFeGl0SW5zdHJ1Y3Rpb25JbmZvOw0KPiA+DQo+ID4gKyAgVUlOVDMyICAg ICAgICAgICAgICAgICAgUmVzdjE7DQo+ID4NCj4gPiArfSBURENBTExfVkVJTkZPX1JFVFVSTl9E QVRBOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK3R5cGVkZWYgdW5pb24gew0KPiA+DQo+ID4gKyAg VERDQUxMX0dFTkVSSUNfUkVUVVJOX0RBVEEgIEdlbmVyaWM7DQo+ID4NCj4gPiArICBURENBTExf SU5GT19SRVRVUk5fREFUQSAgICAgVGRJbmZvOw0KPiA+DQo+ID4gKyAgVERDQUxMX1ZFSU5GT19S RVRVUk5fREFUQSAgIFZlSW5mbzsNCj4gPg0KPiA+ICt9IFREX1JFVFVSTl9EQVRBOw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKy8qIGRhdGEgc3RydWN0dXJlIHVzZWQgaW4gVERSRVBPUlRfU1RSVUNU ICovDQo+ID4NCj4gPiArdHlwZWRlZiBzdHJ1Y3R7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAg IFR5cGU7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIFN1YnR5cGU7DQo+ID4NCj4gPiArICBV SU5UOCAgICAgICAgIFZlcnNpb247DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIFJzdmQ7DQo+ ID4NCj4gPiArfVREX1JFUE9SVF9UWVBFOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK3R5cGVkZWYg c3RydWN0ew0KPiA+DQo+ID4gKyAgVERfUkVQT1JUX1RZUEUgICBSZXBvcnRUeXBlOw0KPiA+DQo+ ID4gKyAgVUlOVDggICAgICAgICAgICBSc3ZkMVsxMl07DQo+ID4NCj4gPiArICBVSU5UOCAgICAg ICAgICAgIENwdVN2blsxNl07DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgIFRlZVRjYklu Zm9IYXNoWzQ4XTsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgVGVlSW5mb0hhc2hbNDhd Ow0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICBSZXBvcnREYXRhWzY0XTsNCj4gPg0KPiA+ ICsgIFVJTlQ4ICAgICAgICAgICAgUnN2ZDJbMzJdOw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAg ICAgICBNYWNbMzJdOw0KPiA+DQo+ID4gK31SRVBPUlRNQUNTVFJVQ1Q7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArdHlwZWRlZiBzdHJ1Y3R7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIFNlYW1b Ml07DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIFJzdmRbMTRdOw0KPiA+DQo+ID4gK31URUVf VENCX1NWTjsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICt0eXBlZGVmIHN0cnVjdHsNCj4gPg0KPiA+ ICsgIFVJTlQ4ICAgICAgICAgVmFsaWRbOF07DQo+ID4NCj4gPiArICBURUVfVENCX1NWTiAgIFRl ZVRjYlN2bjsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgTXJzZWFtWzQ4XTsNCj4gPg0KPiA+ ICsgIFVJTlQ4ICAgICAgICAgTXJzaWduZXJzZWFtWzQ4XTsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAg ICAgICAgQXR0cmlidXRlc1s4XTsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgUnN2ZFsxMTFd Ow0KPiA+DQo+ID4gK31URUVfVENCX0lORk87DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArdHlwZWRl ZiBzdHJ1Y3R7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIEF0dHJpYnV0ZXNbOF07DQo+ID4N Cj4gPiArICBVSU5UOCAgICAgICAgIFhmYW1bOF07DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAg IE1ydGRbNDhdOw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICBNcmNvbmZpZ2lkWzQ4XTsNCj4g Pg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgTXJvd25lcls0OF07DQo+ID4NCj4gPiArICBVSU5UOCAg ICAgICAgIE1yb3duZXJjb25maWdbNDhdOw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICBSdG1y c1s0XVs0OF07DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgIFJzdmRbMTEyXTsNCj4gPg0KPiA+ ICt9VERJTkZPOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0ew0KPiA+DQo+ ID4gKyAgUkVQT1JUTUFDU1RSVUNUICAgUmVwb3J0TWFjU3RydWN0Ow0KPiA+DQo+ID4gKyAgVEVF X1RDQl9JTkZPICAgICAgVGVlVGNiSW5mbzsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAg IFJzdmRbMTddOw0KPiA+DQo+ID4gKyAgVERJTkZPICAgICAgICAgICAgVGRpbmZvOw0KPiA+DQo+ ID4gK31URFJFUE9SVF9TVFJVQ1Q7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNr KCkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+IGRp ZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1RkeExpYi5oDQo+ID4gYi9NZGVQa2cv SW5jbHVkZS9MaWJyYXJ5L1RkeExpYi5oIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+ID4g MDAwMDAwMDAwMC4uNWU4NjM0YzZkZg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9NZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L1RkeExpYi5oDQo+ID4gQEAgLTAsMCArMSwxNjUgQEANCj4gPiAr LyoqIEBmaWxlDQo+ID4NCj4gPiArICBUZHhMaWIgZGVmaW5pdGlvbnMNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMCAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzDQo+ID4gKyByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiArICBUaGlzIHByb2dyYW0g YW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4NCj4gPiArICBhcmUgbGljZW5zZWQg YW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZg0KPiA+ ICsgdGhlDQo+ID4gQlNEIExpY2Vuc2UNCj4gPg0KPiA+ICsgIHdoaWNoIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZQ0KPiA+ICsgbWF5 DQo+IGJlDQo+ID4gZm91bmQgYXQNCj4gPg0KPiA+ICsgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9s aWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIFRIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ ID4gQkFTSVMsDQo+ID4NCj4gPiArICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJ T05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI2lmbmRlZiBfVERYX0xJ Ql9IXw0KPiA+DQo+ID4gKyNkZWZpbmUgX1REWF9MSUJfSF8NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPFVlZmkv VWVmaUJhc2VUeXBlLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4N Cj4gPg0KPiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvRGVidWdTdXBwb3J0Lmg+DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArLyoqDQo+ID4NCj4gPiArICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlIFREUkVQ T1JUX1NUUlVDVCBzdHJ1Y3R1cmUgZnJvbSBURFguDQo+ID4NCj4gPiArICBUaGUgc3RydWN0IGNv bnRhaW5zIHRoZSBtZWFzdXJlbWVudHMvY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZg0KPiA+ DQo+ID4gKyAgdGhlIGd1ZXN0IFREIHRoYXQgY2FsbGVkIHRoZSBmdW5jdGlvbiwgbWVhc3VyZW1l bnRzL2NvbmZpZ3VyYXRpbw0KPiA+DQo+ID4gKyAgaW5mb3JtYXRpb24gb2YgdGhlIFREWC1TRUFN IG1vZHVsZSBhbmQgYSBSRVBPUlRNQUNTVFJVQ1QuDQo+ID4NCj4gPiArICBUaGUgUkVQT1JUTUFD U1RSVUNUIGlzIGludGVncml0eSBwcm90ZWN0ZWQgd2l0aCBhIE1BQyBhbmQNCj4gPg0KPiA+ICsg IGNvbnRhaW5zIHRoZSBoYXNoIG9mIHRoZSBtZWFzdXJlbWVudHMgYW5kIGNvbmZpZ3VyYXRpb24N Cj4gPg0KPiA+ICsgIGFzIHdlbGwgYXMgYWRkaXRpb25hbCBSRVBPUlREQVRBIHByb3ZpZGVkIGJ5 IHRoZSBURCBzb2Z0d2FyZS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEFkZGl0aW9uYWxEYXRh LCBhIDY0LWJ5dGUgdmFsdWUsIGlzIHByb3ZpZGVkIGJ5IHRoZSBndWVzdCBURA0KPiA+DQo+ID4g KyAgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIFREUkVQT1JUDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICBAcGFyYW1baW4sb3V0XSAgUmVwb3J0ICAgICAgICAgICAgIEhvbGRzIHRoZSBURVJFUE9SVF9T VFJVQ1QuDQo+ID4NCj4gPiArICBAcGFyYW1baW5dICAgICAgUmVwb3J0U2l6ZSAgICAgICAgIFNp emUgb2YgdGhlIHJlcG9ydC4gSXQgbXVzdCBiZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsYXJnZXIgdGhhbiAxMDI0Qi4NCj4gPg0KPiA+ICsgIEBwYXJh bVtpbl0gICAgICBBZGRpdGlvbmFsRGF0YSAgICAgUG9pbnQgdG8gdGhlIGFkZGl0aW9uYWwgZGF0 YS4NCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgICBBZGRpdGlvbmFsRGF0YVNpemUgU2l6ZSBv ZiB0aGUgYWRkaXRpb25hbCBkYXRhLg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiBBZGRpdGlvbmFsRGF0YSAhPSBOVUxMLA0KPiA+IHRoZW4NCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB2YWx1ZSBtdXN0 IGJlIDY0Qi4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MNCj4g Pg0KPiA+ICsgIEByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSDQo+ID4NCj4gPiArICBAcmV0 dXJuIEVGSV9ERVZJQ0VfRVJST1INCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ ICtFRklfU1RBVFVTDQo+ID4NCj4gPiArRUZJQVBJDQo+ID4NCj4gPiArVGRSZXBvcnQoDQo+ID4N Cj4gPiArICBJTiBPVVQgVUlOVDggICpSZXBvcnQsDQo+ID4NCj4gPiArICBJTiBVSU5UMzIgICAg IFJlcG9ydFNpemUsDQo+ID4NCj4gPiArICBJTiBVSU5UOCAgICAgICpBZGRpdGlvbmFsRGF0YSwN Cj4gPg0KPiA+ICsgIElOIFVJTlQzMiAgICAgQWRkaXRpb25hbERhdGFTaXplDQo+ID4NCj4gPiAr KTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIFRoaXMgZnVuY3Rpb24g YWNjZXB0IGEgcGVuZGluZyBwcml2YXRlIHBhZ2UsIGFuZCBpbml0aWFsaXplIHRoZQ0KPiA+ICsg cGFnZSB0bw0KPiA+DQo+ID4gKyAgYWxsLTAgdXNpbmcgdGhlIFREIGVwaGVtZXJhbCBwcml2YXRl IGtleS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gIFN0YXJ0QWRkcmVzcyAg ICAgR3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgcHJpdmF0ZQ0KPiA+IHBhZ2UNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYWNjZXB0Lg0KPiA+DQo+ID4g KyAgQHBhcmFtW2luXSAgTnVtYmVyT2ZQYWdlcyAgICBOdW1iZXIgb2YgdGhlIHBhZ2VzIHRvIGJl IGFjY2VwdGVkLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJldHVybiBFRklfU1VDQ0VTUw0K PiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0VGSV9TVEFUVVMNCj4gPg0KPiA+ICtFRklBUEkNCj4g Pg0KPiA+ICtUZEFjY2VwdFBhZ2VzICgNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgU3RhcnRBZGRy ZXNzLA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICBOdW1iZXJPZlBhZ2VzDQo+ID4NCj4gPiArICAp Ow0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKg0KPiA+DQo+ID4gKyAgVGhpcyBmdW5jdGlvbiBl eHRlbmRzIG9uZSBvZiB0aGUgUlRNUiBtZWFzdXJlbWVudCByZWdpc3Rlcg0KPiA+DQo+ID4gKyAg aW4gVERDUyB3aXRoIHRoZSBwcm92aWRlZCBleHRlbnNpb24gZGF0YSBpbiBtZW1vcnkuDQo+ID4N Cj4gPiArICBSVE1SIGV4dGVuZGluZyBzdXBwb3J0cyBTSEEzODQgd2hpY2ggbGVuZ3RoIGlzIDQ4 IGJ5dGVzLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgIFBv aW50IHRvIHRoZSBkYXRhIHRvIGJlIGV4dGVuZGVkDQo+ID4NCj4gPiArICBAcGFyYW1baW5dICBE YXRhTGVuICAgTGVuZ3RoIG9mIHRoZSBkYXRhLiBNdXN0IGJlIDQ4DQo+ID4NCj4gPiArICBAcGFy YW1baW5dICBJbmRleCAgICAgUlRNUiBpbmRleA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJl dHVybiBFRklfU1VDQ0VTUw0KPiA+DQo+ID4gKyAgQHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVU RVINCj4gPg0KPiA+ICsgIEByZXR1cm4gRUZJX0RFVklDRV9FUlJPUg0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0VGSV9TVEFUVVMNCj4gPg0KPiA+ICtFRklBUEkNCj4gPg0K PiA+ICtUZEV4dGVuZFJ0bXIoDQo+ID4NCj4gPiArICBJTiAgVUlOVDMyICAqRGF0YSwNCj4gPg0K PiA+ICsgIElOICBVSU5UMzIgIERhdGFMZW4sDQo+ID4NCj4gPiArICBJTiAgVUlOVDggICBQY3JJ bmRleA0KPiA+DQo+ID4gKyAgKTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ ICsgIFRoZSBURENBTEwgaW5zdHJ1Y3Rpb24gY2F1c2VzIGEgVk0gZXhpdCB0byB0aGUgSW50ZWwg VERYIG1vZHVsZS4NCj4gPiArIEl0IGlzDQo+ID4NCj4gPiArICB1c2VkIHRvIGNhbGwgZ3Vlc3Qt c2lkZSBJbnRlbCBURFggZnVuY3Rpb25zLCBlaXRoZXIgbG9jYWwgb3IgYSBURA0KPiA+ICsgZXhp dA0KPiA+DQo+ID4gKyAgdG8gdGhlIGhvc3QgVk1NLCBhcyBzZWxlY3RlZCBieSBMZWFmLg0KPiA+ DQo+ID4gKyAgTGVhZiBmdW5jdGlvbnMgYXJlIGRlc2NyaWJlZCBhdA0KPiA+ICsgPGh0dHBzOi8v c29mdHdhcmUuaW50ZWwuY29tL2NvbnRlbnQvDQo+ID4NCj4gPiArICB3d3cvdXMvZW4vZGV2ZWxv cC9hcnRpY2xlcy9pbnRlbC10cnVzdC1kb21haW4tZXh0ZW5zaW9ucy5odG1sPg0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgIExlYWYgICAgICAgIExlYWYgbnVtYmVyIG9m IFREQ0FMTCBpbnN0cnVjdGlvbg0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgIEFyZzEgICAg ICAgIEFyZzENCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgICBBcmcyICAgICAgICBBcmcyDQo+ ID4NCj4gPiArICBAcGFyYW1baW5dICAgICAgQXJnMyAgICAgICAgQXJnMw0KPiA+DQo+ID4gKyAg QHBhcmFtW2luLG91dF0gIFJlc3VsdHMgIFJldHVybmVkIHJlc3VsdCBvZiB0aGUgTGVhZiBmdW5j dGlvbg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJldHVybiBFRklfU1VDQ0VTUw0KPiA+DQo+ ID4gKyAgQHJldHVybiBPdGhlciAgICAgICAgICAgU2VlIGluZGl2aWR1YWwgbGVhZiBmdW5jdGlv bnMNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICtFRklfU1RBVFVTDQo+ID4NCj4gPiArRUZJQVBJ DQo+ID4NCj4gPiArVGRDYWxsKA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgICBMZWFm LA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgICBBcmcxLA0KPiA+DQo+ID4gKyAgSU4g VUlOVDY0ICAgICAgICAgICBBcmcyLA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgICBB cmczLA0KPiA+DQo+ID4gKyAgSU4gT1VUIFZPSUQgICAgICAgICAqUmVzdWx0cw0KPiA+DQo+ID4g KyAgKTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIFREVk1BTEwgaXMg YSBsZWFmIGZ1bmN0aW9uIDAgZm9yIFREQ0FMTC4gSXQgaGVscHMgaW52b2tlIHNlcnZpY2VzDQo+ ID4gKyBmcm9tDQo+IHRoZQ0KPiA+DQo+ID4gKyAgaG9zdCBWTU0gdG8gcGFzcy9yZWNlaXZlIGlu Zm9ybWF0aW9uLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgTGVhZiAg ICAgICAgTnVtYmVyIG9mIHN1Yi1mdW5jdGlvbnMNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAg IEFyZzEgICAgICAgIEFyZzENCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzIgICAgICAg IEFyZzINCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzMgICAgICAgIEFyZzMNCj4gPg0K PiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzQgICAgICAgIEFyZzQNCj4gPg0KPiA+ICsgIEBwYXJh bVtpbixvdXRdIFJlc3VsdHMgICAgIFJldHVybmVkIHJlc3VsdCBvZiB0aGUgc3ViLWZ1bmN0aW9u DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0dXJuIEVGSV9TVUNDRVNTDQo+ID4NCj4gPiAr ICBAcmV0dXJuIE90aGVyICAgICAgICAgICBTZWUgaW5kaXZpZHVhbCBzdWItZnVuY3Rpb25zDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4g K0VGSUFQSQ0KPiA+DQo+ID4gK1RkVm1DYWxsICgNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAg ICAgICBMZWFmLA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgIEFyZzEsDQo+ID4NCj4g PiArICBJTiBVSU5UNjQgICAgICAgICAgQXJnMiwNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAg ICAgICBBcmczLA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgIEFyZzQsDQo+ID4NCj4g PiArICBJTiBPVVQgVk9JRCAgICAgICAgKlJlc3VsdHMNCj4gPg0KPiA+ICsgICk7DQo+ID4NCj4g PiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4gPiArICBUaGlzIGZ1bmN0aW9uIGVuYWJsZSB0aGUg VEQgZ3Vlc3QgdG8gcmVxdWVzdCB0aGUgVk1NIHRvIGVtdWxhdGUNCj4gPiArIENQVUlEDQo+ID4N Cj4gPiArICBvcGVyYXRpb24sIGVzcGVjaWFsbHkgZm9yIG5vbi1hcmNoaXRlY3R1cmFsLCBDUFVJ RCBsZWF2ZXMuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcGFyYW1baW5dICBFYXggICAgICAg IE1haW4gbGVhZiBvZiB0aGUgQ1BVSUQNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gIEVjeCAgICAg ICAgU3ViLWxlYWYgb2YgdGhlIENQVUlEDQo+ID4NCj4gPiArICBAcGFyYW1bb3V0XSBSZXN1bHRz ICAgIFJldHVybmVkIHJlc3VsdCBvZiBDUFVJRCBvcGVyYXRpb24NCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICtFRklf U1RBVFVTDQo+ID4NCj4gPiArRUZJQVBJDQo+ID4NCj4gPiArVGRWbUNhbGxDcHVpZCAoDQo+ID4N Cj4gPiArICBJTiBVSU5UNjQgICAgICAgICBFYXgsDQo+ID4NCj4gPiArICBJTiBVSU5UNjQgICAg ICAgICBFY3gsDQo+ID4NCj4gPiArICBPVVQgVk9JRCAgICAgICAgICAqUmVzdWx0cw0KPiA+DQo+ ID4gKyAgKTsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cv SW5jbHVkZS9Qcm90b2NvbC9UZHguaA0KPiA+IGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGR4 LmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiAwMDAwMDAwMDAwLi5kM2UxZWFlMTM1 DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Rk eC5oDQo+ID4gQEAgLTAsMCArMSwyMiBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPg0KPiA+ICsgIFRj ZyBmb3IgSW50ZWwgVERYIGRlZmluaXRpb25zLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0NvcHly aWdodCAoYykgMjAyMCAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4g K3Jlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyNpZm5kZWYgX19UQ0dfVERYX0hfXw0KPiA+DQo+ID4gKyNkZWZp bmUgX19UQ0dfVERYX0hfXw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRlIDxVZWZpL1Vl ZmlCYXNlVHlwZS5oPg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNkZWZpbmUgVENHX1REWF9FVkVO VF9EQVRBX1NJR05BVFVSRSAgU0lHTkFUVVJFXzMyICgnVCcsICdEJywgJ1gnLA0KPiA+ICdTJykN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZGVmaW5lIFREX1RDRzJfUFJPVE9DT0xfR1VJRCAgXA0K PiA+DQo+ID4gKyAgezB4OTY3NTFhM2QsIDB4NzJmNCwgMHg0MWE2LCB7IDB4YTcsIDB4OTQsIDB4 ZWQsIDB4NWQsIDB4MGUsIDB4NjcsDQo+IDB4YWUsDQo+ID4gMHg2YiB9fQ0KPiA+DQo+ID4gK2V4 dGVybiBFRklfR1VJRCBnVGRUY2cyUHJvdG9jb2xHdWlkOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyNlbmRpZg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5 L1RkeExpYi9UZHhMaWJOdWxsLmMNCj4gPiBiL01kZVBrZy9MaWJyYXJ5L1RkeExpYi9UZHhMaWJO dWxsLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLjhk NzU5ZTRkMzMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVGR4 TGliL1RkeExpYk51bGwuYw0KPiA+IEBAIC0wLDAgKzEsMTU1IEBADQo+ID4gKy8qKiBAZmlsZQ0K PiA+DQo+ID4gKyAgTnVsbCBpbnN0YW5jZSBvZiBUZHhMaWIuDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICBDb3B5cmlnaHQgKGMpIDIwMjAgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cw0KPiA+ICsgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKyAgVGhpcyBwcm9ncmFtIGFuZCB0 aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+DQo+ID4gKyAgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCj4gPiArIHRo ZQ0KPiA+IEJTRCBMaWNlbnNlDQo+ID4NCj4gPiArICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRp c3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiArIG1heQ0KPiBi ZQ0KPiA+IGZvdW5kIGF0DQo+ID4NCj4gPiArICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvYnNkLWxpY2Vuc2UucGhwDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBUSEUgUFJPR1JBTSBJ UyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiA+IEJB U0lTLA0KPiA+DQo+ID4gKyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBP RiBBTlkgS0lORCwgRUlUSEVSDQo+ID4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRl IDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xp Yi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1RkeC5oPg0KPiA+DQo+ ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1RkeExpYi5oPg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8q Kg0KPiA+DQo+ID4gKyAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZSBURFJFUE9SVF9TVFJVQ1Qgc3Ry dWN0dXJlIGZyb20gVERYLg0KPiA+DQo+ID4gKyAgVGhlIHN0cnVjdCBjb250YWlucyB0aGUgbWVh c3VyZW1lbnRzL2NvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YNCj4gPg0KPiA+ICsgIHRoZSBn dWVzdCBURCB0aGF0IGNhbGxlZCB0aGUgZnVuY3Rpb24sIG1lYXN1cmVtZW50cy9jb25maWd1cmF0 aW8NCj4gPg0KPiA+ICsgIGluZm9ybWF0aW9uIG9mIHRoZSBURFgtU0VBTSBtb2R1bGUgYW5kIGEg UkVQT1JUTUFDU1RSVUNULg0KPiA+DQo+ID4gKyAgVGhlIFJFUE9SVE1BQ1NUUlVDVCBpcyBpbnRl Z3JpdHkgcHJvdGVjdGVkIHdpdGggYSBNQUMgYW5kDQo+ID4NCj4gPiArICBjb250YWlucyB0aGUg aGFzaCBvZiB0aGUgbWVhc3VyZW1lbnRzIGFuZCBjb25maWd1cmF0aW9uDQo+ID4NCj4gPiArICBh cyB3ZWxsIGFzIGFkZGl0aW9uYWwgUkVQT1JUREFUQSBwcm92aWRlZCBieSB0aGUgVEQgc29mdHdh cmUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBBZGRpdGlvbmFsRGF0YSwgYSA2NC1ieXRlIHZh bHVlLCBpcyBwcm92aWRlZCBieSB0aGUgZ3Vlc3QgVEQNCj4gPg0KPiA+ICsgIHRvIGJlIGluY2x1 ZGVkIGluIHRoZSBURFJFUE9SVA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luLG91 dF0gIFJlcG9ydCAgICAgICAgICAgICBIb2xkcyB0aGUgVEVSRVBPUlRfU1RSVUNULg0KPiA+DQo+ ID4gKyAgQHBhcmFtW2luXSAgICAgIFJlcG9ydFNpemUgICAgICAgICBTaXplIG9mIHRoZSByZXBv cnQuIEl0IG11c3QgYmUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGFyZ2VyIHRoYW4gMTAyNEIuDQo+ID4NCj4gPiArICBAcGFyYW1baW5dICAgICAgQWRk aXRpb25hbERhdGEgICAgIFBvaW50IHRvIHRoZSBhZGRpdGlvbmFsIGRhdGEuDQo+ID4NCj4gPiAr ICBAcGFyYW1baW5dICAgICAgQWRkaXRpb25hbERhdGFTaXplIFNpemUgb2YgdGhlIGFkZGl0aW9u YWwgZGF0YS4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgQWRkaXRpb25hbERhdGEgIT0gTlVMTCwNCj4gPiB0aGVuDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdmFsdWUgbXVzdCBiZSA2NEIuDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICBAcmV0dXJuIEVGSV9TVUNDRVNTDQo+ID4NCj4gPiArICBAcmV0 dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUg0KPiA+DQo+ID4gKyAgQHJldHVybiBFRklfREVWSUNF X0VSUk9SDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0K PiA+DQo+ID4gK0VGSUFQSQ0KPiA+DQo+ID4gK1RkUmVwb3J0KA0KPiA+DQo+ID4gKyAgSU4gT1VU IFVJTlQ4ICAqUmVwb3J0LA0KPiA+DQo+ID4gKyAgSU4gVUlOVDMyICAgICBSZXBvcnRTaXplLA0K PiA+DQo+ID4gKyAgSU4gVUlOVDggICAgICAqQWRkaXRpb25hbERhdGEsDQo+ID4NCj4gPiArICBJ TiBVSU5UMzIgICAgIEFkZGl0aW9uYWxEYXRhU2l6ZQ0KPiA+DQo+ID4gKyAgKQ0KPiA+DQo+ID4g K3sNCj4gPg0KPiA+ICsgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+ID4NCj4gPiArfQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKy8qKg0KPiA+DQo+ID4gKyAgVGhpcyBmdW5jdGlvbiBhY2NlcHQg YSBwZW5kaW5nIHByaXZhdGUgcGFnZSwgYW5kIGluaXRpYWxpemUgdGhlDQo+ID4gKyBwYWdlIHRv DQo+ID4NCj4gPiArICBhbGwtMCB1c2luZyB0aGUgVEQgZXBoZW1lcmFsIHByaXZhdGUga2V5Lg0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgU3RhcnRBZGRyZXNzICAgICBHdWVz dCBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBwcml2YXRlDQo+ID4gcGFnZQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBhY2NlcHQuDQo+ID4NCj4gPiArICBAcGFy YW1baW5dICBOdW1iZXJPZlBhZ2VzICAgIE51bWJlciBvZiB0aGUgcGFnZXMgdG8gYmUgYWNjZXB0 ZWQuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0dXJuIEVGSV9VTlNVUFBPUlRFRA0KPiA+ DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0VGSV9TVEFUVVMNCj4gPg0KPiA+ICtFRklBUEkNCj4gPg0K PiA+ICtUZEFjY2VwdFBhZ2VzICgNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgU3RhcnRBZGRyZXNz LA0KPiA+DQo+ID4gKyAgSU4gVUlOVDY0ICBOdW1iZXJPZlBhZ2VzDQo+ID4NCj4gPiArICApDQo+ ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPg0KPiA+ ICt9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4gPiArICBUaGUgVERDQUxMIGlu c3RydWN0aW9uIGNhdXNlcyBhIFZNIGV4aXQgdG8gdGhlIEludGVsIFREWCBtb2R1bGUuDQo+ID4g KyBJdCBpcw0KPiA+DQo+ID4gKyAgdXNlZCB0byBjYWxsIGd1ZXN0LXNpZGUgSW50ZWwgVERYIGZ1 bmN0aW9ucywgZWl0aGVyIGxvY2FsIG9yIGEgVEQNCj4gPiArIGV4aXQNCj4gPg0KPiA+ICsgIHRv IHRoZSBob3N0IFZNTSwgYXMgc2VsZWN0ZWQgYnkgTGVhZi4NCj4gPg0KPiA+ICsgIExlYWYgZnVu Y3Rpb25zIGFyZSBkZXNjcmliZWQgYXQNCj4gPiArIDxodHRwczovL3NvZnR3YXJlLmludGVsLmNv bS9jb250ZW50Lw0KPiA+DQo+ID4gKyAgd3d3L3VzL2VuL2RldmVsb3AvYXJ0aWNsZXMvaW50ZWwt dHJ1c3QtZG9tYWluLWV4dGVuc2lvbnMuaHRtbD4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEBw YXJhbVtpbl0gICAgICBMZWFmICAgICAgICBMZWFmIG51bWJlciBvZiBURENBTEwgaW5zdHJ1Y3Rp b24NCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgICBBcmcxICAgICAgICBBcmcxDQo+ID4NCj4g PiArICBAcGFyYW1baW5dICAgICAgQXJnMiAgICAgICAgQXJnMg0KPiA+DQo+ID4gKyAgQHBhcmFt W2luXSAgICAgIEFyZzMgICAgICAgIEFyZzMNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbixvdXRdICBS ZXN1bHRzICBSZXR1cm5lZCByZXN1bHQgb2YgdGhlIExlYWYgZnVuY3Rpb24NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MNCj4gPg0KPiA+ICsgIEByZXR1cm4gT3Ro ZXIgICAgICAgICAgIFNlZSBpbmRpdmlkdWFsIGxlYWYgZnVuY3Rpb25zDQo+ID4NCj4gPiArKiov DQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+DQo+ID4gK1RkQ2Fs bCgNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICAgTGVhZiwNCj4gPg0KPiA+ICsgIElO IFVJTlQ2NCAgICAgICAgICAgQXJnMSwNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICAg QXJnMiwNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICAgQXJnMywNCj4gPg0KPiA+ICsg IElOIE9VVCBWT0lEICAgICAgICAgKlJlc3VsdHMNCj4gPg0KPiA+ICsgICkNCj4gPg0KPiA+ICt7 DQo+ID4NCj4gPiArICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KPiA+DQo+ID4gK30NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIFREVk1BTEwgaXMgYSBsZWFmIGZ1bmN0 aW9uIDAgZm9yIFREQ0FMTC4gSXQgaGVscHMgaW52b2tlIHNlcnZpY2VzDQo+ID4gKyBmcm9tDQo+ IHRoZQ0KPiA+DQo+ID4gKyAgaG9zdCBWTU0gdG8gcGFzcy9yZWNlaXZlIGluZm9ybWF0aW9uLg0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgTGVhZiAgICAgICAgTnVtYmVy IG9mIHN1Yi1mdW5jdGlvbnMNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzEgICAgICAg IEFyZzENCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzIgICAgICAgIEFyZzINCj4gPg0K PiA+ICsgIEBwYXJhbVtpbl0gICAgIEFyZzMgICAgICAgIEFyZzMNCj4gPg0KPiA+ICsgIEBwYXJh bVtpbl0gICAgIEFyZzQgICAgICAgIEFyZzQNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbixvdXRdIFJl c3VsdHMgICAgIFJldHVybmVkIHJlc3VsdCBvZiB0aGUgc3ViLWZ1bmN0aW9uDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICBAcmV0dXJuIEVGSV9TVUNDRVNTDQo+ID4NCj4gPiArICBAcmV0dXJuIE90 aGVyICAgICAgICAgICBTZWUgaW5kaXZpZHVhbCBzdWItZnVuY3Rpb25zDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+ DQo+ID4gK1RkVm1DYWxsICgNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICBMZWFmLA0K PiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgIEFyZzEsDQo+ID4NCj4gPiArICBJTiBVSU5U NjQgICAgICAgICAgQXJnMiwNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICBBcmczLA0K PiA+DQo+ID4gKyAgSU4gVUlOVDY0ICAgICAgICAgIEFyZzQsDQo+ID4NCj4gPiArICBJTiBPVVQg Vk9JRCAgICAgICAgKlJlc3VsdHMNCj4gPg0KPiA+ICsgICkNCj4gPg0KPiA+ICt7DQo+ID4NCj4g PiArICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KPiA+DQo+ID4gK30NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIFRoaXMgZnVuY3Rpb24gZW5hYmxlIHRoZSBURCBndWVz dCB0byByZXF1ZXN0IHRoZSBWTU0gdG8gZW11bGF0ZQ0KPiA+ICsgQ1BVSUQNCj4gPg0KPiA+ICsg IG9wZXJhdGlvbiwgZXNwZWNpYWxseSBmb3Igbm9uLWFyY2hpdGVjdHVyYWwsIENQVUlEIGxlYXZl cy4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbl0gICAgIEVheCAgICAgICAgTWFp biBsZWFmIG9mIHRoZSBDUFVJRA0KPiA+DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgRWN4ICAgICAg ICBTdWItbGVhZiBvZiB0aGUgQ1BVSUQNCj4gPg0KPiA+ICsgIEBwYXJhbVtpbixvdXRdIFJlc3Vs dHMgICAgUmV0dXJuZWQgcmVzdWx0IG9mIENQVUlEIG9wZXJhdGlvbg0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgQHJldHVybiBFRklfU1VDQ0VTUw0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0VG SV9TVEFUVVMNCj4gPg0KPiA+ICtFRklBUEkNCj4gPg0KPiA+ICtUZFZtQ2FsbENwdWlkICgNCj4g Pg0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgIEVheCwNCj4gPg0KPiA+ICsgIElOIFVJTlQ2NCAg ICAgICAgIEVjeCwNCj4gPg0KPiA+ICsgIElOIE9VVCBWT0lEICAgICAgICpSZXN1bHRzDQo+ID4N Cj4gPiArICApDQo+ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRF RDsNCj4gPg0KPiA+ICt9DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvVGR4 TGliL1RkeExpYk51bGwuaW5mDQo+ID4gYi9NZGVQa2cvTGlicmFyeS9UZHhMaWIvVGR4TGliTnVs bC5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLjBk MDc1OTVhOGMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVGR4 TGliL1RkeExpYk51bGwuaW5mDQo+ID4gQEAgLTAsMCArMSwzMyBAQA0KPiA+ICsjIyBAZmlsZQ0K PiA+DQo+ID4gKyMgIE51bGwgVGR4IGxpYnJhcnkgaW5zdGFuY2UNCj4gPg0KPiA+ICsjDQo+ID4N Cj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMjAgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4NCj4gPiArIyBUaGlzIHByb2dyYW0gYW5k IHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4NCj4gPiArIyBhcmUgbGljZW5zZWQgYW5k IG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZg0KPiA+ICt0 aGUNCj4gQlNEDQo+ID4gTGljZW5zZQ0KPiA+DQo+ID4gKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhp cyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4gK21heQ0K PiBiZQ0KPiA+IGZvdW5kIGF0DQo+ID4NCj4gPiArIyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGlj ZW5zZXMvYnNkLWxpY2Vuc2UucGhwLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjIFRIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ ID4gQkFTSVMsDQo+ID4NCj4gPiArIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJ T05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4NCj4g PiArIw0KPiA+DQo+ID4gKyMjDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArW0RlZmluZXNdDQo+ID4N Cj4gPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ID4N Cj4gPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBUZHhMaWJOdWxsDQo+ID4N Cj4gPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPQ0KPiA+IDA1QzVFNjIxLUZD NjYtNDQyMC05QzgwLUYwREU5RTVCOTVGRg0KPiA+DQo+ID4gKyAgTU9EVUxFX1RZUEUgICAgICAg ICAgICAgICAgICAgID0gQkFTRQ0KPiA+DQo+ID4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAg ICAgICAgID0gMS4wDQo+ID4NCj4gPiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAg PSBUZHhMaWINCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBUaGUgZm9sbG93 aW5nIGluZm9ybWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5 DQo+ID4gK3RoZQ0KPiA+IGJ1aWxkIHRvb2xzLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjICBW QUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IFg2NA0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICtbU291cmNlc10NCj4gPg0KPiA+ICsgIFRkeExpYk51bGwuYw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gK1tQYWNrYWdlc10NCj4gPg0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVj DQo+ID4NCj4gPiAtLQ0KPiA+IDIuMjkuMi53aW5kb3dzLjINCj4gPg0KPiA+DQo+ID4NCj4gPiAt PS09LT0tPS09LT0NCj4gPiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdl cyBzZW50IHRvIHRoaXMgZ3JvdXAuDQo+ID4gVmlldy9SZXBseSBPbmxpbmUgKCM3MjU0OCk6DQo+ ID4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNzI1NDgNCj4gPiBNdXRl IFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210LzgxMTkxMDM0LzQ5MDU5NTMNCj4gPiBH cm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4gPiBVbnN1YnNjcmliZTog aHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViDQo+ID4gW2dhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbl0NCj4gPiAtPS09LT0tPS09LT0NCj4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCg0K