From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=quarantine dis=none) header.from=tamu.edu Received: from mx0a-00178102.pphosted.com (mx0a-00178102.pphosted.com [148.163.135.245]) by passt.top (Postfix) with ESMTPS id 3514D5A0623 for ; Thu, 29 Oct 2026 18:01:55 +0100 (CET) Received: from pps.filterd (m0169866.ppops.net [127.0.0.1]) by mx0a-00178102.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69TGtilt3931558; Thu, 29 Oct 2026 12:01:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tamu.edu; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=ppae6d7b; bh=KPyNrIZNGMoTO2EGJbVlVbRhk mowyW/9CugFWwYqoGY=; b=ny/8QvmToh7uyus3t/1clLWQt244AwQYc9oALZyNT i7l+JRa/SS//FMfkPY72fh1vLV/+QUtj26HqwtSSB+bK/XsfooX26bGJaLhrUpxq N2hAQOM1os0juKUOVQToAfKx9XjU3PlBZs+nt86RuRz6s0LV8TKY8y7Np+LbWZms KZ+5tOIZHp0y3WVoN3JMAT5sTaixUa3uGIMAmWmOcfvErxu4MaoXS4+hdkZlUsyp 8WjFmP5Dmxe8AGwvZaPHMr5KhpJc/iIZNtVX76QOlFVqreMSAib7L7vBzVJV8t9G lLZJGLBfN+JjlHG16H0Ax5+7x6IiE0q0NFnyB+GTRVA1g== Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11010007.outbound.protection.outlook.com [52.101.193.7]) by mx0a-00178102.pphosted.com (PPS) with ESMTPS id 4hm72923v2-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 29 Oct 2026 12:01:53 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NkeLvaurLJerDBj22CTujZFLJp+fU+p4YmkVhkGtJXau8HbEU7tcN+vg1+cuENeue3DktaCyqUopCOK0/Yw/5aMPP/eS3MgCX7UuELdsMRcOAJyc3pSSF+S/YwSPVpEc9gwFjS+mxqcDWnE8zRtdQ+Th14cXJM8voOfWMGRDjHvKx28LBeylWvFQmKux//SakD58lrm8aHKN7AQkJOPIcbxATzRlT/bMjMUAzfOfqOWqEe+4xJG6uIu+33Pt13Qu48jcoXpA5RZTe19hqG7Fc/A7bArFax/Br4TryYv/mPz2oRsAlllUj3kaVtaqsoF1nkvcOGsesCGZ8qG4WF7AzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KPyNrIZNGMoTO2EGJbVlVbRhkmowyW/9CugFWwYqoGY=; b=A2tiEPN6GyoKD8gBu/jSiSqHmee2ad3MG5ebCjM2aZ0QJ4sYo7fnO/BdPRkma+/YrFEFvPP34uparV+V30kdKQRJZ4wSplLbyu6PLA2e7oxY4OOL1hFcmJEtlcwI7hlQeYAJayDzeXZnkj5CExA4UZu3pibXr7BkVgC/rsN20/L8YIUOwi/e/IDzaNtwKX/Vchq1GCaYYX671pPLRoVrjrfBfBf4M5dSIGQa50C0AyKk8Wo8So/XBAFp4L9vkNrhZcVHjheakyQB0Lny2/OOhE/Phbi9jDK19RMQL2/9oHDrPUBw01Jdy8UriFWuOpaRchP3CNr/nIzKswMzfQTyrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=tamu.edu; dmarc=pass action=none header.from=tamu.edu; dkim=pass header.d=tamu.edu; arc=none Received: from DM3PR11MB8713.namprd11.prod.outlook.com (2603:10b6:0:45::15) by SJ5PPF1170C8165.namprd11.prod.outlook.com (2603:10b6:a0f:fc02::810) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.21; Thu, 29 Oct 2026 17:01:47 +0000 Received: from DM3PR11MB8713.namprd11.prod.outlook.com ([fe80::e63e:f56e:ed80:ee28]) by DM3PR11MB8713.namprd11.prod.outlook.com ([fe80::e63e:f56e:ed80:ee28%4]) with mapi id 15.21.0569.008; Thu, 29 Oct 2026 17:01:46 +0000 From: "Lawrence, Richard E" To: Stefano Brivio Subject: Re: [PATCH v3] pasta: Add --pass-fds option to skip closing file descriptors Thread-Topic: [PATCH v3] pasta: Add --pass-fds option to skip closing file descriptors Thread-Index: AQHdZWv9lGRcRB5xWkC+OCEzjIUHWLcTjzEAgAEluT4= Date: Thu, 29 Oct 2026 17:01:46 +0000 Message-ID: References: <20261026170345.634781-1-rlawrence@tamu.edu> <20261028233813.1bf26f42@elisabeth> In-Reply-To: <20261028233813.1bf26f42@elisabeth> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=tamu.edu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM3PR11MB8713:EE_|SJ5PPF1170C8165:EE_ x-ms-office365-filtering-correlation-id: 49bf69cf-0522-4c0a-be8a-08df35de50d5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|23010399003|376014|786006|1800799024|6133799003|261026135527099003|4133799003|22082099003|18002099003|261026140227099003|261028144727099003|261026130827099003|13003099007|8096899003|3023799007|261021123027099003|261021121427099003|56012099006|261009223027099003|11063799006|261019150727099003|5023799004|261019132127099003|10067099003|261021133027099003|261021130227099003|261022113327099003|261021135927099003|261019143827099003|261022075727099003|261022105027099003|261022115727099003|261026121527099003|4143699003|261019141927099003|38070700021; x-microsoft-antispam-message-info: MZZcFj342xFLuC9ZM3+OySVGZW+9OYsrX2ZDvtVE2tZ1N0O7iEasjt8Jc/K9H0qx7EstzSczb43mUYCSyR3ScsbT6le+Ds4tISMU9f00/PYzD03V+8iQ1FYzxAyjcHhdiFFRd2B6EN6ycSaeVRz7wq+SMLXRq0cwy7jjqGne+o0zFN9K4iSgRUMR3ANMP/ko71ZpALzIrfXQHNp6l5K1MCYfS1W1N7ig7J9D54o3s7uKYtN9d/usbqW7LNaDH7qPJVIF7gGASlL3DdhQhc6O2hzsCygJgiTry1ITYgJ7+oyJD+KZfEJXNmU1lK072zIiUIiuoiG+WdxqLrt3r2m4x7AuXysFkrl/1sghb49rhnqYSPIOKKQHdQJg2nOOHDvQLlhjcixT0BbVGtGt7w4tgRbKimjFJSKomF+VCiXJzoy1TfZM+eaJctOVxv3bsMFY3JuX1ZYriOrd5K8XfCx10yW5yGN45jDklnEfyWYBGSLVZl2sj3lJGqoDlD8G9Ntf2088kvrLqMGuFhUzeX6vPIknm5TppoIOMUlp3jEFU92goBcC9EHLUMt1amTDl0qe2oyxL9oXHuyetiLNK9qngqwEq2cfmRnyod21BH0KIh8jo62KzyNUX/PIzJj6boHU0duURX3TwtOwi0qdHBblJsNurEzbCEL7f2L/JS0RzPA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR11MB8713.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(786006)(1800799024)(6133799003)(261026135527099003)(4133799003)(22082099003)(18002099003)(261026140227099003)(261028144727099003)(261026130827099003)(13003099007)(8096899003)(3023799007)(261021123027099003)(261021121427099003)(56012099006)(261009223027099003)(11063799006)(261019150727099003)(5023799004)(261019132127099003)(10067099003)(261021133027099003)(261021130227099003)(261022113327099003)(261021135927099003)(261019143827099003)(261022075727099003)(261022105027099003)(261022115727099003)(261026121527099003)(4143699003)(261019141927099003)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VTRpNFdUOFhUSUNFZFZsZHE2VzRMWXQydWkremw5enFjZ3JSeXBFeERJc0da?= =?utf-8?B?VUFFWHJVUVJEV2dINnFqMFJ1a0dnUXhvaGhvZjk1ZUppa1RnK3BxeXRqVE45?= =?utf-8?B?Q1VFM3owR0pWV3NTY2NtYk5kQlZoNjh4YzlmTy9FRHlUSzlsVmY3WEVZVXgx?= =?utf-8?B?VktCL295UThHcDZOQzBrNnM0aVA3TXU0dW1nWWpaQ08zYlEyOEIzZzBnYnhX?= =?utf-8?B?NzlMNXlrcUtWWUNESkJBdzB3endBcGxQenpJUTM5ZWY0YzV0MkhPSXNZSFJu?= =?utf-8?B?eFAxeVMwbTNzaGFwbFI4blB5MGc1TVNsQ0NUcDB3d3BCU2FQMkRiUFVDMktw?= =?utf-8?B?UDdIalVNMWhnSmk3dGpYam5BRzVUMVlZeEN2WFpud2lUaW5OSUdQOXR3dlNj?= =?utf-8?B?ZzdWSElZckhUcVQxYk5MeWR6dHhwK3Q4QVh4cllndVE1aTg3V2ZnaHNYNE52?= =?utf-8?B?Mjd6QjQ3VGZyYngyM0U4aGNNS0djKy9CWXVIZWtWSGlLM0VUalpQNXl4YXlL?= =?utf-8?B?UEdZNDl0aFJYRC9pQUdXMTVTV092ZFVjK1RTZXFtb0lHdGdwQVFDSEE1Njc2?= =?utf-8?B?QkxVT1VRWWJScHV5dGx1RFFJbEdjb1lNam1nak10TStqZC81QStoWEZzVjZS?= =?utf-8?B?K2Q0RkREb0xGTytxTm81MnZwNkNOZjFkSjR6NHVJRVpTUnFVT1lHeW54ajMz?= =?utf-8?B?Tkt0Wi9Zakt3T1VjUjlzTlRBdm5TdVpscUhkb2g5ZnJEQW8vcTVCL0VtSUR5?= =?utf-8?B?VmtGNUQyQ2NTblJkVVFZMTJaS3pSOTBxUlQ2eFFxb25jRUtXUndLckdGMzBG?= =?utf-8?B?eDF2eVAyc0x4NFVmRGdUVVEwUkdNY094aXM2eXUwUk8ySW9IVjVtWWRhTlZj?= =?utf-8?B?ZjdBdFhsVE9RcjRnUnZTQ294dzVrU2FzZGY4SlpHamcrVUVWbnFZMVl4Kzg3?= =?utf-8?B?M0hYUHVBTDNqT3o2dUNVbHREM2EzWU9nSVZBRFM4N29UM3NjMVJ6YUhSMmdt?= =?utf-8?B?UEo4OHRFU0o4OVpvRW5oQ1phbVlnQ3BobHdjTjR0OVg4T3AwZ3BybzZpTEE0?= =?utf-8?B?UC9UdGp3cUhxbTFmOHR0ZXJzSW5kd3FzOTVQcVJQVHhEWHo2c2JSSGVDb0M4?= =?utf-8?B?SWczck54ck9pem1kQ0Y3RVRzQ3ZLeFJuVTZEUEMxZVJnSTJ4YjFETkNQK1d3?= =?utf-8?B?TlV2aGhOSFREQytFaDFVQSt0ZVhrVk8xUm1NQThBRUlmZzhPNlpHSGVxalFE?= =?utf-8?B?ektzeFdoS0xPcDR0SytXTlNtNnZNQzVWMDZqczVtWVQ2TStjSTJ6WVVnRGx2?= =?utf-8?B?MmZKR3Z1eUxwdkM1bGZrNTZKRmZtM1JhZWhhdVdiV3Rva29Zb0o1RHJGbzNq?= =?utf-8?B?TGtXSmgzZjcrUWROSU10YnpOWk5kVmtwUi9XNnVaNTJoUHk2L3hHZER2L0RX?= =?utf-8?B?d3p5cXZXTUhDbU43M0hyaUVCVkF2OFcxRm4yUFlQcWIxdXBWbkJwT0NYSHMv?= =?utf-8?B?VlJIeG0ydWVESlg0RWZmR2N1WnQ0Q0FBNVc1STkzcXgzWWpsaXZld0lUSldY?= =?utf-8?B?RHhod25neDNtbFRrbS9rYkFrK0w5L00rd3Bnc2tLdVU1aksyQ2VZWDlubUFy?= =?utf-8?B?cU01dnMzbW5GZzhmMlJzUUhldEFaZXp0U0RkZ2QzVDFGOEYxaXJKUGl1OUpw?= =?utf-8?B?clI0UzdpQjA5d3g5OTQ3RnMwMGk1dXNkeWJPRXZ5Q1RIdnR0em9jSSs0eURr?= =?utf-8?B?MlVINlJhWkpsbVFwTm44MnNPcmNGY2JIUWkrZjdCS0dXLzRFY0ZYTHg3N0R0?= =?utf-8?B?aXN5dWNRTWhpNFR2aGVxVGxMS3BNazBQZ1RibTVGa0Q1cUV2WmhmT3JpVm54?= =?utf-8?B?eXdTeWsvZVZXK1QrSm9OTlJHM2pJdE1zdHo2dHRxbDVkcVhNbHpwR3ZrUmpw?= =?utf-8?B?amlyY0toSjFJWXlqQjZMV1B2YVRteWFCUmtFRU1oNCs4Rmo4RXczanovbXBw?= =?utf-8?B?clJJblp0UVZkUHlhbFhoSzhQWEJVNFBtRXNGTTJuY0ZuVm1tSUFoSmxza09P?= =?utf-8?B?VFgzUUxhY1lWTDF4VkUyeksraTgzWjBmcWJpM3dVeTVGSVBKMHBJZ0Q1TUhy?= =?utf-8?B?QkJPayt1NVRWdm5MNlZ4Q0IrcUs2VFlpOGdQdHhjV0FUYk8xcWt6QmhxUmp6?= =?utf-8?B?cWFlQWlhNUl6cVFzVWZ4d2l0Ti9QQ016RHA3UXNxeVY1YlJWMTBRT296OVEx?= =?utf-8?B?Rkwwd05RMDRRQUdHb01hM2UxMG5EdUdNQlk1VnA0cmEzbVcyMFdXZlIvTTBF?= =?utf-8?Q?ZMB7wJfHC6BrbnjlKt?= Content-Type: multipart/alternative; boundary="_000_DM3PR11MB871367EDC1EBB06E9F0F58BBDA6E2DM3PR11MB8713namp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: GW6V3ZfxPqDniSZrw8+HR3gVysicXPHV77lR/nMy+y77DogI8DfXWu4Q21F4E9P+t8KYHJcSrmdd6W3V7ShgAXV5/8HCnWyxM4jmB8dSnH7TwbfW3h0W+JP7WKvBvt1OjyQfqrXMXaqYL+5DS+ume6Tu8IZcKL53wc5w8G2I7LIVNY29BhWF4veGU8Ir2V8sPu1Xz6ZB4WFAzpjaYgHOVCeNJd1HPw5+5Xnay0/TjotzhivdTD8mWVl4ZwP1T6XKbD96f5uzfqySjR+XHNue/4DHDVPpgw/9XJjPirxPjhFd5dzPFavRygcJxc/vrMsi81ZBHNY+qxl1jbhZL6Y3vA== X-OriginatorOrg: tamu.edu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8713.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49bf69cf-0522-4c0a-be8a-08df35de50d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2026 17:01:46.4955 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 68f381e3-46da-47b9-ba57-6f322b8f0da1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1iFckwbV1dfsA9Ws5QZMnm7QEph6m5Pg7acNKVg1MrN4BRvB8UsrIvZaZtJvQpBAM2LzWyvkJdqmsGf5YKrOPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF1170C8165 X-Authority-Analysis: v=2.4 cv=Za+IpcVA c=1 sm=1 tr=0 ts=6ae37c01 cx=c_pps a=4LksaTFCu4UF49iUfNHgJg==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=660iZSQnnn4A:10 a=x7bEGLp0ZPQA:10 a=fWIk7vUBimkA:10 a=VkNPw1HP01LnGYTKEx00:22 a=HuL5yKgYSaDc2Nh3iM7q:22 a=PpoWY9mOLvn6BEvM-Ecr:22 a=pNgXkJcRAAAA:8 a=20KFwNOVAAAA:8 a=0bC3xB-qhywaon-bCoUA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=B910RkmbNBtAme4EkkMA:9 a=2q4O/K3rjNU7EHYdBHB6dYyilSc=:19 a=qVTXNwQIZpB3IDMJ:21 a=frz4AuCg-hUA:10 a=_W_S_7VecoQA:10 a=tKe0A8swS_RTMQ4Dt1Wu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDI5MDA2NiBTYWx0ZWRfX1uiKW5WKDkho GkDS9LCBtaG7IXavH9BOSGAlybMigwtfJ5vNn7iHvK0hzn4kGW/hjte8O1lVPQmOcngzfiSOmxv fw7bP0wQUS44ev/tLq8xYfESJQNzMx2Xj6bPAuFvBSmJdH/iIGwcBj6705QGpnaSsRxN2y+DhgI BOAITYz0oqvbMCLDU/LyUKreY4MoaSJUK2c8kd0m0nmxpnJs5+qRsfQwJr8nSGJodwssno1xKnJ bctQezDVLOBT5+ppHKsZCwi/1vvJWWCxB0PK2t9MzemciDJZ+P23V+dvfRQ/NzCG+A3ZRCXR8s1 yAxaGtPRGLSzsJ9gj2fqAWHl5RH8YSctmJFn6OK3Z0HyOs1gnOU5VmlapTCrCQX2i46TkN7kcMp eneYsow6flzORMnUDv/ZlO9gewfxWRtu6xzbRkSDVyHlUtXpT6ymOF3UeV5HRrwAz2QxhcwhaPc BttqQ/6N8VSAumKHc9w== X-Proofpoint-GUID: 5UjWPd6mMTGkmMeM9oPCT_-mgPMNiETA X-Proofpoint-Spam-Info: AW1haW4tMjYxMDI5MDA2NiBTYWx0ZWRfX63pHLzzXiYFV VoPhcrG9AYkf+2iZL4CVWIqOlDdMB6zzZMXn8jat25MNGc94nR/kcLyHGL1t2XbJf5zLplizXPk jDIFF0oaxBn4yZ96OmXMt7npm9VfDEo= X-Proofpoint-ORIG-GUID: 5UjWPd6mMTGkmMeM9oPCT_-mgPMNiETA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-10-29_05,2026-10-21_02,2025-10-01_01 X-MailFrom: rlawrence@tamu.edu X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: WTVAJAJYEHLS6M4OUDVS7QOMRS67VLLK X-Message-ID-Hash: WTVAJAJYEHLS6M4OUDVS7QOMRS67VLLK X-Mailman-Approved-At: Thu, 29 Oct 2026 21:32:29 +0100 CC: "passt-dev@passt.top" X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --_000_DM3PR11MB871367EDC1EBB06E9F0F58BBDA6E2DM3PR11MB8713namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SG93ZHkgU3RlZmFubywNCg0KSSBoYWQgc2VudCBhbm90aGVyIG1lc3NhZ2UgdG8gdGhlIFBBVENI IHYyIHRocmVhZCwgYnV0IGl0IHNlZW1zIHlvdSBtaXNzZWQgaXQuIENvcHlpbmcgaW5saW5lIGJl bG93ICg+Pikgc28geW91IGRvbid0IGhhdmUgdG8gZ28gaHVudGluZyBmb3IgaXQuDQoNCiMjIFJl OiBsb25nIG9wdGlvbiBpbmRleC4NCj4+IEl0IHR1cm5zIG91dCB0aGUgbWluaW11bSBpbmRleCBm b3IgYSBsb25nIG9wdGlvbiBpcyAyLCBub3QgMS4gY29uZigpIGFscmVhZHkgY29ycmVjdGx5IGRv ZXMgaXQgdGhhdCB3YXkuDQoNCihjb250aW51ZWQuLi4pIEl0J3MgYmVjYXVzZSBsb25nIG9wdGlv biBpbmRleCAxIGlzIHJlc2VydmVkIGZvciBwb3NpdGlvbmFsIGFyZ3VtZW50cyBvciBzb21ldGhp bmcgbGlrZSB0aGF0IChmb3Jnb3QgdGhlIGRldGFpbHMpLg0KDQojIyBSZTogcmVsb2NhdGluZyBm ZF90YXAgY29uZGl0aW9uYWxseQ0KPj4gSSB0aGluayBJIG1pc3VuZGVyc3Rvb2QgeW91ciBxdWVz dGlvbiBhYm91dCB1bmNvbmRpdGlvbmFsbHkgcmVsb2NhdGluZyB0aGUgZmRfdGFwLg0KPj4gUGxl YXNlIGNsYXJpZnk6IGFyZSB5b3Ugc3VnZ2VzdGluZyB0aGF0IHdlIHNob3VsZCBza2lwIHJlbG9j YXRpbmcgZmRfdGFwIHdoZW4gd2UgYWxzbyBza2lwIGNsb3NpbmcgbGVha2VkIGZpbGUgZGVzY3Jp cHRvcnM/DQo+PiBUaGF0IGRlc2lnbiB3b3VsZCBub3QgY2F1c2UgYW55IG9mIHRoZSBidWdzIEkg aW1hZ2luZWQuIEZvciBleGFtcGxlLCBpdCB3b3VsZCBuZXZlciBhZmZlY3QgcGFzc3QgbW9kZSBi ZWNhdXNlIHNraXBwaW5nIGlzIGZvcmJpZGRlbiBpbiBwYXNzdCBtb2RlIGFueXdheXMuIElmIHRo ZSB1c2VyIGRvZXMgdGFwIHwgcGFzdGEgLS1mZCAwIC0tcGFzcy1mZHMgY21kIHRoZW4gdGhlIGZk X3RhcCBzdGF5cyBvbiBzdGRpbiwgc28gdGhlIHNwYXduZWQgY29tbWFuZCBnZXRzIGl0IG9uIHN0 ZGluOyB0aGF0IGlzIHRlY2huaWNhbGx5IGEgZmVhdHVyZSAoIi0tcGFzcy1mZHMgcHJlc2VydmVz IGZpbGUgZGVzY3JpcHRvcnMiKSwgYnV0IEkgc3RpbGwgdGhpbmsgaXQncyB2ZXJ5IHdlaXJkIGJl aGF2aW9yLg0KDQooY29udGludWVkLi4uKSBCdXQsIGdpdmVuIHlvdXIgbW9yZSByZWNlbnQgY29t bWVudHMsIEkgdGhpbmsgSSBhbSBzdGlsbCBtaXN1bmRlcnN0YW5kaW5nIHlvdXIgcXVlc3Rpb24g YWJvdXQgdW5jb25kaXRpb25hbGx5IHJlbG9jYXRpbmcgZmRfdGFwLiBTbyBJIG5lZWQgdG8gYXNr IGEgZGlmZmVyZW50IHF1ZXN0aW9uIGluc3RlYWQuDQpQbGVhc2UgY2xhcmlmeTogaXMgaXQgZXZl ciBPSyB0byBsZWF2ZSB0aGUgZmRfdGFwIG9uIDA/IElmIHdlIGNhbiBsZWF2ZSBmZF90YXAgb24g MCBpbiBwYXN0YSBtb2RlIHdpdGggcGFzcy1mZHMsIHRoZW4gdGhhdCBncmVhdGx5IHNpbXBpZmll cyB0aGUgbG9naWMuDQoNCiMjIFJlOiBkdXAyIHZzIGZjbnRsDQoNClBsZWFzZSBhbGxvdyBtZSB0 byBjbGFyaWZ5OiB0aGUgcmVhc29uIEkgc3dpdGNoZWQgZnJvbSBkdXAyIHRvIGZjbnRsIGlzIGJl Y2F1c2UgSSBpbWFnaW5lZCBhIHNjZW5hcmlvIHdoZXJlIHRoZSB1c2VyIHdhbnRzIHRvIGJvdGg6 DQoNCiAgMS4NCnBhc3MgdGhlIHRhcCBmZCB0byBwYXN0YSBvbiAwLCBhbmQgYWxzbw0KICAyLg0K cGFzcyBzb21ldGhpbmcgZWxzZSB0aHJvdWdoIHRvIGJ3cmFwIG9uIDMuIEZvciBleGFtcGxlOg0K DQpgYGANCmV4ZWMgMzw8PCJIZWxsbyBmcm9tIEZEIDMiICYmIHRhcCB8IHBhc3RhIC0tZmQgMCAt LXBhc3MtZmRzIGJ3cmFwIC0tYmluZC1mZCAzIC9oZWxsbyBiYXNoIC1jICdjYXQgL2hlbGxvIHwg c2VuZC1pdC10by10aGUtaW50ZXJuZXQtb3Itc29tZXRoaW5nLWlkaycNCmBgYA0KSW4gdGhhdCBz Y2VuYXJpbywgdXNpbmcgZHVwMiBpcyBhIG1ham9yIHByb2JsZW0uIEl0IGNsb3NlcyB0aGUgZXhp c3RpbmcgRkQgMyBhbmQgcHV0cyB0aGUgdGFwIHRoZXJlIGluc3RlYWQhIFNvIHRoZSB1c2VyIGlz IG5vdyBhY2NpZGVudGFsbHkgc2VuZGluZyB0aGUgdGFwIHRvIHRoZSBpbnRlcm5ldCBpbnN0ZWFk IG9mIHRoZSBkYXRhIHRoZXkgaW50ZW5kZWQgdG8gcGFzcyBvbiAzLg0KDQpPbmUgcG9zc2libGUg c29sdXRpb24gaXMgdG8gbGVhdmUgdGhlIHRhcCBvbiAwIGluc3RlYWQuDQoocHJldmlvdXNseS4u LikNCj4+IElmIHlvdSBkbyBpbnNpc3QgdGhhdCB0aGlzIHdlaXJkIGJlaGF2aW9yIGlzIGluIGZh Y3QgdGhlIGNvcnJlY3QgYmVoYXZpb3IsIHRoZW4gd2UgY2FuIGRlbW90ZSB0aGUgZmNudGwgY2Fs bCBiYWNrIHRvIHBsYWluIGR1cDIgd2l0aCBhIGNvbW1lbnQgdGhhdCBleHBsYWlucyBpdCBpcyBz YWZlIHRvIGNsb3NlIGFuZCByZXVzZSBmZCAzIHNpbmNlIHRoZSB1c2VyIGRpZCBub3QgcmVxdWVz dCB0byBwYXNzLWZkcy4gVGhpcyBjb21tZW50IGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50IGEgZnV0 dXJlIGJ1ZyBpZiBzb21lb25lIHJlZmFjdG9ycyB0aGUgY29kZSBjYXJlbGVzc2x5IChkdXAyIGNs b3NlcyBmZCAzIHdoZW4gdXNlciB3YW50cyB0byBwYXNzIGZkIDMpLiBQbGVhc2UgbGV0IG1lIGtu b3cgaWYgdGhhdCBjaGFuZ2UgaXMgc3RpbGwgd2hhdCB5b3Ugd2FudC4NCg0KSSBjYWxsIHRoaXMg dGhlICJ1bnNhZmUiIG9wdGlvbi4gSSBjYW4gaW1hZ2luZSB0aGF0IGxlYXZpbmcgdGhlIHRhcCBv biAwIGNvdWxkIGNhdXNlIGJ1Z3MsIGFuZCBJIGltYWdpbmUgdGhhdCBsZWF2aW5nIGR1cDIgaW4g dGhlIGNvZGUgY291bGQgcmUtaW50cm9kdWNlIHRoZSBjbG9iYmVyaW5nIGJ1ZyBhdCBhIGxhdGVy IHRpbWUuDQoNCiMjIE5ldyBQcm9wb3NhbA0KDQpJIHByb3Bvc2UgdG8gYWx3YXlzIHJlbG9jYXRl IHRoZSB0YXAgYWJvdmUgMiwgdG8gYXZvaWQgYnVncywgYnV0IHRoZSBzeXN0ZW0gY2FsbCB3ZSB1 c2UgY2FuIGJlIGNvbmRpdGlvbmFsOg0KDQogICoNCmR1cDIgd2hlbiB3ZSdyZSBjbG9zaW5nIGZk cyAoYmVjYXVzZSBpdCdzIHRoZSBlYXNpZXN0KSBhbmQNCiAgKg0KZmNudGwgd2hlbiB3ZSdyZSBs ZWF2aW5nIHRoZW0gb3BlbiAoYmVjYXVzZSBpdCdzIHRoZSBzYWZlc3QpDQoNCnRoYXQgc2VlbXMg bGlrZSB0aGUgYmVzdCBvZiBib3RoIHdvcmxkcy4NCg0KIyMgUmU6ICBzdHlsZSBjaGFuZ2VzDQoN CkkgYWdyZWUgd2l0aCB5b3VyIHN1Z2dlc3RlZCBzdHlsZSBjaGFuZ2VzLg0KDQpSaWNoYXJkIExh d3JlbmNlDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBTdGVmYW5v IEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPg0KU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDI4 LCAyMDI2IDU6MzggUE0NClRvOiBMYXdyZW5jZSwgUmljaGFyZCBFIDxybGF3cmVuY2VAdGFtdS5l ZHU+DQpDYzogcGFzc3QtZGV2QHBhc3N0LnRvcCA8cGFzc3QtZGV2QHBhc3N0LnRvcD4NClN1Ympl Y3Q6IFJlOiBbUEFUQ0ggdjNdIHBhc3RhOiBBZGQgLS1wYXNzLWZkcyBvcHRpb24gdG8gc2tpcCBj bG9zaW5nIGZpbGUgZGVzY3JpcHRvcnMNCg0KT24gTW9uLCAyNiBPY3QgMjAyNiAxMjrigIowMzri gIo0NSAtMDUwMCBSaWNoYXJkIExhd3JlbmNlIDxybGF3cmVuY2VA4oCKdGFtdS7igIplZHU+IHdy b3RlOiA+IFdoZW4gcGFzdGEgc3Bhd25zIGEgY29tbWFuZCAoYHBhc3RhIFtvcHRpb25zXSAtLSBb Y29tbWFuZF1gKSwgYWxsIG9wZW4gZmlsZSA+IGRlc2NyaXB0b3JzIGluaGVyaXRlZCBmcm9tIHRo ZSBwYXJlbnQgcHJvY2VzcyBleGNlcHQgc3RhbmRhcmQgc3RyZWFtcw0KWmpRY21RUllGcGZwdEJh bm5lclN0YXJ0DQpUaGlzIE1lc3NhZ2UgSXMgRnJvbSBhbiBFeHRlcm5hbCBTZW5kZXINClRoaXMg bWVzc2FnZSBjYW1lIGZyb20gb3V0c2lkZSB5b3VyIG9yZ2FuaXphdGlvbi4NCg0KWmpRY21RUllG cGZwdEJhbm5lckVuZA0KDQpPbiBNb24sIDI2IE9jdCAyMDI2IDEyOjAzOjQ1IC0wNTAwDQpSaWNo YXJkIExhd3JlbmNlIDxybGF3cmVuY2VAdGFtdS5lZHU+IHdyb3RlOg0KDQo+IFdoZW4gcGFzdGEg c3Bhd25zIGEgY29tbWFuZCAoYHBhc3RhIFtvcHRpb25zXSAtLSBbY29tbWFuZF1gKSwgYWxsIG9w ZW4gZmlsZQ0KPiBkZXNjcmlwdG9ycyBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IHByb2Nlc3Mg ZXhjZXB0IHN0YW5kYXJkIHN0cmVhbXMgKDAtMikNCj4gYW5kIHRoZSB0YXAgZGVzY3JpcHRvciAo YC0tZmRgKSBhcmUgbm9ybWFsbHkgY2xvc2VkIGJ5IGBpc29sYXRlX2ZkcygpYC4NCj4NCj4gSG93 ZXZlciwgd2hlbiBwYXN0YSBpcyB1c2VkIGZvciB0ZXN0aW5nLCBkZXZlbG9wbWVudCwgb3IgbGF1 bmNoaW5nIHRvb2xzIGxpa2UNCj4gQnViYmxld3JhcCAoYGJ3cmFwYCksIHRoZSBzcGF3bmVkIGNv bW1hbmQgbWF5IHJlcXVpcmUgZmlsZSBkZXNjcmlwdG9ycw0KPiBwYXNzZWQgZGlyZWN0bHkgZnJv bSB0aGUgcGFyZW50IHByb2Nlc3MuIEluIHRoaXMgY2FzZSwgY2xvc2luZyBpbmhlcml0ZWQgZmls ZQ0KPiBkZXNjcmlwdG9ycyBicmVha3MgZXhwZWN0ZWQgYmVoYXZpb3IuDQo+DQo+IEFkZCBhIGJv b2xlYW4gYC0tcGFzcy1mZHNgIGZsYWcgZm9yIHBhc3RhIG1vZGUgdGhhdCBza2lwcyB0aGUgYGNs b3NlX3JhbmdlKClgDQo+IGNsZWFudXAgc3RlcCBpbiBgaXNvbGF0ZV9mZHMoKWAsIGxlYXZpbmcg YWxsIG9wZW4gZmlsZSBkZXNjcmlwdG9ycyBpbnRhY3QNCj4gZm9yIHRoZSBjaGlsZCBjb21tYW5k Lg0KPg0KPiBTdW1tYXJ5IG9mIGNoYW5nZXM6DQo+DQo+IC0gVXBkYXRlIGBjb25mX3RhcF9mZCgp YCB0byBgY29uZl9mZHMoKWAsIGFsbG93aW5nIGVhcmx5IHBhcnNpbmcgb2YgYm90aA0KPiAgIGAt RmAvYC0tZmRgIGFuZCBgLS1wYXNzLWZkc2AgYmVmb3JlIG1haW4gb3B0aW9uIHByb2Nlc3Npbmcu DQo+IC0gVXBkYXRlIGBpc29sYXRlX2ZkcygpYCB0byBjaGVjayBgYy0+cGFzdGFfcGFzc19mZHNg OiBpZiBzZXQsIHNraXAgY2FsbGluZw0KPiAgIGBjbG9zZV9yYW5nZSgpYCB3aGlsZSBzdGlsbCBy ZWxvY2F0aW5nIHRoZSB0YXAgZmQgb3V0IG9mIHN0YW5kYXJkIHN0cmVhbQ0KPiAgIHJhbmdlICgw LTIpIGlmIG5lZWRlZC4NCj4gLSBFbmZvcmNlIHZhbGlkYXRpb24gaW4gYGNvbmYoKWAgZW5zdXJp bmcgYC0tcGFzcy1mZHNgIGlzIHJlc3RyaWN0ZWQgdG8gcGFzdGENCj4gICBtb2RlIHdoZW4gc3Bh d25pbmcgYSBjb21tYW5kIChpbmNvbXBhdGlibGUgd2l0aCBhdHRhY2hpbmcgdG8gYW4NCj4gICBl eGlzdGluZyBuZXRucykuDQo+IC0gVXBkYXRlIG1hbiBwYWdlIGFuZCB1c2FnZSBoZWxwIG91dHB1 dC4NCj4NCj4gTGluazogaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vYnVncy5w YXNzdC50b3Avc2hvd19idWcuY2dpP2lkPTIwNF9fOyEhS3dOVm5xUnYhRVRvZFFvaVpLWGZxcC1W ajd5ZktLTGtta1ZxUGU4emdiZzlrc1VuVmNqdnhWRDhZWHlQZmRsZHRKd1hGbVRBU2MwZGI2MEgz Zkl5ZTZySzUkDQo+IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgTGF3cmVuY2UgPHJsYXdyZW5jZUB0 YW11LmVkdT4NCj4gLS0tDQo+ICBjb25mLmMgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0NCj4gIGNvbmYuaCAgICAgIHwgIDIgKy0NCj4gIGlzb2xhdGlv bi5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gIGlzb2xhdGlvbi5oIHwgIDIgKy0NCj4gIHBhc3N0LjEgICAgIHwgIDUgKysrKw0K PiAgcGFzc3QuYyAgICAgfCAgMiArLQ0KPiAgcGFzc3QuaCAgICAgfCAgMiArKw0KPiAgNyBmaWxl cyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAt LWdpdCBhL2NvbmYuYyBiL2NvbmYuYw0KPiBpbmRleCAxNDlhNGM3Li4zMGVkZWY5IDEwMDY0NA0K PiAtLS0gYS9jb25mLmMNCj4gKysrIGIvY29uZi5jDQo+IEBAIC03NTAsNyArNzUwLDggQEAgcGFz dGFfb3B0czoNCj4gICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICBEb24ndCBj b3B5IGFsbCBhZGRyZXNzZXMgdG8gbmFtZXNwYWNlXG4iDQo+ICAgICAgICAgICAgICAgIiAgLS1u cy1tYWMtYWRkciBBRERSICAgU2V0IE1BQyBhZGRyZXNzIG9uIHRhcCBpbnRlcmZhY2VcbiINCj4g ICAgICAgICAgICAgICAiICAtLW5vLXNwbGljZSAgICAgICAgICBEaXNhYmxlIGluYm91bmQgc29j a2V0IHNwbGljaW5nXG4iDQo+IC0gICAgICAgICAgICAgIiAgLS1zcGxpY2Utb25seSAgICAgICAg T25seSBlbmFibGUgbG9vcGJhY2sgZm9yd2FyZGluZ1xuIik7DQo+ICsgICAgICAgICAgICAgIiAg LS1zcGxpY2Utb25seSAgICAgICAgT25seSBlbmFibGUgbG9vcGJhY2sgZm9yd2FyZGluZ1xuIg0K PiArICAgICAgICAgICAgICIgIC0tcGFzcy1mZHMgICAgICAgICAgIFByZXNlcnZlIG9wZW4gZmls ZSBkZXNjcmlwdG9yc1xuIik7DQo+DQo+ICAgICAgIHBhc3N0X2V4aXQoc3RhdHVzKTsNCj4gIH0N Cj4gQEAgLTExMzcsMzUgKzExMzgsNDEgQEAgc3RhdGljIHZvaWQgY29uZl9zb2NrX2xpc3Rlbihj b25zdCBzdHJ1Y3QgY3R4ICpjKQ0KPiAgfQ0KPg0KPiAgLyoqDQo+IC0gKiBjb25mX3RhcF9mZCgp IC0gUmVhZCB0YXAgZmQgYXMgc3VwcGxpZWQgYnkgLUYgY29tbWFuZCBsaW5lIG9wdGlvbg0KPiAr ICogY29uZl9mZHMoKSAtIFJlYWQgZmRzIGFzIHN1cHBsaWVkIGJ5IC1GLy0tZmQgYW5kIC0tcGFz cy1mZHMgb3B0aW9ucw0KPiArICogQGM6ICAgICAgICAgICAgICAgRXhlY3V0aW9uIGNvbnRleHQN Cj4gICAqIEBhcmdjOiAgICBBcmd1bWVudCBjb3VudA0KPiAgICogQGFyZ3Y6ICAgIENvbW1hbmQg bGluZSBvcHRpb25zDQo+ICAgKg0KPiAtICogUmV0dXJuOiBmZCBudW1iZXIgZnJvbSAtLWZkIG9w dGlvbiwgb3IgLTEgaWYgbm90IHN1cHBsaWVkDQo+ICsgKiBTaG91bGQ6DQo+ICsgKiAgLSBTZXQg dGhlIGZkX3RhcCBhbmQgcGFzdGFfcGFzc19mZHMgdmFsdWVzIGluIHRoZSBleGVjdXRpb24gY29u dGV4dA0KDQpUaG9zZSAiU2hvdWxkOiIgY29tbWVudHMgYXJlIHNvbWV0aGluZyBzcGVjaWZpYyBp biBpc29sYXRpb24uYyB3aGVyZSB3ZQ0KaGF2ZSBjbGVhcmx5IGRlZmluZWQgc3Vic2VxdWVudCBz dGVwcy4gIEhlcmUgaXQgZG9lc24ndCBtYWtlIGEgbG90IG9mDQpzZW5zZSwgdGhlIGNvbW1lbnQg YXMgeW91IGNoYW5nZWQgaXQgYWJvdmUgKCJSZWFkIGZkcy4uLiIpIGFscmVhZHkNCm1ha2VzIHRo aXMgdmVyeSBjbGVhci4gIE1vcmUgY29tbWVudHMgbWVhbnMgbW9yZSB0byByZWFkLCBzbyB0aGV5 DQpzaG91bGQgYmUgd29ydGggaXQuDQoNCj4gICAqLw0KPiAtaW50IGNvbmZfdGFwX2ZkKGludCBh cmdjLCBjaGFyICoqYXJndikNCj4gK3ZvaWQgY29uZl9mZHMoc3RydWN0IGN0eCAqYywgaW50IGFy Z2MsIGNoYXIgKiphcmd2KQ0KPiAgew0KPiAtICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uIG9wdGZk W10gPSB7IHsgImZkIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdGJyB9LA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgMCB9LCB9Ow0KPiAtICAgICBjb25zdCBj aGFyICpmZGFyZyA9IE5VTEwsICpwOw0KPiAtICAgICB1bnNpZ25lZCBsb25nIHZhbDsNCj4gKyAg ICAgY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRbXSA9IHsNCj4gKyAgICAgICAgICAgICB7ICJmZCIs ICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRicgfSwNCj4gKyAgICAgICAgICAgICB7 ICJwYXNzLWZkcyIsIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAyIH0sDQoNCkhhcm1sZXNzLCBi dXQgc3RpbGwgbWlsZGx5IGNvbmZ1c2luZzogd2h5IDIgaW5zdGVhZCBvZiAxPw0KDQo+ICsgICAg ICAgICAgICAgeyAwIH0sDQo+ICsgICAgIH07DQo+ICAgICAgIGludCBuYW1lOw0KPg0KPiArICAg ICBjLT5mZF90YXAgPSAtMTsNCj4gKyAgICAgYy0+cGFzdGFfcGFzc19mZHMgPSBmYWxzZTsNCj4g ICAgICAgb3B0aW5kID0gMDsNCj4gICAgICAgZG8gew0KPiAtICAgICAgICAgICAgIG5hbWUgPSBn ZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiLTpGOiIsIG9wdGZkLCBOVUxMKTsNCj4gLSAgICAgICAg ICAgICBpZiAobmFtZSA9PSAnRicpDQo+IC0gICAgICAgICAgICAgICAgICAgICBmZGFyZyA9IG9w dGFyZzsNCj4gLSAgICAgfSB3aGlsZSAobmFtZSAhPSAtMSk7DQo+IC0NCj4gLSAgICAgaWYgKCFm ZGFyZykNCj4gLSAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ICsgICAgICAgICAgICAgbmFtZSA9 IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICItOkY6Iiwgb3B0LCBOVUxMKTsNCj4gKyAgICAgICAg ICAgICBpZiAobmFtZSA9PSAnRicpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKnAgPSBvcHRhcmc7DQo+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZh bDsNCj4NCj4gLSAgICAgcCA9IGZkYXJnOw0KPiAtICAgICBpZiAoIXBhcnNlX3Vuc2lnbmVkKCZw LCAwLCAmdmFsKSB8fCAhcGFyc2VfZW9pKHApIHx8IHZhbCA+IElOVF9NQVgpDQo+IC0gICAgICAg ICAgICAgZGllKCJJbnZhbGlkIC0tZmQ6ICVzIiwgZmRhcmcpOw0KPiArICAgICAgICAgICAgICAg ICAgICAgaWYgKCFwYXJzZV91bnNpZ25lZCgmcCwgMCwgJnZhbCkgfHwgIXBhcnNlX2VvaShwKSB8 fA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA+IElOVF9NQVgpDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCAtLWZkOiAlcyIsIG9wdGFyZyk7DQo+ DQo+IC0gICAgIHJldHVybiB2YWw7DQo+ICsgICAgICAgICAgICAgICAgICAgICBjLT5mZF90YXAg PSAoaW50KXZhbDsgLyogTWF5IGJlIG92ZXJ3cml0dGVuIGluIGlzb2xhdGVfZmQoKSAqLw0KDQpO b3QganVzdCBpbiBpc29sYXRlX2ZkcygpLiAgU2FtZSBjb25zaWRlcmF0aW9uIGhlcmU6IHRoaXMg Y29tbWVudA0KZG9lc24ndCByZWFsbHkgYWRkIG11Y2gsIHNvIEknZCByYXRoZXIgZHJvcCBpdC4N Cg0KPiArICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAyKSB7DQo+ICsgICAgICAgICAg ICAgICAgICAgICBjLT5wYXN0YV9wYXNzX2ZkcyA9IHRydWU7DQo+ICsgICAgICAgICAgICAgfQ0K PiArICAgICB9IHdoaWxlIChuYW1lICE9IC0xKTsNCj4gIH0NCj4NCj4gIC8qKg0KPiBAQCAtMTMx Nyw2ICsxMzI0LDcgQEAgdm9pZCBjb25mKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoq YXJndikNCj4gICAgICAgICAgICAgICB7ImNvbmYtcGF0aCIsICAgcmVxdWlyZWRfYXJndW1lbnQs ICAgICAgTlVMTCwgICAgICAgICAgICdjJyB9LA0KPiAgICAgICAgICAgICAgIHsiY2hyb290LWZh bGxiYWNrIiwgbm9fYXJndW1lbnQsICAgICAgICBOVUxMLCAgICAgICAgICAgMzIgfSwNCj4gICAg ICAgICAgICAgICB7Im5vLXBpZG5zIiwgICAgbm9fYXJndW1lbnQsICAgICAgICAgICAgTlVMTCwg ICAgICAgICAgIDMzIH0sDQo+ICsgICAgICAgICAgICAgeyJwYXNzLWZkcyIsICAgIHJlcXVpcmVk X2FyZ3VtZW50LCAgICAgIE5VTEwsICAgICAgICAgICAzNCB9LA0KPiAgICAgICAgICAgICAgIHsg MCB9LA0KPiAgICAgICB9Ow0KPiAgICAgICBjb25zdCBjaGFyICpvcHRzdHJpbmcgPSAiK2RxZmVs OmhzOmM6RjpJOnA6UDptOmE6bjpNOmc6aTpvOkQ6UzpIOjQ2MXQ6dTpUOlU6IjsNCj4gQEAgLTE1 NjcsNiArMTU3NSwxMSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQ0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgYy0+bm9fcGlkbnMgPSB0cnVlOw0K PiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICAgY2FzZSAzNDoN Cj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIC0tcGFzcy1mZHMgd2FzIHBhcnNlZCBlYXJseSAq Lw0KPiArICAgICAgICAgICAgICAgICAgICAgaWYgKGMtPm1vZGUgIT0gTU9ERV9QQVNUQSkNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllKCItLXBhc3MtZmRzIGlzIGZvciBwYXN0 YSBtb2RlIG9ubHkiKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAg ICAgICAgIGNhc2UgJ2QnOg0KPiAgICAgICAgICAgICAgICAgICAgICAgYy0+ZGVidWcgPSAxOw0K PiAgICAgICAgICAgICAgICAgICAgICAgYy0+cXVpZXQgPSAwOw0KPiBAQCAtMTYwMyw3ICsxNjE2 LDcgQEAgdm9pZCBjb25mKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndikNCj4g ICAgICAgICAgICAgICAgICAgICAgIGMtPmZkX2NvbnRyb2xfbGlzdGVuID0gYy0+ZmRfY29udHJv bCA9IC0xOw0KPiAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgICAgICAg Y2FzZSAnRic6DQo+IC0gICAgICAgICAgICAgICAgICAgICAvKiAtLWZkIHdhcyBwYXJzZWQgZWFy bHkgYW5kIGMtPmZkX3RhcCBzZXQgaW4gbWFpbigpICovDQo+ICsgICAgICAgICAgICAgICAgICAg ICAvKiAtLWZkIHdhcyBwYXJzZWQgZWFybHkgKi8NCj4gICAgICAgICAgICAgICAgICAgICAgIGMt Pm9uZV9vZmYgPSB0cnVlOw0KPiAgICAgICAgICAgICAgICAgICAgICAgKmMtPnNvY2tfcGF0aCA9 IDA7DQo+ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gQEAgLTE5MjksNiArMTk0Miw5 IEBAIHZvaWQgY29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAg ICAgIGVsc2UgaWYgKG9wdGluZCAhPSBhcmdjKQ0KPiAgICAgICAgICAgICAgIGRpZSgiRXh0cmEg bm9uLW9wdGlvbiBhcmd1bWVudDogJXMiLCBhcmd2W29wdGluZF0pOw0KPg0KPiArICAgICBpZiAo Yy0+cGFzdGFfcGFzc19mZHMgJiYgKm5ldG5zKQ0KPiArICAgICAgICAgICAgIGRpZSgiLS1wYXNz LWZkcyBjYW4gb25seSBiZSB1c2VkIHdoZW4gc3Bhd25pbmcgYSBjb21tYW5kIik7DQo+ICsNCj4g ICAgICAgaWYgKGMtPm5vX3BpZG5zICYmICpuZXRucykNCj4gICAgICAgICAgICAgICBkaWUoIi0t bm8tcGlkbnMgaXMgaW5jb21wYXRpYmxlIHdpdGggUElEIG9yIC0tbmV0bnMiKTsNCj4NCj4gZGlm ZiAtLWdpdCBhL2NvbmYuaCBiL2NvbmYuaA0KPiBpbmRleCAxOWJmOWJjLi42NTRmZDE2IDEwMDY0 NA0KPiAtLS0gYS9jb25mLmgNCj4gKysrIGIvY29uZi5oDQo+IEBAIC03LDcgKzcsNyBAQA0KPiAg I2RlZmluZSBDT05GX0gNCj4NCj4gIGVudW0gcGFzc3RfbW9kZXMgY29uZl9tb2RlKGludCBhcmdj LCBjaGFyICphcmd2W10pOw0KPiAtaW50IGNvbmZfdGFwX2ZkKGludCBhcmdjLCBjaGFyICoqYXJn dik7DQo+ICt2b2lkIGNvbmZfZmRzKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJn dik7DQo+ICB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsN Cj4gIHZvaWQgY29uZl9saXN0ZW5faGFuZGxlcihzdHJ1Y3QgY3R4ICpjLCB1aW50MzJfdCBldmVu dHMpOw0KPiAgdm9pZCBjb25mX2hhbmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3QgZXZlbnRz KTsNCj4gZGlmZiAtLWdpdCBhL2lzb2xhdGlvbi5jIGIvaXNvbGF0aW9uLmMNCj4gaW5kZXggYTAw NDc1Zi4uNzY2YzI5NyAxMDA2NDQNCj4gLS0tIGEvaXNvbGF0aW9uLmMNCj4gKysrIGIvaXNvbGF0 aW9uLmMNCj4gQEAgLTI1MCw0NiArMjUwLDYzIEBAIHZvaWQgaXNvbGF0ZV9pbml0aWFsKHZvaWQp DQo+ICB9DQo+DQo+ICAvKg0KPiAtICogaXNvbGF0ZV9mZHMoKSAtIENsb3NlIGxlYWtlZCBmaWxl cywgYnV0IG5vdCAtLWZkLCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnINCj4gKyAqIGlzb2xhdGVfZmRz KCkgLSBDbG9zZSBsZWFrZWQgZmlsZXMgaWYgYXBwbGljYWJsZQ0KPiArICogQGM6ICAgICAgICAg ICAgICAgRXhlY3V0aW9uIGNvbnRleHQNCj4gICAqIEBhcmdjOiAgICBBcmd1bWVudCBjb3VudA0K PiAtICogQGFyZ3Y6ICAgIENvbW1hbmQgbGluZSBvcHRpb25zLCBhcyB3ZSBuZWVkIHRvIHNraXAg YW55IGZpbGUgZ2l2ZW4gdmlhIC0tZmQNCj4gKyAqIEBhcmd2OiAgICBDb21tYW5kIGxpbmUgb3B0 aW9ucw0KPiAgICoNCj4gICAqIFNob3VsZDoNCj4gLSAqICAtIGNsb3NlIGFsbCBvcGVuIGZpbGVz IGV4Y2VwdCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBhbmQgdGhlIG9uZSBmcm9tIC0tZmQNCj4gKyAq ICAtIGNsb3NlIGFsbCBvcGVuIGZpbGVzIGV4Y2VwdCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBhbmQg dGhlIG9uZSBmcm9tIC0tZmQsDQo+ICsgICAgICB1bmxlc3MgLS1wYXNzLWZkcyBpcyB1c2VkLCBp biB3aGljaCBjYXNlIGFsbCBmZHMgYXJlIHByZXNlcnZlZA0KPiAgICogIC0gbW92ZSB0aGUgLS1m ZCBkZXNjcmlwdG9yIG91dCBvZiB0aGUgcmFuZ2UgMC0yDQo+IC0gKg0KPiAtICogUmV0dXJuOiBu ZXcgZmQgbnVtYmVyIGZvciBkZXNjcmlwdG9yIGZyb20gLS1mZCwgb3IgLTEgaWYgbm90IHNwZWNp ZmllZA0KPiArICogIC0gdXBkYXRlIHRoZSBleGVjdXRpb24gY29udGV4dA0KPiAgICovDQo+IC1p bnQgaXNvbGF0ZV9mZHMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiArdm9pZCBpc29sYXRlX2Zk cyhzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICB7DQo+IC0gICAgIGlu dCBmZCwgY2xvc2VfZnJvbSA9IFNUREVSUl9GSUxFTk8gKyAxOw0KPiArICAgICBjb25mX2Zkcyhj LCBhcmdjLCBhcmd2KTsNCj4NCj4gLSAgICAgZmQgPSBjb25mX3RhcF9mZChhcmdjLCBhcmd2KTsN Cj4gKyAgICAgaWYgKGMtPmZkX3RhcCA+PSAwICYmIGMtPmZkX3RhcCA8IFNUREVSUl9GSUxFTk8g KyAxKSB7DQoNClNUREVSUl9GSUxFTk8gKyAxIHVzZWQgdG8gYmUgJ2Nsb3NlX2Zyb20nIGJ1dCBu b3cgeW91J3JlIGRyb3BwaW5nIHRoYXQNCnZhcmlhYmxlIGZvciBzb21lIHJlYXNvbiBJIGRpZG4n dCB1bmRlcnN0YW5kLiAgSG93ZXZlciwgdGhpcyBjaGFuZ2VzDQp0aGUgYmVoYXZpb3VyIChpbiBh IHdheSB0aGF0J3MgcmF0aGVyIHVuZXhwZWN0ZWQgYXMgaXQncyBub3QgbWVudGlvbmVkDQppbiB0 aGUgY29tbWl0IG1lc3NhZ2UpOiBpbnN0ZWFkIG9mIG1vdmluZyB0aGUgLS1mZCBkZXNjcmlwdG9y DQp1bmNvbmRpdGlvbmFsbHksIGl0J3Mgb25seSBkb25lIGlmIHRoZSBkZXNjcmlwdG9yIG51bWJl ciBpcyBsZXNzIHRoYW4gMy4NCg0KSXMgdGhpcyBhZGRpdGlvbmFsIGNvbmRpdGlvbiBuZWVkZWQg Zm9yIEJ1YmJsZXdyYXAgdXNhZ2U/IElmIGl0IGlzOg0KDQotIHlvdSBjb3VsZCBrZWVwIHRoZSBz aW1wbGlmaWNhdGlvbiBtYWRlIHBvc3NpYmxlIGJ5IGNvbW1pdCBmZDViMDgwN2Y1ZDANCiAgKCJp c29sYXRpb246IE1vdmUgLS1mZCBkZXNjcmlwdG9yIHRvIGEgbnVtYmVyIG9mIG91ciBjaG9vc2lu ZyIpIGluIHRoZQ0KICBnZW5lcmFsIGNhc2UsIHRoYXQgaXMsIG1vdmUgaXQgdW5jb25kaXRpb25h bGx5IHRvIDMsIHNvIHRoYXQNCiAgY2xvc2VfcmFuZ2UoKSBpcyBzaW1wbGUNCg0KLSBvbiAtLXBh c3MtZmRzLCB5b3UgZG9uJ3QgbmVlZCB0byBjYWxsIGNsb3NlX3JhbmdlKCksIHNvIHRoYXQNCiAg c2ltcGxpZmljYXRpb24gaXMgbm90IG5lZWRlZCwgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0byBtb3Zl IHRoZSBmaWxlDQogIGRlc2NyaXB0b3IgdG8gMyBpZiBpdCdzIGFscmVhZHkgPT4gMw0KDQpTbyB0 aGlzIGNvdWxkIHNpbXBseSBiZToNCg0KICAgICAgICAvKiBNb3ZlIHRoZSBwYXNzZWQgZmQgdG8g YSBtb3JlIGNvbnZlbmllbnQgbG9jYXRpb24gKDMpOg0KICAgICAgICAgKiAtIG9uIC0tcGFzcy1m ZHMsIG9ubHkgaWYgaXQgbWlnaHQgY29uZmxpY3Qgd2l0aCBzdGFuZGFyZCBzdHJlYW1zDQogICAg ICAgICAqIC0gb3RoZXJ3aXNlLCB1bmNvbmRpdGlvbmFsbHksIHRvIGtlZXAgY2xvc2VfcmFuZ2Uo KSBiZWxvdyBzaW1wbGUNCiAgICAgICAgICovDQogICAgICAgIGlmIChjLT5mZF90YXAgPj0gMCAm JiAoIWMtPnBhc3NfZmRzIHx8IGMtPmZkX3RhcCA8IGNsb3NlX2Zyb20pKSB7DQoNCi4uLmFuZCBh bGwgdGhlIHJlc3Qgd291bGQgcmVtYWluIGFzIGlzIChleGNlcHQgdGhhdCAnZmQnIGJlY29tZXMN CidjLT5mZF90YXAnKSwgdW50aWw6DQoNCj4gKyAgICAgICAgICAgICAvKiBNb3ZlIHRoZSB0YXAg ZmQgdG8gYSBzYWZlciBsb2NhdGlvbiAqLw0KPiArICAgICAgICAgICAgIGludCBuZXdfZmQgPSBm Y250bChjLT5mZF90YXAsIEZfRFVQRkQsIFNUREVSUl9GSUxFTk8gKyAxKTsNCj4NCj4gLSAgICAg aWYgKGZkID49IDApIHsNCj4gLSAgICAgICAgICAgICAvKiBNb3ZlIHRoZSBwYXNzZWQgZmQgdG8g YSBtb3JlIGNvbnZlbmllbnQgbG9jYXRpb24gKi8NCj4gLSAgICAgICAgICAgICBpZiAoZmQgIT0g Y2xvc2VfZnJvbSAgICAgICAgICAgICAgICAgICAgJiYNCj4gLSAgICAgICAgICAgICAgICAgKGR1 cDIoZmQsIGNsb3NlX2Zyb20pICE9IGNsb3NlX2Zyb20gfHwNCj4gLSAgICAgICAgICAgICAgICAg IGNsb3NlKGZkKSkpDQo+IC0gICAgICAgICAgICAgICAgICAgICBkaWVfcGVycm9yKCJDb3VsZCBu b3QgbW92ZSAtLWZkIGRlc2NyaXB0b3IiKTsNCj4gLSAgICAgICAgICAgICBmZCA9IGNsb3NlX2Zy b20rKzsNCj4gKyAgICAgICAgICAgICBpZiAobmV3X2ZkIDwgMCkNCj4gKyAgICAgICAgICAgICAg ICAgICAgIGRpZV9wZXJyb3IoIkNvdWxkIG5vdCByZWxvY2F0ZSAtLWZkIGRlc2NyaXB0b3IiKTsN Cj4gKw0KPiArICAgICAgICAgICAgIGNsb3NlKGMtPmZkX3RhcCk7DQo+ICsgICAgICAgICAgICAg Yy0+ZmRfdGFwID0gbmV3X2ZkOw0KPiAgICAgICB9DQoNCi4uLmhlcmUsIHdoZXJlIHdlIGNvdWxk IHNpbXBseSByZXR1cm4gZWFybHkgb24gYy0+cGFzc19mZHMgKGNhbiB3ZSBkcm9wDQoncGFzdGEn IGZyb20gdGhlcmU/IEkgdGhpbmsgaXQncyByZWR1bmRhbnQpLiAgUmlnaHQ/DQoNCj4NCj4gLSAg ICAgaWYgKGNsb3NlX3JhbmdlKGNsb3NlX2Zyb20sIH4wVSwgQ0xPU0VfUkFOR0VfVU5TSEFSRSkp IHsNCj4gLSAgICAgICAgICAgICBpZiAoZXJybm8gPT0gRU5PU1lTIHx8IGVycm5vID09IEVJTlZB TCkgew0KPiAtICAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBwcm9iYWJseSBtZWFucyBjbG9z ZV9yYW5nZSgpIG9yIHRoZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICogQ0xPU0VfUkFOR0Vf VU5TSEFSRSBmbGFnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgKiBrZXJuZWwuICBOb3QgbXVjaCB3ZSBjYW4gZG8gaGVyZSBleGNlcHQgY2Fycnkgb24g YW5kDQo+IC0gICAgICAgICAgICAgICAgICAgICAgKiBob3BlIGZvciB0aGUgYmVzdC4NCj4gLSAg ICAgICAgICAgICAgICAgICAgICAqLw0KPiAtICAgICAgICAgICAgICAgICAgICAgd2FybigNCj4g LSJDYW4ndCB1c2UgY2xvc2VfcmFuZ2UoKSB0byBlbnN1cmUgbm8gZmlsZXMgbGVha2VkIGJ5IHBh cmVudCIpOw0KPiAtICAgICAgICAgICAgIH0gZWxzZSB7DQo+IC0gICAgICAgICAgICAgICAgICAg ICBkaWVfcGVycm9yKCJGYWlsZWQgdG8gY2xvc2UgZmlsZXMgbGVha2VkIGJ5IHBhcmVudCIpOw0K PiArICAgICAvKiBDbG9zZSBsZWFrZWQgZmlsZSBkZXNjcmlwdG9ycyB1bmxlc3MgLS1wYXNzLWZk cyBpcyB1c2VkICovDQo+ICsgICAgIGlmICghYy0+cGFzdGFfcGFzc19mZHMpIHsNCj4gKyAgICAg ICAgICAgICBpbnQgcmMgPSAwOw0KPiArICAgICAgICAgICAgIC8qIEtlZXAgc3RhbmRhcmQgc3Ry ZWFtcyBhbmQgdGhlIHRhcCBmZCAoaWYgZ2l2ZW4pICovDQo+ICsgICAgICAgICAgICAgaW50IGtl ZXAgPSBjLT5mZF90YXAgPj0gU1RERVJSX0ZJTEVOTyA/IGMtPmZkX3RhcCA6IFNUREVSUl9GSUxF Tk87DQo+ICsNCj4gKyAgICAgICAgICAgICBpZiAoa2VlcCA+IFNUREVSUl9GSUxFTk8gKyAxKSB7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAvKiBUYXAgZmQgd2FzIHJlbG9jYXRlZCB0byBhYm92 ZSBzb21lIG90aGVyIGxlYWtlZCBmZChzKSovDQo+ICsgICAgICAgICAgICAgICAgICAgICAvKiBD bG9zZSBmZHMgYmV0d2VlbiBzdGRlcnIgYW5kIHRoZSB0YXAgZmQgKi8NCj4gKyAgICAgICAgICAg ICAgICAgICAgIGlmIChjbG9zZV9yYW5nZShTVERFUlJfRklMRU5PICsgMSwga2VlcCAtIDEsIENM T1NFX1JBTkdFX1VOU0hBUkUpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYyA9 IC0xOw0KPiAgICAgICAgICAgICAgIH0NCj4gLSAgICAgfQ0KPg0KPiAtICAgICByZXR1cm4gZmQ7 DQo+ICsgICAgICAgICAgICAgLyogQ2xvc2UgYWxsIG90aGVyIGZkcyAqLw0KPiArICAgICAgICAg ICAgIGlmIChjbG9zZV9yYW5nZShrZWVwICsgMSwgfjBVLCBDTE9TRV9SQU5HRV9VTlNIQVJFKSkN Cj4gKyAgICAgICAgICAgICAgICAgICAgIHJjID0gLTE7DQo+ICsNCj4gKyAgICAgICAgICAgICBp ZiAocmMpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJubyA9PSBFTk9TWVMgfHwg ZXJybm8gPT0gRUlOVkFMKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRo aXMgcHJvYmFibHkgbWVhbnMgY2xvc2VfcmFuZ2UoKSBvciB0aGUNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKiBDTE9TRV9SQU5HRV9VTlNIQVJFIGZsYWcgaXMgbm90IHN1cHBvcnRl ZCBieSB0aGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXJuZWwuICBOb3Qg bXVjaCB3ZSBjYW4gZG8gaGVyZSBleGNlcHQgY2Fycnkgb24gYW5kDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICogaG9wZSBmb3IgdGhlIGJlc3QuDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oDQo+ ICsgICAgICJDYW4ndCB1c2UgY2xvc2VfcmFuZ2UoKSB0byBlbnN1cmUgbm8gZmlsZXMgbGVha2Vk IGJ5IHBhcmVudCIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGllX3BlcnJvcigiRmFpbGVkIHRvIGNsb3NlIGZpbGVz IGxlYWtlZCBieSBwYXJlbnQiKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgIH0NCj4gKyAgICAg ICAgICAgICB9DQo+ICsgICAgIH0NCj4gIH0NCj4NCj4gIC8qKg0KPiBkaWZmIC0tZ2l0IGEvaXNv bGF0aW9uLmggYi9pc29sYXRpb24uaA0KPiBpbmRleCBlYzQ3MDM4Li5mZThkN2Q1IDEwMDY0NA0K PiAtLS0gYS9pc29sYXRpb24uaA0KPiArKysgYi9pc29sYXRpb24uaA0KPiBAQCAtMTEsNyArMTEs NyBAQA0KPiAgI2luY2x1ZGUgPHVuaXN0ZC5oPg0KPg0KPiAgdm9pZCBpc29sYXRlX2luaXRpYWwo dm9pZCk7DQo+IC1pbnQgaXNvbGF0ZV9mZHMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCj4gK3Zv aWQgaXNvbGF0ZV9mZHMoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCj4g IHZvaWQgaXNvbGF0ZV91c2VyKGNvbnN0IHN0cnVjdCBjdHggKmMsIHVpZF90IHVpZCwgZ2lkX3Qg Z2lkLCBib29sIHVzZV91c2VybnMsDQo+ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp1c2Vy bnMpOw0KPiAgaW50IGlzb2xhdGVfcHJlZm9yayhjb25zdCBzdHJ1Y3QgY3R4ICpjKTsNCj4gZGlm ZiAtLWdpdCBhL3Bhc3N0LjEgYi9wYXNzdC4xDQo+IGluZGV4IDBiNzgwZmUuLjU2ZTI0MWYgMTAw NjQ0DQo+IC0tLSBhL3Bhc3N0LjENCj4gKysrIGIvcGFzc3QuMQ0KPiBAQCAtNzY2LDYgKzc2Niwx MSBAQCBvZiBsb2NhbCB0cmFmZmljIGluIHBhc3RhXGZSIGluIHRoZSBcZkJOT1RFU1xmUiBmb3Ig bW9yZSBkZXRhaWxzLg0KPiAgRG8gbm90IGNyZWF0ZSBhIHRhcCBkZXZpY2UgaW4gdGhlIG5hbWVz cGFjZS4gSW4gdGhpcyBtb2RlLCBcZklwYXN0YVxmUiBvbmx5DQo+ICBmb3J3YXJkcyBsb29wYmFj ayB0cmFmZmljIGJldHdlZW4gbmFtZXNwYWNlcy4NCj4NCj4gKy5UUA0KPiArLkJSIFwtXC1wYXNz XC1mZHMNCj4gK1ByZXNlcnZlIGFsbCBvcGVuIGZpbGUgZGVzY3JpcHRvcnMgYW5kIHBhc3MgdGhl bSB0byB0aGUgc3Bhd25lZCBjb21tYW5kLg0KPiArVGhpcyBvcHRpb24gbWF5IG9ubHkgYmUgdXNl ZCB3aGVuIFxmQnBhc3RhXGZSIHNwYXducyBhIGNvbW1hbmQuDQo+ICsNCj4gIC5TSCBFWEFNUExF Uw0KPg0KPiAgLlNTIFxmQnBhc3RhDQo+IGRpZmYgLS1naXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0K PiBpbmRleCA1MDU0NTUxLi5mYTdhZmM1IDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5jDQo+ICsrKyBi L3Bhc3N0LmMNCj4gQEAgLTM0NSw3ICszNDUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpDQo+ICAgICAgIGFyY2hfYXZ4Ml9leGVjKGFyZ3YpOw0KPg0KPiAgICAgICBpc29sYXRl X2luaXRpYWwoKTsNCj4gLSAgICAgYy0+ZmRfdGFwID0gaXNvbGF0ZV9mZHMoYXJnYywgYXJndik7 DQo+ICsgICAgIGlzb2xhdGVfZmRzKGMsIGFyZ2MsIGFyZ3YpOw0KPg0KPiAgICAgICBpZiAoKGRl dm51bGxfZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IgfCBPX0NMT0VYRUMpKSA8IDApDQo+ ICAgICAgICAgICAgICAgZGllX3BlcnJvcigiRmFpbGVkIHRvIG9wZW4gL2Rldi9udWxsIik7DQo+ IGRpZmYgLS1naXQgYS9wYXNzdC5oIGIvcGFzc3QuaA0KPiBpbmRleCBhZmQ4ZTlmLi5iMDY1ZDQx IDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5oDQo+ICsrKyBiL3Bhc3N0LmgNCj4gQEAgLTE5Niw2ICsx OTYsNyBAQCBzdHJ1Y3QgaXA2X2N0eCB7DQo+ICAgKiBAcGFzdGFfaWZpOiAgICAgICAgICAgICAg IEluZGV4IG9mIG5hbWVzcGFjZSBpbnRlcmZhY2UgZm9yIHBhc3RhDQo+ICAgKiBAcGFzdGFfY29u Zl9uczogICBDb25maWd1cmUgbmFtZXNwYWNlIGFmdGVyIGNyZWF0aW5nIGl0DQo+ICAgKiBAbm9f cGlkbnM6ICAgICAgICAgICAgICAgIERvbid0IGNyZWF0ZSBhIG5ldyBQSUQgbmFtZXNwYWNlIGZv ciBzcGF3bmVkIGNvbW1hbmQNCj4gKyAqIEBwYXN0YV9wYXNzX2ZkczogIERvIG5vdCBjbG9zZSBs ZWFrZWQgZmlsZSBkZXNjcmlwdG9ycw0KDQpBcyBJIHdhcyBzdWdnZXN0aW5nIG9uIHYyLCBxdW90 aW5nOg0KDQotLS0NCkRvZXMgaXQgcmVhbGx5IG5lZWQgdG8gaGF2ZSAncGFzdGEnIGluIHRoZSBu YW1lPyAgU3VyZSwgaXQncw0KcGFzdGEtb25seSwgYnV0IHRoaXMgaXMgYWxyZWFkeSBkb2N1bWVu dGVkIGluIG1hbiBwYWdlLCB1c2FnZSwgYW5kDQpjb25mKCksIHNvIHdlIGNvdWxkIHByb2JhYmx5 IHNhdmUgc29tZSB0eXBpbmcgYnkgY2FsbGluZyBpdCAncGFzc19mZHMnLg0KLS0tDQoNCj4gICAq IEBmd2Q6ICAgICAgICAgICAgIEZvcndhcmRpbmcgdGFibGVzDQo+ICAgKiBAZndkX3BlbmRpbmc6 ICAgICBQZW5kaW5nIGZvcndhcmQgdGFibGVzDQo+ICAgKiBAbm9fdGNwOiAgICAgICAgICBEaXNh YmxlIFRDUCBvcGVyYXRpb24NCj4gQEAgLTI4MCw2ICsyODEsNyBAQCBzdHJ1Y3QgY3R4IHsNCj4g ICAgICAgdW5zaWduZWQgaW50IHBhc3RhX2lmaTsNCj4gICAgICAgaW50IHBhc3RhX2NvbmZfbnM7 DQo+ICAgICAgIGJvb2wgbm9fcGlkbnM7DQo+ICsgICAgIGJvb2wgcGFzdGFfcGFzc19mZHM7DQo+ DQo+ICAgICAgIHN0cnVjdCBmd2RfdGFibGUgKmZ3ZFtQSUZfTlVNX1RZUEVTXTsNCj4gICAgICAg c3RydWN0IGZ3ZF90YWJsZSAqZndkX3BlbmRpbmdbUElGX05VTV9UWVBFU107DQoNCi0tDQpTdGVm YW5vDQoNCg0K --_000_DM3PR11MB871367EDC1EBB06E9F0F58BBDA6E2DM3PR11MB8713namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9 ImRpc3BsYXk6bm9uZTsiPiBQIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO30gPC9zdHls ZT4NCjwvaGVhZD4NCjxib2R5IGRpcj0ibHRyIj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29m IiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01T Rm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAx MnB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+DQpIb3dkeSBTdGVmYW5vLCZuYnNwOzwvZGl2Pg0K PGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4NCjxi cj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWls eTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJy aSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwg MCwgMCk7Ij4NCkkgaGFkIHNlbnQgYW5vdGhlciBtZXNzYWdlIHRvIHRoZSBQQVRDSCB2MiB0aHJl YWQsIGJ1dCBpdCBzZWVtcyB5b3UgbWlzc2VkIGl0LiBDb3B5aW5nIGlubGluZSBiZWxvdyAoJmd0 OyZndDspIHNvIHlvdSBkb24ndCBoYXZlIHRvIGdvIGh1bnRpbmcgZm9yIGl0LiZuYnNwOzwvZGl2 Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3Ms IEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0 aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4N Cjxicj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZh bWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2Fs aWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2Io MCwgMCwgMCk7Ij4NCiMjIFJlOiBsb25nIG9wdGlvbiBpbmRleC4mbmJzcDs8L2Rpdj4NCjxkaXYg Y2xhc3M9ImVsZW1lbnRUb1Byb29mIiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRl bnQ6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBw eDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNl cnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBj b2xvcjogYmxhY2s7Ij4NCiZndDsmZ3Q7IEl0IHR1cm5zIG91dCB0aGUgbWluaW11bSBpbmRleCBm b3IgYSBsb25nIG9wdGlvbiBpcyAyLCBub3QgMS4gPGNvZGU+Y29uZigpPC9jb2RlPiZuYnNwO2Fs cmVhZHkgY29ycmVjdGx5IGRvZXMgaXQgdGhhdCB3YXkuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNz PSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiAw cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZv bnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNl LCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6 IGJsYWNrOyI+DQo8aT48YnI+DQo8L2k+PC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9v ZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQt Y29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRv cywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2 ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8aT4o Y29udGludWVkLi4uKTwvaT4mbmJzcDtJdCdzIGJlY2F1c2UgbG9uZyBvcHRpb24gaW5kZXggMSBp cyByZXNlcnZlZCBmb3IgcG9zaXRpb25hbCBhcmd1bWVudHMgb3Igc29tZXRoaW5nIGxpa2UgdGhh dCAoZm9yZ290IHRoZSBkZXRhaWxzKS48L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29m IiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3VuZC1j b2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFwdG9z LCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZl dGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCjxicj4N CjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBs ZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwg QXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250 LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KIyMgUmU6IHJlbG9jYXRpbmcgZmRfdGFwIGNv bmRpdGlvbmFsbHk8L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiBzdHlsZT0idGV4 dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1 NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJl ZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1z ZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCiZndDsmZ3Q7IEkgdGhpbmsg SSBtaXN1bmRlcnN0b29kIHlvdXIgcXVlc3Rpb24gYWJvdXQgdW5jb25kaXRpb25hbGx5IHJlbG9j YXRpbmcgdGhlIGZkX3RhcC48L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiBzdHls ZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3VuZC1jb2xvcjog cmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRv c19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwg c2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCiZndDsmZ3Q7IFBs ZWFzZSBjbGFyaWZ5OiBhcmUgeW91IHN1Z2dlc3RpbmcgdGhhdCB3ZSBzaG91bGQgc2tpcCByZWxv Y2F0aW5nIGZkX3RhcCB3aGVuIHdlIGFsc28gc2tpcCBjbG9zaW5nIGxlYWtlZCBmaWxlIGRlc2Ny aXB0b3JzPzwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFs aWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAy NTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVk Rm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlm OyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KJmd0OyZndDsgVGhhdCBkZXNpZ24g d291bGQgbm90IGNhdXNlIGFueSBvZiB0aGUgYnVncyBJIGltYWdpbmVkLiBGb3IgZXhhbXBsZSwg aXQgd291bGQgbmV2ZXIgYWZmZWN0DQo8Y29kZSBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBB cHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGlj YSwgc2Fucy1zZXJpZjsiPg0KcGFzc3Q8L2NvZGU+Jm5ic3A7bW9kZSBiZWNhdXNlIHNraXBwaW5n IGlzIGZvcmJpZGRlbiBpbiBwYXNzdCBtb2RlIGFueXdheXMuIElmIHRoZSB1c2VyIGRvZXMNCjxj b2RlPnRhcCB8IHBhc3RhIC0tZmQgMCAtLXBhc3MtZmRzIGNtZDwvY29kZT4mbmJzcDt0aGVuIHRo ZSBmZF90YXAgc3RheXMgb24gc3RkaW4sIHNvIHRoZSBzcGF3bmVkIGNvbW1hbmQgZ2V0cyBpdCBv biBzdGRpbjsgdGhhdCBpcyB0ZWNobmljYWxseSBhIGZlYXR1cmUgKCZxdW90Oy0tcGFzcy1mZHMg cHJlc2VydmVzIGZpbGUgZGVzY3JpcHRvcnMmcXVvdDspLCBidXQgSSBzdGlsbCB0aGluayBpdCdz IHZlcnkgd2VpcmQgYmVoYXZpb3IuPC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIg c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29s b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywg QXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRp Y2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8aT48YnI+ DQo8L2k+PC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxp Z246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1 NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRG b250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7 IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8aT4oY29udGludWVkLi4uKSA8L2k+ QnV0LCBnaXZlbiB5b3VyIG1vcmUgcmVjZW50IGNvbW1lbnRzLCBJIHRoaW5rIEkgYW0gPGk+c3Rp bGw8L2k+Jm5ic3A7bWlzdW5kZXJzdGFuZGluZyB5b3VyIHF1ZXN0aW9uIGFib3V0IHVuY29uZGl0 aW9uYWxseSByZWxvY2F0aW5nIGZkX3RhcC4gU28gSSBuZWVkIHRvIGFzayBhIGRpZmZlcmVudCBx dWVzdGlvbiBpbnN0ZWFkLjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxl PSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9z X0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBz YW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KUGxlYXNlIGNsYXJp Znk6IGlzIGl0IGV2ZXIgT0sgdG8gbGVhdmUgdGhlIGZkX3RhcCBvbiAwPyBJZiB3ZSBjYW4gbGVh dmUgZmRfdGFwIG9uIDAgaW4gcGFzdGEgbW9kZSB3aXRoIHBhc3MtZmRzLCB0aGVuIHRoYXQgZ3Jl YXRseSBzaW1waWZpZXMgdGhlIGxvZ2ljLiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVu dFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNr Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWls eTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJy aSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsi Pg0KPGJyPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQt YWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs IDI1NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRk ZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2Vy aWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQojIyBSZTogZHVwMiB2cyBmY250 bDwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBs ZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwg QXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250 LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KPGk+PGJyPg0KPC9pPjwvZGl2Pg0KPGRpdiBj bGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVu dDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4 OyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxp YnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Ij5QbGVhc2UgYWxsb3cgbWUgdG8gY2xhcmlmeTog dGhlIHJlYXNvbiBJIHN3aXRjaGVkIGZyb20NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1p bHk6IENvbnNvbGFzLCBDb3VyaWVyLCBtb25vc3BhY2U7Ij5kdXAyPC9zcGFuPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2Vy dmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyI+IHRvDQo8L3NwYW4+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiBDb25zb2xhcywgQ291cmllciwgbW9ub3NwYWNlOyI+ZmNudGw8 L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250 LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Ij4g aXMgYmVjYXVzZSBJIGltYWdpbmVkIGEgc2NlbmFyaW8gd2hlcmUgdGhlIHVzZXIgd2FudHMgdG8g Ym90aDo8L3NwYW4+PC9kaXY+DQo8b2wgc3RhcnQ9IjEiIGRhdGEtZWRpdGluZy1pbmZvPSJ7JnF1 b3Q7YXBwbHlMaXN0U3R5bGVGcm9tTGV2ZWwmcXVvdDs6ZmFsc2UsJnF1b3Q7b3JkZXJlZFN0eWxl VHlwZSZxdW90OzoxfSIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IG1hcmdpbi10b3A6IDBweDsg bWFyZ2luLWJvdHRvbTogMHB4OyBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7IGZsZXgtZGlyZWN0 aW9uOiBjb2x1bW47IGRpc3BsYXk6IGZsZXg7Ij4NCjxsaSBzdHlsZT0iZm9udC1mYW1pbHk6IEFw dG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7IGFsaWdu LXNlbGY6IHN0YXJ0OyBtYXJnaW46IDBweDsiPg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2Yi IHJvbGU9InByZXNlbnRhdGlvbiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50 OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ij4NCnBhc3MgdGhlIHRhcCBmZCB0byBwYXN0YSBvbiAw LCBhbmQgYWxzbzwvZGl2Pg0KPC9saT48bGkgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0 b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2Es IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyBhbGlnbi1zZWxmOiBz dGFydDsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ij4NCjxkaXYgY2xhc3M9 ImVsZW1lbnRUb1Byb29mIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJ0ZXh0LWFsaWduOiBs ZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyI+DQpwYXNzIHNvbWV0aGlu ZyBlbHNlIHRocm91Z2ggdG8gYndyYXAgb24gMy4gRm9yIGV4YW1wbGU6Jm5ic3A7PC9kaXY+DQo8 L2xpPjwvb2w+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246 IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwg MjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250 LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZv bnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 ImVsZW1lbnRUb1Byb29mIiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBw eDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9u dC1mYW1pbHk6IENvbnNvbGFzLCBDb3VyaWVyLCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTJwdDsg Y29sb3I6IGJsYWNrOyI+DQpgYGA8L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiBz dHlsZT0ibGluZS1oZWlnaHQ6IDE5cHg7IGZvbnQtZmFtaWx5OiBDb25zb2xhcywgQ291cmllciwg bW9ub3NwYWNlOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KZXhlYyAzJmx0OyZs dDsmbHQ7JnF1b3Q7SGVsbG8gZnJvbSBGRCAzJnF1b3Q7ICZhbXA7JmFtcDsgPGNvZGUgc3R5bGU9 ImZvbnQtZmFtaWx5OiBDb25zb2xhcywgQ291cmllciwgbW9ub3NwYWNlOyI+DQp0YXAgfCBwYXN0 YSAtLWZkIDAgLS1wYXNzLWZkcyA8L2NvZGU+YndyYXAgLS1iaW5kLWZkIDMgL2hlbGxvIGJhc2gg LWMgJ2NhdCAvaGVsbG8gfCBzZW5kLWl0LXRvLXRoZS1pbnRlcm5ldC1vci1zb21ldGhpbmctaWRr JzwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBs ZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQ29uc29sYXMsIENvdXJpZXIsIG1vbm9zcGFj ZTsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCmBgYDwvZGl2Pg0KPGRpdiBjbGFz cz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDog MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBm b250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2Vydmlj ZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9y OiBibGFjazsiPg0KSW4gdGhhdCBzY2VuYXJpbywgdXNpbmcgPGNvZGU+ZHVwMjwvY29kZT4gaXMg YSBtYWpvciBwcm9ibGVtLiBJdCBjbG9zZXMgdGhlIGV4aXN0aW5nIEZEIDMgYW5kIHB1dHMgdGhl IHRhcCB0aGVyZSBpbnN0ZWFkISBTbyB0aGUgdXNlciBpcyBub3cgYWNjaWRlbnRhbGx5IHNlbmRp bmcgdGhlIHRhcCB0byB0aGUgaW50ZXJuZXQgaW5zdGVhZCBvZiB0aGUgZGF0YSB0aGV5IGludGVu ZGVkIHRvIHBhc3Mgb24gMy48L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiBzdHls ZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3VuZC1jb2xvcjog cmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRv c19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwg c2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCjxicj4NCjwvZGl2 Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0 ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1h cmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3Nf TVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6 IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KT25lIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRvIGxlYXZl IHRoZSB0YXAgb24gMCBpbnN0ZWFkLjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2Yi IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNv bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3Ms IEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0 aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KPGk+KHBy ZXZpb3VzbHkuLi4pPC9pPjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxl PSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9z X0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBz YW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KJmd0OyZndDsgSWYg eW91IGRvIGluc2lzdCB0aGF0IHRoaXMgd2VpcmQgYmVoYXZpb3IgaXMgaW4gZmFjdCB0aGUgY29y cmVjdCBiZWhhdmlvciwgdGhlbiB3ZSBjYW4gZGVtb3RlIHRoZQ0KPGNvZGU+ZmNudGw8L2NvZGU+ Jm5ic3A7Y2FsbCBiYWNrIHRvIHBsYWluIDxjb2RlPmR1cDI8L2NvZGU+Jm5ic3A7d2l0aCBhIGNv bW1lbnQgdGhhdCBleHBsYWlucyBpdCBpcyBzYWZlIHRvIGNsb3NlIGFuZCByZXVzZSBmZCAzIHNp bmNlIHRoZSB1c2VyIGRpZCBub3QgcmVxdWVzdCB0byBwYXNzLWZkcy4gVGhpcyBjb21tZW50IGlz IG5lY2Vzc2FyeSB0byBwcmV2ZW50IGEgZnV0dXJlIGJ1ZyBpZiBzb21lb25lIHJlZmFjdG9ycyB0 aGUgY29kZSBjYXJlbGVzc2x5IChkdXAyDQogY2xvc2VzIGZkIDMgd2hlbiB1c2VyIHdhbnRzIHRv IHBhc3MgZmQgMykuIFBsZWFzZSBsZXQgbWUga25vdyBpZiB0aGF0IGNoYW5nZSBpcyBzdGlsbCB3 aGF0IHlvdSB3YW50LiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0 eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9y OiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KPGJyPg0KPC9k aXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7 IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg bWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRv c19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6 ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQpJIGNhbGwgdGhpcyB0aGUgJnF1b3Q7dW5zYWZlJnF1 b3Q7IG9wdGlvbi4gSSBjYW4gaW1hZ2luZSB0aGF0IGxlYXZpbmcgdGhlIHRhcCBvbiAwIGNvdWxk IGNhdXNlIGJ1Z3MsIGFuZCBJIGltYWdpbmUgdGhhdCBsZWF2aW5nIGR1cDIgaW4gdGhlIGNvZGUg Y291bGQgcmUtaW50cm9kdWNlIHRoZSBjbG9iYmVyaW5nIGJ1ZyBhdCBhIGxhdGVyIHRpbWUuPC9k aXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7 IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg bWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRv c19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6 ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1l bnRUb1Byb29mIiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFj a2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1p bHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGli cmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7 Ij4NCiMjIE5ldyBQcm9wb3NhbDwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0 eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9y OiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KPGJyPg0KPC9k aXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7 IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg bWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRv c19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6 ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQpJIHByb3Bvc2UgdG8gYWx3YXlzIHJlbG9jYXRlIHRo ZSB0YXAgYWJvdmUgMiwgdG8gYXZvaWQgYnVncywgYnV0IHRoZSBzeXN0ZW0gY2FsbCB3ZSB1c2Ug Y2FuIGJlIGNvbmRpdGlvbmFsOjwvZGl2Pg0KPHVsIGRhdGEtZWRpdGluZy1pbmZvPSJ7JnF1b3Q7 YXBwbHlMaXN0U3R5bGVGcm9tTGV2ZWwmcXVvdDs6dHJ1ZX0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBs ZWZ0OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbGlzdC1zdHlsZS10eXBl OiBkaXNjOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBkaXNwbGF5OiBmbGV4OyI+DQo8bGkgc3R5 bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRT ZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsg Y29sb3I6IGJsYWNrOyBhbGlnbi1zZWxmOiBzdGFydDsgbWFyZ2luOiAwcHg7Ij4NCjxkaXYgY2xh c3M9ImVsZW1lbnRUb1Byb29mIiByb2xlPSJwcmVzZW50YXRpb24iIHN0eWxlPSJ0ZXh0LWFsaWdu OiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUs IDI1NSk7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyI+DQo8Y29kZT5kdXAy PC9jb2RlPiB3aGVuIHdlJ3JlIGNsb3NpbmcgZmRzIChiZWNhdXNlIGl0J3MgdGhlIGVhc2llc3Qp IGFuZDwvZGl2Pg0KPC9saT48bGkgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1i ZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMt c2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyBhbGlnbi1zZWxmOiBzdGFydDsg bWFyZ2luOiAwcHg7Ij4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiByb2xlPSJwcmVzZW50 YXRpb24iIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3Jv dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJv dHRvbTogMHB4OyI+DQo8Y29kZT5mY250bDwvY29kZT4gd2hlbiB3ZSdyZSBsZWF2aW5nIHRoZW0g b3BlbiAoYmVjYXVzZSBpdCdzIHRoZSBzYWZlc3QpPC9kaXY+DQo8L2xpPjwvdWw+DQo8ZGl2IGNs YXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50 OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRk ZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2Vy aWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQp0aGF0IHNlZW1zIGxpa2UgdGhl IGJlc3Qgb2YgYm90aCB3b3JsZHMuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Q cm9vZiIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IGJhY2tncm91 bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBB cHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBI ZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQo8 YnI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29mIiBzdHlsZT0idGV4dC1hbGln bjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1 LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZv bnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsg Zm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCiMjIFJlOiAmbmJzcDtzdHlsZSBjaGFu Z2VzPC9kaXY+DQo8ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9ImZvbnQtZmFtaWx5 OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJp LCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+ DQo8YnI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1i ZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMt c2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IGJsYWNrOyI+DQpJIGFncmVlIHdpdGggeW91 ciBzdWdnZXN0ZWQgc3R5bGUgY2hhbmdlcy48L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1By b29mIiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IDBweDsgYmFja2dyb3Vu ZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IEFw dG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xvcjogYmxhY2s7Ij4NCjxi cj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJ0ZXh0LWFsaWdu OiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUs IDI1NSk7IG1hcmdpbjogMHB4OyBmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9u dCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBm b250LXNpemU6IDEycHQ7IGNvbG9yOiBibGFjazsiPg0KUmljaGFyZCBMYXdyZW5jZTwvZGl2Pg0K PGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4NCjxi cj4NCjwvZGl2Pg0KPGRpdiBpZD0iYXBwZW5kb25zZW5kIj48L2Rpdj4NCjxociBzdHlsZT0iZGlz cGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OTglIiB0YWJpbmRleD0iLTEiPg0KPGRpdiBpZD0iZGl2 UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxmb250IGZhY2U9IkNhbGlicmksIHNhbnMtc2VyaWYiIHN0 eWxlPSJmb250LXNpemU6MTFwdCIgY29sb3I9IiMwMDAwMDAiPjxiPkZyb206PC9iPiBTdGVmYW5v IEJyaXZpbyAmbHQ7c2JyaXZpb0ByZWRoYXQuY29tJmd0Ozxicj4NCjxiPlNlbnQ6PC9iPiBXZWRu ZXNkYXksIE9jdG9iZXIgMjgsIDIwMjYgNTozOCBQTTxicj4NCjxiPlRvOjwvYj4gTGF3cmVuY2Us IFJpY2hhcmQgRSAmbHQ7cmxhd3JlbmNlQHRhbXUuZWR1Jmd0Ozxicj4NCjxiPkNjOjwvYj4gcGFz c3QtZGV2QHBhc3N0LnRvcCAmbHQ7cGFzc3QtZGV2QHBhc3N0LnRvcCZndDs8YnI+DQo8Yj5TdWJq ZWN0OjwvYj4gUmU6IFtQQVRDSCB2M10gcGFzdGE6IEFkZCAtLXBhc3MtZmRzIG9wdGlvbiB0byBz a2lwIGNsb3NpbmcgZmlsZSBkZXNjcmlwdG9yczwvZm9udD4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8 L2Rpdj4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyBkaXNwbGF5 Om5vbmU7IHZpc2liaWxpdHk6aGlkZGVuOyBmb250LXNpemU6MXB4OyBjb2xvcjojZmZmZmZmOyBs aW5lLWhlaWdodDoxcHg7IG1heC1oZWlnaHQ6MHB4OyBvcGFjaXR5OjA7IG92ZXJmbG93OmhpZGRl biI+DQpPbiBNb24sIDI2IE9jdCAyMDI2IDEyOuKAijAzOuKAijQ1IC0wNTAwIFJpY2hhcmQgTGF3 cmVuY2UgJmx0O3JsYXdyZW5jZUDigIp0YW11LuKAimVkdSZndDsgd3JvdGU6ICZndDsgV2hlbiBw YXN0YSBzcGF3bnMgYSBjb21tYW5kIChgcGFzdGEgW29wdGlvbnNdIC0tIFtjb21tYW5kXWApLCBh bGwgb3BlbiBmaWxlICZndDsgZGVzY3JpcHRvcnMgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBw cm9jZXNzIGV4Y2VwdCBzdGFuZGFyZCBzdHJlYW1zPC9kaXY+DQo8ZGl2IHN0eWxlPSJkaXNwbGF5 Om5vbmUhaW1wb3J0YW50OyBkaXNwbGF5Om5vbmU7IHZpc2liaWxpdHk6aGlkZGVuOyBmb250LXNp emU6MXB4OyBjb2xvcjojZmZmZmZmOyBsaW5lLWhlaWdodDoxcHg7IG1heC1oZWlnaHQ6MHB4OyBv cGFjaXR5OjA7IG92ZXJmbG93OmhpZGRlbiI+DQpaalFjbVFSWUZwZnB0QmFubmVyU3RhcnQ8L2Rp dj4NCjxkaXYgZGlyPSJsdHIiIGxhbmc9ImVuIiBpZD0ieF9wZnB0QmFubmVyNjBjaWdtNyIgc3R5 bGU9ImRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50OyBt YXJnaW46MCAwIDEwcHggMCFpbXBvcnRhbnQ7IHBhZGRpbmc6N3B4IDE2cHggOHB4IDE2cHghaW1w b3J0YW50OyBib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnQ7IG1pbi13aWR0aDoyMDBweCFpbXBv cnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2QwZDhkYyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29s b3I6I2QwZDhkYzsgYm9yZGVyLXRvcDo0cHggc29saWQgIzkwYTRhZSFpbXBvcnRhbnQ7IGJvcmRl ci10b3A6NHB4IHNvbGlkICM5MGE0YWUiPg0KPGRpdiBpZD0ieF9wZnB0QmFubmVyNjBjaWdtNyIg c3R5bGU9ImZsb2F0OmxlZnQhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgbWFy Z2luOjFweCAwIDFweCAwIWltcG9ydGFudDsgbWF4LXdpZHRoOjYwMHB4IWltcG9ydGFudCI+DQo8 ZGl2IGlkPSJ4X3BmcHRCYW5uZXI2MGNpZ203IiBzdHlsZT0iZGlzcGxheTpibG9jayFpbXBvcnRh bnQ7IHZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2QwZDhk YyFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwOyBmb250 LWZhbWlseTonQXJpYWwnLHNhbnMtc2VyaWYhaW1wb3J0YW50OyBmb250LWZhbWlseTonQXJpYWwn LHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50OyBmb250LXdlaWdodDpib2xk OyBmb250LXNpemU6MTRweCFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuMjkhaW1wb3J0YW50OyBs aW5lLWhlaWdodDoxLjI5Ij4NClRoaXMgTWVzc2FnZSBJcyBGcm9tIGFuIEV4dGVybmFsIFNlbmRl ciA8L2Rpdj4NCjxkaXYgaWQ9InhfcGZwdEJhbm5lcjYwY2lnbTciIHN0eWxlPSJkaXNwbGF5OmJs b2NrIWltcG9ydGFudDsgdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDsgYmFja2dyb3VuZC1j b2xvcjojZDBkOGRjIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiMw MDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1mYW1pbHk6J0FyaWFsJyxzYW5zLXNlcmlm IWltcG9ydGFudDsgZm9udC1mYW1pbHk6J0FyaWFsJyxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJw eCFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNTsg bWFyZ2luLXRvcDoycHghaW1wb3J0YW50Ij4NClRoaXMgbWVzc2FnZSBjYW1lIGZyb20gb3V0c2lk ZSB5b3VyIG9yZ2FuaXphdGlvbi4gPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNsZWFyOmJv dGghaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdmlzaWJpbGl0eTpoaWRkZW4h aW1wb3J0YW50OyBsaW5lLWhlaWdodDowIWltcG9ydGFudDsgZm9udC1zaXplOjAuMDFweCFpbXBv cnRhbnQ7IGhlaWdodDowcHgiPg0KJm5ic3A7PC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImRp c3BsYXk6bm9uZSFpbXBvcnRhbnQ7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IGZv bnQtc2l6ZToxcHg7IGNvbG9yOiNmZmZmZmY7IGxpbmUtaGVpZ2h0OjFweDsgbWF4LWhlaWdodDow cHg7IG9wYWNpdHk6MDsgb3ZlcmZsb3c6aGlkZGVuIj4NClpqUWNtUVJZRnBmcHRCYW5uZXJFbmQ8 L2Rpdj4NCjxzdHlsZT4NCjwhLS0NCiN4X3BmcHRCYW5uZXI2MGNpZ203DQoJe2Rpc3BsYXk6Ymxv Y2shaW1wb3J0YW50Ow0KCXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7DQoJb3BhY2l0eTox IWltcG9ydGFudDsNCgliYWNrZ3JvdW5kLWNvbG9yOiNkMGQ4ZGMhaW1wb3J0YW50Ow0KCW1heC13 aWR0aDpub25lIWltcG9ydGFudDsNCgltYXgtaGVpZ2h0Om5vbmUhaW1wb3J0YW50fQ0KaHRtbDpy b290LCBodG1sOnJvb3QgPiBkaXYNCgl7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7DQoJdmlzaWJp bGl0eTp2aXNpYmxlIWltcG9ydGFudDsNCglvcGFjaXR5OjEhaW1wb3J0YW50fQ0KLS0+DQo8L3N0 eWxlPg0KPHByZSBzdHlsZT0iZm9udC1mYW1pbHk6c2Fucy1zZXJpZjsgZm9udC1zaXplOjEwMCU7 IHdoaXRlLXNwYWNlOnByZS13cmFwOyB3b3JkLXdyYXA6YnJlYWstd29yZCI+T24gTW9uLCAyNiBP Y3QgMjAyNiAxMjowMzo0NSAtMDUwMA0KUmljaGFyZCBMYXdyZW5jZSAmbHQ7cmxhd3JlbmNlQHRh bXUuZWR1Jmd0OyB3cm90ZToNCg0KJmd0OyBXaGVuIHBhc3RhIHNwYXducyBhIGNvbW1hbmQgKGBw YXN0YSBbb3B0aW9uc10gLS0gW2NvbW1hbmRdYCksIGFsbCBvcGVuIGZpbGUNCiZndDsgZGVzY3Jp cHRvcnMgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBwcm9jZXNzIGV4Y2VwdCBzdGFuZGFyZCBz dHJlYW1zICgwLTIpDQomZ3Q7IGFuZCB0aGUgdGFwIGRlc2NyaXB0b3IgKGAtLWZkYCkgYXJlIG5v cm1hbGx5IGNsb3NlZCBieSBgaXNvbGF0ZV9mZHMoKWAuDQomZ3Q7IA0KJmd0OyBIb3dldmVyLCB3 aGVuIHBhc3RhIGlzIHVzZWQgZm9yIHRlc3RpbmcsIGRldmVsb3BtZW50LCBvciBsYXVuY2hpbmcg dG9vbHMgbGlrZQ0KJmd0OyBCdWJibGV3cmFwIChgYndyYXBgKSwgdGhlIHNwYXduZWQgY29tbWFu ZCBtYXkgcmVxdWlyZSBmaWxlIGRlc2NyaXB0b3JzDQomZ3Q7IHBhc3NlZCBkaXJlY3RseSBmcm9t IHRoZSBwYXJlbnQgcHJvY2Vzcy4gSW4gdGhpcyBjYXNlLCBjbG9zaW5nIGluaGVyaXRlZCBmaWxl DQomZ3Q7IGRlc2NyaXB0b3JzIGJyZWFrcyBleHBlY3RlZCBiZWhhdmlvci4NCiZndDsgDQomZ3Q7 IEFkZCBhIGJvb2xlYW4gYC0tcGFzcy1mZHNgIGZsYWcgZm9yIHBhc3RhIG1vZGUgdGhhdCBza2lw cyB0aGUgYGNsb3NlX3JhbmdlKClgDQomZ3Q7IGNsZWFudXAgc3RlcCBpbiBgaXNvbGF0ZV9mZHMo KWAsIGxlYXZpbmcgYWxsIG9wZW4gZmlsZSBkZXNjcmlwdG9ycyBpbnRhY3QNCiZndDsgZm9yIHRo ZSBjaGlsZCBjb21tYW5kLg0KJmd0OyANCiZndDsgU3VtbWFyeSBvZiBjaGFuZ2VzOg0KJmd0OyAN CiZndDsgLSBVcGRhdGUgYGNvbmZfdGFwX2ZkKClgIHRvIGBjb25mX2ZkcygpYCwgYWxsb3dpbmcg ZWFybHkgcGFyc2luZyBvZiBib3RoDQomZ3Q7ICAgYC1GYC9gLS1mZGAgYW5kIGAtLXBhc3MtZmRz YCBiZWZvcmUgbWFpbiBvcHRpb24gcHJvY2Vzc2luZy4NCiZndDsgLSBVcGRhdGUgYGlzb2xhdGVf ZmRzKClgIHRvIGNoZWNrIGBjLSZndDtwYXN0YV9wYXNzX2Zkc2A6IGlmIHNldCwgc2tpcCBjYWxs aW5nDQomZ3Q7ICAgYGNsb3NlX3JhbmdlKClgIHdoaWxlIHN0aWxsIHJlbG9jYXRpbmcgdGhlIHRh cCBmZCBvdXQgb2Ygc3RhbmRhcmQgc3RyZWFtDQomZ3Q7ICAgcmFuZ2UgKDAtMikgaWYgbmVlZGVk Lg0KJmd0OyAtIEVuZm9yY2UgdmFsaWRhdGlvbiBpbiBgY29uZigpYCBlbnN1cmluZyBgLS1wYXNz LWZkc2AgaXMgcmVzdHJpY3RlZCB0byBwYXN0YQ0KJmd0OyAgIG1vZGUgd2hlbiBzcGF3bmluZyBh IGNvbW1hbmQgKGluY29tcGF0aWJsZSB3aXRoIGF0dGFjaGluZyB0byBhbg0KJmd0OyAgIGV4aXN0 aW5nIG5ldG5zKS4NCiZndDsgLSBVcGRhdGUgbWFuIHBhZ2UgYW5kIHVzYWdlIGhlbHAgb3V0cHV0 Lg0KJmd0OyANCiZndDsgTGluazogPGEgaHJlZj0iaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9f X2h0dHBzOi8vYnVncy5wYXNzdC50b3Avc2hvd19idWcuY2dpP2lkPTIwNF9fOyEhS3dOVm5xUnYh RVRvZFFvaVpLWGZxcC1Wajd5ZktLTGtta1ZxUGU4emdiZzlrc1VuVmNqdnhWRDhZWHlQZmRsZHRK d1hGbVRBU2MwZGI2MEgzZkl5ZTZySzUkIj5odHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0 cHM6Ly9idWdzLnBhc3N0LnRvcC9zaG93X2J1Zy5jZ2k/aWQ9MjA0X187ISFLd05WbnFSdiFFVG9k UW9pWktYZnFwLVZqN3lmS0tMa21rVnFQZTh6Z2JnOWtzVW5WY2p2eFZEOFlYeVBmZGxkdEp3WEZt VEFTYzBkYjYwSDNmSXllNnJLNSQ8L2E+DQomZ3Q7IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgTGF3 cmVuY2UgJmx0O3JsYXdyZW5jZUB0YW11LmVkdSZndDsNCiZndDsgLS0tDQomZ3Q7ICBjb25mLmMg ICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCiZndDsg IGNvbmYuaCAgICAgIHwgIDIgKy0NCiZndDsgIGlzb2xhdGlvbi5jIHwgNzMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiZndDsgIGlzb2xhdGlv bi5oIHwgIDIgKy0NCiZndDsgIHBhc3N0LjEgICAgIHwgIDUgKysrKw0KJmd0OyAgcGFzc3QuYyAg ICAgfCAgMiArLQ0KJmd0OyAgcGFzc3QuaCAgICAgfCAgMiArKw0KJmd0OyAgNyBmaWxlcyBjaGFu Z2VkLCA5MSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkNCiZndDsgDQomZ3Q7IGRpZmYg LS1naXQgYS9jb25mLmMgYi9jb25mLmMNCiZndDsgaW5kZXggMTQ5YTRjNy4uMzBlZGVmOSAxMDA2 NDQNCiZndDsgLS0tIGEvY29uZi5jDQomZ3Q7ICsrKyBiL2NvbmYuYw0KJmd0OyBAQCAtNzUwLDcg Kzc1MCw4IEBAIHBhc3RhX29wdHM6DQomZ3Q7ICAJCSZxdW90OwkJCURvbid0IGNvcHkgYWxsIGFk ZHJlc3NlcyB0byBuYW1lc3BhY2VcbiZxdW90Ow0KJmd0OyAgCQkmcXVvdDsgIC0tbnMtbWFjLWFk ZHIgQUREUglTZXQgTUFDIGFkZHJlc3Mgb24gdGFwIGludGVyZmFjZVxuJnF1b3Q7DQomZ3Q7ICAJ CSZxdW90OyAgLS1uby1zcGxpY2UJCURpc2FibGUgaW5ib3VuZCBzb2NrZXQgc3BsaWNpbmdcbiZx dW90Ow0KJmd0OyAtCQkmcXVvdDsgIC0tc3BsaWNlLW9ubHkJT25seSBlbmFibGUgbG9vcGJhY2sg Zm9yd2FyZGluZ1xuJnF1b3Q7KTsNCiZndDsgKwkJJnF1b3Q7ICAtLXNwbGljZS1vbmx5CU9ubHkg ZW5hYmxlIGxvb3BiYWNrIGZvcndhcmRpbmdcbiZxdW90Ow0KJmd0OyArCQkmcXVvdDsgIC0tcGFz cy1mZHMJCVByZXNlcnZlIG9wZW4gZmlsZSBkZXNjcmlwdG9yc1xuJnF1b3Q7KTsNCiZndDsgIA0K Jmd0OyAgCXBhc3N0X2V4aXQoc3RhdHVzKTsNCiZndDsgIH0NCiZndDsgQEAgLTExMzcsMzUgKzEx MzgsNDEgQEAgc3RhdGljIHZvaWQgY29uZl9zb2NrX2xpc3Rlbihjb25zdCBzdHJ1Y3QgY3R4ICpj KQ0KJmd0OyAgfQ0KJmd0OyAgDQomZ3Q7ICAvKioNCiZndDsgLSAqIGNvbmZfdGFwX2ZkKCkgLSBS ZWFkIHRhcCBmZCBhcyBzdXBwbGllZCBieSAtRiBjb21tYW5kIGxpbmUgb3B0aW9uDQomZ3Q7ICsg KiBjb25mX2ZkcygpIC0gUmVhZCBmZHMgYXMgc3VwcGxpZWQgYnkgLUYvLS1mZCBhbmQgLS1wYXNz LWZkcyBvcHRpb25zDQomZ3Q7ICsgKiBAYzoJCUV4ZWN1dGlvbiBjb250ZXh0DQomZ3Q7ICAgKiBA YXJnYzoJQXJndW1lbnQgY291bnQNCiZndDsgICAqIEBhcmd2OglDb21tYW5kIGxpbmUgb3B0aW9u cw0KJmd0OyAgICoNCiZndDsgLSAqIFJldHVybjogZmQgbnVtYmVyIGZyb20gLS1mZCBvcHRpb24s IG9yIC0xIGlmIG5vdCBzdXBwbGllZA0KJmd0OyArICogU2hvdWxkOg0KJmd0OyArICogIC0gU2V0 IHRoZSBmZF90YXAgYW5kIHBhc3RhX3Bhc3NfZmRzIHZhbHVlcyBpbiB0aGUgZXhlY3V0aW9uIGNv bnRleHQNCg0KVGhvc2UgJnF1b3Q7U2hvdWxkOiZxdW90OyBjb21tZW50cyBhcmUgc29tZXRoaW5n IHNwZWNpZmljIGluIGlzb2xhdGlvbi5jIHdoZXJlIHdlDQpoYXZlIGNsZWFybHkgZGVmaW5lZCBz dWJzZXF1ZW50IHN0ZXBzLiAgSGVyZSBpdCBkb2Vzbid0IG1ha2UgYSBsb3Qgb2YNCnNlbnNlLCB0 aGUgY29tbWVudCBhcyB5b3UgY2hhbmdlZCBpdCBhYm92ZSAoJnF1b3Q7UmVhZCBmZHMuLi4mcXVv dDspIGFscmVhZHkNCm1ha2VzIHRoaXMgdmVyeSBjbGVhci4gIE1vcmUgY29tbWVudHMgbWVhbnMg bW9yZSB0byByZWFkLCBzbyB0aGV5DQpzaG91bGQgYmUgd29ydGggaXQuDQoNCiZndDsgICAqLw0K Jmd0OyAtaW50IGNvbmZfdGFwX2ZkKGludCBhcmdjLCBjaGFyICoqYXJndikNCiZndDsgK3ZvaWQg Y29uZl9mZHMoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KJmd0OyAgew0K Jmd0OyAtCWNvbnN0IHN0cnVjdCBvcHRpb24gb3B0ZmRbXSA9IHsJeyAmcXVvdDtmZCZxdW90Oywg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdGJyB9LA0KJmd0OyAtCQkJCQl7IDAgfSwgfTsNCiZn dDsgLQljb25zdCBjaGFyICpmZGFyZyA9IE5VTEwsICpwOw0KJmd0OyAtCXVuc2lnbmVkIGxvbmcg dmFsOw0KJmd0OyArCWNvbnN0IHN0cnVjdCBvcHRpb24gb3B0W10gPSB7DQomZ3Q7ICsJCXsgJnF1 b3Q7ZmQmcXVvdDssICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRicgfSwNCiZndDsg KwkJeyAmcXVvdDtwYXNzLWZkcyZxdW90Oywgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIDIgfSwN Cg0KSGFybWxlc3MsIGJ1dCBzdGlsbCBtaWxkbHkgY29uZnVzaW5nOiB3aHkgMiBpbnN0ZWFkIG9m IDE/DQoNCiZndDsgKwkJeyAwIH0sDQomZ3Q7ICsJfTsNCiZndDsgIAlpbnQgbmFtZTsNCiZndDsg IA0KJmd0OyArCWMtJmd0O2ZkX3RhcCA9IC0xOw0KJmd0OyArCWMtJmd0O3Bhc3RhX3Bhc3NfZmRz ID0gZmFsc2U7DQomZ3Q7ICAJb3B0aW5kID0gMDsNCiZndDsgIAlkbyB7DQomZ3Q7IC0JCW5hbWUg PSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAmcXVvdDstOkY6JnF1b3Q7LCBvcHRmZCwgTlVMTCk7 DQomZ3Q7IC0JCWlmIChuYW1lID09ICdGJykNCiZndDsgLQkJCWZkYXJnID0gb3B0YXJnOw0KJmd0 OyAtCX0gd2hpbGUgKG5hbWUgIT0gLTEpOw0KJmd0OyAtDQomZ3Q7IC0JaWYgKCFmZGFyZykNCiZn dDsgLQkJcmV0dXJuIC0xOw0KJmd0OyArCQluYW1lID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwg JnF1b3Q7LTpGOiZxdW90Oywgb3B0LCBOVUxMKTsNCiZndDsgKwkJaWYgKG5hbWUgPT0gJ0YnKSB7 DQomZ3Q7ICsJCQljb25zdCBjaGFyICpwID0gb3B0YXJnOw0KJmd0OyArCQkJdW5zaWduZWQgbG9u ZyB2YWw7DQomZ3Q7ICANCiZndDsgLQlwID0gZmRhcmc7DQomZ3Q7IC0JaWYgKCFwYXJzZV91bnNp Z25lZCgmYW1wO3AsIDAsICZhbXA7dmFsKSB8fCAhcGFyc2VfZW9pKHApIHx8IHZhbCAmZ3Q7IElO VF9NQVgpDQomZ3Q7IC0JCWRpZSgmcXVvdDtJbnZhbGlkIC0tZmQ6ICVzJnF1b3Q7LCBmZGFyZyk7 DQomZ3Q7ICsJCQlpZiAoIXBhcnNlX3Vuc2lnbmVkKCZhbXA7cCwgMCwgJmFtcDt2YWwpIHx8ICFw YXJzZV9lb2kocCkgfHwNCiZndDsgKwkJCSAgICB2YWwgJmd0OyBJTlRfTUFYKQ0KJmd0OyArCQkJ CWRpZSgmcXVvdDtJbnZhbGlkIC0tZmQ6ICVzJnF1b3Q7LCBvcHRhcmcpOw0KJmd0OyAgDQomZ3Q7 IC0JcmV0dXJuIHZhbDsNCiZndDsgKwkJCWMtJmd0O2ZkX3RhcCA9IChpbnQpdmFsOyAvKiBNYXkg YmUgb3ZlcndyaXR0ZW4gaW4gaXNvbGF0ZV9mZCgpICovDQoNCk5vdCBqdXN0IGluIGlzb2xhdGVf ZmRzKCkuICBTYW1lIGNvbnNpZGVyYXRpb24gaGVyZTogdGhpcyBjb21tZW50DQpkb2Vzbid0IHJl YWxseSBhZGQgbXVjaCwgc28gSSdkIHJhdGhlciBkcm9wIGl0Lg0KDQomZ3Q7ICsJCX0gZWxzZSBp ZiAobmFtZSA9PSAyKSB7DQomZ3Q7ICsJCQljLSZndDtwYXN0YV9wYXNzX2ZkcyA9IHRydWU7DQom Z3Q7ICsJCX0NCiZndDsgKwl9IHdoaWxlIChuYW1lICE9IC0xKTsNCiZndDsgIH0NCiZndDsgIA0K Jmd0OyAgLyoqDQomZ3Q7IEBAIC0xMzE3LDYgKzEzMjQsNyBAQCB2b2lkIGNvbmYoc3RydWN0IGN0 eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KJmd0OyAgCQl7JnF1b3Q7Y29uZi1wYXRoJnF1 b3Q7LAlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJCSdjJyB9LA0KJmd0OyAgCQl7JnF1b3Q7Y2hy b290LWZhbGxiYWNrJnF1b3Q7LCBub19hcmd1bWVudCwJTlVMTCwgCQkzMiB9LA0KJmd0OyAgCQl7 JnF1b3Q7bm8tcGlkbnMmcXVvdDssCW5vX2FyZ3VtZW50LAkJTlVMTCwJCTMzIH0sDQomZ3Q7ICsJ CXsmcXVvdDtwYXNzLWZkcyZxdW90OywJcmVxdWlyZWRfYXJndW1lbnQsCU5VTEwsCQkzNCB9LA0K Jmd0OyAgCQl7IDAgfSwNCiZndDsgIAl9Ow0KJmd0OyAgCWNvbnN0IGNoYXIgKm9wdHN0cmluZyA9 ICZxdW90OytkcWZlbDpoczpjOkY6STpwOlA6bTphOm46TTpnOmk6bzpEOlM6SDo0NjF0OnU6VDpV OiZxdW90OzsNCiZndDsgQEAgLTE1NjcsNiArMTU3NSwxMSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0 eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KJmd0OyAgDQomZ3Q7ICAJCQljLSZndDtub19w aWRucyA9IHRydWU7DQomZ3Q7ICAJCQlicmVhazsNCiZndDsgKwkJY2FzZSAzNDoNCiZndDsgKwkJ CS8qIC0tcGFzcy1mZHMgd2FzIHBhcnNlZCBlYXJseSAqLw0KJmd0OyArCQkJaWYgKGMtJmd0O21v ZGUgIT0gTU9ERV9QQVNUQSkNCiZndDsgKwkJCQlkaWUoJnF1b3Q7LS1wYXNzLWZkcyBpcyBmb3Ig cGFzdGEgbW9kZSBvbmx5JnF1b3Q7KTsNCiZndDsgKwkJCWJyZWFrOw0KJmd0OyAgCQljYXNlICdk JzoNCiZndDsgIAkJCWMtJmd0O2RlYnVnID0gMTsNCiZndDsgIAkJCWMtJmd0O3F1aWV0ID0gMDsN CiZndDsgQEAgLTE2MDMsNyArMTYxNiw3IEBAIHZvaWQgY29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQg YXJnYywgY2hhciAqKmFyZ3YpDQomZ3Q7ICAJCQljLSZndDtmZF9jb250cm9sX2xpc3RlbiA9IGMt Jmd0O2ZkX2NvbnRyb2wgPSAtMTsNCiZndDsgIAkJCWJyZWFrOw0KJmd0OyAgCQljYXNlICdGJzoN CiZndDsgLQkJCS8qIC0tZmQgd2FzIHBhcnNlZCBlYXJseSBhbmQgYy0mZ3Q7ZmRfdGFwIHNldCBp biBtYWluKCkgKi8NCiZndDsgKwkJCS8qIC0tZmQgd2FzIHBhcnNlZCBlYXJseSAqLw0KJmd0OyAg CQkJYy0mZ3Q7b25lX29mZiA9IHRydWU7DQomZ3Q7ICAJCQkqYy0mZ3Q7c29ja19wYXRoID0gMDsN CiZndDsgIAkJCWJyZWFrOw0KJmd0OyBAQCAtMTkyOSw2ICsxOTQyLDkgQEAgdm9pZCBjb25mKHN0 cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndikNCiZndDsgIAllbHNlIGlmIChvcHRp bmQgIT0gYXJnYykNCiZndDsgIAkJZGllKCZxdW90O0V4dHJhIG5vbi1vcHRpb24gYXJndW1lbnQ6 ICVzJnF1b3Q7LCBhcmd2W29wdGluZF0pOw0KJmd0OyAgDQomZ3Q7ICsJaWYgKGMtJmd0O3Bhc3Rh X3Bhc3NfZmRzICZhbXA7JmFtcDsgKm5ldG5zKQ0KJmd0OyArCQlkaWUoJnF1b3Q7LS1wYXNzLWZk cyBjYW4gb25seSBiZSB1c2VkIHdoZW4gc3Bhd25pbmcgYSBjb21tYW5kJnF1b3Q7KTsNCiZndDsg Kw0KJmd0OyAgCWlmIChjLSZndDtub19waWRucyAmYW1wOyZhbXA7ICpuZXRucykNCiZndDsgIAkJ ZGllKCZxdW90Oy0tbm8tcGlkbnMgaXMgaW5jb21wYXRpYmxlIHdpdGggUElEIG9yIC0tbmV0bnMm cXVvdDspOw0KJmd0OyAgDQomZ3Q7IGRpZmYgLS1naXQgYS9jb25mLmggYi9jb25mLmgNCiZndDsg aW5kZXggMTliZjliYy4uNjU0ZmQxNiAxMDA2NDQNCiZndDsgLS0tIGEvY29uZi5oDQomZ3Q7ICsr KyBiL2NvbmYuaA0KJmd0OyBAQCAtNyw3ICs3LDcgQEANCiZndDsgICNkZWZpbmUgQ09ORl9IDQom Z3Q7ICANCiZndDsgIGVudW0gcGFzc3RfbW9kZXMgY29uZl9tb2RlKGludCBhcmdjLCBjaGFyICph cmd2W10pOw0KJmd0OyAtaW50IGNvbmZfdGFwX2ZkKGludCBhcmdjLCBjaGFyICoqYXJndik7DQom Z3Q7ICt2b2lkIGNvbmZfZmRzKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndik7 DQomZ3Q7ICB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsN CiZndDsgIHZvaWQgY29uZl9saXN0ZW5faGFuZGxlcihzdHJ1Y3QgY3R4ICpjLCB1aW50MzJfdCBl dmVudHMpOw0KJmd0OyAgdm9pZCBjb25mX2hhbmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3Qg ZXZlbnRzKTsNCiZndDsgZGlmZiAtLWdpdCBhL2lzb2xhdGlvbi5jIGIvaXNvbGF0aW9uLmMNCiZn dDsgaW5kZXggYTAwNDc1Zi4uNzY2YzI5NyAxMDA2NDQNCiZndDsgLS0tIGEvaXNvbGF0aW9uLmMN CiZndDsgKysrIGIvaXNvbGF0aW9uLmMNCiZndDsgQEAgLTI1MCw0NiArMjUwLDYzIEBAIHZvaWQg aXNvbGF0ZV9pbml0aWFsKHZvaWQpDQomZ3Q7ICB9DQomZ3Q7ICANCiZndDsgIC8qDQomZ3Q7IC0g KiBpc29sYXRlX2ZkcygpIC0gQ2xvc2UgbGVha2VkIGZpbGVzLCBidXQgbm90IC0tZmQsIHN0ZGlu LCBzdGRvdXQsIHN0ZGVycg0KJmd0OyArICogaXNvbGF0ZV9mZHMoKSAtIENsb3NlIGxlYWtlZCBm aWxlcyBpZiBhcHBsaWNhYmxlDQomZ3Q7ICsgKiBAYzoJCUV4ZWN1dGlvbiBjb250ZXh0DQomZ3Q7 ICAgKiBAYXJnYzoJQXJndW1lbnQgY291bnQNCiZndDsgLSAqIEBhcmd2OglDb21tYW5kIGxpbmUg b3B0aW9ucywgYXMgd2UgbmVlZCB0byBza2lwIGFueSBmaWxlIGdpdmVuIHZpYSAtLWZkDQomZ3Q7 ICsgKiBAYXJndjoJQ29tbWFuZCBsaW5lIG9wdGlvbnMNCiZndDsgICAqDQomZ3Q7ICAgKiBTaG91 bGQ6DQomZ3Q7IC0gKiAgLSBjbG9zZSBhbGwgb3BlbiBmaWxlcyBleGNlcHQgZm9yIHN0YW5kYXJk IHN0cmVhbXMgYW5kIHRoZSBvbmUgZnJvbSAtLWZkDQomZ3Q7ICsgKiAgLSBjbG9zZSBhbGwgb3Bl biBmaWxlcyBleGNlcHQgZm9yIHN0YW5kYXJkIHN0cmVhbXMgYW5kIHRoZSBvbmUgZnJvbSAtLWZk LA0KJmd0OyArICAgICAgdW5sZXNzIC0tcGFzcy1mZHMgaXMgdXNlZCwgaW4gd2hpY2ggY2FzZSBh bGwgZmRzIGFyZSBwcmVzZXJ2ZWQNCiZndDsgICAqICAtIG1vdmUgdGhlIC0tZmQgZGVzY3JpcHRv ciBvdXQgb2YgdGhlIHJhbmdlIDAtMg0KJmd0OyAtICoNCiZndDsgLSAqIFJldHVybjogbmV3IGZk IG51bWJlciBmb3IgZGVzY3JpcHRvciBmcm9tIC0tZmQsIG9yIC0xIGlmIG5vdCBzcGVjaWZpZWQN CiZndDsgKyAqICAtIHVwZGF0ZSB0aGUgZXhlY3V0aW9uIGNvbnRleHQNCiZndDsgICAqLw0KJmd0 OyAtaW50IGlzb2xhdGVfZmRzKGludCBhcmdjLCBjaGFyICoqYXJndikNCiZndDsgK3ZvaWQgaXNv bGF0ZV9mZHMoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KJmd0OyAgew0K Jmd0OyAtCWludCBmZCwgY2xvc2VfZnJvbSA9IFNUREVSUl9GSUxFTk8gKyAxOw0KJmd0OyArCWNv bmZfZmRzKGMsIGFyZ2MsIGFyZ3YpOw0KJmd0OyAgDQomZ3Q7IC0JZmQgPSBjb25mX3RhcF9mZChh cmdjLCBhcmd2KTsNCiZndDsgKwlpZiAoYy0mZ3Q7ZmRfdGFwICZndDs9IDAgJmFtcDsmYW1wOyBj LSZndDtmZF90YXAgJmx0OyBTVERFUlJfRklMRU5PICsgMSkgew0KDQpTVERFUlJfRklMRU5PICsg MSB1c2VkIHRvIGJlICdjbG9zZV9mcm9tJyBidXQgbm93IHlvdSdyZSBkcm9wcGluZyB0aGF0DQp2 YXJpYWJsZSBmb3Igc29tZSByZWFzb24gSSBkaWRuJ3QgdW5kZXJzdGFuZC4gIEhvd2V2ZXIsIHRo aXMgY2hhbmdlcw0KdGhlIGJlaGF2aW91ciAoaW4gYSB3YXkgdGhhdCdzIHJhdGhlciB1bmV4cGVj dGVkIGFzIGl0J3Mgbm90IG1lbnRpb25lZA0KaW4gdGhlIGNvbW1pdCBtZXNzYWdlKTogaW5zdGVh ZCBvZiBtb3ZpbmcgdGhlIC0tZmQgZGVzY3JpcHRvcg0KdW5jb25kaXRpb25hbGx5LCBpdCdzIG9u bHkgZG9uZSBpZiB0aGUgZGVzY3JpcHRvciBudW1iZXIgaXMgbGVzcyB0aGFuIDMuDQoNCklzIHRo aXMgYWRkaXRpb25hbCBjb25kaXRpb24gbmVlZGVkIGZvciBCdWJibGV3cmFwIHVzYWdlPyBJZiBp dCBpczoNCg0KLSB5b3UgY291bGQga2VlcCB0aGUgc2ltcGxpZmljYXRpb24gbWFkZSBwb3NzaWJs ZSBieSBjb21taXQgZmQ1YjA4MDdmNWQwDQogICgmcXVvdDtpc29sYXRpb246IE1vdmUgLS1mZCBk ZXNjcmlwdG9yIHRvIGEgbnVtYmVyIG9mIG91ciBjaG9vc2luZyZxdW90OykgaW4gdGhlDQogIGdl bmVyYWwgY2FzZSwgdGhhdCBpcywgbW92ZSBpdCB1bmNvbmRpdGlvbmFsbHkgdG8gMywgc28gdGhh dA0KICBjbG9zZV9yYW5nZSgpIGlzIHNpbXBsZQ0KDQotIG9uIC0tcGFzcy1mZHMsIHlvdSBkb24n dCBuZWVkIHRvIGNhbGwgY2xvc2VfcmFuZ2UoKSwgc28gdGhhdA0KICBzaW1wbGlmaWNhdGlvbiBp cyBub3QgbmVlZGVkLCBhbmQgdGhlcmUncyBubyBuZWVkIHRvIG1vdmUgdGhlIGZpbGUNCiAgZGVz Y3JpcHRvciB0byAzIGlmIGl0J3MgYWxyZWFkeSA9Jmd0OyAzDQoNClNvIHRoaXMgY291bGQgc2lt cGx5IGJlOg0KDQoJLyogTW92ZSB0aGUgcGFzc2VkIGZkIHRvIGEgbW9yZSBjb252ZW5pZW50IGxv Y2F0aW9uICgzKToNCgkgKiAtIG9uIC0tcGFzcy1mZHMsIG9ubHkgaWYgaXQgbWlnaHQgY29uZmxp Y3Qgd2l0aCBzdGFuZGFyZCBzdHJlYW1zDQoJICogLSBvdGhlcndpc2UsIHVuY29uZGl0aW9uYWxs eSwgdG8ga2VlcCBjbG9zZV9yYW5nZSgpIGJlbG93IHNpbXBsZQ0KCSAqLw0KCWlmIChjLSZndDtm ZF90YXAgJmd0Oz0gMCAmYW1wOyZhbXA7ICghYy0mZ3Q7cGFzc19mZHMgfHwgYy0mZ3Q7ZmRfdGFw ICZsdDsgY2xvc2VfZnJvbSkpIHsNCg0KLi4uYW5kIGFsbCB0aGUgcmVzdCB3b3VsZCByZW1haW4g YXMgaXMgKGV4Y2VwdCB0aGF0ICdmZCcgYmVjb21lcw0KJ2MtJmd0O2ZkX3RhcCcpLCB1bnRpbDoN Cg0KJmd0OyArCQkvKiBNb3ZlIHRoZSB0YXAgZmQgdG8gYSBzYWZlciBsb2NhdGlvbiAqLw0KJmd0 OyArCQlpbnQgbmV3X2ZkID0gZmNudGwoYy0mZ3Q7ZmRfdGFwLCBGX0RVUEZELCBTVERFUlJfRklM RU5PICsgMSk7DQomZ3Q7ICANCiZndDsgLQlpZiAoZmQgJmd0Oz0gMCkgew0KJmd0OyAtCQkvKiBN b3ZlIHRoZSBwYXNzZWQgZmQgdG8gYSBtb3JlIGNvbnZlbmllbnQgbG9jYXRpb24gKi8NCiZndDsg LQkJaWYgKGZkICE9IGNsb3NlX2Zyb20JCQkmYW1wOyZhbXA7DQomZ3Q7IC0JCSAgICAoZHVwMihm ZCwgY2xvc2VfZnJvbSkgIT0gY2xvc2VfZnJvbQl8fA0KJmd0OyAtCQkgICAgIGNsb3NlKGZkKSkp DQomZ3Q7IC0JCQlkaWVfcGVycm9yKCZxdW90O0NvdWxkIG5vdCBtb3ZlIC0tZmQgZGVzY3JpcHRv ciZxdW90Oyk7DQomZ3Q7IC0JCWZkID0gY2xvc2VfZnJvbSsrOw0KJmd0OyArCQlpZiAobmV3X2Zk ICZsdDsgMCkNCiZndDsgKwkJCWRpZV9wZXJyb3IoJnF1b3Q7Q291bGQgbm90IHJlbG9jYXRlIC0t ZmQgZGVzY3JpcHRvciZxdW90Oyk7DQomZ3Q7ICsNCiZndDsgKwkJY2xvc2UoYy0mZ3Q7ZmRfdGFw KTsNCiZndDsgKwkJYy0mZ3Q7ZmRfdGFwID0gbmV3X2ZkOw0KJmd0OyAgCX0NCg0KLi4uaGVyZSwg d2hlcmUgd2UgY291bGQgc2ltcGx5IHJldHVybiBlYXJseSBvbiBjLSZndDtwYXNzX2ZkcyAoY2Fu IHdlIGRyb3ANCidwYXN0YScgZnJvbSB0aGVyZT8gSSB0aGluayBpdCdzIHJlZHVuZGFudCkuICBS aWdodD8NCg0KJmd0OyAgDQomZ3Q7IC0JaWYgKGNsb3NlX3JhbmdlKGNsb3NlX2Zyb20sIH4wVSwg Q0xPU0VfUkFOR0VfVU5TSEFSRSkpIHsNCiZndDsgLQkJaWYgKGVycm5vID09IEVOT1NZUyB8fCBl cnJubyA9PSBFSU5WQUwpIHsNCiZndDsgLQkJCS8qIFRoaXMgcHJvYmFibHkgbWVhbnMgY2xvc2Vf cmFuZ2UoKSBvciB0aGUNCiZndDsgLQkJCSAqIENMT1NFX1JBTkdFX1VOU0hBUkUgZmxhZyBpcyBu b3Qgc3VwcG9ydGVkIGJ5IHRoZQ0KJmd0OyAtCQkJICoga2VybmVsLiAgTm90IG11Y2ggd2UgY2Fu IGRvIGhlcmUgZXhjZXB0IGNhcnJ5IG9uIGFuZA0KJmd0OyAtCQkJICogaG9wZSBmb3IgdGhlIGJl c3QuDQomZ3Q7IC0JCQkgKi8NCiZndDsgLQkJCXdhcm4oDQomZ3Q7IC0mcXVvdDtDYW4ndCB1c2Ug Y2xvc2VfcmFuZ2UoKSB0byBlbnN1cmUgbm8gZmlsZXMgbGVha2VkIGJ5IHBhcmVudCZxdW90Oyk7 DQomZ3Q7IC0JCX0gZWxzZSB7DQomZ3Q7IC0JCQlkaWVfcGVycm9yKCZxdW90O0ZhaWxlZCB0byBj bG9zZSBmaWxlcyBsZWFrZWQgYnkgcGFyZW50JnF1b3Q7KTsNCiZndDsgKwkvKiBDbG9zZSBsZWFr ZWQgZmlsZSBkZXNjcmlwdG9ycyB1bmxlc3MgLS1wYXNzLWZkcyBpcyB1c2VkICovDQomZ3Q7ICsJ aWYgKCFjLSZndDtwYXN0YV9wYXNzX2Zkcykgew0KJmd0OyArCQlpbnQgcmMgPSAwOw0KJmd0OyAr CQkvKiBLZWVwIHN0YW5kYXJkIHN0cmVhbXMgYW5kIHRoZSB0YXAgZmQgKGlmIGdpdmVuKSAqLw0K Jmd0OyArCQlpbnQga2VlcCA9IGMtJmd0O2ZkX3RhcCAmZ3Q7PSBTVERFUlJfRklMRU5PID8gYy0m Z3Q7ZmRfdGFwIDogU1RERVJSX0ZJTEVOTzsNCiZndDsgKw0KJmd0OyArCQlpZiAoa2VlcCAmZ3Q7 IFNUREVSUl9GSUxFTk8gKyAxKSB7DQomZ3Q7ICsJCQkvKiBUYXAgZmQgd2FzIHJlbG9jYXRlZCB0 byBhYm92ZSBzb21lIG90aGVyIGxlYWtlZCBmZChzKSovDQomZ3Q7ICsJCQkvKiBDbG9zZSBmZHMg YmV0d2VlbiBzdGRlcnIgYW5kIHRoZSB0YXAgZmQgKi8NCiZndDsgKwkJCWlmIChjbG9zZV9yYW5n ZShTVERFUlJfRklMRU5PICsgMSwga2VlcCAtIDEsIENMT1NFX1JBTkdFX1VOU0hBUkUpKQ0KJmd0 OyArCQkJCXJjID0gLTE7DQomZ3Q7ICAJCX0NCiZndDsgLQl9DQomZ3Q7ICANCiZndDsgLQlyZXR1 cm4gZmQ7DQomZ3Q7ICsJCS8qIENsb3NlIGFsbCBvdGhlciBmZHMgKi8NCiZndDsgKwkJaWYgKGNs b3NlX3JhbmdlKGtlZXAgKyAxLCB+MFUsIENMT1NFX1JBTkdFX1VOU0hBUkUpKQ0KJmd0OyArCQkJ cmMgPSAtMTsNCiZndDsgKw0KJmd0OyArCQlpZiAocmMpIHsNCiZndDsgKwkJCWlmIChlcnJubyA9 PSBFTk9TWVMgfHwgZXJybm8gPT0gRUlOVkFMKSB7DQomZ3Q7ICsJCQkJLyogVGhpcyBwcm9iYWJs eSBtZWFucyBjbG9zZV9yYW5nZSgpIG9yIHRoZQ0KJmd0OyArCQkJCSogQ0xPU0VfUkFOR0VfVU5T SEFSRSBmbGFnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlDQomZ3Q7ICsJCQkJKiBrZXJuZWwuICBO b3QgbXVjaCB3ZSBjYW4gZG8gaGVyZSBleGNlcHQgY2Fycnkgb24gYW5kDQomZ3Q7ICsJCQkJKiBo b3BlIGZvciB0aGUgYmVzdC4NCiZndDsgKwkJCQkqLw0KJmd0OyArCQkJCXdhcm4oDQomZ3Q7ICsJ JnF1b3Q7Q2FuJ3QgdXNlIGNsb3NlX3JhbmdlKCkgdG8gZW5zdXJlIG5vIGZpbGVzIGxlYWtlZCBi eSBwYXJlbnQmcXVvdDspOw0KJmd0OyArCQkJfSBlbHNlIHsNCiZndDsgKwkJCQlkaWVfcGVycm9y KCZxdW90O0ZhaWxlZCB0byBjbG9zZSBmaWxlcyBsZWFrZWQgYnkgcGFyZW50JnF1b3Q7KTsNCiZn dDsgKwkJCX0NCiZndDsgKwkJfQ0KJmd0OyArCX0NCiZndDsgIH0NCiZndDsgIA0KJmd0OyAgLyoq DQomZ3Q7IGRpZmYgLS1naXQgYS9pc29sYXRpb24uaCBiL2lzb2xhdGlvbi5oDQomZ3Q7IGluZGV4 IGVjNDcwMzguLmZlOGQ3ZDUgMTAwNjQ0DQomZ3Q7IC0tLSBhL2lzb2xhdGlvbi5oDQomZ3Q7ICsr KyBiL2lzb2xhdGlvbi5oDQomZ3Q7IEBAIC0xMSw3ICsxMSw3IEBADQomZ3Q7ICAjaW5jbHVkZSAm bHQ7dW5pc3RkLmgmZ3Q7DQomZ3Q7ICANCiZndDsgIHZvaWQgaXNvbGF0ZV9pbml0aWFsKHZvaWQp Ow0KJmd0OyAtaW50IGlzb2xhdGVfZmRzKGludCBhcmdjLCBjaGFyICoqYXJndik7DQomZ3Q7ICt2 b2lkIGlzb2xhdGVfZmRzKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndik7DQom Z3Q7ICB2b2lkIGlzb2xhdGVfdXNlcihjb25zdCBzdHJ1Y3QgY3R4ICpjLCB1aWRfdCB1aWQsIGdp ZF90IGdpZCwgYm9vbCB1c2VfdXNlcm5zLA0KJmd0OyAgCQkgIGNvbnN0IGNoYXIgKnVzZXJucyk7 DQomZ3Q7ICBpbnQgaXNvbGF0ZV9wcmVmb3JrKGNvbnN0IHN0cnVjdCBjdHggKmMpOw0KJmd0OyBk aWZmIC0tZ2l0IGEvcGFzc3QuMSBiL3Bhc3N0LjENCiZndDsgaW5kZXggMGI3ODBmZS4uNTZlMjQx ZiAxMDA2NDQNCiZndDsgLS0tIGEvcGFzc3QuMQ0KJmd0OyArKysgYi9wYXNzdC4xDQomZ3Q7IEBA IC03NjYsNiArNzY2LDExIEBAIG9mIGxvY2FsIHRyYWZmaWMgaW4gcGFzdGFcZlIgaW4gdGhlIFxm Qk5PVEVTXGZSIGZvciBtb3JlIGRldGFpbHMuDQomZ3Q7ICBEbyBub3QgY3JlYXRlIGEgdGFwIGRl dmljZSBpbiB0aGUgbmFtZXNwYWNlLiBJbiB0aGlzIG1vZGUsIFxmSXBhc3RhXGZSIG9ubHkNCiZn dDsgIGZvcndhcmRzIGxvb3BiYWNrIHRyYWZmaWMgYmV0d2VlbiBuYW1lc3BhY2VzLg0KJmd0OyAg DQomZ3Q7ICsuVFANCiZndDsgKy5CUiBcLVwtcGFzc1wtZmRzDQomZ3Q7ICtQcmVzZXJ2ZSBhbGwg b3BlbiBmaWxlIGRlc2NyaXB0b3JzIGFuZCBwYXNzIHRoZW0gdG8gdGhlIHNwYXduZWQgY29tbWFu ZC4NCiZndDsgK1RoaXMgb3B0aW9uIG1heSBvbmx5IGJlIHVzZWQgd2hlbiBcZkJwYXN0YVxmUiBz cGF3bnMgYSBjb21tYW5kLg0KJmd0OyArDQomZ3Q7ICAuU0ggRVhBTVBMRVMNCiZndDsgIA0KJmd0 OyAgLlNTIFxmQnBhc3RhDQomZ3Q7IGRpZmYgLS1naXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0KJmd0 OyBpbmRleCA1MDU0NTUxLi5mYTdhZmM1IDEwMDY0NA0KJmd0OyAtLS0gYS9wYXNzdC5jDQomZ3Q7 ICsrKyBiL3Bhc3N0LmMNCiZndDsgQEAgLTM0NSw3ICszNDUsNyBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpDQomZ3Q7ICAJYXJjaF9hdngyX2V4ZWMoYXJndik7DQomZ3Q7ICANCiZn dDsgIAlpc29sYXRlX2luaXRpYWwoKTsNCiZndDsgLQljLSZndDtmZF90YXAgPSBpc29sYXRlX2Zk cyhhcmdjLCBhcmd2KTsNCiZndDsgKwlpc29sYXRlX2ZkcyhjLCBhcmdjLCBhcmd2KTsNCiZndDsg IA0KJmd0OyAgCWlmICgoZGV2bnVsbF9mZCA9IG9wZW4oJnF1b3Q7L2Rldi9udWxsJnF1b3Q7LCBP X1JEV1IgfCBPX0NMT0VYRUMpKSAmbHQ7IDApDQomZ3Q7ICAJCWRpZV9wZXJyb3IoJnF1b3Q7RmFp bGVkIHRvIG9wZW4gL2Rldi9udWxsJnF1b3Q7KTsNCiZndDsgZGlmZiAtLWdpdCBhL3Bhc3N0Lmgg Yi9wYXNzdC5oDQomZ3Q7IGluZGV4IGFmZDhlOWYuLmIwNjVkNDEgMTAwNjQ0DQomZ3Q7IC0tLSBh L3Bhc3N0LmgNCiZndDsgKysrIGIvcGFzc3QuaA0KJmd0OyBAQCAtMTk2LDYgKzE5Niw3IEBAIHN0 cnVjdCBpcDZfY3R4IHsNCiZndDsgICAqIEBwYXN0YV9pZmk6CQlJbmRleCBvZiBuYW1lc3BhY2Ug aW50ZXJmYWNlIGZvciBwYXN0YQ0KJmd0OyAgICogQHBhc3RhX2NvbmZfbnM6CUNvbmZpZ3VyZSBu YW1lc3BhY2UgYWZ0ZXIgY3JlYXRpbmcgaXQNCiZndDsgICAqIEBub19waWRuczoJCURvbid0IGNy ZWF0ZSBhIG5ldyBQSUQgbmFtZXNwYWNlIGZvciBzcGF3bmVkIGNvbW1hbmQNCiZndDsgKyAqIEBw YXN0YV9wYXNzX2ZkczoJRG8gbm90IGNsb3NlIGxlYWtlZCBmaWxlIGRlc2NyaXB0b3JzDQoNCkFz IEkgd2FzIHN1Z2dlc3Rpbmcgb24gdjIsIHF1b3Rpbmc6DQoNCi0tLQ0KRG9lcyBpdCByZWFsbHkg bmVlZCB0byBoYXZlICdwYXN0YScgaW4gdGhlIG5hbWU/ICBTdXJlLCBpdCdzDQpwYXN0YS1vbmx5 LCBidXQgdGhpcyBpcyBhbHJlYWR5IGRvY3VtZW50ZWQgaW4gbWFuIHBhZ2UsIHVzYWdlLCBhbmQN CmNvbmYoKSwgc28gd2UgY291bGQgcHJvYmFibHkgc2F2ZSBzb21lIHR5cGluZyBieSBjYWxsaW5n IGl0ICdwYXNzX2ZkcycuDQotLS0NCg0KJmd0OyAgICogQGZ3ZDoJCUZvcndhcmRpbmcgdGFibGVz DQomZ3Q7ICAgKiBAZndkX3BlbmRpbmc6CVBlbmRpbmcgZm9yd2FyZCB0YWJsZXMNCiZndDsgICAq IEBub190Y3A6CQlEaXNhYmxlIFRDUCBvcGVyYXRpb24NCiZndDsgQEAgLTI4MCw2ICsyODEsNyBA QCBzdHJ1Y3QgY3R4IHsNCiZndDsgIAl1bnNpZ25lZCBpbnQgcGFzdGFfaWZpOw0KJmd0OyAgCWlu dCBwYXN0YV9jb25mX25zOw0KJmd0OyAgCWJvb2wgbm9fcGlkbnM7DQomZ3Q7ICsJYm9vbCBwYXN0 YV9wYXNzX2ZkczsNCiZndDsgIA0KJmd0OyAgCXN0cnVjdCBmd2RfdGFibGUgKmZ3ZFtQSUZfTlVN X1RZUEVTXTsNCiZndDsgIAlzdHJ1Y3QgZndkX3RhYmxlICpmd2RfcGVuZGluZ1tQSUZfTlVNX1RZ UEVTXTsNCg0KLS0gDQpTdGVmYW5vDQoNCjwvcHJlPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+ DQo= --_000_DM3PR11MB871367EDC1EBB06E9F0F58BBDA6E2DM3PR11MB8713namp_--