From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web12.6810.1604715868928388902 for ; Fri, 06 Nov 2020 18:24:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=hUvfJTpd; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: jiewen.yao@intel.com) IronPort-SDR: 1qaeCX8LEQWmmZUfnylxfm2WyXLUl4eU5rke16TiZSC8wZQu/0FcFEVn8Xn12pZy0vYiItuVcU 6fDqDl93wVgg== X-IronPort-AV: E=McAfee;i="6000,8403,9797"; a="148904143" X-IronPort-AV: E=Sophos;i="5.77,458,1596524400"; d="scan'208";a="148904143" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Nov 2020 18:24:28 -0800 IronPort-SDR: 6QEfkbKHgItNJgekMPVkxEE3fEqoiTEFAqrfZ6YIOCzDaW1BGqOsLr+3Vs6FqdNQwv375Xskix QKvkA36cYbdA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,458,1596524400"; d="scan'208";a="427484217" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga001.fm.intel.com with ESMTP; 06 Nov 2020 18:24:28 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.1713.5; Fri, 6 Nov 2020 18:24:28 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 6 Nov 2020 18:24:28 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 6 Nov 2020 18:24:27 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J8liUk6VjEDcIyrM0s5syJdfhf6Rit34JFdzvB0TJoEzJKutqFkcb8abazWOzrZsHPj+2hoqhJDUlXQyiHfeg8NcULNOFT8s9g52C+DvPOlkl3z1/DiOduNIj5C2PPiTEw4y6eD1HUjdT8ql8L+1EWftm6g3okCs/AFBQ3RuAlT4XwrLcotOV8agH0ZfA/xdfyxmTl3SXM7v9m9PXzIDrNRf8AEn35q8pg92Qar4IZNy0ZZSW8S4lddaX3uIvZnVooecvLcp0ChyVd8TW0gfnRU0BdniwueHmTZq5D5QskZ69gGVEHouWAD7PNsITwpXyaXeVfC/eDvLgXepKy9bLA== 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=z25f/SE37sFKdAPro4LBd7mVIdn1x9DgzioOb9/1uTQ=; b=T1CeL0Lrsdlkj4l4AaA4NkLuoIc0SujNTNaXG0cdCIS+8tdIvT3bJRRQoIzxc7D8HsMKDqR1JENJLUH1VGPtpDQ6beA7fwu7OOGs2cMUXL29SMJhjeZHNf5aP8yxw4s28iO8JDafGHMTz3KYvjoDutmH8TfqUtMcSuVV+XL1kOy8sRUxi4iYMdd422Ywc4K8ludQ66prccCCVGW4OJrdfoE1zaoWjoDjWyi/I3CaD9MFo3SpRBTsWdiaI0/D/bvK+iAtMvULMFex0A6fkVq6wJIt2dHNVtqZyGIRFjuOCClFlJA7wV0saZeUTcwfd4zq5bfxydUz3Ubl5YGRYcP0xg== 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=z25f/SE37sFKdAPro4LBd7mVIdn1x9DgzioOb9/1uTQ=; b=hUvfJTpd9HErvKtzwRWXmX7tzhgzmFNkPPHsK9Tzcywkn1thcMRSnVh8GGoR+gQRlAtvDBOjb5cXZ0LUkwQIW27TW/qidX8we2n44gF2nrl8HGiD++PZaLzTj+l67c2DkcFo+3/UTzj2QZ6KVePusfL9c0+a17Fkh6T3DP7HpUc= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR11MB1366.namprd11.prod.outlook.com (2603:10b6:903:2b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.29; Sat, 7 Nov 2020 02:24:25 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::a188:2994:6c14:aad7]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::a188:2994:6c14:aad7%12]) with mapi id 15.20.3541.022; Sat, 7 Nov 2020 02:24:24 +0000 From: "Yao, Jiewen" To: "Zurcher, Christopher J" CC: "devel@edk2.groups.io" , Laszlo Ersek , gaoliming , "Wang, Jian J" , "Lu, XiaoyuX" , "Kinney, Michael D" , Ard Biesheuvel Subject: Re: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWsiyB4+1/v20uXEu0lqu2S9yUHqm6nppAgAAEk9CAADbo4IAADdPggACSlmCAAEPtsIAALsgwgAAIqxo= Date: Sat, 7 Nov 2020 02:24:24 +0000 Message-ID: <7D73B5FD-CBCA-4E8C-B73B-930722C9FCF7@intel.com> References: <20201103215834.7533-1-christopher.j.zurcher@intel.com> <1644D590FF4B7423.25549@groups.io> , In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [2409:891e:8f40:daee:c06f:def4:5488:dd11] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a6a8c0f9-2af5-4891-f819-08d882c43eaa x-ms-traffictypediagnostic: CY4PR11MB1366: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: n+G8ACBhMV5XBWzM1lwTGTqSRzmAUEQr1CYq4F6JF5mXT7LWZmp90Wq3UaZaanuT1ESkxevCIFQ3i8LRXCilCMqJGX/WDvLQv8FxU26k0yzvbu1oeoWgJlkN7dqIr32f5h3eGZldGbsbZ0WMOMjBNq/3g4GsQsFaZVfEN7V8WjGL8o1ctmRYT4t6bcc5v0krcFPlQqZozvKUaMKrXGqvbqfa5aueah3rzotETM5vuKxxp7BNH6UIJ7yEbXoRZwZwIW/U5v4ZaX4Xe2mFy78a/C+V3NS489xCEzx+ZkzLC8DrC8P5A/zYupZdIYdYK9Aq/ksDoaJRfbGXk9Z7MgWXMJ54pYMyPc5P4vwDgEjX1Wz5gvcKZWKIYtjaDy1+VzAfYz12FWKJXlqokeQQjCOMZg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(376002)(136003)(396003)(39860400002)(6506007)(478600001)(37006003)(86362001)(71200400001)(54906003)(91956017)(33656002)(6486002)(2616005)(6862004)(8676002)(186003)(6512007)(316002)(966005)(19627235002)(76116006)(66476007)(66556008)(30864003)(2906002)(8936002)(6636002)(66446008)(66946007)(5660300002)(36756003)(4326008)(83380400001)(64756008)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: s2+wm89Fj7RPFBHgkkcswqadK5W6yESlir50gOPx1+Bf8Y0wlKSrYDQZ8TJmNtgleuOxi5nsst4beEtElvMYo+lcN1UvRdyXc4dejX+4E5BpiIiBvpxl8d/JJPjrgeQVEm901ZAsZLtSldxO1F8X6yvuTOlusNs3HPK8XmrVNb555KEk0139RyFYhzmZgh/noTpYXfTTHk+6BUx67Jt67T2BUaAjWXm4szhnywF2tcMnBApFdHhC7GFwJTsW8V+X5rGAiAMUAPB7QysAqQ+50haMf51WxTqRDPVw9C34R2RlrMBjcSboGbYBevLGQ5DWJbX/njQtw4qxJLvPrJe1BFsT+8rNIvCSv+nmYZ8N3clvB4cFlCF89gtTwfvutTVLz0t70AkBw+lBqRdd8hSfudcK2Ys7WQ2rG4P9VZWcdX0F0jyxb96jU8k2Ll6m/WQvqw2ot5qiATaX/pzFTbhC/GWPIUxDDo7+8kQfIRd/xN5v24gIgRYUbgxm+HwmfpYm0tMaU4dID0kY9FEns+37PYeKaMpRXJARDWr0+v4GCd1XYafRhBIWFLDs8PGNOe+ZgAwH16hkCGLzBn1bv41JK2I/5jQU3/iWTh+6wLuQvsPhQO39u5XDng66HEbxYLDXwVQt/51dTFZ9e0UqE4uekvoakRe0IhNlLJVYYRj0Q/+16kk/MWiJWQqVCGkr7d7R1gO+4X5hWVTiHx1+L/1dcg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6a8c0f9-2af5-4891-f819-08d882c43eaa X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2020 02:24:24.8308 (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: /v7Q2HamTBpckAG4+3LVe0QFAiI5wKKwKuVAlWEf54vi9NnHpgeuqb7+ca9ij8gwzCIxnHiRxYqN15qrlVesIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1366 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIHJlYXNvbiB3ZSBjaG9vc2UgTkFTTSBpcyB0aGF0IHdlIGNhbiB1c2Ugc2FtZSBhc3NlbWJs eSBpbiB3aW5kb3dzIGJ1aWxkIGFuZCBMaW51eCBidWlsZC4gSG93ZXZlciBpZiB0aGlzIE5BU00g Y2Fubm90IGJlIHVzZWQgaW4gTGludXgsIHRoZW4gdGhlIGJlbmVmaXQgZG9lcyBub3QgZXhpc3Qg YW55IG1vcmUuIFlvdSBjYW4gZ2VuZXJhdGUgR0FTIHRvIHN1cHBvcnQgR0NDIGJ1aWxkLCBhbmQg Y2hlY2sgaW4gLlMgZmlsZS4gDQoNCnRoYW5rIHlvdSENCllhbywgSmlld2VuDQoNCg0KPiDlnKgg MjAyMOW5tDEx5pyIN+aXpe+8jOS4iuWNiDEwOjAy77yMWnVyY2hlciwgQ2hyaXN0b3BoZXIgSiA8 Y2hyaXN0b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT4g5YaZ6YGT77yaDQo+IA0KPiDvu79UaGVp ciBvcHRpb25zIHdvdWxkIGJlOg0KPiAxKSBGaWxlIGEgYnVnIGFnYWluc3QgT3BlblNTTCB0aGF0 IHRoZWlyIE5BU00gY29kZSBpcyB0b28gYWR2YW5jZWQgZm9yIEdDQyB0b29sY2hhaW4gKHVubGlr ZWx5IHRvIHJlc3VsdCBpbiBhbnkgY2hhbmdlIHNpbmNlIE9wZW5TU0wgd291bGQgc2F5IEdDQyBi dWlsZCBzaG91bGQgYmUgdXNpbmcgR0FTIGluc3RlYWQgb2YgTkFTTSBhbmQgYnVpbGRpbmcgb3V0 c2lkZSBvZiB0aGVpciBtYWtlZmlsZSBidWlsZCBzeXN0ZW0gaXMgYmFkIHByYWN0aWNlIGluIHRo ZSBmaXJzdCBwbGFjZSkuDQo+IDIpIEZpbGUgYSBidWcgYWdhaW5zdCBHQ0MgdGhhdCB0aGVpciB0 b29sY2hhaW4gY2FuJ3QgaGFuZGxlIE5BU00gY29ycmVjdGx5Lg0KPiAzKSBVc2UgQ0xBTkdQREIg dG9vbGNoYWluIGluc3RlYWQuDQo+IA0KPiBJIGFtIG5vdCBmYW1pbGlhciBlbm91Z2ggd2l0aCB0 aGUgR0NDIHRvb2xjaGFpbiB0byBrbm93IGlmIHRoZXJlIGlzIGFueSB3YXkgdG8gbWFrZSBpdCBp bnRlcnByZXQgTkFTTSBmaWxlcyBjb3JyZWN0bHksIHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQg c29tZW9uZSB3aG8ga25vd3MgbW9yZSBhYm91dCBpdCBjb3VsZCBwcm92aWRlIHNvbWUgY29uZmln dXJhdGlvbiBjaGFuZ2UgdGhhdCBjb3VsZCByZXNvbHZlIHRoaXMuIEJ1dCBJIGRvIG5vdCB0aGlu ayB3ZSBzaG91bGQgc2F5IHRoYXQgVlMgYW5kIENMQU5HUERCIHRvb2xjaGFpbiB1c2VycyBjYW4n dCBoYXZlIE9wZW5TU0wgYWNjZWxlcmF0aW9uIGJlY2F1c2UgR0NDIGNhbid0IGhhbmRsZSBpdC4N Cj4gDQo+IFRoYW5rcywNCj4gQ2hyaXN0b3BoZXIgWnVyY2hlcg0KPiANCj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5j b20+DQo+PiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgMTU6MDcNCj4+IFRvOiBadXJj aGVyLCBDaHJpc3RvcGhlciBKIDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPjsNCj4+ IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsg Z2FvbGltaW5nDQo+PiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPj4gQ2M6IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVggPHhpYW95dXgubHVAaW50 ZWwuY29tPjsNCj4+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IEFyZCBCaWVzaGV1dmVsDQo+PiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4+IFN1Ympl Y3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6 IEFkZCBuYXRpdmUNCj4+IGluc3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPj4gDQo+PiBTbywg aWYgc29tZW9uZSB3YW50cyB0byB1c2UgdGhpcyBhY2NlbGVyYXRvciBpbiBMaW51eCB3aXRoIEdD Qywgd2hhdCBoZS9zaGUNCj4+IG5lZWQgdG8gZG8/DQo+PiANCj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPj4+IEZyb206IFp1cmNoZXIsIENocmlzdG9waGVyIEogPGNocmlzdG9waGVy LmouenVyY2hlckBpbnRlbC5jb20+DQo+Pj4gU2VudDogU2F0dXJkYXksIE5vdmVtYmVyIDcsIDIw MjAgMzozNiBBTQ0KPj4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTGFzemxvDQo+Pj4gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PjsgZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+Pj4gQ2M6IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4+PiA8eGlhb3l1eC5s dUBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+Ow0KPj4+IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0KPj4+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xM aWI6IEFkZCBuYXRpdmUNCj4+PiBpbnN0cnVjdGlvbiBzdXBwb3J0IGZvciBYNjQNCj4+PiANCj4+ PiBZZXMsIGluIHJlc3BvbnNlIHRvIHlvdXIgcmVxdWVzdCwgaXQgd2FzIGRpc2N1c3NlZCBvbiB0 aGUgbWFpbGluZyBsaXN0IHRoYXQNCj4+IHRoZQ0KPj4+IE9wZW5TU0wgYXNzZW1ibHkgY29kZSBp cyBub3QgY29tcGF0aWJsZSB3aXRoIEdDQyBpbiB0aGlzIGZvcm1hdC4gSXQgaXMNCj4+IGZ1bGx5 DQo+Pj4gZnVuY3Rpb25hbCB3aXRoIFZTIHRvb2xjaGFpbiBhbmQgQ0xBTkdQREIgdG9vbGNoYWlu LiBUaGUgR0NDIHRvb2xjaGFpbg0KPj4+IGFwcGVhcnMgdG8gYmUgdW5hYmxlIHRvIGhhbmRsZSBz b21lIGFzcGVjdHMgb2YgTkFTTSBjb2RlLCBwYXJ0aWN1bGFybHkgdGhlDQo+Pj4gQ09NTU9OIHNl Y3Rpb24gYW5kIHRoZSAid3J0IC4uaW1hZ2ViYXNlIiBzdHlsZSBvZiBwb3NpdGlvbi1pbmRlcGVu ZGVudA0KPj4+IGNvZGUuDQo+Pj4gU2VlIDcuNi4xIGhlcmU6IGh0dHBzOi8vd3d3Lm5hc20udXMv eGRvYy8yLjEzLjAycmMzL2h0bWwvbmFzbWRvYzcuaHRtbA0KPj4+IA0KPj4+IE1pa2UvTGFzemxv L0xpbWluZywNCj4+PiBDYW4geW91IGhlbHAgbWUgcmVzb2x2ZSB0aGUgQ0kgZmFpbHVyZXM/DQo+ Pj4gDQo+Pj4gVGhhbmtzLA0KPj4+IENocmlzdG9waGVyIFp1cmNoZXINCj4+PiANCj4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4gPGppZXdlbi55 YW9AaW50ZWwuY29tPg0KPj4+PiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgMDI6MjMN Cj4+Pj4gVG86IFp1cmNoZXIsIENocmlzdG9waGVyIEogPGNocmlzdG9waGVyLmouenVyY2hlckBp bnRlbC5jb20+Ow0KPj4+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+PiBDYzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WA0KPj4+IDx4aWFveXV4Lmx1 QGludGVsLmNvbT47DQo+Pj4+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+Pj4+IDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0K Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAwLzJdIENyeXB0b1BrZy9P cGVuc3NsTGliOiBBZGQgbmF0aXZlDQo+Pj4+IGluc3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0K Pj4+PiANCj4+Pj4gSGkgWnVyY2hlcg0KPj4+PiBJIGFtIG5vdCBDSSBwZXJzb24sIHNvIEkgcmVj b21tZW5kIHlvdSBoYXZlIGEgZGlzY3Vzc2lvbiB3aXRoIE1pa2UsDQo+Pj4gTGFzemxvLA0KPj4+ PiBvciBMaW1pbmcgdG8gc2VlIHdoYXQgaXMgdGhlIGJlc3Qgd2F5IHRvIHJlc29sdmUgdGhlIGNv ZGluZyBzdHlsZSBpc3N1ZS4NCj4+IE9yDQo+Pj4+IGhvdyB0byBjaGFuZ2UgQ0kgcnVsZSB0byBh ZGQgZXhjZXB0aW9uIHNvbWV3aGVyZS4NCj4+Pj4gDQo+Pj4+IEhvd2V2ZXIsIEkgZG8gaGF2ZSBj b25jZXJuLCB3aGVuIHlvdSBzYXk6ICJ0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlDQo+Pj4g d2l0aA0KPj4+PiBHQ0MgYnVpbGRzLiINCj4+Pj4gDQo+Pj4+IEluIHByZXZpb3VzIHJldmlldywg SSBhbHJlYWR5IGdhdmUgdGhlIGNvbW1lbnQgdG8gcGFzcyBidWlsZCB3aXRoIEdDQyBhbmQNCj4+ Pj4gQ0xBTkcgYmVzaWRlcyBNU1ZDLiBEbyB5b3UgbWVhbiB0aGlzIHBhdGNoIGNhbm5vdCBwYXNz IEdDQyBidWlsZD8NCj4+Pj4gDQo+Pj4+IFRoYW5rIHlvdQ0KPj4+PiBZYW8gSmlld2VuDQo+Pj4+ IA0KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IFp1cmNoZXIs IENocmlzdG9waGVyIEogPGNocmlzdG9waGVyLmouenVyY2hlckBpbnRlbC5jb20+DQo+Pj4+PiBT ZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgNTo1MCBQTQ0KPj4+Pj4gVG86IFlhbywgSmll d2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+Pj4+PiBD YzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WA0KPj4+ Pj4gPHhpYW95dXgubHVAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4+PiA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPj4+Pj4gQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1 dmVsQGFybS5jb20+DQo+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAw LzJdIENyeXB0b1BrZy9PcGVuc3NsTGliOiBBZGQNCj4+PiBuYXRpdmUNCj4+Pj4+IGluc3RydWN0 aW9uIHN1cHBvcnQgZm9yIFg2NA0KPj4+Pj4gDQo+Pj4+PiBJIHRoaW5rIHNvbWUgb2YgdGhlc2Ug ZXJyb3JzIGFyZSBub3QgcmVsZXZhbnQgYmFzZWQgb24gdGhlIG5hdHVyZSBvZg0KPj4gdGhlDQo+ Pj4+PiBjb21taXQ6DQo+Pj4+PiANCj4+Pj4+IE9uZSBvZiB0aGUgZXJyb3JzIHJlcG9ydGVkIGlz IHRoYXQgdGhlIGFkZGVkIHR5cGVkZWZzIChwdHJkaWZmX3QsDQo+PiB3Y2hhcl90KQ0KPj4+PiBk bw0KPj4+Pj4gbm90IGZvbGxvdyBjb2RpbmcgZ3VpZGVsaW5lcywgYnV0IHRoZSB0eXBlZGVmcyBh cmUgcmVxdWlyZWQgZm9yIE9wZW5TU0wNCj4+Pj4+IGNvbXBhdGliaWxpdHkgYW5kIHRoZXkgbWF0 Y2ggdGhlIGFscmVhZHktZXhpc3Rpbmcgc3R5bGU6DQo+Pj4+PiANCj4+Pj4+IHR5cGVkZWYgVUlO VE4gICAgICAgICAgc2l6ZV90Ow0KPj4+Pj4gdHlwZWRlZiBVSU5UTiAgICAgICAgICB1X2ludDsN Cj4+Pj4+ICt0eXBlZGVmIElOVE4gICAgICAgICAgIHB0cmRpZmZfdDsNCj4+Pj4+IHR5cGVkZWYg SU5UTiAgICAgICAgICAgc3NpemVfdDsNCj4+Pj4+IHR5cGVkZWYgSU5UMzIgICAgICAgICAgdGlt ZV90Ow0KPj4+Pj4gdHlwZWRlZiBVSU5UOCAgICAgICAgICBfX3VpbnQ4X3Q7DQo+Pj4+PiB0eXBl ZGVmIFVJTlQ4ICAgICAgICAgIHNhX2ZhbWlseV90Ow0KPj4+Pj4gdHlwZWRlZiBVSU5UOCAgICAg ICAgICB1X2NoYXI7DQo+Pj4+PiB0eXBlZGVmIFVJTlQzMiAgICAgICAgIHVpZF90Ow0KPj4+Pj4g dHlwZWRlZiBVSU5UMzIgICAgICAgICBnaWRfdDsNCj4+Pj4+ICt0eXBlZGVmIENIQVIxNiAgICAg ICAgIHdjaGFyX3Q7DQo+Pj4+PiANCj4+Pj4+IEFub3RoZXIgZXJyb3IgaXMgdGhhdCB0aGUgYXV0 by1nZW5lcmF0ZWQgYXNzZW1ibHkgZmlsZXMgZG8gbm90IHN0YXJ0DQo+PiB3aXRoDQo+Pj4+PiBj YXBpdGFsIGxldHRlcnMsIGJ1dCB0aGVzZSBmaWxlbmFtZXMgY29tZSBmcm9tIE9wZW5TU0wgd2l0 aCBsb3dlcmNhc2UNCj4+Pj4+IGZpbGVuYW1lcywgYW5kIHdlIGFscmVhZHkgaGF2ZSBvcGVuc3Ns Y29uZi5oIGluIHRoZSBJbmNsdWRlIGZvbGRlcg0KPj4gd2hpY2gNCj4+Pj4+IGhhcyBhIGxvd2Vy Y2FzZSBmaWxlbmFtZS4NCj4+Pj4+IA0KPj4+Pj4gQW5vdGhlciBlcnJvciB0eXBlIHJlcG9ydGVk IGlzIHRoYXQgdGhlIGF1dG8tZ2VuZXJhdGVkIGFzc2VtYmx5IGZpbGVzDQo+PiBkbw0KPj4+PiBu b3QNCj4+Pj4+IGhhdmUgIlNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50IiBidXQgaXQgd2FzIGFscmVhZHkNCj4+Pj4+IGRpc2N1c3NlZCBvbiB0aGUgbGlzdCB0aGF0 IHRoZXNlIHdvdWxkIGJlIGNoZWNrZWQgaW4gd2l0aCB0aGUgT3BlblNTTA0KPj4+PiBoZWFkZXIN Cj4+Pj4+IHNpbWlsYXIgdG8gb3BlbnNzbGNvbmYuaDoNCj4+Pj4+IA0KPj4+IGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9DcnlwdG9Qa2cvTGlicmFyeS9JbmNs dWRlLw0KPj4+Pj4gb3BlbnNzbC9vcGVuc3NsY29uZi5oDQo+Pj4+PiANCj4+Pj4+IEFkZGl0aW9u YWxseSwgdGhlcmUgaXMgYW4gZXJyb3IgdGhhdCBPcGVuc3NsTGliWDY0LmluZiBpcyBub3QgaW4N Cj4+Pj4gQ3J5cHRvUGtnLmRzYywNCj4+Pj4+IGJ1dCBJIGFtIG5vdCBzdXJlIGlmIGl0IGlzIGFw cHJvcHJpYXRlIHRvIGluY2x1ZGUgYXMgdGhlIG1vZHVsZSBpcyBub3QNCj4+Pj4+IGNvbXBhdGli bGUgd2l0aCBHQ0MgYnVpbGRzLg0KPj4+Pj4gDQo+Pj4+PiBIb3cgc2hvdWxkIEkgcHJvY2VlZCBo ZXJlPw0KPj4+Pj4gDQo+Pj4+PiBUaGFua3MsDQo+Pj4+PiBDaHJpc3RvcGhlciBadXJjaGVyDQo+ Pj4+PiANCj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+IEZyb206IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+Pj4+PiBTZW50OiBUaHVyc2RheSwg Tm92ZW1iZXIgNSwgMjAyMCAyMjoxNA0KPj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4+PiBadXJjaGVyLA0KPj4+Pj4+ IENocmlzdG9waGVyIEogPGNocmlzdG9waGVyLmouenVyY2hlckBpbnRlbC5jb20+DQo+Pj4+Pj4g Q2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4+ Pj4+IDx4aWFveXV4Lmx1QGludGVsLmNvbT47DQo+Pj4+Pj4gS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4+Pj4+PiA8YXJkLmJp ZXNoZXV2ZWxAYXJtLmNvbT4NCj4+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRD SCB2NSAwLzJdIENyeXB0b1BrZy9PcGVuc3NsTGliOiBBZGQNCj4+PiBuYXRpdmUNCj4+Pj4+PiBp bnN0cnVjdGlvbiBzdXBwb3J0IGZvciBYNjQNCj4+Pj4+PiANCj4+Pj4+PiBIaSBadXJjaGVyDQo+ Pj4+Pj4gSSBjcmVhdGVkIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzEw OTINCj4+Pj4+PiANCj4+Pj4+PiBIb3dldmVyLCB0aGVyZSBhcmUgZmFpbHVyZXMgaW4gQ0kgdGVz dC4gU28gdGhpcyBwYXRjaCBpcyBOT1QgbWVyZ2VkLg0KPj4+Pj4+IA0KPj4+Pj4+IFBsZWFzZSB0 YWtlIGEgbG9vayBhbmQgcmVzb2x2ZSBpdC4NCj4+Pj4+PiANCj4+Pj4+PiBUaGFuayB5b3UNCj4+ Pj4+PiBZYW8gSmlld2VuDQo+Pj4+Pj4gDQo+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+Pj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vw cy5pbz4gT24gQmVoYWxmIE9mDQo+Pj4gWWFvLA0KPj4+Pj4+PiBKaWV3ZW4NCj4+Pj4+Pj4gU2Vu dDogRnJpZGF5LCBOb3ZlbWJlciA2LCAyMDIwIDE6NTYgUE0NCj4+Pj4+Pj4gVG86IFp1cmNoZXIs IENocmlzdG9waGVyIEogPGNocmlzdG9waGVyLmouenVyY2hlckBpbnRlbC5jb20+Ow0KPj4+Pj4+ PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+Pj4+PiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WA0KPj4+Pj4+PiA8eGlhb3l1eC5sdUBpbnRlbC5j b20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPj4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsNCj4+Pj4+Pj4gQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+DQo+Pj4+ Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtnL09w ZW5zc2xMaWI6IEFkZA0KPj4+Pj4gbmF0aXZlDQo+Pj4+Pj4+IGluc3RydWN0aW9uIHN1cHBvcnQg Zm9yIFg2NA0KPj4+Pj4+PiANCj4+Pj4+Pj4gUGF0Y2ggMS8yIHJldmlld2VkLWJ5OiBKaWV3ZW4g WWFvIDxKaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+Pj4gRnJvbTogQ2hyaXN0b3BoZXIgSiBadXJjaGVyIDxj aHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPg0KPj4+Pj4+Pj4gU2VudDogV2VkbmVzZGF5 LCBOb3ZlbWJlciA0LCAyMDIwIDU6NTkgQU0NCj4+Pj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPj4+Pj4+Pj4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdh bmcsIEppYW4gSg0KPj4+Pj4+Pj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVY IDx4aWFveXV4Lmx1QGludGVsLmNvbT47DQo+Pj4gS2lubmV5LA0KPj4+Pj4+Pj4gTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+Pj4+Pj4+PiA8 YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRDSCB2NSAwLzJd IENyeXB0b1BrZy9PcGVuc3NsTGliOiBBZGQgbmF0aXZlDQo+Pj4gaW5zdHJ1Y3Rpb24NCj4+Pj4+ Pj4+IHN1cHBvcnQgZm9yIFg2NA0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBWNSBDaGFuZ2VzOg0KPj4+ Pj4+Pj4gIE1vdmUgQXBpSG9va3MuYyBpbnRvIFg2NCBmb2xkZXINCj4+Pj4+Pj4+ICBVcGRhdGUg cHJvY2Vzc19maWxlcy5wbCB0byBjbGVhbiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMNCj4+IHN1YmZv bGRlcnMNCj4+Pj4+PiB3aXRob3V0DQo+Pj4+Pj4+PiAgICByZW1vdmluZyB0aGVtDQo+Pj4+Pj4+ PiAgUmViYXNlZCBJTkYgZmlsZSB0byBtZXJnZSBsYXRlc3QgY2hhbmdlcyByZWdhcmRpbmcgUm5n TGliIHZzLg0KPj4+PiBUaW1lckxpYg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBWNCBDaGFuZ2VzOg0K Pj4+Pj4+Pj4gIEFkZCBjb3B5cmlnaHQgaGVhZGVyIHRvIHVlZmktYXNtLmNvbmYNCj4+Pj4+Pj4+ ICBNb3ZlIFtTb3VyY2VzLlg2NF0gYmxvY2sgdG8gY292ZXIgZW50aXJlIFg2NC1zcGVjaWZpYyBj b25maWcNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gVjMgQ2hhbmdlczoNCj4+Pj4+Pj4+ICBBZGRlZCBk ZWZpbml0aW9ucyBmb3IgcHRyZGlmZl90IGFuZCB3Y2hhcl90IHRvIENydExpYlN1cHBvcnQuaA0K Pj4gZm9yDQo+Pj4+Pj4+PiAgICBMTFZNL0NsYW5nIGJ1aWxkIHN1cHBvcnQuDQo+Pj4+Pj4+PiAg QWRkZWQgLVVXSU4zMiB0byBHQ0MgRmxhZ3MgZm9yIExMVk0vQ2xhbmcgYnVpbGQgc3VwcG9ydC4N Cj4+Pj4+Pj4+ICBBZGRlZCBtaXNzaW5nIEFFUyBHQ00gYXNzZW1ibHkgZmlsZS4NCj4+Pj4+Pj4+ IA0KPj4+Pj4+Pj4gVjIgQ2hhbmdlczoNCj4+Pj4+Pj4+ICBMaW1pdCBzY29wZSBvZiBhc3NlbWJs eSBjb25maWcgdG8gU0hBIGFuZCBBRVMgZnVuY3Rpb25zLg0KPj4+Pj4+Pj4gIFJlbW92ZWQgSUEz MiBuYXRpdmUgc3VwcG9ydCAocmVkdWNlZCBjb25maWcgd2FzIGNhdXNpbmcgYnVpbGQNCj4+Pj4g ZmFpbHVyZQ0KPj4+Pj4+PiBhbmQNCj4+Pj4+Pj4+ICAgIGNhbiBiZSBhZGRlZCBpbiBhIGxhdGVy IHBhdGNoKS4NCj4+Pj4+Pj4+ICBSZW1vdmVkIFhNTSBpbnN0cnVjdGlvbnMgZnJvbSBhc3NlbWJs eSBnZW5lcmF0aW9uLg0KPj4+Pj4+Pj4gIEFkZGVkIGF1dG9tYXRpYyBjb3B5cmlnaHQgaGVhZGVy IHBvcnRpbmcgZm9yIGdlbmVyYXRlZCBhc3NlbWJseQ0KPj4+Pj4gZmlsZXMuDQo+Pj4+Pj4+PiAN Cj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBidWlsZGluZyB0aGUgbmF0aXZl IGluc3RydWN0aW9uDQo+Pj4+IGFsZ29yaXRobXMNCj4+Pj4+PiBmb3INCj4+Pj4+Pj4+IHRoZSBY NjQgYXJjaGl0ZWN0dXJlIGluIE9wZW5zc2xMaWIuIFRoZSBwcm9jZXNzX2ZpbGVzLnBsIHNjcmlw dA0KPj4gd2FzDQo+Pj4+Pj4gbW9kaWZpZWQNCj4+Pj4+Pj4+IHRvIHBhcnNlIHRoZSAuYXNtIGZp bGUgdGFyZ2V0cyBmcm9tIHRoZSBPcGVuU1NMIGJ1aWxkIGNvbmZpZyBkYXRhDQo+Pj4+IHN0cnVj dCwNCj4+Pj4+PiBhbmQNCj4+Pj4+Pj4+IGdlbmVyYXRlIHRoZSBuZWNlc3NhcnkgYXNzZW1ibHkg ZmlsZXMgZm9yIHRoZSBFREsyIGJ1aWxkDQo+Pj4gZW52aXJvbm1lbnQuDQo+Pj4+Pj4+PiANCj4+ Pj4+Pj4+IEZvciB0aGUgWDY0IHZhcmlhbnQsIE9wZW5TU0wgaW5jbHVkZXMgY2FsbHMgdG8gYSBX aW5kb3dzIGVycm9yDQo+Pj4+IGhhbmRsaW5nDQo+Pj4+Pj4gQVBJLA0KPj4+Pj4+Pj4gYW5kIHRo YXQgZnVuY3Rpb24gaGFzIGJlZW4gc3R1YmJlZCBvdXQgaW4gQXBpSG9va3MuYy4NCj4+Pj4+Pj4+ IA0KPj4+Pj4+Pj4gRm9yIGFsbCB2YXJpYW50cywgYSBjb25zdHJ1Y3RvciBpcyBhZGRlZCB0byBj YWxsIHRoZSByZXF1aXJlZA0KPj4gQ1BVSUQNCj4+Pj4+PiBmdW5jdGlvbg0KPj4+Pj4+Pj4gd2l0 aGluIE9wZW5TU0wgdG8gZmFjaWxpdGF0ZSBwcm9jZXNzb3IgY2FwYWJpbGl0eSBjaGVja3MgaW4g dGhlDQo+Pj4+IG5hdGl2ZQ0KPj4+Pj4+Pj4gYWxnb3JpdGhtcy4NCj4+Pj4+Pj4+IA0KPj4+Pj4+ Pj4gQWRkaXRpb25hbCBuYXRpdmUgYXJjaGl0ZWN0dXJlIHZhcmlhbnRzIHNob3VsZCBiZSBzaW1w bGUgdG8gYWRkDQo+PiBieQ0KPj4+Pj4+IGZvbGxvd2luZw0KPj4+Pj4+Pj4gdGhlIGNoYW5nZXMg bWFkZSBmb3IgdGhpcyBhcmNoaXRlY3R1cmUuDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IFRoZSBPcGVu U1NMIGFzc2VtYmx5IGZpbGVzIGFyZSB0cmFkaXRpb25hbGx5IGdlbmVyYXRlZCBhdCBidWlsZA0K Pj4gdGltZQ0KPj4+Pj4+IHVzaW5nIGENCj4+Pj4+Pj4+IHBlcmwgc2NyaXB0LiBUbyBhdm9pZCB0 aGF0IGJ1cmRlbiBvbiBFREsyIHVzZXJzLCB0aGVzZSBlbmQtcmVzdWx0DQo+Pj4+Pj4gYXNzZW1i bHkNCj4+Pj4+Pj4+IGZpbGVzIGFyZSBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBjb25maWd1cmF0aW9u IHN0ZXBzIHBlcmZvcm1lZCBieQ0KPj4gdGhlDQo+Pj4+Pj4+IHBhY2thZ2UNCj4+Pj4+Pj4+IG1h aW50YWluZXIgKHRocm91Z2ggcHJvY2Vzc19maWxlcy5wbCkuIFRoZSBwZXJsIGdlbmVyYXRvciBz Y3JpcHRzDQo+Pj4+IGluc2lkZQ0KPj4+Pj4+Pj4gT3BlblNTTCBkbyBub3QgcGFyc2UgZmlsZSBj b21tZW50cyBhcyB0aGV5IGFyZSBvbmx5IG1lYW50IHRvDQo+Pj4gY3JlYXRlDQo+Pj4+Pj4+PiBp bnRlcm1lZGlhdGUgYnVpbGQgZmlsZXMsIHNvIHByb2Nlc3NfZmlsZXMucGwgY29udGFpbnMgYWRk aXRpb25hbA0KPj4+PiBob29rcw0KPj4+Pj4+IHRvDQo+Pj4+Pj4+PiBwcmVzZXJ2ZSB0aGUgY29w eXJpZ2h0IGhlYWRlcnMgYXMgd2VsbCBhcyBjbGVhbiB1cCB0YWJzIGFuZCBsaW5lDQo+Pj4+IGVu ZGluZ3MNCj4+Pj4+PiB0bw0KPj4+Pj4+Pj4gY29tcGx5IHdpdGggRURLMiBjb2Rpbmcgc3RhbmRh cmRzLiBUaGUgcmVzdWx0aW5nIGZpbGUgaGVhZGVycw0KPj4gYWxpZ24NCj4+Pj4+IHdpdGgNCj4+ Pj4+Pj4+IHRoZSBnZW5lcmF0ZWQgLmggZmlsZXMgd2hpY2ggYXJlIGFscmVhZHkgaW5jbHVkZWQg aW4gdGhlIEVESzINCj4+Pj4gcmVwb3NpdG9yeS4NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gQ2M6IEpp ZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPj4+Pj4+Pj4gQ2M6IEppYW4gSiBXYW5n IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+PiBDYzogWGlhb3l1IEx1IDx4aWFveXV4 Lmx1QGludGVsLmNvbT4NCj4+Pj4+Pj4+IENjOiBNaWtlIEtpbm5leSA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+Pj4+Pj4+PiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVs QGFybS5jb20+DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IENocmlzdG9waGVyIEogWnVyY2hlciAoMik6 DQo+Pj4+Pj4+PiAgQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUgaW5zdHJ1Y3Rpb24g c3VwcG9ydCBmb3IgWDY0DQo+Pj4+Pj4+PiAgQ3J5cHRvUGtnL09wZW5zc2xMaWI6IENvbW1pdCB0 aGUgYXV0by1nZW5lcmF0ZWQgYXNzZW1ibHkgZmlsZXMNCj4+PiBmb3INCj4+Pj4+IFg2NA0KPj4+ Pj4+Pj4gDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWIu aW5mDQo+Pj4+IHwNCj4+Pj4+PiAyICstDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVu c3NsTGliL09wZW5zc2xMaWJDcnlwdG8uaW5mDQo+Pj4+IHwNCj4+Pj4+PiAyICstDQo+Pj4+Pj4+ PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWJYNjQuaW5mDQo+Pj4+IHwN Cj4+Pj4+PiA2NTMgKysrDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9JbmNsdWRlL0NydExp YlN1cHBvcnQuaA0KPj4+PiB8DQo+Pj4+Pj4gMiArDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFy eS9JbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYuaA0KPj4+PiB8DQo+Pj4+Pj4gMyAtDQo+Pj4+ Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWJDb25zdHJ1Y3Rvci5j DQo+Pj4+IHwNCj4+Pj4+PiAzNCArDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3Ns TGliL1g2NC9BcGlIb29rcy5jDQo+Pj4+IHwNCj4+Pj4+PiAxOCArDQo+Pj4+Pj4+PiBDcnlwdG9Q a2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLW1iLQ0KPj4+IHg4Nl82 NC5uYXNtDQo+Pj4+PiB8DQo+Pj4+Pj4+PiA3MzIgKysrDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGli cmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLXNoYTEtDQo+Pj4+PiB4ODZfNjQu bmFzbSAgIHwNCj4+Pj4+Pj4+IDE5MTYgKysrKysrKysNCj4+Pj4+Pj4+IENyeXB0b1BrZy9MaWJy YXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9hZXMvYWVzbmktc2hhMjU2LQ0KPj4+Pj4geDg2XzY0 Lm5hc20NCj4+Pj4+Pj4gfA0KPj4+Pj4+Pj4gNzggKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJh cnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS14ODZfNjQubmFzbQ0KPj4+Pj4gfA0K Pj4+Pj4+Pj4gNTEwMyArKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xp YnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy92cGFlcy14ODZfNjQubmFzbQ0KPj4+Pj4g fA0KPj4+Pj4+Pj4gMTE3MyArKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNz bExpYi9YNjQvY3J5cHRvL21vZGVzL2Flc25pLWdjbS0NCj4+Pj4+IHg4Nl82NC5uYXNtDQo+Pj4+ Pj4+PiB8ICAgMzQgKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQv Y3J5cHRvL21vZGVzL2doYXNoLQ0KPj4+IHg4Nl82NC5uYXNtDQo+Pj4+PiB8DQo+Pj4+Pj4+PiAx NTY5ICsrKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5 cHRvL3NoYS9zaGExLW1iLQ0KPj4+IHg4Nl82NC5uYXNtDQo+Pj4+PiB8DQo+Pj4+Pj4+PiAzMTM3 ICsrKysrKysrKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQv Y3J5cHRvL3NoYS9zaGExLXg4Nl82NC5uYXNtDQo+Pj4+PiB8DQo+Pj4+Pj4+PiAyODg0ICsrKysr KysrKysrDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8v c2hhL3NoYTI1Ni1tYi0NCj4+Pj4+IHg4Nl82NC5uYXNtDQo+Pj4+Pj4+IHwNCj4+Pj4+Pj4+IDM0 NjEgKysrKysrKysrKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9Y NjQvY3J5cHRvL3NoYS9zaGEyNTYtDQo+Pj4geDg2XzY0Lm5hc20NCj4+Pj4+IHwNCj4+Pj4+Pj4+ IDMzMTMgKysrKysrKysrKysrKw0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExp Yi9YNjQvY3J5cHRvL3NoYS9zaGE1MTItDQo+Pj4geDg2XzY0Lm5hc20NCj4+Pj4+IHwNCj4+Pj4+ Pj4+IDE5MzggKysrKysrKysNCj4+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIv WDY0L2NyeXB0by94ODZfNjRjcHVpZC5uYXNtDQo+Pj4+IHwNCj4+Pj4+PiA0OTENCj4+Pj4+Pj4+ ICsrDQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL3Byb2Nlc3NfZmlsZXMu cGwNCj4+Pj4gfA0KPj4+Pj4+IDIzMiArLQ0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3Bl bnNzbExpYi91ZWZpLWFzbS5jb25mDQo+Pj4+IHwNCj4+Pj4+PiAyMSArDQo+Pj4+Pj4+PiAyMiBm aWxlcyBjaGFuZ2VkLCAyNjc0NiBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkNCj4+Pj4+ Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIv T3BlbnNzbExpYlg2NC5pbmYNCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4+PiBD cnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWJDb25zdHJ1Y3Rvci5jDQo+Pj4+ Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQv QXBpSG9va3MuYw0KPj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBDcnlwdG9Qa2cv TGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLQ0KPj4+Pj4+Pj4gbWIteDg2 XzY0Lm5hc20NCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4gQ3J5cHRvUGtnL0xp YnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS0NCj4+Pj4+Pj4+IHNoYTEteDg2 XzY0Lm5hc20NCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4gQ3J5cHRvUGtnL0xp YnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS0NCj4+Pj4+Pj4+IHNoYTI1Ni14 ODZfNjQubmFzbQ0KPj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBDcnlwdG9Qa2cv TGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLQ0KPj4+Pj4+Pj4geDg2XzY0 Lm5hc20NCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4gQ3J5cHRvUGtnL0xpYnJh cnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy92cGFlcy0NCj4+Pj4+Pj4+IHg4Nl82NC5uYXNt DQo+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5 L09wZW5zc2xMaWIvWDY0L2NyeXB0by9tb2Rlcy9hZXNuaS1nY20tDQo+Pj4+PiB4ODZfNjQubmFz bQ0KPj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0DQo+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFy eS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vbW9kZXMvZ2hhc2gtDQo+Pj4geDg2XzY0Lm5hc20NCj4+ Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNz bExpYi9YNjQvY3J5cHRvL3NoYS9zaGExLQ0KPj4+Pj4+Pj4gbWIteDg2XzY0Lm5hc20NCj4+Pj4+ Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExp Yi9YNjQvY3J5cHRvL3NoYS9zaGExLQ0KPj4+Pj4+Pj4geDg2XzY0Lm5hc20NCj4+Pj4+Pj4+IGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2 NC9jcnlwdG8vc2hhL3NoYTI1Ni0NCj4+Pj4+Pj4+IG1iLXg4Nl82NC5uYXNtDQo+Pj4+Pj4+PiBj cmVhdGUgbW9kZSAxMDA2NDQNCj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9Y NjQvY3J5cHRvL3NoYS9zaGEyNTYtDQo+Pj4+Pj4+PiB4ODZfNjQubmFzbQ0KPj4+Pj4+Pj4gY3Jl YXRlIG1vZGUgMTAwNjQ0DQo+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0 L2NyeXB0by9zaGEvc2hhNTEyLQ0KPj4+Pj4+Pj4geDg2XzY0Lm5hc20NCj4+Pj4+Pj4+IGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQv Y3J5cHRvL3g4Nl82NGNwdWlkLm5hc20NCj4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBDcnlw dG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL3VlZmktYXNtLmNvbmYNCj4+Pj4+Pj4+IA0KPj4+Pj4+ Pj4gLS0NCj4+Pj4+Pj4+IDIuMjguMC53aW5kb3dzLjENCj4+Pj4+Pj4gDQo+Pj4+Pj4+IA0KPj4+ Pj4+PiANCj4+Pj4+Pj4gDQo+Pj4+Pj4+IA0KPiANCg==