From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 21FD0A2EFC for ; Sun, 13 Oct 2019 14:48:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6D5BC1C1B7; Sun, 13 Oct 2019 14:48:00 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 1E2331C1B2 for ; Sun, 13 Oct 2019 14:47:58 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9DCjKHb011854; Sun, 13 Oct 2019 05:47:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=GaU1ZgWADqiqe3wK/HlAH/KU4S41KMwPIt5Pr/GyAnQ=; b=Y/7exARY4rD1nQeiZMWRHkVG61yc4sJ0NKX3/V27H7LInwsWpgNaAQMy1hlDQcapbhuL 9oskkK85iY85ReFDUSx7LoizJdJozvh5wa89k+y6ZqobEmYQDXlNIkaH50z6wlxxs91V bgGYPaw+/uPKzfbsISauo6JLne0byzPs2F9qa3zuaBjANocx/Z/QHC1nJL+KftpApMOc 8WP2QFpnobjZSDuE/f9/5wF4IX7oluEcNiV0mqaKdhQFpffRAGSWa2W/zbmWz5S8hozH qruRLozzMxGLnYn0d4Tw5gouz47gEKoAyeaoQr1gRpIGAmI+Is6VWY6ajBxqlYVr61Tm xg== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 2vkebntrap-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 13 Oct 2019 05:47:56 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 13 Oct 2019 05:47:54 -0700 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (104.47.42.59) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sun, 13 Oct 2019 05:47:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i5taC7hxrwfPFSm0hvULgLKm7zZ3Z4uFWqrhcsCB+YAE2J4Y4Wg4/DYcaXntYUwpx0oqSSnp9AWOgfh8xdQc8rEvCoipoB5gYpwd3DOdVkqm1LSgsq8IkAsRISvV2cl6yVAexjA6hC1QYthUq2ZKTQqvjZ0szcw6Mz3ZRFXqFzM/VN/yXoGmIcygg2xcqscl1yBR7mUlUk6Uv5Jz4fo4x/wu3wKQTFnKNRSOfk0bQt2Wck5egkvxBTnQVTQdKyKT4thX2RMkt1iVgM69xUdDh2yDXR+PrN/vIkjMdu/nV8xjZE77A35lDHDCVoNB7tlhLX7CUerqqMAi2uuzFKDb6g== 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=GaU1ZgWADqiqe3wK/HlAH/KU4S41KMwPIt5Pr/GyAnQ=; b=Xt/TdDdZOJ0fWlkCyXYCXPxx3Wqi66WNPSRHxkfimXcwZ8ZgtwTZpArQoYZX+NnNS5qecy0bAJhNIdn3OJRXieo0wG+JGRxzth8YdkrqRzxpPque+Wbwa/NmNZXuw4/PKoxVj/1j0b/zhWnq4hZaps3yO6JpvHYUEC4XrBJCYMOtxz4VtLKltorFSFIvKpaB3mtGtx8bNabkBjK8b0eoKpfcqIkjFYnsALlly6MjI2fLyqLKSZyed2TJ8nIHIWadB65VhtbKXfPrSOWmIl12B9BL+tD1l5r0pVE/3v/DaFrjJqqlJ9kUkYXQrFwNFZrwPfjyN103jOvDfGt5lQsScQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GaU1ZgWADqiqe3wK/HlAH/KU4S41KMwPIt5Pr/GyAnQ=; b=Gn1hKPQd+s3Im8UXDFJwMr8eV4ZNXuT9c3pGpxe9WpTYgU6TpZsLA969jjFfQ/e5xtAhVbl/blQiwc1SX3nScWXqLSVITBHUPSAe6ZMk6jvo58kNnISpLIXtgtz7MkSt00dkh5+jzW5N4jHT2nwvNdxSbNR6HxpnTDseT6XPSZI= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB2383.namprd18.prod.outlook.com (20.179.81.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.16; Sun, 13 Oct 2019 12:47:53 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::6d15:3367:4c9:5385]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::6d15:3367:4c9:5385%7]) with mapi id 15.20.2347.021; Sun, 13 Oct 2019 12:47:52 +0000 From: Anoob Joseph To: "Ananyev, Konstantin" , "Smoczynski, MarcinX" , "akhil.goyal@nxp.com" CC: "dev@dpdk.org" , Jerin Jacob Kollanukkaran , Narayana Prasad Raju Athreya , Archana Muniganti Thread-Topic: [dpdk-dev] [PATCH v3 0/3] add fallback session Thread-Index: AQHVcgRo85zyvQn15EqlYfBjRx4gCqc9gzWQgABnUACAAOcWgIAFcQcAgAAK3fCABMEHgIABgJgggAk/QoCAAsXLMA== Date: Sun, 13 Oct 2019 12:47:52 +0000 Message-ID: References: <20190904141642.14820-1-marcinx.smoczynski@intel.com> <20190923114415.17932-1-marcinx.smoczynski@intel.com> <2601191342CEEE43887BDE71AB977258019196B087@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258019196D5B4@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801919709C0@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB9772580191974E18@irsmsx105.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB9772580191974E18@irsmsx105.ger.corp.intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [122.175.98.131] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 308a493a-9982-4202-7710-08d74fdb8fe4 x-ms-traffictypediagnostic: MN2PR18MB2383: x-ms-exchange-purlcount: 6 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:33; x-forefront-prvs: 01894AD3B8 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(136003)(346002)(39850400004)(366004)(376002)(189003)(199004)(13464003)(14444005)(25786009)(256004)(99286004)(3846002)(229853002)(476003)(6116002)(478600001)(4326008)(7696005)(74316002)(66066001)(66476007)(66946007)(66556008)(64756008)(66446008)(76116006)(486006)(19627235002)(76176011)(52536014)(54906003)(110136005)(5660300002)(316002)(81156014)(30864003)(2501003)(81166006)(8676002)(71200400001)(26005)(55016002)(305945005)(446003)(6436002)(11346002)(7736002)(186003)(2906002)(966005)(8936002)(86362001)(14454004)(6506007)(53546011)(107886003)(71190400001)(33656002)(9686003)(6306002)(102836004)(6246003)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB2383; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MY/7ZcTGPsTIhDIwiWmWEbt0DMHNG60i0PJ/h1JPrYlm8bBRJ3By9Ur+9Z+Ip0N9jIDEgF4vzJWzAiLPLIB+23fAJ/bECji6NLdOLroRuO0yzzWZK5YNHEwsttPeNo8133YQYyhT1DFiyACkXpnGA6T0lkho95Q0RD1TPYfl2IBDHVKgFPn4EBEaCiny/qDaIvfhQUgjnkSwNfZ2Zkc1YoIDTLLsr7z61MY5STEMal03IurOnLAcQht3yHxwAiFU+VZ4aukvg8XTAzE+vQdolhqw6r//W3/+JaR1y6aWxJqbWY/fR1zLxh51txDqRtcNyEwj5ANlXU+FnxHQJlf2+A6upNhPhkbXa5edbfn6hz+n3y1S7dcNCD7MxiRKYpaA54K2Ot+qLe1ARR9MupH+fZATJvCwpk8Fp9byEzL0tlZ5dXX8rPPHoZS4AcyGOS429r4uHvuwgiFCWN8NJnB/JA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 308a493a-9982-4202-7710-08d74fdb8fe4 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Oct 2019 12:47:52.4612 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: folvXtrkh19O8UKWZorLAXL240SxZ5Wp92rju0o5TJIuxtJ9jdsRjSaeTd2MwTrH65R7txDjPUnT0AXKdXHJ0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB2383 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-13_06:2019-10-10,2019-10-13 signatures=0 Subject: Re: [dpdk-dev] [PATCH v3 0/3] add fallback session X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgS29uc3RhbnRpbiwNCg0KVGhhbmtzIGZvciBjbGFyaWZ5aW5nIHlvdXIgc3RhbmQgb24gcmV2 aWV3IGNvbW1lbnRzLg0KDQpGcm9tIHRoZSBjb21tZW50cyB3ZShNYXJ2ZWxsL0Nhdml1bSkgaGF2 ZSByZWNlaXZlZCBvbiBtdWx0aXBsZSBmZWF0dXJlcywgbXkgaW1wcmVzc2lvbiBpcyB0aGF0IHRo ZSBmZWF0dXJlIG5lZWQgdG8gYmUgY29ycmVjdC9mdWxseSBkb25lL2FjY2VwdGFibGUgdG8gdGhl IG92ZXJhbGwgY29tbXVuaXR5LiBGZWF0dXJlcyBhcmUgdXN1YWxseSBhZ3JlZWQgdXBvbiBpZiB0 aGVyZSBpcyBzb2xpZCBwbGFuIG9uIGhvdyBpdCB3aWxsIHdvcmsgaW4gdGhlIGxvbmcgcnVuLg0K DQpEaXNjdXNzaW9ucyB3aXRoIFJhZHUgb24gd2hhdCBldmVudHVhbGx5IGJlY2FtZSBnZXRfdXNl cmRhdGEoKQ0KaHR0cDovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL2Rldi8yMDE3LU5vdmVtYmVy LzA4MjAzOS5odG1sDQoNCkZyb20gdGhlIG1haWw6IA0KDQoiPiBIYXZpbmcgc29tZXRoaW5nIGxp a2UgImdldF9wa3RfbWV0YWRhdGEiIHNob3VsZCBiZSBmaW5lIGZvciBpbmxpbmUgDQo+IHByb3Rv Y29sIHVzYWdlLiBCdXQgd2Ugd2lsbCBzdGlsbCBuZWVkIGEgImdldCBjb29raWUiIGNhbGwgdG8g Z2V0IHRoZSANCj4gY29va2llLCBhcyB0aGUgYXBwbGljYXRpb24gd291bGQgbmVlZCBzb21ldGhp bmcgaXQgY2FuIGludGVycHJldC4NCldoeSBjYW4ndCB5b3UgaGF2ZSBhIGdldF9wa3RfbWV0YWRh dGEgdGhhdCByZXR1cm5zIHRoZSAiY29va2llIiAtIHdoaWNoIA0KSSB3b3VsZCBjYWxsIGl0IHVz ZXJkYXRhIG9yIHNpbWlsYXI/IFdoYXQgSSdtIHRyeWluZyB0byBzYXkgaXMgdGhhdCB3ZSANCnNo b3VsZCB0cnkgdG8ga2VlcCBpdCBhcyBnZW5lcmljIGFzIHBvc3NpYmxlLiBGb3IgZXhhbXBsZSwg SSB3b3VsZG4ndCANCmFzc3VtZSB0aGF0IHRoZSBjb29raWUgaXMgc3RvcmVkIGluIHBrdC0+dWRh dGE2NCBpbiB0aGUgYXBwbGljYXRpb24uIg0KDQpNYXJ2ZWxsIHByZWZlcnMgdXNpbmcgcGt0LT51 ZGF0YTY0IGluc3RlYWQgb2YgZ2V0X3VzZXJkYXRhKCkgYXMgaXQgYXZvaWRzIGFuIGV4dHJhIGNh Y2hlIGxpbmUgYWNjZXNzIHdoaWxlIHRyeWluZyB0byBnZXQgaG9sZCBvZiB0aGUgU0Egd2hpY2gg cHJvY2Vzc2VkIHRoZSBwYWNrZXQuIFdlIGFncmVlZCB0byBSYWR1J3Mgc3VnZ2VzdGlvbiBldmVu IHRob3VnaCBJbnRlbC9SYWR1IGRpZG4ndCBoYXZlIGFjY2VzcyB0byBhbiBpbmxpbmUgcHJvdG9j b2wgZW5hYmxlZCBoL3cgYW5kIGl0IHdhc24ndCBhZmZlY3RpbmcgYW55IGRhdGEgcGF0aCB0aGF0 IEludGVsL1JhZHUgd291bGQgYmUgaW50ZXJlc3RlZCBpbi4NCg0KRGlzY3Vzc2lvbnMgd2l0aCBN YXR0aWFzIG9uIGV2ZW50bW9kZSBoZWxwZXINCmh0dHA6Ly9tYWlscy5kcGRrLm9yZy9hcmNoaXZl cy9kZXYvMjAxOS1KdW5lLzEzNDkwMC5odG1sDQoNCiJPciBldmVuIHdvcnNlLCB0aGUgDQphcHBs aWNhdGlvbidzIGRldmVsb3BlcnMgYXJlIGZvcmNlZCB0byBkbyBhIGJpZy1iYW5nIHN3aXRjaCBv dmVyIHRvIA0KdXNpbmcgdGhlIGV2ZW50IGFuZCBldGhlcm5ldCBkZXZpY2UgQVBJcyBkaXJlY3Rs eSwgaW4gY2FzZSB0aGV5IGNhbid0IA0KcGF0Y2ggRFBESyB0byB3b3JrIGFyb3VuZCB0aGUgDQpl dmVudG1vZGUtYXNzdW1wdGlvbi10aGF0LWRpZG4ndC1ob2xkLWZvci10aGVtLg0KDQpZb3UgY291 bGQgYWx3YXlzIGFkZCBmbGV4aWJpbGl0eSB0byB0aGUgZnJhbWV3b3JrIChhcyB5b3UgZW5jb3Vu dGVyIGEgDQpuZWVkIGZvciBpdCksIGJ1dCB0aGVuIGl0IHdpbGwgZ3JvdyBpbiBjb21wbGV4aXR5 IGFzIHdlbGwuIg0KDQpIZXJlIE1hdHRpYXMgcmVzaXN0ZWQgdGhlIGlkZWEgb2YgZXZlbnRtb2Rl IGhlbHBlciBmb3IgdGhyZWUgcmVhc29ucywNCg0KMS4gSXQncyBwdXJlbHkgc29mdHdhcmUsIGll LCBubyBiYWNraW5nIFBNRCByZXF1aXJlZCAod2hpY2ggaXMgdGhlIHNhbWUgY2FzZSBmb3IgbGli cnRlX2lwc2VjIGFzIHdlbGwpLg0KMi4gSXQgImNvdWxkIiBicmVhayBmb3IgYSBuZXcgZmVhdHVy ZSB0aGF0ICJjb3VsZCIgZ2V0IGFkZGVkIGluIGV2ZW50ZGV2Lg0KMy4gSGUgInRob3VnaHQiIGl0 IHdvdWxkIGdyb3cgaW4gY29tcGxleGl0eS4NCg0KTWFydmVsbC9DYXZpdW0gaGFzIHJlc3BlY3Rl ZCBoaXMgb3BpbmlvbiBhbmQgZGlkIHJld29yayB0aGUgZW50aXJlIGFwcHJvYWNoIHdoaWNoIGV4 cG9uZW50aWFsbHkgaW5jcmVhc2VkIHRoZSBlZmZvcnQgcmVxdWlyZWQgZnJvbSBvdXIgZW5kIChv bmUgY29kZSBiYXNlIGludGVncmF0ZWQgaW50byAzIGRpZmZlcmVudCBhcHBzIHZzIDMgZGlmZmVy ZW50IGNvZGUgYmFzZXMgZm9yIDMgYXBwcykuIFBsZWFzZSBkbyBub3RlIHRoYXQgdGhpcyBlbnRp cmUgImwyZndkLWV2ZW50IiBoYWQgdG8gYmUgcmVkb25lIDMgdGltZXMgd2hpbGUgdHJ5aW5nIHRv IGdldCBhIGNvbnNlbnN1cyBvbiB0aGUgYXBwcm9hY2guIEkgYmVsaWV2ZSB5b3UgaGFkIG9rZXll ZCB0aGUgZmlyc3QgYXBwcm9hY2gsIHNvIHlvdSBjYW5ub3Qgc2F5IHdlIGhhZCB0byByZWRvIHRo ZSBwYXRjaGVzIGJlY2F1c2UgdGhlIHBhdGNoZXMgd2VyZSBkb25lIHBvb3JseSBvciB0aGUgZmVh dHVyZSB3YXMgaW5jb3JyZWN0Lg0KDQpJIHNlZSB0aGF0IHRoZXJlIGlzIGEgc2hpZnQgaW4gdGhl IHJldmlldyBwcm9jZXNzIHRoZXNlIGRheXMgYW5kIHRoZSB2ZW5kb3JzIGFyZSBlbmNvdXJhZ2Vk IHRvIGNvbW1lbmQgb25seSBvbiB0aGUgZmVhdHVyZXMgdGhleSBhcmUgaW50ZXJlc3RlZCBpbi4g SW4gdGhhdCBjYXNlLCBNYXJ2ZWxsIHdpbGwgbm8gbG9uZ2VyIGJvdGhlciB3aXRoIHBhdGNoZXMg d2hpY2ggZG9lc24ndCBjb21lIGluIG1vZGVzIHdoaWNoIGRvZXNuJ3QgbWF0dGVyIHRvIHVzLiBJ IHdvdWxkIGV4cGVjdCB0aGUgc2FtZSBjb3VydGVzeSByZXR1cm5lZCBiYWNrIGFzIHdlbGwuDQoN CkZZSSwgZXZlbnRtb2RlIGlwc2VjLXNlY2d3IGlzIHN1Ym1pdHRlZCBhcyBhbiBSRkMuIEluIGxp bmUgd2l0aCB0aGUgY29tbWVudCByZWRyZXNzYWwgaGVyZSwgSSd2ZSBkb2N1bWVudGVkIGFsbCB0 aGUgbGltaXRhdGlvbnMuDQoNCj4gT25jZSBhZ2FpbiAtIHlvdSBrZWVwIG1ha2luZyBzdGF0ZW1l bnRzIHdpdGhvdXQgYW55IGV2aWRlbmNlLg0KPiBQcm92aWRlIHNvbWV0aGluZyBtb3JlIGNvbmNy ZXRlIGhlcmUgLSBkZXNjcmlwdGlvbiBvZiBwYWNrZXQgYW5kIGNvZGUgZmxvdw0KPiAoZnVuY3Rp b24gbmFtZXMsIGV4YWN0IGxpbmVzIG9mIGNvZGUpIHRoYXQgeW91IHRoaW5rIHdpbGwgY2F1c2Ug YSBwcm9ibGVtLg0KDQpJIHNhdyBhdGxlYXN0IHRoZSBvbmVzIGJlbG93LiBJdCB3b3VsZCBiZSBm cml2b2xvdXMgdG8gYXNzdW1lIHRoYXQgdGhlIGZlYXR1cmUgaXMgYWRkZWQgd2l0aG91dCBhbnkg ZGF0YSBwYXRoIGNoZWNrcy4NCg0KKwlpZiAoTUJVRl9OT19TRUNfT0ZGTE9BRChwa3QpICYmIHNh LT5mYWxsYmFja19zZXNzaW9ucyA+IDApIHsNCg0KKwkJCWlmIChwZy0+aWQudmFsICYgSVBTRUNf U0FfT0ZGTE9BRF9GQUxMQkFDS19GTEFHKSB7DQoNCkBtYWludGFpbmVycywgTWFydmVsbCBpcyBu b3QgYmxvY2tpbmcgdGhpcyBmZWF0dXJlIGFueW1vcmUgYXNzdW1pbmcgdGhhdCB0aGUgc2FtZSB5 YXJkc3RpY2sgd2lsbCBiZSB1c2VkIHdoaWxlIHJldmlld2luZyBwYXRjaGVzIHN1Ym1pdHRlZCBi eSB1cy4NCg0KVGhhbmtzLA0KQW5vb2INCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29t Pg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxMCwgMjAxOSA0OjI1IFBNDQo+IFRvOiBBbm9v YiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT47IFNtb2N6eW5za2ksIE1hcmNpblgNCj4gPG1h cmNpbnguc21vY3p5bnNraUBpbnRlbC5jb20+OyBha2hpbC5nb3lhbEBueHAuY29tDQo+IENjOiBk ZXZAZHBkay5vcmc7IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNv bT47IE5hcmF5YW5hDQo+IFByYXNhZCBSYWp1IEF0aHJleWEgPHBhdGhyZXlhQG1hcnZlbGwuY29t PjsgQXJjaGFuYSBNdW5pZ2FudGkNCj4gPG1hcmNoYW5hQG1hcnZlbGwuY29tPg0KPiBTdWJqZWN0 OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC8zXSBhZGQgZmFsbGJhY2sgc2Vzc2lvbg0KPiAN Cj4gDQo+IEhpIEFub29iLA0KPiANCj4gPg0KPiA+IEZvbGxvd2luZyBhcmUgdGhlIG1haW4gaXNz dWVzIEkgaGFkIGlkZW50aWZpZWQsDQo+ID4NCj4gPiAxLiBEb2Vzbid0IHdvcmsgZm9yIGlubGlu ZSBwcm90b2NvbCBvZmZsb2FkICh0aGUgcGxhbiBpdHNlbGYgd29uJ3QNCj4gPiBzY2FsZSBmb3Ig dGhhdCBjYXNlKSAyLiBJZ25vcmVzIHRoZSBkYXRhIGZyb20gdGhlIGgvdyBsb29rdXAgMy4gVGhl DQo+ID4gZmFsbGJhY2sgc3VwcG9ydCBpcyBhY3R1YWxseSBzdXBwb3J0ZWQgaW4gaXBzZWMtc2Vj Z3cgKGFwcGxpY2F0aW9uKSBpbnN0ZWFkIG9mDQo+IGxpYnJ0ZV9pcHNlYy4NCj4gPiA0LiBSZW9y ZGVyaW5nIGlzc3VlLg0KPiA+IDUuIEludHJvZHVjZXMgY2hlY2tzIGluIGV4aXN0aW5nIGRhdGEg cGF0aCBldmVuIHdoZW4gdGhlIGZlYXR1cmUgaXMgbm90DQo+IHByb3Blcmx5IGltcGxlbWVudGVk L2lzIG5vdCBzdWl0YWJsZSBmb3Igb3RoZXIgUE1Ecy4NCj4gPg0KPiA+IEZvciBJc3N1ZSAjMSwg SSBnZXQgdGhhdCBJbnRlbCBkb2Vzbid0IGhhdmUgcGxhbnMgdG8gc3VwcG9ydCB0aGUgZmVhdHVy ZSBhbmQNCj4gd29uJ3QgYmUgc3VibWl0dGluZyBhbnl0aGluZyBpbiB0aGF0IGRpcmVjdGlvbi4N Cj4gPiBCdXQgYWRkaW5nIGNvZGUgdGhhdCBmdXJ0aGVyIGV4YWNlcmJhdGVzIHRoZSBzaXR1YXRp b24gaXMgcHJvYmFibHkgbm90IGRlc2lyZWQuDQo+IA0KPiBXZSBhbHJlYWR5IGRpc2N1c3NlZCB3 aHkgdGhhdCBmZWF0dXJlIGNhbid0IGJlIGZ1bGx5IHN1cHBvcnRlZCByaWdodCBub3cgYnkNCj4g aW5saW5lLXByb3RvL2xvb2thc2lkZS1wcm90byBkZXZpY2VzOg0KPiBUaGVyZSBpcyBubyBBUEkg ZGVmaW5lZCB0byBzeW5jIHNlc3Npb24gc3RhdGUgYmV0d2VlbiBIVyBhbmQgU1cNCj4gaHR0cHM6 Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtDQo+IDNBX19tYWlscy5k cGRrLm9yZ19hcmNoaXZlc19kZXZfMjAxOS0NCj4gMkRTZXB0ZW1iZXJfMTQzODgxLmh0bWwmZD1E d0lHYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9alBmQjgNCj4gcnd3dmlSU3h5TFdzMm42 Qi0NCj4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09VUd6MkZlbWFwV2Rzb2hnTlJxMlVYNUFyRkVM X3BMR1lFVnJ3ZQ0KPiBJemFVWDQmcz1PYmtKSzlweXpPWnV3b2V1bHI2bXJyNmlLUUYxTmdYdTNw MnY3WHdrWUVzJmU9DQo+IA0KPiBJIGFscmVhZHkgb3V0bGluZWQgdGhhdCBnYXAgbmVhcmx5IGEg eWVhciBhZ286DQo+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1o dHRwLQ0KPiAzQV9fbWFpbHMuZHBkay5vcmdfYXJjaGl2ZXNfZGV2XzIwMTgtDQo+IDJEU2VwdGVt YmVyXzExMzYwMC5odG1sJmQ9RHdJR2FRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWpQZkI4 DQo+IHJ3d3ZpUlN4eUxXczJuNkItDQo+IFdZTG4xdjlTeVRNclQ1RVFxaDJUVSZtPVVHejJGZW1h cFdkc29oZ05ScTJVWDVBckZFTF9wTEdZRVZyd2UNCj4gSXphVVg0JnM9MHg4cG1mc1M3blQ3WG4t YV9SdmhJLUR4dEhNZGswenI0amlhcGkyMnRWRSZlPQ0KPiBUaG91Z2ggc28gZmFyIEkgZGlkbid0 IHNlZSBhbnkgYXR0ZW1wdCB0byByZXNvbHZlIHRoaXMgcHJvYmxlbSBieSBNYXJ2ZWxsIChvcg0K PiBOWFApIGVuZ2luZWVycy4NCj4gV2hpY2ggbWFrZXMgbWUgdGhpbmsgdGhhdCBlaXRoZXIgeW91 IGd1eXMgZG9uJ3QgY29uc2lkZXIgaXQgYXMgYSBwcm9ibGVtIGF0IGFsbCwNCj4gb3IgaGF2ZSBu byBkZXNpcmUgdG8gd29yayBvbiBpdC4NCj4gSSBuZXZlciBpbnNpc3RlZCwgYXMgSSBkb24ndCAg dGhpbmsgaXQgaXMgbXkgY2FsbCBieSBvYnZpb3VzIHJlYXNvbnM6DQo+IDEpIHJpZ2h0IG5vdyBJ bnRlbCBkb2Vzbid0IGhhdmUgSFcgdGhhdCBwcm92aWRlcyBpbmxpbmUtcHJvdG8vbGtzZC1wcm90 bw0KPiBjYXBhYmlsaXRpZXMuDQo+IDIpIEludGVsIERQREsgdGVhbSBkb2Vzbid0IGhhdmUgYWNj ZXNzIHRvIHN1Y2ggSFcuDQo+IDMpIFRoZXJlIGlzIG5vIFBNRCBpbnNpZGUgZHBkay5vcmcgdGhh dCBpbXBsZW1lbnRzIGlubGluZS1wcm90byBhbnl3YXkuDQo+IA0KPiBOb3csIG9uZSB5ZWFyIGxh dGVyIHdlIGFyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZToNCj4gMSkgdGhlcmUgc3RpbGwgbm8gUE1E IGF0IGRwZGsub3JnIHRoYXQgc3VwcG9ydHMgaW5saW5lLXByb3RvLg0KPiAyKSBBUEkgdG8gc3lu YyBzZXNzaW9uIHN0YXRlIGJldHdlZW4gSFcgYW5kIFNXIHN0aWxsIG5vdCBkZWZpbmVkL2ltcGxl bWVudGVkLg0KPiAzKSB5b3UgdHJ5aW5nIHRvIGFjY3VzZSBtZSBhbmQgb3RoZXIgSW50ZWwgRFBE SyB0ZWFtIGZvciBsYWNrIG9mIGludGVyZXN0IHRvDQo+IHdvcmsgb24gdGhhdCBwcm9ibGVtIGZv ciB5b3UNCj4gICAgYW5kIHRocmVhdCBvdXIgcGF0Y2hlcyBiZWNhdXNlIG9mIHRoYXQuDQo+IA0K PiBUaGF0IGp1c3QgZG9lc24ndCBsb29rIGZhaXIgdG8gbWUuDQo+IFlvdSBzaG91bGRuJ3QgZXhw ZWN0IG90aGVyIHBlb3BsZSBwYXRjaGVzIHRvIHByb3ZpZGUgJ2NvbXBsZXRlJyBzb2x1dGlvbiBm b3INCj4gaW5saW5lLXByb3RvLCBpZiAoaW4gYSB5ZWFyIHRpbWUpIHlvdSBmYWlsZWQgdG8gZGVm aW5lL2ltcGxlbWVudCBhbiBBUEkgZm9yIHRoYXQuDQo+IA0KPiA+IEZvciBJc3N1ZSAjMiwgc2lu Y2UgaXBzZWMtc2VjZ3cgaXMgbm90IHV0aWxpemluZyB0aGUgaC93IGxvb2t1cCBkYXRhLA0KPiA+ IHRoZSBzb2x1dGlvbiBoZXJlIGZvbGxvd3Mgc3VpdCBhbmQgaXMgcHJldmVudGluZyBvdGhlciB1 c2FnZSBtb2RlbHMgb2YgdGhlDQo+IGhhcmR3YXJlIHdoaWNoIGFyZSBhbGxvd2VkIGJ5IHRoZSBs aWJyYXJ5Lg0KPiANCj4gU2FtZSBhcyBhYm92ZSwgcmlnaHQgbm93IHRoZXJlIGlzIG5vIFBNRCB0 aGF0IHN1cHBvcnRzIGlubGluZS1wcm90byBhbmQgbm8gQVBJDQo+IHRvIGV4dHJhY3QgdGhhdCBl eHRyYSBIL1cgbG9va3VwIGRhdGEuDQo+IFRob3VnaCBJIHJlcGxpZWQgdG8geW91IGFuZCBleHBs YWluZWQgKnR3aWNlKmhvdyBJIHRoaW5rIHN1Y2ggZnVuY3Rpb25hbGl0eQ0KPiBjb3VsZCBiZSBh ZGRlZCBpZiBpbiBoeXBvdGhldGljYWwgZnV0dXJlIHRoZXJlIHdvdWxkIGJlIGEgUE1EIHRoYXQg d2lsbCBzdXBwb3J0DQo+IHRoZXNlIGZlYXR1cmVzLg0KPiBCdXQgeW91IHNpbXBseSBpZ25vcmVk IG15IHJlcGxpZXMgYW5kIGtlcHQgdGhyZWF0aW5nIG91ciBwYXRjaGVzLg0KPiBPYnZpb3VzbHks IEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSBwcm9wZXIgYXR0aXR1ZGUgZm9yIG9wZW4tc291cmNlIGNv bW11bml0eS4NCj4gQXQgbGVhc3QgSSB3b3VsZCBleHBlY3QgdG8gcHJvdmlkZSBzb21lIGNsZWFy IGV4cGxhbmF0aW9uLCB3aHkgZG8geW91IHRoaW5rDQo+IGFwcHJvYWNoIEkgb3V0bGluZWQgaXMg bm90IGdvb2QgZW5vdWdoLg0KPiBFdmVuIGJldHRlciB3b3VsZCBiZSB0bzoNCj4gMSkgc3VibWl0 IGFuIFJGQy9wYXRjaCB3aXRoIEFQSSB5b3UgZW52aXNpb24gYW5kIFBNRCBpbXBsZW1lbnRhdGlv biBmb3IgaXQuDQo+IDIpIHN1Ym1pdCBhbiBSRkMvcGF0Y2ggd2l0aCBjaGFuZ2VzIGluIGlwc2Vj LXNlY2d3IHRvIGVuYWJsZSB0aGVzZSBuZXcNCj4gZmVhdHVyZXMuDQo+IFdpdGhvdXQgdGhhdCBp biBwbGFjZSB0aGVyZSBpcyBub3QgbXVjaCB0byBkaXNjdXNzLg0KPiANCj4gPiBGb3IgSXNzdWUg IzMsIGxpYnJ0ZV9pcHNlYyBpcyBzdGlsbCBleHBlcmltZW50YWwgYW5kIGlzIGp1c3QgMi0zDQo+ ID4gcmVsZWFzZXMgb2xkLiBJdCBoYXMgc2NvcGUgZm9yIGltcHJvdmVtZW50IGFuZCBhbGwgdGhl c2UgZmVhdHVyZXMgd291bGQndmUNCj4gYWRkZWQgdmFsdWUgdG8gaXRzIHV0aWxpdHkuIE5vIHN0 cm9uZyBmZWVsaW5ncyBoZXJlLg0KPiA+DQo+ID4gRm9yIElzc3VlICM0LCBnbGFkIHRoYXQgeW91 IGRvY3VtZW50ZWQgdGhhdCBpc3N1ZS4NCj4gPg0KPiA+IEZvciBJc3N1ZSAjNSwgaW4geW91ciBy ZXBseSB5b3UgaGFkIG1lbnRpb25lZCB0aGF0IHRoZXJlIGlzIG5vDQo+ID4gYWRkaXRpb25hbCBj aGVjayBkb25lLiBJIHNlZSBhdGxlYXN0IGZldyBjaGVja3MgaW4gdGhlIGRhdGFwYXRoLiBTaW5j ZSB0aGUNCj4gZmVhdHVyZSBpdHNlbGYgaXMgZXhwZXJpbWVudGFsLCBpdCB3b3VsZCBiZSBsZXNz IGNvbnRlbnRpb3VzIGlmIGl0IHdhcyBpbnRyb2R1Y2VkIGFzDQo+IGEgbmV3IGRhdGEgcGF0aC4N Cj4gDQo+IE9uY2UgYWdhaW4gLSB5b3Uga2VlcCBtYWtpbmcgc3RhdGVtZW50cyB3aXRob3V0IGFu eSBldmlkZW5jZS4NCj4gUHJvdmlkZSBzb21ldGhpbmcgbW9yZSBjb25jcmV0ZSBoZXJlIC0gZGVz Y3JpcHRpb24gb2YgcGFja2V0IGFuZCBjb2RlIGZsb3cNCj4gKGZ1bmN0aW9uIG5hbWVzLCBleGFj dCBsaW5lcyBvZiBjb2RlKSB0aGF0IHlvdSB0aGluayB3aWxsIGNhdXNlIGEgcHJvYmxlbS4NCj4g DQo+ID4NCj4gPiBBbHNvLCB0byBxdW90ZSBmcm9tIHRoZSByZXBseSwNCj4gPg0KPiA+ID4gPiBb QW5vb2JdIFNob3VsZG4ndCB3ZSBnZXQgdGhhdCBhY2NlcHRlZCBmaXJzdCB0aGVuPw0KPiA+ID4N Cj4gPiA+IEkgZG9uJ3QgdGhpbmsgc28uDQo+ID4gPiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRv ZXMgcHJvdmlkZSBleHBlY3RlZCBmdW5jdGlvbmFsaXR5ICh3aXRoDQo+ID4gPiBrbm93biBsaW1p dGF0aW9ucykuDQo+ID4gPiBJbiBmdXR1cmUsIHdlIGNhbiB0cnkgdG8gaW1wcm92ZSBpdCBhbmQv b3IgcmVtb3ZlIGV4aXN0aW5nIGxpbWl0YXRpb25zLg0KPiA+ID4gVGhhdCdzIGEgY29tbW9uIGl0 ZXJhdGlvbiBkZXZlbG9wbWVudCBhcHByb2FjaCB0aGF0IGlzIHVzZWQgdGhvdWdoDQo+ID4gPiB3 aG9sZQ0KPiA+ID4gRFBESzoNCj4gPiA+IC0gcHJvdmlkZSBpbml0aWFsIHNvbHV0aW9uIHdpdGgg YmFzaWMgZnVuY3Rpb25hbGl0eSBmaXJzdA0KPiA+ID4gLSBpbXByb3ZlL2V4dGVuZCB3aXRoIGZ1 dHVyZSByZWxlYXNlcy9wYXRjaGVzDQo+ID4NCj4gPiBJZiB5b3VyIHN1Z2dlc3Rpb24gaXMgdG8g c3RpY2sgdG8gYWJvdmUgZ3VpZGVsaW5lcywNCj4gDQo+IEl0IGlzIG5vdCBteSBzdWdnZXN0aW9u LCB0aGF0J3MgaG93IHRoaW5ncyB3b3JrIHdpdGhpbiBEUERLIHJpZ2h0IG5vdy4NCj4gTmVhcmx5 IGV2ZXJ5IGRwZGsgbGlicmFyeSwgZHJpdmVyIGFuZCBzYW1wbGUgYXBwIHdhcyBkZXZlbG9wZWQg YmFzZWQgb24gdGhhdA0KPiBwcmluY2lwbGUuDQo+IEV2ZW4gaXBzZWMtc2VjZ3cgaXRzZWxmLCBq dXN0IGxvb2sgYXQgdGhlIGdpdCBsb2cgZm9yIGl0Lg0KPiANCj4gPiBJIGRvbid0IHRoaW5rIHRo ZXJlIGlzIGFueSBwb2ludCBpbiBwdXNoaW5nIGFueSBmdXJ0aGVyLiBJIGxlYXZlIHRoaXMNCj4g PiB0byBtYWludGFpbmVycyB0byBkZWNpZGUuIEkgd291bGQgYXNzdW1lIHRoZSBzYW1lIHJ1bGVz IHdvdWxkIGFwcGx5IHRvIGV2ZXJ5DQo+IGZlYXR1cmUgdGhhdCBpcyBiZWluZyBhdHRlbXB0ZWQu DQo+IA0KPiBJIGJlbGlldmUgdGhhdCBmb3IgIzEsICMyLCAjNSB5b3VyIGNvbW1lbnRzIGFyZSBi aWFzZWQsIGFuZCBkb2Vzbid0IHByb3ZpZGUgcmVhbA0KPiBwaWN0dXJlLg0KPiBTbyBteSBzdWdn ZXN0aW9uIHRvIG1haW50YWluZXJzIHdvdWxkIGJlIHRvIGlnbm9yZSB0aGVtIGFzIG5vdCB2YWx1 YWJsZS4NCj4gDQo+IEtvbnN0YW50aW4NCj4gDQo+IA0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEFu b29iDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBk ZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgQW5hbnlldiwgS29uc3RhbnRp bg0KPiA+ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMywgMjAxOSA4OjE2IFBNDQo+ID4gPiBU bzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+OyBTbW9jenluc2tpLCBNYXJjaW5Y DQo+ID4gPiA8bWFyY2lueC5zbW9jenluc2tpQGludGVsLmNvbT47IGFraGlsLmdveWFsQG54cC5j b20NCj4gPiA+IENjOiBkZXZAZHBkay5vcmc7IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGpl cmluakBtYXJ2ZWxsLmNvbT47DQo+ID4gPiBOYXJheWFuYSBQcmFzYWQgUmFqdSBBdGhyZXlhIDxw YXRocmV5YUBtYXJ2ZWxsLmNvbT47IEFyY2hhbmENCj4gPiA+IE11bmlnYW50aSA8bWFyY2hhbmFA bWFydmVsbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC8z XSBhZGQgZmFsbGJhY2sgc2Vzc2lvbg0KPiA+ID4NCj4gPiA+IEhpIEFub29iLA0KPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiBJJ3ZlIGZldyBtb3JlIG9ic2VydmF0aW9ucyByZWdhcmRpbmcgdGhlIHBy b3Bvc2VkIGZlYXR1cmUuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxLiBGcm9t IHdoYXQgSSB1bmRlcnN0b29kLCBpZiBhbiBFU1AgcGFja2V0IGVuZHMgdXAgb24gYW4NCj4gPiA+ ID4gPiA+ID4gPiB1bnByb3RlY3RlZCBpbnRlcmZhY2UgYW5kIGRvZXNuJ3QgaGF2ZSAnUEtUX1JY X1NFQ19PRkZMT0FEJw0KPiA+ID4gPiA+ID4gPiA+IGJpdCBzZXQsIHRoZW4gdGhlIHBhY2tldA0K PiA+ID4gPiA+ID4gPiB3b3VsZCBiZSBsb29rZWQgdXAgdG8gc2VlIHRoZSBhc3NvY2lhdGVkIFNB IGFuZCB0aGVuDQo+ID4gPiA+ID4gPiA+IGZhbGxiYWNrIHNlc3Npb24gaXMgZmlndXJlZCBvdXQg YW5kIHRoZW4gZnVydGhlciBwcm9jZXNzaW5nIGlzIGRvbmUuDQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiBDYW4geW91IGNvbmZpcm0gaWYgSSB1bmRlcnN0b29kIHRoZSBzZXF1ZW5j ZSBjb3JyZWN0bHk/IElmDQo+ID4gPiA+ID4gPiA+ID4geWVzLCB0aGVuIGFyZW4ndCB3ZSBkb2lu ZyBhbiBleHRyYSBsb29rdXAgaW4gdGhlIHMvdz8gVGhlDQo+ID4gPiA+ID4gPiA+ID4gcGFja2V0 IG1heSBiZSBsb29rZWQgYnkgdGhlIGgvdyB1c2luZyBydGVfZmxvdyBhbmQgdGhhdA0KPiA+ID4g PiA+ID4gPiA+IGluZm9ybWF0aW9uIGNvdWxkIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZQ0KPiA+ ID4gPiA+ID4gPiBTQS4gQWxzbywgaWYgdGhlIEVTUCBwYWNrZXQgaXMgZXhwZWN0ZWQgdG8gYmUg Zm9yd2FyZGVkLA0KPiA+ID4gPiA+ID4gPiB0aGVuIHRoZSBhYm92ZSBsb2dpYyB3aWxsIGFkZCBh biB1bm5lY2Vzc2FyeSBsb29rdXAgZXZlbg0KPiA+ID4gPiA+ID4gPiBhZnRlciB5b3VyIGgvdyBo YXMgZGV0ZWN0ZWQgdGhhdCB0aGUgcGFja2V0IG5lZWQgbm90IGJlIHNlY3VyaXR5DQo+IHByb2Nl c3NlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gTm90IHN1cmUgSSB1bmRlcnN0b29k IHlvdXIgd2hvbGUgc3RhdGVtZW50IGFib3ZlLg0KPiA+ID4gPiA+ID4gPiBBRkFJSywgcmlnaHQg bm93ICh3aXRoIGRwZGsgbWFzdGVyKSBmb3IgdW5wcm90ZWN0ZWQgaWZhY2UgaXQNCj4gPiA+ID4g PiA+ID4gd29ya3MgbGlrZQ0KPiA+ID4gdGhhdDoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gMS4gIHNsaXQgaW5jb21pbmcgdHJhZmZpYyBpbnRvIDMgZ3JvdXBzOiBFU1AgcGFja2V0cywg SVB2NA0KPiA+ID4gPiA+ID4gPiBwYWNrZXRzLCBJUHY2DQo+ID4gPiA+ID4gcGFja2V0cy4NCj4g PiA+ID4gPiA+ID4gRm9yIEVTUCBwYWNrZXRzOg0KPiA+ID4gPiA+ID4gPiAyLiBwZXJmb3JtIFNB RCBsb29rdXANCj4gPiA+ID4gPiA+ID4gICAgIGEuIGlmIGl0IGZhaWxzIChub24gU0EgZm91bmQg Zm9yIHRoYXQgU1BJKSwgdGhlbiBkcm9wIHRoZSBwYWNrZXQuDQo+ID4gPiA+ID4gPiA+ICAgICBi LiBvdGhlcndpc2UgKFNBIGZvdW5kKSBwcm9jZXNzIHRoZSBwYWNrZXQgdXNpbmcgZm91bmQNCj4g PiA+ID4gPiA+ID4gU0ENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gV2hhdCBmYWxsLWJh Y2sgcGF0Y2ggYWRkczoNCj4gPiA+ID4gPiA+ID4gQmVmb3JlIHN0ZXAgMi5iIGNoZWNrOg0KPiA+ ID4gPiA+ID4gPiBkb2VzIHRoYXQgU0EgaGFzIGl0cyBwcmltYXJ5IHNlc3Npb24gIHdpdGggdHlw ZQ0KPiA+ID4gPiA+ID4gPiBJTkxJTkUtQ1JZUFRPIGFuZCBkb2VzIEhXIGZhaWwgdG8gZG8gSVBz ZWMgcmVhbHRlZCBwcm9jZXNzaW5nIGZvciBpdA0KPiAoYnkgc29tZSByZWFzb24pPw0KPiA+ID4g PiA+ID4gPiBJZiB5ZXMsIHRoZW4gbWFyayB0aGlzIHBhY2tldCB0byBiZSBwcm9jZXNzZWQgYnkg ZmFsbC1iYWNrIHNlc3Npb24uDQo+ID4gPiA+ID4gPiA+IGlmIChNQlVGX05PX1NFQ19PRkZMT0FE KHBrdCkgJiYgc2EtPmZhbGxiYWNrX3Nlc3Npb25zID4gMCkgew0KPiA+ID4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgdWludHB0cl90IGludHNhID0gKHVpbnRwdHJfdClzYTsNCj4gPiA+ID4gPiA+ ID4gICAgICAgICAgICAgICAgIGludHNhIHw9IElQU0VDX1NBX09GRkxPQURfRkFMTEJBQ0tfRkxB RzsNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIHJlc3VsdF9zYSA9ICh2b2lkICopaW50 c2E7ICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFNvIGZyb20gbXkgcGVyc3BlY3Rp dmUsIG5vIGFkZGl0aW9uYWwgbG9va3VwIHdoZXJlIGludHJvZHVjZWQuDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gW0Fub29iXSBGb3IgaW5saW5lIHByb2Nlc3NpbmcsIGgvdyBkb2VzIGEgbG9v a3VwIGFuZCBmaWd1cmVzDQo+ID4gPiA+ID4gPiBvdXQgdGhlIHNlY3VyaXR5DQo+ID4gPiA+ID4g cHJvY2Vzc2luZyB0byBiZSBkb25lIG9uIHRoZSBwYWNrZXQuDQo+ID4gPiA+ID4gPiAicnRlX3Nl Y3VyaXR5X2dldF91c2VyZGF0YSgpIiBhbGxvd3Mgcy93IHRvIGZ1cnRoZXIgc2VncmVnYXRlDQo+ ID4gPiA+ID4gPiB0aGF0IGluZm8uIEluIHRoaXMgYXBwcm9hY2gsIEkgYmVsaWV2ZSB3ZSBkb24n dCBjb25zaWRlciBob3cNCj4gPiA+ID4gPiA+IHN1Y2ggaW5mbyBmcm9tIGgvdyBjYW4NCj4gPiA+ ID4gPiBiZSB1c2VkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gUmlnaHQgbm93IGl0IGlzIG5vdCB0 aGUgY2FzZSB3aXRoIGlwc2VjLXNlY2d3Og0KPiA+ID4gPg0KPiA+ID4gPiBbQW5vb2JdIEFyZSB5 b3Ugc2F5aW5nIHRoZXJlIGlzIG5vIGgvdyBsb29rdXAgaW52b2x2ZWQgd2hlbiBkb2luZw0KPiA+ ID4gPiBpbmxpbmUgY3J5cHRvIHByb2Nlc3Npbmc/IFRoZW4gSSdtIGNvbmZ1c2VkLiBNeSB1bmRl cnN0YW5kaW5nIGlzDQo+ID4gPiA+IHRoYXQgcnRlX2Zsb3cNCj4gPiA+IHdpdGggQUNUSU9OIHR5 cGUgYXMgU0VDVVJJVFkgaXMgYmVpbmcgdXNlZCB0byBzZXR1cCBoL3cgbG9va3Vwcy4NCj4gPiA+ DQo+ID4gPiBJIGFtIHNheWluZyB0aGF0IGN1cnJlbnQgaXBzZWMtc2VjZ3cgY29kZSBmb3IgZWFj aCBpbmJvdW5kIEVTUA0KPiA+ID4gcGFja2V0DQo+ID4gPiAqYWx3YXlzKiBkb2VzIFNXIGxvb2t1 cC4NCj4gPiA+IE5vIG1hdHRlciBkaWQgSFcgbG9va3VwIHRha2UgcGxhY2UgYWxyZWFkeSBhbmQg ZG9lcyBpbmZvcm1hdGlvbg0KPiA+ID4gYWJvdXQgdGhhdCBsb29rdXAgaXMgYXZhaWxhYmxlIHZp YSBtYnVmIGluIHNvbWUgd2F5IG9yIG5vdC4NCj4gPiA+IEp1c3QgbG9vayBhdCB0aGUgaXBzZWMt c2VjZ3cgY29kZSB5b3Vyc2VsZjoNCj4gPiA+DQo+ID4gPiBuYl9yeCA9IHJ0ZV9ldGhfcnhfYnVy c3QocG9ydGlkLCBxdWV1ZWlkLCAgcGt0cywgTUFYX1BLVF9CVVJTVCk7DQo+ID4gPg0KPiA+ID4g aWYgKG5iX3J4ID4gMCkNCj4gPiA+IAlwcm9jZXNzX3BrdHMocWNvbmYsIHBrdHMsIG5iX3J4LCBw b3J0aWQpOw0KPiA+ID4NCj4gPiA+IEluc2lkZSBwcm9jZXNzX3BrdHMoKQ0KPiA+ID4gaHR0cHM6 Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtDQo+ID4gPiAzQV9fbHhy LmRwZGsub3JnX2RwZGtfbGF0ZXN0X2lkZW50X3ByZXBhcmUtNUZvbmUtDQo+ID4gPg0KPiA1RnBh Y2tldCZkPUR3SUdhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1CUGNHT091ZFVNclREUTlZ Yg0KPiA+ID4NCj4gZ0tjT2tPNUNoWWlVUFBsUE5JRXZUT2hqTkUmbT1LVkJndlhZbFVHeU1tdTI2 MGVySVNLcjczUXQ2UEJMdXgwU0kNCj4gPiA+IG9TTzFpLU0mcz1vcGJHR0hVcWZ4eThwXzROdndD RzZvZDZWZFYwcU44WGFmYVBpdWJmTzFBJmU9DQo+ID4gPiAgaXQgZmlyc3QgY2FsbHMgcHJlcGFy ZV90cmFmZmljKCkgd2hpY2ggZG9lcyBzb3J0IG9mIGRlLW11eGluZzoNCj4gPiA+IHB1dCBwYWNr ZXQgaW4gb25lIG9mIDMgYXJyYXlzOg0KPiA+ID4gICAgMSkgRVNQIHBhY2tldHMNCj4gPiA+ICAg IDIpIG5vbiBFU1AgSVB2NCBwYWNrZXRzDQo+ID4gPiAgICAzKSBub24gRVNQIElQdjYgcGFja2V0 cw0KPiA+ID4gQWxzbyBpdCBjaGVja3MgaXMgUEtUX1JYX1NFQ19PRkZMT0FEIHNldCBmb3IgdGhh dCBwYWNrZXQuDQo+ID4gPiBJZiB5ZXMsIGl0IHJldHJpZXZlcyBhc3NvY2lhdGVkIHNlY3VyaXR5 IHVzZXItZGF0YSBhbmQgc3RvcmVzIGl0DQo+ID4gPiBpbnNpZGUgcHJpdmF0ZSBtYnVmIGFyZWEu DQo+ID4gPg0KPiA+ID4gVGhlbiBpdCBnb2VzIGludG8gcHJvY2Vzc19wa3RzX2luYm91bmQoKQ0K PiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtDQo+ ID4gPiAzQV9fbHhyLmRwZGsub3JnX2RwZGtfbGF0ZXN0X2lkZW50X3Byb2Nlc3MtNUZwa3RzLQ0K PiA+ID4NCj4gNUZpbmJvdW5kJmQ9RHdJR2FRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUJQ Y0dPT3VkVU1yVERROVkNCj4gPiA+DQo+IGJnS2NPa081Q2hZaVVQUGxQTklFdlRPaGpORSZtPUtW Qmd2WFlsVUd5TW11MjYwZXJJU0tyNzNRdDZQQkx1eDBTDQo+ID4gPiBJb1NPMWktTSZzPTJPeE1Y dWc3anRVUVBjWWlETjRuVzlXYnJNdFJmVEp4NWstTjdpa09lTUUmZT0NCj4gPiA+IGFuZCBoZXJl IGZvciBhbGwgRVNQIHBhY2tldHM6DQo+ID4gPiBsZWdhY3kgY29kZSBwYXRoOg0KPiA+ID4gaXBz ZWNfaW5ib3VuZCgpLT5pbmJvdW5kX3NhX2xvb2t1cCgpLT5zaW5nbGVfaW5ib3VuZF9sb29rdXAo KQ0KPiA+ID4gZm9yIGxpYnJ0ZV9pcHNlYyBjb2RlIHBhdGg6DQo+ID4gPiBpbmJvdW5kX3NhX2xv b2t1cCgpLT5zaW5nbGVfaW5ib3VuZF9sb29rdXAoKQ0KPiA+ID4NCj4gPiA+IHNpbmdsZV9pbmJv dW5kX2xvb2t1cCgpIGlzIHRoZSBvbmUgdGhhdCBkb2VzIGFjdHVhbCBTVyBsb29rdXAgZm9yDQo+ ID4gPiBlYWNoIGlucHV0IHBhY2tldC4NCj4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBv aW50LmNvbS92Mi91cmw/dT1odHRwLQ0KPiA+ID4gM0FfX2x4ci5kcGRrLm9yZ19kcGRrX2xhdGVz dF9pZGVudF9zaW5nbGUtNUZpbmJvdW5kLQ0KPiA+ID4NCj4gNUZsb29rdXAmZD1Ed0lHYVEmYz1u S2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9QlBjR09PdWRVTXJURFE5WWINCj4gPiA+DQo+IGdLY09r TzVDaFlpVVBQbFBOSUV2VE9oak5FJm09S1ZCZ3ZYWWxVR3lNbXUyNjBlcklTS3I3M1F0NlBCTHV4 MFNJDQo+ID4gPiBvU08xaS1NJnM9RDJaUFpQTGJjUVNiYWx1RzhLSDBGM3VVREhmUVdOWXh3NE1P YzBmU2tJOCZlPQ0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBmb3IgZWFjaCBpbmJvdW5kIEVT UCBwYWNrZXQgaXQgKmFsd2F5cyogZG9lcyBhIGxvb2t1cCBpbiBTVw0KPiA+ID4gPiA+IGJhc2Vk IFNBREIsIGFuZCBpZiBsb29rdXAgZmFpbHMgLSBkcm9wcyB0aGUgcGFja2V0IChzZWUgMi5hIGFi b3ZlKS4NCj4gPiA+ID4gPiBTbywgSSBzdGlsbCBub3Qgc2VlIGFueSBhZGRpdGlvbmFsIGxvb2t1 cHMgaW50cm9kdWNlZCB3aXRoIHRoZSBwYXRjaC4NCj4gPiA+ID4NCj4gPiA+ID4gW0Fub29iXSBJ biBjYXNlIG9mIGlubGluZSBjcnlwdG8sIHlvdSBjb3VsZCBkbyB0aGF0LiBObyBkaXNhZ3JlZW1l bnQuDQo+ID4gPiA+IEJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0IGlzIHRoZSBvbmx5IHdheS4g SWYgUE1EcyBjYW4gcmV0cmlldmUNCj4gPiA+ID4gaW5mbyBhYm91dA0KPiA+ID4gaC93IGxvb2t1 cHMgYW5kIHBhc3MgaXQgb24gdG8gdGhlIHVwcGVyIGxheWVycywgaXNuJ3QgdGhhdCB0aGUgYmV0 dGVyDQo+IGFwcHJvYWNoPw0KPiA+ID4NCj4gPiA+IFBsZWFzZSBsZXQncyBrZWVwIG91ciBjb252 ZXJzYXRpb24gaW4gYSBjb25zdHJ1Y3RpdmUgd2F5Lg0KPiA+ID4gV2UgYXJlIG5vdCBkaXNjdXNz aW5nIHdoYXQgY291bGQgYmUgZG9uZSBpbiB0aGVvcnksIGJ1dCBhIHBhcnRpY3VsYXINCj4gPiA+ IHBhdGNoIGZvcg0KPiA+ID4gaXBzZWMtc2VjZ3c6DQo+ID4gPiBSaWdodCBub3cgaXBzZWMtc2Vj Z3cgZG9lcyBhIFNXIGxvb2t1cCBmb3IgZWFjaCBpbmJvdW5kIEVTUCBwYWNrZXQNCj4gPiA+IChu byBtYXR0ZXIgd2hhdCBIVyBvZmZsb2FkIGRvZXMpIGFuZCB0aGlzIHBhdGNoIGRvZXNuJ3QgaW50 cm9kdWNlDQo+ID4gPiBhbnkgZXh0cmEgU1cgbG9va3Vwcy4NCj4gPiA+DQo+ID4gPiBJZiB5b3Ug YXJlIG5vdCBoYXBweSB3aXRoIGN1cnJlbnQgaXBzZWMtc2VjZ3cgYXBwcm9hY2gsIHRoYXQncyBm aW5lDQo+ID4gPiAtIGZlZWwgZnJlZSB0byBzdWJtaXQgUkZDL3BhdGNoIHRvIGZpeCB0aGF0LCBv ciBzdGFydCBhIGRpc2N1c3Npb24gaW4gYSBuZXcNCj4gdGhyZWFkLg0KPiA+ID4gSSBqdXN0IGRv bid0IHNlZSB3aHkgd2UgaGF2ZSB0byBkaXNjdXNzIGl0IGluIGNvbnRleHQgb2YgdGhpcyBwYXRj aC4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ IEFsc28gQUZBSUssIHJpZ2h0IG5vdyB0aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0byBjb25maWd1 cmUNCj4gPiA+ID4gPiA+ID4gaXBzZWMtc2VjZ3cgdG8gQllQQVNTIHNvbWUgRVNQIHRyYWZmaWMu DQo+ID4gPiA+ID4gPiA+IFNob3VsZCB3ZSBkbyBpdCAodG8gY29uZm9ybSB0byBpcHNlYyBSRkMp IC0gdGhhdCdzIHByb2JhYmx5DQo+ID4gPiA+ID4gPiA+IHN1YmplY3Qgb2YgYW5vdGhlciBkaXNj dXNzaW9uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFtBbm9vYl0gVGhlIGFwcHJvYWNoIChj aG9pY2Ugb2YgZmxhZ3MpIGZvcmNlcyBhIHNvZnR3YXJlLWJhc2VkDQo+ID4gPiA+ID4gPiBTQSBs b29rdXAgZm9yIHBhY2tldHMgdGhhdCBuZWVkIHRvIGJlIGJ5cGFzc2VkIGluc3RlYWQgb2YNCj4g PiA+ID4gPiA+IGxldmVyYWdpbmcgcG9zc2libGUNCj4gPiA+ID4gPiBoYXJkd2FyZSBTQSBsb29r dXAuIEkgZG9uJ3QgdGhpbmsgd2hhdCBpcHNlYy1zZWNndyBkb2VzIG1hdHRlcnMgaGVyZS4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEkgZG8gbm90IGFncmVlIHdpdGggdGhhdCBzdGF0ZW1lbnQuDQo+ ID4gPiA+ID4gRmlyc3Qgb2YgYWxsIC0gY3VycmVudCBwYXRjaCBkb2Vzbid0IGludHJvZHVjZSBh bnkgYWRkaXRpb25hbCBTVw0KPiA+ID4gPiA+IGxvb2t1cHMsIHNlZSBhYm92ZS4NCj4gPiA+ID4g PiBTZWNvbmQsIGlmIHNvbWVvbmUgd291bGQgbGlrZSB0byBhZGQgQllQQVNTIGZvciBFU1AgcGFj a2V0cyBpbnRvDQo+ID4gPiA+ID4gaXBzZWMtc2VjZ3csIEkgdGhpbmsgaGUgd291bGQgaGF2ZSB0 byBpbnNlcnQgbmV3IGNvZGUgdGhhdCBkbw0KPiA+ID4gPiA+IGRlLW11eA0KPiA+ID4gPiA+ICpi ZWZvcmUqIGFueSBFU1AgcmVsYXRlZCBwcm9jZXNzaW5nIHN0YXJ0cy4NCj4gPiA+ID4gPiBNb3N0 IG9idmlvdXMgdmFyaWFudDogYXQgcHJlcGFyZV9vbmVfcGFja2V0KCkgd2hlbiB3ZSBzcGxpdCBv dXINCj4gPiA+ID4gPiBpbmNvbWluZyB0cmFmZmljIHRvIElQc2VjIGFuZCBub24tSVBzZWMgb25l cy4NCj4gPiA+ID4gPiBTZWNvbmQgdmFyaWFudCAtIGF0IGVhcmx5IHN0YWdlIG9mIHNpbmdsZV9p bmJvdW5kX2xvb2t1cCgpLA0KPiA+ID4gPiA+IHN0cmFpZ2h0IGFmdGVyIGFjdHVhbCBTQUQgbG9v a3VwIGZhaWx1cmUuDQo+ID4gPiA+ID4gSW4gYm90aCBjYXNlcywgSSBkb24ndCBzZWUgaG93IHNl c3Npb24gc2VsZWN0aW9uIChwcmltYXJ5IG9yDQo+ID4gPiA+ID4gZmFpbGxiYWNrKSB3b3VsZCBh ZmZlY3QgdXMgaGVyZSwgYWN0dWFsIGRlY2lzaW9uIGRvIHdlIHdhbnQgdG8NCj4gPiA+ID4gPiBQ Uk9DRVNTIG9yIEJZUEFTUyBwYXJ0aWN1bGFyIEVTUCBwYWNrZXQgbmVlZHMgdG8gdGFrZSBwbGFj ZSBiZWZvcmUNCj4gdGhhdC4NCj4gPiA+ID4gPiBTbyBJIHN0aWxsIGJlbGlldmUgd2UgYXJlIG9r IGhlcmUuDQo+ID4gPiA+DQo+ID4gPiA+IFtBbm9vYl0gSSBkb24ndCB0aGluayB5b3UgdW5kZXJz dG9vZCB3aGF0IEknbSB0cnlpbmcgdG8gaGlnaGxpZ2h0DQo+ID4gPiA+IGhlcmUuIFlvdSBjb3Vs ZCBoYXZlIGEgc2l0dWF0aW9uIHdoZW4gaC93IGNhbiBkZXRlY3QgdGhhdCB0aGUNCj4gPiA+ID4g cGFja2V0IGhhcyB0byBiZSAiUFJPVEVDVCJlZCB1c2luZyBhbiAiaW5saW5lIGNyeXB0byIgc2Vz c2lvbi4gQnV0DQo+ID4gPiA+IHRoZW4gaXQgbWlnaHQgZGV0ZWN0IHRoYXQgaXQgY2Fubm90IHBy b2NlZWQgd2l0aCBpbmxpbmUgcHJvY2Vzc2luZw0KPiA+ID4gPiBiZWNhdXNlIG9mIHNvbWUNCj4g PiA+IGlzc3VlIChmcmFnbWVudGF0aW9uLCBoL3cgcXVldWUgb3ZlcmZsb3cgZXRjKS4gTm93IHRo ZSBoL3cgaGFzDQo+ID4gPiBhbHJlYWR5IGZpZ3VyZWQgb3V0IHRoZSBhY3Rpb24gdG8gYmUgZG9u ZSB0byB0aGUgcGFja2V0LiBJZiBQTURzDQo+ID4gPiBhbGxvdyB0aGlzIHRvIGJlIGNvbW11bmlj YXRlZCB0byB0aGUgYXBwbGljYXRpb24sIHRoZSBhcHBsaWNhdGlvbiB3b24ndCBiZQ0KPiByZXF1 aXJlZCB0byBkbyB0aGUgbG9va3VwLg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBpbmxpbmUgY3J5cHRv LCBhcHBsaWNhdGlvbiBjYW4gaWdub3JlIHRoZSBoL3cgbG9va3VwIGRhdGEgYW5kDQo+ID4gPiA+ IGRvIGEgcy93IGxvb2t1cCB3aXRoIHRoZSBwcm90b2NvbCBoZWFkZXJzIGFzIHRoZXkgYXJlIG5v dCBzdHJpcHBlZA0KPiA+ID4gPiBvZmYuIEl0IHdhcyBkb25lIHRoaXMgd2F5LCBiZWNhdXNlIEFQ SSBhbmQgdGhlIGFzc29jaWF0ZWQgbWVhbnMgdG8NCj4gPiA+ID4gZ2V0IHRoaXMgaW5mbyBmcm9t IFBNRCB3YXMgbm90IGludHJvZHVjZWQgd2hlbiBpbmxpbmUgY3J5cHRvIGFuZA0KPiA+ID4gPiBj b3JyZXNwb25kaW5nDQo+ID4gPiBzdXBwb3J0IGluIEludGVsJ3MgUE1EIHdhcyBhZGRlZC4gQnV0 IGlubGluZSBwcm90b2NvbCBjYW5ub3QgZG8gdGhlDQo+ID4gPiBsb29rdXAgaW4gdGhlIGFwcGxp Y2F0aW9uIGFuZCBzbyB0aGUgY29uY2VwdCBvZiB1c2VyZGF0YSBldGMgd2FzDQo+ID4gPiBpbnRy b2R1Y2VkLiBUaGUgc2FtZSBjYW4gYmUgYXBwbGllZCB0byBpbmxpbmUgY3J5cHRvIGFsc28uDQo+ ID4gPiBBZHZhbnRhZ2U/IEl0IGNvdWxkIHJlbW92ZSB0aGUgZXh0cmEgbG9va3VwIGRvbmUgaW4g cy93Lg0KPiA+ID4gPg0KPiA+ID4gPiBUbyBzdW1tYXJpemUsIHdlIGNhbm5vdCBhc3N1bWUgdGhh dCBldmVyeSBpbmxpbmUgY3J5cHRvIHBhY2tldA0KPiA+ID4gPiBuZWVkIHRvIGxvb2tlZCB1cCBp biB0aGUgYXBwbGljYXRpb24gdG8gZmlndXJlIG91dCB0aGUgcHJvY2Vzc2luZyBkb25lIG9uDQo+ IHRoZSBwYWNrZXQuDQo+ID4gPiBUaGVyZSBjYW4gYmUgYXBwbGljYXRpb25zIHdoaWNoIHJlbGll cyBvbiBoL3cgbG9va3VwIGRhdGEgdG8gZmlndXJlDQo+ID4gPiBvdXQgdGhlIHByb2Nlc3Npbmcg ZG9uZS4NCj4gPiA+ID4NCj4gPiA+ID4gRXhhbXBsZTogVXNpbmcgcnRlX2Zsb3csIEkgY2FuIGNy ZWF0ZSBhIHJ1bGUgZm9yIEVTUCBwYWNrZXRzIHRvIGJlDQo+ID4gPiA+IE1BUktlZC4gVGhlcmUg aXMgbm8gc2VjdXJpdHkgc2Vzc2lvbiBjcmVhdGVkIGZvciB0aGUgZmxvdyBhbmQgdGhlDQo+ID4g PiA+IGFwcGxpY2F0aW9uIGludGVuZHMgdG8gZm9yd2FyZCB0aGlzIGZsb3cgcGFja2V0cyB0byBh IGRpZmZlcmVudA0KPiA+ID4gPiBwb3J0LiBXaXRoIHlvdXINCj4gPiA+IGFwcHJvYWNoLCBldmVu IHRoZXNlIHBhY2tldHMgd291bGQgYmUgbG9va2VkIHVwLiBUaGUgcGFja2V0IHdpbGwNCj4gPiA+ IGhhdmUgaW5mbyBmcm9tIHRoZSBoL3cgbG9va3VwIHdoaWNoIGRvZXNuJ3QgZ2V0IHVzZWQsIGJl Y2F1c2UgdGhlDQo+ID4gPiBhcHByb2FjaCBmYWlscyB0byBpbnRyb2R1Y2UgdGhlIHJlcXVpcmVk IGNvbmNlcHRzLg0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgSSB1bmRlcnN0b29kIHlvdXIgcG9pbnQu DQo+ID4gPiBCYXNpY2FsbHkgeW91IHNheWluZyB0aGF0IGluIGZ1dHVyZSB5b3VyIFBNRCBmb3Ig dW5wcm9jZXNzZWQgRVNQDQo+ID4gPiBwYWNrZXRzIG1pZ2h0IHByb3ZpZGUgc29tZSBhZGRpdGlv bmFsIGluZm9ybWF0aW9uICh2aWENCj4gPiA+IHJ0ZV9zZWN1cml0eV9nZXRfdXNlcmRhdGEpIHRo YXQgbWlnaHQgYmUgdXNlZCBieSBTVyAtIGxldCBzYXkgdG8gY2hvb3NlDQo+IEJZUEFTUyBmb3Ig c3VjaCBwYWNrZXRzLg0KPiA+ID4gQ3VycmVudCBpcHNlYy1zZWNndyBkb2Vzbid0IHN1cHBvcnQg c3VjaCBhYmlsaXR5Lg0KPiA+ID4gWW91ciBjb25jZXJuIGlzIHRoYXQgdGhpcyBwYXRjaCB3aWxs IHNvbWVob3cgcHJldmVudCAob3Igd2lsbCBtYWtlDQo+ID4gPiBpdCBoYXJkZXIpIGZvciB5b3Ug dG8gbWFrZSB5b3VyIGZ1dHVyZSBjaGFuZ2VzLg0KPiA+ID4gQ29ycmVjdD8NCj4gPiA+IElmLCBz byB0aGVuIEkgc2FpZCBiZWZvcmUsIEkgZG9uJ3QgdGhpbmsgdGhhdCBjb25jZXJuIGlzIHZhbGlk Lg0KPiA+ID4gTW9zdCBvYnZpb3VzIHZhcmlhbnQgd2hlcmUgdG8gYWRkIHN1Y2ggY29kZSBpcyBp bmlzZGUgaW5zaWRlDQo+ID4gPiBwcmVwYXJlX29uZV9wYWNrZXQoKSB3aGVuIHdlIHNwbGl0IG91 ciBpbmNvbWluZyB0cmFmZmljIHRvIElQc2VjIGFuZA0KPiA+ID4gbm9uLUlQc2VjIG9uZXMuDQo+ ID4gPiBUbyBiZSBtb3JlIHNwZWNpZmljIHNvbWV0aGluZyBsaWtlIHRoYXQNCj4gPiA+DQo+ID4g PiBpZiAoZXRoLT5ldGhlcl90eXBlID09IHJ0ZV9jcHVfdG9fYmVfMTYoUlRFX0VUSEVSX1RZUEVf SVBWNCkpIHsNCj4gPiA+DQo+ID4gPiAgICAgICAgICAgICAgICAgaXBoNCA9IChjb25zdCBzdHJ1 Y3QgcnRlX2lwdjRfaGRyICopcnRlX3BrdG1idWZfYWRqKHBrdCwNCj4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIFJURV9FVEhFUl9IRFJfTEVOKTsNCj4gPiA+ICAgICAgICAgICAgICAgICBh ZGp1c3RfaXB2NF9wa3RsZW4ocGt0LCBpcGg0LCAwKTsNCj4gPiA+DQo+ID4gPiAtICAgICAgICAg ICAgICAgIGlmIChpcGg0LT5uZXh0X3Byb3RvX2lkID09IElQUFJPVE9fRVNQKQ0KPiA+ID4gKyAg ICAgICAgICAgICAgICBpZiAoaXBoNC0+bmV4dF9wcm90b19pZCA9PSBJUFBST1RPX0VTUCkgew0K PiA+ID4gKwkJaWYgKHBrdC0+b2xfZmxhZ3MgJiBQS1RfUlhfU0VDX09GRkxPQUQpIHsNCj4gPiA+ ICsJCQkvKiBleHRyYWN0IGV4dHJhIGluZm8sIG1ha2UgZGVjaXNpb24gYmFzZWQgb24gdGhhdCAq Lw0KPiA+ID4gKwkJfSBlbHNlDQo+ID4gPiAJCQl0LT5pcHNlYy5wa3RzWyh0LT5pcHNlYy5udW0p KytdID0gcGt0Ow0KPiA+ID4gKwkgICB9DQo+ID4gPg0KPiA+ID4gT2YgY291cnNlIHNvbWUgY29k ZSByZW9yZGVyaW5nIG1pZ2h0IGJlIG5lZWRlZCB0byBhdm9pZCBwZXJmb3JtYW5jZQ0KPiA+ID4g ZHJvcCwgYnV0IEkgc3VwcG9zZSB0aGUgbWFpbiBpZGVhIGlzIGNsZWFyIGVub3VnaC4NCj4gPiA+ ICBTZWNvbmQgdmFyaWFudCAtIGF0IGVhcmx5IHN0YWdlIG9mIHNpbmdsZV9pbmJvdW5kX2xvb2t1 cCgpLCBlaXRoZXINCj4gPiA+IGJlZm9yZSBvciBzdHJhaWdodCBhZnRlciBhY3R1YWwgU0FEIFNX IGxvb2t1cCBmYWlsdXJlLg0KPiA+ID4gSW4gYm90aCBjYXNlcywgdGhpcyBuZXcgY29kZSB3aWxs IGJlIGV4ZWN1dGVkICpiZWZvcmUqIHNlc3Npb24gc2VsZWN0aW9uDQo+IGNvZGUuDQo+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPiBEb2VzIHRoZSBhYm92ZSBzb3VuZCBsaWtlIEJZUEFTUz8gWWVzLg0K PiA+ID4gPiBEb2VzIGlwc2VjLXNlY2d3IGRvIGl0IHRoaXMgd2F5PyBOby4NCj4gPiA+DQo+ID4g PiBDb3JyZWN0LCBpdCBkb2Vzbid0Lg0KPiA+ID4gWW91IGhhdmUgdG8gc3VibWl0IHBhdGNoZXMg aWYgeW91J2QgbGlrZSB0byBzdXBwb3J0IHN1Y2ggYWJpbGl0eS4NCj4gPiA+DQo+ID4gPiA+IERv ZXMgdGhpcyBhcHByb2FjaCBwcmV2ZW50IGFuIGFwcGxpY2F0aW9uIGZyb20gaW50cm9kdWNpbmcg c3VjaCBhDQo+IEJZUEFTUz8NCj4gPiA+IFllcy4NCj4gPiA+DQo+ID4gPiBUaGF0J3Mgbm90IGNv cnJlY3QsIEkgYmVsaWV2ZSwgc2VlIGFib3ZlLg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZvciBleGFtcGxlLCBFU04gd2FzIG5vdCBzdXBwb3J0 ZWQgYnkgaXBzZWMtc2VjZ3cgKGJlZm9yZQ0KPiA+ID4gPiA+ID4gbGlicmFyeSBtb2RlIHdhcyBp bnRyb2R1Y2VkKSwgYnV0IGV2ZXJ5IHNpbmdsZSBsaWJyYXJ5IGNoYW5nZQ0KPiA+ID4gPiA+ID4g YW5kIGFwcGxpY2F0aW9uIGNoYW5nZSB3YXMgYWRkZWQga2VlcGluZyBpbiBtaW5kIHRoYXQgRVNO IGlzIGENCj4gPiA+ID4gPiA+IHZhbGlkIGZlYXR1cmUgZm9yIGlwc2VjLiBTbyBpdCBpcw0KPiA+ ID4gPiA+IG9uZSB0aGluZyB0byBzYXkgaXBzZWMtc2VjZ3cgZG9lc24ndCBzdXBwb3J0IEVTUCBi eXBhc3MgYW5kDQo+ID4gPiA+ID4gc2F5aW5nIHRoZSBzb2x1dGlvbiBkb2Vzbid0IGNvbnNpZGVy IGEgcG9zc2liaWxpdHkgb2YgRVNQIGJ5cGFzcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAyLiBUaGUgc29sdXRpb24gcHJvcG9z ZWQgaGVyZSBzZWVtcyBsaWtlIGFkZGluZyB0aGUNCj4gPiA+ID4gPiA+ID4gPiBoYW5kbGluZyBp biBpcHNlYy1zZWNndyBpbnN0ZWFkIG9mIGlwc2VjIGxpYnJhcnkuIEluIG90aGVyDQo+ID4gPiA+ ID4gPiA+ID4gd29yZHMsIHRoaXMgZmVhdHVyZSBpcyBub3QgZ2V0dGluZw0KPiA+ID4gPiA+ID4g PiBhZGRlZCBpbiBpcHNlYyBsaWJyYXJ5LCB3aGljaCB3YXMgc3VwcG9zZWQgdG8gc2ltcGxpZnkg dGhlDQo+ID4gPiA+ID4gPiA+IHdob2xlIGlwc2VjIHVzYWdlIGluIERQREssIGJ1dCBmYWlscyB0 byBoYW5kbGUgdGhlIGNhc2Ugb2YNCj4gZnJhZ21lbnRhdGlvbi4NCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gV2hhdCB3ZSBoYXZlIHJpZ2h0IG5vdyB3aXRoIGlwc2VjIGxpYnJhcnkgaXMg U0EgKGxvdykgbGV2ZWwgQVBJLg0KPiA+ID4gPiA+ID4gPiBJdCBjYW4gaGFuZGxlIG11bHRpLXNl Z21lbnQgcGFja2V0cyBwcm9wZXJseSwgYnV0IGV4cGVjdHMNCj4gPiA+ID4gPiA+ID4gc29tZW9u ZSBlbHNlIHRvIGRvIG90aGVyIHN0ZXBzIChmcmFnbWVudGF0aW9uL3JlYXNzZW1ibHkpLg0KPiA+ ID4gPiA+ID4gPiBpcHNlYy1zZWNndyBkZW1vbnN0cmF0ZXMgaG93IGxpYnJ0ZV9pcF9mcmFnIGFu ZCBsaWJydGVfaXBzZWMNCj4gPiA+ID4gPiA+ID4gY2FuIGJlIHVzZWQgdG9nZXRoZXIgdG8gZGVh bCB3aXRoIGZyYWdtZW50ZWQgSVBzZWMgdHJhZmZpYw0KPiA+ID4gPiA+ID4gPiBpbiBhIHByb3Bl cg0KPiA+ID4gbWFubmVyLg0KPiA+ID4gPiA+ID4gPiBQcm9iYWJseSBpbiBmdXR1cmUgd2UnbGwg Y29uc2lkZXIgYWRkaW5nIHNvbWUgaGlnaC1sZXZlbCBBUEkNCj4gPiA+ID4gPiA+ID4gdGhhdCB3 aWxsIGJlIGFibGUgdG8gZG8gd2hvbGUgcHJvY2Vzc2luZyB1bmRlciBob29kIChTUEQvU0FEDQo+ ID4gPiA+ID4gPiA+IGxvb2t1cCwgZnJhZ21lbnQvcmVhc3NlbWJseSwgYWN0dWFsIElQc2VjIHBh Y2tldCBwcm9jZXNzaW5nLA0KPiA+ID4gPiA+ID4gPiBtYXRjaGluZyBpbmJvdW5kIHNlbGVjdG9y cywgZXRjLiksIGJ1dCByaWdodCBub3cgaXQgaXMgbm90IHRoZSBjYXNlLg0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+IEFsc28sIHNpbmNlIHRoZSBmYWxsYmFjayBmZWF0dXJlIGlzIGVu dGlyZWx5IGRvbmUgaW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gYXBwbGljYXRpb24sIGl0IGJlZ3Mg dGhlDQo+ID4gPiA+ID4gPiA+IHF1ZXN0aW9uIHdoeSB0aGUgc2FtZSBmZWF0dXJlIGlzIG9taXR0 ZWQgZm9yIGxlZ2FjeSB1c2UgY2FzZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQmVj YXVzZSBsZWdhY3kgbW9kZSBkb2Vzbid0IHN1cHBvcnQgbXVsdGktc2VnIHBhY2tldHMgYXQgZmly c3QgcGxhY2UuDQo+ID4gPiA+ID4gPiA+IEFsc28gaXQgaXMgYW4gZXh0cmEgb3ZlcmhlYWQgdG8g c3VwcG9ydCAyIGNvZGUtcGF0aHMgKGxlZ2FjeQ0KPiA+ID4gPiA+ID4gPiBhbmQNCj4gPiA+ID4g PiA+ID4gbGlicmFyeSkgZm9yIHRoZSBzYW1lIGFwcCwgc28gd2UnZCBsaWtlIGluIGZ1dHVyZSB0 bw0KPiA+ID4gPiA+ID4gPiBkZXByZWNhdGUgYW5kIGxhdGVyIHJlbW92ZSBsZWdhY3kgY29kZS0g cGF0aC4NCj4gPiA+ID4gPiA+ID4gQXMgYSBmaXJzdCBzdGVwIHdlIHByb3Bvc2UgdG8gbWFrZSBs aWJyYXJ5IGNvZGUtcGF0aCBhIGRlZmF1bHQgb25lOg0KPiA+ID4gPiA+ID4gPiBodHRwczovL3Vy bGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fcGF0Y2hlcy4NCj4gPiA+ ID4gPiA+ID4gZHBkaw0KPiA+ID4gPiA+ID4gPiAub3JnDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4NCj4gPiA+DQo+IF9jb3Zlcl81ODI0N18mZD1Ed0lGQWcmYz1uS2pXZWMyYjZSMG1PeVBhejd4 dGZRJnI9alBmQjhyd3d2aVJTeHlMDQo+ID4gPiA+ID4gV3MyDQo+ID4gPiA+ID4gPiA+IG42Qi1X WUxuMXY5U3lUTXJUNUVRcWgyVFUmbT1iM0U0MjlmdW84UC1LNVhmSDh3Ry0NCj4gPiA+ID4gPiA3 aHdyMWQ4b000dUpHRXJBa2JmDQo+ID4gPiA+ID4gPiA+IER2QSZzPXZ6N2lvVXpKT3V6b0pkbVY3 UU8wUUxQS1luMXl0RnNqXzBlWWF0YlNDcmcmZT0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBb QW5vb2JdIEV2ZW4gaWYgd2UgbmVlZCB0aGUgYXBwbGljYXRpb24gdG8gZG8gdGhlIHJlYXNzZW1i bHksDQo+ID4gPiA+ID4gPiBpdCB3b3VsZCBsb29rIHNpbXBsZSBpZiBhcHBsaWNhdGlvbiB1c2Vz IHRoZSBzYW1lICJydGVfaXBzZWNfc2Vzc2lvbiINCj4gPiA+ID4gPiA+IHRvIHByb2Nlc3MgdGhl DQo+ID4gPiA+ID4gZmFsbGJhY2sgcGFja2V0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSB0aGlu ayB0aGVyZSBpcyBzb21lIHNvcnQgb2YgbWlzdW5kZXJzdGFuZGluZyBoZXJlLg0KPiA+ID4gPiA+ IFdpdGggY3VycmVudCBsaWJydGVfaXBzZWMgZGVzaWduOg0KPiA+ID4gPiA+IHJ0ZV9pcHNlY19z YSAtIG9wYXF1ZSBTVyByZXByZXNlbnRhdGlvbiBvZiB0aGUgU0EgKEhXIG5ldXRyYWwpDQo+ID4g PiA+ID4gcnRlX2lwc2VjX3Nlc3Npb24gYXNzb2NpYXRlcyBTQSAocnRlX2lwc2VjX3NhKXdpdGgg cGFydGljdWxhciBIVw0KPiA+ID4gPiA+IGRldmljZSAoc2Vzc2lvbikuDQo+ID4gPiA+ID4gU2Ft ZSBTQSBjYW4gYmUgcmVmZXJyZWQgYnkgbXVsdGlwbGUgc2Vzc2lvbnMuDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiBGcm9tIHJ0ZV9pcHNlYy5oOg0KPiA+ID4gPiA+IC8qKg0KPiA+ID4gPiA+ICAqIHJ0 ZV9pcHNlY19zZXNzaW9uIGlzIGFuIGFnZ3JlZ2F0ZSBzdHJ1Y3R1cmUgdGhhdCBkZWZpbmVzDQo+ ID4gPiA+ID4gcGFydGljdWxhcg0KPiA+ID4gPiA+ICAqIElQc2VjIFNlY3VyaXR5IEFzc29jaWF0 aW9uIElQc2VjIChTQSkgb24gZ2l2ZW4gc2VjdXJpdHkvY3J5cHRvIGRldmljZToNCj4gPiA+ID4g PiAgKiAtIHBvaW50ZXIgdG8gdGhlIFNBIG9iamVjdA0KPiA+ID4gPiA+ICAqIC0gc2VjdXJpdHkg c2Vzc2lvbiBhY3Rpb24gdHlwZQ0KPiA+ID4gPiA+ICAqIC0gcG9pbnRlciB0byBzZWN1cml0eS9j cnlwdG8gc2Vzc2lvbiwgcGx1cyBvdGhlciByZWxhdGVkIGRhdGENCj4gPiA+ID4gPiAgKiAtIHNl c3Npb24vZGV2aWNlIHNwZWNpZmljIGZ1bmN0aW9ucyB0byBwcmVwYXJlL3Byb2Nlc3MgSVBzZWMg cGFja2V0cy4NCj4gPiA+ID4gPiAgKi8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSW4gdGhhdCBj YXNlLCB0aGUgcHJvY2Vzc2luZyByZXF1aXJlZCB0byBoYW5kbGUgdGhlIG90aGVyDQo+ID4gPiA+ ID4gPiBwYWNrZXQgd2lsbCBiZSBoaWRkZW4gZnJvbSB0aGUgYXBwbGljYXRpb24uIEhlcmUgYXBw bGljYXRpb24NCj4gPiA+ID4gPiA+IGhhcyB0byBtYWtlIHN1cmUgaXQgY2hvb3Nlcw0KPiA+ID4g PiA+IHRoZSBjb3JyZWN0IHNlc3Npb24sIHdoaWNoIEkgYmVsaWV2ZSBzaG91bGQgYmUgbW92ZWQg dG8gaXBzZWMgbGlicmFyeS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEZyb20gbXkgc2lkZSBpdCBp cyBhIGdvb2QgdGhpbmcgdG8gbGV0IGFwcGxpY2F0aW9uIGRlZmluZSBpdHMgb3duIHVzYWdlDQo+ IG1vZGVsLg0KPiA+ID4gPiA+IEkuRS4gbGlicnRlX2lwc2VjIHN1cHBvcnRzIG11bHRpcGxlLXNl c3Npb25zIHBlciBTQSwgdXBwZXItbGF5ZXINCj4gPiA+ID4gPiAoYXBwKSBkZWNpZGVzIGhvdyBp dCB3aWxsIHVzZSB0aGF0IGZlYXR1cmUuDQo+ID4gPiA+ID4gVGhvdWdoIGlmIHlvdSBzdHJvbmds eSBmZWVsIHRoYXQgc29tZSBoaWdoZXItbGV2ZWwgQVBJIGlzIG5lZWRlZA0KPiA+ID4gPiA+IGhl cmUsIGFuZCBoYXZlIHNvbWUgZ29vZCBpZGVhcyBhYm91dCBpdCAgLSBwbGVhc2UgZ28gYWhlYWQg YW5kDQo+ID4gPiA+ID4gc3VibWl0IFJGQw0KPiA+ID4gZm9yIGl0Lg0KPiA+ID4gPg0KPiA+ID4g PiBbQW5vb2JdIElmIHlvdSBhcmUgb2theSB3aXRoIGFwcGxpY2F0aW9uIGRlZmluaW5nIGhvdyBp dA0KPiA+ID4gPiBpbXBsZW1lbnRzIGlwc2VjLA0KPiA+ID4gdGhlbiBwcm9iYWJseSB0aGVyZSBp cyBubyB1c2UgY2FzZSBmb3IgbGliIGlwc2VjPw0KPiA+ID4NCj4gPiA+IDopDQo+ID4gPiBPbmNl IGFnYWluIC0gbGlicmFyeSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbi4NCj4gPiA+IEFwcGxp Y2F0aW9uIGRlZmluZXMgdGhlIHdheSB0byB1c2UgaXQsIGkuZS4gaG93IGl0IHdpbGwgYXBwbHkN Cj4gPiA+IGZ1bmN0aW9uYWxpdHkgbGlicmFyeSBwcm92aWRlcyBmb3IgZGlmZmVyZW50IHVzZS1j YXNlIHNjZW5hcmlvcy4NCj4gPiA+IEFzIGFuIGV4YW1wbGU6IHNucHJpdG5mKCkgcHJvdmlkZXMg dXNlciB3aXRoIGFiaWxpdHkgdG8gZm9ybWF0DQo+ID4gPiBzdHJpbmdzLCBhcHBsaWNhdGlvbiBk ZWNpZGVzIHdoYXQgZXhhY3RseSBmb3JtYXQgdG8gdXNlIGFuZCBmb3Igd2hpY2ggc3RyaW5nLg0K PiA+ID4gU2FtZSBmb3IgbGlicnRlX2lwc2VjLCBsaWJyYXJ5IHByb3ZpZGVzIGZ1bmN0aW9uYWxp dHkgdG8gcGVyZm9ybQ0KPiA+ID4gcHJvY2Vzc2luZyBmb3IgRVNQIHBhY2tldHMuDQo+ID4gPiBB cHBsaWNhdGlvbiBkZWZpbmVzIHdoaWNoIHBhY2tldHMgdG8gcHJvY2VzcyBhbmQgd2hhdCBzZXNz aW9uIHRvIHVzZS4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAzLiBJdCBzZWVtcyBs aWtlIG9yZGVyaW5nIHdvbid0IGJlIG1haW50YWluZWQgb25jZSB0aGlzDQo+ID4gPiA+ID4gPiA+ ID4gcHJvY2Vzc2luZyBpcyBkb25lLiBBZ2FpbiwgdGhpcyBpcyB0aGUgc2VxdWVuY2UgSSB1bmRl cnN0b29kLg0KPiA+ID4gPiA+ID4gPiA+IFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkgbWlzc2VkDQo+ ID4gPiA+ID4gPiA+IHNvbWV0aGluZywNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgYS4gQXBwbGlj YXRpb24gcmVjZWl2ZXMgYSBidW5jaCBvZiBwYWNrZXRzIChsZXQncw0KPiA+ID4gPiA+ID4gPiA+ IHNheSA2IHBhY2tldHMpLCBpbiB3aGljaCBmZXcgYXJlIGZyYWdtZW50ZWQgKFAzICYgUDQpIGFu ZA0KPiA+ID4gPiA+ID4gPiA+IHRoZSByZXN0IGNhbiBiZSBpbmxpbmUNCj4gPiA+ID4gPiA+ID4g cHJvY2Vzc2VkLg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICBiLiBBcHBsaWNhdGlvbiByZWNlaXZl cyBQMS0+UDItPlAzLT5QNC0+UDUtPlA2IChpbg0KPiA+ID4gPiA+ID4gPiA+IHRoaXMsIFAxLCBQ MiwgUDUsIFA2IGFyZQ0KPiA+ID4gPiA+ID4gPiBpbmxpbmUgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxs eSkgYW5kIFA0ICYgUDUgYXJlIHRoZSBmcmFnbWVudHMNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAg Yy4gQXBwbGljYXRpb24gZ3JvdXBzIHBhY2tldHMuIFAxLT5QMi0+UDUtPlA2DQo+ID4gPiA+ID4g PiA+ID5iZWNvbWVzIG9uZSBncm91cCBhbmQgUDMtDQo+ID4gPiA+ID4gPiA+ID5QNCBiZWNvbWVz IGFub3RoZXIgYW5kIGdvZXMgZm9yIGZhbGxiYWNrIHByb2Nlc3NpbmcuDQo+ID4gPiA+ID4gPiA+ ID4gTm93IGhvdyBpcyBvcmRlcmluZyBtYWludGFpbmVkPyBJIGNvdWxkbid0IGZpZ3VyZSBvdXQg aG93DQo+ID4gPiA+ID4gPiA+ID50aGF0IGlzIGRvbmUgaW4gdGhpcw0KPiA+ID4gPiA+ID4gPiBj YXNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBZb3UgcmlnaHQsIGZhbGxiYWNrIHNl c3Npb24gY2FuIGludHJvZHVjZSBwYWNrZXQgcmVvcmRlcmluZy4NCj4gPiA+ID4gPiA+ID4gQXQg bGVhc3QgdGlsbCB3ZSdsbCBoYXZlIGFiaWxpdHkgdG8gcHJvY2VzcyBwYWNrZXRzIGluIHN5bmMg bW9kZSB0b28uDQo+ID4gPiA+ID4gPiA+IFNlZSBvdXIgcHJlc2VudGF0aW9uIGF0IGRwZGsgdXNl cnNwYWNlIChzbGlkZXMgMTcsIDE4KToNCj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNl LnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19zdGF0aWMuDQo+ID4gPiA+ID4gPiA+ IHNjaGUNCj4gPiA+ID4gPiA+ID4gZC5jbw0KPiA+ID4gPiA+ID4gPiBtX2hvc3RlZC01RmZpbGVz X2RwZGtib3JkZWF1eDIwMTlfOGZfRFBESy0NCj4gPiA+ID4gPiAyRElQU0VDdTkucGRmJmQ9RHdJ RkFnJmM9bg0KPiA+ID4gPiA+ID4gPiBLaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1qUGZCOHJ3d3Zp UlN4eUxXczJuNkItDQo+ID4gPiA+ID4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJg0KPiA+ID4gPiA+ ID4gPiBtPWIzRTQyOWZ1bzhQLUs1WGZIOHdHLQ0KPiA+ID4gPiA+IDdod3IxZDhvTTR1SkdFckFr YmZEdkEmcz1NTFJublljeWtqbnNxWHJIR1V1Ug0KPiA+ID4gPiA+ID4gPiBZSGM1dUR4YUFvZDBZ bDdmMDZFUXIxTSZlPSBSaWdodCBub3cgdGhlIG9ubHkgd2F5IHRvIGRlYWwNCj4gPiA+ID4gPiA+ ID4gd2l0aCBpdCAtIGhhdmUgcmVwbGF5IHdpbmRvdyBiaWcgZW5vdWdoIHRvIHN1c3RhaW4NCj4g PiA+ID4gPiA+ID4gcmVvcmRlcmluZyBhbmQgYXN5bmMgcHJvY2Vzc2luZyBsYXRlbmN5Lg0KPiA+ ID4gPiA+ID4gPiBUaGF0J3MgYWN0dWFsbHkgYW5vdGhlciByZWFzb24gd2h5IHdlIGFkZCB0aGlz IGZlYXR1cmUgaW50bw0KPiA+ID4gPiA+ID4gPiBpcHNlYy1zZWNndyBzYW1wbGUNCj4gPiA+ID4g PiA+ID4gYXBwOg0KPiA+ID4gPiA+ID4gPiBzbyBwZW9wbGUgY2FuIGV2YWx1YXRlIGl0IG9uIHRo ZWlyIHBsYXRmb3JtcywgZGV0ZXJtaW5lIHdoYXQNCj4gPiA+ID4gPiA+ID4gcmVwbGF5IHdpbmRv dyBzaXplIHdvdWxkIGJlIG5lZWRlZCwgd2hhdCBpc3N1ZXMvc2xvd2Rvd25zIGl0DQo+ID4gPiA+ ID4gPiA+IG1pZ2h0DQo+ID4gPiBjYXVzZSwgZXRjLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFtBbm9vYl0gVGhpcyBpcyBzb21ldGhpbmcgSSBoYWQgbm90aWNlZCB3aGlsZSBnb2luZyB0aHJv dWdoIHRoZSBjb2RlDQo+IGZsb3cuDQo+ID4gPiA+ID4gVGhlIG9yZGVyaW5nIGluZm8gaXMgbG9z dCBiZWNhdXNlIG9mIHRoZSBhcHByb2FjaC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uY2UgYWdh aW4sIGl0IGlzIGEga25vd24gbGltaXRhdGlvbiBhbmQgd2UgYXJlIG5vdCB0cnlpbmcgdG8NCj4g PiA+ID4gPiBoaWRlIGl0IGZyb20geW91IDopDQo+ID4gPiA+DQo+ID4gPiA+IFtBbm9vYl0gTmV2 ZXIgc2FpZCBpdCB3YXMgaGlkZGVuLiBJbml0aWFsbHkgSSBoYWQgb2theWVkIHRoZQ0KPiA+ID4g PiBhcHByb2FjaCBldmVuIHRob3VnaCBpdCB3YXNuJ3QgYSBzb2x1dGlvbiBzdWl0YWJsZSBmb3Ig aW5saW5lDQo+ID4gPiA+IHByb3RvY29sLiBCdXQgYXMgbW9yZSBjYXNlcw0KPiA+ID4gd2VyZSBj b25zaWRlcmVkLCBmZXcgc2hvcnRjb21pbmdzIHdlcmUgb2JzZXJ2ZWQsIGFuZCBJIHdhcyBza2Vw dGljYWwNCj4gPiA+IGFib3V0IGhvdyBhbnkgb2YgdGhhdCB3b3VsZCBiZSBzb2x2ZWQgaW4gdGhl IGxvbmcgcnVuLg0KPiA+ID4gPg0KPiA+ID4gPiBNeSBzdWdnZXN0aW9uLCBpZiB0aGVzZSBsaW1p dGF0aW9ucyBhbmQgdGhlIHBsYW5zIHRvIGFkZHJlc3MgaXQNCj4gPiA+ID4gd2VyZSBtZW50aW9u ZWQNCj4gPiA+IGluIHRoZSBjb3ZlciBsZXR0ZXIsIHdlIGNvdWxkJ3ZlIHNhdmVkIGZldyBjeWNs ZXMgaGVyZS4NCj4gPiA+DQo+ID4gPiBQb2ludCB0YWtlbi4NCj4gPiA+DQo+ID4gPiA+IEJ1dCBt eSByZXBseSB3b3VsZCBzdGlsbCBiZSB0aGUgc2FtZSDwn5iKDQo+ID4gPiA+DQo+ID4gPiA+ID4g SXQNCj4gPiA+ID4gPiB3YXMgb3V0bGluZWQgaGVyZToNCj4gPiA+ID4gPiBodHRwczovL3VybGRl ZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtDQo+ID4gPiA+ID4gM0FfX3N0YXRp Yy5zY2hlZC5jb21faG9zdGVkLTVGZmlsZXNfZHBka2JvcmRlYXV4MjAxOV84Zl9EUERLLQ0KPiA+ ID4gPiA+DQo+ID4gPg0KPiAyRElQU0VDdTkucGRmJmQ9RHdJRkFnJmM9bktqV2VjMmI2UjBtT3lQ YXo3eHRmUSZyPWpQZkI4cnd3dmlSU3h5TA0KPiA+ID4gPiA+IFdzMm42Qi1XWUxuMXY5U3lUTXJU NUVRcWgyVFUmbT1iM0U0MjlmdW84UC1LNVhmSDh3Ry0NCj4gPiA+ID4gPg0KPiA+ID4NCj4gN2h3 cjFkOG9NNHVKR0VyQWtiZkR2QSZzPU1MUm5uWWN5a2puc3FYckhHVXVSWUhjNXVEeGFBb2QwWWw3 ZjA2RQ0KPiA+ID4gPiA+IFFyMU0mZT0NCj4gPiA+ID4gPiBBbmQgaW4gdGhlIGxhdGVzdCBwYXRj aCB2ZXJzaW9uIE1hcmNpbiBjbGVhcmx5IHN0YXRlZCBpdCBpbnNpZGUgdGhlIEFHDQo+IHNlc3Np b246DQo+ID4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91 PWh0dHAtDQo+ID4gPiA+ID4NCj4gPiA+DQo+IDNBX19wYXRjaGVzLmRwZGsub3JnX3BhdGNoXzYw MDM5XyZkPUR3SUZBZyZjPW5LaldlYzJiNlIwbU95UGF6N3h0Zg0KPiA+ID4gPiA+IFEmcj1qUGZC OHJ3d3ZpUlN4eUxXczJuNkItDQo+ID4gPiBXWUxuMXY5U3lUTXJUNUVRcWgyVFUmbT1iM0U0Mjlm dW84UC0NCj4gPiA+ID4gPiBLNVhmSDh3Ry0NCj4gPiA+ID4gPg0KPiA+ID4NCj4gN2h3cjFkOG9N NHVKR0VyQWtiZkR2QSZzPXpybjkxVmpmX1pFbEFsRGY3SWVaR21HZXZjQTZSTXdwUFRMVUNHbGda DQo+ID4gPiA+ID4gY1kmZT0NCj4gPiA+ID4gPiBJZiB5b3UgdGhpbmsgZXZlbiBmdXJ0aGVyIGNs YXJpZmljYXRpb24gd2l0aGluIHRoZSBkb2MgaXMNCj4gPiA+ID4gPiBuZWVkZWQsIHBsZWFzZSBs ZXQgdXMga25vdy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFib3V0IHRoZSBhY3R1YWwgcGFja2V0 IHJlLW9yaWRlcmluZzoNCj4gPiA+ID4gPiAgQUZBSUssIGZvciBzb21lIHVzZS1jYXNlcyBpdCBt aWdodCBiZSBhY2NlcHRhYmxlLCBmb3Igb3RoZXJzIG5vdC4NCj4gPiA+ID4gPiBUaG91Z2ggaXQg aXMgYW4gb3B0aW9uYWwgZmVhdHVyZSwgdGhhdCB3b3VsZG4ndCBiZSBlbmFibGVkIGJ5DQo+ID4g PiA+ID4gZGVmYXVsdCwgc28gdXNlciBjYW4gYWx3YXlzIGNob29zZSBpcyBpdCBkb2VzIGhlIG5l ZWRzL3dhbnRzDQo+ID4gPiA+ID4gdGhpcyBmZWF0dXJlIG9yDQo+ID4gPiBub3QuDQo+ID4gPiA+ ID4gSWYvd2hlbiB3ZSdsbCBoYXZlIENQVV9DUllQVE8gcHJvY2Vzc2luZyBtb2RlOg0KPiA+ID4g Pg0KPiA+ID4gPiBbQW5vb2JdIFNob3VsZG4ndCB3ZSBnZXQgdGhhdCBhY2NlcHRlZCBmaXJzdCB0 aGVuPw0KPiA+ID4NCj4gPiA+IEkgZG9uJ3QgdGhpbmsgc28uDQo+ID4gPiBDdXJyZW50IGltcGxl bWVudGF0aW9uIGRvZXMgcHJvdmlkZSBleHBlY3RlZCBmdW5jdGlvbmFsaXR5ICh3aXRoDQo+ID4g PiBrbm93biBsaW1pdGF0aW9ucykuDQo+ID4gPiBJbiBmdXR1cmUsIHdlIGNhbiB0cnkgdG8gaW1w cm92ZSBpdCBhbmQvb3IgcmVtb3ZlIGV4aXN0aW5nIGxpbWl0YXRpb25zLg0KPiA+ID4gVGhhdCdz IGEgY29tbW9uIGl0ZXJhdGlvbiBkZXZlbG9wbWVudCBhcHByb2FjaCB0aGF0IGlzIHVzZWQgdGhv dWdoDQo+ID4gPiB3aG9sZQ0KPiA+ID4gRFBESzoNCj4gPiA+IC0gcHJvdmlkZSBpbml0aWFsIHNv bHV0aW9uIHdpdGggYmFzaWMgZnVuY3Rpb25hbGl0eSBmaXJzdA0KPiA+ID4gLSBpbXByb3ZlL2V4 dGVuZCB3aXRoIGZ1dHVyZSByZWxlYXNlcy9wYXRjaGVzDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4g PiBBbHNvLCB0aGUgb3JkZXJpbmcgaXMgbG9zdCBiZWNhdXNlIGFwcGxpY2F0aW9uIGlzIG5vdCBj b25zaWRlcmluZw0KPiA+ID4gPiB0aGF0LiBXaHkgY2FuJ3QNCj4gPiA+IHdlIHVzZSByZS1vcmRl cmluZyBsaWJyYXJ5PyBPciBhbiBldmVudC1kZXY/DQo+ID4gPg0KPiA+ID4gTm8tb25lIHNheWlu ZyBpdCBjYW4ndCBiZSBpbXByb3ZlZCBpbiBvbmUgd2F5IG9yIGFub3RoZXIuDQo+ID4gPiBXZSBk b24ndCBwbGFuIHRvIGludHJvZHVjZSBzdWNoIGNvZGUgcmlnaHQgbm93IGR1ZSB0byBpdHMgY29t cGxleGl0eS4NCj4gPiA+IE1pZ2h0IGJlIHNvbWV0aGluZyBpbiBmdXR1cmUuDQo+ID4gPiBUaG91 Z2ggeW91IGFyZSB3ZWxjb21lIHRvIGdvIGFoZWFkIGFuZCBzdWJtaXQgeW91ciBvd24gcGF0Y2hl cyB0bw0KPiA+ID4gaW1wcm92ZSB0aGF0IHNvbHV0aW9uLg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0NCj4g PiA+ID4gPg0KPiA+ID4NCj4gM0FfX3BhdGNoZXMuZHBkay5vcmdfY292ZXJfNTg4NjJfJmQ9RHdJ RkFnJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmDQo+ID4gPiA+ID4gUSZyPWpQZkI4cnd3dmlSU3h5 TFdzMm42Qi0NCj4gPiA+IFdZTG4xdjlTeVRNclQ1RVFxaDJUVSZtPWIzRTQyOWZ1bzhQLQ0KPiA+ ID4gPiA+IEs1WGZIOHdHLQ0KPiA+ID4gPiA+DQo+ID4gPg0KPiA3aHdyMWQ4b000dUpHRXJBa2Jm RHZBJnM9azF6ZWZfMXVxRUxYYmxLTjNfcWpYMDRXWE5GR0FVRUZJSUpydktQcjYNCj4gPiA+ID4g PiBlQSZlPQ0KPiA+ID4gPiA+IHdlJ2xsIGFkZCBhYmlsaXR5IGZvciB0aGUgdXNlciB0byBhdm9p ZCB0aGlzIHJlb3JkZXJpbmcgcHJvYmxlbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBcyB3ZSBk aWcgZGVlcGVyLCB0aGUgZmVhdHVyZSBsb29rcyBoYXJkbHkgY29tcGxldGUuIFRoZQ0KPiA+ID4g PiA+ID4gY29uY2VybmluZyBwYXJ0IGlzIHRoZSBhcHByb2FjaCBkb2Vzbid0IHNlZW0gY29uZHVj aXZlIHRvDQo+ID4gPiA+ID4gPiBmaXhpbmcgYW55IG9mIHRoZXNlIGlzc3VlcyBpbiB0aGUNCj4g PiA+ID4gPiBmdXR1cmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBZ2FpbiwgZG9uJ3QgYWdyZWUg d2l0aCB0aGF0IHN0YXRlbWVudC4NCj4gPiA+ID4gPiBGcm9tIG15IHBlcnNwZWN0aXZlOiB3aGls ZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGhhcyBpdHMNCj4gPiA+ID4gPiBsaW1pdGF0aW9ucyAo cGFja2V0IHJlb3JkZXJpbmcsIGlubGluZS1wcm90by9sa3NkLXByb3RvKSwgaXQgaXMNCj4gPiA+ ID4gPiB0b3RhbGx5IGZ1bmN0aW9uYWwgYW5kIHByb3ZpZGVzIHVzZXJzIHdpdGggYSByZWZlcmVu Y2UgaG93IHRvDQo+ID4gPiA+ID4gZGVhbCB3aXRoIHN1Y2gNCj4gPiA+IGtpbmQgb2YgcHJvYmxl bXMuDQo+ID4gPiA+DQo+ID4gPiA+IFtBbm9vYl0gV2VsbCwgdGhhdCBpcyBleGFjdGx5IG15IHBy b2JsZW0uIEl0IGdpdmVzIGEgc2tld2VkDQo+ID4gPiA+IHJlZmVyZW5jZSBvbiBob3cgdG8gZGVh bCB3aXRoIHRoZSBwcm9ibGVtLCB3aXRob3V0IGNvbnNpZGVyaW5nIG90aGVyDQo+IHBvc3NpYmls aXRpZXMuDQo+ID4gPg0KPiA+ID4gT25jZSBhZ2FpbiwgcGxlYXNlIGZlZWwgZnJlZSBhbmQgY29t ZS11cCB3aXRoIHlvdXIgb3duIHBhdGNoZXMsIHRoYXQNCj4gPiA+IHdpbGwgYWRkcmVzcyB0aGlz IHByb2JsZW0gaW4gYSBzbWFydGVyIHdheS4NCj4gPiA+DQo+ID4gPiA+IElmIGV2ZXJ5IGFwcGxp Y2F0aW9uIHN0YXJ0cyBhZG9wdGluZyB0aGlzIG1ldGhvZCBhbmQgc3RhcnRzIGRvaW5nDQo+ID4g PiA+IGxvb2t1cCBmb3IgZXZlcnkgRVNQIHBhY2tldCwgaC93IGJhc2VkIGxvb2t1cHMgKGFuZCB0 aGUgYXNzb2NpYXRlZA0KPiA+ID4gPiBoL3cpIHdvdWxkIGJlIHJlbmRlcmVkIHVzZWxlc3MuIEkg cmVhbGx5IHRoaW5rIHRoaXMgc2VyaWVzLCB3aGljaA0KPiA+ID4gPiBoYXBwZW5zIHRvIGJlDQo+ ID4gPiB0aGUgZmlyc3Qgc3RlcCBpbiBzb2x2aW5nIGEgY29tcGxleCBwcm9ibGVtLCB3aWxsIGJl IHZlcnkgdXNlZnVsIGlmDQo+ID4gPiBhbGwgdGhlc2UgaXNzdWVzIGFyZSBhZGRyZXNzZWQgcHJv cGVybHkuDQo+ID4gPiA+DQo+ID4gPiA+IElmIHlvdSBjYW4gaW50cm9kdWNlIHRoZSBpbmxpbmUr bG9va2FzaWRlIHZpYSBsaWJydGVfaXBzZWMsIGl0cw0KPiA+ID4gPiBwZXJoYXBzIG9rIGZvciB0 aGUgcGF0Y2ggdG8gaGF2ZSBzb21lIGxpbWl0YXRpb25zKGxpa2UgbGFjayBvZg0KPiA+ID4gPiBv cmRlcmluZywNCj4gPiA+IGFzc3VtcHRpb25zIG9uIEVTUCBldGMpLiBIb3dldmVyLCBpZiB0aGUg cGF0Y2ggaXMgaW50cm9kdWNlZA0KPiA+ID4gZGlyZWN0bHkgaW50byBpcHNlYy0gc2VjZ3csIGl0 IG5lZWRzIHRvIGJlIG1vcmUgY29tcHJlaGVuc2l2ZSBhbmQgcm9idXN0Lg0KPiA+ID4NCj4gPiA+ IEkgdGhpbmsgY29tbW9uIERQREsgcG9saWN5IGlzIGV4YWN0bHkgb3Bwb3NpdGU6DQo+ID4gPiBs aWJyYXJ5L2RyaXZlciBoYXMgdG8gYmUgYXMgcm9idXN0IGFuZCBjb21wcmVoZW5zaXZlIGFzIHBv c3NpYmxlLg0KPiA+ID4gc2FtcGxlIGFwcCBjb2RlIGFsbG93ZWQgdG8gaGF2ZSBzb21lIGxpbWl0 YXRpb25zIChhcyBsb25nIGFzIHRoZXkNCj4gPiA+IGFyZSBkb2N1bWVudGVkLCBldGMuKS4NCj4g PiA+DQo+ID4gPiA+IEkgYWxzbyBleHBlY3QgcGVyZm9ybWFuY2UgaW1wYWN0IGR1ZSB0byB0aGVz ZSBjaGFuZ2VzDQo+ID4gPg0KPiA+ID4gQ291bGQgeW91IGJlIG1vcmUgc3BlY2lmaWMgaGVyZT8N Cj4gPiA+IFdoYXQgcGVyZm9ybWFuY2UgaW1wYWN0IGRvIHlvdSBleHBlY3QgYW5kIHdoeT8NCj4g PiA+IENhbiB5b3UgcG9pbnQgdG8gdGhlIGV4YWN0IHBpZWNlIG9mIHBhdGNoIGNvZGUgdGhhdCB5 b3UgYmVsaWV2ZQ0KPiA+ID4gd291bGQgY2F1c2UgYSBkZWdyYWRhdGlvbi4NCj4gPiA+IEkgZG9u J3QgZXhwZWN0IGFueSBhbmQgcGVyZm9ybWFuY2UgdGVzdHMgb24gb3VyIHBsYXRmb3JtcyBkaWRu J3QNCj4gPiA+IHNob3cgYW55IHJlZ3Jlc3Npb24gc28gZmFyLg0KPiA+ID4NCj4gPiA+ID4gYW5k IHNvIEkgcHJlZmVyIGlmIHRoZSBpbmxpbmUrbG9va2FzaWRlIGNhbiBiZSBtYWRlIHNlcGFyYXRl DQo+ID4gPiA+IGRhdGFwYXRoIHJhdGhlciB0aGFuIG92ZXJsb2FkaW5nIHRoZSBleGlzdGluZyBv bmUuDQo+ID4gPg0KPiA+ID4gSSBkb24ndCBzZWUgYW55IGdvb2QgcmVhc29uIGZvciB0aGF0Lg0K PiA+ID4gVGhpcyBmZWF0dXJlIGlzIG9wdGlvbmFsLg0KPiA+ID4gVXNlciBoYXZlIHRvIGVuYWJs ZSBpdCBtYW51YWxseSBmb3IgZWFjaCBzZXNzaW9uICh2aWEgY29uZmlnIGZpbGUpLg0KPiA+ID4g Zm9yIGFsbCBvdGhlciBzZXNzaW9ucyB0aGVyZSBpcyBubyBpbXBhY3QuDQo+ID4gPiBXaGF0IHdl IHByb2JhYmx5IGNhbiBkbyAtIGFkZCBleHRyYSBjaGVjayBpbnNpZGUgc2EuYyB0byBhbGxvdw0K PiA+ID4gZmFsbGJhY2sgc2Vzc2lvbnMgb25seSBmb3IgaW5saW5lLWNyeXB0by1vZmZsb2FkIHR5 cGUgb2Ygc2Vzc2lvbnMuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gQWxzbywgaWYgdGhlIG5ldyBpcHNlYyByZWxhdGVkIGZlYXR1cmVzIGFyZSBp bnRyb2R1Y2VkIHZpYQ0KPiA+ID4gPiA+ID4gaXBzZWMtc2VjZ3cgdGhhbiB2aWEgcnRlX2lwc2Vj LCB0aGVuIGl0IHJhaXNlcyBkb3VidHMgb3ZlciB0aGUNCj4gPiA+ID4gPiA+IHV0aWxpdHkgb2YN Cj4gPiA+IHJ0ZV9pcHNlYyBsaWJyYXJ5Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCg0K