From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A131742CAD; Wed, 14 Jun 2023 06:56:55 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2F13A40DDB; Wed, 14 Jun 2023 06:56:55 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 93B7F40A7D for ; Wed, 14 Jun 2023 06:56:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686718612; x=1718254612; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=x7keqLowM9TIVBzXGqQ9iNQ+Fl8rvTPUG82Fc504GxQ=; b=TzUOt3cRjJ4WId02EPJtLRpfTMZVa2dzvru4+Fn3+cn5/alyZtJ49eRo TO9UIn8/Znu96R9IDEpKQMPGSSDmQtKZ7dVNA7bfSFb+IUnwQogC7T35p y84Gc5jcO13xt5nIdu7GTZ0p1aiukSZgppRnKb4BxS/dNG70EbJ0y7h3G w6XylkpDYneE9GEaJ7HzCyeC8Jwgyy56vloA8pXjkEj1Sux7mmjLas8wW Sb+Hp6O1T1qEVF8Fd9GVWCIVFjXt+HITJDQ7cvdPmn7oR6G8OYMkFwCUk sRwMbbmnUw9hZFH5S6CjMtILziLIGlMVRxadTYEqp/zFrpfCvtVogfwwq w==; X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="361001255" X-IronPort-AV: E=Sophos;i="6.00,241,1681196400"; d="scan'208,217,223";a="361001255" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jun 2023 21:56:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="958676508" X-IronPort-AV: E=Sophos;i="6.00,241,1681196400"; d="scan'208,217,223";a="958676508" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga006.fm.intel.com with ESMTP; 13 Jun 2023 21:56:49 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 13 Jun 2023 21:56:49 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 13 Jun 2023 21:56:48 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 13 Jun 2023 21:56:48 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 13 Jun 2023 21:56:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SnigssevXDU18V0MN8tdZey0KvZZT4OVcblm91iwsE6Ww63oV2Iwx0DooXH9MpaLkBaTaZzbYmmTXrjve4xsfZmBvG5g0RB8h23jbJmZKWTY7X80KmZVipau72W0c6P8N2k0A7Dcw5r7V2/1/p4iZOjiwMmN6L4bvM7oJpSn6ZplI71Qymb8R4+lb2VK9imX5ghUICQnFb1np4AF/2bsExUHgR6rl4yQRIeo4q8B9mDoTx3VXNeI3uJj5VBTEWBhXrzcqJHo42LfTf7Mcrp5iG4+a+rgeZbBH0M11qO4H6jGf6tgrD+IkhyU+Qk/RxnMesZPG7DoPKzNuF44IiYnWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x7keqLowM9TIVBzXGqQ9iNQ+Fl8rvTPUG82Fc504GxQ=; b=UlH+SiZ6xQReZ4Ow8tRuujJyDzV4ld+jjg0Y0mdmVLeh1MBMgg8mdiB3vnNw6OW+C/nDyifxcrvwYIf3HU+zS1l1u7CT8A+DkEwfHFpY1c+UeZwmOsT2JeHSoMXxp4qNHAOgOcJHWFS7M1KNb4rutCLlXLTsfevDHH8WRG6tYhH/oDxvfZUdLhuUSk32NkmBJWvend4LKBJzLV1BLuivdVR/7r/cPBDckjuI8tVZwtz320Ri1GKPLrqtoAIPDOTCfVpXIxsZcP9kzo/l/rnd3DTxe4hYIkarcJCH/q2HZljI5HIZZYNB8KCbJx11qde5HlWScS5zRSeY673bB6iIoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY5PR11MB6487.namprd11.prod.outlook.com (2603:10b6:930:31::17) by DM4PR11MB5996.namprd11.prod.outlook.com (2603:10b6:8:5f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37; Wed, 14 Jun 2023 04:56:46 +0000 Received: from CY5PR11MB6487.namprd11.prod.outlook.com ([fe80::bbdd:44b6:dd11:5070]) by CY5PR11MB6487.namprd11.prod.outlook.com ([fe80::bbdd:44b6:dd11:5070%4]) with mapi id 15.20.6455.045; Wed, 14 Jun 2023 04:56:46 +0000 From: "Hu, Jiayu" To: kumaraparameshwaran rathinavel CC: "dev@dpdk.org" Subject: RE: [PATCH v7] gro : ipv6 changes to support GRO for TCP/ipv6 Thread-Topic: [PATCH v7] gro : ipv6 changes to support GRO for TCP/ipv6 Thread-Index: AQHZnSF6YvQguC4Lekiz9WfEl9p3h6+H+OSQgAGxgICAABCvsA== Date: Wed, 14 Jun 2023 04:56:46 +0000 Message-ID: References: <20221020181425.48006-1-kumaraparmesh92@gmail.com> <20230612113110.72345-1-kumaraparamesh92@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY5PR11MB6487:EE_|DM4PR11MB5996:EE_ x-ms-office365-filtering-correlation-id: e6ad838d-e337-4c98-8b80-08db6c93c13c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: d73u3DsA9B/UfCFai+6mdCsz0XMT11GDHKJp2x7kWFvLgcBoBXK0CZvXClgJQRIr4+3LwEYZc6hDrJxWmtij0UzHZVIpqIxmzQb3vvWS+ekLOzsrT3eRjd6qGOui2EwAcXMmh7rzmuVdfqFVoGgPAJBdOgQ3+glcDidJnqhLWrxc27eweWmMkkWFoyO+uoKf+1iCG0oN5CqCYy1IoMLBlqa0qZLe8Vb7KdOOQCjG8q8hbcyCcSOlTsNkeOMr7t6ZI9+2DIR5KU8EC+bRHp3rqfG2+xj92Buvf85Ziz3KaE6FLS+PSxV5vKh7QDzupzN0gj+Sw7hGnlYZX5fgnuBGfCadnsMFOXRTgK5XnzwHqg9u5I6yvzas9hqeYJzF8FW1jFbzYEpzScHw6Cko8Tv9aq2TF3L8qEgR5Bc6PhZYahFrdFyM4Fa99lyBOO1oaAOhDJK5w4obwg7RsIFVkBeROokv/ABjS6uXmmz2E4FStRmErxMg130OG68wXMC0kj0mtuR9x1vQJkI/QtlqSIxu6RrXkqlg7GWkYV/LLjw72herPK9AYxDN0VgtDBzYd/8JtUb95Qhyg6FqWPxIySsZJBJmo34/Y6UttFkRW8Z1RL313xhtEs4aeAtz/WDsP2NV x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY5PR11MB6487.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199021)(26005)(6506007)(71200400001)(55016003)(186003)(478600001)(53546011)(9686003)(38070700005)(86362001)(7696005)(122000001)(4326008)(6916009)(52536014)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(316002)(33656002)(38100700002)(30864003)(2906002)(8676002)(8936002)(5660300002)(82960400001)(41300700001)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N2JHdzZNeHpNZ2RlY2RiTnhKQ1lGeU11V254Z2gwSHRSc1QrWUxzM1luTHdT?= =?utf-8?B?MUxSaTdHSUNKbGtJcE9EWmJ0UDZKb3VSeUdudnR3dlpkVm5SaG5jbndoS1BJ?= =?utf-8?B?Qk90M2s5ZXJxZlYyeTZmK2pGQi9GVnRtN2FqOXlMekNjTks5eklJVWZoMlBh?= =?utf-8?B?UFo1UFh6d2dILzIzNWxkMGtFN1N3Q2Z2NnZjdkprZFk2VUVoQjRiTXZUeFl1?= =?utf-8?B?SXdqdUdodGIrRXZKbDNUdDNKUGs5cHczQXRSTU5aNWd6SGxUZHB2Mlk1VHc1?= =?utf-8?B?bTlEbC9ZMXFLTzNZN016amY1TXRFT29Wa0h6RUp4bVpSS1NHMFFib1M3K2Zt?= =?utf-8?B?Z0VqNEZTVTJvcEpCbFBWU2xMdDJZbWZuQ0dnb2pTMGQyZEREencvUG1oSmhi?= =?utf-8?B?TUYzTzJ5anBvQ2tjNHRONnY2OFk5NVpmMCtQM21DZEY0MXd0K0R2K2lRK1NK?= =?utf-8?B?UkxWQmt5dXBPV2psVndMYjJ4cEZsSWFGMkxDdlhkdjFNSVRzbXlUOTNBRGYy?= =?utf-8?B?ZEpraElVMlhwY2liYm9DQ2ZOSHlrdS8rQmd0M3RtT1VMcUJJL21SUDRPS2pB?= =?utf-8?B?YU1Hc3NwbUs2RnJYRm9tbFJkalJSMHVRbGtvSUlwR2tJNmFmYVdOTHplcjhS?= =?utf-8?B?TzRiSmRGdVlLbUdaTXhZT1F5YmVDRXVSQ2xhOUUzSy9vdmxERG8wTStWUi9I?= =?utf-8?B?eEt5ajFqWW1pYnRnVWR3RkJNRVQvaTBlbFR2b0hrTFU3c3JZOFFXV21CdU1Z?= =?utf-8?B?K0M3MU9SOWpyNXpWbWZreThIQ01wNHRGS2YvajgrTWhCT0czZ3ZpdXJCWkNq?= =?utf-8?B?Uk1Md1QwcDdpN2RuMjZGZW5qSWlFZkRyNTIwOVVlelBPR2dIZCtMUEhsQUVp?= =?utf-8?B?MXh0OGl4dFpjWFhjSXlSSkRwQklndERyeVNWT1QySmRYZFdNWS9YYkg4M2hQ?= =?utf-8?B?RHdEK1FJbWxsNHhmWC9NLzJvZ3ZXWUxFajR0U1Frd01ON1ZQWWR1Q3hQN3RR?= =?utf-8?B?eGFlWFVNYW5VZFRTM3pVYWtRNXN2TFlMUDQ2Sm5TcXQ4ZjcyMmt2cUZsVXRl?= =?utf-8?B?TlM5ZjB0SVlVT1ZkVWFDYndNd0dOYXpoNCtFdGI2c1pnbXJqYlpidDZoSUt6?= =?utf-8?B?dFJoWndMaHN2TzhjWExoMG1WbExobW45WFlldStoSXlBSzlxZm1DcmliRkR2?= =?utf-8?B?SlB4RkV0LzJjU1ZrTm4vcHE2RXQ1aDkrYk45Y29EWW9CMUNxYXVkTTdiTHlm?= =?utf-8?B?NnZyLytsY2k2Z1BsYUl1MzE4MjNvN0tmVmN1ZFVoNVdlam1qb0NEcTE2R0s2?= =?utf-8?B?Z3RKVUt6ODdFUEllcCtOWURjZ3pnelRwOFJFNGJlVktpQjA1V3Mzd0dlNTJJ?= =?utf-8?B?eDFVOFlicW50SnM1c2JQUUpWY2Fkd2tGQ0xqS2pyeVVLM1ZJcFNCRUxNcTVy?= =?utf-8?B?ZjcrTDBCZHBqZlk5MWtua25ISGd6N3NZOE5Lb2E2YUcwWkhJRjVZbDhrZE5O?= =?utf-8?B?emYrd0VUTHdGUlJLd2I2bHY3YzRNRmdWODkySkJlemk1bEVxU2lWajEwcDJZ?= =?utf-8?B?cmVDR3BtbkFGWldWTVAwOFJ5UTNVbHd3VGhoVmIxZzFQOU0xNWxCZHpVNm5x?= =?utf-8?B?V2VjV05qdWIva2UvVEkxblJuVGh5TnNoUFl4SHg4Y3MzR0pHdkRwN0JrSnh5?= =?utf-8?B?Y3dNVjhIM1kzN0RURTRxYnFmR1VqdHhTelllY2hkMnp0SWZwTVFGaXNYNjM0?= =?utf-8?B?NlJXbkpicmppaG1pS2VqTlFxZ0Qzd1lLWFd1Y3o3TFlEek9pcDArSGMzU1RD?= =?utf-8?B?UEM1RDRCRzdnV3o0VmkvdnEzVDl5aDd5Um5TQ3dxRXBhdnllVlFZK3hwOGZI?= =?utf-8?B?bVR4Y2pmNEt2NXV5SnduK1ZtU3Evd2o3bm1QYmpqejlDKzJvWVUxbnE0aEJH?= =?utf-8?B?d3BUYTdZcXNiS09iNEtKMmhkK1FaMGxSeFZSOHNxWEpTRXpuNExCdFYvY0xP?= =?utf-8?B?ZVpxakFsc0kvc1d2RjdvM2JzZTNRYm1qY1phOUpWV2wwd2NIZ0NuRVAwQk9K?= =?utf-8?B?RWY5b3ZMNVJmendTM05IR0N6Q0c0OEpieTVpNGZuUFk0MWl4VmVWSm1HRHN4?= =?utf-8?Q?dckxDqBwy0iK9hnNakEjzMQpl?= Content-Type: multipart/alternative; boundary="_000_CY5PR11MB648741DBBF4B9AB43B3C3B1A925AACY5PR11MB6487namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY5PR11MB6487.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6ad838d-e337-4c98-8b80-08db6c93c13c X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 04:56:46.0590 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +vmvqDS6Y3i9Zjjp9rLlmwX/k/uBU1Rae8Dkcs5QHoQy9faDdlTDSZQGoyeF2E2l9r+1Mj/QoODBt9ep7eCTzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5996 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --_000_CY5PR11MB648741DBBF4B9AB43B3C3B1A925AACY5PR11MB6487namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbSBteSBleHBlcmllbmNlLCBpbmxpbmUgaXMgdXNlZCB3aXRoIOKAnHN0YXRpY+KAnSBhcyBh IGNvbXBpbGVyIGhpbnQuDQpJbiBjYXNlIG9mIGEgcmF3IGlubGluZSwgd2hpY2ggaXMgdXNlZCBi eSBib3RoIGluc2VydF9uZXdfdGNwX2l0ZW0oKQ0KYW5kIGRlbGV0ZV90Y3BfaXRlbSgpIG5vdywg aXQgc2VlbXMgeW91IG5lZWQgdG8gcHJvdmlkZSBhbiBleHRlcm5hbA0Kb25lIHRvIGF2b2lkIGxp bmtpbmcgZXJyb3IuIEJ1dCBJIGhhdmVu4oCZdCB1c2VkIGl0IGluIHRoaXMgd2F5IGJlZm9yZS4N Cg0KSWYgaW5saW5lIGlzIHRoZSByb290IGNhdXNlIG9mIHdpbmRvdyBjb21waWxlciBlcnJvcnMs IGRlZmluaW5nIHRoZSB0d28NCmZ1bmN0aW9ucyBhcyBzdGF0aWMgaW5saW5lIGluIGdyb190Y3Bf aW50ZXJuYWwuaCBtYXkgYmUgYSBzb2x1dGlvbi4NCg0KVGhhbmtzLA0KSmlheXUNCg0KRnJvbTog a3VtYXJhcGFyYW1lc2h3YXJhbiByYXRoaW5hdmVsIDxrdW1hcmFwYXJhbWVzaDkyQGdtYWlsLmNv bT4NClNlbnQ6IFdlZG5lc2RheSwgSnVuZSAxNCwgMjAyMyAxMTo0MyBBTQ0KVG86IEh1LCBKaWF5 dSA8amlheXUuaHVAaW50ZWwuY29tPg0KQ2M6IGRldkBkcGRrLm9yZw0KU3ViamVjdDogUmU6IFtQ QVRDSCB2N10gZ3JvIDogaXB2NiBjaGFuZ2VzIHRvIHN1cHBvcnQgR1JPIGZvciBUQ1AvaXB2Ng0K DQoNCg0KT24gVHVlLCBKdW4gMTMsIDIwMjMgYXQgNzo1NuKAr0FNIEh1LCBKaWF5dSA8amlheXUu aHVAaW50ZWwuY29tPG1haWx0bzpqaWF5dS5odUBpbnRlbC5jb20+PiB3cm90ZToNCkhpIEt1bWFy YSwNCg0KT3ZlcmFsbCwgdGhlIHBhdGNoIGxvb2tzIGdvb2QgdG8gbWUuIEJ1dCB5b3UgbmVlZCB0 byB1cGRhdGUgdGhlIGRvYyBhbmQgdGhlcmUNCmFyZSBzb21lIG1pbm9yIGNoYW5nZXMgbmVlZGVk IHRvIGJlIG1hZGUuIFBsZWFzZSBzZWUgcmVwbGllcyBpbmxpbmUuDQpUaGFua3MgSmlheXUuIEkg c2VlIHNvbWUgbGlua2luZyBlcnJvcnMgZm9yIHdpbmRvd3MuIEl0IHdhcyBhIGZvciBpbmVzZXJ0 X25ld190Y3BfaXRlbSB3aGljaCBpcyBub3cgaW4gKi5jIGZpbGUuIEVhcmxpZXIgdGhpcyB3YXMg aW5lcnRfbmV3X2l0ZW0gaW4gKi5oIGZpbGUuIFRoZSBlcnJvciBpcyB0aGF0IHRoZSBpbnNlcnRf bmV3X3RjcF9pdGVtIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZC4gV2FzIHRoZXJlIGEgcmVhc29uIHdo eSBpdCB3YXMgaW4gYSBoZWFkZXIgZmlsZSBlYXJsaWVyID8gSnVzdCB3YW50ZWQgdG8gY2hlY2sg d2l0aCB5b3UgaWYgeW91IGhhZCBlbmNvdW50ZXJlZCB0aGlzIGJlZm9yZS4gV2lsbCB0cnkgaXQg b24gYSB3aW5kb3dzIHNldHVwIGFzIHdlbGwuDQoNCkFmdGVyIGFsbCBjb21tZW50cyBhcmUgYWRk cmVzc2VkLCB5b3UgY2FuIGFkZCAiUmV2aWV3ZWQtYnk6IEppYXl1IEh1IDxqaWF5dS5odUBpbnRl bC5jb208bWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbT4+Ii4NCg0KVGhhbmtzLA0KSmlheXUNCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLdW1hcmEgUGFyYW1lc2h3YXJh biA8a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb208bWFpbHRvOmt1bWFyYXBhcmFtZXNoOTJAZ21h aWwuY29tPj4NCj4gU2VudDogTW9uZGF5LCBKdW5lIDEyLCAyMDIzIDc6MzEgUE0NCj4gVG86IEh1 LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPG1haWx0bzpqaWF5dS5odUBpbnRlbC5jb20+Pg0K PiBDYzogZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+OyBLdW1hcmEgUGFyYW1lc2h3 YXJhbg0KPiA8a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb208bWFpbHRvOmt1bWFyYXBhcmFtZXNo OTJAZ21haWwuY29tPj4NCj4gU3ViamVjdDogW1BBVENIIHY3XSBncm8gOiBpcHY2IGNoYW5nZXMg dG8gc3VwcG9ydCBHUk8gZm9yIFRDUC9pcHY2DQo+DQo+IFRoZSBwYXRjaCBhZGRzIEdSTyBzdXBw b3J0IGZvciBUQ1AvaXB2NiBwYWNrZXRzLiBUaGlzIGRvZXMgbm90IGluY2x1ZGUgdGhlDQo+IHN1 cHBvcnQgZm9yIHZ4bGFuLCB1ZHAgaXB2NiBwYWNrZXRzLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBL dW1hcmEgUGFyYW1lc2h3YXJhbiA8a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb208bWFpbHRvOmt1 bWFyYXBhcmFtZXNoOTJAZ21haWwuY29tPj4NCj4gLS0tDQo+IHYxOg0KPiAgICAgICAqIENoYW5n ZXMgdG8gc3VwcG9ydCBHUk8gZm9yIFRDUC9pcHY2IHBhY2tldHMuIFRoaXMgZG9lcyBub3QNCj4g aW5jbHVkZQ0KPiAgICAgICAgIHZ4bGFuIGNoYW5nZXMuDQo+ICAgICAgICogVGhlIEdSTyBpcyBw ZXJmb3JtZWQgb25seSBmb3IgaXB2NiBwYWNrZXRzIHRoYXQgZG9lcyBub3QgY29udGFpbg0KPiAg ICAgICAgZXh0ZW5zaW9uIGhlYWRlcnMuDQo+ICAgICAgICogVGhlIGxvZ2ljIGZvciB0aGUgVENQ IGNvYWxlc2NpbmcgcmVtYWlucyB0aGUgc2FtZSwgaW4gaXB2NiBoZWFkZXINCj4gICAgICAgICB0 aGUgc291cmNlIGFkZHJlc3MsIGRlc3RpbmF0aW9uIGFkZHJlc3MsIGZsb3cgbGFiZWwsIHZlcnNp b24gZmllbGRzDQo+ICAgICAgICAgYXJlIGV4cGVjdGVkIHRvIGJlIHRoZSBzYW1lLg0KPiAgICAg ICAqIFJlLW9yZ2FuaXNlZCB0aGUgY29kZSB0byByZXVzZSBjZXJ0YWluIHRjcCBmdW5jdGlvbnMg Zm9yIGJvdGggaXB2NA0KPiBhbmQNCj4gICAgICAgICBpcHY2IGZsb3dzLg0KPiB2MjoNCj4gICAg ICAgKiBGaXggY29tbWVudHMgaW4gZ3JvX3RjcDYuaCBoZWFkZXIgZmlsZS4NCj4NCj4gdjM6DQo+ ICAgICAgICogQWRkZXJlc3MgcmV2aWV3IGNvbW1lbnRzIHRvIGZpeCBjb2RlIGR1cGxpY2F0aW9u IGZvciB2NCBhbmQgdjYNCj4NCj4gdjQ6DQo+ICAgICAgICogQWRkcmVzc2VzIHJldmlldyBjb21t ZW50cyBmb3IgdjMsIGRvIG5vdCB1c2UgY2FsbGJhY2tzDQo+DQo+IHY1Og0KPiAgICAgICAqIEFk ZHJlc3MgcmV2aWV3IGNvbW1lbnRzDQo+DQo+IHY2Og0KPiAgICAgICAqIEZpeCB3YXJuaW5nIGFu ZCBjb2Rpbmcgc3R5bGUgaXNzdWVzDQo+DQo+IHY3Og0KPiAgICAgICAqIEZpeCBidWlsZCBjb21w aWxhdGlvbiBpc3N1ZQ0KPiAgbGliL2dyby9ncm9fdGNwNC5jICAgICAgICAgfCAxNzggKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgbGliL2dyby9ncm9fdGNwNC5oICAgICAgICAgfCAxNzAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIGxpYi9ncm8vZ3JvX3RjcDYuYyAgICAgICAgIHwg MjY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9ncm8vZ3Jv X3RjcDYuaCAgICAgICAgIHwgMTYxICsrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9ncm8v Z3JvX3RjcF9pbnRlcm5hbC5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKw0KPiBsaWIvZ3JvL2dy b190Y3BfaW50ZXJuYWwuaCB8IDIxMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAg bGliL2dyby9ncm9fdnhsYW5fdGNwNC5jICAgfCAgMjMgKystLQ0KPiAgbGliL2dyby9ncm9fdnhs YW5fdGNwNC5oICAgfCAgIDMgKy0NCj4gIGxpYi9ncm8vbWVzb24uYnVpbGQgICAgICAgIHwgICAy ICsNCj4gIGxpYi9ncm8vcnRlX2dyby5jICAgICAgICAgIHwgIDgzICsrKysrKysrKystLQ0KPiAg bGliL2dyby9ydGVfZ3JvLmggICAgICAgICAgfCAgIDMgKw0KPiAgMTEgZmlsZXMgY2hhbmdlZCwg ODk3IGluc2VydGlvbnMoKyksIDMzMyBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiBsaWIvZ3JvL2dyb190Y3A2LmMgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvZ3JvL2dyb190Y3A2 LmggIGNyZWF0ZSBtb2RlDQo+IDEwMDY0NCBsaWIvZ3JvL2dyb190Y3BfaW50ZXJuYWwuYyAgY3Jl YXRlIG1vZGUgMTAwNjQ0DQo+IGxpYi9ncm8vZ3JvX3RjcF9pbnRlcm5hbC5oDQo+DQo+IGRpZmYg LS1naXQgYS9saWIvZ3JvL2dyb190Y3A0LmMgYi9saWIvZ3JvL2dyb190Y3A0LmMgaW5kZXgNCj4g MDAxNDA5NmU2My4uNDJmZWU3OGYzMCAxMDA2NDQNCj4gLS0tIGEvbGliL2dyby9ncm9fdGNwNC5j DQo+ICsrKyBiL2xpYi9ncm8vZ3JvX3RjcDQuYw0KPiAtDQo+ICBpbnQzMl90DQo+ICBncm9fdGNw NF9yZWFzc2VtYmxlKHN0cnVjdCBydGVfbWJ1ZiAqcGt0LA0KPiAgICAgICAgICAgICAgIHN0cnVj dCBncm9fdGNwNF90YmwgKnRibCwNCj4gQEAgLTIwMiw5ICsxMjIsOCBAQCBncm9fdGNwNF9yZWFz c2VtYmxlKHN0cnVjdCBydGVfbWJ1ZiAqcGt0LA0KPiAgICAgICB1aW50OF90IGlzX2F0b21pYzsN Cj4NCj4gICAgICAgc3RydWN0IHRjcDRfZmxvd19rZXkga2V5Ow0KPiAtICAgICB1aW50MzJfdCBj dXJfaWR4LCBwcmV2X2lkeCwgaXRlbV9pZHg7DQo+ICsgICAgIHVpbnQzMl90IGl0ZW1faWR4Ow0K PiAgICAgICB1aW50MzJfdCBpLCBtYXhfZmxvd19udW0sIHJlbWFpbmluZ19mbG93X251bTsNCj4g LSAgICAgaW50IGNtcDsNCj4gICAgICAgdWludDhfdCBmaW5kOw0KPg0KPiAgICAgICAvKg0KPiBA QCAtMjE2LDcgKzEzNSw3IEBAIGdyb190Y3A0X3JlYXNzZW1ibGUoc3RydWN0IHJ0ZV9tYnVmICpw a3QsDQo+DQo+ICAgICAgIGV0aF9oZHIgPSBydGVfcGt0bWJ1Zl9tdG9kKHBrdCwgc3RydWN0IHJ0 ZV9ldGhlcl9oZHIgKik7DQo+ICAgICAgIGlwdjRfaGRyID0gKHN0cnVjdCBydGVfaXB2NF9oZHIg KikoKGNoYXIgKilldGhfaGRyICsgcGt0LT5sMl9sZW4pOw0KPiAtICAgICB0Y3BfaGRyID0gKHN0 cnVjdCBydGVfdGNwX2hkciAqKSgoY2hhciAqKWlwdjRfaGRyICsgcGt0LT5sM19sZW4pOw0KPiAr ICAgICB0Y3BfaGRyID0gcnRlX3BrdG1idWZfbXRvZF9vZmZzZXQocGt0LCBzdHJ1Y3QgcnRlX3Rj cF9oZHIgKiwNCj4gK3BrdC0+bDJfbGVuICsgcGt0LT5sM19sZW4pOw0KDQpObyBuZWVkIHRvIGNo YW5nZSB0aGUgbWV0aG9kIHRvIG9idGFpbiB0Y3BfaGRyLg0KDQo+ICAgICAgIGhkcl9sZW4gPSBw a3QtPmwyX2xlbiArIHBrdC0+bDNfbGVuICsgcGt0LT5sNF9sZW47DQo+DQo+ICAgICAgIC8qDQo+ IEBAIC0yMzAsNyArMTQ5LDYgQEAgZ3JvX3RjcDRfcmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21idWYg KnBrdCwNCj4gICAgICAgaXBfdGxlbiA9IHJ0ZV9iZV90b19jcHVfMTYoaXB2NF9oZHItPnRvdGFs X2xlbmd0aCk7DQo+ICAgICAgIGlmIChwa3QtPnBrdF9sZW4gPiAodWludDMyX3QpKGlwX3RsZW4g KyBwa3QtPmwyX2xlbikpDQo+ICAgICAgICAgICAgICAgcnRlX3BrdG1idWZfdHJpbShwa3QsIHBr dC0+cGt0X2xlbiAtIGlwX3RsZW4gLSBwa3QtPmwyX2xlbik7DQo+IC0NCk5vIG5lZWQgdG8gZGVs ZXRlIHRoZSBibGFuayBsaW5lLg0KDQo+ICAgICAgIC8qDQo+ICAgICAgICAqIERvbid0IHByb2Nl c3MgdGhlIHBhY2tldCB3aG9zZSBwYXlsb2FkIGxlbmd0aCBpcyBsZXNzIHRoYW4gb3INCj4gICAg ICAgICogZXF1YWwgdG8gMC4NCj4gQEAgLTIzOSw2ICsxNTcsMTMgQEAgZ3JvX3RjcDRfcmVhc3Nl bWJsZShzdHJ1Y3QgcnRlX21idWYgKnBrdCwNCj4gICAgICAgaWYgKHRjcF9kbCA8PSAwKQ0KPiAg ICAgICAgICAgICAgIHJldHVybiAtMTsNCj4NCj4gKyAgICAgcnRlX2V0aGVyX2FkZHJfY29weSgm KGV0aF9oZHItPnNyY19hZGRyKSwNCj4gJihrZXkuY21uX2tleS5ldGhfc2FkZHIpKTsNCj4gKyAg ICAgcnRlX2V0aGVyX2FkZHJfY29weSgmKGV0aF9oZHItPmRzdF9hZGRyKSwNCj4gJihrZXkuY21u X2tleS5ldGhfZGFkZHIpKTsNCj4gKyAgICAga2V5LmlwX3NyY19hZGRyID0gaXB2NF9oZHItPnNy Y19hZGRyOw0KPiArICAgICBrZXkuaXBfZHN0X2FkZHIgPSBpcHY0X2hkci0+ZHN0X2FkZHI7DQo+ ICsgICAgIGtleS5jbW5fa2V5LnNyY19wb3J0ID0gdGNwX2hkci0+c3JjX3BvcnQ7DQo+ICsgICAg IGtleS5jbW5fa2V5LmRzdF9wb3J0ID0gdGNwX2hkci0+ZHN0X3BvcnQ7DQo+ICsgICAgIGtleS5j bW5fa2V5LnJlY3ZfYWNrID0gdGNwX2hkci0+cmVjdl9hY2s7DQoNCkFkZCBhIGJsYW5rIGxpbmUg YmV0d2VlbiBrZXkuY21uX2tleS5yZWN2X2FjayBhc3NpZ25tZW50IGFuZCBhbm5vdGF0aW9uLg0K DQo+ICAgICAgIC8qDQo+ICAgICAgICAqIFNhdmUgSVB2NCBJRCBmb3IgdGhlIHBhY2tldCB3aG9z ZSBERiBiaXQgaXMgMC4gRm9yIHRoZSBwYWNrZXQNCj4gICAgICAgICogd2hvc2UgREYgYml0IGlz IDEsIElQdjQgSUQgaXMgaWdub3JlZC4NCj4gQEAgLTI0NiwxNSArMTcxLDYgQEAgZ3JvX3RjcDRf cmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21idWYgKnBrdCwNCj4gICAgICAgZnJhZ19vZmYgPSBydGVf YmVfdG9fY3B1XzE2KGlwdjRfaGRyLT5mcmFnbWVudF9vZmZzZXQpOw0KPiAgICAgICBpc19hdG9t aWMgPSAoZnJhZ19vZmYgJiBSVEVfSVBWNF9IRFJfREZfRkxBRykgPT0NCj4gUlRFX0lQVjRfSERS X0RGX0ZMQUc7DQo+ICAgICAgIGlwX2lkID0gaXNfYXRvbWljID8gMCA6IHJ0ZV9iZV90b19jcHVf MTYoaXB2NF9oZHItPnBhY2tldF9pZCk7DQo+IC0gICAgIHNlbnRfc2VxID0gcnRlX2JlX3RvX2Nw dV8zMih0Y3BfaGRyLT5zZW50X3NlcSk7DQo+IC0NCj4gLSAgICAgcnRlX2V0aGVyX2FkZHJfY29w eSgmKGV0aF9oZHItPnNyY19hZGRyKSwgJihrZXkuZXRoX3NhZGRyKSk7DQo+IC0gICAgIHJ0ZV9l dGhlcl9hZGRyX2NvcHkoJihldGhfaGRyLT5kc3RfYWRkciksICYoa2V5LmV0aF9kYWRkcikpOw0K PiAtICAgICBrZXkuaXBfc3JjX2FkZHIgPSBpcHY0X2hkci0+c3JjX2FkZHI7DQo+IC0gICAgIGtl eS5pcF9kc3RfYWRkciA9IGlwdjRfaGRyLT5kc3RfYWRkcjsNCj4gLSAgICAga2V5LnNyY19wb3J0 ID0gdGNwX2hkci0+c3JjX3BvcnQ7DQo+IC0gICAgIGtleS5kc3RfcG9ydCA9IHRjcF9oZHItPmRz dF9wb3J0Ow0KPiAtICAgICBrZXkucmVjdl9hY2sgPSB0Y3BfaGRyLT5yZWN2X2FjazsNCj4NCj4g ICAgICAgLyogU2VhcmNoIGZvciBhIG1hdGNoZWQgZmxvdy4gKi8NCj4gICAgICAgbWF4X2Zsb3df bnVtID0gdGJsLT5tYXhfZmxvd19udW07DQo+IEBAIC0yNzAsNjMgKzE4Niw0NCBAQCBncm9fdGNw NF9yZWFzc2VtYmxlKHN0cnVjdCBydGVfbWJ1ZiAqcGt0LA0KPiAgICAgICAgICAgICAgIH0NCj4g ICAgICAgfQ0KPg0KPiAtICAgICAvKg0KPiAtICAgICAgKiBGYWlsIHRvIGZpbmQgYSBtYXRjaGVk IGZsb3cuIEluc2VydCBhIG5ldyBmbG93IGFuZCBzdG9yZSB0aGUNCj4gLSAgICAgICogcGFja2V0 IGludG8gdGhlIGZsb3cuDQo+IC0gICAgICAqLw0KPiAgICAgICBpZiAoZmluZCA9PSAwKSB7DQo+ IC0gICAgICAgICAgICAgaXRlbV9pZHggPSBpbnNlcnRfbmV3X2l0ZW0odGJsLCBwa3QsIHN0YXJ0 X3RpbWUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVkFMSURfQVJSQVlfSU5E RVgsIHNlbnRfc2VxLCBpcF9pZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNf YXRvbWljKTsNCj4gKyAgICAgICAgICAgICBzZW50X3NlcSA9IHJ0ZV9iZV90b19jcHVfMzIodGNw X2hkci0+c2VudF9zZXEpOw0KPiArICAgICAgICAgICAgIGl0ZW1faWR4ID0gaW5zZXJ0X25ld190 Y3BfaXRlbShwa3QsIHRibC0+aXRlbXMsICZ0YmwtDQo+ID5pdGVtX251bSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRibC0+bWF4X2l0ZW1fbnVtLA0K PiBzdGFydF90aW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU5WQUxJRF9BUlJBWV9JTkRFWCwNCj4gc2VudF9zZXEsIGlwX2lkLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfYXRvbWljKTsNCj4gICAg ICAgICAgICAgICBpZiAoaXRlbV9pZHggPT0gSU5WQUxJRF9BUlJBWV9JTkRFWCkNCj4gICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gICAgICAgICAgICAgICBpZiAoaW5zZXJ0X25l d19mbG93KHRibCwgJmtleSwgaXRlbV9pZHgpID09DQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElOVkFMSURfQVJSQVlfSU5ERVgpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIElO VkFMSURfQVJSQVlfSU5ERVgpIHsNCj4gICAgICAgICAgICAgICAgICAgICAgIC8qDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgKiBGYWlsIHRvIGluc2VydCBhIG5ldyBmbG93LCBzbyBkZWxldGUg dGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgKiBzdG9yZWQgcGFja2V0Lg0KPiAtICAgICAg ICAgICAgICAgICAgICAgICovDQo+IC0gICAgICAgICAgICAgICAgICAgICBkZWxldGVfaXRlbSh0 YmwsIGl0ZW1faWR4LCBJTlZBTElEX0FSUkFZX0lOREVYKTsNCj4gKyAgICAgICAgICAgICAgICAg ICAgICovDQo+ICsgICAgICAgICAgICAgICAgICAgICBkZWxldGVfdGNwX2l0ZW0odGJsLT5pdGVt cywgaXRlbV9pZHgsICZ0YmwtDQo+ID5pdGVtX251bSwNCj4gK0lOVkFMSURfQVJSQVlfSU5ERVgp Ow0KPiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiAgICAgICAgICAgICAgIH0N Cj4gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gICAgICAgfQ0KPg0KPiAtICAgICAvKg0KPiAt ICAgICAgKiBDaGVjayBhbGwgcGFja2V0cyBpbiB0aGUgZmxvdyBhbmQgdHJ5IHRvIGZpbmQgYSBu ZWlnaGJvciBmb3INCj4gLSAgICAgICogdGhlIGlucHV0IHBhY2tldC4NCj4gLSAgICAgICovDQo+ IC0gICAgIGN1cl9pZHggPSB0YmwtPmZsb3dzW2ldLnN0YXJ0X2luZGV4Ow0KPiAtICAgICBwcmV2 X2lkeCA9IGN1cl9pZHg7DQo+IC0gICAgIGRvIHsNCj4gLSAgICAgICAgICAgICBjbXAgPSBjaGVj a19zZXFfb3B0aW9uKCYodGJsLT5pdGVtc1tjdXJfaWR4XSksIHRjcF9oZHIsDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbnRfc2VxLCBpcF9pZCwgcGt0LT5sNF9sZW4sIHRjcF9k bCwgMCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfYXRvbWljKTsNCj4gLSAg ICAgICAgICAgICBpZiAoY21wKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2Vf dHdvX3RjcDRfcGFja2V0cygmKHRibC0+aXRlbXNbY3VyX2lkeF0pLA0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGt0LCBjbXAsIHNlbnRfc2VxLCBpcF9p ZCwgMCkpDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KPiAtICAg ICAgICAgICAgICAgICAgICAgLyoNCj4gLSAgICAgICAgICAgICAgICAgICAgICAqIEZhaWwgdG8g bWVyZ2UgdGhlIHR3byBwYWNrZXRzLCBhcyB0aGUgcGFja2V0DQo+IC0gICAgICAgICAgICAgICAg ICAgICAgKiBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXggdmFsdWUuIFN0b3JlDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgKiB0aGUgcGFja2V0IGludG8gdGhlIGZsb3cuDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgKi8NCj4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRf bmV3X2l0ZW0odGJsLCBwa3QsIHN0YXJ0X3RpbWUsIGN1cl9pZHgsDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50X3NlcSwgaXBfaWQsIGlzX2F0b21p YykgPT0NCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlZBTElEX0FS UkFZX0lOREVYKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ IC0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gLSAgICAgICAgICAgICB9DQo+IC0g ICAgICAgICAgICAgcHJldl9pZHggPSBjdXJfaWR4Ow0KPiAtICAgICAgICAgICAgIGN1cl9pZHgg PSB0YmwtPml0ZW1zW2N1cl9pZHhdLm5leHRfcGt0X2lkeDsNCj4gLSAgICAgfSB3aGlsZSAoY3Vy X2lkeCAhPSBJTlZBTElEX0FSUkFZX0lOREVYKTsNCj4gKyAgICAgcmV0dXJuIHByb2Nlc3NfdGNw X2l0ZW0ocGt0LCB0Y3BfaGRyLCB0Y3BfZGwsIHRibC0+aXRlbXMsIHRibC0NCj4gPmZsb3dzW2ld LnN0YXJ0X2luZGV4LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnRibC0+aXRlbV9udW0sIHRibC0NCj4gPm1heF9pdGVtX251bSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwX2lkLCBpc19hdG9taWMsIHN0 YXJ0X3RpbWUpOw0KPiArfQ0KPg0KPiAtICAgICAvKiBGYWlsIHRvIGZpbmQgYSBuZWlnaGJvciwg c28gc3RvcmUgdGhlIHBhY2tldCBpbnRvIHRoZSBmbG93LiAqLw0KPiAtICAgICBpZiAoaW5zZXJ0 X25ld19pdGVtKHRibCwgcGt0LCBzdGFydF90aW1lLCBwcmV2X2lkeCwgc2VudF9zZXEsDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwX2lkLCBpc19hdG9taWMpID09IElOVkFMSURf QVJSQVlfSU5ERVgpDQo+IC0gICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiArLyoNCj4gKyAqIHVw ZGF0ZSB0aGUgcGFja2V0IGxlbmd0aCBmb3IgdGhlIGZsdXNoZWQgcGFja2V0Lg0KPiArICovDQo+ ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gK3VwZGF0ZV9oZWFkZXIoc3RydWN0IGdyb190Y3BfaXRl bSAqaXRlbSkgew0KPiArICAgICBzdHJ1Y3QgcnRlX2lwdjRfaGRyICppcHY0X2hkcjsNCj4gKyAg ICAgc3RydWN0IHJ0ZV9tYnVmICpwa3QgPSBpdGVtLT5maXJzdHNlZzsNCj4NCj4gLSAgICAgcmV0 dXJuIDA7DQo+ICsgICAgIGlwdjRfaGRyID0gKHN0cnVjdCBydGVfaXB2NF9oZHIgKikocnRlX3Br dG1idWZfbXRvZChwa3QsIGNoYXIgKikgKw0KPiArICAgICAgICAgICAgICAgICAgICAgcGt0LT5s Ml9sZW4pOw0KPiArICAgICBpcHY0X2hkci0+dG90YWxfbGVuZ3RoID0gcnRlX2NwdV90b19iZV8x Nihwa3QtPnBrdF9sZW4gLQ0KPiArICAgICAgICAgICAgICAgICAgICAgcGt0LT5sMl9sZW4pOw0K PiAgfQ0KPg0KPiAgdWludDE2X3QNCj4gQEAgLTM1Myw3ICsyNTAsOCBAQCBncm9fdGNwNF90Ymxf dGltZW91dF9mbHVzaChzdHJ1Y3QgZ3JvX3RjcDRfdGJsICp0YmwsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIERlbGV0ZSB0aGUgcGFja2V0IGFuZCBnZXQgdGhlIG5leHQNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcGFja2V0IGluIHRoZSBmbG93Lg0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaiA9IGRlbGV0ZV9pdGVtKHRibCwgaiwgSU5WQUxJRF9BUlJBWV9JTkRFWCk7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogPSBkZWxldGVfdGNwX2l0ZW0odGJsLT5p dGVtcywgaiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnRibC0+aXRlbV9udW0sDQo+IElOVkFMSURfQVJSQVlfSU5ERVgpOw0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0YmwtPmZsb3dzW2ldLnN0YXJ0X2luZGV4ID0gajsN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gSU5WQUxJRF9BUlJBWV9J TkRFWCkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YmwtPmZsb3df bnVtLS07DQo+IGRpZmYgLS1naXQgYS9saWIvZ3JvL2dyb190Y3A0LmggYi9saWIvZ3JvL2dyb190 Y3A0LmggaW5kZXgNCj4gMjEyZjk3YTA0Mi4uYzAxNTRhZmEyNCAxMDA2NDQNCj4gLS0tIGEvbGli L2dyby9ncm9fdGNwNC5oDQo+ICsrKyBiL2xpYi9ncm8vZ3JvX3RjcDQuaA0KPiBAQCAtNSwzMiAr NSwxNSBAQA0KPiAgI2lmbmRlZiBfR1JPX1RDUDRfSF8NCj4gICNkZWZpbmUgX0dST19UQ1A0X0hf DQo+DQo+IC0jaW5jbHVkZSA8cnRlX3RjcC5oPg0KPiArI2luY2x1ZGUgPGdyb190Y3BfaW50ZXJu YWwuaD4NCg0KVXNlICIjaW5jbHVkZSAiZ3JvX3RjcF9pbnRlcm5hbC5oIiIuDQoNCj4NCj4gLSNk ZWZpbmUgSU5WQUxJRF9BUlJBWV9JTkRFWCAweGZmZmZmZmZmVUwgICNkZWZpbmUNCj4gR1JPX1RD UDRfVEJMX01BWF9JVEVNX05VTSAoMTAyNFVMICogMTAyNFVMKQ0KPg0KPiBkaWZmIC0tZ2l0IGEv bGliL2dyby9ncm9fdGNwNi5jIGIvbGliL2dyby9ncm9fdGNwNi5jIG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjBlYTczNzQxYzENCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9saWIvZ3JvL2dyb190Y3A2LmMNCj4gQEAgLTAsMCArMSwyNjcgQEANCj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDE3 IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKi8NCg0KVGhlIGxpY2Vuc2UgaGVhZGVyIGlzIGluY29y cmVjdCwgYW5kIHBsZWFzZSB1cGRhdGUuIFNhbWUgYW5kIHNpbWlsYXIgaXNzdWUgaGFwcGVucw0K aW4gdGhlIG5ldyBhZGRlZCBmaWxlcywgbGlrZSBncm9fdGNwX2ludGVybmFsLmguDQoNCj4gKw0K PiBkaWZmIC0tZ2l0IGEvbGliL2dyby9ncm9fdGNwNi5oIGIvbGliL2dyby9ncm9fdGNwNi5oIG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmNjMDJiMDAwNGENCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi9saWIvZ3JvL2dyb190Y3A2LmgNCj4gQEAgLTAsMCArMSwxNjEg QEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENv cHlyaWdodChjKSAyMDE3IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKi8NCg0KRGl0dG8uDQoNCj4g Kw0KPiArI2lmbmRlZiBfR1JPX1RDUDZfSF8NCj4gKyNkZWZpbmUgX0dST19UQ1A2X0hfDQo+ICsN Cj4gKyNpbmNsdWRlIDxncm9fdGNwX2ludGVybmFsLmg+DQoNClVzZSAiI2luY2x1ZGUgImdyb190 Y3BfaW50ZXJuYWwuaCIiLg0KDQo+ICsNCj4gKyNkZWZpbmUgSU5WQUxJRF9BUlJBWV9JTkRFWCAw eGZmZmZmZmZmVUwgI2RlZmluZQ0KDQpEdXBsaWNhdGUgZGVmaW5pdGlvbiBmb3IgSU5WQUxJRF9B UlJBWV9JTkRFWCBpbiBib3RoIGdyb190Y3A2LmgNCmFuZCBncm9fdGNwX2ludGVybmFsLmguDQoN Cj4gK0dST19UQ1A2X1RCTF9NQVhfSVRFTV9OVU0gKDEwMjRVTCAqIDEwMjRVTCkNCj4gKw0KPiAr LyogSGVhZGVyIGZpZWxkcyByZXByZXNlbnRpbmcgYSBUQ1AvSVB2NiBmbG93ICovIHN0cnVjdCB0 Y3A2X2Zsb3dfa2V5IHsNCj4gKyAgICAgc3RydWN0IGNtbl90Y3Bfa2V5IGNtbl9rZXk7DQo+ICsg ICAgIHVpbnQ4X3QgIHNyY19hZGRyWzE2XTsNCj4gKyAgICAgdWludDhfdCAgZHN0X2FkZHJbMTZd Ow0KPiArICAgICBydGVfYmUzMl90IHZ0Y19mbG93Ow0KPiArfTsNCj4gKw0KPiBkaWZmIC0tZ2l0 IGEvbGliL2dyby9ncm9fdGNwX2ludGVybmFsLmMgYi9saWIvZ3JvL2dyb190Y3BfaW50ZXJuYWwu YyBuZXcgZmlsZQ0KPiBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAwMDAwLi41YTIxYmNhN2Y4DQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbGliL2dyby9ncm9fdGNwX2ludGVybmFsLmMNCj4gQEAg LTAsMCArMSwxMjggQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1 c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDE3IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKi8NCg0K VXBkYXRlIGxpY2Vuc2UgaGVhZGVyLg0KDQo+ICsjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPiAr I2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2V0aGRldi5oPg0KPiArDQo+ ICsjaW5jbHVkZSAiZ3JvX3RjcF9pbnRlcm5hbC5oIg0KPiArDQo+IGRpZmYgLS1naXQgYS9saWIv Z3JvL2dyb190Y3BfaW50ZXJuYWwuaCBiL2xpYi9ncm8vZ3JvX3RjcF9pbnRlcm5hbC5oIG5ldyBm aWxlDQo+IG1vZGUgMTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAuLjA3MmI3YWVhMTMNCj4gLS0tIC9k ZXYvbnVsbA0KPiArKysgYi9saWIvZ3JvL2dyb190Y3BfaW50ZXJuYWwuaA0KPiBAQCAtMCwwICsx LDIxMiBAQA0KPiArI2lmbmRlZiBfR1JPX1RDUF9IXw0KPiArI2RlZmluZSBfR1JPX1RDUF9IXw0K PiArDQoNCkFkZCBsaWNlbnNlIGhlYWRlciBpbiB0aGlzIGZpbGUuDQoNCj4gKyNkZWZpbmUgSU5W QUxJRF9BUlJBWV9JTkRFWCAweGZmZmZmZmZmVUwNCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV90Y3Au aD4NCj4gKw0KPiArLyoNCj4gKyAqIFRoZSBtYXggbGVuZ3RoIG9mIGEgSVB2NCBwYWNrZXQsIHdo aWNoIGluY2x1ZGVzIHRoZSBsZW5ndGggb2YgdGhlIEwzDQo+ICsgKiBoZWFkZXIsIHRoZSBMNCBo ZWFkZXIgYW5kIHRoZSBkYXRhIHBheWxvYWQuDQo+ICsgKi8NCj4gKyNkZWZpbmUgTUFYX0lQX1BL VF9MRU5HVEggVUlOVDE2X01BWA0KPiArDQo+ICsvKiBUaGUgbWF4aW11bSBUQ1AgaGVhZGVyIGxl bmd0aCAqLw0KPiArI2RlZmluZSBNQVhfVENQX0hMRU4gNjANCj4gKyNkZWZpbmUgSU5WQUxJRF9U Q1BfSERSTEVOKGxlbikgXA0KPiArICAgICAoKChsZW4pIDwgc2l6ZW9mKHN0cnVjdCBydGVfdGNw X2hkcikpIHx8ICgobGVuKSA+IE1BWF9UQ1BfSExFTikpDQo+ICsNCj4gKy8qDQo+ICsgKiBDaGVj ayBpZiB0d28gVENQL0lQdjQgcGFja2V0cyBhcmUgbmVpZ2hib3JzLg0KPiArICovDQoNClRoaXMg ZnVuY3Rpb24gaXMgbm90IG9ubHkgZm9yIFRDUDQsIHNvIHVzZSAiQ2hlY2sgaWYgdHdvIFRDUCBw YWNrZXRzIGFyZSBuZWlnaGJvcnMiLg0KDQo+ICtzdGF0aWMgaW5saW5lIGludA0KPiArY2hlY2tf c2VxX29wdGlvbihzdHJ1Y3QgZ3JvX3RjcF9pdGVtICppdGVtLA0KPiArICAgICAgICAgICAgIHN0 cnVjdCBydGVfdGNwX2hkciAqdGNwaCwNCj4gKyAgICAgICAgICAgICB1aW50MzJfdCBzZW50X3Nl cSwNCj4gKyAgICAgICAgICAgICB1aW50MTZfdCBpcF9pZCwNCj4gKyAgICAgICAgICAgICB1aW50 MTZfdCB0Y3BfaGwsDQo+ICsgICAgICAgICAgICAgdWludDE2X3QgdGNwX2RsLA0KPiArICAgICAg ICAgICAgIHVpbnQxNl90IGwyX29mZnNldCwNCj4gKyAgICAgICAgICAgICB1aW50OF90IGlzX2F0 b21pYykNCj4gK3sNCj4gKyAgICAgc3RydWN0IHJ0ZV9tYnVmICpwa3Rfb3JpZyA9IGl0ZW0tPmZp cnN0c2VnOw0KPiArICAgICBjaGFyICppcGhfb3JpZzsNCj4gKyAgICAgc3RydWN0IHJ0ZV90Y3Bf aGRyICp0Y3BoX29yaWc7DQo+ICsgICAgIHVpbnQxNl90IGxlbiwgdGNwX2hsX29yaWc7DQo+ICsN Cj4gKyAgICAgaXBoX29yaWcgPSAoY2hhciAqKShydGVfcGt0bWJ1Zl9tdG9kKHBrdF9vcmlnLCBj aGFyICopICsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGwyX29mZnNldCArIHBrdF9vcmlnLT5s Ml9sZW4pOw0KPiArICAgICB0Y3BoX29yaWcgPSAoc3RydWN0IHJ0ZV90Y3BfaGRyICopKGlwaF9v cmlnICsgcGt0X29yaWctPmwzX2xlbik7DQo+ICsgICAgIHRjcF9obF9vcmlnID0gcGt0X29yaWct Pmw0X2xlbjsNCj4gKw0KPiArICAgICAvKiBDaGVjayBpZiBUQ1Agb3B0aW9uIGZpZWxkcyBlcXVh bCAqLw0KPiArICAgICBsZW4gPSBSVEVfTUFYKHRjcF9obCwgdGNwX2hsX29yaWcpIC0gc2l6ZW9m KHN0cnVjdCBydGVfdGNwX2hkcik7DQo+ICsgICAgIGlmICgodGNwX2hsICE9IHRjcF9obF9vcmln KSB8fCAoKGxlbiA+IDApICYmDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1j bXAodGNwaCArIDEsIHRjcGhfb3JpZyArIDEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGVuKSAhPSAwKSkpDQo+ICsgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICsN Cj4gKyAgICAgLyogRG9uJ3QgbWVyZ2UgcGFja2V0cyB3aG9zZSBERiBiaXRzIGFyZSBkaWZmZXJl bnQgKi8NCj4gKyAgICAgaWYgKHVubGlrZWx5KGl0ZW0tPmlzX2F0b21pYyBeIGlzX2F0b21pYykp DQo+ICsgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICsNCj4gKyAgICAgLyogY2hlY2sgaWYgdGhl IHR3byBwYWNrZXRzIGFyZSBuZWlnaGJvcnMgKi8NCj4gKyAgICAgbGVuID0gcGt0X29yaWctPnBr dF9sZW4gLSBsMl9vZmZzZXQgLSBwa3Rfb3JpZy0+bDJfbGVuIC0NCj4gKyAgICAgICAgICAgICBw a3Rfb3JpZy0+bDNfbGVuIC0gdGNwX2hsX29yaWc7DQo+ICsgICAgIGlmICgoc2VudF9zZXEgPT0g aXRlbS0+c2VudF9zZXEgKyBsZW4pICYmIChpc19hdG9taWMgfHwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGlwX2lkID09IGl0ZW0tPmwzLmlwX2lkICsgMSkpKQ0KPiArICAgICAg ICAgICAgIC8qIGFwcGVuZCB0aGUgbmV3IHBhY2tldCAqLw0KPiArICAgICAgICAgICAgIHJldHVy biAxOw0KPiArICAgICBlbHNlIGlmICgoc2VudF9zZXEgKyB0Y3BfZGwgPT0gaXRlbS0+c2VudF9z ZXEpICYmIChpc19hdG9taWMgfHwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlw X2lkICsgaXRlbS0+bmJfbWVyZ2VkID09IGl0ZW0tPmwzLmlwX2lkKSkpDQo+ICsgICAgICAgICAg ICAgLyogcHJlLXBlbmQgdGhlIG5ldyBwYWNrZXQgKi8NCj4gKyAgICAgICAgICAgICByZXR1cm4g LTE7DQo+ICsNCj4gKyAgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUg aW50DQo+ICtpc19jb21tb25fdGNwX2tleShzdHJ1Y3QgY21uX3RjcF9rZXkgKmsxLCBzdHJ1Y3Qg Y21uX3RjcF9rZXkgKmsyKSB7DQoNClJlbmFtZSBpdCB0byAiaXNfc2FtZV9jb21tb25fdGNwX2tl eSgpIj8NCg0KPiArICAgICByZXR1cm4gKCFtZW1jbXAoazEsIGsyLCBzaXplb2Yoc3RydWN0IGNt bl90Y3Bfa2V5KSkpOyB9DQo+ICsNCj4gKyNlbmRpZg0K --_000_CY5PR11MB648741DBBF4B9AB43B3C3B1A925AACY5PR11MB6487namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4i Ow0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBp bjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm O30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpzcGFuLkVtYWlsU3R5 bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJD YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQN Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNh bnMtc2VyaWY7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1h cmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6 V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz aGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5k aWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRp dCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48 L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVl IiB2bGluaz0icHVycGxlIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPg0KPGRpdiBjbGFz cz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkZyb20gbXkgZXhwZXJpZW5j ZSwgaW5saW5lIGlzIHVzZWQgd2l0aCDigJxzdGF0aWPigJ0gYXMgYSBjb21waWxlciBoaW50Ljxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SW4gY2FzZSBvZiBhIHJhdyBpbmxp bmUsIHdoaWNoIGlzIHVzZWQgYnkgYm90aCBpbnNlcnRfbmV3X3RjcF9pdGVtKCk8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmFuZCBkZWxldGVfdGNwX2l0ZW0oKSBub3csIGl0 IHNlZW1zIHlvdSBuZWVkIHRvIHByb3ZpZGUgYW4gZXh0ZXJuYWw8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPm9uZSB0byBhdm9pZCBsaW5raW5nIGVycm9yLiBCdXQgSSBoYXZl buKAmXQgdXNlZCBpdCBpbiB0aGlzIHdheSBiZWZvcmUuPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PklmIGlubGluZSBpcyB0aGUgcm9vdCBjYXVzZSBvZiB3aW5kb3cgY29tcGlsZXIgZXJyb3JzLCBk ZWZpbmluZyB0aGUgdHdvPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5mdW5j dGlvbnMgYXMgc3RhdGljIGlubGluZSBpbiBncm9fdGNwX2ludGVybmFsLmggbWF5IGJlIGEgc29s dXRpb24uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rcyw8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPkppYXl1PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl ci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2 Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0 O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJv bTo8L2I+IGt1bWFyYXBhcmFtZXNod2FyYW4gcmF0aGluYXZlbCAmbHQ7a3VtYXJhcGFyYW1lc2g5 MkBnbWFpbC5jb20mZ3Q7DQo8YnI+DQo8Yj5TZW50OjwvYj4gV2VkbmVzZGF5LCBKdW5lIDE0LCAy MDIzIDExOjQzIEFNPGJyPg0KPGI+VG86PC9iPiBIdSwgSmlheXUgJmx0O2ppYXl1Lmh1QGludGVs LmNvbSZndDs8YnI+DQo8Yj5DYzo8L2I+IGRldkBkcGRrLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9i PiBSZTogW1BBVENIIHY3XSBncm8gOiBpcHY2IGNoYW5nZXMgdG8gc3VwcG9ydCBHUk8gZm9yIFRD UC9pcHY2PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ T24gVHVlLCBKdW4gMTMsIDIwMjMgYXQgNzo1NuKAr0FNIEh1LCBKaWF5dSAmbHQ7PGEgaHJlZj0i bWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbSI+amlheXUuaHVAaW50ZWwuY29tPC9hPiZndDsgd3Jv dGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9u ZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4w cHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBpbiI+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj5IaSBLdW1hcmEsPGJyPg0KPGJyPg0KT3ZlcmFsbCwgdGhlIHBhdGNoIGxvb2tzIGdvb2Qg dG8gbWUuIEJ1dCB5b3UgbmVlZCB0byB1cGRhdGUgdGhlIGRvYyBhbmQgdGhlcmUgPGJyPg0KYXJl IHNvbWUgbWlub3IgY2hhbmdlcyBuZWVkZWQgdG8gYmUgbWFkZS4gUGxlYXNlIHNlZSByZXBsaWVz IGlubGluZS48bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTti b3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7 bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5UaGFua3MgSmlheXUuIEkgc2VlIHNvbWUgbGlua2luZyBlcnJvcnMgZm9yIHdpbmRvd3MuIEl0 IHdhcyBhIGZvciBpbmVzZXJ0X25ld190Y3BfaXRlbSB3aGljaCBpcyBub3cgaW4gKi5jIGZpbGUu IEVhcmxpZXIgdGhpcyB3YXMgaW5lcnRfbmV3X2l0ZW0gaW4gKi5oIGZpbGUuIFRoZSBlcnJvciBp cyB0aGF0IHRoZSBpbnNlcnRfbmV3X3RjcF9pdGVtIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZC4gV2Fz IHRoZXJlIGEgcmVhc29uDQogd2h5IGl0IHdhcyBpbiBhIGhlYWRlciBmaWxlIGVhcmxpZXIgPyBK dXN0IHdhbnRlZCB0byBjaGVjayB3aXRoIHlvdSBpZiB5b3UgaGFkIGVuY291bnRlcmVkIHRoaXMg YmVmb3JlLiBXaWxsIHRyeSBpdCBvbiBhIHdpbmRvd3Mgc2V0dXAgYXMgd2VsbC4NCjxvOnA+PC9v OnA+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPC9ibG9ja3F1b3RlPg0KPGJsb2NrcXVvdGUgc3R5bGU9 ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4g MGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxicj4NCkFmdGVyIGFsbCBjb21tZW50cyBhcmUgYWRkcmVzc2VkLCB5 b3UgY2FuIGFkZCAmcXVvdDtSZXZpZXdlZC1ieTogSmlheXUgSHUgJmx0OzxhIGhyZWY9Im1haWx0 bzpqaWF5dS5odUBpbnRlbC5jb20iIHRhcmdldD0iX2JsYW5rIj5qaWF5dS5odUBpbnRlbC5jb208 L2E+Jmd0OyZxdW90Oy48YnI+DQo8YnI+DQpUaGFua3MsPGJyPg0KSmlheXU8YnI+DQo8YnI+DQom Z3Q7IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tPGJyPg0KJmd0OyBGcm9tOiBLdW1hcmEgUGFy YW1lc2h3YXJhbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmt1bWFyYXBhcmFtZXNoOTJAZ21haWwuY29t IiB0YXJnZXQ9Il9ibGFuayI+a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb208L2E+Jmd0Ozxicj4N CiZndDsgU2VudDogTW9uZGF5LCBKdW5lIDEyLCAyMDIzIDc6MzEgUE08YnI+DQomZ3Q7IFRvOiBI dSwgSmlheXUgJmx0OzxhIGhyZWY9Im1haWx0bzpqaWF5dS5odUBpbnRlbC5jb20iIHRhcmdldD0i X2JsYW5rIj5qaWF5dS5odUBpbnRlbC5jb208L2E+Jmd0Ozxicj4NCiZndDsgQ2M6IDxhIGhyZWY9 Im1haWx0bzpkZXZAZHBkay5vcmciIHRhcmdldD0iX2JsYW5rIj5kZXZAZHBkay5vcmc8L2E+OyBL dW1hcmEgUGFyYW1lc2h3YXJhbjxicj4NCiZndDsgJmx0OzxhIGhyZWY9Im1haWx0bzprdW1hcmFw YXJhbWVzaDkyQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmt1bWFyYXBhcmFtZXNoOTJAZ21h aWwuY29tPC9hPiZndDs8YnI+DQomZ3Q7IFN1YmplY3Q6IFtQQVRDSCB2N10gZ3JvIDogaXB2NiBj aGFuZ2VzIHRvIHN1cHBvcnQgR1JPIGZvciBUQ1AvaXB2Njxicj4NCiZndDsgPGJyPg0KJmd0OyBU aGUgcGF0Y2ggYWRkcyBHUk8gc3VwcG9ydCBmb3IgVENQL2lwdjYgcGFja2V0cy4gVGhpcyBkb2Vz IG5vdCBpbmNsdWRlIHRoZTxicj4NCiZndDsgc3VwcG9ydCBmb3IgdnhsYW4sIHVkcCBpcHY2IHBh Y2tldHMuPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFNpZ25lZC1vZmYtYnk6IEt1bWFyYSBQYXJhbWVz aHdhcmFuICZsdDs8YSBocmVmPSJtYWlsdG86a3VtYXJhcGFyYW1lc2g5MkBnbWFpbC5jb20iIHRh cmdldD0iX2JsYW5rIj5rdW1hcmFwYXJhbWVzaDkyQGdtYWlsLmNvbTwvYT4mZ3Q7PGJyPg0KJmd0 OyAtLS08YnI+DQomZ3Q7IHYxOjxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsq IENoYW5nZXMgdG8gc3VwcG9ydCBHUk8gZm9yIFRDUC9pcHY2IHBhY2tldHMuIFRoaXMgZG9lcyBu b3Q8YnI+DQomZ3Q7IGluY2x1ZGU8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3Z4bGFuIGNoYW5nZXMuPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyogVGhlIEdSTyBpcyBwZXJmb3JtZWQgb25seSBmb3IgaXB2NiBwYWNrZXRzIHRoYXQgZG9lcyBu b3QgY29udGFpbjxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZXh0ZW5zaW9u IGhlYWRlcnMuPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyogVGhlIGxvZ2lj IGZvciB0aGUgVENQIGNvYWxlc2NpbmcgcmVtYWlucyB0aGUgc2FtZSwgaW4gaXB2NiBoZWFkZXI8 YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3RoZSBzb3VyY2UgYWRk cmVzcywgZGVzdGluYXRpb24gYWRkcmVzcywgZmxvdyBsYWJlbCwgdmVyc2lvbiBmaWVsZHM8YnI+ DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FyZSBleHBlY3RlZCB0byBi ZSB0aGUgc2FtZS48YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KiBSZS1vcmdh bmlzZWQgdGhlIGNvZGUgdG8gcmV1c2UgY2VydGFpbiB0Y3AgZnVuY3Rpb25zIGZvciBib3RoIGlw djQ8YnI+DQomZ3Q7IGFuZDxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aXB2NiBmbG93cy48YnI+DQomZ3Q7IHYyOjxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsqIEZpeCBjb21tZW50cyBpbiBncm9fdGNwNi5oIGhlYWRlciBmaWxlLjxicj4NCiZn dDsgPGJyPg0KJmd0OyB2Mzo8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KiBB ZGRlcmVzcyByZXZpZXcgY29tbWVudHMgdG8gZml4IGNvZGUgZHVwbGljYXRpb24gZm9yIHY0IGFu ZCB2Njxicj4NCiZndDsgPGJyPg0KJmd0OyB2NDo8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7KiBBZGRyZXNzZXMgcmV2aWV3IGNvbW1lbnRzIGZvciB2MywgZG8gbm90IHVzZSBj YWxsYmFja3M8YnI+DQomZ3Q7IDxicj4NCiZndDsgdjU6PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyogQWRkcmVzcyByZXZpZXcgY29tbWVudHM8YnI+DQomZ3Q7IDxicj4NCiZn dDsgdjY6PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyogRml4IHdhcm5pbmcg YW5kIGNvZGluZyBzdHlsZSBpc3N1ZXM8YnI+DQomZ3Q7IDxicj4NCiZndDsgdjc6PGJyPg0KJmd0 OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyogRml4IGJ1aWxkIGNvbXBpbGF0aW9uIGlzc3Vl PGJyPg0KJmd0OyZuYnNwOyBsaWIvZ3JvL2dyb190Y3A0LmMmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7fCAxNzggKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4NCiZndDsmbmJz cDsgbGliL2dyby9ncm9fdGNwNC5oJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wg MTcwICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPg0KJmd0OyZuYnNwOyBsaWIvZ3JvL2dyb190 Y3A2LmMmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fCAyNjcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKzxicj4NCiZndDsmbmJzcDsgbGliL2dyby9ncm9fdGNw Ni5oJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgMTYxICsrKysrKysrKysrKysr KysrKysrKys8YnI+DQomZ3Q7Jm5ic3A7IGxpYi9ncm8vZ3JvX3RjcF9pbnRlcm5hbC5jIHwgMTI4 ICsrKysrKysrKysrKysrKysrKzxicj4NCiZndDsgbGliL2dyby9ncm9fdGNwX2ludGVybmFsLmgg fCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKys8YnI+DQomZ3Q7Jm5ic3A7IGxpYi9n cm8vZ3JvX3Z4bGFuX3RjcDQuYyZuYnNwOyAmbmJzcDt8Jm5ic3A7IDIzICsrLS08YnI+DQomZ3Q7 Jm5ic3A7IGxpYi9ncm8vZ3JvX3Z4bGFuX3RjcDQuaCZuYnNwOyAmbmJzcDt8Jm5ic3A7ICZuYnNw OzMgKy08YnI+DQomZ3Q7Jm5ic3A7IGxpYi9ncm8vbWVzb24uYnVpbGQmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgfCZuYnNwOyAmbmJzcDsyICs8YnI+DQomZ3Q7Jm5ic3A7IGxpYi9ncm8vcnRl X2dyby5jJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8Jm5ic3A7IDgzICsrKysr KysrKystLTxicj4NCiZndDsmbmJzcDsgbGliL2dyby9ydGVfZ3JvLmgmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IHwmbmJzcDsgJm5ic3A7MyArPGJyPg0KJmd0OyZuYnNwOyAxMSBm aWxlcyBjaGFuZ2VkLCA4OTcgaW5zZXJ0aW9ucygrKSwgMzMzIGRlbGV0aW9ucygtKSZuYnNwOyBj cmVhdGUgbW9kZSAxMDA2NDQ8YnI+DQomZ3Q7IGxpYi9ncm8vZ3JvX3RjcDYuYyZuYnNwOyBjcmVh dGUgbW9kZSAxMDA2NDQgbGliL2dyby9ncm9fdGNwNi5oJm5ic3A7IGNyZWF0ZSBtb2RlPGJyPg0K Jmd0OyAxMDA2NDQgbGliL2dyby9ncm9fdGNwX2ludGVybmFsLmMmbmJzcDsgY3JlYXRlIG1vZGUg MTAwNjQ0PGJyPg0KJmd0OyBsaWIvZ3JvL2dyb190Y3BfaW50ZXJuYWwuaDxicj4NCiZndDsgPGJy Pg0KJmd0OyBkaWZmIC0tZ2l0IGEvbGliL2dyby9ncm9fdGNwNC5jIGIvbGliL2dyby9ncm9fdGNw NC5jIGluZGV4PGJyPg0KJmd0OyAwMDE0MDk2ZTYzLi40MmZlZTc4ZjMwIDEwMDY0NDxicj4NCiZn dDsgLS0tIGEvbGliL2dyby9ncm9fdGNwNC5jPGJyPg0KJmd0OyArKysgYi9saWIvZ3JvL2dyb190 Y3A0LmM8YnI+DQomZ3Q7IC08YnI+DQomZ3Q7Jm5ic3A7IGludDMyX3Q8YnI+DQomZ3Q7Jm5ic3A7 IGdyb190Y3A0X3JlYXNzZW1ibGUoc3RydWN0IHJ0ZV9tYnVmICpwa3QsPGJyPg0KJmd0OyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdHJ1Y3Qg Z3JvX3RjcDRfdGJsICp0YmwsPGJyPg0KJmd0OyBAQCAtMjAyLDkgKzEyMiw4IEBAIGdyb190Y3A0 X3JlYXNzZW1ibGUoc3RydWN0IHJ0ZV9tYnVmICpwa3QsPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO3VpbnQ4X3QgaXNfYXRvbWljOzxicj4NCiZndDsgPGJyPg0KJmd0OyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCB0Y3A0X2Zsb3dfa2V5IGtleTs8YnI+DQomZ3Q7 IC0mbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQzMl90IGN1cl9pZHgsIHByZXZfaWR4LCBpdGVtX2lk eDs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQzMl90IGl0ZW1faWR4Ozxicj4N CiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MzJfdCBpLCBtYXhfZmxvd19udW0s IHJlbWFpbmluZ19mbG93X251bTs8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwO2ludCBj bXA7PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQ4X3QgZmluZDs8YnI+ DQomZ3Q7IDxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKjxicj4NCiZndDsg QEAgLTIxNiw3ICsxMzUsNyBAQCBncm9fdGNwNF9yZWFzc2VtYmxlKHN0cnVjdCBydGVfbWJ1ZiAq cGt0LDxicj4NCiZndDsgPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V0aF9o ZHIgPSBydGVfcGt0bWJ1Zl9tdG9kKHBrdCwgc3RydWN0IHJ0ZV9ldGhlcl9oZHIgKik7PGJyPg0K Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lwdjRfaGRyID0gKHN0cnVjdCBydGVfaXB2 NF9oZHIgKikoKGNoYXIgKilldGhfaGRyICsgcGt0LSZndDtsMl9sZW4pOzxicj4NCiZndDsgLSZu YnNwOyAmbmJzcDsgJm5ic3A7dGNwX2hkciA9IChzdHJ1Y3QgcnRlX3RjcF9oZHIgKikoKGNoYXIg KilpcHY0X2hkciArIHBrdC0mZ3Q7bDNfbGVuKTs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZu YnNwO3RjcF9oZHIgPSBydGVfcGt0bWJ1Zl9tdG9kX29mZnNldChwa3QsIHN0cnVjdCBydGVfdGNw X2hkciAqLDxicj4NCiZndDsgK3BrdC0mZ3Q7bDJfbGVuICsgcGt0LSZndDtsM19sZW4pOzxicj4N Cjxicj4NCk5vIG5lZWQgdG8gY2hhbmdlIHRoZSBtZXRob2QgdG8gb2J0YWluIHRjcF9oZHIuPGJy Pg0KPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2hkcl9sZW4gPSBwa3QtJmd0 O2wyX2xlbiArIHBrdC0mZ3Q7bDNfbGVuICsgcGt0LSZndDtsNF9sZW47PGJyPg0KJmd0OyA8YnI+ DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Lyo8YnI+DQomZ3Q7IEBAIC0yMzAsNyAr MTQ5LDYgQEAgZ3JvX3RjcDRfcmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21idWYgKnBrdCw8YnI+DQom Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aXBfdGxlbiA9IHJ0ZV9iZV90b19jcHVfMTYo aXB2NF9oZHItJmd0O3RvdGFsX2xlbmd0aCk7PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2lmIChwa3QtJmd0O3BrdF9sZW4gJmd0OyAodWludDMyX3QpKGlwX3RsZW4gKyBwa3Qt Jmd0O2wyX2xlbikpPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtydGVfcGt0bWJ1Zl90cmltKHBrdCwgcGt0LSZndDtwa3RfbGVu IC0gaXBfdGxlbiAtIHBrdC0mZ3Q7bDJfbGVuKTs8YnI+DQomZ3Q7IC08YnI+DQpObyBuZWVkIHRv IGRlbGV0ZSB0aGUgYmxhbmsgbGluZS48YnI+DQo8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7Lyo8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogRG9uJ3Qg cHJvY2VzcyB0aGUgcGFja2V0IHdob3NlIHBheWxvYWQgbGVuZ3RoIGlzIGxlc3MgdGhhbiBvcjxi cj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBlcXVhbCB0byAwLjxicj4NCiZn dDsgQEAgLTIzOSw2ICsxNTcsMTMgQEAgZ3JvX3RjcDRfcmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21i dWYgKnBrdCw8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHRjcF9kbCAm bHQ7PSAwKTxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cmV0dXJuIC0xOzxicj4NCiZndDsgPGJyPg0KJmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDtydGVfZXRoZXJfYWRkcl9jb3B5KCZhbXA7KGV0aF9oZHItJmd0O3NyY19hZGRy KSw8YnI+DQomZ3Q7ICZhbXA7KGtleS5jbW5fa2V5LmV0aF9zYWRkcikpOzxicj4NCiZndDsgKyZu YnNwOyAmbmJzcDsgJm5ic3A7cnRlX2V0aGVyX2FkZHJfY29weSgmYW1wOyhldGhfaGRyLSZndDtk c3RfYWRkciksPGJyPg0KJmd0OyAmYW1wOyhrZXkuY21uX2tleS5ldGhfZGFkZHIpKTs8YnI+DQom Z3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2tleS5pcF9zcmNfYWRkciA9IGlwdjRfaGRyLSZndDtz cmNfYWRkcjs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2tleS5pcF9kc3RfYWRkciA9 IGlwdjRfaGRyLSZndDtkc3RfYWRkcjs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2tl eS5jbW5fa2V5LnNyY19wb3J0ID0gdGNwX2hkci0mZ3Q7c3JjX3BvcnQ7PGJyPg0KJmd0OyArJm5i c3A7ICZuYnNwOyAmbmJzcDtrZXkuY21uX2tleS5kc3RfcG9ydCA9IHRjcF9oZHItJmd0O2RzdF9w b3J0Ozxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7a2V5LmNtbl9rZXkucmVjdl9hY2sg PSB0Y3BfaGRyLSZndDtyZWN2X2Fjazs8YnI+DQo8YnI+DQpBZGQgYSBibGFuayBsaW5lIGJldHdl ZW4ga2V5LmNtbl9rZXkucmVjdl9hY2sgYXNzaWdubWVudCBhbmQgYW5ub3RhdGlvbi48YnI+DQo8 YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Lyo8YnI+DQomZ3Q7Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICogU2F2ZSBJUHY0IElEIGZvciB0aGUgcGFja2V0IHdob3NlIERG IGJpdCBpcyAwLiBGb3IgdGhlIHBhY2tldDxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgKiB3aG9zZSBERiBiaXQgaXMgMSwgSVB2NCBJRCBpcyBpZ25vcmVkLjxicj4NCiZndDsg QEAgLTI0NiwxNSArMTcxLDYgQEAgZ3JvX3RjcDRfcmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21idWYg KnBrdCw8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZnJhZ19vZmYgPSBydGVf YmVfdG9fY3B1XzE2KGlwdjRfaGRyLSZndDtmcmFnbWVudF9vZmZzZXQpOzxicj4NCiZndDsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpc19hdG9taWMgPSAoZnJhZ19vZmYgJmFtcDsgUlRFX0lQ VjRfSERSX0RGX0ZMQUcpID09PGJyPg0KJmd0OyBSVEVfSVBWNF9IRFJfREZfRkxBRzs8YnI+DQom Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aXBfaWQgPSBpc19hdG9taWMgPyAwIDogcnRl X2JlX3RvX2NwdV8xNihpcHY0X2hkci0mZ3Q7cGFja2V0X2lkKTs8YnI+DQomZ3Q7IC0mbmJzcDsg Jm5ic3A7ICZuYnNwO3NlbnRfc2VxID0gcnRlX2JlX3RvX2NwdV8zMih0Y3BfaGRyLSZndDtzZW50 X3NlcSk7PGJyPg0KJmd0OyAtPGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDtydGVfZXRo ZXJfYWRkcl9jb3B5KCZhbXA7KGV0aF9oZHItJmd0O3NyY19hZGRyKSwgJmFtcDsoa2V5LmV0aF9z YWRkcikpOzxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7cnRlX2V0aGVyX2FkZHJfY29w eSgmYW1wOyhldGhfaGRyLSZndDtkc3RfYWRkciksICZhbXA7KGtleS5ldGhfZGFkZHIpKTs8YnI+ DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwO2tleS5pcF9zcmNfYWRkciA9IGlwdjRfaGRyLSZn dDtzcmNfYWRkcjs8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwO2tleS5pcF9kc3RfYWRk ciA9IGlwdjRfaGRyLSZndDtkc3RfYWRkcjs8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNw O2tleS5zcmNfcG9ydCA9IHRjcF9oZHItJmd0O3NyY19wb3J0Ozxicj4NCiZndDsgLSZuYnNwOyAm bmJzcDsgJm5ic3A7a2V5LmRzdF9wb3J0ID0gdGNwX2hkci0mZ3Q7ZHN0X3BvcnQ7PGJyPg0KJmd0 OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDtrZXkucmVjdl9hY2sgPSB0Y3BfaGRyLSZndDtyZWN2X2Fj azs8YnI+DQomZ3Q7IDxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBTZWFy Y2ggZm9yIGEgbWF0Y2hlZCBmbG93LiAqLzxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDttYXhfZmxvd19udW0gPSB0YmwtJmd0O21heF9mbG93X251bTs8YnI+DQomZ3Q7IEBAIC0y NzAsNjMgKzE4Niw0NCBAQCBncm9fdGNwNF9yZWFzc2VtYmxlKHN0cnVjdCBydGVfbWJ1ZiAqcGt0 LDxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7fTxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KJmd0 OyA8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOy8qPGJyPg0KJmd0OyAtJm5ic3A7ICZu YnNwOyAmbmJzcDsgKiBGYWlsIHRvIGZpbmQgYSBtYXRjaGVkIGZsb3cuIEluc2VydCBhIG5ldyBm bG93IGFuZCBzdG9yZSB0aGU8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAqIHBhY2tl dCBpbnRvIHRoZSBmbG93Ljxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICovPGJyPg0K Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChmaW5kID09IDApIHs8YnI+DQomZ3Q7 IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpdGVtX2lk eCA9IGluc2VydF9uZXdfaXRlbSh0YmwsIHBrdCwgc3RhcnRfdGltZSw8YnI+DQomZ3Q7IC0mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0lOVkFMSURfQVJSQVlf SU5ERVgsIHNlbnRfc2VxLCBpcF9pZCw8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lzX2F0b21pYyk7PGJyPg0KJmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c2VudF9zZXEgPSBydGVfYmVf dG9fY3B1XzMyKHRjcF9oZHItJmd0O3NlbnRfc2VxKTs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpdGVtX2lkeCA9IGluc2VydF9uZXdf dGNwX2l0ZW0ocGt0LCB0YmwtJmd0O2l0ZW1zLCAmYW1wO3RibC08YnI+DQomZ3Q7ICZndDtpdGVt X251bSw8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7dGJsLSZndDttYXhfaXRlbV9udW0sPGJyPg0KJmd0OyBzdGFydF90aW1lLDxicj4NCiZn dDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtJTlZBTElE X0FSUkFZX0lOREVYLDxicj4NCiZndDsgc2VudF9zZXEsIGlwX2lkLDxicj4NCiZndDsgKyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpc19hdG9taWMpOzxicj4N CiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKGl0ZW1faWR4ID09IElOVkFMSURfQVJSQVlfSU5ERVgpPGJyPg0KJmd0OyZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIC0xOzxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGluc2VydF9uZXdfZmxvdyh0 YmwsICZhbXA7a2V5LCBpdGVtX2lkeCkgPT08YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0lOVkFMSURfQVJSQVlfSU5ERVgpIHs8YnI+DQom Z3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7SU5WQUxJRF9BUlJBWV9JTkRFWCkgezxicj4NCiZndDsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qPGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICogRmFpbCB0byBpbnNlcnQgYSBuZXcgZmxvdywgc28gZGVsZXRlIHRoZTxicj4NCiZn dDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIHN0b3JlZCBwYWNrZXQuPGJyPg0KJmd0OyAt Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAqLzxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtkZWxl dGVfaXRlbSh0YmwsIGl0ZW1faWR4LCBJTlZBTElEX0FSUkFZX0lOREVYKTs8YnI+DQomZ3Q7ICsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7Ki88YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVsZXRl X3RjcF9pdGVtKHRibC0mZ3Q7aXRlbXMsIGl0ZW1faWR4LCAmYW1wO3RibC08YnI+DQomZ3Q7ICZn dDtpdGVtX251bSw8YnI+DQomZ3Q7ICtJTlZBTElEX0FSUkFZX0lOREVYKTs8YnI+DQomZ3Q7Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gLTE7PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KJmd0OyZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4g MDs8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4NCiZndDsgPGJyPg0K Jmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsvKjxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5i c3A7ICogQ2hlY2sgYWxsIHBhY2tldHMgaW4gdGhlIGZsb3cgYW5kIHRyeSB0byBmaW5kIGEgbmVp Z2hib3IgZm9yPGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiB0aGUgaW5wdXQgcGFj a2V0Ljxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICovPGJyPg0KJmd0OyAtJm5ic3A7 ICZuYnNwOyAmbmJzcDtjdXJfaWR4ID0gdGJsLSZndDtmbG93c1tpXS5zdGFydF9pbmRleDs8YnI+ DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwO3ByZXZfaWR4ID0gY3VyX2lkeDs8YnI+DQomZ3Q7 IC0mbmJzcDsgJm5ic3A7ICZuYnNwO2RvIHs8YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjbXAgPSBjaGVja19zZXFfb3B0aW9uKCZhbXA7 KHRibC0mZ3Q7aXRlbXNbY3VyX2lkeF0pLCB0Y3BfaGRyLDxicj4NCiZndDsgLSZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c2VudF9zZXEsIGlwX2lkLCBwa3Qt Jmd0O2w0X2xlbiwgdGNwX2RsLCAwLDxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aXNfYXRvbWljKTs8YnI+DQomZ3Q7IC0mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoY21wKSB7PGJyPg0KJmd0 OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChtZXJnZV90d29fdGNwNF9wYWNrZXRzKCZhbXA7KHRi bC0mZ3Q7aXRlbXNbY3VyX2lkeF0pLDxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtwa3QsIGNtcCwgc2VudF9zZXEsIGlwX2lkLCAwKSk8YnI+ DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl dHVybiAxOzxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKjxicj4NCiZndDsgLSZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgKiBGYWlsIHRvIG1lcmdlIHRoZSB0d28gcGFja2V0cywgYXMgdGhlIHBh Y2tldDxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBsZW5ndGggaXMgZ3JlYXRlciB0 aGFuIHRoZSBtYXggdmFsdWUuIFN0b3JlPGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAq IHRoZSBwYWNrZXQgaW50byB0aGUgZmxvdy48YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICovPGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChpbnNlcnRfbmV3X2l0ZW0odGJs LCBwa3QsIHN0YXJ0X3RpbWUsIGN1cl9pZHgsPGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3NlbnRfc2VxLCBpcF9pZCwgaXNfYXRvbWljKSA9 PTxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0lOVkFMSURfQVJSQVlfSU5ERVgpPGJyPg0K Jmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1 cm4gLTE7PGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAwOzxicj4NCiZndDsg LSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+DQom Z3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtwcmV2 X2lkeCA9IGN1cl9pZHg7PGJyPg0KJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7Y3VyX2lkeCA9IHRibC0mZ3Q7aXRlbXNbY3VyX2lkeF0ubmV4dF9w a3RfaWR4Ozxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7fSB3aGlsZSAoY3VyX2lkeCAh PSBJTlZBTElEX0FSUkFZX0lOREVYKTs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl dHVybiBwcm9jZXNzX3RjcF9pdGVtKHBrdCwgdGNwX2hkciwgdGNwX2RsLCB0YmwtJmd0O2l0ZW1z LCB0YmwtPGJyPg0KJmd0OyAmZ3Q7Zmxvd3NbaV0uc3RhcnRfaW5kZXgsPGJyPg0KJmd0OyArJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZhbXA7dGJsLSZndDtp dGVtX251bSwgdGJsLTxicj4NCiZndDsgJmd0O21heF9pdGVtX251bSw8YnI+DQomZ3Q7ICsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aXBfaWQsIGlzX2F0b21p Yywgc3RhcnRfdGltZSk7PGJyPg0KJmd0OyArfTxicj4NCiZndDsgPGJyPg0KJmd0OyAtJm5ic3A7 ICZuYnNwOyAmbmJzcDsvKiBGYWlsIHRvIGZpbmQgYSBuZWlnaGJvciwgc28gc3RvcmUgdGhlIHBh Y2tldCBpbnRvIHRoZSBmbG93LiAqLzxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7aWYg KGluc2VydF9uZXdfaXRlbSh0YmwsIHBrdCwgc3RhcnRfdGltZSwgcHJldl9pZHgsIHNlbnRfc2Vx LDxicj4NCiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aXBfaWQsIGlzX2F0b21pYykgPT0gSU5WQUxJRF9BUlJBWV9JTkRFWCk8YnI+DQomZ3Q7IC0m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gLTE7 PGJyPg0KJmd0OyArLyo8YnI+DQomZ3Q7ICsgKiB1cGRhdGUgdGhlIHBhY2tldCBsZW5ndGggZm9y IHRoZSBmbHVzaGVkIHBhY2tldC48YnI+DQomZ3Q7ICsgKi88YnI+DQomZ3Q7ICtzdGF0aWMgaW5s aW5lIHZvaWQ8YnI+DQomZ3Q7ICt1cGRhdGVfaGVhZGVyKHN0cnVjdCBncm9fdGNwX2l0ZW0gKml0 ZW0pIHs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCBydGVfaXB2NF9oZHIg KmlwdjRfaGRyOzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0IHJ0ZV9tYnVm ICpwa3QgPSBpdGVtLSZndDtmaXJzdHNlZzs8YnI+DQomZ3Q7IDxicj4NCiZndDsgLSZuYnNwOyAm bmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDtpcHY0 X2hkciA9IChzdHJ1Y3QgcnRlX2lwdjRfaGRyICopKHJ0ZV9wa3RtYnVmX210b2QocGt0LCBjaGFy ICopICs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cGt0LSZndDtsMl9sZW4pOzxicj4N CiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7aXB2NF9oZHItJmd0O3RvdGFsX2xlbmd0aCA9IHJ0 ZV9jcHVfdG9fYmVfMTYocGt0LSZndDtwa3RfbGVuIC08YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7cGt0LSZndDtsMl9sZW4pOzxicj4NCiZndDsmbmJzcDsgfTxicj4NCiZndDsgPGJyPg0K Jmd0OyZuYnNwOyB1aW50MTZfdDxicj4NCiZndDsgQEAgLTM1Myw3ICsyNTAsOCBAQCBncm9fdGNw NF90YmxfdGltZW91dF9mbHVzaChzdHJ1Y3QgZ3JvX3RjcDRfdGJsICp0YmwsPGJyPg0KJmd0OyZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIERl bGV0ZSB0aGUgcGFja2V0IGFuZCBnZXQgdGhlIG5leHQ8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogcGFja2V0IGluIHRoZSBm bG93Ljxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgKi88YnI+DQomZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2ogPSBkZWxldGVfaXRlbSh0YmwsIGosIElOVkFMSURfQVJSQVlfSU5E RVgpOzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aiA9IGRlbGV0ZV90Y3BfaXRlbSh0YmwtJmd0O2l0ZW1zLCBqLDxicj4NCiZndDsgKyZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7JmFtcDt0YmwtJmd0O2l0ZW1fbnVtLDxicj4NCiZndDsgSU5WQUxJRF9B UlJBWV9JTkRFWCk7PGJyPg0KJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3RibC0mZ3Q7Zmxvd3NbaV0uc3RhcnRfaW5kZXggPSBqOzxicj4N CiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtpZiAoaiA9PSBJTlZBTElEX0FSUkFZX0lOREVYKTxicj4NCiZndDsmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7dGJsLSZndDtmbG93X251bS0tOzxicj4NCiZndDsgZGlmZiAtLWdpdCBhL2xpYi9n cm8vZ3JvX3RjcDQuaCBiL2xpYi9ncm8vZ3JvX3RjcDQuaCBpbmRleDxicj4NCiZndDsgMjEyZjk3 YTA0Mi4uYzAxNTRhZmEyNCAxMDA2NDQ8YnI+DQomZ3Q7IC0tLSBhL2xpYi9ncm8vZ3JvX3RjcDQu aDxicj4NCiZndDsgKysrIGIvbGliL2dyby9ncm9fdGNwNC5oPGJyPg0KJmd0OyBAQCAtNSwzMiAr NSwxNSBAQDxicj4NCiZndDsmbmJzcDsgI2lmbmRlZiBfR1JPX1RDUDRfSF88YnI+DQomZ3Q7Jm5i c3A7ICNkZWZpbmUgX0dST19UQ1A0X0hfPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IC0jaW5jbHVkZSAm bHQ7cnRlX3RjcC5oJmd0Ozxicj4NCiZndDsgKyNpbmNsdWRlICZsdDtncm9fdGNwX2ludGVybmFs LmgmZ3Q7PGJyPg0KPGJyPg0KVXNlICZxdW90OyNpbmNsdWRlICZxdW90O2dyb190Y3BfaW50ZXJu YWwuaCZxdW90OyZxdW90Oy48YnI+DQo8YnI+DQomZ3Q7IDxicj4NCiZndDsgLSNkZWZpbmUgSU5W QUxJRF9BUlJBWV9JTkRFWCAweGZmZmZmZmZmVUwmbmJzcDsgI2RlZmluZTxicj4NCiZndDsgR1JP X1RDUDRfVEJMX01BWF9JVEVNX05VTSAoMTAyNFVMICogMTAyNFVMKTxicj4NCiZndDsgPGJyPg0K Jmd0OyBkaWZmIC0tZ2l0IGEvbGliL2dyby9ncm9fdGNwNi5jIGIvbGliL2dyby9ncm9fdGNwNi5j IG5ldyBmaWxlIG1vZGUgMTAwNjQ0PGJyPg0KJmd0OyBpbmRleCAwMDAwMDAwMDAwLi4wZWE3Mzc0 MWMxPGJyPg0KJmd0OyAtLS0gL2Rldi9udWxsPGJyPg0KJmd0OyArKysgYi9saWIvZ3JvL2dyb190 Y3A2LmM8YnI+DQomZ3Q7IEBAIC0wLDAgKzEsMjY3IEBAPGJyPg0KJmd0OyArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZTxicj4NCiZndDsgKyAqIENvcHlyaWdodChjKSAy MDE3IEludGVsIENvcnBvcmF0aW9uPGJyPg0KJmd0OyArICovPGJyPg0KPGJyPg0KVGhlIGxpY2Vu c2UgaGVhZGVyIGlzIGluY29ycmVjdCwgYW5kIHBsZWFzZSB1cGRhdGUuIFNhbWUgYW5kIHNpbWls YXIgaXNzdWUgaGFwcGVuczxicj4NCmluIHRoZSBuZXcgYWRkZWQgZmlsZXMsIGxpa2UgZ3JvX3Rj cF9pbnRlcm5hbC5oLjxicj4NCjxicj4NCiZndDsgKzxicj4NCiZndDsgZGlmZiAtLWdpdCBhL2xp Yi9ncm8vZ3JvX3RjcDYuaCBiL2xpYi9ncm8vZ3JvX3RjcDYuaCBuZXcgZmlsZSBtb2RlIDEwMDY0 NDxicj4NCiZndDsgaW5kZXggMDAwMDAwMDAwMC4uY2MwMmIwMDA0YTxicj4NCiZndDsgLS0tIC9k ZXYvbnVsbDxicj4NCiZndDsgKysrIGIvbGliL2dyby9ncm9fdGNwNi5oPGJyPg0KJmd0OyBAQCAt MCwwICsxLDE2MSBAQDxicj4NCiZndDsgKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt My1DbGF1c2U8YnI+DQomZ3Q7ICsgKiBDb3B5cmlnaHQoYykgMjAxNyBJbnRlbCBDb3Jwb3JhdGlv bjxicj4NCiZndDsgKyAqLzxicj4NCjxicj4NCkRpdHRvLjxicj4NCjxicj4NCiZndDsgKzxicj4N CiZndDsgKyNpZm5kZWYgX0dST19UQ1A2X0hfPGJyPg0KJmd0OyArI2RlZmluZSBfR1JPX1RDUDZf SF88YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsjaW5jbHVkZSAmbHQ7Z3JvX3RjcF9pbnRlcm5hbC5o Jmd0Ozxicj4NCjxicj4NClVzZSAmcXVvdDsjaW5jbHVkZSAmcXVvdDtncm9fdGNwX2ludGVybmFs LmgmcXVvdDsmcXVvdDsuPGJyPg0KPGJyPg0KJmd0OyArPGJyPg0KJmd0OyArI2RlZmluZSBJTlZB TElEX0FSUkFZX0lOREVYIDB4ZmZmZmZmZmZVTCAjZGVmaW5lPGJyPg0KPGJyPg0KRHVwbGljYXRl IGRlZmluaXRpb24gZm9yIElOVkFMSURfQVJSQVlfSU5ERVggaW4gYm90aCBncm9fdGNwNi5oPGJy Pg0KYW5kIGdyb190Y3BfaW50ZXJuYWwuaC48YnI+DQo8YnI+DQomZ3Q7ICtHUk9fVENQNl9UQkxf TUFYX0lURU1fTlVNICgxMDI0VUwgKiAxMDI0VUwpPGJyPg0KJmd0OyArPGJyPg0KJmd0OyArLyog SGVhZGVyIGZpZWxkcyByZXByZXNlbnRpbmcgYSBUQ1AvSVB2NiBmbG93ICovIHN0cnVjdCB0Y3A2 X2Zsb3dfa2V5IHs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCBjbW5fdGNw X2tleSBjbW5fa2V5Ozxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7dWludDhfdCZuYnNw OyBzcmNfYWRkclsxNl07PGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50OF90Jm5i c3A7IGRzdF9hZGRyWzE2XTs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3J0ZV9iZTMy X3QgdnRjX2Zsb3c7PGJyPg0KJmd0OyArfTs8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7IGRpZmYgLS1n aXQgYS9saWIvZ3JvL2dyb190Y3BfaW50ZXJuYWwuYyBiL2xpYi9ncm8vZ3JvX3RjcF9pbnRlcm5h bC5jIG5ldyBmaWxlPGJyPg0KJmd0OyBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAwMDAwLi41YTIx YmNhN2Y4PGJyPg0KJmd0OyAtLS0gL2Rldi9udWxsPGJyPg0KJmd0OyArKysgYi9saWIvZ3JvL2dy b190Y3BfaW50ZXJuYWwuYzxicj4NCiZndDsgQEAgLTAsMCArMSwxMjggQEA8YnI+DQomZ3Q7ICsv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlPGJyPg0KJmd0OyArICogQ29w eXJpZ2h0KGMpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb248YnI+DQomZ3Q7ICsgKi88YnI+DQo8YnI+ DQpVcGRhdGUgbGljZW5zZSBoZWFkZXIuPGJyPg0KPGJyPg0KJmd0OyArI2luY2x1ZGUgJmx0O3J0 ZV9tYWxsb2MuaCZndDs8YnI+DQomZ3Q7ICsjaW5jbHVkZSAmbHQ7cnRlX21idWYuaCZndDs8YnI+ DQomZ3Q7ICsjaW5jbHVkZSAmbHQ7cnRlX2V0aGRldi5oJmd0Ozxicj4NCiZndDsgKzxicj4NCiZn dDsgKyNpbmNsdWRlICZxdW90O2dyb190Y3BfaW50ZXJuYWwuaCZxdW90Ozxicj4NCiZndDsgKzxi cj4NCiZndDsgZGlmZiAtLWdpdCBhL2xpYi9ncm8vZ3JvX3RjcF9pbnRlcm5hbC5oIGIvbGliL2dy by9ncm9fdGNwX2ludGVybmFsLmggbmV3IGZpbGU8YnI+DQomZ3Q7IG1vZGUgMTAwNjQ0IGluZGV4 IDAwMDAwMDAwMDAuLjA3MmI3YWVhMTM8YnI+DQomZ3Q7IC0tLSAvZGV2L251bGw8YnI+DQomZ3Q7 ICsrKyBiL2xpYi9ncm8vZ3JvX3RjcF9pbnRlcm5hbC5oPGJyPg0KJmd0OyBAQCAtMCwwICsxLDIx MiBAQDxicj4NCiZndDsgKyNpZm5kZWYgX0dST19UQ1BfSF88YnI+DQomZ3Q7ICsjZGVmaW5lIF9H Uk9fVENQX0hfPGJyPg0KJmd0OyArPGJyPg0KPGJyPg0KQWRkIGxpY2Vuc2UgaGVhZGVyIGluIHRo aXMgZmlsZS48YnI+DQo8YnI+DQomZ3Q7ICsjZGVmaW5lIElOVkFMSURfQVJSQVlfSU5ERVggMHhm ZmZmZmZmZlVMPGJyPg0KJmd0OyArPGJyPg0KJmd0OyArI2luY2x1ZGUgJmx0O3J0ZV90Y3AuaCZn dDs8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsvKjxicj4NCiZndDsgKyAqIFRoZSBtYXggbGVuZ3Ro IG9mIGEgSVB2NCBwYWNrZXQsIHdoaWNoIGluY2x1ZGVzIHRoZSBsZW5ndGggb2YgdGhlIEwzPGJy Pg0KJmd0OyArICogaGVhZGVyLCB0aGUgTDQgaGVhZGVyIGFuZCB0aGUgZGF0YSBwYXlsb2FkLjxi cj4NCiZndDsgKyAqLzxicj4NCiZndDsgKyNkZWZpbmUgTUFYX0lQX1BLVF9MRU5HVEggVUlOVDE2 X01BWDxicj4NCiZndDsgKzxicj4NCiZndDsgKy8qIFRoZSBtYXhpbXVtIFRDUCBoZWFkZXIgbGVu Z3RoICovPGJyPg0KJmd0OyArI2RlZmluZSBNQVhfVENQX0hMRU4gNjA8YnI+DQomZ3Q7ICsjZGVm aW5lIElOVkFMSURfVENQX0hEUkxFTihsZW4pIFw8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZu YnNwOygoKGxlbikgJmx0OyBzaXplb2Yoc3RydWN0IHJ0ZV90Y3BfaGRyKSkgfHwgKChsZW4pICZn dDsgTUFYX1RDUF9ITEVOKSk8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsvKjxicj4NCiZndDsgKyAq IENoZWNrIGlmIHR3byBUQ1AvSVB2NCBwYWNrZXRzIGFyZSBuZWlnaGJvcnMuPGJyPg0KJmd0OyAr ICovPGJyPg0KPGJyPg0KVGhpcyBmdW5jdGlvbiBpcyBub3Qgb25seSBmb3IgVENQNCwgc28gdXNl ICZxdW90O0NoZWNrIGlmIHR3byBUQ1AgcGFja2V0cyBhcmUgbmVpZ2hib3JzJnF1b3Q7Ljxicj4N Cjxicj4NCiZndDsgK3N0YXRpYyBpbmxpbmUgaW50PGJyPg0KJmd0OyArY2hlY2tfc2VxX29wdGlv bihzdHJ1Y3QgZ3JvX3RjcF9pdGVtICppdGVtLDxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCBydGVfdGNwX2hkciAqdGNwaCw8 YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDt1aW50MzJfdCBzZW50X3NlcSw8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MTZfdCBpcF9pZCw8YnI+DQomZ3Q7ICsmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MTZfdCB0Y3BfaGws PGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7dWludDE2X3QgdGNwX2RsLDxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQxNl90IGwyX29mZnNldCw8YnI+DQomZ3Q7ICsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50OF90IGlzX2F0 b21pYyk8YnI+DQomZ3Q7ICt7PGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDtzdHJ1Y3Qg cnRlX21idWYgKnBrdF9vcmlnID0gaXRlbS0mZ3Q7Zmlyc3RzZWc7PGJyPg0KJmd0OyArJm5ic3A7 ICZuYnNwOyAmbmJzcDtjaGFyICppcGhfb3JpZzs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZu YnNwO3N0cnVjdCBydGVfdGNwX2hkciAqdGNwaF9vcmlnOzxicj4NCiZndDsgKyZuYnNwOyAmbmJz cDsgJm5ic3A7dWludDE2X3QgbGVuLCB0Y3BfaGxfb3JpZzs8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7 ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2lwaF9vcmlnID0gKGNoYXIgKikocnRlX3BrdG1idWZfbXRv ZChwa3Rfb3JpZywgY2hhciAqKSArPGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2wyX29m ZnNldCArIHBrdF9vcmlnLSZndDtsMl9sZW4pOzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5i c3A7dGNwaF9vcmlnID0gKHN0cnVjdCBydGVfdGNwX2hkciAqKShpcGhfb3JpZyArIHBrdF9vcmln LSZndDtsM19sZW4pOzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7dGNwX2hsX29yaWcg PSBwa3Rfb3JpZy0mZ3Q7bDRfbGVuOzxicj4NCiZndDsgKzxicj4NCiZndDsgKyZuYnNwOyAmbmJz cDsgJm5ic3A7LyogQ2hlY2sgaWYgVENQIG9wdGlvbiBmaWVsZHMgZXF1YWwgKi88YnI+DQomZ3Q7 ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2xlbiA9IFJURV9NQVgodGNwX2hsLCB0Y3BfaGxfb3JpZykg LSBzaXplb2Yoc3RydWN0IHJ0ZV90Y3BfaGRyKTs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZu YnNwO2lmICgodGNwX2hsICE9IHRjcF9obF9vcmlnKSB8fCAoKGxlbiAmZ3Q7IDApICZhbXA7JmFt cDs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyhtZW1jbXAodGNwaCArIDEsIHRjcGhfb3JpZyArIDEsPGJyPg0KJmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7bGVuKSAhPSAwKSkpPGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPg0KJmd0OyArPGJyPg0KJmd0OyAr Jm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBEb24ndCBtZXJnZSBwYWNrZXRzIHdob3NlIERGIGJpdHMg YXJlIGRpZmZlcmVudCAqLzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHVubGlr ZWx5KGl0ZW0tJmd0O2lzX2F0b21pYyBeIGlzX2F0b21pYykpPGJyPg0KJmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPg0KJmd0 OyArPGJyPg0KJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBjaGVjayBpZiB0aGUgdHdvIHBh Y2tldHMgYXJlIG5laWdoYm9ycyAqLzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7bGVu ID0gcGt0X29yaWctJmd0O3BrdF9sZW4gLSBsMl9vZmZzZXQgLSBwa3Rfb3JpZy0mZ3Q7bDJfbGVu IC08YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtwa3Rfb3JpZy0mZ3Q7bDNfbGVuIC0gdGNwX2hsX29yaWc7PGJyPg0KJmd0OyArJm5ic3A7 ICZuYnNwOyAmbmJzcDtpZiAoKHNlbnRfc2VxID09IGl0ZW0tJmd0O3NlbnRfc2VxICsgbGVuKSAm YW1wOyZhbXA7IChpc19hdG9taWMgfHw8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyhpcF9pZCA9PSBpdGVtLSZndDtsMy5pcF9pZCArIDEp KSk8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsvKiBhcHBlbmQgdGhlIG5ldyBwYWNrZXQgKi88YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gMTs8YnI+DQomZ3Q7ICsm bmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2UgaWYgKChzZW50X3NlcSArIHRjcF9kbCA9PSBpdGVtLSZn dDtzZW50X3NlcSkgJmFtcDsmYW1wOyAoaXNfYXRvbWljIHx8PGJyPg0KJmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoaXBfaWQgKyBpdGVtLSZndDtu Yl9tZXJnZWQgPT0gaXRlbS0mZ3Q7bDMuaXBfaWQpKSk8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBwcmUtcGVuZCB0aGUgbmV3IHBh Y2tldCAqLzxicj4NCiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3JldHVybiAtMTs8YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwO3JldHVybiAwOzxicj4NCiZndDsgK308YnI+DQomZ3Q7ICs8YnI+DQomZ3Q7ICtzdGF0 aWMgaW5saW5lIGludDxicj4NCiZndDsgK2lzX2NvbW1vbl90Y3Bfa2V5KHN0cnVjdCBjbW5fdGNw X2tleSAqazEsIHN0cnVjdCBjbW5fdGNwX2tleSAqazIpIHs8YnI+DQo8YnI+DQpSZW5hbWUgaXQg dG8gJnF1b3Q7aXNfc2FtZV9jb21tb25fdGNwX2tleSgpJnF1b3Q7Pzxicj4NCjxicj4NCiZndDsg KyZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuICghbWVtY21wKGsxLCBrMiwgc2l6ZW9mKHN0cnVj dCBjbW5fdGNwX2tleSkpKTsgfTxicj4NCiZndDsgKzxicj4NCiZndDsgKyNlbmRpZjxvOnA+PC9v OnA+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8 L2JvZHk+DQo8L2h0bWw+DQo= --_000_CY5PR11MB648741DBBF4B9AB43B3C3B1A925AACY5PR11MB6487namp_--