Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSpw3-00GECQ-7T for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jan 2024 02:57:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rSpw2-00BBdl-69 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jan 2024 02:57:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSpw1-00BBdX-Dz for pgsql-hackers@lists.postgresql.org; Thu, 25 Jan 2024 02:57:45 +0000 Received: from esa6.fujitsucc.c3s2.iphmx.com ([68.232.159.83]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSpvy-003ZmY-3z for pgsql-hackers@postgresql.org; Thu, 25 Jan 2024 02:57:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1706151462; x=1737687462; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=x4S12wWfMHPa995cFGFBkup3ajjOhr8AMHJzCsB4EUU=; b=qLjpATJDWWIW1bLYp6m88jblbUWKU4E4MQW4UPWTwhJ5/2P8q+8FXQ0e bXVwdcWJKrDZdqWh9zpkVKXSJuVfDUU3UFLblIE8kN7VpYicCz8riOPHL kbKSngYTP1cIOFdosTZameTkhe86e9WeJIZLqghvcLfmUQuVEfHsUfOwK gPef5/ZScDKkXftWcuZQBhbqhbOxVHMYTCFXHLMrlln172RC1MvVo350p cvYDNOfts8WP7Ht68F8aFp9HWtcJ+4iqtv9/E8TFcJLm/sSks6NwLomI1 wxP7GrH2u3TH2ASbGoRDNclg4wsMwEuJJKroGFrz3SkhLTRq7PptWkCSE A==; X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="109215968" X-IronPort-AV: E=Sophos;i="6.05,216,1701097200"; d="scan'208,223";a="109215968" Received: from mail-tycjpn01lp2168.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.168]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 11:57:36 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=clsMncj1cJaCjARb4VUfN6Ds6q0bebZl3RrIWpiTfTHkra77VIWR8pp/Eiq7veGNIC+9F4LdaiffDhJF6fuqcwp8F1dUL+01bPFsqo1H93QFMB9BDRE6RooUyiz4ZTWyxtO7xtPNOrqRd8q8x4/f2KZlfORpjn0axGfLMsICH4inYbj7GHtLo3iTnyZ6plZb6Wi+0nLKVm8W36QVIe61FTMvwe2fMZh3z35BY/5oW1+SMchsFFEOexB0BGOdktxZONpPjS534JtH9xtM/6ZuGFbnJXTQKz/GNr/25I+QeguEOPZbCPPTmmd2RwZPnhqMKI/DrDcXzQIcN24J/2qyzA== 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=lUlT2ia0d5+mlClOX9ngks/S2Vsx8GRHBpqZlqI43i0=; b=FPJfAoo5v0Aw4xEI8wCfLe7orTnH4orKiJ/VBOuoiuY1YrX2bvIHmIyvzNQPAc+hCmR14lgjiqJxZUQI7SMXtiZX3Ea6ybTU8zqyWCKH51QUEp4zIFyX89rWMYX02lQ9gzX9PRDsoLgDH++3ZM/faU3fvfMAnp+D+ZJGNmqO2JUKBFZzEJa1ToL1T6ltfRcyoXiBJG9l+/NLGrcyIXJCvfsk4Y6HirYNcLKFGU8nzFPXRfjmpBCL7Xfy2nyA2NbycQjKlP+vnHrH0rIKBt+zy7jfgUc4GVE565FZB0VTQHD4eEIAj/KYuXLqp7besIPwBmi/kkG4U5Ap7dareGLLHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYCPR01MB10134.jpnprd01.prod.outlook.com (2603:1096:400:1ee::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.12; Thu, 25 Jan 2024 02:57:30 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1%7]) with mapi id 15.20.7249.011; Thu, 25 Jan 2024 02:57:30 +0000 From: "Zhijie Hou (Fujitsu)" To: Amit Kapila , shveta malik CC: Ajin Cherian , Bertrand Drouvot , Masahiko Sawada , Dilip Kumar , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Alvaro Herrera Subject: RE: Synchronizing slots from primary to standby Thread-Topic: Synchronizing slots from primary to standby Thread-Index: AQHaJE9sgJJNJUqALky3mvuBKJq3g7CYl8uAgAC/xgCAANHogIAAa3WAgAArgoCAAQCOgIAADoeAgAA1dgCAABjKgIAABtwAgAL+XYCABKJcAIAAQJWAgAK2zQCAABFoAIAAWssAgADokgCAAKIxAIABM9iAgAUcsHCAAOg8AIAAsL6AgAEHJgCAAGl7gIAAGzGAgAljCKCAABkPgIABJ9qAgABFKACAApdEgIAANHAAgAanVQCAAbfUMIAA/DsAgAATNYCAAJYZAIAA46aAgAB8dwCAABaPAIAEULaAgAHkvsCAACL0gIAC/nIAgAGlGQCAAAWMgIABP5kAgAR2lICAAAmYgIAAOC8AgAAk1ICAACYogIABa66AgAAOZoCAAzwGgIAEcG2AgAAhSACAAB6rAIABao4AgAAraQCAAX4kAIABEYpQ Date: Thu, 25 Jan 2024 02:57:30 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ODU3ZmFkZjQtMzNjMy00OTUwLTkwNzAtMGE0MWEzMDdj?= =?utf-8?B?YzkyO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjQtMDEtMjVUMDI6NDk6NThaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?Q?d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|TYCPR01MB10134:EE_ x-ms-office365-filtering-correlation-id: 014656d3-5f5d-45b3-edaf-08dc1d515f38 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +3Wjmm2vv0La+HAxUlgAC3Jiuo32jMxbEsGM7E83HGvd82oIFgyTS9fz6EGxiCmeOy10gxQZ8WPsS+xxhzQKnZMvx14Hj1L6UjHWMCJ43BYT3kYQ7hEOYmRXfQSeOZC7Eo7SR7dQnvaqbJid5K3x00xYUDtrdzf/bp9Kzyl1o9pwejfVuv3TjLm8mXeiYnXi7H0Kam+iS55YlVHoTEf7+s8Cs3VoEzWC9XHCFLNwfiuPTR/+lE39PEYgOn1hAQ3nKTRbDk1/ZSynBTALrnLB19tz5Kze9CNt32uXpSRRymW9GCyy8jm4wlQeO0HvN6ypI5BQm45yHu/uYo6EUwUzZWhnWKACWj2iqxlJCt4cINmr73IQ0ZFBvBo3qpRHLDFz/6YsA+fpt9MnhyGtSxMIt5esG8uv/ia1S3928DEj59NOWx6yOXuZJ1gIjYQ+mCDYF6hzuKIuo6tFPOOdIKHsfEwId3f85wtmuP3LtZXlNrnHGtkcEVa0cpaB2ARD8M0YAB7c3ZSUC5cimjYbnHAQTMM79Zz2IBPNQzv0yX4llezXfvHg9wXGQSBOap3cw0aWzwfAIs8fTOzAMkJQQFCYIg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(39860400002)(376002)(346002)(136003)(230922051799003)(186009)(1590799021)(1800799012)(451199024)(64100799003)(1580799018)(41300700001)(86362001)(33656002)(85182001)(122000001)(99936003)(38100700002)(82960400001)(52536014)(4326008)(478600001)(54906003)(64756008)(66446008)(76116006)(316002)(66556008)(66476007)(66946007)(8936002)(8676002)(110136005)(2906002)(26005)(83380400001)(71200400001)(7696005)(53546011)(4744005)(5660300002)(6506007)(9686003)(7416002)(38070700009)(55016003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b1BJQmZLSVpJOWZVZUhaTE1Rd21RQVdsb1RyYm1yd0I4VXJETzZ2MXRoV0JO?= =?utf-8?B?czJBRGxVN2JhYXpFVzJNUTQvY2lCUUpPUWJ6d0JpOVpyNUVOa2wzYWI5c0Q2?= =?utf-8?B?amJYVnhOS3B0S2NaVWNJUnJGNm85c1o4M0E0bys4NUhoajdObTBYVGRKRlBM?= =?utf-8?B?Z3c2SFIxU0I3MlBjY2tYbFZmWTI3a21zTDR0YUM0T2tsT0gwdU9GUWVoSWxu?= =?utf-8?B?T25xMHNmeVBWQTlnem01MytJdmYrcyt0bGU4Zmx1YWxyODVqb3VrVEkxUkRh?= =?utf-8?B?ci91aW9RU2U4NC9KUnFrbTlRelo0RnVrWGFkNlNWZlJZeng3UkRNdytpZEw3?= =?utf-8?B?RmhJY01qRXliNFNxNlRSZDVuZHZmUlVmaUttaG5JWlB2YkF3Y09HblVDMHZB?= =?utf-8?B?d2lXaGgyeVI5UlFhNTl5R0JIWTBXL1JQSUZ0ZG9SMCtxU2c5OXd0NEkxQXFQ?= =?utf-8?B?cXJlSGIrZ2F2VlYrVnB2MFBObXBWeEh1UE12WjBUMGhsMitqcTJiU25TdGpw?= =?utf-8?B?V0NCT0VRYXlXWTFXOEJHNXl3bmlQbENFY2hONEgvY0toQUdRNkxNd1VrOThZ?= =?utf-8?B?dVlLN1B3a2F0bGdPeGpsemw2bEc4bmxlOS82NHJXMmU4TXBhcEZOc0JxdkdV?= =?utf-8?B?cXdMMDMyNmlmU0c0V2FJenZUTUVJeWhmVXZ0dWdrZVg2anB5OVNWWXBNOWRw?= =?utf-8?B?ZVhFMmZjT1lQV0JEd3k0Q0lpK2k5TmhCazF2U04zejBkMDU3aEEvenhCVldC?= =?utf-8?B?dUZiUzVTbUxSSDZ0M3oyUWF4VmRzY0RoL3VWdDdVekdlSkM5V0VZVjBIYWNY?= =?utf-8?B?cG9SbjNrNy8vK1JFdlJPZlZqR1RPK1g3bWFKeE9jZFMwc0F3OHlxM0JIcGxt?= =?utf-8?B?Q1d4WEpnTkFUS0JibEdOUTVlMXJjLzRqREZMZ2pxdTFZenE0ck9HU1J6RDBW?= =?utf-8?B?ZGNOQ3UvTVc3Ly9lK1g2WmxJY3cwL1N2V09OaVQyNStwRFVmQU1aUDFDYitz?= =?utf-8?B?UkV0bEdYd2pUWFdwODVmQmtZK0hvN0xuZlpmL3dvMTd5Yml3NC90emJENm04?= =?utf-8?B?NW5TMjB6SWFSK1diQytURVJ1WkUrdzRBbXgyNTJ0bXkwR3Fnb3lZdkpnM0cr?= =?utf-8?B?MGZCeEJudWExM0lUc1BBWGVRcWtsOS9LSnpiNFN2M0hzTUhGWlg1bWxQUUpJ?= =?utf-8?B?L2w3ZFhkb1VJTFpTWDBZWDR6TDhEYjI4SWJhMU1TeEwrTDA5VmVsODBabzVn?= =?utf-8?B?ellOREllTWpva3ZBbVFveFhlaFBVR0FiZ2RvaFJwYkpWSE9YcCs2ZE9sNkNa?= =?utf-8?B?SkM2QnJteDVZUE01b2JSRWF1NE8vVnVCUFc0S1ZyTEJSQk1WUzhtRzVYbGRm?= =?utf-8?B?Y0ptdG0ySDFHZ1lTQXdOR2pUckFCcHFaalBJSE1LZTRCVk5KRnkzZVV4aFZq?= =?utf-8?B?ZnBaSzI4c3o2OEJMdHhueHRLV1BpQ2ludGVQYkJCeTZkYm91dCt6Vkhzd0tl?= =?utf-8?B?enRRTDhScHhOTk1LckRQRlp0d0g1RnRyYy9oaUFwdXZKV0hPVHRaOFRSbTVn?= =?utf-8?B?R3lwQlc4QTl1L3lOWXNNTWVQbWZkckdoL0RpWlo5d2MwTmRreDJGVm56TG96?= =?utf-8?B?S0l3UVM1SkdGZ0tacFo2bzYxazI1OVJjMDJ5am8rRmFKYXJ0cUdoQXZONm5Z?= =?utf-8?B?M2x4ajBSYldmU0NyTTBVcHJ1bUdwcU1rUTZmWWYyaTlQYU1ITTY3VlNMZTZW?= =?utf-8?B?OVBFeEV2WldkM3k0Y3kyYkNRaFlLYjlPdGl5cW9rSHFBQUJLUit0Y1RvdUMw?= =?utf-8?B?Vjl0OEw0VUZGREdUbEx5TTRKN2c2Y2g4N0N0UlJqaWw3VXVvUUtDUGNVQ2E1?= =?utf-8?B?cG1RVFlqZ3RCVXNnN2hhVm13S0lWeU1tYUI5K20rSzExbjlHWTNwbFRldU1x?= =?utf-8?B?TXgvSlgvMzVra3NTSGJBYjh5MTcrRkk3bVhVeGdlcXp2NU5mNVFzbUZNL3Nm?= =?utf-8?B?TWZxc3B1M0hKR28xT3ozRXJFRHpkZmQ0cjR0aW1QdC9YYXBSRCtWN2RhRHhM?= =?utf-8?B?QVd0b2IrNzV2Mk9BQzhyMUg5ZnRSOHcybVFJWUZzRE5keTJrdFJESFJmMk5p?= =?utf-8?Q?5oXF9gfrSjMCatfwCj0zJVi9U?= Content-Type: multipart/mixed; boundary="_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: dM9fVZ77JVCEZHPatUaZuiGy5ofL6qWPTN82+uDs8oiTXZug3LYmn5yn886jKhhisLvFcV0oBS0eajfsKhn99mu+WstVyN8lfC0H+k+jPqIps4yOg908zd0IQoVbTpyPVhnwg1MqmLKXT/q5f5Zi8g3xncpN1Brh8zA4Cun8QsYrtm00cXEude9GSpkyI2AfhFsIj2yKk0yjETYEwbmp4kBkY8qOfZPQvZWBkm+mDRHip1/KZRzAPheJ173bSTtZBEqO2etrhfCgUXcG4/6AjBOFJLFzphJUByxklyK9R0pBQR3QJ5uaKzko7TXF+ZagFf17SmLCz9iBKc1qL/pcNtv+Mk9Map7ryQ76zFhBV4HYbIoOnGXVBcilgB59CJzcl5MU1nxvoVSVG64q+bjiqbq/ClyqgSH0VlVp33PABx2cm9KxlkgsDSmMU/u9KN5zfjeKV2fWXiqR3qNKbjfiPwKVyQC1B44z0NuBQvtpYh+COmanrpuv2aTbyYQZ/AyzhjI32jxSIuxLtHau8PDFqVPHdrD8qGGc6vJJPx3CGl8lLv0NG1HGH9BWsm4hx7HGWciI6yaiJdGogJy+8Auaf0YMjBCesO48dPHLRdRjm9rfRUiE0wv2aomtDXejFr6B X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 014656d3-5f5d-45b3-edaf-08dc1d515f38 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 02:57:30.6579 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yYSqcFdAW/cg3gKZleyME8MT8Mp0qGdhLin95/bCO2QoCBxXVVGCLEZ1gnpIhoTwldUujTVNp4tQM7V5S6/Z1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10134 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gV2VkbmVzZGF5LCBKYW51YXJ5IDI0LCAyMDI0IDY6MzEgUE0gQW1pdCBLYXBpbGEgPGFtaXQu a2FwaWxhMTZAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IE9uIFR1ZSwgSmFuIDIzLCAyMDI0IGF0 IDU6MTPigK9QTSBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+IHdyb3RlOg0K PiA+DQo+ID4gVGhhbmtzIEFqaW4gZm9yIHRlc3RpbmcgdGhlIHBhdGNoLiBQRkEgdjY2IHdoaWNo IGZpeGVzIHRoaXMgaXNzdWUuDQo+ID4NCj4gDQo+IEkgdGhpbmsgd2Ugc2hvdWxkIHRyeSB0byBj b21taXQgdGhlIHBhdGNoIGFzIGFsbCBvZiB0aGUgZGVzaWduIGNvbmNlcm5zIGFyZQ0KPiByZXNv bHZlZCBub3cuIFRvIGFjaGlldmUgdGhhdCwgY2FuIHdlIHNwbGl0IHRoZSBmYWlsb3ZlciBzZXR0 aW5nIHBhdGNoIGludG8gdGhlDQo+IGZvbGxvd2luZzogKGEpIHNldHRpbmcgZmFpbG92ZXIgcHJv cGVydHkgdmlhIFNRTCBjb21tYW5kcyBhbmQgZGlzcGxheSBpdCBpbg0KPiBwZ19yZXBsaWNhdGlv bl9zbG90cyAoYikgcmVwbGljYXRpb24gcHJvdG9jb2wgY29tbWFuZCAoYykgZmFpbG92ZXIgcHJv cGVydHkgdmlhDQo+IHN1YnNjcmlwdGlvbiBjb21tYW5kcz8NCj4gDQo+IEl0IHdpbGwgbWFrZSBl YWNoIHBhdGNoIHNtYWxsZXIgYW5kIGl0IHdvdWxkIGJlIGVhc2llciB0byBkZXRlY3QgYW55IHBy b2JsZW0gaW4NCj4gdGhlIHNhbWUgYWZ0ZXIgY29tbWl0Lg0KDQpBZ3JlZWQuIEkgc3BsaXQgdGhl IG9yaWdpbmFsIDAwMDEgcGF0Y2ggaW50byAzIHBhdGNoZXMgYXMgc3VnZ2VzdGVkLg0KSGVyZSBp cyB0aGUgVjY4IHBhdGNoIHNldC4NCg0KQmVzdCBSZWdhcmRzLA0KSG91IHpqDQo= --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0005-Slot-sync-worker-as-a-special-process.patch" Content-Description: v68-0005-Slot-sync-worker-as-a-special-process.patch Content-Disposition: attachment; filename="v68-0005-Slot-sync-worker-as-a-special-process.patch"; size=39265; creation-date="Thu, 25 Jan 2024 02:51:33 GMT"; modification-date="Thu, 25 Jan 2024 02:57:23 GMT" Content-Transfer-Encoding: base64 RnJvbSBhMGM1NzM0OTA1ZjAxYzUyY2EyODhmY2MxNDZjYjdkNDI1YzlkNTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTY6MTk6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OCA1LzhdIFNsb3Qtc3luYyB3b3JrZXIgYXMgYSBzcGVjaWFsIHByb2Nlc3MKClRoaXMgcGF0Y2gg YXR0ZW1wdHMgdG8gc3RhcnQgc2xvdC1zeW5jIHdvcmtlciBhcyBhIHNwZWNpYWwgcHJvY2Vzcwp3 aGljaCBpcyBuZWl0aGVyIGEgYmd3b3JrZXIgbm9yIGFuIEF1eGlsaWFyeSBwcm9jZXNzLiBUaGUg YmVuZWZpdAp3ZSBnZXQgaGVyZSBpcyB3ZSBjYW4gY29udHJvbCB0aGUgc3RhcnQtY29uZGl0aW9u cyBvZiB0aGUgd29ya2VyIHdoaWNoCmZ1cnRoZXIgYWxsb3dzIHVzIHRvIGRlZmluZSAnZW5hYmxl X3N5bmNzbG90JyBhcyBQR0NfU0lHSFVQIHdoaWNoIHdhcwpvdGhlcndpc2UgYSBQR0NfUE9TVE1B U1RFUiBHVUMgd2hlbiBzbG90c3luYyB3b3JrZXIgd2FzIHJlZ2lzdGVyZWQgYXMKYmd3b3JrZXIu Ci0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDY1 ICstLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAgICAgICB8ICAg MyAtCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgODYg KysrLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDM2 MCArKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDExIC0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5j ICAgICAgICB8ICAgMSArCiAuLi4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAg ICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgICAgICAgICAg ICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAg ICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8 ICAgMSAtCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAg IDggKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDM4NyBpbnNlcnRpb25zKCspLCAxODIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvYmd3b3JrZXIuc2dtbAppbmRleCBhN2NmZTZjNThjLi4yYzM5MzM4NWE5IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIu c2dtbApAQCAtMTE0LDU5ICsxMTQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtl cgogCiAgIDxwYXJhPgogICAgPHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIHNlcnZlciBzdGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVz PC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRp bmcKLSAgIG9ubHkgaW5kaWNhdGVzIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRl ZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVuCi0gICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVk LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgotCi0gICA8dmFyaWFibGVsaXN0PgotICAgIDx2YXJsaXN0 ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0 PC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAg PGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFy eT48L2luZGV4dGVybT4KLSAgICAgICBTdGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBo YXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsKLSAgICAgICBwcm9jZXNzZXMgcmVx dWVzdGluZyB0aGlzIGFyZSBub3QgZWxpZ2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgot ICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0g ICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25z aXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFy YT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25z aXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKLSAgICAgICBh bGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9u bHkgcXVlcmllcy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxp c3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29y a2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgotICAg ICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJn V29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRl cm0+Ci0gICAgICAgU2FtZSBtZWFuaW5nIGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lz dGVudFN0YXRlPC9saXRlcmFsPiBidXQKLSAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJt cyBvZiB0aGUgc2VydmVyIGkuZS4gc3RhcnQgdGhlIHdvcmtlciBvbmx5Ci0gICAgICAgaWYgaXQg aXMgaG90LXN0YW5kYnkuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92 YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48bGl0ZXJhbD5C Z1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlz dGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAgICBTdGFy dCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0gaGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3Rh dGUuIE5vdGUKLSAgICAgICB0aGF0IHRoZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3Rl bnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCi0gICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292 ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50Ci0gICAgICAgaW4gYSBzZXJ2ZXIg dGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5LgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVt PgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDxjb21tYW5k PnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBv bmUgb2YKKyAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFs PiAoc3RhcnQgYXMgc29vbiBhcworICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2Vs ZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsgcHJvY2Vzc2VzCisgICByZXF1 ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAor ICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFy dCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZQorICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBh IGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0bworICAgZGF0YWJh c2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJpZXMpLCBhbmQKKyAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5 c3RlbSBoYXMKKyAgIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUg bGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFsZW50CisgICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90 IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCisg ICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRvIGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Ag d2hlbiBhIGRpZmZlcmVudCBzdGF0ZQorICAgaXMgcmVhY2hlZC4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDQ2ODI4YjhhODkuLjFhZGQ0NDlm N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTEzMCw5ICsxMzAsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewogCQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWlu CiAJfSwKLQl7Ci0JCSJSZXBsU2xvdFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbgotCX0sCiAJewogCQkiUGFyYWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5 V29ya2VyTWFpbgogCX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGQ5MGQ1 ZDE1NzYuLmFkZmFmNzVjZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0x NjgsMTEgKzE2OCwxMSBAQAogICogdGhleSB3aWxsIG5ldmVyIGJlY29tZSBsaXZlIGJhY2tlbmRz LiAgZGVhZF9lbmQgY2hpbGRyZW4gYXJlIG5vdCBhc3NpZ25lZCBhCiAgKiBQTUNoaWxkU2xvdC4g IGRlYWRfZW5kIGNoaWxkcmVuIGhhdmUgYmtlbmRfdHlwZSBOT1JNQUwuCiAgKgotICogIlNwZWNp YWwiIGNoaWxkcmVuIHN1Y2ggYXMgdGhlIHN0YXJ0dXAsIGJnd3JpdGVyIGFuZCBhdXRvdmFjdXVt IGxhdW5jaGVyCi0gKiB0YXNrcyBhcmUgbm90IGluIHRoaXMgbGlzdC4gIFRoZXkgYXJlIHRyYWNr ZWQgdmlhIFN0YXJ0dXBQSUQgYW5kIG90aGVyCi0gKiBwaWRfdCB2YXJpYWJsZXMgYmVsb3cuICAo VGh1cywgdGhlcmUgY2FuJ3QgYmUgbW9yZSB0aGFuIG9uZSBvZiBhbnkgZ2l2ZW4KLSAqICJzcGVj aWFsIiBjaGlsZCBwcm9jZXNzIHR5cGUuICBXZSB1c2UgQmFja2VuZExpc3QgZW50cmllcyBmb3Ig YW55IGNoaWxkCi0gKiBwcm9jZXNzIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIG9mLikKKyAq ICJTcGVjaWFsIiBjaGlsZHJlbiBzdWNoIGFzIHRoZSBzdGFydHVwLCBiZ3dyaXRlciwgYXV0b3Zh Y3V1bSBsYXVuY2hlciBhbmQKKyAqIHNsb3Qgc3luYyB3b3JrZXIgdGFza3MgYXJlIG5vdCBpbiB0 aGlzIGxpc3QuICBUaGV5IGFyZSB0cmFja2VkIHZpYSBTdGFydHVwUElECisgKiBhbmQgb3RoZXIg cGlkX3QgdmFyaWFibGVzIGJlbG93LiAgKFRodXMsIHRoZXJlIGNhbid0IGJlIG1vcmUgdGhhbiBv bmUgb2YgYW55CisgKiBnaXZlbiAic3BlY2lhbCIgY2hpbGQgcHJvY2VzcyB0eXBlLiAgV2UgdXNl IEJhY2tlbmRMaXN0IGVudHJpZXMgZm9yIGFueQorICogY2hpbGQgcHJvY2VzcyB0aGVyZSBjYW4g YmUgbW9yZSB0aGFuIG9uZSBvZi4pCiAgKi8KIHR5cGVkZWYgc3RydWN0IGJrZW5kCiB7CkBAIC0y NTUsNyArMjU1LDggQEAgc3RhdGljIHBpZF90IFN0YXJ0dXBQSUQgPSAwLAogCQkJV2FsU3VtbWFy aXplclBJRCA9IDAsCiAJCQlBdXRvVmFjUElEID0gMCwKIAkJCVBnQXJjaFBJRCA9IDAsCi0JCQlT eXNMb2dnZXJQSUQgPSAwOworCQkJU3lzTG9nZ2VyUElEID0gMCwKKwkJCVNsb3RTeW5jV29ya2Vy UElEID0gMDsKIAogLyogU3RhcnR1cCBwcm9jZXNzJ3Mgc3RhdHVzICovCiB0eXBlZGVmIGVudW0K QEAgLTQ1OSw2ICs0NjAsMTAgQEAgc3RhdGljIHZvaWQgSW5pdFBvc3RtYXN0ZXJEZWF0aFdhdGNo SGFuZGxlKHZvaWQpOwogCSAgIChwbVN0YXRlID09IFBNX1JFQ09WRVJZIHx8IHBtU3RhdGUgPT0g UE1fSE9UX1NUQU5EQlkpKSkgJiYgXAogCSBQZ0FyY2hDYW5SZXN0YXJ0KCkpCiAKKyNkZWZpbmUg U2xvdFN5bmNXb3JrZXJBbGxvd2VkKCkJXAorCShlbmFibGVfc3luY3Nsb3QgJiYgcG1TdGF0ZSA9 PSBQTV9IT1RfU1RBTkRCWSAmJiBcCisJIFNsb3RTeW5jV29ya2VyQ2FuUmVzdGFydCgpKQorCiAj aWZkZWYgRVhFQ19CQUNLRU5ECiAKICNpZmRlZiBXSU4zMgpAQCAtMTAxMSwxMiArMTAxNiw2IEBA IFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICovCiAJQXBwbHlMYXVu Y2hlclJlZ2lzdGVyKCk7CiAKLQkvKgotCSAqIFJlZ2lzdGVyIHRoZSBzbG90IHN5bmMgd29ya2Vy IGhlcmUgdG8ga2ljayBzdGFydCBzbG90LXN5bmMgb3BlcmF0aW9uCi0JICogc29vbmVyIG9uIHRo ZSBwaHlzaWNhbCBzdGFuZGJ5LgotCSAqLwotCVNsb3RTeW5jV29ya2VyUmVnaXN0ZXIoKTsKLQog CS8qCiAJICogcHJvY2VzcyBhbnkgbGlicmFyaWVzIHRoYXQgc2hvdWxkIGJlIHByZWxvYWRlZCBh dCBwb3N0bWFzdGVyIHN0YXJ0CiAJICovCkBAIC0xODM3LDYgKzE4MzYsMTAgQEAgU2VydmVyTG9v cCh2b2lkKQogCQlpZiAoUGdBcmNoUElEID09IDAgJiYgUGdBcmNoU3RhcnR1cEFsbG93ZWQoKSkK IAkJCVBnQXJjaFBJRCA9IFN0YXJ0QXJjaGl2ZXIoKTsKIAorCQkvKiBJZiB3ZSBuZWVkIHRvIHN0 YXJ0IGEgc2xvdCBzeW5jIHdvcmtlciwgdHJ5IHRvIGRvIHRoYXQgbm93ICovCisJCWlmIChTbG90 U3luY1dvcmtlclBJRCA9PSAwICYmIFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpKQorCQkJU2xvdFN5 bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CisKIAkJLyogSWYgd2UgbmVlZCB0 byBzaWduYWwgdGhlIGF1dG92YWN1dW0gbGF1bmNoZXIsIGRvIHNvIG5vdyAqLwogCQlpZiAoYXZs YXVuY2hlcl9uZWVkc19zaWduYWwpCiAJCXsKQEAgLTI2ODQsNiArMjY4Nyw4IEBAIHByb2Nlc3Nf cG1fcmVsb2FkX3JlcXVlc3Qodm9pZCkKIAkJCXNpZ25hbF9jaGlsZChQZ0FyY2hQSUQsIFNJR0hV UCk7CiAJCWlmIChTeXNMb2dnZXJQSUQgIT0gMCkKIAkJCXNpZ25hbF9jaGlsZChTeXNMb2dnZXJQ SUQsIFNJR0hVUCk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2No aWxkKFNsb3RTeW5jV29ya2VyUElELCBTSUdIVVApOwogCiAJCS8qIFJlbG9hZCBhdXRoZW50aWNh dGlvbiBjb25maWcgZmlsZXMgdG9vICovCiAJCWlmICghbG9hZF9oYmEoKSkKQEAgLTMwNDEsNiAr MzA0Niw4IEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lkKQogCQkJCUF1dG9WYWNQSUQgPSBT dGFydEF1dG9WYWNMYXVuY2hlcigpOwogCQkJaWYgKFBnQXJjaFN0YXJ0dXBBbGxvd2VkKCkgJiYg UGdBcmNoUElEID09IDApCiAJCQkJUGdBcmNoUElEID0gU3RhcnRBcmNoaXZlcigpOworCQkJaWYg KFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpICYmIFNsb3RTeW5jV29ya2VyUElEID09IDApCisJCQkJ U2xvdFN5bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CiAKIAkJCS8qIHdvcmtl cnMgbWF5IGJlIHNjaGVkdWxlZCB0byBzdGFydCBub3cgKi8KIAkJCW1heWJlX3N0YXJ0X2Jnd29y a2VycygpOwpAQCAtMzIxMSw2ICszMjE4LDIyIEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lk KQogCQkJY29udGludWU7CiAJCX0KIAorCQkvKgorCQkgKiBXYXMgaXQgdGhlIHNsb3Qgc3luYyB3 b3JrZXI/IE5vcm1hbCBleGl0IG9yIEZBVEFMIGV4aXQgY2FuIGJlCisJCSAqIGlnbm9yZWQgKEZB VEFMIGNhbiBiZSBjYXVzZWQgYnkgbGlicHF3YWxyZWNlaXZlciBvbiByZWNlaXZpbmcKKwkJICog c2h1dGRvd24gcmVxdWVzdCBieSB0aGUgc3RhcnR1cCBwcm9jZXNzIGR1cmluZyBwcm9tb3Rpb24p OyB3ZSdsbAorCQkgKiBzdGFydCBhIG5ldyBvbmUgYXQgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRo ZSBwb3N0bWFzdGVyJ3MgbWFpbgorCQkgKiBsb29wLCBpZiBuZWNlc3NhcnkuIEFueSBvdGhlciBl eGl0IGNvbmRpdGlvbiBpcyB0cmVhdGVkIGFzIGEgY3Jhc2guCisJCSAqLworCQlpZiAocGlkID09 IFNsb3RTeW5jV29ya2VyUElEKQorCQl7CisJCQlTbG90U3luY1dvcmtlclBJRCA9IDA7CisJCQlp ZiAoIUVYSVRfU1RBVFVTXzAoZXhpdHN0YXR1cykgJiYgIUVYSVRfU1RBVFVTXzEoZXhpdHN0YXR1 cykpCisJCQkJSGFuZGxlQ2hpbGRDcmFzaChwaWQsIGV4aXRzdGF0dXMsCisJCQkJCQkJCSBfKCJz bG90IHN5bmMgd29ya2VyIHByb2Nlc3MiKSk7CisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIFdh cyBpdCBvbmUgb2Ygb3VyIGJhY2tncm91bmQgd29ya2Vycz8gKi8KIAkJaWYgKENsZWFudXBCYWNr Z3JvdW5kV29ya2VyKHBpZCwgZXhpdHN0YXR1cykpCiAJCXsKQEAgLTM1NzcsNiArMzYwMCwxMiBA QCBIYW5kbGVDaGlsZENyYXNoKGludCBwaWQsIGludCBleGl0c3RhdHVzLCBjb25zdCBjaGFyICpw cm9jbmFtZSkKIAllbHNlIGlmIChQZ0FyY2hQSUQgIT0gMCAmJiB0YWtlX2FjdGlvbikKIAkJc2ln cXVpdF9jaGlsZChQZ0FyY2hQSUQpOwogCisJLyogVGFrZSBjYXJlIG9mIHRoZSBzbG90IHN5bmMg d29ya2VyIHRvbyAqLworCWlmIChwaWQgPT0gU2xvdFN5bmNXb3JrZXJQSUQpCisJCVNsb3RTeW5j V29ya2VyUElEID0gMDsKKwllbHNlIGlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwICYmIHRha2Vf YWN0aW9uKQorCQlzaWdxdWl0X2NoaWxkKFNsb3RTeW5jV29ya2VyUElEKTsKKwogCS8qIFdlIGRv IE5PVCByZXN0YXJ0IHRoZSBzeXNsb2dnZXIgKi8KIAogCWlmIChTaHV0ZG93biAhPSBJbW1lZGlh dGVTaHV0ZG93bikKQEAgLTM3MTcsNiArMzc0Niw4IEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJCXNpZ25hbF9jaGlsZChXYWxSZWNlaXZlclBJRCwgU0lHVEVSTSk7CiAJCWlmIChX YWxTdW1tYXJpemVyUElEICE9IDApCiAJCQlzaWduYWxfY2hpbGQoV2FsU3VtbWFyaXplclBJRCwg U0lHVEVSTSk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2NoaWxk KFNsb3RTeW5jV29ya2VyUElELCBTSUdURVJNKTsKIAkJLyogY2hlY2twb2ludGVyLCBhcmNoaXZl ciwgc3RhdHMsIGFuZCBzeXNsb2dnZXIgbWF5IGNvbnRpbnVlIGZvciBub3cgKi8KIAogCQkvKiBO b3cgdHJhbnNpdGlvbiB0byBQTV9XQUlUX0JBQ0tFTkRTIHN0YXRlIHRvIHdhaXQgZm9yIHRoZW0g dG8gZGllICovCkBAIC0zNzMyLDEzICszNzYzLDEzIEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJLyoKIAkJICogUE1fV0FJVF9CQUNLRU5EUyBzdGF0ZSBlbmRzIHdoZW4gd2UgaGF2 ZSBubyByZWd1bGFyIGJhY2tlbmRzCiAJCSAqIChpbmNsdWRpbmcgYXV0b3ZhYyB3b3JrZXJzKSwg bm8gYmd3b3JrZXJzIChpbmNsdWRpbmcgdW5jb25uZWN0ZWQKLQkJICogb25lcyksIGFuZCBubyB3 YWx3cml0ZXIsIGF1dG92YWMgbGF1bmNoZXIgb3IgYmd3cml0ZXIuICBJZiB3ZSBhcmUKLQkJICog ZG9pbmcgY3Jhc2ggcmVjb3Zlcnkgb3IgYW4gaW1tZWRpYXRlIHNodXRkb3duIHRoZW4gd2UgZXhw ZWN0IHRoZQotCQkgKiBjaGVja3BvaW50ZXIgdG8gZXhpdCBhcyB3ZWxsLCBvdGhlcndpc2Ugbm90 LiBUaGUgc3RhdHMgYW5kCi0JCSAqIHN5c2xvZ2dlciBwcm9jZXNzZXMgYXJlIGRpc3JlZ2FyZGVk IHNpbmNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8KLQkJICogc2hhcmVkIG1lbW9yeTsgd2Ug YWxzbyBkaXNyZWdhcmQgZGVhZF9lbmQgY2hpbGRyZW4gaGVyZS4gV2Fsc2VuZGVycwotCQkgKiBh bmQgYXJjaGl2ZXIgYXJlIGFsc28gZGlzcmVnYXJkZWQsIHRoZXkgd2lsbCBiZSB0ZXJtaW5hdGVk IGxhdGVyCi0JCSAqIGFmdGVyIHdyaXRpbmcgdGhlIGNoZWNrcG9pbnQgcmVjb3JkLgorCQkgKiBv bmVzKSwgYW5kIG5vIHdhbHdyaXRlciwgYXV0b3ZhYyBsYXVuY2hlciwgYmd3cml0ZXIgb3Igc2xv dCBzeW5jCisJCSAqIHdvcmtlci4gIElmIHdlIGFyZSBkb2luZyBjcmFzaCByZWNvdmVyeSBvciBh biBpbW1lZGlhdGUgc2h1dGRvd24KKwkJICogdGhlbiB3ZSBleHBlY3QgdGhlIGNoZWNrcG9pbnRl ciB0byBleGl0IGFzIHdlbGwsIG90aGVyd2lzZSBub3QuIFRoZQorCQkgKiBzdGF0cyBhbmQgc3lz bG9nZ2VyIHByb2Nlc3NlcyBhcmUgZGlzcmVnYXJkZWQgc2luY2UgdGhleSBhcmUgbm90CisJCSAq IGNvbm5lY3RlZCB0byBzaGFyZWQgbWVtb3J5OyB3ZSBhbHNvIGRpc3JlZ2FyZCBkZWFkX2VuZCBj aGlsZHJlbgorCQkgKiBoZXJlLiBXYWxzZW5kZXJzIGFuZCBhcmNoaXZlciBhcmUgYWxzbyBkaXNy ZWdhcmRlZCwgdGhleSB3aWxsIGJlCisJCSAqIHRlcm1pbmF0ZWQgbGF0ZXIgYWZ0ZXIgd3JpdGlu ZyB0aGUgY2hlY2twb2ludCByZWNvcmQuCiAJCSAqLwogCQlpZiAoQ291bnRDaGlsZHJlbihCQUNL RU5EX1RZUEVfQUxMIC0gQkFDS0VORF9UWVBFX1dBTFNORCkgPT0gMCAmJgogCQkJU3RhcnR1cFBJ RCA9PSAwICYmCkBAIC0zNzQ4LDcgKzM3NzksOCBAQCBQb3N0bWFzdGVyU3RhdGVNYWNoaW5lKHZv aWQpCiAJCQkoQ2hlY2twb2ludGVyUElEID09IDAgfHwKIAkJCSAoIUZhdGFsRXJyb3IgJiYgU2h1 dGRvd24gPCBJbW1lZGlhdGVTaHV0ZG93bikpICYmCiAJCQlXYWxXcml0ZXJQSUQgPT0gMCAmJgot CQkJQXV0b1ZhY1BJRCA9PSAwKQorCQkJQXV0b1ZhY1BJRCA9PSAwICYmCisJCQlTbG90U3luY1dv cmtlclBJRCA9PSAwKQogCQl7CiAJCQlpZiAoU2h1dGRvd24gPj0gSW1tZWRpYXRlU2h1dGRvd24g fHwgRmF0YWxFcnJvcikKIAkJCXsKQEAgLTM4NDYsNiArMzg3OCw3IEBAIFBvc3RtYXN0ZXJTdGF0 ZU1hY2hpbmUodm9pZCkKIAkJCUFzc2VydChDaGVja3BvaW50ZXJQSUQgPT0gMCk7CiAJCQlBc3Nl cnQoV2FsV3JpdGVyUElEID09IDApOwogCQkJQXNzZXJ0KEF1dG9WYWNQSUQgPT0gMCk7CisJCQlB c3NlcnQoU2xvdFN5bmNXb3JrZXJQSUQgPT0gMCk7CiAJCQkvKiBzeXNsb2dnZXIgaXMgbm90IGNv bnNpZGVyZWQgaGVyZSAqLwogCQkJcG1TdGF0ZSA9IFBNX05PX0NISUxEUkVOOwogCQl9CkBAIC00 MDY5LDYgKzQxMDIsOCBAQCBUZXJtaW5hdGVDaGlsZHJlbihpbnQgc2lnbmFsKQogCQlzaWduYWxf Y2hpbGQoQXV0b1ZhY1BJRCwgc2lnbmFsKTsKIAlpZiAoUGdBcmNoUElEICE9IDApCiAJCXNpZ25h bF9jaGlsZChQZ0FyY2hQSUQsIHNpZ25hbCk7CisJaWYgKFNsb3RTeW5jV29ya2VyUElEICE9IDAp CisJCXNpZ25hbF9jaGlsZChTbG90U3luY1dvcmtlclBJRCwgc2lnbmFsKTsKIH0KIAogLyoKQEAg LTQ4ODEsNiArNDkxNiw3IEBAIFN1YlBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJICovCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3JrYmFja2VuZCIpID09IDAgfHwK IAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmthdmxhdW5jaGVyIikgPT0gMCB8fAorCQlzdHJjbXAo YXJndlsxXSwgIi0tZm9ya3Nzd29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0t Zm9ya2F2d29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0tZm9ya2F1eCIpID09 IDAgfHwKIAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCkBAIC00OTg0 LDYgKzUwMjAsMTMgQEAgU3ViUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAogCQlBdXRvVmFjV29ya2VyTWFpbihhcmdjIC0gMiwgYXJndiArIDIpOwkvKiBkb2VzIG5vdCBy ZXR1cm4gKi8KIAl9CisJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3Jrc3N3b3JrZXIiKSA9PSAw KQorCXsKKwkJLyogUmVzdG9yZSBiYXNpYyBzaGFyZWQgbWVtb3J5IHBvaW50ZXJzICovCisJCUlu aXRTaG1lbUFjY2VzcyhVc2VkU2htZW1TZWdBZGRyKTsKKworCQlSZXBsU2xvdFN5bmNXb3JrZXJN YWluKGFyZ2MgLSAyLCBhcmd2ICsgMik7IC8qIGRvZXMgbm90IHJldHVybiAqLworCX0KIAlpZiAo c3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCiAJewogCQkvKiBkbyB0aGlz IGFzIGVhcmx5IGFzIHBvc3NpYmxlOyBpbiBwYXJ0aWN1bGFyLCBiZWZvcmUgSW5pdFByb2Nlc3Mo KSAqLwpAQCAtNTgwNiw5ICs1ODQ5LDYgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhCZ1dv cmtlclN0YXJ0VGltZSBzdGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJaWYg KHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0dXJu IHRydWU7Ci0JCQlpZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0 ZV9Ib3RTdGFuZGJ5ICYmCi0JCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKLQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKaW5kZXggODRiNjYxMDRmNy4uMmEw MzM2NDdiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90 c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpA QCAtNDAsOSArNDAsMTIgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3JlY292ZXJ5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFu ZHMuaCIKKyNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgog I2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2Zv cmtfcHJvY2Vzcy5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCisjaW5jbHVk ZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNh bC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUg InJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKQEAgLTU1LDYgKzU4LDggQEAKICNpbmNsdWRl ICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgogI2luY2x1 ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgorI2luY2x1 ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCkBA IC05OCw3ICsxMDMsOCBAQCBTbG90U3luY1dvcmtlckN0eFN0cnVjdCAqU2xvdFN5bmNXb3JrZXIg PSBOVUxMOwogLyogR1VDIHZhcmlhYmxlICovCiBib29sCQllbmFibGVfc3luY3Nsb3QgPSBmYWxz ZTsKIAotLyogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qtc3luYyBjeWNsZXMgdmFy aWVzIGR5bmFtaWNhbGx5CisvKgorICogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qt c3luYyBjeWNsZXMgdmFyaWVzIGR5bmFtaWNhbGx5CiAgKiAod2l0aGluIGEgTUlOL01BWCByYW5n ZSkgYWNjb3JkaW5nIHRvIHNsb3QgYWN0aXZpdHkuIFNlZQogICogd2FpdF9mb3Jfc2xvdF9hY3Rp dml0eSgpIGZvciBkZXRhaWxzLgogICovCkBAIC0xMDcsOCArMTEzLDE2IEBAIGJvb2wJCWVuYWJs ZV9zeW5jc2xvdCA9IGZhbHNlOwogCiBzdGF0aWMgbG9uZyBzbGVlcF9tcyA9IE1JTl9XT1JLRVJf TkFQVElNRV9NUzsKIAorLyogRmxhZyB0byB0ZWxsIGlmIHdlIGFyZSBpbiBhIHNsb3Qgc3luYyB3 b3JrZXIgcHJvY2VzcyAqLworc3RhdGljIGJvb2wgYW1fc2xvdHN5bmNfd29ya2VyID0gZmFsc2U7 CisKIHN0YXRpYyB2b2lkIFByb2Nlc3NTbG90U3luY0ludGVycnVwdHMoV2FsUmVjZWl2ZXJDb25u ICp3cmNvbm4pOwogCisjaWZkZWYgRVhFQ19CQUNLRU5ECitzdGF0aWMgcGlkX3Qgc2xvdHN5bmN3 b3JrZXJfZm9ya2V4ZWModm9pZCk7CisjZW5kaWYKK05PTl9FWEVDX1NUQVRJQyB2b2lkIFJlcGxT bG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgcGdfYXR0cmlidXRlX25v cmV0dXJuKCk7CisKIC8qCiAgKiBJZiBuZWNlc3NhcnksIHVwZGF0ZSBsb2NhbCBzbG90IG1ldGFk YXRhIGJhc2VkIG9uIHRoZSBkYXRhIGZyb20gdGhlIHJlbW90ZQogICogc2xvdC4KQEAgLTcxMiw3 ICs3MjYsOCBAQCBzeW5jaHJvbml6ZV9zbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKICAq IHN0YW5kYnlzLgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tfcHJpbWFyeV9pbmZvKFdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdfc3RhbmRieSkKK2NoZWNrX3ByaW1h cnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5k YnksCisJCQkJICAgYm9vbCAqcHJpbWFyeV9zbG90X2ludmFsaWQpCiB7CiAjZGVmaW5lIFBSSU1B UllfSU5GT19PVVRQVVRfQ09MX0NPVU5UIDIKIAlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CkBAIC03 MjcsOCArNzQyLDEwIEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29u biwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQo KTsKIAogCUFzc2VydChhbV9jYXNjYWRpbmdfc3RhbmRieSAhPSBOVUxMKTsKKwlBc3NlcnQocHJp bWFyeV9zbG90X2ludmFsaWQgIT0gTlVMTCk7CiAKIAkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBm YWxzZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgY2FzY2FkaW5nICovCisJKnByaW1hcnlfc2xv dF9pbnZhbGlkID0gZmFsc2U7CS8qIG92ZXJ3cml0dGVuIGxhdGVyIGlmIGludmFsaWQgKi8KIAog CWluaXRTdHJpbmdJbmZvKCZjbWQpOwogCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKQEAgLTc2Niwx MyArNzgzLDE2IEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29ubiwg Ym9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiAJCUFzc2VydCghaXNudWxsKTsKIAogCQlpZiAo IXZhbGlkKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJKnByaW1hcnlfc2xvdF9pbnZhbGlk ID0gdHJ1ZTsKKwkJCWVyZXBvcnQoTE9HLAogCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAotCQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9u aXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQkJZXJybXNnKCJiYWQgY29u ZmlndXJhdGlvbiBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCS8qIHRyYW5zbGF0b3I6 IHNlY29uZCAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCiAJCQkJCWVycmRldGFpbCgiVGhl IHByaW1hcnkgc2VydmVyIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBieSIKIAkJCQkJCQkgICIgXCIl c1wiIGlzIG5vdCB2YWxpZC4iLAogCQkJCQkJCSAgUHJpbWFyeVNsb3ROYW1lLCAicHJpbWFyeV9z bG90X25hbWUiKSk7CisJCX0KIAl9CiAKIAlFeGVjQ2xlYXJUdXBsZSh0dXBzbG90KTsKQEAgLTc4 MSwyMCArODAxLDE1IEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29u biwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiB9CiAKIC8qCi0gKiBDaGVjayB0aGF0IGFs bCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24gYXJlIHNldAotICogYXBw cm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBhbiBFUlJPUi4KKyAqIFJldHVybnMgdHJ1ZSBpZiBh bGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBzZXQKKyAqIGFw cHJvcHJpYXRlbHksIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogICoKICAqIElmIGFsbCBjaGVj a3MgcGFzcywgZXh0cmFjdHMgdGhlIGRibmFtZSBmcm9tIHRoZSBwcmltYXJ5X2Nvbm5pbmZvIEdV QyBhbmQKLSAqIHJldHVybnMgaXQuCisgKiBhbmQgcmV0dXJuIGl0IGluIG91dHB1dCBkYm5hbWUg YXJnLgogICovCi1zdGF0aWMgY2hhciAqCi12YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJu YW1lKHZvaWQpCitzdGF0aWMgYm9vbAordmFsaWRhdGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFt ZShjaGFyICoqZGJuYW1lKQogewotCWNoYXIJICAgKmRibmFtZTsKLQotCS8qIFNhbml0eSBjaGVj ay4gKi8KLQlBc3NlcnQoZW5hYmxlX3N5bmNzbG90KTsKLQogCS8qCiAJICogQSBwaHlzaWNhbCBy ZXBsaWNhdGlvbiBzbG90KHByaW1hcnlfc2xvdF9uYW1lKSBpcyByZXF1aXJlZCBvbiB0aGUKIAkg KiBwcmltYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSByb3dzIG5lZWRlZCBieSB0aGUgc3RhbmRieSBh cmUgbm90IHJlbW92ZWQKQEAgLTgwMiwxMCArODE3LDEzIEBAIHZhbGlkYXRlX3BhcmFtZXRlcnNf YW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBiZSBpbnZhbGlkYXRlZC4KIAkgKi8KIAlpZiAoUHJp bWFyeVNsb3ROYW1lID09IE5VTEwgfHwgc3RyY21wKFByaW1hcnlTbG90TmFtZSwgIiIpID09IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJhbnNsYXRvcjog JXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwotCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNs b3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycm1z ZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCiAJCQkJZXJy aGludCgiXCIlc1wiIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJ CXJldHVybiBmYWxzZTsKKwl9CiAKIAkvKgogCSAqIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG11c3Qg YmUgZW5hYmxlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgcGh5c2ljYWwKQEAgLTgxMyw0NSArODMx LDk0IEBAIHZhbGlkYXRlX3BhcmFtZXRlcnNfYW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBjYXRh bG9nX3htaW4gdmFsdWVzIG9uIHRoZSBzdGFuZGJ5LgogCSAqLwogCWlmICghaG90X3N0YW5kYnlf ZmVlZGJhY2spCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJh bnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwotCQkJCWVycm1zZygiZXhpdGlu ZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAor CQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIiks CiAJCQkJZXJyaGludCgiXCIlc1wiIG11c3QgYmUgZW5hYmxlZC4iLCAiaG90X3N0YW5kYnlfZmVl ZGJhY2siKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAkvKgogCSAqIExvZ2ljYWwgZGVjb2Rp bmcgcmVxdWlyZXMgd2FsX2xldmVsID49IGxvZ2ljYWwgYW5kIHdlIGN1cnJlbnRseSBvbmx5CiAJ ICogc3luY2hyb25pemUgbG9naWNhbCBzbG90cy4KIAkgKi8KIAlpZiAod2FsX2xldmVsIDwgV0FM X0xFVkVMX0xPR0lDQUwpCi0JCWVyZXBvcnQoRVJST1IsCi0JCS8qIHRyYW5zbGF0b3I6ICVzIGlz IGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KLQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5 bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwl7CisJCWVyZXBvcnQo TE9HLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0 aW9uIiksCiAJCQkJZXJyaGludCgiXCJ3YWxfbGV2ZWxcIiBtdXN0IGJlID49IGxvZ2ljYWwuIikp OworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJLyoKIAkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBp cyByZXF1aXJlZCB0byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKIAkgKiBnZXR0aW5n IHNsb3RzIGluZm9ybWF0aW9uLgogCSAqLwogCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8 fCBzdHJjbXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7 CisJCWVyZXBvcnQoTE9HLAogCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBu YW1lICovCi0JCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVl IHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBm b3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCJcIiVzXCIgbXVzdCBiZSBk ZWZpbmVkLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJ LyoKIAkgKiBUaGUgc2xvdCBzeW5jIHdvcmtlciBuZWVkcyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24g Zm9yIHdhbHJjdl9leGVjIHRvCiAJICogd29yay4KIAkgKi8KLQlkYm5hbWUgPSB3YWxyY3ZfZ2V0 X2RibmFtZV9mcm9tX2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7Ci0JaWYgKGRibmFtZSA9PSBO VUxMKQotCQllcmVwb3J0KEVSUk9SLAorCSpkYm5hbWUgPSB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9t X2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7CisJaWYgKCpkYm5hbWUgPT0gTlVMTCkKKwl7CisJ CWVyZXBvcnQoTE9HLAogCiAJCS8qCiAJCSAqIHRyYW5zbGF0b3I6ICdkYm5hbWUnIGlzIGEgc3Bl Y2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJsZQogCQkgKiBuYW1lCiAJCSAqLwotCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3lu Y2hyb25pemF0aW9uIiksCiAJCQkJZXJyaGludCgiJ2RibmFtZScgbXVzdCBiZSBzcGVjaWZpZWQg aW4gXCIlc1wiLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQor CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IGFsbCBuZWNlc3NhcnkgR1VD cyBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24gYXJlIHNldAorICogYXBwcm9wcmlhdGVseS4gSWYg bm90LCBzbGVlcCBmb3IgTUFYX1dPUktFUl9OQVBUSU1FX01TIGFuZCBjaGVjayBhZ2Fpbi4KKyAq IFRoZSBpZGVhIGlzIHRvIGJlY29tZSBuby1vcCB1bnRpbCB3ZSBnZXQgdmFsaWQgR1VDcyB2YWx1 ZXMuCisgKgorICogSWYgYWxsIGNoZWNrcyBwYXNzLCBleHRyYWN0cyB0aGUgZGJuYW1lIGZyb20g dGhlIHByaW1hcnlfY29ubmluZm8gR1VDIGFuZAorICogcmV0dXJucyBpdC4KKyAqLworc3RhdGlj IGNoYXIgKgord2FpdF9mb3JfdmFsaWRfcGFyYW1zX2FuZF9nZXRfZGJuYW1lKHZvaWQpCit7CisJ Y2hhcgkgICAqZGJuYW1lOworCWludAkJCXJjOworCisJLyogU2FuaXR5IGNoZWNrLiAqLworCUFz c2VydChlbmFibGVfc3luY3Nsb3QpOworCisJZm9yICg7OykKKwl7CisJCWlmICh2YWxpZGF0ZV9w YXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKCZkYm5hbWUpKQorCQkJYnJlYWs7CisKKwkJZXJlcG9y dChMT0csIGVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSk7CisKKwkJUHJv Y2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhOVUxMKTsKKworCQlyYyA9IFdhaXRMYXRjaChNeUxhdGNo LAorCQkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFU SCwKKwkJCQkJICAgTUFYX1dPUktFUl9OQVBUSU1FX01TLAorCQkJCQkgICBXQUlUX0VWRU5UX1JF UExfU0xPVFNZTkNfTUFJTik7CisKKwkJaWYgKHJjICYgV0xfTEFUQ0hfU0VUKQorCQkJUmVzZXRM YXRjaChNeUxhdGNoKTsKKwl9CiAKIAlyZXR1cm4gZGJuYW1lOwogfQpAQCAtODY3LDE2ICs5MzQs MjggQEAgc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2b2lkKQogewogCWNoYXIJICAgKm9sZF9wcmlt YXJ5X2Nvbm5pbmZvID0gcHN0cmR1cChQcmltYXJ5Q29ubkluZm8pOwogCWNoYXIJICAgKm9sZF9w cmltYXJ5X3Nsb3RuYW1lID0gcHN0cmR1cChQcmltYXJ5U2xvdE5hbWUpOworCWJvb2wJCW9sZF9l bmFibGVfc3luY3Nsb3QgPSBlbmFibGVfc3luY3Nsb3Q7CiAJYm9vbAkJb2xkX2hvdF9zdGFuZGJ5 X2ZlZWRiYWNrID0gaG90X3N0YW5kYnlfZmVlZGJhY2s7CiAJYm9vbAkJY29ubmluZm9fY2hhbmdl ZDsKIAlib29sCQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQ7CiAKKwlBc3NlcnQoZW5hYmxlX3N5 bmNzbG90KTsKKwogCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKIAlQcm9jZXNzQ29uZmln RmlsZShQR0NfU0lHSFVQKTsKIAogCWNvbm5pbmZvX2NoYW5nZWQgPSBzdHJjbXAob2xkX3ByaW1h cnlfY29ubmluZm8sIFByaW1hcnlDb25uSW5mbykgIT0gMDsKIAlwcmltYXJ5X3Nsb3RuYW1lX2No YW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfc2xvdG5hbWUsIFByaW1hcnlTbG90TmFtZSkgIT0g MDsKIAorCWlmIChvbGRfZW5hYmxlX3N5bmNzbG90ICE9IGVuYWJsZV9zeW5jc2xvdCkKKwl7CisJ CWVyZXBvcnQoTE9HLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1l ICovCisJCQkJZXJybXNnKCJzbG90IHN5bmMgd29ya2VyIHdpbGwgc2h1dGRvd24gYmVjYXVzZSIK KwkJCQkJICAgIiAlcyBpcyBkaXNhYmxlZCIsICJlbmFibGVfc3luY3Nsb3QiKSk7CisJCXByb2Nf ZXhpdCgwKTsKKwl9CisKIAlpZiAoY29ubmluZm9fY2hhbmdlZCB8fAogCQlwcmltYXJ5X3Nsb3Ru YW1lX2NoYW5nZWQgfHwKIAkJKG9sZF9ob3Rfc3RhbmRieV9mZWVkYmFjayAhPSBob3Rfc3RhbmRi eV9mZWVkYmFjaykpCkBAIC04ODQsOCArOTYzLDcgQEAgc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2 b2lkKQogCQllcmVwb3J0KExPRywKIAkJCQllcnJtc2coInNsb3Qgc3luYyB3b3JrZXIgd2lsbCBy ZXN0YXJ0IGJlY2F1c2Ugb2YgYSBwYXJhbWV0ZXIgY2hhbmdlIikpOwogCi0JCS8qIFRoZSBleGl0 IGNvZGUgMSB3aWxsIG1ha2UgcG9zdG1hc3RlciByZXN0YXJ0IHRoaXMgd29ya2VyICovCi0JCXBy b2NfZXhpdCgxKTsKKwkJcHJvY19leGl0KDApOwogCX0KIAogCXBmcmVlKG9sZF9wcmltYXJ5X2Nv bm5pbmZvKTsKQEAgLTkwMiw3ICs5ODAsOCBAQCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdh bFJlY2VpdmVyQ29ubiAqd3Jjb25uKQogCiAJaWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCiAJ ewotCQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOworCQlpZiAod3Jjb25uKQorCQkJd2FscmN2 X2Rpc2Nvbm5lY3Qod3Jjb25uKTsKIAkJZXJlcG9ydChMT0csCiAJCQkJZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gb24gcmVjZWl2aW5nIFNJR0lO VCIpKTsKIAkJcHJvY19leGl0KDApOwpAQCAtOTM0LDE3ICsxMDEzLDE2IEBAIHNsb3RzeW5jX3dv cmtlcl9vbmV4aXQoaW50IGNvZGUsIERhdHVtIGFyZykKICAqIHN5bmMtY3ljbGVzIGlzIHJlc2V0 IHRvIHRoZSBtaW5pbXVtICgyMDBtcykuCiAgKi8KIHN0YXRpYyB2b2lkCi13YWl0X2Zvcl9zbG90 X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wgYW1fY2FzY2FkaW5nX3N0YW5k YnkpCit3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wg cmVjaGVja19wcmltYXJ5X2luZm8pCiB7CiAJaW50CQkJcmM7CiAKLQlpZiAoYW1fY2FzY2FkaW5n X3N0YW5kYnkpCisJaWYgKHJlY2hlY2tfcHJpbWFyeV9pbmZvKQogCXsKIAkJLyoKLQkJICogU2xv dCBzeW5jaHJvbml6YXRpb24gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5n Ci0JCSAqIHN0YW5kYnkuIFNvIGlmIHdlIGFyZSBvbiB0aGUgY2FzY2FkaW5nIHN0YW5kYnksIHdl IHdpbGwgc2tpcCB0aGUKLQkJICogc3luYyBhbmQgdGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdl IGNoZWNrIGFnYWluIHdoZXRoZXIgd2UgYXJlCi0JCSAqIHN0aWxsIGNhc2NhZGluZyBzdGFuZGJ5 IG9yIG5vdC4KKwkJICogSWYgd2UgYXJlIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieSBvciBwcmlt YXJ5X3Nsb3RfbmFtZSBjb25maWd1cmVkCisJCSAqIGlzIG5vdCB2YWxpZCwgdGhlbiB3ZSB3aWxs IHNraXAgdGhlIHN5bmMgYW5kIHRha2UgYSBsb25nZXIgbmFwCisJCSAqIGJlZm9yZSB3ZSBjYW4g ZG8gY2hlY2tfcHJpbWFyeV9pbmZvKCkgYWdhaW4uCiAJCSAqLwogCQlzbGVlcF9tcyA9IE1BWF9X T1JLRVJfTkFQVElNRV9NUzsKIAl9CkBAIC05ODAsMjAgKzEwNTgsMzggQEAgd2FpdF9mb3Jfc2xv dF9hY3Rpdml0eShib29sIHNvbWVfc2xvdF91cGRhdGVkLCBib29sIGFtX2Nhc2NhZGluZ19zdGFu ZGJ5KQogICogSXQgY29ubmVjdHMgdG8gdGhlIHByaW1hcnkgc2VydmVyLCBmZXRjaGVzIGxvZ2lj YWwgZmFpbG92ZXIgc2xvdHMKICAqIGluZm9ybWF0aW9uIHBlcmlvZGljYWxseSBpbiBvcmRlciB0 byBjcmVhdGUgYW5kIHN5bmMgdGhlIHNsb3RzLgogICovCi12b2lkCi1SZXBsU2xvdFN5bmNXb3Jr ZXJNYWluKERhdHVtIG1haW5fYXJnKQorTk9OX0VYRUNfU1RBVElDIHZvaWQKK1JlcGxTbG90U3lu Y1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlXYWxSZWNlaXZlckNvbm4g KndyY29ubiA9IE5VTEw7CiAJY2hhcgkgICAqZGJuYW1lOwogCWJvb2wJCWFtX2Nhc2NhZGluZ19z dGFuZGJ5OworCWJvb2wJCXByaW1hcnlfc2xvdF9pbnZhbGlkOwogCWNoYXIJICAgKmVycjsKKwlz aWdqbXBfYnVmCWxvY2FsX3NpZ2ptcF9idWY7CiAKLQllcmVwb3J0KExPRywgZXJybXNnKCJyZXBs aWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisJYW1fc2xvdHN5bmNfd29ya2Vy ID0gdHJ1ZTsKIAotCW9uX3NobWVtX2V4aXQoc2xvdHN5bmNfd29ya2VyX29uZXhpdCwgKERhdHVt KSAwKTsKKwlNeUJhY2tlbmRUeXBlID0gQl9TTE9UU1lOQ19XT1JLRVI7CiAKLQlTcGluTG9ja0Fj cXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJaW5pdF9wc19kaXNwbGF5KE5VTEwpOwor CisJU2V0UHJvY2Vzc2luZ01vZGUoSW5pdFByb2Nlc3NpbmcpOwogCisJLyoKKwkgKiBDcmVhdGUg YSBwZXItYmFja2VuZCBQR1BST0Mgc3RydWN0IGluIHNoYXJlZCBtZW1vcnkuICBXZSBtdXN0IGRv IHRoaXMKKwkgKiBiZWZvcmUgd2UgYWNjZXNzIGFueSBzaGFyZWQgbWVtb3J5LgorCSAqLworCUlu aXRQcm9jZXNzKCk7CisKKwkvKgorCSAqIEVhcmx5IGluaXRpYWxpemF0aW9uLgorCSAqLworCUJh c2VJbml0KCk7CisKKwlBc3NlcnQoU2xvdFN5bmNXb3JrZXIgIT0gTlVMTCk7CisKKwlTcGluTG9j a0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CiAJQXNzZXJ0KFNsb3RTeW5jV29ya2Vy LT5waWQgPT0gSW52YWxpZFBpZCk7CiAKIAkvKgpAQCAtMTAwOCwyNiArMTEwNCw3NyBAQCBSZXBs U2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCiAJLyogQWR2ZXJ0aXNlIG91ciBQ SUQgc28gdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIGNhbiBraWxsIHVzIG9uIHByb21vdGlvbiAq LwogCVNsb3RTeW5jV29ya2VyLT5waWQgPSBNeVByb2NQaWQ7Ci0KIAlTcGluTG9ja1JlbGVhc2Uo JlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CiAKKwllcmVwb3J0KExPRywgZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisKKwlvbl9zaG1lbV9leGl0KHNsb3Rz eW5jX3dvcmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7CisKIAkvKiBTZXR1cCBzaWduYWwgaGFuZGxp bmcgKi8KIAlwcXNpZ25hbChTSUdIVVAsIFNpZ25hbEhhbmRsZXJGb3JDb25maWdSZWxvYWQpOwog CXBxc2lnbmFsKFNJR0lOVCwgU2lnbmFsSGFuZGxlckZvclNodXRkb3duUmVxdWVzdCk7CiAJcHFz aWduYWwoU0lHVEVSTSwgZGllKTsKLQlCYWNrZ3JvdW5kV29ya2VyVW5ibG9ja1NpZ25hbHMoKTsK KwlwcXNpZ25hbChTSUdGUEUsIEZsb2F0RXhjZXB0aW9uSGFuZGxlcik7CisJcHFzaWduYWwoU0lH VVNSMSwgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIpOworCXBxc2lnbmFsKFNJR1VTUjIsIFNJ R19JR04pOworCXBxc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOworCXBxc2lnbmFsKFNJR0NITEQs IFNJR19ERkwpOworCisJLyoKKwkgKiBFc3RhYmxpc2hlcyBTSUdBTFJNIGhhbmRsZXIgYW5kIGlu aXRpYWxpemUgdGltZW91dCBtb2R1bGUuIEl0IGlzIG5lZWRlZAorCSAqIGJ5IEluaXRQb3N0Z3Jl cyB0byByZWdpc3RlciBkaWZmZXJlbnQgdGltZW91dHMuCisJICovCisJSW5pdGlhbGl6ZVRpbWVv dXRzKCk7CiAKIAkvKiBMb2FkIHRoZSBsaWJwcS1zcGVjaWZpYyBmdW5jdGlvbnMgKi8KIAlsb2Fk X2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CiAKLQlkYm5hbWUgPSB2YWxpZGF0ZV9w YXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKCk7CisJLyoKKwkgKiBJZiBhbiBleGNlcHRpb24gaXMg ZW5jb3VudGVyZWQsIHByb2Nlc3NpbmcgcmVzdW1lcyBoZXJlLgorCSAqCisJICogV2UganVzdCBu ZWVkIHRvIGNsZWFuIHVwLCByZXBvcnQgdGhlIGVycm9yLCBhbmQgZ28gYXdheS4KKwkgKgorCSAq IElmIHdlIGRvIG5vdCBoYXZlIHRoaXMgaGFuZGxpbmcgaGVyZSwgdGhlbiBzaW5jZSB0aGlzIHdv cmtlciBwcm9jZXNzCisJICogb3BlcmF0ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZXhjZXB0aW9u IHN0YWNrLCBFUlJPUnMgdHVybiBpbnRvIEZBVEFMcy4KKwkgKiBUaGVyZWZvcmUsIHdlIGNyZWF0 ZSBvdXIgb3duIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGNhdGNoIEVSUk9Scy4KKwkgKi8KKwlpZiAo c2lnc2V0am1wKGxvY2FsX3NpZ2ptcF9idWYsIDEpICE9IDApCisJeworCQkvKiBzaW5jZSBub3Qg dXNpbmcgUEdfVFJZLCBtdXN0IHJlc2V0IGVycm9yIHN0YWNrIGJ5IGhhbmQgKi8KKwkJZXJyb3Jf Y29udGV4dF9zdGFjayA9IE5VTEw7CisKKwkJLyogUHJldmVudHMgaW50ZXJydXB0cyB3aGlsZSBj bGVhbmluZyB1cCAqLworCQlIT0xEX0lOVEVSUlVQVFMoKTsKKworCQkvKiBSZXBvcnQgdGhlIGVy cm9yIHRvIHRoZSBzZXJ2ZXIgbG9nICovCisJCUVtaXRFcnJvclJlcG9ydCgpOworCisJCS8qCisJ CSAqIFdlIGNhbiBub3cgZ28gYXdheS4gIE5vdGUgdGhhdCBiZWNhdXNlIHdlIGNhbGxlZCBJbml0 UHJvY2VzcywgYQorCQkgKiBjYWxsYmFjayB3YXMgcmVnaXN0ZXJlZCB0byBkbyBQcm9jS2lsbCwg d2hpY2ggd2lsbCBjbGVhbiB1cAorCQkgKiBuZWNlc3Nhcnkgc3RhdGUuCisJCSAqLworCQlwcm9j X2V4aXQoMCk7CisJfQorCisJLyogV2UgY2FuIG5vdyBoYW5kbGUgZXJlcG9ydChFUlJPUikgKi8K KwlQR19leGNlcHRpb25fc3RhY2sgPSAmbG9jYWxfc2lnam1wX2J1ZjsKKworCS8qCisJICogVW5i bG9jayBzaWduYWxzICh0aGV5IHdlcmUgYmxvY2tlZCB3aGVuIHRoZSBwb3N0bWFzdGVyIGZvcmtl ZCB1cykKKwkgKi8KKwlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJlVuQmxvY2tTaWcsIE5VTEwp OworCisJZGJuYW1lID0gd2FpdF9mb3JfdmFsaWRfcGFyYW1zX2FuZF9nZXRfZGJuYW1lKCk7CiAK IAkvKgogCSAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNwZWNpZmllZCBieSB1c2VyIGluIHBy aW1hcnlfY29ubmluZm8uIFdlIG5lZWQKIAkgKiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gZm9yIHdh bHJjdl9leGVjIHRvIHdvcmsuIFBsZWFzZSBzZWUgY29tbWVudHMgYXRvcAogCSAqIGxpYnBxcmN2 X2V4ZWMuCiAJICovCi0JQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVDb25uZWN0aW9uKGRibmFt ZSwgTlVMTCwgMCk7CisJSW5pdFBvc3RncmVzKGRibmFtZSwgSW52YWxpZE9pZCwgTlVMTCwgSW52 YWxpZE9pZCwgMCwgTlVMTCk7CisKKwlTZXRQcm9jZXNzaW5nTW9kZShOb3JtYWxQcm9jZXNzaW5n KTsKIAogCS8qCiAJICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNl cnZlciBmb3Igc2xvdHMKQEAgLTEwNDYsMjYgKzExOTMsMjkgQEAgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbihEYXR1bSBtYWluX2FyZykKIAkgKiBjYXNjYWRpbmcgc3RhbmRieSBhbmQgdmFsaWRhdGVz IHByaW1hcnlfc2xvdF9uYW1lIGZvcgogCSAqIG5vbi1jYXNjYWRpbmctc3RhbmRieXMuCiAJICov Ci0JY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwlj aGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnksICZwcmltYXJ5 X3Nsb3RfaW52YWxpZCk7CiAKIAkvKiBNYWluIHdhaXQgbG9vcCAqLwogCWZvciAoOzspCiAJewog CQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9IGZhbHNlOworCQlib29sCQlyZWNoZWNrX3ByaW1h cnlfaW5mbyA9IGFtX2Nhc2NhZGluZ19zdGFuZGJ5IHx8IHByaW1hcnlfc2xvdF9pbnZhbGlkOwog CiAJCVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMod3Jjb25uKTsKIAotCQlpZiAoIWFtX2Nhc2Nh ZGluZ19zdGFuZGJ5KQorCQlpZiAoIXJlY2hlY2tfcHJpbWFyeV9pbmZvKQogCQkJc29tZV9zbG90 X3VwZGF0ZWQgPSBzeW5jaHJvbml6ZV9zbG90cyh3cmNvbm4pOworCQllbHNlIGlmIChwcmltYXJ5 X3Nsb3RfaW52YWxpZCkKKwkJCWVyZXBvcnQoTE9HLCBlcnJtc2coInNraXBwaW5nIHNsb3Qgc3lu Y2hyb25pemF0aW9uIikpOwogCi0JCXdhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoc29tZV9zbG90X3Vw ZGF0ZWQsIGFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwkJd2FpdF9mb3Jfc2xvdF9hY3Rpdml0eShz b21lX3Nsb3RfdXBkYXRlZCwgcmVjaGVja19wcmltYXJ5X2luZm8pOwogCiAJCS8qCiAJCSAqIElm IHRoZSBzdGFuZGJ5IHdhcyBwcm9tb3RlZCB0aGVuIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBjYXNj YWRpbmcKIAkJICogc3RhbmRieSBtaWdodCBubyBsb25nZXIgYmUgb25lLCBzbyByZWNoZWNrIGVh Y2ggdGltZS4KIAkJICovCi0JCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKLQkJCWNoZWNrX3By aW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJCWlmIChyZWNoZWNr X3ByaW1hcnlfaW5mbykKKwkJCWNoZWNrX3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRp bmdfc3RhbmRieSwgJnByaW1hcnlfc2xvdF9pbnZhbGlkKTsKIAl9CiAKIAkvKgpAQCAtMTA4MSw3 ICsxMjMxLDcgQEAgUmVwbFNsb3RTeW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIGJvb2wK IElzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpCiB7Ci0JcmV0dXJuIFNsb3RTeW5jV29ya2Vy LT5waWQgPT0gTXlQcm9jUGlkOworCXJldHVybiBhbV9zbG90c3luY193b3JrZXI7CiB9CiAKIC8q CkBAIC0xMTExLDcgKzEyNjEsNyBAQCBTaHV0RG93blNsb3RTeW5jKHZvaWQpCiAJCS8qIFdhaXQg YSBiaXQsIHdlIGRvbid0IGV4cGVjdCB0byBoYXZlIHRvIHdhaXQgbG9uZyAqLwogCQlyYyA9IFdh aXRMYXRjaChNeUxhdGNoLAogCQkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xf RVhJVF9PTl9QTV9ERUFUSCwKLQkJCQkJICAgMTBMLCBXQUlUX0VWRU5UX0JHV09SS0VSX1NIVVRE T1dOKTsKKwkJCQkJICAgMTBMLCBXQUlUX0VWRU5UX1JFUExfU0xPVFNZTkNfU0hVVERPV04pOwog CiAJCWlmIChyYyAmIFdMX0xBVENIX1NFVCkKIAkJewpAQCAtMTE1NCw0MiArMTMwNCw5MiBAQCBT bG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKQogCX0KIH0KIAorI2lmZGVmIEVYRUNfQkFDS0VO RAogLyoKLSAqIFJlZ2lzdGVyIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBmb3Igc2xvdHMgc3luY2hy b25pemF0aW9uIHByb3ZpZGVkCi0gKiBlbmFibGVfc3luY3Nsb3QgaXMgT04uCisgKiBUaGUgZm9y a2V4ZWMgcm91dGluZSBmb3IgdGhlIHNsb3Qgc3luYyB3b3JrZXIgcHJvY2Vzcy4KKyAqCisgKiBG b3JtYXQgdXAgdGhlIGFyZ2xpc3QsIHRoZW4gZm9yayBhbmQgZXhlYy4KICAqLwotdm9pZAotU2xv dFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKQorc3RhdGljIHBpZF90CitzbG90c3luY3dvcmtlcl9m b3JrZXhlYyh2b2lkKQogewotCUJhY2tncm91bmRXb3JrZXIgYmd3OworCWNoYXIJICAgKmF2WzEw XTsKKwlpbnQJCQlhYyA9IDA7CiAKLQlpZiAoIWVuYWJsZV9zeW5jc2xvdCkKLQl7Ci0JCWVyZXBv cnQoTE9HLAotCQkJCWVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKLQkJ CQllcnJkZXRhaWwoIlwiZW5hYmxlX3N5bmNzbG90XCIgaXMgZGlzYWJsZWQuIikpOwotCQlyZXR1 cm47Ci0JfQorCWF2W2FjKytdID0gInBvc3RncmVzIjsKKwlhdlthYysrXSA9ICItLWZvcmtzc3dv cmtlciI7CisJYXZbYWMrK10gPSBOVUxMOwkJCS8qIGZpbGxlZCBpbiBieSBwb3N0bWFzdGVyX2Zv cmtleGVjICovCisJYXZbYWNdID0gTlVMTDsKIAotCW1lbXNldCgmYmd3LCAwLCBzaXplb2YoYmd3 KSk7CisJQXNzZXJ0KGFjIDwgbGVuZ3Rob2YoYXYpKTsKIAotCS8qIFdlIG5lZWQgZGF0YWJhc2Ug Y29ubmVjdGlvbiB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsICovCi0J Ymd3LmJnd19mbGFncyA9IEJHV09SS0VSX1NITUVNX0FDQ0VTUyB8Ci0JCUJHV09SS0VSX0JBQ0tF TkRfREFUQUJBU0VfQ09OTkVDVElPTjsKKwlyZXR1cm4gcG9zdG1hc3Rlcl9mb3JrZXhlYyhhYywg YXYpOworfQorI2VuZGlmCiAKLQkvKiBTdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0 ZSBoYXMgYmVlbiByZWFjaGVkIGluIGEgaG90IHN0YW5kYnkgKi8KLQliZ3cuYmd3X3N0YXJ0X3Rp bWUgPSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5OworLyoKKyAqIFNs b3RTeW5jV29ya2VyQ2FuUmVzdGFydAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgd29ya2Vy IGlzIGFsbG93ZWQgdG8gcmVzdGFydCBpZiBlbm91Z2ggdGltZSBoYXMKKyAqIHBhc3NlZCAoU0xP VFNZTkNfUkVTVEFSVF9JTlRFUlZBTF9TRUMpIHNpbmNlIGl0IHdhcyBsYXVuY2hlZCBsYXN0Lgor ICogT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisgKgorICogVGhpcyBpcyBhIHNhZmV0eSB2YWx2 ZSB0byBwcm90ZWN0IGFnYWluc3QgY29udGludW91cyByZXNwYXduIGF0dGVtcHRzIGlmIHRoZQor ICogd29ya2VyIGlzIGR5aW5nIGltbWVkaWF0ZWx5IGF0IGxhdW5jaC4gTm90ZSB0aGF0IHNpbmNl IHdlIHdpbGwgcmV0cnkgdG8KKyAqIGxhdW5jaCB0aGUgd29ya2VyIGZyb20gdGhlIHBvc3RtYXN0 ZXIgbWFpbiBsb29wLCB3ZSB3aWxsIGdldCBhbm90aGVyCisgKiBjaGFuY2UgbGF0ZXIuCisgKi8K K2Jvb2wKK1Nsb3RTeW5jV29ya2VyQ2FuUmVzdGFydCh2b2lkKQoreworI2RlZmluZSBTTE9UU1lO Q19SRVNUQVJUX0lOVEVSVkFMX1NFQyAxMAogCi0Jc25wcmludGYoYmd3LmJnd19saWJyYXJ5X25h bWUsIE1BWFBHUEFUSCwgInBvc3RncmVzIik7Ci0Jc25wcmludGYoYmd3LmJnd19mdW5jdGlvbl9u YW1lLCBCR1dfTUFYTEVOLCAiUmVwbFNsb3RTeW5jV29ya2VyTWFpbiIpOwotCXNucHJpbnRmKGJn dy5iZ3dfbmFtZSwgQkdXX01BWExFTiwKLQkJCSAicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtl ciIpOwotCXNucHJpbnRmKGJndy5iZ3dfdHlwZSwgQkdXX01BWExFTiwKLQkJCSAic2xvdCBzeW5j IHdvcmtlciIpOworCXN0YXRpYyB0aW1lX3QgbGFzdF9zbG90c3luY19zdGFydF90aW1lID0gMDsK Kwl0aW1lX3QJCWN1cnRpbWUgPSB0aW1lKE5VTEwpOwogCi0JYmd3LmJnd19yZXN0YXJ0X3RpbWUg PSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMOwotCWJndy5iZ3dfbm90aWZ5X3BpZCA9IDA7 Ci0JYmd3LmJnd19tYWluX2FyZyA9IChEYXR1bSkgMDsKKwkvKiBSZXR1cm4gZmFsc2UgaWYgdG9v IHNvb24gc2luY2UgbGFzdCBzdGFydC4gKi8KKwlpZiAoKHVuc2lnbmVkIGludCkgKGN1cnRpbWUg LSBsYXN0X3Nsb3RzeW5jX3N0YXJ0X3RpbWUpIDwKKwkJKHVuc2lnbmVkIGludCkgU0xPVFNZTkNf UkVTVEFSVF9JTlRFUlZBTF9TRUMpCisJCXJldHVybiBmYWxzZTsKKworCWxhc3Rfc2xvdHN5bmNf c3RhcnRfdGltZSA9IGN1cnRpbWU7CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBNYWluIGVu dHJ5IHBvaW50IGZvciBzbG90IHN5bmMgd29ya2VyIHByb2Nlc3MsIHRvIGJlIGNhbGxlZCBmcm9t IHRoZQorICogcG9zdG1hc3Rlci4KKyAqLworaW50CitTdGFydFNsb3RTeW5jV29ya2VyKHZvaWQp Cit7CisJcGlkX3QJCXBpZDsKKworI2lmZGVmIEVYRUNfQkFDS0VORAorCXN3aXRjaCAoKHBpZCA9 IHNsb3RzeW5jd29ya2VyX2ZvcmtleGVjKCkpKQorCXsKKyNlbHNlCisJc3dpdGNoICgocGlkID0g Zm9ya19wcm9jZXNzKCkpKQorCXsKKwkJY2FzZSAwOgorCQkJLyogaW4gcG9zdG1hc3RlciBjaGls ZCAuLi4gKi8KKwkJCUluaXRQb3N0bWFzdGVyQ2hpbGQoKTsKKworCQkJLyogQ2xvc2UgdGhlIHBv c3RtYXN0ZXIncyBzb2NrZXRzICovCisJCQlDbG9zZVBvc3RtYXN0ZXJQb3J0cyhmYWxzZSk7CisK KwkJCVJlcGxTbG90U3luY1dvcmtlck1haW4oMCwgTlVMTCk7CisJCQlicmVhazsKKyNlbmRpZgor CQljYXNlIC0xOgorCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImNvdWxkIG5vdCBmb3Jr IHNsb3Qgc3luYyB3b3JrZXIgcHJvY2VzczogJW0iKSkpOworCQkJcmV0dXJuIDA7CisKKwkJZGVm YXVsdDoKKwkJCXJldHVybiAoaW50KSBwaWQ7CisJfQogCi0JUmVnaXN0ZXJCYWNrZ3JvdW5kV29y a2VyKCZiZ3cpOworCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLworCXJldHVybiAwOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvbG1nci9wcm9jLmMKaW5kZXggNGFkOTZiZWI4Ny4uYWE1M2E1NzA3NyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2xtZ3IvcHJvYy5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24v c2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNyZXAuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2Vy LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9jb25kaXRpb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJz dG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgpAQCAtMzY0LDggKzM2NSwx MiBAQCBJbml0UHJvY2Vzcyh2b2lkKQogCSAqIGNoaWxkOyB0aGlzIGlzIHNvIHRoYXQgdGhlIHBv c3RtYXN0ZXIgY2FuIGRldGVjdCBpdCBpZiB3ZSBleGl0IHdpdGhvdXQKIAkgKiBjbGVhbmluZyB1 cC4gIChYWFggYXV0b3ZhYyBsYXVuY2hlciBjdXJyZW50bHkgZG9lc24ndCBwYXJ0aWNpcGF0ZSBp bgogCSAqIHRoaXM7IGl0IHByb2JhYmx5IHNob3VsZC4pCisJICoKKwkgKiBTbG90IHN5bmMgd29y a2VyIGFsc28gZG9lcyBub3QgcGFydGljaXBhdGUgaW4gaXQsIHNlZSBjb21tZW50cyBhdG9wCisJ ICogJ3N0cnVjdCBia2VuZCcgaW4gcG9zdG1hc3Rlci5jLgogCSAqLwotCWlmIChJc1VuZGVyUG9z dG1hc3RlciAmJiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkpCisJaWYgKElzVW5kZXJQ b3N0bWFzdGVyICYmICFJc0F1dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSAmJgorCQkhSXNMb2dp Y2FsU2xvdFN5bmNXb3JrZXIoKSkKIAkJTWFya1Bvc3RtYXN0ZXJDaGlsZEFjdGl2ZSgpOwogCiAJ LyoKQEAgLTkzNCw4ICs5MzksMTIgQEAgUHJvY0tpbGwoaW50IGNvZGUsIERhdHVtIGFyZykKIAkg KiBUaGlzIHByb2Nlc3MgaXMgbm8gbG9uZ2VyIHByZXNlbnQgaW4gc2hhcmVkIG1lbW9yeSBpbiBh bnkgbWVhbmluZ2Z1bAogCSAqIHdheSwgc28gdGVsbCB0aGUgcG9zdG1hc3RlciB3ZSd2ZSBjbGVh bmVkIHVwIGFjY2VwdGFibHkgd2VsbC4gKFhYWAogCSAqIGF1dG92YWMgbGF1bmNoZXIgc2hvdWxk IGJlIGluY2x1ZGVkIGhlcmUgc29tZWRheSkKKwkgKgorCSAqIFNsb3Qgc3luYyB3b3JrZXIgaXMg YWxzbyBub3QgYSBwb3N0bWFzdGVyIGNoaWxkLCBzbyBza2lwIHRoaXMgc2hhcmVkCisJICogbWVt b3J5IHJlbGF0ZWQgcHJvY2Vzc2luZyBoZXJlLgogCSAqLwotCWlmIChJc1VuZGVyUG9zdG1hc3Rl ciAmJiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkpCisJaWYgKElzVW5kZXJQb3N0bWFz dGVyICYmICFJc0F1dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSAmJgorCQkhSXNMb2dpY2FsU2xv dFN5bmNXb3JrZXIoKSkKIAkJTWFya1Bvc3RtYXN0ZXJDaGlsZEluYWN0aXZlKCk7CiAKIAkvKiB3 YWtlIGF1dG92YWMgbGF1bmNoZXIgaWYgbmVlZGVkIC0tIHNlZSBjb21tZW50cyBpbiBGcmVlV29y a2VySW5mbyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3Jj L2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IGU4YzUzMGFjZDkuLjFhMzRiZDM3MTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKQEAgLTMyODYsMTcgKzMyODYsNiBAQCBQcm9jZXNzSW50ZXJydXB0cyh2 b2lkKQogCQkJICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJCX0KLQkJZWxzZSBpZiAoSXNMb2dpY2Fs U2xvdFN5bmNXb3JrZXIoKSkKLQkJewotCQkJZWxvZyhERUJVRzEsCi0JCQkJICJyZXBsaWNhdGlv biBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gZHVlIHRvIGFkbWluaXN0cmF0b3Ig Y29tbWFuZCIpOwotCi0JCQkvKgotCQkJICogU2xvdCBzeW5jIHdvcmtlciBjYW4gYmUgc3RvcHBl ZCBhdCBhbnkgdGltZS4gVXNlIGV4aXQgc3RhdHVzIDEKLQkJCSAqIHNvIHRoZSBiYWNrZ3JvdW5k IHdvcmtlciBpcyByZXN0YXJ0ZWQuCi0JCQkgKi8KLQkJCXByb2NfZXhpdCgxKTsKLQkJfQogCQll bHNlIGlmIChJc0JhY2tncm91bmRXb3JrZXIpCiAJCQllcmVwb3J0KEZBVEFMLAogCQkJCQkoZXJy Y29kZShFUlJDT0RFX0FETUlOX1NIVVRET1dOKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X2lvLmMKaW5kZXggNDNjMzkzZDZmZS4uOWQ2ZTA2NzM4MiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2lvLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2lvLmMKQEAgLTMzOCw2ICszMzgsNyBAQCBwZ3N0YXRfdHJhY2tzX2lv X2JrdHlwZShCYWNrZW5kVHlwZSBia3R5cGUpCiAJCWNhc2UgQl9CR19XT1JLRVI6CiAJCWNhc2Ug Ql9CR19XUklURVI6CiAJCWNhc2UgQl9DSEVDS1BPSU5URVI6CisJCWNhc2UgQl9TTE9UU1lOQ19X T1JLRVI6CiAJCWNhc2UgQl9TVEFOREFMT05FX0JBQ0tFTkQ6CiAJCWNhc2UgQl9TVEFSVFVQOgog CQljYXNlIEJfV0FMX1NFTkRFUjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKaW5kZXggM2U2MjAzMzIyYS4uNGMwZWUyZGQyOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAgLTU0LDYg KzU0LDcgQEAgTE9HSUNBTF9MQVVOQ0hFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBs b2dpY2FsIHJlcGxpY2F0aW9uIGxhdW5jaGVyIHByb2MKIExPR0lDQUxfUEFSQUxMRUxfQVBQTFlf TUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxl bCBhcHBseSBwcm9jZXNzLiIKIFJFQ09WRVJZX1dBTF9TVFJFQU0JIldhaXRpbmcgaW4gbWFpbiBs b29wIG9mIHN0YXJ0dXAgcHJvY2VzcyBmb3IgV0FMIHRvIGFycml2ZSwgZHVyaW5nIHN0cmVhbWlu ZyByZWNvdmVyeS4iCiBSRVBMX1NMT1RTWU5DX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9m IHNsb3Qgc3luYyB3b3JrZXIuIgorUkVQTF9TTE9UU1lOQ19TSFVURE9XTgkiV2FpdGluZyBmb3Ig c2xvdCBzeW5jIHdvcmtlciB0byBzaHV0IGRvd24uIgogU1lTTE9HR0VSX01BSU4JIldhaXRpbmcg aW4gbWFpbiBsb29wIG9mIHN5c2xvZ2dlciBwcm9jZXNzLiIKIFdBTF9SRUNFSVZFUl9NQUlOCSJX YWl0aW5nIGluIG1haW4gbG9vcCBvZiBXQUwgcmVjZWl2ZXIgcHJvY2Vzcy4iCiBXQUxfU0VOREVS X01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMgYi9zcmMvYmFja2VuZC91 dGlscy9pbml0L21pc2Npbml0LmMKaW5kZXggMjNmNzdhNTllNS4uMzA5YWEzM2E2MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2luaXQvbWlzY2luaXQuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgInBvc3Rt YXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wZ2FyY2guaCIKICNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dp Y2Fsd29ya2VyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv aXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgpAQCAtMjkzLDYgKzI5NCw5IEBAIEdl dEJhY2tlbmRUeXBlRGVzYyhCYWNrZW5kVHlwZSBiYWNrZW5kVHlwZSkKIAkJY2FzZSBCX0xPR0dF UjoKIAkJCWJhY2tlbmREZXNjID0gImxvZ2dlciI7CiAJCQlicmVhazsKKwkJY2FzZSBCX1NMT1RT WU5DX1dPUktFUjoKKwkJCWJhY2tlbmREZXNjID0gInNsb3RzeW5jd29ya2VyIjsKKwkJCWJyZWFr OwogCQljYXNlIEJfU1RBTkRBTE9ORV9CQUNLRU5EOgogCQkJYmFja2VuZERlc2MgPSAic3RhbmRh bG9uZSBiYWNrZW5kIjsKIAkJCWJyZWFrOwpAQCAtODM1LDkgKzgzOSwxMCBAQCBJbml0aWFsaXpl U2Vzc2lvblVzZXJJZFN0YW5kYWxvbmUodm9pZCkKIHsKIAkvKgogCSAqIFRoaXMgZnVuY3Rpb24g c2hvdWxkIG9ubHkgYmUgY2FsbGVkIGluIHNpbmdsZS11c2VyIG1vZGUsIGluIGF1dG92YWN1dW0K LQkgKiB3b3JrZXJzLCBhbmQgaW4gYmFja2dyb3VuZCB3b3JrZXJzLgorCSAqIHdvcmtlcnMsIGlu IHNsb3Qgc3luYyB3b3JrZXIgYW5kIGluIGJhY2tncm91bmQgd29ya2Vycy4KIAkgKi8KLQlBc3Nl cnQoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IElzQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSB8fCBJ c0JhY2tncm91bmRXb3JrZXIpOworCUFzc2VydCghSXNVbmRlclBvc3RtYXN0ZXIgfHwgSXNBdXRv VmFjdXVtV29ya2VyUHJvY2VzcygpIHx8CisJCSAgIElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkg fHwgSXNCYWNrZ3JvdW5kV29ya2VyKTsKIAogCS8qIGNhbGwgb25seSBvbmNlICovCiAJQXNzZXJ0 KCFPaWRJc1ZhbGlkKEF1dGhlbnRpY2F0ZWRVc2VySWQpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGlu aXQuYwppbmRleCAxYWQzMzY3MTU5Li5hNWFmMGY0MTBhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0 aW5pdC5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9hdXRvdmFjdXVt LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5jbHVkZSAicmVwbGlj YXRpb24vc2xvdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKICNp bmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1n ci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKQEAgLTg3NCwxMCArODc1LDExIEBAIEluaXRQ b3N0Z3Jlcyhjb25zdCBjaGFyICppbl9kYm5hbWUsIE9pZCBkYm9pZCwKIAkgKiBQZXJmb3JtIGNs aWVudCBhdXRoZW50aWNhdGlvbiBpZiBuZWNlc3NhcnksIHRoZW4gZmlndXJlIG91dCBvdXIKIAkg KiBwb3N0Z3JlcyB1c2VyIElELCBhbmQgc2VlIGlmIHdlIGFyZSBhIHN1cGVydXNlci4KIAkgKgot CSAqIEluIHN0YW5kYWxvbmUgbW9kZSBhbmQgaW4gYXV0b3ZhY3V1bSB3b3JrZXIgcHJvY2Vzc2Vz LCB3ZSB1c2UgYSBmaXhlZAotCSAqIElELCBvdGhlcndpc2Ugd2UgZmlndXJlIGl0IG91dCBmcm9t IHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgbmFtZS4KKwkgKiBJbiBzdGFuZGFsb25lIG1vZGUsIGF1 dG92YWN1dW0gd29ya2VyIHByb2Nlc3NlcyBhbmQgc2xvdCBzeW5jIHdvcmtlcgorCSAqIHByb2Nl c3MsIHdlIHVzZSBhIGZpeGVkIElELCBvdGhlcndpc2Ugd2UgZmlndXJlIGl0IG91dCBmcm9tIHRo ZQorCSAqIGF1dGhlbnRpY2F0ZWQgdXNlciBuYW1lLgogCSAqLwotCWlmIChib290c3RyYXAgfHwg SXNBdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCWlmIChib290c3RyYXAgfHwgSXNBdXRvVmFj dXVtV29ya2VyUHJvY2VzcygpIHx8IElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkpCiAJewogCQlJ bml0aWFsaXplU2Vzc2lvblVzZXJJZFN0YW5kYWxvbmUoKTsKIAkJYW1fc3VwZXJ1c2VyID0gdHJ1 ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggZmUwNDRjMTZkZS4uM2FmMTFi MmI4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTIwNTYsNyArMjA1Niw3 IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKIAogCXsK LQkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfUE9TVE1BU1RFUiwgUkVQTElDQVRJT05fU1RBTkRC WSwKKwkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TVEFOREJZ LAogCQkJZ2V0dGV4dF9ub29wKCJFbmFibGVzIGEgcGh5c2ljYWwgc3RhbmRieSB0byBzeW5jaHJv bml6ZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpLAog CQl9LAogCQkmZW5hYmxlX3N5bmNzbG90LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2Fk bWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCAwYjAxYzFmMDkzLi42NTgxOWNi N2E3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVk ZS9taXNjYWRtaW4uaApAQCAtMzMyLDYgKzMzMiw3IEBAIHR5cGVkZWYgZW51bSBCYWNrZW5kVHlw ZQogCUJfQkdfV1JJVEVSLAogCUJfQ0hFQ0tQT0lOVEVSLAogCUJfTE9HR0VSLAorCUJfU0xPVFNZ TkNfV09SS0VSLAogCUJfU1RBTkRBTE9ORV9CQUNLRU5ELAogCUJfU1RBUlRVUCwKIAlCX1dBTF9S RUNFSVZFUiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCBi L3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaAppbmRleCA3MDkyZmM3MmM2Li4yMmZj NDllYzI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKKysr IGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCkBAIC03OSw3ICs3OSw2IEBAIHR5 cGVkZWYgZW51bQogCUJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0LAogCUJnV29ya2VyU3Rh cnRfQ29uc2lzdGVudFN0YXRlLAogCUJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZCwKLQlC Z1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5LAogfSBCZ1dvcmtlclN0YXJ0 VGltZTsKIAogI2RlZmluZSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMCTYwCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDIxNjc3MjA5NzEuLmFhMDFm NjM2NDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5h bC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0z MjksOSArMzI5LDExIEBAIGV4dGVybiB2b2lkIHBhX2RlY3JfYW5kX3dhaXRfc3RyZWFtX2Jsb2Nr KHZvaWQpOwogCiBleHRlcm4gdm9pZCBwYV94YWN0X2ZpbmlzaChQYXJhbGxlbEFwcGx5V29ya2Vy SW5mbyAqd2luZm8sCiAJCQkJCQkgICBYTG9nUmVjUHRyIHJlbW90ZV9sc24pOwotCi1leHRlcm4g dm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKLWV4dGVybiB2b2lk IFNsb3RTeW5jV29ya2VyUmVnaXN0ZXIodm9pZCk7CisjaWZkZWYgRVhFQ19CQUNLRU5ECitleHRl cm4gdm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHBn X2F0dHJpYnV0ZV9ub3JldHVybigpOworI2VuZGlmCitleHRlcm4gaW50IFN0YXJ0U2xvdFN5bmNX b3JrZXIodm9pZCk7CitleHRlcm4gYm9vbCBTbG90U3luY1dvcmtlckNhblJlc3RhcnQodm9pZCk7 CiBleHRlcm4gdm9pZCBTaHV0RG93blNsb3RTeW5jKHZvaWQpOwogZXh0ZXJuIHZvaWQgU2xvdFN5 bmNXb3JrZXJTaG1lbUluaXQodm9pZCk7CiAKLS0gCjIuMzAuMC53aW5kb3dzLjIKCg== --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0006-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Description: v68-0006-Allow-logical-walsenders-to-wait-for-the-physica.patch Content-Disposition: attachment; filename="v68-0006-Allow-logical-walsenders-to-wait-for-the-physica.patch"; size=41665; creation-date="Thu, 25 Jan 2024 02:51:33 GMT"; modification-date="Thu, 25 Jan 2024 02:57:24 GMT" Content-Transfer-Encoding: base64 RnJvbSAzMjU1Y2ZjZDAxZGYxNzZmOTY3M2FiMzNmYTYyZTc2ZTc5OWQxY2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjIgSmFuIDIwMjQgMTU6NDk6NDkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OCA2LzhdIEFsbG93IGxvZ2ljYWwgd2Fsc2VuZGVycyB0byB3YWl0IGZvciB0aGUgcGh5c2ljYWwK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhhdCBwaHlzaWNh bCBzdGFuZGJ5IHNlcnZlcnMsCndoaWNoIGFyZSBwb3RlbnRpYWwgZmFpbG92ZXIgY2FuZGlkYXRl cywgaGF2ZSByZWNlaXZlZCBhbmQgZmx1c2hlZCBjaGFuZ2VzCmJlZm9yZSBtYWtpbmcgdGhlbSB2 aXNpYmxlIHRvIHN1YnNjcmliZXJzLiBCeSBkb2luZyBzbywgaXQgZ3VhcmFudGVlcyB0aGF0CnRo ZSBwcm9tb3RlZCBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQgdGhlIHN1YnNj cmliZXJzIHdoZW4gYQpmYWlsb3ZlciBpcyBuZWNlc3NhcnkuCgpBIG5ldyBwYXJhbWV0ZXIgbmFt ZWQgc3RhbmRieV9zbG90X25hbWVzIGlzIGludHJvZHVjZWQuIFRoZSBsb2dpY2FsCndhbHNlbmRl ciBub3cgZ3VhcmFudGVlcyB0aGF0IGFsbCBsb2NhbCBjaGFuZ2VzIGFyZSBzZW50IGFuZCBmbHVz aGVkIHRvCnRoZSBzdGFuZGJ5IHNlcnZlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgcmVwbGljYXRp b24gc2xvdHMgc3BlY2lmaWVkIGluCnN0YW5kYnlfc2xvdF9uYW1lcyBiZWZvcmUgc2VuZGluZyB0 aG9zZSBjaGFuZ2VzIHRvIHRoZSBzdWJzY3JpYmVyLgoKQWRkaXRpb25hbGx5LCBUaGUgU1FMIGZ1 bmN0aW9ucyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgYW5kCnBnX3JlcGxpY2F0aW9uX3Ns b3RfYWR2YW5jZSBhcmUgbW9kaWZpZWQgdG8gd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3Rz Cm1lbnRpb25lZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAgYmVmb3JlIHJldHVy bmluZyB0aGUgY2hhbmdlcwp0byB0aGUgdXNlci4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgOSArLQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYyAgICAgICAgICAgICAgICB8IDM0MiArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAxMTEgKysrKystCiAuLi4vdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggICB8ICAgNyArCiBzcmMvaW5jbHVkZS91dGlscy9ndWNf aG9va3MuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xv Z2ljYWxfZGVjb2RpbmcucGwgICB8ICAgMyArLQogLi4uL3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbCAgICAgIHwgMjMyICsrKysrKysrKystLQogMTYgZmlsZXMgY2hhbmdlZCwg NzM4IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBiZDJkMmY4 NzFlLi43NjM0NWU0MzNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDIwLDYgKzQ0MjAsMzAgQEAgcmVzdG9y ZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBX aW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4cmVmbGFiZWw9InN0YW5k Ynlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIExpc3Qgb2YgcGh5 c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgd2l0 aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1lIGNoYW5nZXMgdW50aWwg dGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZsdXNoZWQgdG8gY29ycmVz cG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJlcGxpY2F0aW9uCisgICAg ICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5c2ljYWwgc3RhbmRieSBh ZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhlIHBoeXNpY2FsIHJlcGxp Y2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0ZWQKKyAgICAgICAgaGVy ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBzdGFuZGJ5cyBj b3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBpbgorICAgICAg ICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11c3QgY29uZmlndXJlCisg ICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xpdGVyYWw+IHNvIHRoZXkg Y2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBjaGFuZ2VzIGZyb20g dGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IGVjMTRjZjczMjUuLjk2NWVlNzE2ZTIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTM3Miw3ICszNzIsMTQgQEAgcG9zdGdyZXM9IyBz ZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90 JywgTlVMTCwgTlUKICAgICAgdG8gd29yaywgaXQgaXMgbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlz aWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdlZW4gdGhlCiAgICAgIHByaW1hcnkgYW5kIHRoZSBz dGFuZGJ5LCBhbmQKICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLWhvdC1zdGFuZGJ5LWZlZWRiYWNr Ij48dmFybmFtZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT48L2xpbms+Ci0gICAgIG11 c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KKyAgICAgbXVzdCBiZSBlbmFibGVkIG9uIHRo ZSBzdGFuZGJ5LiBJdCdzIGFsc28gaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHNhaWQKKyAg ICAgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBpcyBuYW1lZCBpbgorICAgICA8bGluayBsaW5r ZW5kPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+PC9saW5rPgorICAgICBsaXN0IG9uIHRoZSBwcmltYXJ5LCB0byBwcmV2ZW50IHRo ZSBzdWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMKKyAgICAgZmFzdGVyIHRoYW4gdGhl IGhvdCBzdGFuZGJ5LiBCdXQgb25jZSB3ZSBjb25maWd1cmUgaXQsIHRoZW4gY2VydGFpbiBsYXRl bmN5CisgICAgIGlzIGV4cGVjdGVkIGluIHNlbmRpbmcgY2hhbmdlcyB0byBsb2dpY2FsIHN1YnNj cmliZXJzIGR1ZSB0byB3YWl0IG9uCisgICAgIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGlu CisgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1lPnN0 YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CiAgICAgPC9wYXJhPgogCiAgICAgPHBh cmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwpp bmRleCBiMDA4MWQzY2U1Li41ZmY3NjFkZDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dh bHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJh eS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0xMDksNiArMTEwLDcgQEAgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJv b2wgY29uZmlybSwgYm9vbCBiaW4KIAlNZW1vcnlDb250ZXh0IHBlcl9xdWVyeV9jdHg7CiAJTWVt b3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVhMb2dSZWNQdHIJZW5kX29mX3dhbDsKKwlYTG9nUmVj UHRyCXdhaXRfZm9yX3dhbF9sc247CiAJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4OwogCVJl c291cmNlT3duZXIgb2xkX3Jlc293bmVyID0gQ3VycmVudFJlc291cmNlT3duZXI7CiAJQXJyYXlU eXBlICAqYXJyOwpAQCAtMjI4LDYgKzIzMCwxNyBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXNfZ3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgog CQkJCQkJCU5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucGx1Z2luKSwKIAkJCQkJCQlm b3JtYXRfcHJvY2VkdXJlKGZjaW5mby0+ZmxpbmZvLT5mbl9vaWQpKSkpOwogCisJCWlmIChYTG9n UmVjUHRySXNJbnZhbGlkKHVwdG9fbHNuKSkKKwkJCXdhaXRfZm9yX3dhbF9sc24gPSBlbmRfb2Zf d2FsOworCQllbHNlCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gTWluKHVwdG9fbHNuLCBlbmRfb2Zf d2FsKTsKKworCQkvKgorCQkgKiBXYWl0IGZvciBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxpY2F0 aW9uIHN0YW5kYnkgc2VydmVycyAoaWYgYW55KQorCQkgKiB0byBjb25maXJtIHJlY2VpcHQgb2Yg V0FMIHVwIHRvIHdhaXRfZm9yX3dhbF9sc24uCisJCSAqLworCQlXYWl0Rm9yU3RhbmRieUNvbmZp cm1hdGlvbih3YWl0X2Zvcl93YWxfbHNuKTsKKwogCQljdHgtPm91dHB1dF93cml0ZXJfcHJpdmF0 ZSA9IHA7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Qu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCBmMDcxNDdhNjhhLi5hN2Mx ZWI4NGFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00NiwxMyArNDYsMTggQEAKICNpbmNs dWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi cGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaCIKICNpbmNsdWRlICJzdG9y YWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3By b2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCisjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCiAgKiBSZXBsaWNh dGlvbiBzbG90IG9uLWRpc2sgZGF0YSBzdHJ1Y3R1cmUuCkBAIC05OSwxMCArMTA0LDE5IEBAIFJl cGxpY2F0aW9uU2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CiAvKiBNeSBi YWNrZW5kJ3MgcmVwbGljYXRpb24gc2xvdCBpbiB0aGUgc2hhcmVkIG1lbW9yeSBhcnJheSAqLwog UmVwbGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdCA9IE5VTEw7CiAKLS8qIEdVQyB2YXJp YWJsZSAqLworLyogR1VDIHZhcmlhYmxlcyAqLwogaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJCSAq IHNsb3RzICovCiAKKy8qCisgKiBUaGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24g c3RhbmRieSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CisgKiBsb2dpY2FsIFdBTCBzZW5kZXIgcHJv Y2Vzc2VzIHdpbGwgd2FpdCBmb3IuCisgKi8KK2NoYXIJICAgKnN0YW5kYnlfc2xvdF9uYW1lczsK KworLyogVGhpcyBpcyBwYXJzZWQgYW5kIGNhY2hlZCBsaXN0IGZvciByYXcgc3RhbmRieV9zbG90 X25hbWVzLiAqLworc3RhdGljIExpc3QgKnN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0gTklMOwor CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3RTaG1lbUV4aXQoaW50IGNvZGUsIERhdHVtIGFy Zyk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCk7CiAKQEAgLTIyMzMsMyArMjI0NywzMjkgQEAgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25z dCBjaGFyICpuYW1lKQogCQkJCShlcnJtc2coInRvbyBtYW55IHJlcGxpY2F0aW9uIHNsb3RzIGFj dGl2ZSBiZWZvcmUgc2h1dGRvd24iKSwKIAkJCQkgZXJyaGludCgiSW5jcmVhc2UgbWF4X3JlcGxp Y2F0aW9uX3Nsb3RzIGFuZCB0cnkgYWdhaW4uIikpKTsKIH0KKworLyoKKyAqIEEgaGVscGVyIGZ1 bmN0aW9uIHRvIHZhbGlkYXRlIHNsb3RzIHNwZWNpZmllZCBpbiBHVUMgc3RhbmRieV9zbG90X25h bWVzLgorICovCitzdGF0aWMgYm9vbAordmFsaWRhdGVfc3RhbmRieV9zbG90cyhjaGFyICoqbmV3 dmFsKQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqZWxlbWxpc3Q7CisJTGlzdENl bGwgICAqbGM7CisJYm9vbAkJb2s7CisKKwkvKiBOZWVkIGEgbW9kaWZpYWJsZSBjb3B5IG9mIHN0 cmluZyAqLworCXJhd25hbWUgPSBwc3RyZHVwKCpuZXd2YWwpOworCisJLyogVmVyaWZ5IHN5bnRh eCBhbmQgcGFyc2Ugc3RyaW5nIGludG8gYSBsaXN0IG9mIGlkZW50aWZpZXJzICovCisJb2sgPSBT cGxpdElkZW50aWZpZXJTdHJpbmcocmF3bmFtZSwgJywnLCAmZWxlbWxpc3QpOworCisJaWYgKCFv aykKKwkJR1VDX2NoZWNrX2VycmRldGFpbCgiTGlzdCBzeW50YXggaXMgaW52YWxpZC4iKTsKKwor CS8qCisJICogSWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlIG5hbWUgb3IgaWYgdGhl IHJlcGxpY2F0aW9uIHNsb3RzJworCSAqIGRhdGEgaXMgbm90IGluaXRpYWxpemVkIHlldCAoaS5l Liwgd2UgYXJlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MpLCBza2lwCisJICogdGhlIHNsb3QgdmVy aWZpY2F0aW9uLgorCSAqLworCWlmICghb2sgfHwgIVJlcGxpY2F0aW9uU2xvdEN0bCkKKwl7CisJ CXBmcmVlKHJhd25hbWUpOworCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCQlyZXR1cm4gb2s7CisJ fQorCisJZm9yZWFjaChsYywgZWxlbWxpc3QpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0 KGxjKTsKKwkJUmVwbGljYXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1lZFJl cGxpY2F0aW9uU2xvdChuYW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCUdVQ19j aGVja19lcnJkZXRhaWwoInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwK KwkJCQkJCQkJbmFtZSk7CisJCQlvayA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAo IVNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQl7CisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJcIiVz XCIgaXMgbm90IGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCisJCQkJCQkJCW5hbWUpOwor CQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcGZyZWUocmF3bmFtZSk7CisJ bGlzdF9mcmVlKGVsZW1saXN0KTsKKwlyZXR1cm4gb2s7Cit9CisKKy8qCisgKiBHVUMgY2hlY2tf aG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK2Jvb2wKK2NoZWNrX3N0YW5kYnlfc2xv dF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCit7 CisJaWYgKHN0cmNtcCgqbmV3dmFsLCAiIikgPT0gMCkKKwkJcmV0dXJuIHRydWU7CisKKwkvKgor CSAqICIqIiBpcyBub3QgYWNjZXB0ZWQgYXMgaW4gdGhhdCBjYXNlIHByaW1hcnkgd2lsbCBub3Qg YmUgYWJsZSB0byBrbm93CisJICogZm9yIHdoaWNoIGFsbCBzdGFuZGJ5cyB0byB3YWl0IGZvci4g RXZlbiBpZiB3ZSBoYXZlIHBoeXNpY2FsLXNsb3RzCisJICogaW5mbywgdGhlcmUgaXMgbm8gd2F5 IHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSBpcyBhbnkgc3RhbmRieQorCSAqIGNvbmZpZ3VyZWQg Zm9yIHRoZSBrbm93biBwaHlzaWNhbCBzbG90cy4KKwkgKi8KKwlpZiAoc3RyY21wKCpuZXd2YWws ICIqIikgPT0gMCkKKwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoIlwiJXNcIiBpcyBub3QgYWNj ZXB0ZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcyIsCisJCQkJCQkJKm5ld3ZhbCk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwkvKiBOb3cgdmVyaWZ5IGlmIHRoZSBzcGVjaWZpZWQgc2xvdHMgcmVh bGx5IGV4aXN0IGFuZCBoYXZlIGNvcnJlY3QgdHlwZSAqLworCWlmICghdmFsaWRhdGVfc3RhbmRi eV9zbG90cyhuZXd2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqZXh0cmEgPSBndWNfc3RyZHVw KEVSUk9SLCAqbmV3dmFsKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogR1VDIGFzc2ln bl9ob29rIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqLwordm9pZAorYXNzaWduX3N0YW5kYnlf c2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCUxpc3QJICAg KnN0YW5kYnlfc2xvdHM7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisJY2hhcgkgICAqc3RhbmRi eV9zbG90X25hbWVzX2NweSA9IGV4dHJhOworCisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdF9uYW1l c19saXN0KTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9IE5JTDsKKworCS8qIE5vIHZhbHVl IGlzIHNwZWNpZmllZCBmb3Igc3RhbmRieV9zbG90X25hbWVzLiAqLworCWlmIChzdGFuZGJ5X3Ns b3RfbmFtZXNfY3B5ID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghU3BsaXRJZGVudGlmaWVy U3RyaW5nKHN0YW5kYnlfc2xvdF9uYW1lc19jcHksICcsJywgJnN0YW5kYnlfc2xvdHMpKQorCXsK KwkJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiBpZiBHVUMgY2hlY2tlZCBjaGVja19zdGFuZGJ5 X3Nsb3RfbmFtZXMuICovCisJCWVsb2coRVJST1IsICJpbnZhbGlkIGxpc3Qgc3ludGF4Iik7CisJ fQorCisJLyoKKwkgKiBTd2l0Y2ggdG8gdGhlIHNhbWUgbWVtb3J5IGNvbnRleHQgdW5kZXIgd2hp Y2ggR1VDIHZhcmlhYmxlcyBhcmUKKwkgKiBhbGxvY2F0ZWQgKEdVQ01lbW9yeUNvbnRleHQpLgor CSAqLworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRNZW1vcnlDaHVua0NvbnRl eHQoc3RhbmRieV9zbG90X25hbWVzX2NweSkpOworCXN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0g bGlzdF9jb3B5KHN0YW5kYnlfc2xvdHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQp OworfQorCisvKgorICogUmV0dXJuIGEgY29weSBvZiBzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCBp ZiB0aGUgY29weSBmbGFnIGlzIHNldCB0byB0cnVlLAorICogb3RoZXJ3aXNlIHJldHVybiB0aGUg b3JpZ2luYWwgbGlzdC4KKyAqLworTGlzdCAqCitHZXRTdGFuZGJ5U2xvdExpc3QoYm9vbCBjb3B5 KQoreworCS8qCisJICogU2luY2Ugd2UgZG8gbm90IHN1cHBvcnQgc3luY2luZyBzbG90cyB0byBj YXNjYWRpbmcgc3RhbmRieXMsIHdlIHJldHVybgorCSAqIE5JTCBoZXJlIGlmIHdlIGFyZSBydW5u aW5nIGluIGEgc3RhbmRieSB0byBpbmRpY2F0ZSB0aGF0IG5vIHN0YW5kYnkKKwkgKiBzbG90cyBu ZWVkIHRvIGJlIHdhaXRlZCBmb3IuCisJICovCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQor CQlyZXR1cm4gTklMOworCisJaWYgKGNvcHkpCisJCXJldHVybiBsaXN0X2NvcHkoc3RhbmRieV9z bG90X25hbWVzX2xpc3QpOworCWVsc2UKKwkJcmV0dXJuIHN0YW5kYnlfc2xvdF9uYW1lc19saXN0 OworfQorCisvKgorICogUmVsb2FkIHRoZSBjb25maWcgZmlsZSBhbmQgcmVpbml0aWFsaXplIHRo ZSBzdGFuZGJ5IHNsb3QgbGlzdCBpZiB0aGUgR1VDCisgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaGFz IGNoYW5nZWQuCisgKi8KK3ZvaWQKK1JlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KExpc3Qg KipzdGFuZGJ5X3Nsb3RzKQoreworCWNoYXIJICAgKnByZV9zdGFuZGJ5X3Nsb3RfbmFtZXM7CisK KwkvKgorCSAqIElmIHdlIGFyZSBydW5uaW5nIG9uIGEgc3RhbmRieSwgdGhlcmUgaXMgbm8gbmVl ZCB0byByZWxvYWQKKwkgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgc2luY2Ugd2UgZG8gbm90IHN1cHBv cnQgc3luY2luZyBzbG90cyB0byBjYXNjYWRpbmcKKwkgKiBzdGFuZGJ5cy4KKwkgKi8KKwlpZiAo UmVjb3ZlcnlJblByb2dyZXNzKCkpCisJeworCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQ KTsKKwkJcmV0dXJuOworCX0KKworCXByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMgPSBwc3RyZHVwKHN0 YW5kYnlfc2xvdF9uYW1lcyk7CisKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwor CWlmIChzdHJjbXAocHJlX3N0YW5kYnlfc2xvdF9uYW1lcywgc3RhbmRieV9zbG90X25hbWVzKSAh PSAwKQorCXsKKwkJbGlzdF9mcmVlKCpzdGFuZGJ5X3Nsb3RzKTsKKwkJKnN0YW5kYnlfc2xvdHMg PSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisJfQorCisJcGZyZWUocHJlX3N0YW5kYnlfc2xv dF9uYW1lcyk7Cit9CisKKy8qCisgKiBGaWx0ZXIgdGhlIHN0YW5kYnkgc2xvdHMgYmFzZWQgb24g dGhlIHNwZWNpZmllZCBsb2cgc2VxdWVuY2UgbnVtYmVyCisgKiAod2FpdF9mb3JfbHNuKS4KKyAq CisgKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIHBhc3NlZCBzdGFuZGJ5X3Nsb3RzIGxpc3Qs IHJlbW92aW5nIGFueSBzbG90cyB0aGF0CisgKiBoYXZlIGFscmVhZHkgY2F1Z2h0IHVwIHRvIG9y IHN1cnBhc3NlZCB0aGUgZ2l2ZW4gd2FpdF9mb3JfbHNuLiBBZGRpdGlvbmFsbHksCisgKiBpdCBy ZW1vdmVzIHNsb3RzIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBkcm9wcGVkLCBvciBjb252 ZXJ0ZWQgdG8KKyAqIGxvZ2ljYWwgc2xvdHMuCisgKi8KK3ZvaWQKK0ZpbHRlclN0YW5kYnlTbG90 cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwgTGlzdCAqKnN0YW5kYnlfc2xvdHMpCit7CisJTGlz dENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90c19jcHkgPSAqc3RhbmRieV9zbG90 czsKKworCWZvcmVhY2gobGMsIHN0YW5kYnlfc2xvdHNfY3B5KQorCXsKKwkJY2hhcgkgICAqbmFt ZSA9IGxmaXJzdChsYyk7CisJCWNoYXIJICAgKndhcm5pbmdmbXQgPSBOVUxMOworCQlSZXBsaWNh dGlvblNsb3QgKnNsb3Q7CisKKwkJc2xvdCA9IFNlYXJjaE5hbWVkUmVwbGljYXRpb25TbG90KG5h bWUsIHRydWUpOworCisJCWlmICghc2xvdCkKKwkJeworCQkJLyoKKwkJCSAqIEl0IG1heSBoYXBw ZW4gdGhhdCB0aGUgc2xvdCBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIEdVQworCQkJ ICogdmFsdWUgaXMgZHJvcHBlZCwgc28gbGV0J3Mgc2tpcCBvdmVyIGl0LgorCQkJICovCisJCQl3 YXJuaW5nZm10ID0gXygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBhcmFt ZXRlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZSBpZiAo U2xvdElzTG9naWNhbChzbG90KSkKKwkJeworCQkJLyoKKwkJCSAqIElmIGEgbG9naWNhbCBzbG90 IG5hbWUgaXMgcHJvdmlkZWQgaW4gc3RhbmRieV9zbG90X25hbWVzLCBpc3N1ZQorCQkJICogYSBX QVJOSU5HIGFuZCBza2lwIGl0LiBBbHRob3VnaCBsb2dpY2FsIHNsb3RzIGFyZSBkaXNhbGxvd2Vk IGluCisJCQkgKiB0aGUgR1VDIGNoZWNrX2hvb2sodmFsaWRhdGVfc3RhbmRieV9zbG90cyksIGl0 IGlzIHN0aWxsCisJCQkgKiBwb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGRyb3AgYW4gZXhpc3Rpbmcg cGh5c2ljYWwgc2xvdCBhbmQKKwkJCSAqIHJlY3JlYXRlIGEgbG9naWNhbCBzbG90IHdpdGggdGhl IHNhbWUgbmFtZS4gU2luY2UgaXQgaXMKKwkJCSAqIGhhcm1sZXNzLCBhIFdBUk5JTkcgc2hvdWxk IGJlIGVub3VnaCwgbm8gbmVlZCB0byBlcnJvci1vdXQuCisJCQkgKi8KKwkJCXdhcm5pbmdmbXQg PSBfKCJjYW5ub3QgaGF2ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIHBhcmFt ZXRlciBcIiVzXCIsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKKworCQkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgIT0g UlNfSU5WQUxfTk9ORSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFNwZWNpZmllZCBwaHlzaWNhbCBz bG90IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgc28gbm8gcG9pbnQKKwkJCQkgKiBpbiB3YWl0aW5n IGZvciBpdC4KKwkJCQkgKi8KKwkJCQl3YXJuaW5nZm10ID0gXygicGh5c2ljYWwgc2xvdCBcIiVz XCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgaGFzIGJlZW4gaW52YWxpZGF0ZWQsIGln bm9yaW5nIik7CisJCQl9CisJCQllbHNlIGlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3QtPmRh dGEucmVzdGFydF9sc24pIHx8CisJCQkJCSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIDwgd2FpdF9m b3JfbHNuKQorCQkJeworCQkJCWJvb2wJaW5hY3RpdmUgPSAoc2xvdC0+YWN0aXZlX3BpZCA9PSAw KTsKKworCQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCQkJLyogTG9nIHdh cm5pbmcgaWYgbm8gYWN0aXZlX3BpZCBmb3IgdGhpcyBwaHlzaWNhbCBzbG90ICovCisJCQkJaWYg KGluYWN0aXZlKQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBzcGVjaWZpZWQgaW4gcGFyYW1ldGVyIFwiJXNcIiBkb2VzIG5vdCBo YXZlIGFjdGl2ZV9waWQiLAorCQkJCQkJCQkgICBuYW1lLCAic3RhbmRieV9zbG90X25hbWVzIiks CisJCQkJCQkJZXJyZGV0YWlsKCJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHdhaXRpbmcgb24gdGhl ICIKKwkJCQkJCQkJCSAgInN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIFwiJXNcIi4iLCBuYW1lKSwK KwkJCQkJCQllcnJoaW50KCJDb25zaWRlciBzdGFydGluZyBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0 aCAiCisJCQkJCQkJCQkiXCIlc1wiIG9yIGFtZW5kIHN0YW5kYnlfc2xvdF9uYW1lcy4iLCBuYW1l KSk7CisKKwkJCQkvKiBDb250aW51ZSBpZiB0aGUgY3VycmVudCBzbG90IGhhc24ndCBjYXVnaHQg dXAuICovCisJCQkJY29udGludWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJQXNzZXJ0KHNs b3QtPmRhdGEucmVzdGFydF9sc24gPj0gd2FpdF9mb3JfbHNuKTsKKwkJCX0KKworCQkJU3Bpbkxv Y2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCX0KKworCQkvKgorCQkgKiBSZWFjaGluZyBoZXJl IGluZGljYXRlcyB0aGF0IGVpdGhlciB0aGUgc2xvdCBoYXMgcGFzc2VkIHRoZQorCQkgKiB3YWl0 X2Zvcl9sc24gb3IgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCB0aGUgc2xvdCB0aGF0IHJlcXVpcmVz IGEKKwkJICogd2FybmluZyB0byBiZSByZXBvcnRlZC4KKwkJICovCisJCWlmICh3YXJuaW5nZm10 KQorCQkJZXJlcG9ydChXQVJOSU5HLCBlcnJtc2cod2FybmluZ2ZtdCwgbmFtZSwgInN0YW5kYnlf c2xvdF9uYW1lcyIpKTsKKworCQlzdGFuZGJ5X3Nsb3RzX2NweSA9IGZvcmVhY2hfZGVsZXRlX2N1 cnJlbnQoc3RhbmRieV9zbG90c19jcHksIGxjKTsKKwl9CisKKwkqc3RhbmRieV9zbG90cyA9IHN0 YW5kYnlfc2xvdHNfY3B5OworfQorCisvKgorICogV2FpdCBmb3IgcGh5c2ljYWwgc3RhbmRieSB0 byBjb25maXJtIHJlY2VpdmluZyB0aGUgZ2l2ZW4gbHNuLgorICoKKyAqIFVzZWQgYnkgbG9naWNh bCBkZWNvZGluZyBTUUwgZnVuY3Rpb25zIHRoYXQgYWNxdWlyZWQgc2xvdCB3aXRoIGZhaWxvdmVy CisgKiBlbmFibGVkLiBJdCB3YWl0cyBmb3IgcGh5c2ljYWwgc3RhbmRieXMgY29ycmVzcG9uZGlu ZyB0byB0aGUgcGh5c2ljYWwgc2xvdHMKKyAqIHNwZWNpZmllZCBpbiB0aGUgc3RhbmRieV9zbG90 X25hbWVzIEdVQy4KKyAqLwordm9pZAorV2FpdEZvclN0YW5kYnlDb25maXJtYXRpb24oWExvZ1Jl Y1B0ciB3YWl0X2Zvcl9sc24pCit7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCWlmICgh TXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIpCisJCXJldHVybjsKKworCXN0YW5kYnlf c2xvdHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisKKwlpZiAoc3RhbmRieV9zbG90cyA9 PSBOSUwpCisJCXJldHVybjsKKworCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJldh bFNuZEN0bC0+d2FsX2NvbmZpcm1fcmN2X2N2KTsKKworCWZvciAoOzspCisJeworCQlDSEVDS19G T1JfSU5URVJSVVBUUygpOworCisJCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQorCQl7CisJCQlD b25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCQlSZXJlYWRDb25maWdBbmRSZUluaXRTbG90 TGlzdCgmc3RhbmRieV9zbG90cyk7CisJCX0KKworCQlGaWx0ZXJTdGFuZGJ5U2xvdHMod2FpdF9m b3JfbHNuLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyogRXhpdCBpZiBkb25lIHdhaXRpbmcgZm9y IGV2ZXJ5IHNsb3QuICovCisJCWlmIChzdGFuZGJ5X3Nsb3RzID09IE5JTCkKKwkJCWJyZWFrOwor CisJCS8qCisJCSAqIFdlIHdhaXQgZm9yIHRoZSBzbG90cyBpbiB0aGUgc3RhbmRieV9zbG90X25h bWVzIHRvIGNhdGNoIHVwLCBidXQgd2UKKwkJICogdXNlIGEgdGltZW91dCBzbyB3ZSBjYW4gYWxz byBjaGVjayB0aGUgaWYgdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBoYXMKKwkJICogYmVlbiBjaGFu Z2VkLgorCQkgKi8KKwkJQ29uZGl0aW9uVmFyaWFibGVUaW1lZFNsZWVwKCZXYWxTbmRDdGwtPndh bF9jb25maXJtX3Jjdl9jdiwgMTAwMCwKKwkJCQkJCQkJCVdBSVRfRVZFTlRfV0FJVF9GT1JfU1RB TkRCWV9DT05GSVJNQVRJT04pOworCX0KKworCUNvbmRpdGlvblZhcmlhYmxlQ2FuY2VsU2xlZXAo KTsKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Rm dW5jcy5jCmluZGV4IDg0M2FlOGNkNjguLjBhMDliNmM1MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3RmdW5jcy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVj b2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbHNuLmgiCkBAIC00NzQsNiArNDc1LDggQEAgcGdfcGh5c2ljYWxfcmVwbGlj YXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92ZXRvKQogCQkgKiBjcmFzaCwgYnV0IHRo aXMgbWFrZXMgdGhlIGRhdGEgY29uc2lzdGVudCBhZnRlciBhIGNsZWFuIHNodXRkb3duLgogCQkg Ki8KIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisKKwkJUGh5c2ljYWxXYWtldXBMb2dp Y2FsV2FsU25kKCk7CiAJfQogCiAJcmV0dXJuIHJldGxzbjsKQEAgLTUxNCw2ICs1MTcsMTIgQEAg cGdfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoWExvZ1JlY1B0ciBtb3ZldG8pCiAJ CQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3NlZ21lbnRfY2xvc2UpLAogCQkJCQkJ CQkJTlVMTCwgTlVMTCwgTlVMTCk7CiAKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0 cmVhbWluZyByZXBsaWNhdGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29u ZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBtb3ZldG8gbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0 YW5kYnlDb25maXJtYXRpb24obW92ZXRvKTsKKwogCQkvKgogCQkgKiBTdGFydCByZWFkaW5nIGF0 IHRoZSBzbG90J3MgcmVzdGFydF9sc24sIHdoaWNoIHdlIGtub3cgdG8gcG9pbnQgdG8KIAkJICog YSB2YWxpZCByZWNvcmQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxz ZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGY3NTNh ZWQzNDUuLjcxOTMzZjRiZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0x MjE5LDcgKzEyMTksNiBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25T bG90Q21kICpjbWQpCiAKIAlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNlcnZl X3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwKIAkJCQkJCQkgICAmZmFpbG92ZXIp OwotCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCXsKIAkJ UmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLApAQCAtMTcyOCwyNyAr MTcyNyw3OCBAQCBXYWxTbmRVcGRhdGVQcm9ncmVzcyhMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpj dHgsIFhMb2dSZWNQdHIgbHNuLCBUcmFuc2FjdGlvbklkCiAJCVByb2Nlc3NQZW5kaW5nV3JpdGVz KCk7CiB9CiAKKy8qCisgKiBXYWtlIHVwIHRoZSBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNzZXMg d2l0aCBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIGlmIHRoZQorICogY3VycmVudGx5IGFjcXVpcmVk IHBoeXNpY2FsIHNsb3QgaXMgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcworICogR1VD LgorICovCit2b2lkCitQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQodm9pZCkKK3sKKwlMaXN0 Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCisJQXNzZXJ0KE15UmVwbGlj YXRpb25TbG90ICYmIFNsb3RJc1BoeXNpY2FsKE15UmVwbGljYXRpb25TbG90KSk7CisKKwlzdGFu ZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KGZhbHNlKTsKKworCWZvcmVhY2gobGMsIHN0 YW5kYnlfc2xvdHMpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0KGxjKTsKKworCQlpZiAo c3RyY21wKG5hbWUsIE5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSkpID09IDAp CisJCXsKKwkJCUNvbmRpdGlvblZhcmlhYmxlQnJvYWRjYXN0KCZXYWxTbmRDdGwtPndhbF9jb25m aXJtX3Jjdl9jdik7CisJCQlyZXR1cm47CisJCX0KKwl9Cit9CisKIC8qCiAgKiBXYWl0IHRpbGwg V0FMIDwgbG9jIGlzIGZsdXNoZWQgdG8gZGlzayBzbyBpdCBjYW4gYmUgc2FmZWx5IHNlbnQgdG8g Y2xpZW50LgogICoKLSAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dAotICogaWYgd2UgZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpCi0gKiB3ZSB3aWxsIHJldHVy biBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgorICogSWYgdGhlIHdhbHNlbmRl ciBob2xkcyBhIGxvZ2ljYWwgc2xvdCB0aGF0IGhhcyBlbmFibGVkIGZhaWxvdmVyLCB3ZSBhbHNv CisgKiB3YWl0IGZvciBhbGwgdGhlIHNwZWNpZmllZCBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3Rh bmRieSBzZXJ2ZXJzIHRvCisgKiBjb25maXJtIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2VudEZs dXNoUHRyLgorICoKKyAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dCBpZiB3ZQorICogZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpIHdlIHdpbGwgcmV0dXJuCisg KiBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgogICovCiBzdGF0aWMgWExvZ1Jl Y1B0cgogV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIHsKIAlpbnQJCQl3YWtlRXZl bnRzOworCWJvb2wJCXdhaXRfZm9yX3N0YW5kYnkgPSBmYWxzZTsKKwl1aW50MzIJCXdhaXRfZXZl bnQ7CisJTGlzdAkgICAqc3RhbmRieV9zbG90cyA9IE5JTDsKIAlzdGF0aWMgWExvZ1JlY1B0ciBS ZWNlbnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOwogCisJaWYgKE15UmVwbGljYXRpb25T bG90LT5kYXRhLmZhaWxvdmVyICYmIHJlcGxpY2F0aW9uX2FjdGl2ZSkKKwkJc3RhbmRieV9zbG90 cyA9IEdldFN0YW5kYnlTbG90TGlzdCh0cnVlKTsKKwogCS8qCi0JICogRmFzdCBwYXRoIHRvIGF2 b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cgd2UKLQkg KiBoYXZlIGVub3VnaCBXQUwgYXZhaWxhYmxlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVz dGluZyBpZiB3ZSdyZQotCSAqIGZhciBiZWhpbmQuCisJICogQ2hlY2sgaWYgYWxsIHRoZSBzdGFu ZGJ5IHNlcnZlcnMgaGF2ZSBjb25maXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8KKwkgKiBSZWNl bnRGbHVzaFB0ciBldmVuIHdoZW4gd2UgYWxyZWFkeSBrbm93IHdlIGhhdmUgZW5vdWdoIFdBTCBh dmFpbGFibGUuCisJICoKKwkgKiBOb3RlIHRoYXQgd2UgY2Fubm90IGRpcmVjdGx5IHJldHVybiB3 aXRob3V0IGNoZWNraW5nIHRoZSBzdGF0dXMgb2YKKwkgKiBzdGFuZGJ5IHNlcnZlcnMgYmVjYXVz ZSB0aGUgc3RhbmRieV9zbG90X25hbWVzIG1heSBoYXZlIGNoYW5nZWQsIHdoaWNoCisJICogbWVh bnMgdGhlcmUgY291bGQgYmUgbmV3IHN0YW5kYnkgc2xvdHMgaW4gdGhlIGxpc3QgdGhhdCBoYXZl IG5vdCB5ZXQKKwkgKiBjYXVnaHQgdXAgdG8gdGhlIFJlY2VudEZsdXNoUHRyLgogCSAqLwotCWlm IChSZWNlbnRGbHVzaFB0ciAhPSBJbnZhbGlkWExvZ1JlY1B0ciAmJgotCQlsb2MgPD0gUmVjZW50 Rmx1c2hQdHIpCi0JCXJldHVybiBSZWNlbnRGbHVzaFB0cjsKKwlpZiAoIVhMb2dSZWNQdHJJc0lu dmFsaWQoUmVjZW50Rmx1c2hQdHIpICYmIGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwl7CisJCUZp bHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8q CisJCSAqIEZhc3QgcGF0aCB0byBhdm9pZCBhY3F1aXJpbmcgdGhlIHNwaW5sb2NrIGluIGNhc2Ug d2UgYWxyZWFkeSBrbm93CisJCSAqIHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUgYW5kIGFs bCB0aGUgc3RhbmRieSBzZXJ2ZXJzIGhhdmUKKwkJICogY29uZmlybWVkIHJlY2VpcHQgb2YgV0FM IHVwIHRvIFJlY2VudEZsdXNoUHRyLiBUaGlzIGlzIHBhcnRpY3VsYXJseQorCQkgKiBpbnRlcmVz dGluZyBpZiB3ZSdyZSBmYXIgYmVoaW5kLgorCQkgKi8KKwkJaWYgKHN0YW5kYnlfc2xvdHMgPT0g TklMKQorCQkJcmV0dXJuIFJlY2VudEZsdXNoUHRyOworCX0KIAogCS8qIEdldCBhIG1vcmUgcmVj ZW50IGZsdXNoIHBvaW50ZXIuICovCiAJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKQEAgLTE3 NjksNyArMTgxOSw3IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChD b25maWdSZWxvYWRQZW5kaW5nKQogCQl7CiAJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7 Ci0JCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwkJCVJlcmVhZENvbmZpZ0FuZFJl SW5pdFNsb3RMaXN0KCZzdGFuZGJ5X3Nsb3RzKTsKIAkJCVN5bmNSZXBJbml0Q29uZmlnKCk7CiAJ CX0KIApAQCAtMTc4NCw4ICsxODM0LDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAJCWlmIChnb3RfU1RPUFBJTkcpCiAJCQlYTG9nQmFja2dyb3VuZEZsdXNoKCk7CiAKKwkJ LyoKKwkJICogVXBkYXRlIHRoZSBzdGFuZGJ5IHNsb3RzIHRoYXQgaGF2ZSBub3QgeWV0IGNhdWdo dCB1cCB0byB0aGUgZmx1c2hlZAorCQkgKiBwb3NpdGlvbi4gSXQgaXMgZ29vZCB0byB3YWl0IHVw IHRvIFJlY2VudEZsdXNoUHRyIGFuZCB0aGVuIGxldCBpdAorCQkgKiBzZW5kIHRoZSBjaGFuZ2Vz IHRvIGxvZ2ljYWwgc3Vic2NyaWJlcnMgb25lIGJ5IG9uZSB3aGljaCBhcmUKKwkJICogYWxyZWFk eSBjb3ZlcmVkIGluIFJlY2VudEZsdXNoUHRyIHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IG9uIGV2 ZXJ5CisJCSAqIGNoYW5nZSBmb3Igc3RhbmRieSBjb25maXJtYXRpb24uCisJCSAqLworCQlpZiAo d2FpdF9mb3Jfc3RhbmRieSkKKwkJCUZpbHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwg JnN0YW5kYnlfc2xvdHMpOworCiAJCS8qIFVwZGF0ZSBvdXIgaWRlYSBvZiB0aGUgY3VycmVudGx5 IGZsdXNoZWQgcG9zaXRpb24uICovCi0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCWVs c2UgaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1 c2hSZWNQdHIoTlVMTCk7CiAJCWVsc2UKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0WExvZ1JlcGxh eVJlY1B0cihOVUxMKTsKQEAgLTE4MTMsOSArMTg3MywxOCBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhM b2dSZWNQdHIgbG9jKQogCQkJIXdhaXRpbmdfZm9yX3BpbmdfcmVzcG9uc2UpCiAJCQlXYWxTbmRL ZWVwYWxpdmUoZmFsc2UsIEludmFsaWRYTG9nUmVjUHRyKTsKIAotCQkvKiBjaGVjayB3aGV0aGVy IHdlJ3JlIGRvbmUgKi8KLQkJaWYgKGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwkJaWYgKGxvYyA+ IFJlY2VudEZsdXNoUHRyKQorCQkJd2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9X QUlUX0ZPUl9XQUw7CisJCWVsc2UgaWYgKHN0YW5kYnlfc2xvdHMpCisJCXsKKwkJCXdhaXRfZXZl bnQgPSBXQUlUX0VWRU5UX1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OOworCQkJd2FpdF9m b3Jfc3RhbmRieSA9IHRydWU7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBBbHJlYWR5IGNhdWdo dCB1cCBhbmQgZG9lc24ndCBuZWVkIHRvIHdhaXQgZm9yIHN0YW5kYnlfc2xvdHMuICovCiAJCQli cmVhazsKKwkJfQogCiAJCS8qIFdhaXRpbmcgZm9yIG5ldyBXQUwuIFNpbmNlIHdlIG5lZWQgdG8g d2FpdCwgd2UncmUgbm93IGNhdWdodCB1cC4gKi8KIAkJV2FsU25kQ2F1Z2h0VXAgPSB0cnVlOwpA QCAtMTg1NSw5ICsxOTI0LDExIEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJ CWlmIChwcV9pc19zZW5kX3BlbmRpbmcoKSkKIAkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfRk9SX1dBTCk7CisJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xl ZXB0aW1lLCB3YWl0X2V2ZW50KTsKIAl9CiAKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7CisK IAkvKiByZWFjdGl2YXRlIGxhdGNoIHNvIFdhbFNuZExvb3Aga25vd3MgdG8gY29udGludWUgKi8K IAlTZXRMYXRjaChNeUxhdGNoKTsKIAlyZXR1cm4gUmVjZW50Rmx1c2hQdHI7CkBAIC0yMjY1LDYg KzIzMzYsNyBAQCBQaHlzaWNhbENvbmZpcm1SZWNlaXZlZExvY2F0aW9uKFhMb2dSZWNQdHIgbHNu KQogCXsKIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CiAJCVJlcGxpY2F0aW9uU2xvdHND b21wdXRlUmVxdWlyZWRMU04oKTsKKwkJUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKCk7CiAJ fQogCiAJLyoKQEAgLTM1MzIsNiArMzYwNCw3IEBAIFdhbFNuZFNobWVtSW5pdCh2b2lkKQogCiAJ CUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCQlDb25k aXRpb25WYXJpYWJsZUluaXQoJldhbFNuZEN0bC0+d2FsX3JlcGxheV9jdik7CisJCUNvbmRpdGlv blZhcmlhYmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfY29uZmlybV9yY3ZfY3YpOwogCX0KIH0KIApA QCAtMzYwMSw4ICszNjc0LDE0IEBAIFdhbFNuZFdhaXQodWludDMyIHNvY2tldF9ldmVudHMsIGxv bmcgdGltZW91dCwgdWludDMyIHdhaXRfZXZlbnQpCiAJICoKIAkgKiBBbmQsIHdlIHVzZSBzZXBh cmF0ZSBzaGFyZWQgbWVtb3J5IENWcyBmb3IgcGh5c2ljYWwgYW5kIGxvZ2ljYWwKIAkgKiB3YWxz ZW5kZXJzIGZvciBzZWxlY3RpdmUgd2FrZSB1cHMsIHNlZSBXYWxTbmRXYWtldXAoKSBmb3IgbW9y ZSBkZXRhaWxzLgorCSAqCisJICogSWYgdGhlIHdhaXQgZXZlbnQgaXMgV0FJVF9GT1JfU1RBTkRC WV9DT05GSVJNQVRJT04sIHdhaXQgb24gYW5vdGhlciBDVgorCSAqIHVudGlsIGF3YWtlbmVkIGJ5 IHBoeXNpY2FsIHdhbHNlbmRlcnMgYWZ0ZXIgdGhlIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZQor CSAqIHJlY2VpcHQgb2YgdGhlIExTTi4KIAkgKi8KLQlpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQ TElDQVRJT05fS0lORF9QSFlTSUNBTCkKKwlpZiAod2FpdF9ldmVudCA9PSBXQUlUX0VWRU5UX1dB SVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OKQorCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVU b1NsZWVwKCZXYWxTbmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CisJZWxzZSBpZiAoTXlXYWxT bmQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFi bGVQcmVwYXJlVG9TbGVlcCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCWVsc2UgaWYgKE15 V2FsU25kLT5raW5kID09IFJFUExJQ0FUSU9OX0tJTkRfTE9HSUNBTCkKIAkJQ29uZGl0aW9uVmFy aWFibGVQcmVwYXJlVG9TbGVlcCgmV2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggNGMwZWUy ZGQyOS4uOTk3M2VmNDFiOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKQEAgLTc4LDYgKzc4LDcgQEAgR1NTX09QRU5fU0VSVkVSCSJXYWl0 aW5nIHRvIHJlYWQgZGF0YSBmcm9tIHRoZSBjbGllbnQgd2hpbGUgZXN0YWJsaXNoaW5nIGEgR1NT QVAKIExJQlBRV0FMUkVDRUlWRVJfQ09OTkVDVAkiV2FpdGluZyBpbiBXQUwgcmVjZWl2ZXIgdG8g ZXN0YWJsaXNoIGNvbm5lY3Rpb24gdG8gcmVtb3RlIHNlcnZlci4iCiBMSUJQUVdBTFJFQ0VJVkVS X1JFQ0VJVkUJIldhaXRpbmcgaW4gV0FMIHJlY2VpdmVyIHRvIHJlY2VpdmUgZGF0YSBmcm9tIHJl bW90ZSBzZXJ2ZXIuIgogU1NMX09QRU5fU0VSVkVSCSJXYWl0aW5nIGZvciBTU0wgd2hpbGUgYXR0 ZW1wdGluZyBjb25uZWN0aW9uLiIKK1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OCSJXYWl0 aW5nIGZvciB0aGUgV0FMIHRvIGJlIHJlY2VpdmVkIGJ5IHBoeXNpY2FsIHN0YW5kYnkuIgogV0FM X1NFTkRFUl9XQUlUX0ZPUl9XQUwJIldhaXRpbmcgZm9yIFdBTCB0byBiZSBmbHVzaGVkIGluIFdB TCBzZW5kZXIgcHJvY2Vzcy4iCiBXQUxfU0VOREVSX1dSSVRFX0RBVEEJIldhaXRpbmcgZm9yIGFu eSBhY3Rpdml0eSB3aGVuIHByb2Nlc3NpbmcgcmVwbGllcyBmcm9tIFdBTCByZWNlaXZlciBpbiBX QUwgc2VuZGVyIHByb2Nlc3MuIgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4 IDNhZjExYjJiODAuLmE4MjYxOGMzZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CkBAIC00NjI4LDYgKzQ2MjgsMjAgQEAgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFt ZXNTdHJpbmdbXSA9CiAJCWNoZWNrX2RlYnVnX2lvX2RpcmVjdCwgYXNzaWduX2RlYnVnX2lvX2Rp cmVjdCwgTlVMTAogCX0sCiAKKwl7CisJCXsic3RhbmRieV9zbG90X25hbWVzIiwgUEdDX1NJR0hV UCwgUkVQTElDQVRJT05fUFJJTUFSWSwKKwkJCWdldHRleHRfbm9vcCgiTGlzdHMgc3RyZWFtaW5n IHJlcGxpY2F0aW9uIHN0YW5kYnkgc2VydmVyIHNsb3QgIgorCQkJCQkJICJuYW1lcyB0aGF0IGxv Z2ljYWwgV0FMIHNlbmRlciBwcm9jZXNzZXMgd2lsbCB3YWl0IGZvci4iKSwKKwkJCWdldHRleHRf bm9vcCgiRGVjb2RlZCBjaGFuZ2VzIGFyZSBzZW50IG91dCB0byBwbHVnaW5zIGJ5IGxvZ2ljYWwg IgorCQkJCQkJICJXQUwgc2VuZGVyIHByb2Nlc3NlcyBvbmx5IGFmdGVyIHNwZWNpZmllZCAiCisJ CQkJCQkgInJlcGxpY2F0aW9uIHNsb3RzIGNvbmZpcm0gcmVjZWl2aW5nIFdBTC4iKSwKKwkJCUdV Q19MSVNUX0lOUFVUIHwgR1VDX0xJU1RfUVVPVEUKKwkJfSwKKwkJJnN0YW5kYnlfc2xvdF9uYW1l cywKKwkJIiIsCisJCWNoZWNrX3N0YW5kYnlfc2xvdF9uYW1lcywgYXNzaWduX3N0YW5kYnlfc2xv dF9uYW1lcywgTlVMTAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtO VUxMLCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDM4Njg2 OTRkM2YuLmRiNGFmYWYzNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKQEAgLTMzNCw2ICszMzQsOCBAQAogCQkJCSMgbWV0aG9kIHRvIGNob29z ZSBzeW5jIHN0YW5kYnlzLCBudW1iZXIgb2Ygc3luYyBzdGFuZGJ5cywKIAkJCQkjIGFuZCBjb21t YS1zZXBhcmF0ZWQgbGlzdCBvZiBhcHBsaWNhdGlvbl9uYW1lCiAJCQkJIyBmcm9tIHN0YW5kYnko cyk7ICcqJyA9IGFsbAorI3N0YW5kYnlfc2xvdF9uYW1lcyA9ICcnICMgc3RyZWFtaW5nIHJlcGxp Y2F0aW9uIHN0YW5kYnkgc2VydmVyIHNsb3QgbmFtZXMgdGhhdAorCQkJCSMgbG9naWNhbCB3YWxz ZW5kZXIgcHJvY2Vzc2VzIHdpbGwgd2FpdCBmb3IKIAogIyAtIFN0YW5kYnkgU2VydmVycyAtCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA0MWYwY2MzNWYzLi5hMGJhZDQ2OWZkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc2xvdC5oCkBAIC0yMjksNiArMjI5LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJl cGxpY2F0aW9uU2xvdCAqTXlSZXBsaWNhdGlvblNsb3Q7CiAKIC8qIEdVQ3MgKi8KIGV4dGVybiBQ R0RMTElNUE9SVCBpbnQgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOworZXh0ZXJuIFBHRExMSU1QT1JU IGNoYXIgKnN0YW5kYnlfc2xvdF9uYW1lczsKIAogLyogc2htZW0gaW5pdGlhbGl6YXRpb24gZnVu Y3Rpb25zICovCiBleHRlcm4gU2l6ZSBSZXBsaWNhdGlvblNsb3RzU2htZW1TaXplKHZvaWQpOwpA QCAtMjc1LDQgKzI3NiwxMCBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90 cyhib29sIGlzX3NodXRkb3duKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2 b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOwogCitleHRlcm4g TGlzdCAqR2V0U3RhbmRieVNsb3RMaXN0KGJvb2wgY29weSk7CitleHRlcm4gdm9pZCBXYWl0Rm9y U3RhbmRieUNvbmZpcm1hdGlvbihYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbik7CitleHRlcm4gdm9p ZCBGaWx0ZXJTdGFuZGJ5U2xvdHMoWExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sCisJCQkJCQkJCQkg TGlzdCAqKnN0YW5kYnlfc2xvdHMpOworZXh0ZXJuIHZvaWQgUmVyZWFkQ29uZmlnQW5kUmVJbml0 U2xvdExpc3QoTGlzdCAqKnN0YW5kYnlfc2xvdHMpOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCmluZGV4IDI3NmQ4OTEzYWEuLmY5YTU1 OWY4MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisr KyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCkBAIC00Nyw2ICs0Nyw3IEBA IGV4dGVybiB2b2lkIFdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNu ZFdhaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVdhbFNuZEluaXRTdG9wcGlu Zyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZvaWQpOworZXh0ZXJu IHZvaWQgUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKHZvaWQpOwogZXh0ZXJuIFhMb2dSZWNQ dHIgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSk7CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaAppbmRleCAzMTEzZTllYTQ3Li4w Zjk2MmIwYzcyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJf cHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRl LmgKQEAgLTExMyw2ICsxMTMsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlDb25kaXRpb25WYXJpYWJs ZSB3YWxfZmx1c2hfY3Y7CiAJQ29uZGl0aW9uVmFyaWFibGUgd2FsX3JlcGxheV9jdjsKIAorCS8q CisJICogVXNlZCBieSBwaHlzaWNhbCB3YWxzZW5kZXJzIGhvbGRpbmcgc2xvdHMgc3BlY2lmaWVk IGluCisJICogc3RhbmRieV9zbG90X25hbWVzIHRvIHdha2UgdXAgbG9naWNhbCB3YWxzZW5kZXJz IGhvbGRpbmcKKwkgKiBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIHdoZW4gYSB3YWxyZWNlaXZlciBj b25maXJtcyB0aGUgcmVjZWlwdCBvZiBMU04uCisJICovCisJQ29uZGl0aW9uVmFyaWFibGUgd2Fs X2NvbmZpcm1fcmN2X2N2OworCiAJV2FsU25kCQl3YWxzbmRzW0ZMRVhJQkxFX0FSUkFZX01FTUJF Ul07CiB9IFdhbFNuZEN0bERhdGE7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1 Y19ob29rcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKaW5kZXggNTMwMGM0NGYz Yi4uNDY0OTk2YjRmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKQEAgLTE2Miw1ICsxNjIsOCBAQCBl eHRlcm4gYm9vbCBjaGVja193YWxfY29uc2lzdGVuY3lfY2hlY2tpbmcoY2hhciAqKm5ld3ZhbCwg dm9pZCAqKmV4dHJhLAogZXh0ZXJuIHZvaWQgYXNzaWduX3dhbF9jb25zaXN0ZW5jeV9jaGVja2lu Zyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsKIGV4dGVybiBib29sIGNoZWNrX3dh bF9zZWdtZW50X3NpemUoaW50ICpuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJj ZSk7CiBleHRlcm4gdm9pZCBhc3NpZ25fd2FsX3N5bmNfbWV0aG9kKGludCBuZXdfd2FsX3N5bmNf bWV0aG9kLCB2b2lkICpleHRyYSk7CitleHRlcm4gYm9vbCBjaGVja19zdGFuZGJ5X3Nsb3RfbmFt ZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLAorCQkJCQkJCQkJIEd1Y1NvdXJjZSBzb3Vy Y2UpOworZXh0ZXJuIHZvaWQgYXNzaWduX3N0YW5kYnlfc2xvdF9uYW1lcyhjb25zdCBjaGFyICpu ZXd2YWwsIHZvaWQgKmV4dHJhKTsKIAogI2VuZGlmCQkJCQkJCS8qIEdVQ19IT09LU19IICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3JlY292 ZXJ5L21lc29uLmJ1aWxkCmluZGV4IDg4ZmIwMzA2ZjUuLjQxNTJjMDczMTggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21l c29uLmJ1aWxkCkBAIC00NSw2ICs0NSw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzN19pbnZh bGlkX2RhdGFiYXNlLnBsJywKICAgICAgICd0LzAzOF9zYXZlX2xvZ2ljYWxfc2xvdHNfc2h1dGRv d24ucGwnLAogICAgICAgJ3QvMDM5X2VuZF9vZl93YWwucGwnLAorICAgICAgJ3QvMDUwX3N0YW5k YnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzAwNl9sb2dpY2FsX2RlY29kaW5nLnBsCmluZGV4IDVjN2I0Y2E1ZTMuLjg1ZjAx OTc3NGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2Rp bmcucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbApA QCAtMTcyLDkgKzE3MiwxMCBAQCBpcygkbm9kZV9wcmltYXJ5LT5zbG90KCdvdGhlcmRiX3Nsb3Qn KS0+eydzbG90X25hbWUnfSwKIAl1bmRlZiwgJ2xvZ2ljYWwgc2xvdCB3YXMgYWN0dWFsbHkgZHJv cHBlZCB3aXRoIERCJyk7CiAKICMgVGVzdCBsb2dpY2FsIHNsb3QgYWR2YW5jaW5nIGFuZCBpdHMg ZHVyYWJpbGl0eS4KKyMgUGFzcyBmYWlsb3Zlcj10cnVlIChsYXN0LWFyZyksIGl0IHNob3VsZCBu b3QgaGF2ZSBhbnkgaW1wYWN0IG9uIGFkdmFuY2luZy4KIG15ICRsb2dpY2FsX3Nsb3QgPSAnbG9n aWNhbF9zbG90JzsKICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxF Q1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xvdCcsICd0 ZXN0X2RlY29kaW5nJywgZmFsc2UpOyIKKwkiU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJyRsb2dpY2FsX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxz ZSwgdHJ1ZSk7IgogKTsKICRub2RlX3ByaW1hcnktPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19z eW5jLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19z eW5jLnBsCmluZGV4IDEwNTU1NzNjZGUuLjA2YTRhZGE5NDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbAorKysgYi9zcmMv dGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKQEAgLTg3 LDE3ICs4NywzMCBAQCBpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAogJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBF TkFCTEUiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSMgVGVzdCBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIG9uIHRoZSBzdGFuZGJ5Ci0jIENv bmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNhdGUgYW5kIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xv dHMgY29uZmlndXJlZAotIyBmb3IgZmFpbG92ZXIgb24gdGhlIHByaW1hcnkKKyMgVGVzdCBwcmlt YXJ5IGRpc2FsbG93aW5nIHNwZWNpZmllZCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGdldHRp bmcgYWhlYWQgb2YKKyMgc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBJdCB1 c2VzIHRoZSBmb2xsb3dpbmcgc2V0IHVwOgogIwotIyAgICAgICAgICAgICAgZmFpbG92ZXIgc2xv dCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlhIGxvZ2ljYWwg cmVwbGljYXRpb24pCi0jIHByaW1hcnkgLS0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK LSMgICAgICAgICAgICAgIHBoeXNpY2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBzdGFuZGJ5 MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24pCi0jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGxzdWIxX3Nsb3Qoc3lu Y2VkX3Nsb3QpCisjCQkJCXwgLS0tLT4gc3RhbmRieTEgKHByaW1hcnlfc2xvdF9uYW1lID0gc2Ix X3Nsb3QpCisjCQkJCXwgLS0tLT4gc3RhbmRieTIgKHByaW1hcnlfc2xvdF9uYW1lID0gc2IyX3Ns b3QpCisjIHByaW1hcnkgLS0tLS0JfAorIwkJCQl8IC0tLS0+IHN1YnNjcmliZXIxIChmYWlsb3Zl ciA9IHRydWUpCisjCQkJCXwgLS0tLT4gc3Vic2NyaWJlcjIgKGZhaWxvdmVyID0gZmFsc2UpCisj CisjIHN0YW5kYnlfc2xvdF9uYW1lcyA9ICdzYjFfc2xvdCcKKyMKKyMgU2V0IHVwIGlzIGNvbmZp Z3VyZWQgaW4gc3VjaCBhIHdheSB0aGF0IHRoZSBsb2dpY2FsIHNsb3Qgb2Ygc3Vic2NyaWJlcjEg aXMKKyMgZW5hYmxlZCBmYWlsb3ZlciwgdGh1cyBpdCB3aWxsIHdhaXQgZm9yIHRoZSBwaHlzaWNh bCBzbG90IG9mCisjIHN0YW5kYnkxKHNiMV9zbG90KSB0byBjYXRjaCB1cCBiZWZvcmUgc2VuZGlu ZyBkZWNvZGVkIGNoYW5nZXMgdG8gc3Vic2NyaWJlcjEuCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCisjIENyZWF0ZSBwcmltYXJ5CiBteSAkcHJp bWFyeSA9ICRwdWJsaXNoZXI7CisKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxF Q1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7fSk7Cisk cHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdzYjJfc2xvdCcpO30pOworCiBteSAkYmFja3VwX25hbWUgPSAnYmFj a3VwJzsKICRwcmltYXJ5LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKIApAQCAtMTA3LDIxICsxMjAs MjAxIEBAICRzdGFuZGJ5MS0+aW5pdF9mcm9tX2JhY2t1cCgKIAkkcHJpbWFyeSwgJGJhY2t1cF9u YW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSwKIAloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5k YnkxLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3Rf bmFtZSA9ICdzYjFfc2xvdCcKKykpOworJHN0YW5kYnkxLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0 X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTEpOworCisjIENyZWF0ZSBhbm90aGVyIHN0YW5k YnkKK215ICRzdGFuZGJ5MiA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRi eTInKTsKKyRzdGFuZGJ5Mi0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkcHJpbWFyeSwgJGJhY2t1cF9u YW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5k YnkyLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3Rf bmFtZSA9ICdzYjJfc2xvdCcKKykpOworJHN0YW5kYnkyLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0 X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTIpOworCisjIENvbmZpZ3VyZSBwcmltYXJ5IHRv IGRpc2FsbG93IGFueSBsb2dpY2FsIHNsb3RzIHRoYXQgZW5hYmxlZCBmYWlsb3ZlciBmcm9tCisj IGdldHRpbmcgYWhlYWQgb2Ygc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgKHNi MV9zbG90KS4KKyRwcmltYXJ5LT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEo CitzdGFuZGJ5X3Nsb3RfbmFtZXMgPSAnc2IxX3Nsb3QnCispKTsKKyRwcmltYXJ5LT5yZWxvYWQ7 CisKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW50 IChhIGludCBQUklNQVJZIEtFWSk7Iik7CisKKyMgQ3JlYXRlIGEgdGFibGUgYW5kIHJlZnJlc2gg dGhlIHB1YmxpY2F0aW9uCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBx cVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OIFdJVEggKGNvcHlf ZGF0YSA9IGZhbHNlKTsKK10pOworCisjIENyZWF0ZSBhbm90aGVyIHN1YnNjcmliZXIgbm9kZSB3 aXRob3V0IGVuYWJsaW5nIGZhaWxvdmVyLCB3YWl0IGZvciBzeW5jIHRvCisjIGNvbXBsZXRlCitt eSAkc3Vic2NyaWJlcjIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmli ZXIyJyk7Ciskc3Vic2NyaWJlcjItPmluaXQ7Ciskc3Vic2NyaWJlcjItPnN0YXJ0OworJHN1YnNj cmliZXIyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisJQ1JFQVRFIFRBQkxFIHRhYl9p bnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlz dWIyIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19t eXB1YiBXSVRIIChzbG90X25hbWUgPSBsc3ViMl9zbG90LCBjb3B5X2RhdGEgPSBmYWxzZSk7Citd KTsKIAorIyBTdG9wIHRoZSBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28KKyMgdGhhdCB0aGUgbG9naWNhbCByZXBsaWNhdGlv biBzbG90IHdvbid0IHJlY2VpdmUgY2hhbmdlcyB1bnRpbCB0aGUgc3RhbmRieQorIyBjb21lcyB1 cC4KKyRzdGFuZGJ5MS0+c3RvcDsKKworIyBDcmVhdGUgc29tZSBkYXRhIG9uIHRoZSBwcmltYXJ5 CitteSAkcHJpbWFyeV9yb3dfY291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsICRw cmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyMgV2FpdCBmb3IgdGhlIHN0YW5kYnkgdGhhdCdzIHVw IGFuZCBydW5uaW5nIGdldHMgdGhlIGRhdGEgZnJvbSBwcmltYXJ5CiskcHJpbWFyeS0+d2FpdF9m b3JfcmVwbGF5X2NhdGNodXAoJHN0YW5kYnkyKTsKK215ICRyZXN1bHQgPSAkc3RhbmRieTItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291 bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAic3RhbmRieTIgZ2V0cyBkYXRh IGZyb20gcHJpbWFyeSIpOworCisjIFdhaXQgZm9yIHRoZSBzdWJzY3JpcHRpb24gdGhhdCdzIHVw IGFuZCBydW5uaW5nIGFuZCBpcyBub3QgZW5hYmxlZCBmb3IgZmFpbG92ZXIuCisjIEl0IGdldHMg dGhlIGRhdGEgZnJvbSBwcmltYXJ5IHdpdGhvdXQgd2FpdGluZyBmb3IgYW55IHN0YW5kYnlzLgor JHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjInKTsKKyRyZXN1bHQg PSAkc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikg PSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAi c3Vic2NyaWJlcjIgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIFRoZSBzdWJzY3JpcHRp b24gdGhhdCdzIHVwIGFuZCBydW5uaW5nIGFuZCBpcyBlbmFibGVkIGZvciBmYWlsb3ZlcgorIyBk b2Vzbid0IGdldCB0aGUgZGF0YSBmcm9tIHByaW1hcnkgYW5kIGtlZXBzIHdhaXRpbmcgZm9yIHRo ZQorIyBzdGFuZGJ5IHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMuCiskcmVzdWx0ID0K KyAgJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSA9 IDAgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBkb2Vz bid0IGdldCBkYXRhIGZyb20gcHJpbWFyeSB1bnRpbCBzdGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hh bmdlcyIKKyk7CisKKyMgU3RhcnQgdGhlIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xv dF9uYW1lcyBhbmQgd2FpdCBmb3IgaXQgdG8gY2F0Y2gKKyMgdXAgd2l0aCB0aGUgcHJpbWFyeS4K KyRzdGFuZGJ5MS0+c3RhcnQ7CiskcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJHN0 YW5kYnkxKTsKKyRyZXN1bHQgPSAkc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMo JHJlc3VsdCwgJ3QnLCAic3RhbmRieTEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIE5v dyB0aGF0IHRoZSBzdGFuZGJ5IHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaXMgdXAg YW5kIHJ1bm5pbmcsCisjIHByaW1hcnkgbXVzdCBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8g c3Vic2NyaXB0aW9uIGVuYWJsZWQgZm9yIGZhaWxvdmVyCisjIFdoaWxlIHRoZSBzdGFuZGJ5IHdh cyBkb3duLCB0aGlzIHN1YnNjcmliZXIgZGlkbid0IHJlY2VpdmUgYW55IGRhdGEgZnJvbQorIyBw cmltYXJ5IGkuZS4gdGhlIHByaW1hcnkgZGlkbid0IGFsbG93IGl0IHRvIGdvIGFoZWFkIG9mIHN0 YW5kYnkuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScpOwor JHJlc3VsdCA9ICRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBj b3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0 LCAndCcsCisJInN1YnNjcmliZXIxIGdldHMgZGF0YSBmcm9tIHByaW1hcnkgYWZ0ZXIgc3RhbmRi eTEgYWNrbm93bGVkZ2VzIGNoYW5nZXMiKTsKKworIyBTdG9wIHRoZSBzdGFuZGJ5IGFzc29jaWF0 ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28KKyMgdGhh dCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IHdvbid0IHJlY2VpdmUgY2hhbmdlcyB1bnRp bCB0aGUgc3RhbmRieQorIyBzbG90J3MgcmVzdGFydF9sc24gaXMgYWR2YW5jZWQgb3IgdGhlIHNs b3QgaXMgcmVtb3ZlZCBmcm9tIHRoZQorIyBzdGFuZGJ5X3Nsb3RfbmFtZXMgbGlzdC4KKyRwdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgdGFiX2ludDsiKTsKKyRwdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7Ciskc3RhbmRieTEtPnN0 b3A7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFZlcmlmeSB0aGF0IHdoZW4gdXNpbmcgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzIHRv IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEKKyMgbG9naWNhbCBzbG90IHdpdGggZmFpbG92ZXIgZW5h YmxlZCwgaXQgd2lsbCBhbHNvIHdhaXQgZm9yIHRoZSBzbG90cyBzcGVjaWZpZWQKKyMgaW4gc3Rh bmRieV9zbG90X25hbWVzIHRvIGNhdGNoIHVwLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgYSBsb2dpY2FsICd0ZXN0X2RlY29k aW5nJyByZXBsaWNhdGlvbiBzbG90IHdpdGggZmFpbG92ZXIgZW5hYmxlZAorJHB1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNh dGlvbl9zbG90KCd0ZXN0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1 ZSk7IgorKTsKKworbXkgJGJhY2tfcSA9ICRwcmltYXJ5LT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3Rn cmVzJywgb25fZXJyb3Jfc3RvcCA9PiAwKTsKK215ICRwaWQgPSAkYmFja19xLT5xdWVyeSgnU0VM RUNUIHBnX2JhY2tlbmRfcGlkKCknKTsKKworIyBUcnkgYW5kIGdldCBjaGFuZ2VzIGZyb20gdGhl IGxvZ2ljYWwgc2xvdCB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuCitteSAkb2Zmc2V0ID0gLXMgJHBy aW1hcnktPmxvZ2ZpbGU7CiskYmFja19xLT5xdWVyeV91bnRpbChxci8vLAorCSJTRUxFQ1QgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCd0ZXN0X3Nsb3QnLCBOVUxMLCBOVUxMKTtcbiIpOwor CisjIFdhaXQgdW50aWwgdGhlIHByaW1hcnkgc2VydmVyIGxvZ3MgYSB3YXJuaW5nIGluZGljYXRp bmcgdGhhdCBpdCBpcyB3YWl0aW5nCisjIGZvciB0aGUgc2IxX3Nsb3QgdG8gY2F0Y2ggdXAuCisk cHJpbWFyeS0+d2FpdF9mb3JfbG9nKAorCXFyL1dBUk5JTkc6ICggW0EtWjAtOV0rOik/IHJlcGxp Y2F0aW9uIHNsb3QgXCJzYjFfc2xvdFwiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCJzdGFuZGJ5 X3Nsb3RfbmFtZXNcIiBkb2VzIG5vdCBoYXZlIGFjdGl2ZV9waWQvLAorCSRvZmZzZXQpOworCitv aygkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcGdfY2FuY2VsX2JhY2tl bmQoJHBpZCkiKSwKKwkiY2FuY2VsbGluZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgY29t bWFuZCIpOworCiskYmFja19xLT5xdWl0OworCiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgndGVzdF9zbG90Jyk7Igor KTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgVGVzdCB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gd2lsbCB3YWl0IGZvciB0aGUgdXNlci1j cmVhdGVkIGluYWN0aXZlCisjIHBoeXNpY2FsIHNsb3QgdG8gY2F0Y2ggdXAgdW50aWwgd2UgcmVt b3ZlIHRoZSBzbG90IGZyb20gc3RhbmRieV9zbG90X25hbWVzLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgc29tZSBkYXRhIG9u IHRoZSBwcmltYXJ5CiskcHJpbWFyeV9yb3dfY291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2Vy aWVzKDEsICRwcmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyRyZXN1bHQgPQorICAkc3Vic2NyaWJl cjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9p bnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEg YXMgdGhlIHNiMV9zbG90IGRvZXNuJ3QgY2F0Y2ggdXAiKTsKKworIyBSZW1vdmUgdGhlIHN0YW5k YnkgZnJvbSB0aGUgc3RhbmRieV9zbG90X25hbWVzIGxpc3QgYW5kIHJlbG9hZCB0aGUKKyMgY29u ZmlndXJhdGlvbi4KKyRwcmltYXJ5LT5hZGp1c3RfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3N0 YW5kYnlfc2xvdF9uYW1lcycsICInJyIpOworJHByaW1hcnktPnJlbG9hZDsKKworIyBTaW5jZSB0 aGVyZSBhcmUgbm8gc2xvdHMgaW4gc3RhbmRieV9zbG90X25hbWVzLCB0aGUgcHJpbWFyeSBzZXJ2 ZXIgc2hvdWxkIG5vdworIyBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8gdGhlIHN1YnNjcmlw dGlvbi4KKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7Cisk cmVzdWx0ID0gJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopID0gJHByaW1hcnlfcm93X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQs ICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5 MSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0IgorKTsKKworIyBQ dXQgdGhlIHN0YW5kYnkgYmFjayBvbiB0aGUgcHJpbWFyeV9zbG90X25hbWUgZm9yIHRoZSByZXN0 IG9mIHRoZSB0ZXN0cworJHByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAn c3RhbmRieV9zbG90X25hbWVzJywgJ3NiMV9zbG90Jyk7CiskcHJpbWFyeS0+cmVsb2FkOworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0 IGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKKyMgQ29uZmlndXJlIHN0YW5k YnkxIHRvIHJlcGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVk CisjIGZvciBmYWlsb3ZlciBvbiB0aGUgcHJpbWFyeQorIworIyAgICAgICAgICAgICAgZmFpbG92 ZXIgc2xvdCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlhIGxv Z2ljYWwgcmVwbGljYXRpb24pCisjIHByaW1hcnkgLS0tPiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyMgICAgICAgICAgICAgIHBoeXNpY2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBz dGFuZGJ5MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24pCisjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGxzdWIxX3Ns b3Qoc3luY2VkX3Nsb3QpCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisjIENyZWF0ZSBhIHN0YW5kYnkKIG15ICRjb25uc3RyXzEgPSAkcHJpbWFy eS0+Y29ubnN0cjsKICRzdGFuZGJ5MS0+YXBwZW5kX2NvbmYoCiAJJ3Bvc3RncmVzcWwuY29uZics IHFxKAogZW5hYmxlX3N5bmNzbG90ID0gdHJ1ZQogaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgot cHJpbWFyeV9zbG90X25hbWUgPSAnc2IxX3Nsb3QnCiBwcmltYXJ5X2Nvbm5pbmZvID0gJyRjb25u c3RyXzEgZGJuYW1lPXBvc3RncmVzJwogKSk7CiAKLSRwcmltYXJ5LT5wc3FsKCdwb3N0Z3Jlcycs Ci0JcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90 Jyk7fSk7Ci0KIG15ICRzdGFuZGJ5MV9jb25uaW5mbyA9ICRzdGFuZGJ5MS0+Y29ubnN0ciAuICcg ZGJuYW1lPXBvc3RncmVzJzsKLW15ICRvZmZzZXQgPSAtcyAkc3RhbmRieTEtPmxvZ2ZpbGU7Cisk b2Zmc2V0ID0gLXMgJHN0YW5kYnkxLT5sb2dmaWxlOwogCiAjIFN0YXJ0IHRoZSBzdGFuZGJ5IHNv IHRoYXQgc2xvdCBzeW5jaW5nIGNhbiBiZWdpbgogJHN0YW5kYnkxLT5zdGFydDsKQEAgLTE1MCwx OCArMzQzLDExIEBAIGlzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAjIEluc2Vy dCBkYXRhIG9uIHRoZSBwcmltYXJ5CiAkcHJpbWFyeS0+c2FmZV9wc3FsKAogCSdwb3N0Z3Jlcycs IHFxWwotCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7CisJVFJVTkNB VEUgVEFCTEUgdGFiX2ludDsKIAlJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApOwogXSk7CiAKLSMgU3Vic2NyaWJlIHRvIHRoZSBuZXcgdGFibGUgZGF0YSBh bmQgd2FpdCBmb3IgaXQgdG8gYXJyaXZlCi0kc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKLQkncG9z dGdyZXMnLCBxcVsKLQlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOwot CUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OOwot XSk7Ci0KLSRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CiskcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKIAogIyBEbyBub3QgYWxsb3cg YW55IGZ1cnRoZXIgYWR2YW5jZW1lbnQgb2YgdGhlIHJlc3RhcnRfbHNuIGFuZAogIyBjb25maXJt ZWRfZmx1c2hfbHNuIGZvciB0aGUgbHN1YjFfc2xvdC4KQEAgLTE5OSw3ICszODUsOSBAQCAkc3Rh bmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQUxURVIgU1lTVEVNIFNFVCBob3Rfc3RhbmRi eV9mZWVkYmFjayA9IG9mZjsnKQogJHN0YW5kYnkxLT5yZXN0YXJ0OwogCiAjIEF0dGVtcHRpbmcg dG8gcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3Vs dCBpbiBhbiBlcnJvcgotbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkx LT5wc3FsKCdwb3N0Z3JlcycsCitteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKygkcmVzdWx0LCAk c3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdyZXMnLAogCSJzZWxlY3Qg KiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnbHN1YjFfc2xvdCcsTlVMTCxOVUxM KTsiKTsKIG9rKCRzdGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IHVzZSByZXBsaWNhdGlvbiBzbG90 ICJsc3ViMV9zbG90IiBmb3IgbG9naWNhbCBkZWNvZGluZy8sCiAJImxvZ2ljYWwgZGVjb2Rpbmcg aXMgbm90IGFsbG93ZWQgb24gc3luY2VkIHNsb3QiKTsKLS0gCjIuMzAuMC53aW5kb3dzLjIKCg== --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0007-Non-replication-connection-and-app_name-change.patch" Content-Description: v68-0007-Non-replication-connection-and-app_name-change.patch Content-Disposition: attachment; filename="v68-0007-Non-replication-connection-and-app_name-change.patch"; size=9942; creation-date="Thu, 25 Jan 2024 02:51:33 GMT"; modification-date="Thu, 25 Jan 2024 02:57:26 GMT" Content-Transfer-Encoding: base64 RnJvbSAwOTM2MzA5NjZkMDczYzNjMTQxZTI3NWNkNTJlOWY1NWFmYmM3YmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjMgSmFuIDIwMjQgMTU6NDg6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OCA3LzhdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpU aGlzIHBhdGNoIGhhcyBjb252ZXJ0ZWQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0byBub24tcmVw bGljYXRpb24Kb25lIGluIHRoZSBzbG90c3luYyB3b3JrZXIuCgpJdCBoYXMgYWxzbyBjaGFuZ2Vk IHRoZSBhcHBfbmFtZSB0byB7Y2x1c3Rlcl9uYW1lfV9zbG90c3luY3dvcmtlcgppbiB0aGUgc2xv dHN5bmMgd29ya2VyIGNvbm5lY3Rpb24uCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jICAgICAgIHwgMTIgKysrLS0KIC4uLi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYyAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDE0ICsrKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgIDUgKystCiA3IGZpbGVzIGNoYW5nZWQs IDYwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYwppbmRleCAxNWJiMTBkYTU0Li5mMTdjNjY2ZWJjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC03NTMsNyArNzUzLDggQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAogCQkvKiBUcnkgdG8gY29ubmVjdCB0byB0aGUgcHVibGlzaGVyLiAqLwogCQltdXN0 X3VzZV9wYXNzd29yZCA9ICFzdXBlcnVzZXJfYXJnKG93bmVyKSAmJiBvcHRzLnBhc3N3b3JkcmVx dWlyZWQ7Ci0JCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlLCBtdXN0X3Vz ZV9wYXNzd29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUgLyog cmVwbGljYXRpb24gKi8gLAorCQkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJ CQkJc3RtdC0+c3VibmFtZSwgJmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJZXJlcG9ydChFUlJP UiwKQEAgLTkwNCw3ICs5MDUsOCBAQCBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoKFN1YnNjcmlw dGlvbiAqc3ViLCBib29sIGNvcHlfZGF0YSwKIAogCS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBw dWJsaXNoZXIuICovCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBhc3N3b3JkcmVxdWlyZWQg JiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5j b25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5l Y3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJdHJ1ZSwg bXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKIAlpZiAoIXdyY29u bikKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE1MzEsNyArMTUzMyw4IEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJ CS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3 b3JkID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOwotCQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiBy ZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJ CQlzdWItPm5hbWUsICZlcnIpOwogCQlpZiAoIXdyY29ubikKIAkJCWVyZXBvcnQoRVJST1IsCkBA IC0xNzgyLDcgKzE3ODUsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10 ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJICovCiAJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2Vp dmVyIiwgZmFsc2UpOwogCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUs IG11c3RfdXNlX3Bhc3N3b3JkLAorCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0 cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwK IAkJCQkJCQlzdWJuYW1lLCAmZXJyKTsKIAlpZiAod3Jjb25uID09IE5VTEwpCiAJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJl Y2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYwppbmRleCBhZTc2YzA5OGIxLi4xM2E3ODdiOGJmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYwpAQCAtNiw2ICs2LDkgQEAKICAqIGxvYWRlZCBhcyBhIGR5bmFtaWMgbW9kdWxl IHRvIGF2b2lkIGxpbmtpbmcgdGhlIG1haW4gc2VydmVyIGJpbmFyeSB3aXRoCiAgKiBsaWJwcS4K ICAqCisgKiBBcGFydCBmcm9tIHdhbHJlY2VpdmVyLCB0aGUgbGlicHEtc3BlY2lmaWMgcm91dGlu ZXMgaGVyZSBhcmUgbm93IGJlaW5nIHVzZWQKKyAqIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gd29y a2VycyBhbmQgc2xvdHN5bmMgd29ya2VyIGFzIHdlbGwuCisKICAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMjAxMC0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoK ICAqCkBAIC00OSw3ICs1Miw4IEBAIHN0cnVjdCBXYWxSZWNlaXZlckNvbm4KIAogLyogUHJvdG90 eXBlcyBmb3IgaW50ZXJmYWNlIGZ1bmN0aW9ucyAqLwogc3RhdGljIFdhbFJlY2VpdmVyQ29ubiAq bGlicHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywKLQkJCQkJCQkJCQkgYm9vbCBs b2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAorCQkJCQkJCQkJCSBib29sIHJlcGxpY2F0 aW9uLCBib29sIGxvZ2ljYWwsCisJCQkJCQkJCQkJIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJ CQkJCQkJCQkJIGNvbnN0IGNoYXIgKmFwcG5hbWUsIGNoYXIgKiplcnIpOwogc3RhdGljIHZvaWQg bGlicHFyY3ZfY2hlY2tfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sCiAJCQkJCQkJCQli b29sIG11c3RfdXNlX3Bhc3N3b3JkKTsKQEAgLTEyNCw3ICsxMjgsMTIgQEAgX1BHX2luaXQodm9p ZCkKIH0KIAogLyoKLSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBz ZXJ2ZXIgZm9yIFhMT0cgc3RyZWFtaW5nCisgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8g dGhlIHByaW1hcnkgc2VydmVyLgorICoKKyAqIFRoZSBjb25uZWN0aW9uIGVzdGFibGlzaGVkIGNv dWxkIGJlIGVpdGhlciBhIHJlcGxpY2F0aW9uIG9uZSBvcgorICogYSBub24tcmVwbGljYXRpb24g b25lIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdyZXBsaWNhdGlvbicuIEFuZCBmdXJ0aGVyCisg KiBpZiBpdCBpcyBhIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24sIGl0IGNvdWxkIGJlIGVpdGhlciBs b2dpY2FsIG9yIHBoeXNpY2FsCisgKiBiYXNlZCBvbiBpbnB1dCBhcmd1bWVudCAnbG9naWNhbCcu CiAgKgogICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGlzIGZ1bmN0aW9uIHdpbGwgbm9ybWFsbHkg cmV0dXJuIE5VTEwgYW5kIHNldCAqZXJyCiAgKiB0byBhIHBhbGxvYydlZCBlcnJvciBtZXNzYWdl LiBIb3dldmVyLCBpZiBtdXN0X3VzZV9wYXNzd29yZCBpcyB0cnVlIGFuZApAQCAtMTM1LDggKzE0 NCw4IEBAIF9QR19pbml0KHZvaWQpCiAgKiBjYXNlLgogICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJD b25uICoKLWxpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgbG9naWNh bCwgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKLQkJCQkgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hh ciAqKmVycikKK2xpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgcmVw bGljYXRpb24sIGJvb2wgbG9naWNhbCwKKwkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwgY29u c3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycikKIHsKIAlXYWxSZWNlaXZlckNvbm4gKmNvbm47 CiAJUG9zdGdyZXNQb2xsaW5nU3RhdHVzVHlwZSBzdGF0dXM7CkBAIC0xNTksMTcgKzE2OCwyNiBA QCBsaWJwcXJjdl9jb25uZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBib29sIGxvZ2ljYWwsIGJv b2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJICovCiAJa2V5c1tpXSA9ICJkYm5hbWUiOwogCXZhbHNb aV0gPSBjb25uaW5mbzsKLQlrZXlzWysraV0gPSAicmVwbGljYXRpb24iOwotCXZhbHNbaV0gPSBs b2dpY2FsID8gImRhdGFiYXNlIiA6ICJ0cnVlIjsKLQlpZiAoIWxvZ2ljYWwpCisKKwkvKiBXZSBj YW4gbm90IGhhdmUgbG9naWNhbCB3aXRob3V0IHJlcGxpY2F0aW9uICovCisJaWYgKCFyZXBsaWNh dGlvbikKKwkJQXNzZXJ0KCFsb2dpY2FsKTsKKwllbHNlCiAJewotCQkvKgotCQkgKiBUaGUgZGF0 YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9kZSwg YnV0Ci0JCSAqIHNwZWNpZnkgInJlcGxpY2F0aW9uIiBmb3IgLnBncGFzcyBsb29rdXAuCi0JCSAq LwotCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKLQkJdmFsc1tpXSA9ICJyZXBsaWNhdGlvbiI7CisJ CWtleXNbKytpXSA9ICJyZXBsaWNhdGlvbiI7CisJCXZhbHNbaV0gPSBsb2dpY2FsID8gImRhdGFi YXNlIiA6ICJ0cnVlIjsKKworCQlpZiAoIWxvZ2ljYWwpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUg ZGF0YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9k ZSwKKwkJCSAqIGJ1dCBzcGVjaWZ5ICJyZXBsaWNhdGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgor CQkJICovCisJCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKKwkJCXZhbHNbaV0gPSAicmVwbGljYXRp b24iOworCQl9CiAJfQorCiAJa2V5c1srK2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUi OwogCXZhbHNbaV0gPSBhcHBuYW1lOwogCWlmIChsb2dpY2FsKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9zbG90c3luYy5jCmluZGV4IDJhMDMzNjQ3YjMuLjM5ZDY2YjNlZDAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTEwNjcsNiAr MTA2Nyw3IEBAIFJlcGxTbG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAlib29sCQlwcmltYXJ5X3Nsb3RfaW52YWxpZDsKIAljaGFyCSAgICplcnI7CiAJc2lnam1wX2J1 Zglsb2NhbF9zaWdqbXBfYnVmOworCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1lOwogCiAJYW1fc2xv dHN5bmNfd29ya2VyID0gdHJ1ZTsKIApAQCAtMTE3NiwxMyArMTE3NywyMiBAQCBSZXBsU2xvdFN5 bmNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlTZXRQcm9jZXNzaW5nTW9k ZShOb3JtYWxQcm9jZXNzaW5nKTsKIAorCWluaXRTdHJpbmdJbmZvKCZhcHBfbmFtZSk7CisJaWYg KGNsdXN0ZXJfbmFtZVswXSkKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXBwX25hbWUsICIlc18lcyIs IGNsdXN0ZXJfbmFtZSwgInNsb3RzeW5jd29ya2VyIik7CisJZWxzZQorCQlhcHBlbmRTdHJpbmdJ bmZvKCZhcHBfbmFtZSwgIiVzIiwgInNsb3RzeW5jd29ya2VyIik7CisKIAkvKgogCSAqIEVzdGFi bGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yIHNsb3RzCiAJICog c3luY2hyb25pemF0aW9uLgogCSAqLwotCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlD b25uSW5mbywgdHJ1ZSwgZmFsc2UsCi0JCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9u YW1lIDogInNsb3RzeW5jd29ya2VyIiwKKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmltYXJ5 Q29ubkluZm8sIGZhbHNlIC8qIHJlcGxpY2F0aW9uICovLAorCQkJCQkJCWZhbHNlLCBmYWxzZSwK KwkJCQkJCQlhcHBfbmFtZS5kYXRhLAogCQkJCQkJCSZlcnIpOworCXBmcmVlKGFwcF9uYW1lLmRh dGEpOworCiAJaWYgKCF3cmNvbm4pCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJD T0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC90YWJsZXN5bmMuYwppbmRleCA1YWNhYjNmM2UyLi5jNWM2YWM0YmFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTEzMjksNyArMTMyOSw3IEBA IExvZ2ljYWxSZXBTeW5jVGFibGVTdGFydChYTG9nUmVjUHRyICpvcmlnaW5fc3RhcnRwb3MpCiAJ ICogc28gdGhhdCBzeW5jaHJvbm91cyByZXBsaWNhdGlvbiBjYW4gZGlzdGluZ3Vpc2ggdGhlbS4K IAkgKi8KIAlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0KLQkJd2FscmN2X2Nvbm5lY3QoTXlTdWJz Y3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLAorCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlv bi0+Y29ubmluZm8sIHRydWUgLyogcmVwbGljYXRpb24gKi8gLCB0cnVlLAogCQkJCQkgICBtdXN0 X3VzZV9wYXNzd29yZCwKIAkJCQkJICAgc2xvdG5hbWUsICZlcnIpOwogCWlmIChMb2dSZXBXb3Jr ZXJXYWxSY3ZDb25uID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYwppbmRleCAzMmZmNGMwMzM2Li4wZDc5MWMxODhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ1MTgsNyArNDUxOCw5IEBAIHJ1bl9hcHBseV93b3Jr ZXIoKQogCW11c3RfdXNlX3Bhc3N3b3JkID0gTXlTdWJzY3JpcHRpb24tPnBhc3N3b3JkcmVxdWly ZWQgJiYKIAkJIU15U3Vic2NyaXB0aW9uLT5vd25lcnN1cGVydXNlcjsKIAotCUxvZ1JlcFdvcmtl cldhbFJjdkNvbm4gPSB3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRy dWUsCisJTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9IHdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0 aW9uLT5jb25uaW5mbywKKwkJCQkJCQkJCQkJdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJ CQkJCQkJCXRydWUsCiAJCQkJCQkJCQkJCW11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQkJCQlN eVN1YnNjcmlwdGlvbi0+bmFtZSwgJmVycik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlci5jCmluZGV4IGUyOWE2MTk2YTMuLjg3MmNjY2I1NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2FscmVjZWl2ZXIuYwpAQCAtMjk2LDcgKzI5Niw4IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lk KQogCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmVW5CbG9ja1NpZywgTlVMTCk7CiAKIAkvKiBF c3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgZm9yIFhMT0cgc3RyZWFtaW5n ICovCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGZhbHNlLCBmYWxzZSwKKwl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAs CisJCQkJCQkJZmFsc2UsIGZhbHNlLAogCQkJCQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0ZXJf bmFtZSA6ICJ3YWxyZWNlaXZlciIsCiAJCQkJCQkJJmVycik7CiAJaWYgKCF3cmNvbm4pCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAppbmRleCA0OGRjODQ2ZTE5Li4xYjU2M2ExNmNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKQEAgLTIzNyw2ICsyMzcsNyBA QCB0eXBlZGVmIHN0cnVjdCBXYWxSY3ZFeGVjUmVzdWx0CiAgKiByZXR1cm5lZCB3aXRoICdlcnIn IGluY2x1ZGluZyB0aGUgZXJyb3IgZ2VuZXJhdGVkLgogICovCiB0eXBlZGVmIFdhbFJlY2VpdmVy Q29ubiAqKCp3YWxyY3ZfY29ubmVjdF9mbikgKGNvbnN0IGNoYXIgKmNvbm5pbmZvLAorCQkJCQkJ CQkJCQkgICBib29sIHJlcGxpY2F0aW9uLAogCQkJCQkJCQkJCQkgICBib29sIGxvZ2ljYWwsCiAJ CQkJCQkJCQkJCSAgIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKmFwcG5hbWUsCkBAIC00MjYsOCArNDI3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVj ZWl2ZXJGdW5jdGlvbnNUeXBlCiAKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1bmN0 aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rpb25zOwogCi0jZGVmaW5lIHdhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKSBcCi0J V2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCBsb2dpY2FsLCBt dXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQorI2RlZmluZSB3YWxyY3ZfY29ubmVjdChj b25uaW5mbywgcmVwbGljYXRpb24sIGxvZ2ljYWwsIG11c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1l LCBlcnIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2Nvbm5lY3QoY29ubmluZm8s IHJlcGxpY2F0aW9uLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQog I2RlZmluZSB3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sIG11c3RfdXNlX3Bhc3N3b3Jk KSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5m bywgbXVzdF91c2VfcGFzc3dvcmQpCiAjZGVmaW5lIHdhbHJjdl9nZXRfY29ubmluZm8oY29ubikg XAotLSAKMi4zMC4wLndpbmRvd3MuMgoK --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0008-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Description: v68-0008-Document-the-steps-to-check-if-the-standby-is-re.patch Content-Disposition: attachment; filename="v68-0008-Document-the-steps-to-check-if-the-standby-is-re.patch"; size=6752; creation-date="Thu, 25 Jan 2024 02:51:33 GMT"; modification-date="Thu, 25 Jan 2024 02:57:26 GMT" Content-Transfer-Encoding: base64 RnJvbSA3NjcwYjE2ZDVjM2E2ZjljMjIyODRjNGY5MGJlMzA4OTMwODM0NWM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTE6MDQ6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OCA4LzhdIERvY3VtZW50IHRoZSBzdGVwcyB0byBjaGVjayBpZiB0aGUgc3RhbmRieSBpcyByZWFk eQogZm9yIGZhaWxvdmVyCgotLS0KIGRvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s ICAgfCAgIDkgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgfCAxMzAg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBi L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDIzNmMwYWY2NWYuLjM2 MjE1YWE2OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0xNDg3LDYgKzE0 ODcsMTUgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgV3JpdHRlbiBhZG1pbmlzdHJhdGlvbiBwcm9jZWR1cmVzIGFyZSBhZHZpc2VkLgogICAg PC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBJZiB5b3UgaGF2ZSBvcHRlZCBmb3Igc3luY2hyb25p emF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWxk ZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRpb24iLz4pLAorICAgIHRoZW4g YmVmb3JlIHN3aXRjaGluZyB0byB0aGUgc3RhbmRieSBzZXJ2ZXIsIGl0IGlzIHJlY29tbWVuZGVk IHRvIGNoZWNrCisgICAgaWYgdGhlIGxvZ2ljYWwgc2xvdHMgc3luY2hyb25pemVkIG9uIHRoZSBz dGFuZGJ5IHNlcnZlciBhcmUgcmVhZHkKKyAgICBmb3IgZmFpbG92ZXIuIFRoaXMgY2FuIGJlIGRv bmUgYnkgZm9sbG93aW5nIHRoZSBzdGVwcyBkZXNjcmliZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLWZhaWxvdmVyIi8+LgorICAgPC9wYXJhPgorCiAgICA8cGFy YT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVyIG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2Vy dmVyLCBydW4KICAgICA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY2FsbCA8 ZnVuY3Rpb24+cGdfcHJvbW90ZSgpPC9mdW5jdGlvbj4uCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAppbmRleCBlYzIxMzA2NjllLi45MjRlNGVhMDMzIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTY4Nyw2ICs2ODcsMTM2IEBAIEFMVEVSIFNVQlNDUklQ VElPTgogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1mYWls b3ZlciI+CisgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIEZhaWxvdmVyPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFdoZW4gdGhlIHB1Ymxpc2hlciBzZXJ2ZXIgaXMgdGhlIHByaW1hcnkgc2Vy dmVyIG9mIGEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLAorICAgdGhlIGxvZ2ljYWwgc2xvdHMgb24g dGhhdCBwcmltYXJ5IHNlcnZlciBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBzdGFuZGJ5Cisg ICBzZXJ2ZXIgYnkgc3BlY2lmeWluZyA8bGl0ZXJhbD5mYWlsb3ZlciA9IHRydWU8L2xpdGVyYWw+ IHdoZW4gY3JlYXRpbmcKKyAgIHN1YnNjcmlwdGlvbnMgZm9yIHRob3NlIHB1YmxpY2F0aW9ucy4g RW5hYmxpbmcgZmFpbG92ZXIgZW5zdXJlcyBhIHNlYW1sZXNzCisgICB0cmFuc2l0aW9uIG9mIHRo b3NlIHN1YnNjcmlwdGlvbnMgYWZ0ZXIgdGhlIHN0YW5kYnkgaXMgcHJvbW90ZWQuIFRoZXkgY2Fu CisgICBjb250aW51ZSBzdWJzY3JpYmluZyB0byBwdWJsaWNhdGlvbnMgbm93IG9uIHRoZSBuZXcg cHJpbWFyeSBzZXJ2ZXIgd2l0aG91dAorICAgYW55IGRhdGEgbG9zcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQmVjYXVzZSB0aGUgc2xvdCBzeW5jaHJvbml6YXRpb24gbG9naWMgY29waWVz IGFzeW5jaHJvbm91c2x5LCBpdCBpcworICAgbmVjZXNzYXJ5IHRvIGNvbmZpcm0gdGhhdCByZXBs aWNhdGlvbiBzbG90cyBoYXZlIGJlZW4gc3luY2VkIHRvIHRoZSBzdGFuZGJ5CisgICBzZXJ2ZXIg YmVmb3JlIHRoZSBmYWlsb3ZlciBoYXBwZW5zLiBGdXJ0aGVybW9yZSwgdG8gZW5zdXJlIGEgc3Vj Y2Vzc2Z1bAorICAgZmFpbG92ZXIsIHRoZSBzdGFuZGJ5IHNlcnZlciBtdXN0IG5vdCBiZSBsYWdn aW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlci4gSXQKKyAgIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0 byB1c2UKKyAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1l PnN0YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CisgICB0byBwcmV2ZW50IHRoZSBz dWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFu ZGJ5LgorICAgVG8gY29uZmlybSB0aGF0IHRoZSBzdGFuZGJ5IHNlcnZlciBpcyBpbmRlZWQgcmVh ZHkgZm9yIGZhaWxvdmVyLCBmb2xsb3cKKyAgIHRoZXNlIDIgc3RlcHM6CisgIDwvcGFyYT4KKwor ICA8cHJvY2VkdXJlPgorICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICA8cGFy YT4KKyAgICAgQ29uZmlybSB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdHMgaGF2ZSBiZWVuIHN5bmNlZCB0bworICAgICB0aGUgc3RhbmRieSBzZXJ2ZXIuCisg ICAgPC9wYXJhPgorICAgIDxzdWJzdGVwcz4KKyAgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVp cmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5v ZGUsIHVzZSB0aGUgZm9sbG93aW5nIFNRTCB0byBpZGVudGlmeQorICAgICAgIHdoaWNoIHNsb3Rz IHNob3VsZCBiZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnkgdGhhdCB3ZSBwbGFuIHRvIHByb21vdGUu Cis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1Yj0jIFNFTEVDVAorICAgICAgICAgICAgICAgYXJy YXlfYWdnKHNsb3RuYW1lKSBBUyBzbG90cworICAgICAgICAgICBGUk9NCisgICAgICAgICAgICgo CisgICAgICAgICAgICAgICBTRUxFQ1Qgci5zcnN1YmlkIEFTIHN1YmlkLCBDT05DQVQoJ3BnXycg fHwgc3JzdWJpZCB8fCAnX3N5bmNfJyB8fCBzcnJlbGlkIHx8ICdfJyB8fCBjdGwuc3lzdGVtX2lk ZW50aWZpZXIpIEFTIHNsb3RuYW1lCisgICAgICAgICAgICAgICBGUk9NIHBnX2NvbnRyb2xfc3lz dGVtKCkgY3RsLCBwZ19zdWJzY3JpcHRpb25fcmVsIHIsIHBnX3N1YnNjcmlwdGlvbiBzCisgICAg ICAgICAgICAgICBXSEVSRSByLnNyc3Vic3RhdGUgPSAnZicgQU5EIHMub2lkID0gci5zcnN1Ymlk IEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAgICAgICAgICAg U0VMRUNUIHMub2lkIEFTIHN1YmlkLCBzLnN1YnNsb3RuYW1lIGFzIHNsb3RuYW1lCisgICAgICAg ICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgICAgICAgICBXSEVSRSBzLnN1 YmZhaWxvdmVyCisgICAgICAgICAgICkpOworIHNsb3RzCistLS0tLS0tCisge3N1YjEsc3ViMixz dWIzfQorKDEgcm93KQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwvc3RlcD4KKyAg ICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIE5l eHQsIGNoZWNrIHRoYXQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaWRlbnRpZmllZCBh Ym92ZSBleGlzdCBvbgorICAgICAgIHRoZSBzdGFuZGJ5IHNlcnZlciBhbmQgYXJlIHJlYWR5IGZv ciBmYWlsb3Zlci4KKzxwcm9ncmFtbGlzdGluZz4KK3Rlc3Rfc3RhbmRieT0jIFNFTEVDVCBzbG90 X25hbWUsIChzeW5jZWQgQU5EIE5PVCB0ZW1wb3JhcnkgQU5EIGNvbmZsaWN0X3JlYXNvbiBJUyBO VUxMKSBBUyBmYWlsb3Zlcl9yZWFkeQorICAgICAgICAgICAgICAgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cworICAgICAgICAgICAgICAgV0hFUkUgc2xvdF9uYW1lIElOICgnc3ViMScsJ3N1YjIn LCdzdWIzJyk7CisgIHNsb3RfbmFtZSAgfCBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tCisgIHN1YjEgICAgICAgfCB0CisgIHN1YjIgICAgICAgfCB0CisgIHN1 YjMgICAgICAgfCB0CisoMyByb3dzKQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwv c3RlcD4KKyAgICA8L3N1YnN0ZXBzPgorICAgPC9zdGVwPgorCisgICA8c3RlcCBwZXJmb3JtYW5j ZT0icmVxdWlyZWQiPgorICAgIDxwYXJhPgorICAgICBDb25maXJtIHRoYXQgdGhlIHN0YW5kYnkg c2VydmVyIGlzIG5vdCBsYWdnaW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlcnMuCisgICAgIFRoaXMg c3RlcCBjYW4gYmUgc2tpcHBlZCBpZgorICAgICA8bGluayBsaW5rZW5kPSJndWMtc3RhbmRieS1z bG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+PC9saW5rPgor ICAgICBoYXMgYmVlbiBjb3JyZWN0bHkgY29uZmlndXJlZC4KKyAgICA8L3BhcmE+CisgICAgIDxz dWJzdGVwcz4KKyAgICAgIDxzdGVwIHBlcmZvcm1hbmNlPSJyZXF1aXJlZCI+CisgICAgICAgPHBh cmE+CisgICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5vZGUgY2hlY2sgdGhlIGxh c3QgcmVwbGF5ZWQgV0FMLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdWI9IyBTRUxFQ1QKKyAg ICAgICAgICAgICAgIE1BWChyZW1vdGVfbHNuKSBBUyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIK KyAgICAgICAgICAgRlJPTQorICAgICAgICAgICAoKAorICAgICAgICAgICAgICAgU0VMRUNUIChD QVNFIFdIRU4gci5zcnN1YnN0YXRlID0gJ2YnIFRIRU4gcGdfcmVwbGljYXRpb25fb3JpZ2luX3By b2dyZXNzKENPTkNBVCgncGdfJyB8fCByLnNyc3ViaWQgfHwgJ18nIHx8IHIuc3JyZWxpZCksIGZh bHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFTiByLnNyc3Vic3RhdGUgSU4gKCdz JywgJ3InKSBUSEVOIHIuc3JzdWJsc24gRU5EKSBBUyByZW1vdGVfbHNuCisgICAgICAgICAgICAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgciwgcGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAg ICAgICAgIFdIRVJFIHIuc3JzdWJzdGF0ZSBJTiAoJ2YnLCAncycsICdyJykgQU5EIHMub2lkID0g ci5zcnN1YmlkIEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAg ICAgICAgICAgU0VMRUNUIHBnX3JlcGxpY2F0aW9uX29yaWdpbl9wcm9ncmVzcyhDT05DQVQoJ3Bn XycgfHwgcy5vaWQpLCBmYWxzZSkgQVMgcmVtb3RlX2xzbgorICAgICAgICAgICAgICAgRlJPTSBw Z19zdWJzY3JpcHRpb24gcworICAgICAgICAgICAgICAgV0hFUkUgcy5zdWJmYWlsb3ZlcgorICAg ICAgICAgICApKTsKKyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgMC8zMDAwMzg4Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L3N0 ZXA+CisgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgPHBhcmE+CisgICAg ICBOZXh0LCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgY2hlY2sgdGhhdCB0aGUgbGFzdC1yZWNlaXZl ZCBXQUwgbG9jYXRpb24KKyAgICAgIGlzIGFoZWFkIG9mIHRoZSByZXBsYXllZCBXQUwgbG9jYXRp b24gb24gdGhlIHN1YnNjcmliZXIgaWRlbnRpZmllZCBhYm92ZS4KKyAgICAgIElmIHRoZSBhYm92 ZSBTUUwgcmVzdWx0IHdhcyBOVUxMLCBpdCBtZWFucyB0aGUgc3Vic2NyaWJlciBoYXMgbm90IHll dAorICAgICAgcmVwbGF5ZWQgYW55IFdBTCwgc28gdGhlIHN0YW5kYnkgc2VydmVyIG11c3QgYmUg YWhlYWQgb2YgdGhlCisgICAgICBzdWJzY3JpYmVyLCBhbmQgdGhpcyBzdGVwIGNhbiBiZSBza2lw cGVkLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdGFuZGJ5PSMgU0VMRUNUIHBnX2xhc3Rfd2Fs X3JlY2VpdmVfbHNuKCkgPj0gJzAvMzAwMDM4OCc6OnBnX2xzbiBBUyBmYWlsb3Zlcl9yZWFkeTsK KyBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKzwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorICAgICA8L3N0ZXA+CisgICAgPC9zdWJzdGVwcz4KKyAgIDwvc3Rl cD4KKyAgPC9wcm9jZWR1cmU+CisKKyAgPHBhcmE+CisgICBJZiB0aGUgcmVzdWx0ICg8bGl0ZXJh bD5mYWlsb3Zlcl9yZWFkeTwvbGl0ZXJhbD4pIG9mIGJvdGggYWJvdmUgc3RlcHMgaXMKKyAgIHRy dWUsIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSBhYmxlIHRvIGNvbnRpbnVlIHdpdGhv dXQgZGF0YSBsb3NzLgorICA8L3BhcmE+CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJsb2dp Y2FsLXJlcGxpY2F0aW9uLXJvdy1maWx0ZXIiPgogICA8dGl0bGU+Um93IEZpbHRlcnM8L3RpdGxl PgogCi0tIAoyLjMwLjAud2luZG93cy4yCgo= --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0001-Add-the-failover-property-to-replication-slot.patch" Content-Description: v68-0001-Add-the-failover-property-to-replication-slot.patch Content-Disposition: attachment; filename="v68-0001-Add-the-failover-property-to-replication-slot.patch"; size=20855; creation-date="Thu, 25 Jan 2024 02:51:33 GMT"; modification-date="Thu, 25 Jan 2024 02:57:27 GMT" Content-Transfer-Encoding: base64 RnJvbSA2MGE4MTAxZDAzZmU1NzgwNDAyYjU2M2YxNjZhY2U2MTlkZGFkMzc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDI0IEphbiAyMDI0IDIwOjE0OjUyICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjggMS84XSBBZGQgdGhlIGZhaWxvdmVyIHByb3BlcnR5IHRvIHJlcGxpY2F0aW9uIHNsb3QuCgpU aGlzIGNvbW1pdCBhZGRzIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSB0byB0aGUgcmVwbGljYXRpb24g c2xvdC4gVGhlCmZhaWxvdmVyIHByb3BlcnR5IGluZGljYXRlcyB3aGV0aGVyIHRoZSBzbG90IHdp bGwgYmUgc3luY2VkIHRvIHRoZSBzdGFuZGJ5CnNlcnZlcnMsIGVuYWJsaW5nIHRoZSByZXN1bXB0 aW9uIG9mIGNvcnJlc3BvbmRpbmcgbG9naWNhbCByZXBsaWNhdGlvbgphZnRlciBmYWlsb3Zlci4g QnV0IG5vdGUgdGhhdCB0aGlzIGNvbW1pdCBkb2VzIG5vdCB5ZXQgaW5jbHVkZSB0aGUKY2FwYWJp bGl0eSB0byBhY3R1YWxseSBzeW5jIHRoZSByZXBsaWNhdGlvbiBzbG90OyB0aGUgc3Vic2VxdWVu dCBjb21taXQgd2lsbAphZGRyZXNzIHRoYXQuCgpJbiBhZGRpdGlvbiwgYSBuZXcgcGFyYW1ldGVy ICdmYWlsb3ZlcicgaXMgYWRkZWQgdG8gdGhlCnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QgZnVuY3Rpb24uCgpUaGUgdmFsdWUgb2YgdGhlICdmYWlsb3ZlcicgZmxhZyBpcyBkaXNw bGF5ZWQgYXMgcGFydCBvZgpwZ19yZXBsaWNhdGlvbl9zbG90cyB2aWV3LgotLS0KIGNvbnRyaWIv dGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dCAgfCA1OCArKysrKysrKysrKysrKysrKysr KysrKysKIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwgICAgICAgfCAxMyArKysr KysKIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgfCAxMSArKystLQog ZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICB8IDExICsrKysrCiBzcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsIHwgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90LmMgICAgICAgICAgIHwgIDggKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdGZ1bmNzLmMgICAgICB8IDE2ICsrKysrLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jICAgICAgfCAgNCArLQogc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyAgICAgICAg ICAgICAgICB8ICA1ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAgICAg IHwgIDYgKystCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICAgICAgICAgIHwgIDIg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICB8IDE0ICsrKy0tLQog c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oICAgICAgICAgICB8ICA4ICsrKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgfCAgNSArLQogMTUgZmlsZXMgY2hh bmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dCBiL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9zbG90Lm91dAppbmRleCA2M2E5OTQwZjczLi4yNjFkODg4NmQzIDEwMDY0 NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKKysrIGIvY29u dHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qub3V0CkBAIC00MDYsMyArNDA2LDYxIEBA IFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2NvcGllZF9zbG90Ml9ub3RlbXAnKTsK ICAKICgxIHJvdykKIAorLS0gVGVzdCBmYWlsb3ZlciBvcHRpb24gb2Ygc2xvdHMuCitTRUxFQ1Qg J2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJf dHJ1ZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UsIHRydWUpOworID9jb2x1 bW4/IAorLS0tLS0tLS0tLQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBn X2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2ZhbHNlX3Nsb3QnLCAn dGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworID9jb2x1bW4/IAorLS0tLS0t LS0tLQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcsICd0ZXN0X2RlY29k aW5nJywgZmFsc2UsIGZhbHNlKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSBy b3cpCisKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25f c2xvdCgncGh5c2ljYWxfc2xvdCcpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIGluaXQKKygx IHJvdykKKworU0VMRUNUIHNsb3RfbmFtZSwgc2xvdF90eXBlLCBmYWlsb3ZlciBGUk9NIHBnX3Jl cGxpY2F0aW9uX3Nsb3RzOworICAgICAgIHNsb3RfbmFtZSAgICAgICB8IHNsb3RfdHlwZSB8IGZh aWxvdmVyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IGZhaWxvdmVyX3RydWVfc2xvdCAgICB8IGxvZ2ljYWwgICB8IHQKKyBmYWlsb3Zlcl9mYWxzZV9z bG90ICAgfCBsb2dpY2FsICAgfCBmCisgZmFpbG92ZXJfZGVmYXVsdF9zbG90IHwgbG9naWNhbCAg IHwgZgorIHBoeXNpY2FsX3Nsb3QgICAgICAgICB8IHBoeXNpY2FsICB8IGYKKyg0IHJvd3MpCisK K1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcpOwor IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2Zh bHNlX3Nsb3QnKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwpkaWZmIC0tZ2l0 IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbCBiL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9zcWwvc2xvdC5zcWwKaW5kZXggMWFhMjdjNTY2Ny4uNDVhZWFlN2ZkNSAxMDA2NDQKLS0t IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbAorKysgYi9jb250cmliL3Rlc3Rf ZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCkBAIC0xNzYsMyArMTc2LDE2IEBAIE9SREVSIEJZIG8uc2xv dF9uYW1lLCBjLnNsb3RfbmFtZTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ29y aWdfc2xvdDInKTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2NvcGllZF9zbG90 Ml9ub19jaGFuZ2UnKTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2NvcGllZF9z bG90Ml9ub3RlbXAnKTsKKworLS0gVGVzdCBmYWlsb3ZlciBvcHRpb24gb2Ygc2xvdHMuCitTRUxF Q1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92 ZXJfdHJ1ZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UsIHRydWUpOworU0VM RUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxv dmVyX2ZhbHNlX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwor U0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2Zh aWxvdmVyX2RlZmF1bHRfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlKTsKK1NF TEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgncGh5 c2ljYWxfc2xvdCcpOworCitTRUxFQ1Qgc2xvdF9uYW1lLCBzbG90X3R5cGUsIGZhaWxvdmVyIEZS T00gcGdfcmVwbGljYXRpb25fc2xvdHM7CisKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcpOworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcpOworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90Jyk7CitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90KCdwaHlzaWNhbF9zbG90Jyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21s IGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCAyMTBjN2MwYjAyLi4wZWU3NjgzNWJjIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKQEAgLTI3NjU1LDcgKzI3NjU1LDcgQEAgcG9zdGdyZXM9IyBTRUxFQ1QgJzAvMCc6OnBn X2xzbiArIHBkLnNlZ21lbnRfbnVtYmVyICogcHMuc2V0dGluZzo6aW50ICsgOm9mZnNldAogICAg ICAgICA8aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+cGdfY3JlYXRlX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdDwvcHJpbWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxm dW5jdGlvbj5wZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9mdW5jdGlvbj4gKCA8 cGFyYW1ldGVyPnNsb3RfbmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwgPHBhcmFt ZXRlcj5wbHVnaW48L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gPG9wdGlvbmFsPiwgPHBh cmFtZXRlcj50ZW1wb3Jhcnk8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJh bWV0ZXI+dHdvcGhhc2U8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gPC9vcHRpb25h bD4gKQorICAgICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zbG90X25hbWU8L3BhcmFtZXRlcj4gPHR5cGU+bmFt ZTwvdHlwZT4sIDxwYXJhbWV0ZXI+cGx1Z2luPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+ IDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+dGVtcG9yYXJ5PC9wYXJhbWV0ZXI+IDx0eXBlPmJvb2xl YW48L3R5cGU+LCA8cGFyYW1ldGVyPnR3b3BoYXNlPC9wYXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48 L3R5cGU+LCA8cGFyYW1ldGVyPmZhaWxvdmVyPC9wYXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48L3R5 cGU+IDwvb3B0aW9uYWw+ICkKICAgICAgICAgPHJldHVybnZhbHVlPnJlY29yZDwvcmV0dXJudmFs dWU+CiAgICAgICAgICggPHBhcmFtZXRlcj5zbG90X25hbWU8L3BhcmFtZXRlcj4gPHR5cGU+bmFt ZTwvdHlwZT4sCiAgICAgICAgIDxwYXJhbWV0ZXI+bHNuPC9wYXJhbWV0ZXI+IDx0eXBlPnBnX2xz bjwvdHlwZT4gKQpAQCAtMjc2NzAsOCArMjc2NzAsMTMgQEAgcG9zdGdyZXM9IyBTRUxFQ1QgJzAv MCc6OnBnX2xzbiArIHBkLnNlZ21lbnRfbnVtYmVyICogcHMuc2V0dGluZzo6aW50ICsgOm9mZnNl dAogICAgICAgICByZWxlYXNlZCB1cG9uIGFueSBlcnJvci4gVGhlIG9wdGlvbmFsIGZvdXJ0aCBw YXJhbWV0ZXIsCiAgICAgICAgIDxwYXJhbWV0ZXI+dHdvcGhhc2U8L3BhcmFtZXRlcj4sIHdoZW4g c2V0IHRvIHRydWUsIHNwZWNpZmllcwogICAgICAgICB0aGF0IHRoZSBkZWNvZGluZyBvZiBwcmVw YXJlZCB0cmFuc2FjdGlvbnMgaXMgZW5hYmxlZCBmb3IgdGhpcwotICAgICAgICBzbG90LiBBIGNh bGwgdG8gdGhpcyBmdW5jdGlvbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIHRoZSByZXBsaWNhdGlv bgotICAgICAgICBwcm90b2NvbCBjb21tYW5kIDxsaXRlcmFsPkNSRUFURV9SRVBMSUNBVElPTl9T TE9UIC4uLiBMT0dJQ0FMPC9saXRlcmFsPi4KKyAgICAgICAgc2xvdC4gVGhlIG9wdGlvbmFsIGZp ZnRoIHBhcmFtZXRlciwKKyAgICAgICAgPHBhcmFtZXRlcj5mYWlsb3ZlcjwvcGFyYW1ldGVyPiwg d2hlbiBzZXQgdG8gdHJ1ZSwKKyAgICAgICAgc3BlY2lmaWVzIHRoYXQgdGhpcyBzbG90IGlzIGVu YWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZQorICAgICAgICBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2lj YWwgcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0ZXIKKyAgICAgICAgZmFpbG92ZXIuIEEg Y2FsbCB0byB0aGlzIGZ1bmN0aW9uIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMKKyAgICAgICAgdGhl IHJlcGxpY2F0aW9uIHByb3RvY29sIGNvbW1hbmQKKyAgICAgICAgPGxpdGVyYWw+Q1JFQVRFX1JF UExJQ0FUSU9OX1NMT1QgLi4uIExPR0lDQUw8L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmll d3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCA3MmQwMWZjNjI0 Li44OGZlNGI2MzQxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCkBAIC0yNTU1LDYgKzI1NTUsMTcg QEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRfeGFjdHMg cHB4CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmZhaWxvdmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhpcyBpcyBhIGxvZ2ljYWwgc2xvdCBlbmFi bGVkIHRvIGJlIHN5bmNlZCB0byB0aGUgc3RhbmRieXMKKyAgICAgICBzbyB0aGF0IGxvZ2ljYWwg cmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgZnJvbSB0aGUgbmV3IHByaW1hcnkKKyAgICAgICBh ZnRlciBmYWlsb3Zlci4gQWx3YXlzIGZhbHNlIGZvciBwaHlzaWNhbCBzbG90cy4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAg IDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlv bnMuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAppbmRleCBm MzE1ZmVjZjE4Li4zNDZjZmI5OGEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV9mdW5jdGlvbnMuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0 aW9ucy5zcWwKQEAgLTQ3OSw2ICs0NzksNyBAQCBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBw Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KAogICAgIElOIHNsb3RfbmFtZSBuYW1l LCBJTiBwbHVnaW4gbmFtZSwKICAgICBJTiB0ZW1wb3JhcnkgYm9vbGVhbiBERUZBVUxUIGZhbHNl LAogICAgIElOIHR3b3BoYXNlIGJvb2xlYW4gREVGQVVMVCBmYWxzZSwKKyAgICBJTiBmYWlsb3Zl ciBib29sZWFuIERFRkFVTFQgZmFsc2UsCiAgICAgT1VUIHNsb3RfbmFtZSBuYW1lLCBPVVQgbHNu IHBnX2xzbikKIFJFVFVSTlMgUkVDT1JECiBMQU5HVUFHRSBJTlRFUk5BTApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU0M2UzNmY1YWMuLmQwZjcxMWE2MTkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwMjMsNyArMTAyMyw4IEBAIENSRUFURSBW SUVXIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgICAgICBMLndhbF9zdGF0dXMsCiAg ICAgICAgICAgICBMLnNhZmVfd2FsX3NpemUsCiAgICAgICAgICAgICBMLnR3b19waGFzZSwKLSAg ICAgICAgICAgIEwuY29uZmxpY3RfcmVhc29uCisgICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNv biwKKyAgICAgICAgICAgIEwuZmFpbG92ZXIKICAgICBGUk9NIHBnX2dldF9yZXBsaWNhdGlvbl9z bG90cygpIEFTIEwKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBEIE9OIChMLmRh dG9pZCA9IEQub2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDUyZGE2OTRjNzkuLjAy YTE0ZWMyMTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTkwLDcgKzkwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90T25EaXNrCiAJc2l6ZW9mKFJlcGxpY2F0aW9uU2xvdE9u RGlzaykgLSBSZXBsaWNhdGlvblNsb3RPbkRpc2tDb25zdGFudFNpemUKIAogI2RlZmluZSBTTE9U X01BR0lDCQkweDEwNTFDQTEJLyogZm9ybWF0IGlkZW50aWZpZXIgKi8KLSNkZWZpbmUgU0xPVF9W RVJTSU9OCTMJCS8qIHZlcnNpb24gZm9yIG5ldyBmaWxlcyAqLworI2RlZmluZSBTTE9UX1ZFUlNJ T04JNAkJLyogdmVyc2lvbiBmb3IgbmV3IGZpbGVzICovCiAKIC8qIENvbnRyb2wgYXJyYXkgZm9y IHJlcGxpY2F0aW9uIHNsb3QgbWFuYWdlbWVudCAqLwogUmVwbGljYXRpb25TbG90Q3RsRGF0YSAq UmVwbGljYXRpb25TbG90Q3RsID0gTlVMTDsKQEAgLTI0OCwxMCArMjQ4LDEzIEBAIFJlcGxpY2F0 aW9uU2xvdFZhbGlkYXRlTmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQgZWxldmVsKQogICogICAg IGR1cmluZyBnZXR0aW5nIGNoYW5nZXMsIGlmIHRoZSB0d29fcGhhc2Ugb3B0aW9uIGlzIGVuYWJs ZWQgaXQgY2FuIHNraXAKICAqICAgICBwcmVwYXJlIGJlY2F1c2UgYnkgdGhhdCB0aW1lIHN0YXJ0 IGRlY29kaW5nIHBvaW50IGhhcyBiZWVuIG1vdmVkLiBTbyB0aGUKICAqICAgICB1c2VyIHdpbGwg b25seSBnZXQgY29tbWl0IHByZXBhcmVkLgorICogZmFpbG92ZXI6IElmIGVuYWJsZWQsIGFsbG93 cyB0aGUgc2xvdCB0byBiZSBzeW5jZWQgdG8gc3RhbmRieXMgc28KKyAqICAgICB0aGF0IGxvZ2lj YWwgcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCiAgKi8KIHZvaWQK IFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmlj LAotCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LCBib29sIHR3 b19waGFzZSkKKwkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwK KwkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlcikKIHsKIAlSZXBsaWNhdGlvblNs b3QgKnNsb3QgPSBOVUxMOwogCWludAkJCWk7CkBAIC0zMTEsNiArMzE0LDcgQEAgUmVwbGljYXRp b25TbG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAJc2xvdC0+ ZGF0YS5wZXJzaXN0ZW5jeSA9IHBlcnNpc3RlbmN5OwogCXNsb3QtPmRhdGEudHdvX3BoYXNlID0g dHdvX3BoYXNlOwogCXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxpZFhMb2dSZWNQdHI7 CisJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOwogCiAJLyogYW5kIHRoZW4gZGF0YSBv bmx5IHByZXNlbnQgaW4gc2hhcmVkIG1lbW9yeSAqLwogCXNsb3QtPmp1c3RfZGlydGllZCA9IGZh bHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBjYWQzNWRjZTdmLi5lYjY4 NTA4OWIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtNDIsNyArNDIsOCBA QCBjcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBib29sIGltbWVk aWF0ZWx5X3Jlc2VydmUsCiAKIAkvKiBhY3F1aXJlIHJlcGxpY2F0aW9uIHNsb3QsIHRoaXMgd2ls bCBjaGVjayBmb3IgY29uZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUo bmFtZSwgZmFsc2UsCi0JCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJ U1RFTlQsIGZhbHNlKTsKKwkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVS U0lTVEVOVCwgZmFsc2UsCisJCQkJCQkgIGZhbHNlKTsKIAogCWlmIChpbW1lZGlhdGVseV9yZXNl cnZlKQogCXsKQEAgLTExNyw2ICsxMTgsNyBAQCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRp b25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIHZvaWQKIGNyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2luLAogCQkJCQkJCQlib29sIHRl bXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCWJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJ CVhMb2dSZWNQdHIgcmVzdGFydF9sc24sCiAJCQkJCQkJCWJvb2wgZmluZF9zdGFydHBvaW50KQog ewpAQCAtMTMzLDcgKzEzNSw4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hh ciAqbmFtZSwgY2hhciAqcGx1Z2luLAogCSAqIGVycm9yIGFzIHdlbGwuCiAJICovCiAJUmVwbGlj YXRpb25TbG90Q3JlYXRlKG5hbWUsIHRydWUsCi0JCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBP UkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlKTsKKwkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNf VEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2UsCisJCQkJCQkgIGZhaWxvdmVyKTsK IAogCS8qCiAJICogQ3JlYXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0 IHBvaW50IG9yLCBpZiB3ZSBkb24ndApAQCAtMTcxLDYgKzE3NCw3IEBAIHBnX2NyZWF0ZV9sb2dp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAlOYW1lCQlwbHVnaW4gPSBQ R19HRVRBUkdfTkFNRSgxKTsKIAlib29sCQl0ZW1wb3JhcnkgPSBQR19HRVRBUkdfQk9PTCgyKTsK IAlib29sCQl0d29fcGhhc2UgPSBQR19HRVRBUkdfQk9PTCgzKTsKKwlib29sCQlmYWlsb3ZlciA9 IFBHX0dFVEFSR19CT09MKDQpOwogCURhdHVtCQlyZXN1bHQ7CiAJVHVwbGVEZXNjCXR1cGRlc2M7 CiAJSGVhcFR1cGxlCXR1cGxlOwpAQCAtMTg4LDYgKzE5Miw3IEBAIHBnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCU5hbWVTdHIoKnBs dWdpbiksCiAJCQkJCQkJCQl0ZW1wb3JhcnksCiAJCQkJCQkJCQl0d29fcGhhc2UsCisJCQkJCQkJ CQlmYWlsb3ZlciwKIAkJCQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCQkJdHJ1ZSk7 CiAKQEAgLTIzMiw3ICsyMzcsNyBAQCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJ T05fQVJHUykKIERhdHVtCiBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJH UykKIHsKLSNkZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTUKKyNkZWZpbmUg UEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTYKIAlSZXR1cm5TZXRJbmZvICpyc2luZm8g PSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJWExvZ1JlY1B0cgljdXJy bHNuOwogCWludAkJCXNsb3RubzsKQEAgLTQyNiw2ICs0MzEsOCBAQCBwZ19nZXRfcmVwbGljYXRp b25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCX0KIAkJfQogCisJCXZhbHVlc1tpKytdID0g Qm9vbEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0YS5mYWlsb3Zlcik7CisKIAkJQXNzZXJ0KGkg PT0gUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMpOwogCiAJCXR1cGxlc3RvcmVfcHV0dmFs dWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsCkBAIC02OTMsNiArNzAwLDcg QEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxv Z2ljYWxfc2xvdCkKIAlYTG9nUmVjUHRyCXNyY19yZXN0YXJ0X2xzbjsKIAlib29sCQlzcmNfaXNs b2dpY2FsOwogCWJvb2wJCXRlbXBvcmFyeTsKKwlib29sCQlmYWlsb3ZlcjsKIAljaGFyCSAgICpw bHVnaW47CiAJRGF0dW0JCXZhbHVlc1syXTsKIAlib29sCQludWxsc1syXTsKQEAgLTc0OCw2ICs3 NTYsNyBAQCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJv b2wgbG9naWNhbF9zbG90KQogCXNyY19pc2xvZ2ljYWwgPSBTbG90SXNMb2dpY2FsKCZmaXJzdF9z bG90X2NvbnRlbnRzKTsKIAlzcmNfcmVzdGFydF9sc24gPSBmaXJzdF9zbG90X2NvbnRlbnRzLmRh dGEucmVzdGFydF9sc247CiAJdGVtcG9yYXJ5ID0gKGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5w ZXJzaXN0ZW5jeSA9PSBSU19URU1QT1JBUlkpOworCWZhaWxvdmVyID0gZmlyc3Rfc2xvdF9jb250 ZW50cy5kYXRhLmZhaWxvdmVyOwogCXBsdWdpbiA9IGxvZ2ljYWxfc2xvdCA/IE5hbWVTdHIoZmly c3Rfc2xvdF9jb250ZW50cy5kYXRhLnBsdWdpbikgOiBOVUxMOwogCiAJLyogQ2hlY2sgdHlwZSBv ZiByZXBsaWNhdGlvbiBzbG90ICovCkBAIC03ODcsNiArNzk2LDcgQEAgY29weV9yZXBsaWNhdGlv bl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAkJCQkJ CQkJCQlwbHVnaW4sCiAJCQkJCQkJCQkJdGVtcG9yYXJ5LAogCQkJCQkJCQkJCWZhbHNlLAorCQkJ CQkJCQkJCWZhaWxvdmVyLAogCQkJCQkJCQkJCXNyY19yZXN0YXJ0X2xzbiwKIAkJCQkJCQkJCQlm YWxzZSk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCAwODcwMzFlOWRj Li5hYTgwZjNkZTIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5k ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtMTIxMiw3 ICsxMjEyLDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENt ZCAqY21kKQogCXsKIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNl LAogCQkJCQkJCSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5U LAotCQkJCQkJCSAgZmFsc2UpOworCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAogCQlpZiAocmVz ZXJ2ZV93YWwpCiAJCXsKQEAgLTEyNDMsNyArMTI0Myw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xv dChDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAkJICovCiAJCVJlcGxpY2F0aW9uU2xv dENyZWF0ZShjbWQtPnNsb3RuYW1lLCB0cnVlLAogCQkJCQkJCSAgY21kLT50ZW1wb3JhcnkgPyBS U19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsCi0JCQkJCQkJICB0d29fcGhhc2UpOworCQkJCQkJ CSAgdHdvX3BoYXNlLCBmYWxzZSk7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBjaGVjayBlYXJs eSBzbyB0aGF0IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ191cGdyYWRlL2luZm8uYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKaW5kZXgg NzRlMDJiM2Y4Mi4uMTgzYzJmODRlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2lu Zm8uYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCkBAIC02NjYsNyArNjY2LDcgQEAg Z2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBs aXZlX2NoZWNrKQogCSAqIHN0YXJ0ZWQgYW5kIHN0b3BwZWQgc2V2ZXJhbCB0aW1lcyBjYXVzaW5n IGFueSB0ZW1wb3Jhcnkgc2xvdHMgdG8gYmUKIAkgKiByZW1vdmVkLgogCSAqLwotCXJlcyA9IGV4 ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFz ZSwgIgorCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9uYW1lLCBw bHVnaW4sIHR3b19waGFzZSwgZmFpbG92ZXIsICIKIAkJCQkJCQkiJXMgYXMgY2F1Z2h0X3VwLCBj b25mbGljdF9yZWFzb24gSVMgTk9UIE5VTEwgYXMgaW52YWxpZCAiCiAJCQkJCQkJIkZST00gcGdf Y2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyAiCiAJCQkJCQkJIldIRVJFIHNsb3RfdHlwZSA9 ICdsb2dpY2FsJyBBTkQgIgpAQCAtNjg0LDYgKzY4NCw3IEBAIGdldF9vbGRfY2x1c3Rlcl9sb2dp Y2FsX3Nsb3RfaW5mb3MoRGJJbmZvICpkYmluZm8sIGJvb2wgbGl2ZV9jaGVjaykKIAkJaW50CQkJ aV9zbG90bmFtZTsKIAkJaW50CQkJaV9wbHVnaW47CiAJCWludAkJCWlfdHdvcGhhc2U7CisJCWlu dAkJCWlfZmFpbG92ZXI7CiAJCWludAkJCWlfY2F1Z2h0X3VwOwogCQlpbnQJCQlpX2ludmFsaWQ7 CiAKQEAgLTY5Miw2ICs2OTMsNyBAQCBnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9z KERiSW5mbyAqZGJpbmZvLCBib29sIGxpdmVfY2hlY2spCiAJCWlfc2xvdG5hbWUgPSBQUWZudW1i ZXIocmVzLCAic2xvdF9uYW1lIik7CiAJCWlfcGx1Z2luID0gUFFmbnVtYmVyKHJlcywgInBsdWdp biIpOwogCQlpX3R3b3BoYXNlID0gUFFmbnVtYmVyKHJlcywgInR3b19waGFzZSIpOworCQlpX2Zh aWxvdmVyID0gUFFmbnVtYmVyKHJlcywgImZhaWxvdmVyIik7CiAJCWlfY2F1Z2h0X3VwID0gUFFm bnVtYmVyKHJlcywgImNhdWdodF91cCIpOwogCQlpX2ludmFsaWQgPSBQUWZudW1iZXIocmVzLCAi aW52YWxpZCIpOwogCkBAIC03MDIsNiArNzA0LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxf c2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCQkJY3Vyci0+c2xv dG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfc2xvdG5hbWUpKTsK IAkJCWN1cnItPnBsdWdpbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9w bHVnaW4pKTsKIAkJCWN1cnItPnR3b19waGFzZSA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNs b3RudW0sIGlfdHdvcGhhc2UpLCAidCIpID09IDApOworCQkJY3Vyci0+ZmFpbG92ZXIgPSAoc3Ry Y21wKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBpX2ZhaWxvdmVyKSwgInQiKSA9PSAwKTsKIAkJ CWN1cnItPmNhdWdodF91cCA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfY2F1 Z2h0X3VwKSwgInQiKSA9PSAwKTsKIAkJCWN1cnItPmludmFsaWQgPSAoc3RyY21wKFBRZ2V0dmFs dWUocmVzLCBzbG90bnVtLCBpX2ludmFsaWQpLCAidCIpID09IDApOwogCQl9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuYwppbmRleCAxNGEzNmYwNTAzLi4xMGM5NGE2YzFmIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191 cGdyYWRlLmMKQEAgLTkxNiw4ICs5MTYsMTAgQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdHModm9pZCkKIAkJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90X2luZm8t PnNsb3RuYW1lLCBjb25uKTsKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKIAkJ CWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90X2luZm8tPnBsdWdpbiwgY29ubik7 Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgZmFsc2UsICVzKTsiLAotCQkJCQkJCSAg c2xvdF9pbmZvLT50d29fcGhhc2UgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCQkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIsIGZhbHNlLCAlcywgJXMpOyIsCisJCQkJCQkJICBzbG90X2luZm8t PnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxzZSIsCisJCQkJCQkJICBzbG90X2luZm8tPmZhaWxv dmVyID8gInRydWUiIDogImZhbHNlIik7CiAKIAkJCVBRY2xlYXIoZXhlY3V0ZVF1ZXJ5T3JEaWUo Y29ubiwgIiVzIiwgcXVlcnktPmRhdGEpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdy YWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXgg YTFkMDhjM2RhYi4uZDlhODQ4Y2JmZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xNjAs NiArMTYwLDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQl0d29fcGhhc2U7CQkvKiBjYW4gdGhl IHNsb3QgZGVjb2RlIDJQQz8gKi8KIAlib29sCQljYXVnaHRfdXA7CQkvKiBoYXMgdGhlIHNsb3Qg Y2F1Z2h0IHVwIHRvIGxhdGVzdCBjaGFuZ2VzPyAqLwogCWJvb2wJCWludmFsaWQ7CQkvKiBpZiB0 cnVlLCB0aGUgc2xvdCBpcyB1bnVzYWJsZSAqLworCWJvb2wJCWZhaWxvdmVyOwkJLyogaXMgdGhl IHNsb3QgZGVzaWduYXRlZCB0byBiZSBzeW5jZWQgdG8gdGhlCisJCQkJCQkJCSAqIHBoeXNpY2Fs IHN0YW5kYnk/ICovCiB9IExvZ2ljYWxTbG90SW5mbzsKIAogdHlwZWRlZiBzdHJ1Y3QKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CmluZGV4IGFkNzRlMDdkYmIuLmU2ZTRiYmRmYjkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTExMjMsMTcgKzExMTIzLDE3IEBACiAgIHByb25hbWUgPT4gJ3Bn X2dldF9yZXBsaWNhdGlvbl9zbG90cycsIHByb3Jvd3MgPT4gJzEwJywgcHJvaXNzdHJpY3QgPT4g J2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUg PT4gJ3JlY29yZCcsCiAgIHByb2FyZ3R5cGVzID0+ICcnLAotICBwcm9hbGxhcmd0eXBlcyA9PiAn e25hbWUsbmFtZSx0ZXh0LG9pZCxib29sLGJvb2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24s dGV4dCxpbnQ4LGJvb2wsdGV4dH0nLAotICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbixz bG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWluLGNhdGFsb2df eG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMsc2FmZV93YWxf c2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVhc29ufScsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7 bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0 ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBs dWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWluLGNh dGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMsc2Fm ZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVhc29uLGZhaWxvdmVyfScsCiAgIHByb3Ny YyA9PiAncGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzJyB9LAogeyBvaWQgPT4gJzM3ODYnLCBkZXNj ciA9PiAnc2V0IHVwIGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKICAgcHJvbmFtZSA9PiAn cGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCcsIHByb3ZvbGF0aWxlID0+ICd2JywK ICAgcHJvcGFyYWxsZWwgPT4gJ3UnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAotICBwcm9hcmd0 eXBlcyA9PiAnbmFtZSBuYW1lIGJvb2wgYm9vbCcsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFt ZSxuYW1lLGJvb2wsYm9vbCxuYW1lLHBnX2xzbn0nLAotICBwcm9hcmdtb2RlcyA9PiAne2ksaSxp LGksbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbix0ZW1wb3Jhcnks dHdvcGhhc2Usc2xvdF9uYW1lLGxzbn0nLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSBuYW1lIGJv b2wgYm9vbCBib29sJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsYm9vbCxib29s LGJvb2wsbmFtZSxwZ19sc259JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLGksaSxpLGksbyxvfScs CisgIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbix0ZW1wb3JhcnksdHdvcGhhc2Us ZmFpbG92ZXIsc2xvdF9uYW1lLGxzbn0nLAogICBwcm9zcmMgPT4gJ3BnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QnIH0sCiB7IG9pZCA9PiAnNDIyMicsCiAgIGRlc2NyID0+ICdjb3B5 IGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90LCBjaGFuZ2luZyB0ZW1wb3JhbGl0eSBhbmQgcGx1 Z2luJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA5ZTM5YWFmMzAzLi5mMjUwMWJlNTUzIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0xMTEsNiArMTExLDEyIEBAIHR5cGVkZWYgc3RydWN0 IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRhCiAKIAkvKiBwbHVnaW4gbmFtZSAqLwogCU5h bWVEYXRhCXBsdWdpbjsKKworCS8qCisJICogSXMgdGhpcyBhIGZhaWxvdmVyIHNsb3QgKHN5bmMg Y2FuZGlkYXRlIGZvciBzdGFuZGJ5cyk/IE9ubHkKKwkgKiByZWxldmFudCBmb3IgbG9naWNhbCBz bG90cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuCisJICovCisJYm9vbAkJZmFpbG92ZXI7CiB9IFJl cGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRhOwogCiAvKgpAQCAtMjE4LDcgKzIyNCw3IEBAIGV4 dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdHNTaG1lbUluaXQodm9pZCk7CiAvKiBtYW5hZ2VtZW50 IG9mIGluZGl2aWR1YWwgc2xvdHMgKi8KIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdENyZWF0 ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkJCQkgIFJlcGxpY2F0 aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNl KTsKKwkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CiBleHRlcm4gdm9p ZCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25T bG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKaW5kZXggNTVmMmU5NTM1Mi4uNTc4ODRkM2ZlYyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0NzMsOCArMTQ3Myw5IEBAIHBnX3JlcGxpY2F0aW9u X3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUsCiAgICAgbC53YWxfc3RhdHVzLAogICAgIGwuc2Fm ZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKLSAgICBsLmNvbmZsaWN0X3JlYXNvbgotICAg RlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xv dF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRh bG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBz YWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbikKKyAgICBsLmNvbmZsaWN0 X3JlYXNvbiwKKyAgICBsLmZhaWxvdmVyCisgICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xv dHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBh Y3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZp cm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29u ZmxpY3RfcmVhc29uLCBmYWlsb3ZlcikKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04g KChsLmRhdG9pZCA9IGQub2lkKSkpOwogcGdfcm9sZXN8IFNFTEVDVCBwZ19hdXRoaWQucm9sbmFt ZSwKICAgICBwZ19hdXRoaWQucm9sc3VwZXIsCi0tIAoyLjMwLjAud2luZG93cy4yCgo= --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0002-Allow-setting-failover-property-in-the-replicati.patch" Content-Description: v68-0002-Allow-setting-failover-property-in-the-replicati.patch Content-Disposition: attachment; filename="v68-0002-Allow-setting-failover-property-in-the-replicati.patch"; size=20132; creation-date="Thu, 25 Jan 2024 02:51:34 GMT"; modification-date="Thu, 25 Jan 2024 02:57:27 GMT" Content-Transfer-Encoding: base64 RnJvbSAwOTBiZTNlY2FlYTgzYzU5YzkxOWVmNTZiMGZhNTg3YzRkMTk1MjdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDI0IEphbiAyMDI0IDIwOjA0OjE4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjggMi84XSBBbGxvdyBzZXR0aW5nIGZhaWxvdmVyIHByb3BlcnR5IGluIHRoZSByZXBsaWNhdGlv bgogY29tbWFuZC4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgYSBuZXcgcmVwbGljYXRpb24gY29t bWFuZCBjYWxsZWQgQUxURVJfUkVQTElDQVRJT05fU0xPVAphbmQgYSBjb3JyZXNwb25kaW5nIHdh bHJlY2VpdmVyIEFQSSBmdW5jdGlvbiBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdC4KQWRkaXRpb25h bGx5LCB0aGUgQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QgY29tbWFuZCBoYXMgYmVlbiBleHRlbmRl ZCB0byBzdXBwb3J0CnRoZSBmYWlsb3ZlciBvcHRpb24uCgpUaGVzZSBuZXcgYWRkaXRpb25zIGFs bG93IHRoZSBtb2RpZmljYXRpb24gb2YgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIGEKcmVwbGlj YXRpb24gc2xvdCBvbiB0aGUgcHVibGlzaGVyLiBBIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwgbWFr ZSB1c2Ugb2YgdGhlc2UKY29tbWFuZHMgaW4gc3Vic2NyaXB0aW9uIGNvbW1hbmRzLgotLS0KIGRv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8IDUyICsrKysrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8 ICAyICstCiAuLi4vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAz OCArKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5j LmMgICB8ICAxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55ICAgICAgICAg ICB8IDIwICsrKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwgICAg ICAgIHwgIDIgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAg IHwgMjUgKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgICAg ICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAg ICAgfCA2MiArKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rlcy9yZXBsbm9kZXMu aCAgICAgICAgICAgICAgICAgfCAxMiArKysrCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90 LmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNl aXZlci5oICAgICAgICAgfCAxOCArKysrKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgICAgICAgICB8ICAyICsKIDEzIGZpbGVzIGNoYW5nZWQsIDIyNSBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wu c2dtbCBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IDZjM2U4YTYzMWQuLmRjMTBi MTk1NmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0yMDYwLDYgKzIwNjAsMTcgQEAgcHNxbCAiZGJuYW1l PXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllfU1lTVEVNOyIKICAg ICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPkZBSUxP VkVSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxl PiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8g dGhlIHN0YW5kYnlzCisgICAgICAgICAgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBi ZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIGZhbHNl LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlz dGVudHJ5PgogICAgICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgICAgIDxwYXJhPgpAQCAtMjEyNCw2 ICsyMTM1LDQ3IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIg LWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1yZXBsaWNhdGlvbi1hbHRlci1y ZXBsaWNhdGlvbi1zbG90IiB4cmVmbGFiZWw9IkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiPgorICAg ICA8dGVybT48bGl0ZXJhbD5BTFRFUl9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApCisg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Q8L3ByaW1hcnk+ PC9pbmRleHRlcm0+CisgICAgIDwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4KKyAg ICAgICBTZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzIi8+IGZv ciBtb3JlIGFib3V0CisgICAgICAgcmVwbGljYXRpb24gc2xvdHMuIFRoaXMgY29tbWFuZCBpcyBj dXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIGxvZ2ljYWwKKyAgICAgICByZXBsaWNhdGlvbiBz bG90cy4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGFsdGVyLiBNdXN0 IGJlIGEgdmFsaWQgcmVwbGljYXRpb24gc2xvdAorICAgICAgICAgIG5hbWUgKHNlZSA8eHJlZiBs aW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tc2xvdHMtbWFuaXB1bGF0aW9uIi8+KS4KKyAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgICA8cGFyYT5UaGUgZm9sbG93aW5nIG9w dGlvbnMgYXJlIHN1cHBvcnRlZDo8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUgc3RhbmRi eXMKKyAgICAgICAgICBzbyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQg YWZ0ZXIgZmFpbG92ZXIuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0icHJv dG9jb2wtcmVwbGljYXRpb24tcmVhZC1yZXBsaWNhdGlvbi1zbG90Ij4KICAgICAgPHRlcm0+PGxp dGVyYWw+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgIDxpbmRleHRlcm0+PHBy aW1hcnk+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDc1ZTZjZDhhZTMuLmVhZjJlYzNi MzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTgwNyw3ICs4 MDcsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCQkJCQl0d29waGFzZV9lbmFibGVkID0gdHJ1ZTsKIAogCQkJ CXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBmYWxzZSwgdHdvcGhh c2VfZW5hYmxlZCwKLQkJCQkJCQkJICAgQ1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKKwkJ CQkJCQkJICAgZmFsc2UsIENSU19OT0VYUE9SVF9TTkFQU0hPVCwgTlVMTCk7CiAKIAkJCQlpZiAo dHdvcGhhc2VfZW5hYmxlZCkKIAkJCQkJVXBkYXRlVHdvUGhhc2VTdGF0ZShzdWJpZCwgTE9HSUNB TFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVEKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMKaW5kZXgg Nzc2NjkwNzRlOC4uMjBkNTEyOGMwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMKQEAgLTczLDgg KzczLDExIEBAIHN0YXRpYyBjaGFyICpsaWJwcXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNv bm4gKmNvbm4sCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCSAgYm9v bCB0ZW1wb3JhcnksCiAJCQkJCQkJCSAgYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCSAgYm9vbCBm YWlsb3ZlciwKIAkJCQkJCQkJICBDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCiAJ CQkJCQkJCSAgWExvZ1JlY1B0ciAqbHNuKTsKK3N0YXRpYyB2b2lkIGxpYnBxcmN2X2FsdGVyX3Ns b3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJ Ym9vbCBmYWlsb3Zlcik7CiBzdGF0aWMgcGlkX3QgbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkKFdh bFJlY2VpdmVyQ29ubiAqY29ubik7CiBzdGF0aWMgV2FsUmN2RXhlY1Jlc3VsdCAqbGlicHFyY3Zf ZXhlYyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkgICBjb25zdCBjaGFyICpxdWVy eSwKQEAgLTk1LDYgKzk4LDcgQEAgc3RhdGljIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdh bFJlY2VpdmVyRnVuY3Rpb25zID0gewogCS53YWxyY3ZfcmVjZWl2ZSA9IGxpYnBxcmN2X3JlY2Vp dmUsCiAJLndhbHJjdl9zZW5kID0gbGlicHFyY3Zfc2VuZCwKIAkud2FscmN2X2NyZWF0ZV9zbG90 ID0gbGlicHFyY3ZfY3JlYXRlX3Nsb3QsCisJLndhbHJjdl9hbHRlcl9zbG90ID0gbGlicHFyY3Zf YWx0ZXJfc2xvdCwKIAkud2FscmN2X2dldF9iYWNrZW5kX3BpZCA9IGxpYnBxcmN2X2dldF9iYWNr ZW5kX3BpZCwKIAkud2FscmN2X2V4ZWMgPSBsaWJwcXJjdl9leGVjLAogCS53YWxyY3ZfZGlzY29u bmVjdCA9IGxpYnBxcmN2X2Rpc2Nvbm5lY3QKQEAgLTkzOCw4ICs5NDIsOCBAQCBsaWJwcXJjdl9z ZW5kKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgbmJ5dGVz KQogICovCiBzdGF0aWMgY2hhciAqCiBsaWJwcXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAotCQkJCQkgYm9vbCB0ZW1wb3JhcnksIGJv b2wgdHdvX3BoYXNlLCBDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCi0JCQkJCSBY TG9nUmVjUHRyICpsc24pCisJCQkJCSBib29sIHRlbXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsIGJv b2wgZmFpbG92ZXIsCisJCQkJCSBDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sIFhM b2dSZWNQdHIgKmxzbikKIHsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJU3RyaW5nSW5mb0RhdGEgY21k OwpAQCAtOTY4LDcgKzk3Miw4IEBAIGxpYnBxcmN2X2NyZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29u biAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJCQllbHNlCiAJCQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoJmNtZCwgJyAnKTsKIAkJfQotCisJCWlmIChmYWlsb3ZlcikKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmNtZCwgIkZBSUxPVkVSLCAiKTsKIAkJaWYgKHVzZV9uZXdfb3B0aW9u c19zeW50YXgpCiAJCXsKIAkJCXN3aXRjaCAoc25hcHNob3RfYWN0aW9uKQpAQCAtMTAzNyw2ICsx MDQyLDMzIEBAIGxpYnBxcmN2X2NyZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29u c3QgY2hhciAqc2xvdG5hbWUsCiAJcmV0dXJuIHNuYXBzaG90OwogfQogCisvKgorICogQ2hhbmdl IHRoZSBkZWZpbml0aW9uIG9mIHRoZSByZXBsaWNhdGlvbiBzbG90LgorICovCitzdGF0aWMgdm9p ZAorbGlicHFyY3ZfYWx0ZXJfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KnNsb3RuYW1lLAorCQkJCQlib29sIGZhaWxvdmVyKQoreworCVN0cmluZ0luZm9EYXRhIGNtZDsK KwlQR3Jlc3VsdCAgICpyZXM7CisKKwlpbml0U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJp bmdJbmZvKCZjbWQsICJBTFRFUl9SRVBMSUNBVElPTl9TTE9UICVzICggRkFJTE9WRVIgJXMgKSIs CisJCQkJCSBxdW90ZV9pZGVudGlmaWVyKHNsb3RuYW1lKSwKKwkJCQkJIGZhaWxvdmVyID8gInRy dWUiIDogImZhbHNlIik7CisKKwlyZXMgPSBsaWJwcXJjdl9QUWV4ZWMoY29ubi0+c3RyZWFtQ29u biwgY21kLmRhdGEpOworCXBmcmVlKGNtZC5kYXRhKTsKKworCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhbHRl ciByZXBsaWNhdGlvbiBzbG90IFwiJXNcIjogJXMiLAorCQkJCQkJc2xvdG5hbWUsIHBjaG9tcChQ UWVycm9yTWVzc2FnZShjb25uLT5zdHJlYW1Db25uKSkpKSk7CisKKwlQUWNsZWFyKHJlcyk7Cit9 CisKIC8qCiAgKiBSZXR1cm4gUElEIG9mIHJlbW90ZSBiYWNrZW5kIHByb2Nlc3MuCiAgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCmluZGV4IDA2ZDViM2Rm MzMuLjQyMDdiOTM1NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJs ZXN5bmMuYwpAQCAtMTQzMCw2ICsxNDMwLDcgQEAgTG9naWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhM b2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcykKIAkgKi8KIAl3YWxyY3ZfY3JlYXRlX3Nsb3QoTG9n UmVwV29ya2VyV2FsUmN2Q29ubiwKIAkJCQkJICAgc2xvdG5hbWUsIGZhbHNlIC8qIHBlcm1hbmVu dCAqLyAsIGZhbHNlIC8qIHR3b19waGFzZSAqLyAsCisJCQkJCSAgIGZhbHNlLAogCQkJCQkgICBD UlNfVVNFX1NOQVBTSE9ULCBvcmlnaW5fc3RhcnRwb3MpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcmVwbF9ncmFtLnkKaW5kZXggOTVlMTI2ZWI0ZC4uZmYzODA5ZTAyZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcmVwbF9ncmFtLnkKQEAgLTY0LDYgKzY0LDcgQEAgTm9kZSAqcmVwbGljYXRpb25f cGFyc2VfcmVzdWx0OwogJXRva2VuIEtfU1RBUlRfUkVQTElDQVRJT04KICV0b2tlbiBLX0NSRUFU RV9SRVBMSUNBVElPTl9TTE9UCiAldG9rZW4gS19EUk9QX1JFUExJQ0FUSU9OX1NMT1QKKyV0b2tl biBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QKICV0b2tlbiBLX1RJTUVMSU5FX0hJU1RPUlkKICV0 b2tlbiBLX1dBSVQKICV0b2tlbiBLX1RJTUVMSU5FCkBAIC04MCw4ICs4MSw5IEBAIE5vZGUgKnJl cGxpY2F0aW9uX3BhcnNlX3Jlc3VsdDsKIAogJXR5cGUgPG5vZGU+CWNvbW1hbmQKICV0eXBlIDxu b2RlPgliYXNlX2JhY2t1cCBzdGFydF9yZXBsaWNhdGlvbiBzdGFydF9sb2dpY2FsX3JlcGxpY2F0 aW9uCi0JCQkJY3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QgZHJvcF9yZXBsaWNhdGlvbl9zbG90IGlk ZW50aWZ5X3N5c3RlbQotCQkJCXJlYWRfcmVwbGljYXRpb25fc2xvdCB0aW1lbGluZV9oaXN0b3J5 IHNob3cgdXBsb2FkX21hbmlmZXN0CisJCQkJY3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QgZHJvcF9y ZXBsaWNhdGlvbl9zbG90CisJCQkJYWx0ZXJfcmVwbGljYXRpb25fc2xvdCBpZGVudGlmeV9zeXN0 ZW0gcmVhZF9yZXBsaWNhdGlvbl9zbG90CisJCQkJdGltZWxpbmVfaGlzdG9yeSBzaG93IHVwbG9h ZF9tYW5pZmVzdAogJXR5cGUgPGxpc3Q+CWdlbmVyaWNfb3B0aW9uX2xpc3QKICV0eXBlIDxkZWZl bHQ+CWdlbmVyaWNfb3B0aW9uCiAldHlwZSA8dWludHZhbD4Jb3B0X3RpbWVsaW5lCkBAIC0xMTIs NiArMTE0LDcgQEAgY29tbWFuZDoKIAkJCXwgc3RhcnRfbG9naWNhbF9yZXBsaWNhdGlvbgogCQkJ fCBjcmVhdGVfcmVwbGljYXRpb25fc2xvdAogCQkJfCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QKKwkJ CXwgYWx0ZXJfcmVwbGljYXRpb25fc2xvdAogCQkJfCByZWFkX3JlcGxpY2F0aW9uX3Nsb3QKIAkJ CXwgdGltZWxpbmVfaGlzdG9yeQogCQkJfCBzaG93CkBAIC0yNTksNiArMjYyLDE4IEBAIGRyb3Bf cmVwbGljYXRpb25fc2xvdDoKIAkJCQl9CiAJCQk7CiAKKy8qIEFMVEVSX1JFUExJQ0FUSU9OX1NM T1Qgc2xvdCAqLworYWx0ZXJfcmVwbGljYXRpb25fc2xvdDoKKwkJCUtfQUxURVJfUkVQTElDQVRJ T05fU0xPVCBJREVOVCAnKCcgZ2VuZXJpY19vcHRpb25fbGlzdCAnKScKKwkJCQl7CisJCQkJCUFs dGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQ7CisJCQkJCWNtZCA9IG1ha2VOb2RlKEFsdGVyUmVw bGljYXRpb25TbG90Q21kKTsKKwkJCQkJY21kLT5zbG90bmFtZSA9ICQyOworCQkJCQljbWQtPm9w dGlvbnMgPSAkNDsKKwkJCQkJJCQgPSAoTm9kZSAqKSBjbWQ7CisJCQkJfQorCQkJOworCiAvKgog ICogU1RBUlRfUkVQTElDQVRJT04gW1NMT1Qgc2xvdF0gW1BIWVNJQ0FMXSAlWC8lWCBbVElNRUxJ TkUgJWRdCiAgKi8KQEAgLTQxMCw2ICs0MjUsNyBAQCBpZGVudF9vcl9rZXl3b3JkOgogCQkJfCBL X1NUQVJUX1JFUExJQ0FUSU9OCQkJeyAkJCA9ICJzdGFydF9yZXBsaWNhdGlvbiI7IH0KIAkJCXwg S19DUkVBVEVfUkVQTElDQVRJT05fU0xPVAl7ICQkID0gImNyZWF0ZV9yZXBsaWNhdGlvbl9zbG90 IjsgfQogCQkJfCBLX0RST1BfUkVQTElDQVRJT05fU0xPVAkJeyAkJCA9ICJkcm9wX3JlcGxpY2F0 aW9uX3Nsb3QiOyB9CisJCQl8IEtfQUxURVJfUkVQTElDQVRJT05fU0xPVAkJeyAkJCA9ICJhbHRl cl9yZXBsaWNhdGlvbl9zbG90IjsgfQogCQkJfCBLX1RJTUVMSU5FX0hJU1RPUlkJCQl7ICQkID0g InRpbWVsaW5lX2hpc3RvcnkiOyB9CiAJCQl8IEtfV0FJVAkJCQkJCXsgJCQgPSAid2FpdCI7IH0K IAkJCXwgS19USU1FTElORQkJCQkJeyAkJCA9ICJ0aW1lbGluZSI7IH0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nhbm5lci5sIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcmVwbF9zY2FubmVyLmwKaW5kZXggNmZhNjI1NjE3Yi4uZTdkZWY4MDA2NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwKQEAgLTEyNSw2ICsxMjUsNyBAQCBUSU1F TElORQkJCXsgcmV0dXJuIEtfVElNRUxJTkU7IH0KIFNUQVJUX1JFUExJQ0FUSU9OCXsgcmV0dXJu IEtfU1RBUlRfUkVQTElDQVRJT047IH0KIENSRUFURV9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVy biBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9UOyB9CiBEUk9QX1JFUExJQ0FUSU9OX1NMT1QJCXsg cmV0dXJuIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UOyB9CitBTFRFUl9SRVBMSUNBVElPTl9TTE9U CQl7IHJldHVybiBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1Q7IH0KIFRJTUVMSU5FX0hJU1RPUlkJ eyByZXR1cm4gS19USU1FTElORV9ISVNUT1JZOyB9CiBQSFlTSUNBTAkJCXsgcmV0dXJuIEtfUEhZ U0lDQUw7IH0KIFJFU0VSVkVfV0FMCQkJeyByZXR1cm4gS19SRVNFUlZFX1dBTDsgfQpAQCAtMzAy LDYgKzMwMyw3IEBAIHJlcGxpY2F0aW9uX3NjYW5uZXJfaXNfcmVwbGljYXRpb25fY29tbWFuZCh2 b2lkKQogCQljYXNlIEtfU1RBUlRfUkVQTElDQVRJT046CiAJCWNhc2UgS19DUkVBVEVfUkVQTElD QVRJT05fU0xPVDoKIAkJY2FzZSBLX0RST1BfUkVQTElDQVRJT05fU0xPVDoKKwkJY2FzZSBLX0FM VEVSX1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNhc2UgS19SRUFEX1JFUExJQ0FUSU9OX1NMT1Q6CiAJ CWNhc2UgS19USU1FTElORV9ISVNUT1JZOgogCQljYXNlIEtfVVBMT0FEX01BTklGRVNUOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jCmluZGV4IDAyYTE0ZWMyMTAuLmYyNzgxZDA0NTUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90LmMKQEAgLTY4Myw2ICs2ODMsMzEgQEAgUmVwbGljYXRpb25TbG90RHJvcChjb25z dCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkKIAlSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQo KTsKIH0KIAorLyoKKyAqIENoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgc2xvdCBpZGVudGlm aWVkIGJ5IHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqLwordm9pZAorUmVwbGljYXRpb25TbG90QWx0 ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3ZlcikKK3sKKwlBc3NlcnQoTXlSZXBsaWNh dGlvblNsb3QgPT0gTlVMTCk7CisKKwlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKG5hbWUsIGZhbHNl KTsKKworCWlmIChTbG90SXNQaHlzaWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ ZXJybXNnKCJjYW5ub3QgdXNlICVzIHdpdGggYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IiwK KwkJCQkJICAgIkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiKSk7CisKKwlTcGluTG9ja0FjcXVpcmUo Jk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CisJTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFp bG92ZXIgPSBmYWlsb3ZlcjsKKwlTcGluTG9ja1JlbGVhc2UoJk15UmVwbGljYXRpb25TbG90LT5t dXRleCk7CisKKwlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwlSZXBsaWNhdGlvblNsb3RT YXZlKCk7CisJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworfQorCiAvKgogICogUGVybWFuZW50 bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHJlcGxpY2F0aW9uIHNsb3QuCiAgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCmluZGV4IDcyODA1OTUxOGUuLmUyOWE2MTk2 YTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwpAQCAtMzg3LDcgKzM4Nyw3 IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQogCQkJCQkgInBnX3dhbHJlY2VpdmVyXyVsbGQiLAog CQkJCQkgKGxvbmcgbG9uZyBpbnQpIHdhbHJjdl9nZXRfYmFja2VuZF9waWQod3Jjb25uKSk7CiAK LQkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4sIHNsb3RuYW1lLCB0cnVlLCBmYWxzZSwgMCwg TlVMTCk7CisJCQl3YWxyY3ZfY3JlYXRlX3Nsb3Qod3Jjb25uLCBzbG90bmFtZSwgdHJ1ZSwgZmFs c2UsIGZhbHNlLCAwLCBOVUxMKTsKIAogCQkJU3BpbkxvY2tBY3F1aXJlKCZ3YWxyY3YtPm11dGV4 KTsKIAkJCXN0cmxjcHkod2FscmN2LT5zbG90bmFtZSwgc2xvdG5hbWUsIE5BTUVEQVRBTEVOKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggYWE4MGYzZGUyMC4uNzdjOGJhYTMy YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTExMjYsMTIgKzExMjYsMTMg QEAgc3RhdGljIHZvaWQKIHBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKENyZWF0ZVJlcGxpY2F0 aW9uU2xvdENtZCAqY21kLAogCQkJCQkJICAgYm9vbCAqcmVzZXJ2ZV93YWwsCiAJCQkJCQkgICBD UlNTbmFwc2hvdEFjdGlvbiAqc25hcHNob3RfYWN0aW9uLAotCQkJCQkJICAgYm9vbCAqdHdvX3Bo YXNlKQorCQkJCQkJICAgYm9vbCAqdHdvX3BoYXNlLCBib29sICpmYWlsb3ZlcikKIHsKIAlMaXN0 Q2VsbCAgICpsYzsKIAlib29sCQlzbmFwc2hvdF9hY3Rpb25fZ2l2ZW4gPSBmYWxzZTsKIAlib29s CQlyZXNlcnZlX3dhbF9naXZlbiA9IGZhbHNlOwogCWJvb2wJCXR3b19waGFzZV9naXZlbiA9IGZh bHNlOworCWJvb2wJCWZhaWxvdmVyX2dpdmVuID0gZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRpb25z ICovCiAJZm9yZWFjaChsYywgY21kLT5vcHRpb25zKQpAQCAtMTE4MSw2ICsxMTgyLDE1IEBAIHBh cnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAog CQkJdHdvX3BoYXNlX2dpdmVuID0gdHJ1ZTsKIAkJCSp0d29fcGhhc2UgPSBkZWZHZXRCb29sZWFu KGRlZmVsKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJmYWlsb3Zl ciIpID09IDApCisJCXsKKwkJCWlmIChmYWlsb3Zlcl9naXZlbiB8fCBjbWQtPmtpbmQgIT0gUkVQ TElDQVRJT05fS0lORF9MT0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciBy ZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlmYWlsb3Zlcl9naXZlbiA9IHRydWU7CisJCQkqZmFp bG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQogCQllbHNlCiAJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIG9wdGlvbjogJXMiLCBkZWZlbC0+ZGVmbmFtZSk7CiAJfQpAQCAtMTE5 Nyw2ICsxMjA3LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xv dENtZCAqY21kKQogCWNoYXIJICAgKnNsb3RfbmFtZTsKIAlib29sCQlyZXNlcnZlX3dhbCA9IGZh bHNlOwogCWJvb2wJCXR3b19waGFzZSA9IGZhbHNlOworCWJvb2wJCWZhaWxvdmVyID0gZmFsc2U7 CiAJQ1JTU25hcHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uID0gQ1JTX0VYUE9SVF9TTkFQU0hP VDsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CiAJVHVwT3V0cHV0U3RhdGUgKnRzdGF0ZTsKQEAgLTEy MDYsNyArMTIxNyw4IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNs b3RDbWQgKmNtZCkKIAogCUFzc2VydCghTXlSZXBsaWNhdGlvblNsb3QpOwogCi0JcGFyc2VDcmVh dGVSZXBsU2xvdE9wdGlvbnMoY21kLCAmcmVzZXJ2ZV93YWwsICZzbmFwc2hvdF9hY3Rpb24sICZ0 d29fcGhhc2UpOworCXBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKGNtZCwgJnJlc2VydmVfd2Fs LCAmc25hcHNob3RfYWN0aW9uLCAmdHdvX3BoYXNlLAorCQkJCQkJCSAgICZmYWlsb3Zlcik7CiAK IAlpZiAoY21kLT5raW5kID09IFJFUExJQ0FUSU9OX0tJTkRfUEhZU0lDQUwpCiAJewpAQCAtMTI0 Myw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xv dENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUs IHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVN RVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSwgZmFsc2UpOworCQkJCQkJCSAgdHdvX3BoYXNlLCBm YWlsb3Zlcik7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBjaGVjayBlYXJseSBzbyB0aGF0IHdl IGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpAQCAtMTM5OCw2ICsxNDEwLDQzIEBAIERyb3BS ZXBsaWNhdGlvblNsb3QoRHJvcFJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCVJlcGxpY2F0aW9u U2xvdERyb3AoY21kLT5zbG90bmFtZSwgIWNtZC0+d2FpdCk7CiB9CiAKKy8qCisgKiBQcm9jZXNz IGV4dHJhIG9wdGlvbnMgZ2l2ZW4gdG8gQUxURVJfUkVQTElDQVRJT05fU0xPVC4KKyAqLworc3Rh dGljIHZvaWQKK1BhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoQWx0ZXJSZXBsaWNhdGlvblNsb3RD bWQgKmNtZCwgYm9vbCAqZmFpbG92ZXIpCit7CisJYm9vbAkJZmFpbG92ZXJfZ2l2ZW4gPSBmYWxz ZTsKKworCS8qIFBhcnNlIG9wdGlvbnMgKi8KKwlmb3JlYWNoX3B0cihEZWZFbGVtLCBkZWZlbCwg Y21kLT5vcHRpb25zKQorCXsKKwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZhaWxvdmVy IikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxvdmVyX2dpdmVuKQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJj b25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlmYWlsb3Zlcl9naXZlbiA9 IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQorCQllbHNl CisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wdGlvbjogJXMiLCBkZWZlbC0+ZGVmbmFt ZSk7CisJfQorfQorCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRp b24gc2xvdC4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUmVwbGljYXRpb25TbG90KEFsdGVyUmVw bGljYXRpb25TbG90Q21kICpjbWQpCit7CisJYm9vbAkJZmFpbG92ZXIgPSBmYWxzZTsKKworCVBh cnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoY21kLCAmZmFpbG92ZXIpOworCVJlcGxpY2F0aW9uU2xv dEFsdGVyKGNtZC0+c2xvdG5hbWUsIGZhaWxvdmVyKTsKK30KKwogLyoKICAqIExvYWQgcHJldmlv dXNseSBpbml0aWF0ZWQgbG9naWNhbCBzbG90IGFuZCBwcmVwYXJlIGZvciBzZW5kaW5nIGRhdGEg KHZpYQogICogV2FsU25kTG9vcCkuCkBAIC0xOTcxLDYgKzIwMjAsMTMgQEAgZXhlY19yZXBsaWNh dGlvbl9jb21tYW5kKGNvbnN0IGNoYXIgKmNtZF9zdHJpbmcpCiAJCQlFbmRSZXBsaWNhdGlvbkNv bW1hbmQoY21kdGFnKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9BbHRlclJlcGxpY2F0aW9uU2xv dENtZDoKKwkJCWNtZHRhZyA9ICJBTFRFUl9SRVBMSUNBVElPTl9TTE9UIjsKKwkJCXNldF9wc19k aXNwbGF5KGNtZHRhZyk7CisJCQlBbHRlclJlcGxpY2F0aW9uU2xvdCgoQWx0ZXJSZXBsaWNhdGlv blNsb3RDbWQgKikgY21kX25vZGUpOworCQkJRW5kUmVwbGljYXRpb25Db21tYW5kKGNtZHRhZyk7 CisJCQlicmVhazsKKwogCQljYXNlIFRfU3RhcnRSZXBsaWNhdGlvbkNtZDoKIAkJCXsKIAkJCQlT dGFydFJlcGxpY2F0aW9uQ21kICpjbWQgPSAoU3RhcnRSZXBsaWNhdGlvbkNtZCAqKSBjbWRfbm9k ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcmVwbG5vZGVzLmgKaW5kZXggYWYwYTMzM2YxYS4uZWQyMzMzM2U5MiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcmVwbG5vZGVzLmgKQEAgLTcyLDYgKzcyLDE4IEBAIHR5cGVkZWYgc3RydWN0IERyb3BSZXBs aWNhdGlvblNsb3RDbWQKIH0gRHJvcFJlcGxpY2F0aW9uU2xvdENtZDsKIAogCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgkJQUxURVJfUkVQTElDQVRJT05fU0xPVCBjb21tYW5kCisgKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEFsdGVyUmVwbGljYXRp b25TbG90Q21kCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpzbG90bmFtZTsKKwlMaXN0 CSAgICpvcHRpb25zOworfSBBbHRlclJlcGxpY2F0aW9uU2xvdENtZDsKKworCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgKgkJU1RBUlRfUkVQTElDQVRJT04gY29tbWFuZAogICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xv dC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IGYyNTAxYmU1NTMuLjcy ZWY0ODU5ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTIyNyw2ICsyMjcsNyBAQCBleHRl cm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9z cGVjaWZpYywKIAkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CiBleHRl cm4gdm9pZCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGlj YXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CitleHRlcm4gdm9p ZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKTsK IAogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90QWNxdWlyZShjb25zdCBjaGFyICpuYW1lLCBi b29sIG5vd2FpdCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKaW5kZXggMDg5OTg5MWNkYi4uZjU2NmE5 OWJhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAor KysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCkBAIC0zNTUsOSArMzU1 LDIwIEBAIHR5cGVkZWYgY2hhciAqKCp3YWxyY3ZfY3JlYXRlX3Nsb3RfZm4pIChXYWxSZWNlaXZl ckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCQkJ Ym9vbCB0ZW1wb3JhcnksCiAJCQkJCQkJCQkJYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCQkJYm9v bCBmYWlsb3ZlciwKIAkJCQkJCQkJCQlDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24s CiAJCQkJCQkJCQkJWExvZ1JlY1B0ciAqbHNuKTsKIAorLyoKKyAqIHdhbHJjdl9hbHRlcl9zbG90 X2ZuCisgKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4g Q3VycmVudGx5LCBpdCBvbmx5IHN1cHBvcnRzCisgKiBjaGFuZ2luZyB0aGUgZmFpbG92ZXIgcHJv cGVydHkgb2YgdGhlIHNsb3QuCisgKi8KK3R5cGVkZWYgdm9pZCAoKndhbHJjdl9hbHRlcl9zbG90 X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAorCQkJCQkJCQkJICBjb25zdCBjaGFyICpzbG90 bmFtZSwKKwkJCQkJCQkJCSAgYm9vbCBmYWlsb3Zlcik7CisKIC8qCiAgKiB3YWxyY3ZfZ2V0X2Jh Y2tlbmRfcGlkX2ZuCiAgKgpAQCAtMzk5LDYgKzQxMCw3IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJl Y2VpdmVyRnVuY3Rpb25zVHlwZQogCXdhbHJjdl9yZWNlaXZlX2ZuIHdhbHJjdl9yZWNlaXZlOwog CXdhbHJjdl9zZW5kX2ZuIHdhbHJjdl9zZW5kOwogCXdhbHJjdl9jcmVhdGVfc2xvdF9mbiB3YWxy Y3ZfY3JlYXRlX3Nsb3Q7CisJd2FscmN2X2FsdGVyX3Nsb3RfZm4gd2FscmN2X2FsdGVyX3Nsb3Q7 CiAJd2FscmN2X2dldF9iYWNrZW5kX3BpZF9mbiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkOwogCXdh bHJjdl9leGVjX2ZuIHdhbHJjdl9leGVjOwogCXdhbHJjdl9kaXNjb25uZWN0X2ZuIHdhbHJjdl9k aXNjb25uZWN0OwpAQCAtNDI4LDggKzQ0MCwxMCBAQCBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVj ZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZlckZ1 bmN0aW9ucy0+d2FscmN2X3JlY2VpdmUoY29ubiwgYnVmZmVyLCB3YWl0X2ZkKQogI2RlZmluZSB3 YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5ieXRlcykgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25z LT53YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5ieXRlcykKLSNkZWZpbmUgd2FscmN2X2NyZWF0 ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0 aW9uLCBsc24pIFwKLQlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90KGNv bm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24p CisjZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0 d29fcGhhc2UsIGZhaWxvdmVyLCBzbmFwc2hvdF9hY3Rpb24sIGxzbikgXAorCVdhbFJlY2VpdmVy RnVuY3Rpb25zLT53YWxyY3ZfY3JlYXRlX3Nsb3QoY29ubiwgc2xvdG5hbWUsIHRlbXBvcmFyeSwg dHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNob3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJj dl9hbHRlcl9zbG90KGNvbm4sIHNsb3RuYW1lLCBmYWlsb3ZlcikgXAorCVdhbFJlY2VpdmVyRnVu Y3Rpb25zLT53YWxyY3ZfYWx0ZXJfc2xvdChjb25uLCBzbG90bmFtZSwgZmFpbG92ZXIpCiAjZGVm aW5lIHdhbHJjdl9nZXRfYmFja2VuZF9waWQoY29ubikgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25z LT53YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNvbm4pCiAjZGVmaW5lIHdhbHJjdl9leGVjKGNvbm4s IGV4ZWMsIG5SZXRUeXBlcywgcmV0VHlwZXMpIFwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggN2U4NjZlM2MzZC4uNTEzYzc3MDJmZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAg LTg1LDYgKzg1LDcgQEAgQWx0ZXJPd25lclN0bXQKIEFsdGVyUG9saWN5U3RtdAogQWx0ZXJQdWJs aWNhdGlvbkFjdGlvbgogQWx0ZXJQdWJsaWNhdGlvblN0bXQKK0FsdGVyUmVwbGljYXRpb25TbG90 Q21kCiBBbHRlclJvbGVTZXRTdG10CiBBbHRlclJvbGVTdG10CiBBbHRlclNlcVN0bXQKQEAgLTM4 ODAsNiArMzg4MSw3IEBAIHZhcmF0dHJpYl8xYl9lCiB2YXJhdHRyaWJfNGIKIHZiaXRzCiB2ZXJp Zmllcl9jb250ZXh0Cit3YWxyY3ZfYWx0ZXJfc2xvdF9mbgogd2FscmN2X2NoZWNrX2Nvbm5pbmZv X2ZuCiB3YWxyY3ZfY29ubmVjdF9mbgogd2FscmN2X2NyZWF0ZV9zbG90X2ZuCi0tIAoyLjMwLjAu d2luZG93cy4yCgo= --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0003-Add-a-failover-option-to-subscriptions.patch" Content-Description: v68-0003-Add-a-failover-option-to-subscriptions.patch Content-Disposition: attachment; filename="v68-0003-Add-a-failover-option-to-subscriptions.patch"; size=65266; creation-date="Thu, 25 Jan 2024 02:51:34 GMT"; modification-date="Thu, 25 Jan 2024 02:57:28 GMT" Content-Transfer-Encoding: base64 RnJvbSBkMzM5ZjE0ZDk2ZmYyYjExNTVkMzhlNmNmMGZhMmRlNDE3M2E1NWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDI0IEphbiAyMDI0IDIwOjUxOjM5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjggMy84XSBBZGQgYSBmYWlsb3ZlciBvcHRpb24gdG8gc3Vic2NyaXB0aW9ucy4KClRoaXMgY29t bWl0IGludHJvZHVjZXMgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBuYW1lZCAnZmFpbG92ZXIn LCB3aGljaApwcm92aWRlcyB1c2VycyB3aXRoIHRoZSBhYmlsaXR5IHRvIHNldCB0aGUgZmFpbG92 ZXIgcHJvcGVydHkgb2YgdGhlIHJlcGxpY2F0aW9uCnNsb3Qgb24gdGhlIHB1Ymxpc2hlciB3aGVu IGNyZWF0aW5nIG9yIGFsdGVyaW5nIGEgc3Vic2NyaXB0aW9uLgotLS0KIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDE2ICstCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgfCAgMTIgKysKIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8IDEwNiArKysrKysrKysrLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgICAyICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgIDcgKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uaCAgICAgICAgIHwgICA5ICsKIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxv dmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICA4OSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAxNjUgKysrKysrKysrKy0tLS0tLS0tCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgICAgfCAgIDggKwogMTcg ZmlsZXMgY2hhbmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xv dHNfc3luYy5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYzE1ZDg2MWU4Mi4uNDlkOGNjNjgyNiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTc5OTAsNiArNzk5MCwxNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zdWJmYWlsb3Zlcjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJ ZiB0cnVlLCB0aGUgYXNzb2NpYXRlZCByZXBsaWNhdGlvbiBzbG90cyAoaS5lLiB0aGUgbWFpbiBz bG90IGFuZCB0aGUKKyAgICAgICB0YWJsZSBzeW5jIHNsb3RzKSBpbiB0aGUgdXBzdHJlYW0gZGF0 YWJhc2UgYXJlIGVuYWJsZWQgdG8gYmUKKyAgICAgICBzeW5jaHJvbml6ZWQgdG8gdGhlIHN0YW5k YnlzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnN1YmNvbm5pbmZvPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+dGV4dDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5z Z21sCmluZGV4IDZkMzZmZjBkYzkuLmIzZTc3OWRmNzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMjI2LDEwICsyMjYsMjIgQEAgQUxURVIgU1VCU0NSSVBU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtc3RyZWFtaW5nIj48bGl0ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+PC9saW5rPiwK ICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt ZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xp bms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1wYXNzd29yZC1yZXF1aXJlZCI+PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQ8L2xpdGVy YWw+PC9saW5rPiwKLSAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJhbD5ydW5fYXNfb3duZXI8L2xpdGVyYWw+ PC9saW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9u LXBhcmFtcy13aXRoLW9yaWdpbiI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4uCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJ1 bi1hcy1vd25lciI+PGxpdGVyYWw+cnVuX2FzX293bmVyPC9saXRlcmFsPjwvbGluaz4sCisgICAg ICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW9yaWdp biI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4sIGFuZAorICAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVy YWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2Fu IHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAg PC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhbHRlcmluZyB0aGUKKyAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtc2xvdC1uYW1l Ij48bGl0ZXJhbD5zbG90X25hbWU8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIHRoZSA8bGl0ZXJh bD5mYWlsb3ZlcjwvbGl0ZXJhbD4gcHJvcGVydHkgdmFsdWUgb2YgdGhlIG5hbWVkIHNsb3QgbWF5 IGRpZmZlciBmcm9tIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9s aW5rPgorICAgICAgcGFyYW1ldGVyIHNwZWNpZmllZCBpbiB0aGUgc3Vic2NyaXB0aW9uLiBXaGVu IGNyZWF0aW5nIHRoZSBzbG90LAorICAgICAgZW5zdXJlIHRoZSBzbG90IDxsaXRlcmFsPmZhaWxv dmVyPC9saXRlcmFsPiBwcm9wZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFp bG92ZXI8L2xpdGVyYWw+PC9saW5rPgorICAgICAgcGFyYW1ldGVyIHZhbHVlIG9mIHRoZSBzdWJz Y3JpcHRpb24uCisgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50 cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggYzdh Y2U5MjJmOS4uNTlhOTU1NGJmMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0 aW9uLnNnbWwKQEAgLTQwMCw2ICs0MDAsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAg ICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtZmFpbG92ZXIiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0 ZXJhbD4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIHJlcGxpY2F0 aW9uIHNsb3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uCisgICAgICAgICAgYXJl IGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZSBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2ljYWwKKyAg ICAgICAgICByZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFyeSBh ZnRlciBmYWlsb3Zlci4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5mYWxzZTwv bGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAg PC92YXJsaXN0ZW50cnk+CiAgICAgICA8L3ZhcmlhYmxlbGlzdD48L3BhcmE+CiAKICAgICA8L2xp c3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggYzUxNmMyNWFj Ny4uNDA2YTNjMmRkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC03 Myw2ICs3Myw3IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykK IAlzdWItPmRpc2FibGVvbmVyciA9IHN1YmZvcm0tPnN1YmRpc2FibGVvbmVycjsKIAlzdWItPnBh c3N3b3JkcmVxdWlyZWQgPSBzdWJmb3JtLT5zdWJwYXNzd29yZHJlcXVpcmVkOwogCXN1Yi0+cnVu YXNvd25lciA9IHN1YmZvcm0tPnN1YnJ1bmFzb3duZXI7CisJc3ViLT5mYWlsb3ZlciA9IHN1YmZv cm0tPnN1YmZhaWxvdmVyOwogCiAJLyogR2V0IGNvbm5pbmZvICovCiAJZGF0dW0gPSBTeXNDYWNo ZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbAppbmRleCBkMGY3MTFhNjE5Li5lNDNhOTM3MzlkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCkBAIC0xMzU4LDcgKzEzNTgsOCBAQCBSRVZPS0UgQUxMIE9OIHBnX3N1 YnNjcmlwdGlvbiBGUk9NIHB1YmxpYzsKIEdSQU5UIFNFTEVDVCAob2lkLCBzdWJkYmlkLCBzdWJz a2lwbHNuLCBzdWJuYW1lLCBzdWJvd25lciwgc3ViZW5hYmxlZCwKICAgICAgICAgICAgICAgc3Vi YmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsIHN1YmRpc2FibGVvbmVyciwKIAkJ CSAgc3VicGFzc3dvcmRyZXF1aXJlZCwgc3VicnVuYXNvd25lciwKLSAgICAgICAgICAgICAgc3Vi c2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQorICAg ICAgICAgICAgICBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVibGljYXRpb25zLCBz dWJvcmlnaW4sCisgICAgICAgICAgICAgIHN1YmZhaWxvdmVyKQogICAgIE9OIHBnX3N1YnNjcmlw dGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRz IEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZWFmMmVjM2Iz Ni4uMTViYjEwZGE1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpA QCAtNzEsNiArNzEsNyBAQAogI2RlZmluZSBTVUJPUFRfUlVOX0FTX09XTkVSCQkJMHgwMDAwMTAw MAogI2RlZmluZSBTVUJPUFRfTFNOCQkJCQkweDAwMDAyMDAwCiAjZGVmaW5lIFNVQk9QVF9PUklH SU4JCQkJMHgwMDAwNDAwMAorI2RlZmluZSBTVUJPUFRfRkFJTE9WRVIJCQkJMHgwMDAwODAwMAog CiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQo dmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAtOTYsNiArOTcsNyBA QCB0eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJcGFzc3dvcmRyZXF1aXJlZDsKIAlib29s CQlydW5hc293bmVyOwogCWNoYXIJICAgKm9yaWdpbjsKKwlib29sCQlmYWlsb3ZlcjsKIAlYTG9n UmVjUHRyCWxzbjsKIH0gU3ViT3B0czsKIApAQCAtMTU3LDYgKzE1OSw4IEBAIHBhcnNlX3N1YnNj cmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAog CQlvcHRzLT5ydW5hc293bmVyID0gZmFsc2U7CiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBT VUJPUFRfT1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJQ0FMUkVQX09SSUdJ Tl9BTlkpOworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0ZBSUxPVkVSKSkKKwkJ b3B0cy0+ZmFpbG92ZXIgPSBmYWxzZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNo KGxjLCBzdG10X29wdGlvbnMpCkBAIC0zMjYsNiArMzMwLDE1IEBAIHBhcnNlX3N1YnNjcmlwdGlv bl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAogCQkJCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJCWVycm1zZygi dW5yZWNvZ25pemVkIG9yaWdpbiB2YWx1ZTogXCIlc1wiIiwgb3B0cy0+b3JpZ2luKSk7CiAJCX0K KwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikgJiYKKwkJ CQkgc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZmFpbG92ZXIiKSA9PSAwKQorCQl7CisJCQlpZiAo SXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikpCisJCQkJZXJyb3JD b25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMtPnNwZWNpZmllZF9v cHRzIHw9IFNVQk9QVF9GQUlMT1ZFUjsKKwkJCW9wdHMtPmZhaWxvdmVyID0gZGVmR2V0Qm9vbGVh bihkZWZlbCk7CisJCX0KIAkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9M U04pICYmCiAJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImxzbiIpID09IDApCiAJCXsKQEAg LTU5MSw3ICs2MDQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19D T01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BU X1RXT1BIQVNFX0NPTU1JVCB8CiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BU X1BBU1NXT1JEX1JFUVVJUkVEIHwKLQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BU X09SSUdJTik7CisJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9QVF9PUklHSU4gfAor CQkJCQkgIFNVQk9QVF9GQUlMT1ZFUik7CiAJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0 YXRlLCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwogCiAJLyoKQEAgLTcx MCw2ICs3MjQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlwdWJsaWNhdGlvbkxpc3RUb0FycmF5KHB1Ymxp Y2F0aW9ucyk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0K IAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CisJdmFsdWVzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQlCb29sR2V0RGF0dW0ob3B0cy5mYWlsb3Zl cik7CiAKIAl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1 ZXMsIG51bGxzKTsKIApAQCAtODA3LDcgKzgyMyw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXR3b3Bo YXNlX2VuYWJsZWQgPSB0cnVlOwogCiAJCQkJd2FscmN2X2NyZWF0ZV9zbG90KHdyY29ubiwgb3B0 cy5zbG90X25hbWUsIGZhbHNlLCB0d29waGFzZV9lbmFibGVkLAotCQkJCQkJCQkgICBmYWxzZSwg Q1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKKwkJCQkJCQkJICAgb3B0cy5mYWlsb3Zlciwg Q1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKIAogCQkJCWlmICh0d29waGFzZV9lbmFibGVk KQogCQkJCQlVcGRhdGVUd29QaGFzZVN0YXRlKHN1YmlkLCBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NU QVRFX0VOQUJMRUQpOwpAQCAtODE2LDYgKzgzMiwyNCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJKGVy cm1zZygiY3JlYXRlZCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIiLAogCQkJ CQkJCQlvcHRzLnNsb3RfbmFtZSkpKTsKIAkJCX0KKworCQkJLyoKKwkJCSAqIElmIHRoZSBzbG90 X25hbWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdGhlIGNyZWF0ZV9zbG90IG9wdGlvbiwKKwkJCSAq IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIgaW50ZW5kcyB0byB1c2UgYW4gZXhpc3Rpbmcg c2xvdCBvbgorCQkJICogdGhlIHB1Ymxpc2hlciwgc28gaGVyZSB3ZSBhbHRlciB0aGUgZmFpbG92 ZXIgcHJvcGVydHkgb2YgdGhlCisJCQkgKiBzbG90IHRvIG1hdGNoIHRoZSBmYWlsb3ZlciB2YWx1 ZSBpbiBzdWJzY3JpcHRpb24uCisJCQkgKgorCQkJICogV2UgZG8gbm90IG5lZWQgdG8gY2hhbmdl IHRoZSBmYWlsb3ZlciB0byBmYWxzZSBpZiB0aGUgc2VydmVyCisJCQkgKiBkb2VzIG5vdCBzdXBw b3J0IGZhaWxvdmVyIChlLmcuIHByZS1QRzE3KS4KKwkJCSAqLworCQkJZWxzZSBpZiAob3B0cy5z bG90X25hbWUgJiYKKwkJCQkJIChvcHRzLmZhaWxvdmVyIHx8IHdhbHJjdl9zZXJ2ZXJfdmVyc2lv bih3cmNvbm4pID49IDE3MDAwMCkpCisJCQl7CisJCQkJd2FscmN2X2FsdGVyX3Nsb3Qod3Jjb25u LCBvcHRzLnNsb3RfbmFtZSwgb3B0cy5mYWlsb3Zlcik7CisJCQkJZXJlcG9ydChOT1RJQ0UsCisJ CQkJCQkoZXJybXNnKCJjaGFuZ2VkIHRoZSBmYWlsb3ZlciBzdGF0ZSBvZiByZXBsaWNhdGlvbiBz bG90IFwiJXNcIiBvbiBwdWJsaXNoZXIgdG8gJXMiLAorCQkJCQkJCQlvcHRzLnNsb3RfbmFtZSwg b3B0cy5mYWlsb3ZlciA/ICJ0cnVlIiA6ICJmYWxzZSIpKSk7CisJCQl9CiAJCX0KIAkJUEdfRklO QUxMWSgpOwogCQl7CkBAIC0xMTMyLDcgKzExNjYsOCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJCQkJICBT VUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCQkJCSAgU1VC T1BUX1NUUkVBTUlORyB8IFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8CiAJCQkJCQkJCSAgU1VCT1BU X1BBU1NXT1JEX1JFUVVJUkVEIHwKLQkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VC T1BUX09SSUdJTik7CisJCQkJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9QVF9PUklH SU4gfAorCQkJCQkJCQkgIFNVQk9QVF9GQUlMT1ZFUik7CiAKIAkJCQlwYXJzZV9zdWJzY3JpcHRp b25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsCiAJCQkJCQkJCQkJICAgc3VwcG9ydGVk X29wdHMsICZvcHRzKTsKQEAgLTEyMTgsNiArMTI1MywzMSBAQCBBbHRlclN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJcmVw bGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0gPSB0cnVlOwogCQkJCX0K IAorCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfRkFJTE9WRVIpKQor CQkJCXsKKwkJCQkJaWYgKCFzdWItPnNsb3RuYW1lKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSks CisJCQkJCQkJCSBlcnJtc2coImNhbm5vdCBzZXQgJXMgZm9yIGEgc3Vic2NyaXB0aW9uIHRoYXQg ZG9lcyBub3QgaGF2ZSBhIHNsb3QgbmFtZSIsCisJCQkJCQkJCQkJImZhaWxvdmVyIikpKTsKKwor CQkJCQkvKgorCQkJCQkgKiBEbyBub3QgYWxsb3cgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHN0YXRl IGlmIHRoZQorCQkJCQkgKiBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZC4gVGhpcyBpcyBiZWNhdXNl IHRoZSBmYWlsb3ZlcgorCQkJCQkgKiBzdGF0ZSBvZiB0aGUgc2xvdCBvbiB0aGUgcHVibGlzaGVy IGNhbm5vdCBiZSBtb2RpZmllZAorCQkJCQkgKiBpZiB0aGUgc2xvdCBpcyBjdXJyZW50bHkgYWNx dWlyZWQgYnkgdGhlIGFwcGx5IHdvcmtlci4KKwkJCQkJICovCisJCQkJCWlmIChzdWItPmVuYWJs ZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNl dCAlcyBmb3IgZW5hYmxlZCBzdWJzY3JpcHRpb24iLAorCQkJCQkJCQkJCSJmYWlsb3ZlciIpKSk7 CisKKwkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQor CQkJCQkJQm9vbEdldERhdHVtKG9wdHMuZmFpbG92ZXIpOworCQkJCQlyZXBsYWNlc1tBbnVtX3Bn X3N1YnNjcmlwdGlvbl9zdWJmYWlsb3ZlciAtIDFdID0gdHJ1ZTsKKwkJCQl9CisKIAkJCQl1cGRh dGVfdHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTQ1Myw2ICsxNTEzLDQ2IEBA IEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCQloZWFwX2ZyZWV0dXBsZSh0dXApOwogCX0KIAorCS8qCisJICogVHJ5IHRv IGFjcXVpcmUgdGhlIGNvbm5lY3Rpb24gbmVjZXNzYXJ5IGZvciBhbHRlcmluZyBzbG90LgorCSAq CisJICogVGhpcyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBiZWNhdXNlIG90aGVyd2lzZSBpZiB0aGVy ZSBpcyBhbiBlcnJvciB3aGlsZQorCSAqIGRvaW5nIHRoZSBkYXRhYmFzZSBvcGVyYXRpb25zIHdl IHdvbid0IGJlIGFibGUgdG8gcm9sbGJhY2sgYWx0ZXJlZAorCSAqIHNsb3QuCisJICovCisJaWYg KHJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0pCisJeworCQli b29sCQltdXN0X3VzZV9wYXNzd29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxSZWNlaXZlckNv bm4gKndyY29ubjsKKworCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBj YWxscy4gKi8KKwkJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJCS8q IFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNlX3Bhc3N3b3Jk ID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOworCQl3cmNv bm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29y ZCwKKwkJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJ CSBlcnJtc2coImNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwgZXJyKSkp OworCisJCVBHX1RSWSgpOworCQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIHN1Yi0+ c2xvdG5hbWUsIG9wdHMuZmFpbG92ZXIpOworCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVy cm1zZygiY2hhbmdlZCB0aGUgZmFpbG92ZXIgc3RhdGUgb2YgcmVwbGljYXRpb24gc2xvdCBcIiVz XCIgb24gcHVibGlzaGVyIHRvICVzIiwKKwkJCQkJCQlzdWItPnNsb3RuYW1lLCBvcHRzLmZhaWxv dmVyID8gInRydWUiIDogImZhbHNlIikpKTsKKwkJfQorCQlQR19GSU5BTExZKCk7CisJCXsKKwkJ CXdhbHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJCX0KKwkJUEdfRU5EX1RSWSgpOworCX0KKwog CXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5kZXggNDIwN2I5MzU2Yy4uNWFjYWIzZjNl MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBAIC0x NDMwLDcgKzE0MzAsNyBAQCBMb2dpY2FsUmVwU3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3Jp Z2luX3N0YXJ0cG9zKQogCSAqLwogCXdhbHJjdl9jcmVhdGVfc2xvdChMb2dSZXBXb3JrZXJXYWxS Y3ZDb25uLAogCQkJCQkgICBzbG90bmFtZSwgZmFsc2UgLyogcGVybWFuZW50ICovICwgZmFsc2Ug LyogdHdvX3BoYXNlICovICwKLQkJCQkJICAgZmFsc2UsCisJCQkJCSAgIE15U3Vic2NyaXB0aW9u LT5mYWlsb3ZlciwKIAkJCQkJICAgQ1JTX1VTRV9TTkFQU0hPVCwgb3JpZ2luX3N0YXJ0cG9zKTsK IAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA5YjU5 OGNhZjNjLi4zMmZmNGMwMzM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMKQEAgLTEzMiw2ICsxMzIsMTMgQEAKICAqIGF2b2lkIHN1Y2ggZGVhZGxvY2tzLCB3ZSBn ZW5lcmF0ZSBhIHVuaXF1ZSBHSUQgKGNvbnNpc3Rpbmcgb2YgdGhlCiAgKiBzdWJzY3JpcHRpb24g b2lkIGFuZCB0aGUgeGlkIG9mIHRoZSBwcmVwYXJlZCB0cmFuc2FjdGlvbikgZm9yIGVhY2ggcHJl cGFyZQogICogdHJhbnNhY3Rpb24gb24gdGhlIHN1YnNjcmliZXIuCisgKgorICogRkFJTE9WRVIK KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRoZSBsb2dpY2FsIHNsb3Qgb24gdGhlIHBy aW1hcnkgY2FuIGJlIHN5bmNlZCB0byB0aGUgc3RhbmRieSBieSBzcGVjaWZ5aW5nCisgKiBmYWls b3ZlciA9IHRydWUgd2hlbiBjcmVhdGluZyB0aGUgc3Vic2NyaXB0aW9uLiBFbmFibGluZyBmYWls b3ZlciBhbGxvd3MgdXMKKyAqIHRvIHNtb290aGx5IHRyYW5zaXRpb24gdG8gdGhlIHByb21vdGVk IHN0YW5kYnksIGVuc3VyaW5nIHRoYXQgd2UgY2FuCisgKiBzdWJzY3JpYmUgdG8gdGhlIG5ldyBw cmltYXJ5IHdpdGhvdXQgbG9zaW5nIGFueSBkYXRhLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8K IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKaW5kZXggYmMyMGEwMjVjZS4uMzM5ZjIwZTVlNiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBA IC00NjQxLDYgKzQ2NDEsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50 CQkJaV9zdWJvcmlnaW47CiAJaW50CQkJaV9zdWJvcmlnaW5yZW1vdGVsc247CiAJaW50CQkJaV9z dWJlbmFibGVkOworCWludAkJCWlfc3ViZmFpbG92ZXI7CiAJaW50CQkJaSwKIAkJCQludHVwczsK IApAQCAtNDcwNiwxMCArNDcwNywxNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQp CiAKIAlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUgJiYgZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAx NzAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIG8ucmVtb3RlX2xzbiBBUyBz dWJvcmlnaW5yZW1vdGVsc24sXG4iCi0JCQkJCQkJICIgcy5zdWJlbmFibGVkXG4iKTsKKwkJCQkJ CQkgIiBzLnN1YmVuYWJsZWQsXG4iKTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiIE5VTEwgQVMgc3Vib3JpZ2lucmVtb3RlbHNuLFxuIgotCQkJCQkJCSAiIGZhbHNlIEFT IHN1YmVuYWJsZWRcbiIpOworCQkJCQkJCSAiIGZhbHNlIEFTIHN1YmVuYWJsZWQsXG4iKTsKKwor CWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksCisJCQkJCQkJICIgcy5zdWJmYWlsb3ZlclxuIik7CisJZWxzZQorCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIiBmYWxzZSBBUyBzdWJmYWlsb3ZlclxuIik7CiAK IAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJzY3JpcHRp b24gc1xuIik7CkBAIC00NzQ4LDYgKzQ3NTYsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUg KmZvdXQpCiAJaV9zdWJvcmlnaW4gPSBQUWZudW1iZXIocmVzLCAic3Vib3JpZ2luIik7CiAJaV9z dWJvcmlnaW5yZW1vdGVsc24gPSBQUWZudW1iZXIocmVzLCAic3Vib3JpZ2lucmVtb3RlbHNuIik7 CiAJaV9zdWJlbmFibGVkID0gUFFmbnVtYmVyKHJlcywgInN1YmVuYWJsZWQiKTsKKwlpX3N1YmZh aWxvdmVyID0gUFFmbnVtYmVyKHJlcywgInN1YmZhaWxvdmVyIik7CiAKIAlzdWJpbmZvID0gcGdf bWFsbG9jKG50dXBzICogc2l6ZW9mKFN1YnNjcmlwdGlvbkluZm8pKTsKIApAQCAtNDc5Miw2ICs0 ODAxLDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJCXBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW5yZW1vdGVsc24pKTsKIAkJc3ViaW5mb1tpXS5z dWJlbmFibGVkID0KIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJlbmFibGVk KSk7CisJCXN1YmluZm9baV0uc3ViZmFpbG92ZXIgPQorCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3N1YmZhaWxvdmVyKSk7CiAKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0 byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwg Zm91dCk7CkBAIC01MDIwLDYgKzUwMzEsOSBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZv dXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJaWYgKHN0cmNtcChzdWJpbmZv LT5zdWJ0d29waGFzZXN0YXRlLCB0d29fcGhhc2VfZGlzYWJsZWQpICE9IDApCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCB0d29fcGhhc2UgPSBvbiIpOwogCisJaWYgKHN0cmNtcChz dWJpbmZvLT5zdWJmYWlsb3ZlciwgInQiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiwgZmFpbG92ZXIgPSB0cnVlIik7CisKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmRp c2FibGVvbmVyciwgInQiKSA9PSAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwg ZGlzYWJsZV9vbl9lcnJvciA9IHRydWUiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZjA3NzJkMjE1Ny4u MjRlMTY0Mzc5NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02NjUsNiArNjY1LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJwdWJsaWNhdGlvbnM7CiAJY2hhcgkg ICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1Ym9yaWdpbnJlbW90ZWxzbjsKKwljaGFyCSAgICpz dWJmYWlsb3ZlcjsKIH0gU3Vic2NyaXB0aW9uSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfdXBncmFkZS90LzAwM19sb2dpY2FsX3Nsb3RzLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKaW5kZXggMGFiMzY4MjQ3Yi4uODNkNzFjMzA4NCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKKysrIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKQEAgLTE3Miw3ICsxNzIs NyBAQCAkc3ViLT5zdGFydDsKICRzdWItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAlD UkVBVEUgVEFCTEUgdGJsIChhIGludCk7Ci0JQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1 YiBDT05ORUNUSU9OICckb2xkX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViIFdJVEgg KHR3b19waGFzZSA9ICd0cnVlJykKKwlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENP Tk5FQ1RJT04gJyRvbGRfY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdv X3BoYXNlID0gJ3RydWUnLCBmYWlsb3ZlciA9ICd0cnVlJykKIF0pOwogJHN1Yi0+d2FpdF9mb3Jf c3Vic2NyaXB0aW9uX3N5bmMoJG9sZHB1YiwgJ3JlZ3Jlc3Nfc3ViJyk7CiAKQEAgLTE5Miw4ICsx OTIsOCBAQCBjb21tYW5kX29rKFtAcGdfdXBncmFkZV9jbWRdLCAncnVuIG9mIHBnX3VwZ3JhZGUg b2Ygb2xkIGNsdXN0ZXInKTsKICMgQ2hlY2sgdGhhdCB0aGUgc2xvdCAncmVncmVzc19zdWInIGhh cyBtaWdyYXRlZCB0byB0aGUgbmV3IGNsdXN0ZXIKICRuZXdwdWItPnN0YXJ0OwogbXkgJHJlc3Vs dCA9ICRuZXdwdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0 d29fcGhhc2UgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyIpOwotaXMoJHJlc3VsdCwgcXEocmVn cmVzc19zdWJ8dCksICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKKwki U0VMRUNUIHNsb3RfbmFtZSwgdHdvX3BoYXNlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9u X3Nsb3RzIik7CitpcygkcmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0fHQpLCAnY2hlY2sgdGhlIHNs b3QgZXhpc3RzIG9uIG5ldyBjbHVzdGVyJyk7CiAKICMgVXBkYXRlIHRoZSBjb25uZWN0aW9uCiBt eSAkbmV3X2Nvbm5zdHIgPSAkbmV3cHViLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwppbmRleCAzN2Y5NTE2MzIwLi42ZDlhZDVkNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjU2Myw3ICs2 NTYzLDggQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQu cG9wdDsKIAlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLAotCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwkJZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFs c2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNjYyNyw2ICs2NjI4 LDExIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UpCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCiAJCQkJ CQkJICBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CiAKKwkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTcwMDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIHN1 YmZhaWxvdmVyIEFTIFwiJXNcIlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIi KSk7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAgIiwgIHN1YnN5bmNjb21t aXQgQVMgXCIlc1wiXG4iCiAJCQkJCQkgICIsICBzdWJjb25uaW5mbyBBUyBcIiVzXCJcbiIsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMKaW5kZXggYWRhNzExZDAyZi4uMTUxYTUyMTFlZSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YwpAQCAtMTk0Myw3ICsxOTQzLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQs IGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIp OwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChIZWFk TWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnkpICYmIFRhaWxNYXRjaGVz KCJTRVQiLCAiKCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJv ciIsICJvcmlnaW4iLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJv ciIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJy dW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9u b3VzX2NvbW1pdCIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0tJUCAoICovCkBA IC0zMzQwLDcgKzMzNDAsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50 IHN0YXJ0LCBpbnQgZW5kKQogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1l PiAuLi4gIFdJVEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwg IlNVQlNDUklQVElPTiIpICYmIFRhaWxNYXRjaGVzKCJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVf V0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJ CQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgIm9yaWdpbiIsCisJCQkJCSAgImRp c2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAogCQkJCQkg ICJwYXNzd29yZF9yZXF1aXJlZCIsICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJ ICAic3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggYWIyMDZiYWQ3ZC4uNGQwZTM2NDYy NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05Myw2ICs5MywxMSBA QCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJL SV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCWJvb2wJCXN1YnJ1bmFzb3duZXI7CS8qIFRydWUg aWYgcmVwbGljYXRpb24gc2hvdWxkIGV4ZWN1dGUgYXMgdGhlCiAJCQkJCQkJCSAqIHN1YnNjcmlw dGlvbiBvd25lciAqLwogCisJYm9vbAkJc3ViZmFpbG92ZXI7CS8qIFRydWUgaWYgdGhlIGFzc29j aWF0ZWQgcmVwbGljYXRpb24gc2xvdHMKKwkJCQkJCQkJICogKGkuZS4gdGhlIG1haW4gc2xvdCBh bmQgdGhlIHRhYmxlIHN5bmMKKwkJCQkJCQkJICogc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRh YmFzZSBhcmUgZW5hYmxlZAorCQkJCQkJCQkgKiB0byBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIHN0 YW5kYnlzLiAqLworCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGgg ZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlz aGVyICovCiAJdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05PVF9OVUxMOwpAQCAtMTQ4LDYg KzE1MywxMCBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAlMaXN0CSAgICpwdWJsaWNh dGlvbnM7CS8qIExpc3Qgb2YgcHVibGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRvICovCiAJ Y2hhcgkgICAqb3JpZ2luOwkJCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20g dGhlCiAJCQkJCQkJCSAqIHNwZWNpZmllZCBvcmlnaW4gKi8KKwlib29sCQlmYWlsb3ZlcjsJCS8q IFRydWUgaWYgdGhlIGFzc29jaWF0ZWQgcmVwbGljYXRpb24gc2xvdHMKKwkJCQkJCQkJICogKGku ZS4gdGhlIG1haW4gc2xvdCBhbmQgdGhlIHRhYmxlIHN5bmMKKwkJCQkJCQkJICogc2xvdHMpIGlu IHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZAorCQkJCQkJCQkgKiB0byBiZSBzeW5j aHJvbml6ZWQgdG8gdGhlIHN0YW5kYnlzLiAqLwogfSBTdWJzY3JpcHRpb247CiAKIC8qIERpc2Fs bG93IHN0cmVhbWluZyBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbnMuICovCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgYi9z cmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjQ2MjkzYzM5ZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNf c3luYy5wbApAQCAtMCwwICsxLDg5IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdz OwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IHdoZW4gYSBzdWJzY3JpcHRpb24gd2l0 aCBmYWlsb3ZlciBlbmFibGVkIGlzIGNyZWF0ZWQsIGl0IHdpbGwgYWx0ZXIKKyMgdGhlIGZhaWxv dmVyIHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nIHNsb3Qgb24gdGhlIHB1Ymxpc2hlci4K KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMg Q3JlYXRlIHB1Ymxpc2hlcgorbXkgJHB1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygncHVibGlzaGVyJyk7CiskcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcg PT4gJ2xvZ2ljYWwnKTsKKyRwdWJsaXNoZXItPnN0YXJ0OworCiskcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfbXlwdWIgRk9SIEFM TCBUQUJMRVM7IgorKTsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJHB1Ymxpc2hlci0+Y29u bnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBDcmVhdGUgYSBzdWJzY3JpYmVyIG5vZGUs IHdhaXQgZm9yIHN5bmMgdG8gY29tcGxldGUKK215ICRzdWJzY3JpYmVyMSA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjEnKTsKKyRzdWJzY3JpYmVyMS0+aW5pdDsK KyRzdWJzY3JpYmVyMS0+c3RhcnQ7CisKKyMgQ3JlYXRlIGEgc2xvdCBvbiB0aGUgcHVibGlzaGVy IHdpdGggZmFpbG92ZXIgZGlzYWJsZWQKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dCgnbHN1YjFfc2xvdCcsICdwZ291dHB1dCcsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOyIKKyk7CisK KyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGlzIHR1cm5lZCBv ZmYKK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCXF7U0VMRUNU IGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xz dWIxX3Nsb3QnO30KKwkpLAorCSJmIiwKKwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3ZlciBmYWxz ZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyMgQ3JlYXRlIGEgc3Vic2NyaXB0aW9uICh1c2luZyB0 aGUgc2FtZSBzbG90IGNyZWF0ZWQgYWJvdmUpIHRoYXQgZW5hYmxlcworIyBmYWlsb3Zlci4KKyRz dWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxzdWIxX3Nsb3QsIGNvcHlfZGF0YT1m YWxzZSwgZmFpbG92ZXIgPSB0cnVlLCBjcmVhdGVfc2xvdCA9IGZhbHNlLCBlbmFibGVkID0gZmFs c2UpOyIKKyk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90 IGhhcyBub3cgYmVlbiB0dXJuZWQgb24KK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdw b3N0Z3JlcycsCisJCXF7U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMg V0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJ0IiwKKwknbG9naWNhbCBz bG90IGhhcyBmYWlsb3ZlciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IGNoYW5n aW5nIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiBhIHN1YnNjcmlwdGlvbiB1cGRhdGVzIHRoZQor IyBjb3JyZXNwb25kaW5nIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBzbG90LgorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBEaXNhYmxlIGZh aWxvdmVyCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19teXN1YjEgU0VUIChmYWlsb3ZlciA9IGZhbHNlKSIpOworCisjIENv bmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMgbm93IGJlZW4gdHVy bmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtT RUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUg PSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVy IGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBFbmFibGUgZmFpbG92ZXIKKyRzdWJzY3Jp YmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X215c3ViMSBTRVQgKGZhaWxvdmVyID0gdHJ1ZSkiKTsKKworIyBDb25maXJtIHRoYXQgdGhlIGZh aWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBvbgoraXMoICRwdWJs aXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJv bSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQor CSksCisJInQiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRydWUgb24gdGhlIHB1Ymxp c2hlcicpOworCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJT Q1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjE1ZWRkYmZmMy4uNWZhMjMw YTg5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAt MTE2LDE4ICsxMTYsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3Jp cHRpb24uCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVn cmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjM7CkBAIC0xNDUsMTAgKzE0NSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVjdGlv biBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25uZWN0aW9u IGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVz aCA9IGZhbHNlKTsKQEAgLTE1NywxMCArMTU3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUp OwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGlj YXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIy LHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAg IHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYsMTAgQEAg RVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0ZV9zbG90 IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0g JzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAg ICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBs c24gPSBOT05FCkBAIC0xODgsMTAgKzE4OCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9u IChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAg ICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IDAvMAogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIyMywxMCArMjIz LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hy b25vdXNfY29tbWl0ID0gZm9vYmFyKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1l dGVyICJzeW5jaHJvbm91c19jb21taXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1 ZXM6IGxvY2FsLCByZW1vdGVfd3JpdGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg ICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sg dG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTI1NSwxOSArMjU1LDE5IEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjc5 LDI3ICsyNzksMjcgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRp b24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNO IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCist LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE0LDEw ICszMTQsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAg ICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tIGZh aWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMzMiwxMCBA QCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAi cmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3Rw dWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMzcxLDEwICszNzEsMTAgQEAgQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS1mYWls IC0gYWx0ZXIgb2YgdHdvX3BoYXNlIG9wdGlvbiBub3Qgc3VwcG9ydGVkLgpAQCAtMzgzLDEwICsz ODMsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogInR3 b19waGFzZSIKIC0tIGJ1dCBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJs ZWQKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0 cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zOTYsMTAgKzM5NiwxMCBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBw ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAg ICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC00MTIsMTggKzQxMiwzMSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNj cmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisoMSByb3cpCisKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIHRlc3QgZmFpbG92ZXIgb3B0aW9u CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBmYWlsb3ZlciA9IHRydWUpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK1xkUnMrCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IHQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRp b24uc3FsCmluZGV4IDQ0NGU1NjNmZjMuLmU0NjAxMTU4YjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c3Vic2NyaXB0aW9uLnNxbApAQCAtMjkwLDYgKzI5MCwxNCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwogCistLSB0ZXN0IGZhaWxvdmVyIG9wdGlvbgor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgZmFpbG92ZXIgPSB0cnVlKTsKKworXGRScysKKworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViOworCiAtLSBsZXQncyBkbyBzb21lIHRlc3RzIHdpdGggcGdfY3JlYXRl X3N1YnNjcmlwdGlvbiByYXRoZXIgdGhhbiBzdXBlcnVzZXIKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CiAKLS0gCjIuMzAuMC53aW5kb3dzLjIK Cg== --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v68-0004-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Description: v68-0004-Add-logical-slot-sync-capability-to-the-physical.patch Content-Disposition: attachment; filename="v68-0004-Add-logical-slot-sync-capability-to-the-physical.patch"; size=90705; creation-date="Thu, 25 Jan 2024 02:51:34 GMT"; modification-date="Thu, 25 Jan 2024 02:57:29 GMT" Content-Transfer-Encoding: base64 RnJvbSBjN2ZjYWU3ZmYyYjZhYTQ4OTM3OTkxZTRhMjZkMmJkNWNhZmUxZjZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBUaHUsIDI1IEphbiAyMDI0IDEwOjI3OjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjggNC84XSBBZGQgbG9naWNhbCBzbG90IHN5bmMgY2FwYWJpbGl0eSB0byB0aGUgcGh5c2ljYWwK IHN0YW5kYnkKClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzeW5jaHJvbml6YXRpb24gb2YgbG9naWNh bCByZXBsaWNhdGlvbiBzbG90cwpmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciB0byB0aGUgcGh5c2lj YWwgc3RhbmRieSBzbyB0aGF0IGxvZ2ljYWwKcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0 ZXIgZmFpbG92ZXIuCgpHVUMgJ2VuYWJsZV9zeW5jc2xvdCcgZW5hYmxlcyBhIHBoeXNpY2FsIHN0 YW5kYnkgdG8gc3luY2hyb25pemUgZmFpbG92ZXIKbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBm cm9tIHRoZSBwcmltYXJ5IHNlcnZlci4KClRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG9u IHRoZSBwcmltYXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdApzdGFuZGJ5IGJ5IGVu YWJsaW5nIHRoZSBmYWlsb3ZlciBvcHRpb24gZHVyaW5nIHNsb3QgY3JlYXRpb24gYW5kIHNldHRp bmcKJ2VuYWJsZV9zeW5jc2xvdCcgb24gdGhlIHN0YW5kYnkuIEZvciB0aGUgc3luY2hyb25pemF0 aW9uIHRvIHdvcmssIGl0IGlzCm1hbmRhdG9yeSB0byBoYXZlIGEgcGh5c2ljYWwgcmVwbGljYXRp b24gc2xvdCBiZXR3ZWVuIHRoZSBwcmltYXJ5IGFuZCB0aGUKc3RhbmRieSwgYW5kIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KCkFsbCB0aGUgZmFp bG92ZXIgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBvbiB0aGUgcHJpbWFyeSAoYXNzdW1pbmcK Y29uZmlndXJhdGlvbnMgYXJlIGFwcHJvcHJpYXRlKSBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVk IG9uIHRoZSBwaHlzaWNhbApzdGFuZGJ5cyBhbmQgYXJlIHN5bmNlZCBwZXJpb2RpY2FsbHkuIFNs b3Qtc3luYyB3b3JrZXIgb24gdGhlIHN0YW5kYnkgc2VydmVyCnBpbmcgdGhlIHByaW1hcnkgc2Vy dmVyIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIHRvIGdldCB0aGUgbmVjZXNzYXJ5CmZhaWxvdmVyIGxv Z2ljYWwgc2xvdHMgaW5mb3JtYXRpb24gYW5kIGNyZWF0ZS91cGRhdGUgdGhlIHNsb3RzIGxvY2Fs bHkuCgpUaGUgbmFwIHRpbWUgb2YgdGhlIHdvcmtlciBpcyB0dW5lZCBhY2NvcmRpbmcgdG8gdGhl IGFjdGl2aXR5IG9uIHRoZSBwcmltYXJ5LgpUaGUgd29ya2VyIHdhaXRzIGZvciBhIHBlcmlvZCBv ZiB0aW1lIGJlZm9yZSB0aGUgbmV4dCBzeW5jaHJvbml6YXRpb24sIHdpdGggdGhlCmR1cmF0aW9u IHZhcnlpbmcgYmFzZWQgb24gd2hldGhlciBhbnkgc2xvdHMgd2VyZSB1cGRhdGVkIGR1cmluZyB0 aGUgbGFzdApjeWNsZS4KClRoZSBsb2dpY2FsIHNsb3RzIGNyZWF0ZWQgYnkgc2xvdC1zeW5jIHdv cmtlciBvbiBwaHlzaWNhbCBzdGFuZGJ5cyBhcmUgbm90CmFsbG93ZWQgdG8gYmUgZHJvcHBlZCBv ciBjb25zdW1lZC4gQW55IGF0dGVtcHQgdG8gcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nIG9uCnN1 Y2ggc2xvdHMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuCgpJZiBhIGxvZ2ljYWwgc2xvdCBpcyBp bnZhbGlkYXRlZCBvbiB0aGUgcHJpbWFyeSwgdGhlbiB0aGF0IHNsb3Qgb24gdGhlIHN0YW5kYnkK aXMgYWxzbyBpbnZhbGlkYXRlZC4KCklmIGEgbG9naWNhbCBzbG90IG9uIHRoZSBwcmltYXJ5IGlz IHZhbGlkIGJ1dCBpcyBpbnZhbGlkYXRlZCBvbiB0aGUgc3RhbmRieSwKdGhlbiB0aGF0IHNsb3Qg aXMgZHJvcHBlZCBhbmQgcmVjcmVhdGVkIG9uIHRoZSBzdGFuZGJ5IGluIG5leHQgc3luYy1jeWNs ZQpwcm92aWRlZCB0aGUgc2xvdCBzdGlsbCBleGlzdHMgb24gdGhlIHByaW1hcnkgc2VydmVyLiBJ dCBpcyBva2F5IHRvIHJlY3JlYXRlCnN1Y2ggc2xvdHMgYXMgbG9uZyBhcyB0aGVzZSBhcmUgbm90 IGNvbnN1bWFibGUgb24gdGhlIHN0YW5kYnkgKHdoaWNoIGlzIHRoZQpjYXNlIGN1cnJlbnRseSku IFRoaXMgc2l0dWF0aW9uIG1heSBvY2N1ciBkdWUgdG8gdGhlIGZvbGxvd2luZyByZWFzb25zOgot IFRoZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVu dCB0byByZXRhaW4gV0FMCiAgcmVjb3JkcyBmcm9tIHRoZSByZXN0YXJ0X2xzbiBvZiB0aGUgc2xv dC4KLSBwcmltYXJ5X3Nsb3RfbmFtZSBpcyB0ZW1wb3JhcmlseSByZXNldCB0byBudWxsIGFuZCB0 aGUgcGh5c2ljYWwgc2xvdCBpcwogIHJlbW92ZWQuCi0gVGhlIHByaW1hcnkgY2hhbmdlcyB3YWxf bGV2ZWwgdG8gYSBsZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwuCgpUaGUgc2xvdHMgc3luY2hyb25p emF0aW9uIHN0YXR1cyBvbiB0aGUgc3RhbmRieSBjYW4gYmUgbW9uaXRvcmVkIHVzaW5nCidzeW5j ZWQnIGNvbHVtbiBvZiBwZ19yZXBsaWNhdGlvbl9zbG90cyB2aWV3LgotLS0KIGRvYy9zcmMvc2dt bC9iZ3dvcmtlci5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKy0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKy0KIGRvYy9zcmMvc2dt bC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgMzcgKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgICAxNiArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgICAgICAgICAgfCAgICA1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyAgICAgfCAgIDE1ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgIDMgKy0KIHNyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAgICAgICB8ICAgIDQgKwogc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICAgIHwgICAxMCArCiAuLi4vbGlicHF3YWxyZWNl aXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAgIDQxICsKIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMgICAgIHwgICAxMiArCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDExOTUgKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8ICAgNTUgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgMjYgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYyAgICB8ICAgMTYgKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgICAxOSArLQogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIC4uLi91dGls cy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dCAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRl L3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDE3ICstCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oICAgICAgICAgfCAgIDExICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHNlbmRlci5oICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd29ya2VyX2ludGVybmFsLmggICAgIHwgICAxMCArCiAuLi4vdC8wNTBfc3RhbmRi eV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsICAgICAgfCAgMTY2ICsrLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgICAgNSArLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgICAgICAgIHwgICAgMyArLQogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAgMiArCiAzNCBmaWxlcyBjaGFuZ2Vk LCAxNzUzIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sIGIvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwK aW5kZXggMmMzOTMzODVhOS4uYTdjZmU2YzU4YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Jn d29ya2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwKQEAgLTExNCwxOCAr MTE0LDU5IEBAIHR5cGVkZWYgc3RydWN0IEJhY2tncm91bmRXb3JrZXIKIAogICA8cGFyYT4KICAg IDxzdHJ1Y3RmaWVsZD5iZ3dfc3RhcnRfdGltZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSBzZXJ2ZXIg c3RhdGUgZHVyaW5nIHdoaWNoCi0gICA8Y29tbWFuZD5wb3N0Z3JlczwvY29tbWFuZD4gc2hvdWxk IHN0YXJ0IHRoZSBwcm9jZXNzOyBpdCBjYW4gYmUgb25lIG9mCi0gICA8bGl0ZXJhbD5CZ1dvcmtl clN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMKLSAgIDxj b21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBpdHNlbGYgaGFzIGZpbmlzaGVkIGl0cyBvd24gaW5p dGlhbGl6YXRpb247IHByb2Nlc3NlcwotICAgcmVxdWVzdGluZyB0aGlzIGFyZSBub3QgZWxpZ2li bGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zKSwKLSAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRf Q29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQg c3RhdGUKLSAgIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qgc3RhbmRieSwgYWxsb3dpbmcgcHJv Y2Vzc2VzIHRvIGNvbm5lY3QgdG8KLSAgIGRhdGFiYXNlcyBhbmQgcnVuIHJlYWQtb25seSBxdWVy aWVzKSwgYW5kCi0gICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xp dGVyYWw+IChzdGFydCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0gaGFzCi0gICBlbnRlcmVkIG5vcm1h bCByZWFkLXdyaXRlIHN0YXRlKS4gIE5vdGUgdGhlIGxhc3QgdHdvIHZhbHVlcyBhcmUgZXF1aXZh bGVudAotICAgaW4gYSBzZXJ2ZXIgdGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5LiAgTm90ZSB0aGF0 IHRoaXMgc2V0dGluZyBvbmx5IGluZGljYXRlcwotICAgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSB0 byBiZSBzdGFydGVkOyB0aGV5IGRvIG5vdCBzdG9wIHdoZW4gYSBkaWZmZXJlbnQgc3RhdGUKLSAg IGlzIHJlYWNoZWQuCisgICA8Y29tbWFuZD5wb3N0Z3JlczwvY29tbWFuZD4gc2hvdWxkIHN0YXJ0 IHRoZSBwcm9jZXNzLiBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nCisgICBvbmx5IGluZGljYXRlcyB3 aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRvIGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Agd2hl bgorICAgYSBkaWZmZXJlbnQgc3RhdGUgaXMgcmVhY2hlZC4gUG9zc2libGUgdmFsdWVzIGFyZToK KworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0 ZXJhbD5CZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvbGl0ZXJhbD48L3Rlcm0+CisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdX b3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAg U3RhcnQgYXMgc29vbiBhcyBwb3N0Z3JlcyBpdHNlbGYgaGFzIGZpbmlzaGVkIGl0cyBvd24gaW5p dGlhbGl6YXRpb247CisgICAgICAgcHJvY2Vzc2VzIHJlcXVlc3RpbmcgdGhpcyBhcmUgbm90IGVs aWdpYmxlIGZvciBkYXRhYmFzZSBjb25uZWN0aW9ucy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAg IDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9saXRlcmFsPjwv dGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGluZGV4dGVybT48 cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvcHJpbWFyeT48L2luZGV4dGVy bT4KKyAgICAgICBTdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZSBoYXMgYmVlbiBy ZWFjaGVkIGluIGEgaG90LXN0YW5kYnksCisgICAgICAgYWxsb3dpbmcgcHJvY2Vzc2VzIHRvIGNv bm5lY3QgdG8gZGF0YWJhc2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJpZXMuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlz dGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0 ZV9Ib3RTdGFuZGJ5PC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRT dGF0ZV9Ib3RTdGFuZGJ5PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAgIFNhbWUgbWVhbmlu ZyBhcyA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gYnV0 CisgICAgICAgaXQgaXMgbW9yZSBzdHJpY3QgaW4gdGVybXMgb2YgdGhlIHNlcnZlciBpLmUuIHN0 YXJ0IHRoZSB3b3JrZXIgb25seQorICAgICAgIGlmIGl0IGlzIGhvdC1zdGFuZGJ5LgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZp bmlzaGVkPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8 L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU3RhcnQgYXMgc29vbiBhcyB0aGUgc3lzdGVt IGhhcyBlbnRlcmVkIG5vcm1hbCByZWFkLXdyaXRlIHN0YXRlLiBOb3RlCisgICAgICAgdGhhdCB0 aGUgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IGFuZAor ICAgICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9saXRlcmFsPiBh cmUgZXF1aXZhbGVudAorICAgICAgIGluIGEgc2VydmVyIHRoYXQncyBub3QgYSBob3Qgc3RhbmRi eS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPC92YXJpYWJsZWxpc3Q+CiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRl eCA2MTAzODQ3MmM1Li5iZDJkMmY4NzFlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NjEyLDggKzQ2MTIsMTMg QEAgQU5ZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFi bGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSIKICAgICAgICAgICA8dmFybmFtZT5wcmltYXJ5X2Nv bm5pbmZvPC92YXJuYW1lPiBzdHJpbmcsIG9yIGluIGEgc2VwYXJhdGUKICAgICAgICAgICA8Zmls ZW5hbWU+fi8ucGdwYXNzPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgKHVz ZQogICAgICAgICAgIDxsaXRlcmFsPnJlcGxpY2F0aW9uPC9saXRlcmFsPiBhcyB0aGUgZGF0YWJh c2UgbmFtZSkuCi0gICAgICAgICAgRG8gbm90IHNwZWNpZnkgYSBkYXRhYmFzZSBuYW1lIGluIHRo ZQotICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHN0cmluZy4K KyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIElmIHNsb3Qgc3lu Y2hyb25pemF0aW9uIGlzIGVuYWJsZWQgKHNlZQorICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1 Yy1lbmFibGUtc3luY3Nsb3QiLz4pIHRoZW4gaXQgaXMgYWxzbworICAgICAgICAgIG5lY2Vzc2Fy eSB0byBzcGVjaWZ5IDxsaXRlcmFsPmRibmFtZTwvbGl0ZXJhbD4gaW4gdGhlCisgICAgICAgICAg PHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLiBUaGlzIHdpbGwgb25s eSBiZSB1c2VkIGZvcgorICAgICAgICAgIHNsb3Qgc3luY2hyb25pemF0aW9uLiBJdCBpcyBpZ25v cmVkIGZvciBzdHJlYW1pbmcuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8cGFyYT4KICAg ICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgaW4gdGhlIDxmaWxlbmFtZT5w b3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPgpAQCAtNDkzOCw2ICs0OTQzLDI0IEBAIEFOWSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBs YWNlYWJsZSBjbGFzcz0iCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtZW5hYmxlLXN5bmNzbG90IiB4cmVmbGFiZWw9 ImVuYWJsZV9zeW5jc2xvdCI+CisgICAgICA8dGVybT48dmFybmFtZT5lbmFibGVfc3luY3Nsb3Q8 L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAg ICAgPHByaW1hcnk+PHZhcm5hbWU+ZW5hYmxlX3N5bmNzbG90PC92YXJuYW1lPiBjb25maWd1cmF0 aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJt PgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBJdCBlbmFibGVzIGEg cGh5c2ljYWwgc3RhbmRieSB0byBzeW5jaHJvbml6ZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzCisg ICAgICAgIGZyb20gdGhlIHByaW1hcnkgc2VydmVyIHNvIHRoYXQgbG9naWNhbCBzdWJzY3JpYmVy cyBhcmUgbm90IGJsb2NrZWQKKyAgICAgICAgYWZ0ZXIgZmFpbG92ZXIuCisgICAgICAgPC9wYXJh PgorICAgICAgIDxwYXJhPgorICAgICAgICBJdCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBUaGlz IHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgaW4gdGhlCisgICAgICAgIDxmaWxlbmFtZT5wb3N0 Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBmaWxlIG9yIG9uIHRoZSBzZXJ2ZXIgY29tbWFuZCBsaW5l LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5 PgogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29k aW5nLnNnbWwKaW5kZXggY2QxNTJkNGNlZC4uZWMxNGNmNzMyNSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbApAQCAtMzU4LDYgKzM1OCw0MyBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZyb20g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVQog ICAgICAgU28gaWYgYSBzbG90IGlzIG5vIGxvbmdlciByZXF1aXJlZCBpdCBzaG91bGQgYmUgZHJv cHBlZC4KICAgICAgPC9wYXJhPgogICAgIDwvY2F1dGlvbj4KKworICAgPC9zZWN0Mj4KKworICAg PHNlY3QyIGlkPSJsb2dpY2FsZGVjb2RpbmctcmVwbGljYXRpb24tc2xvdHMtc3luY2hyb25pemF0 aW9uIj4KKyAgICA8dGl0bGU+UmVwbGljYXRpb24gU2xvdCBTeW5jaHJvbml6YXRpb248L3RpdGxl PgorICAgIDxwYXJhPgorICAgICBBIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBvbiB0aGUgcHJp bWFyeSBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBob3QKKyAgICAgc3RhbmRieSBieSBlbmFi bGluZyB0aGUgPGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+IG9wdGlvbiBkdXJpbmcgc2xvdAor ICAgICBjcmVhdGlvbiBhbmQgc2V0dGluZworICAgICA8bGluayBsaW5rZW5kPSJndWMtZW5hYmxl LXN5bmNzbG90Ij48dmFybmFtZT5lbmFibGVfc3luY3Nsb3Q8L3Zhcm5hbWU+PC9saW5rPgorICAg ICBvbiB0aGUgc3RhbmRieS4gRm9yIHRoZSBzeW5jaHJvbml6YXRpb24KKyAgICAgdG8gd29yaywg aXQgaXMgbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdl ZW4gdGhlCisgICAgIHByaW1hcnkgYW5kIHRoZSBzdGFuZGJ5LCBhbmQKKyAgICAgPGxpbmsgbGlu a2VuZD0iZ3VjLWhvdC1zdGFuZGJ5LWZlZWRiYWNrIj48dmFybmFtZT5ob3Rfc3RhbmRieV9mZWVk YmFjazwvdmFybmFtZT48L2xpbms+CisgICAgIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRi eS4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIGFiaWxpdHkgdG8gcmVzdW1l IGxvZ2ljYWwgcmVwbGljYXRpb24gYWZ0ZXIgZmFpbG92ZXIgZGVwZW5kcyB1cG9uIHRoZQorICAg ICA8bGluayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLXNsb3RzIj5wZ19yZXBsaWNhdGlv bl9zbG90czwvbGluaz4uPHN0cnVjdGZpZWxkPnN5bmNlZDwvc3RydWN0ZmllbGQ+CisgICAgIHZh bHVlIGZvciB0aGUgc3luY2hyb25pemVkIHNsb3RzIG9uIHRoZSBzdGFuZGJ5IGF0IHRoZSB0aW1l IG9mIGZhaWxvdmVyLgorICAgICBPbmx5IHBlcnNpc3RlbnQgc2xvdHMgdGhhdCBoYXZlIGF0dGFp bmVkIHN5bmNlZCBzdGF0ZSBhcyB0cnVlIG9uIHRoZSBzdGFuZGJ5CisgICAgIGJlZm9yZSBmYWls b3ZlciBjYW4gYmUgdXNlZCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3Zlci4K KyAgICAgVGVtcG9yYXJ5IHNsb3RzIHdpbGwgYmUgZHJvcHBlZCwgdGhlcmVmb3JlIGxvZ2ljYWwg cmVwbGljYXRpb24gZm9yIHRob3NlCisgICAgIHNsb3RzIGNhbm5vdCBiZSByZXN1bWVkLiBGb3Ig ZXhhbXBsZSwgaWYgdGhlIHN5bmNocm9uaXplZCBzbG90IGNvdWxkIG5vdAorICAgICBiZWNvbWUg cGVyc2lzdGVudCBvbiB0aGUgc3RhbmRieSBkdWUgdG8gYSBkaXNhYmxlZCBzdWJzY3JpcHRpb24s IHRoZW4gdGhlCisgICAgIHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgcmVzdW1lZCBhZnRlciBmYWls b3ZlciBldmVuIHdoZW4gaXQgaXMgZW5hYmxlZC4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4K KyAgICAgVG8gcmVzdW1lIGxvZ2ljYWwgcmVwbGljYXRpb24gYWZ0ZXIgZmFpbG92ZXIgZnJvbSB0 aGUgc3luY2VkIGxvZ2ljYWwKKyAgICAgc2xvdHMsIHRoZSBzdWJzY3JpcHRpb24ncyAnY29ubmlu Zm8nIG11c3QgYmUgYWx0ZXJlZCB0byBwb2ludCB0byB0aGUKKyAgICAgbmV3IHByaW1hcnkgc2Vy dmVyLiBUaGlzIGlzIGRvbmUgdXNpbmcKKyAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vi c2NyaXB0aW9uLXBhcmFtcy1jb25uZWN0aW9uIj48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04g Li4uIENPTk5FQ1RJT048L2NvbW1hbmQ+PC9saW5rPi4KKyAgICAgSXQgaXMgcmVjb21tZW5kZWQg dGhhdCBzdWJzY3JpcHRpb25zIGFyZSBmaXJzdCBkaXNhYmxlZCBiZWZvcmUgcHJvbW90aW5nCisg ICAgIHRoZSBzdGFuZGJ5IGFuZCBhcmUgZW5hYmxlZCBiYWNrIGFmdGVyIGFsdGVyaW5nIHRoZSBj b25uZWN0aW9uIHN0cmluZy4KKyAgICA8L3BhcmE+CiAgICA8L3NlY3QyPgogCiAgICA8c2VjdDIg aWQ9ImxvZ2ljYWxkZWNvZGluZy1leHBsYW5hdGlvbi1vdXRwdXQtcGx1Z2lucyI+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVt LXZpZXdzLnNnbWwKaW5kZXggODhmZTRiNjM0MS4uNDU5MTAxYWY1ZiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmll d3Muc2dtbApAQCAtMjU2Niw2ICsyNTY2LDIyIEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwg TEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIGFmdGVyIGZhaWxvdmVyLiBB bHdheXMgZmFsc2UgZm9yIHBoeXNpY2FsIHNsb3RzLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5zeW5jZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICBUcnVlIGlmIHRoaXMgaXMgYSBsb2dpY2FsIHNsb3QgdGhh dCB3YXMgc3luY2VkIGZyb20gYSBwcmltYXJ5IHNlcnZlci4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIE9uIGEgaG90IHN0YW5kYnksIHRoZSBzbG90cyB3aXRoIHRoZSBzeW5j ZWQgY29sdW1uIG1hcmtlZCBhcyB0cnVlIGNhbgorICAgICAgIG5laXRoZXIgYmUgdXNlZCBmb3Ig bG9naWNhbCBkZWNvZGluZyBub3IgZHJvcHBlZCBieSB0aGUgdXNlci4gVGhlIHZhbHVlCisgICAg ICAgb2YgdGhpcyBjb2x1bW4gaGFzIG5vIG1lYW5pbmcgb24gdGhlIHByaW1hcnkgc2VydmVyOyB0 aGUgY29sdW1uIHZhbHVlIG9uCisgICAgICAgdGhlIHByaW1hcnkgaXMgZGVmYXVsdCBmYWxzZSBm b3IgYWxsIHNsb3RzIGJ1dCBtYXkgKGlmIGxlZnRvdmVyIGZyb20gYQorICAgICAgIHByb21vdGVk IHN0YW5kYnkpIGFsc28gYmUgdHJ1ZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9nLmMKaW5kZXggNDc4Mzc3YzRhMi4uMmQ2NmQwZDg0YiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYwpAQCAtMzU5Niw2ICszNTk2LDkgQEAgWExvZ0dldExhc3RSZW1vdmVkU2Vn bm8odm9pZCkKIC8qCiAgKiBSZXR1cm4gdGhlIG9sZGVzdCBXQUwgc2VnbWVudCBvbiB0aGUgZ2l2 ZW4gVExJIHRoYXQgc3RpbGwgZXhpc3RzIGluCiAgKiBYTE9HRElSLCBvciAwIGlmIG5vbmUuCisg KgorICogSWYgdGhlIGdpdmVuIFRMSSBpcyAwLCByZXR1cm4gdGhlIG9sZGVzdCBXQUwgc2VnbWVu dCBhbW9uZyBhbGwgdGhlIGN1cnJlbnRseQorICogZXhpc3RpbmcgV0FMIHNlZ21lbnRzLgogICov CiBYTG9nU2VnTm8KIFhMb2dHZXRPbGRlc3RTZWdubyhUaW1lTGluZUlEIHRsaSkKQEAgLTM2MTks NyArMzYyMiw3IEBAIFhMb2dHZXRPbGRlc3RTZWdubyhUaW1lTGluZUlEIHRsaSkKIAkJCQkJCSB3 YWxfc2VnbWVudF9zaXplKTsKIAogCQkvKiBJZ25vcmUgYW55dGhpbmcgdGhhdCdzIG5vdCBmcm9t IHRoZSBUTEkgb2YgaW50ZXJlc3QuICovCi0JCWlmICh0bGkgIT0gZmlsZV90bGkpCisJCWlmICh0 bGkgIT0gMCAmJiB0bGkgIT0gZmlsZV90bGkpCiAJCQljb250aW51ZTsKIAogCQkvKiBJZiBpdCdz IHRoZSBvbGRlc3Qgc28gZmFyLCB1cGRhdGUgb2xkZXN0X3NlZ25vLiAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCAxYjQ4ZDcxNzFhLi5lMzhhOTU4N2Uy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwpAQCAtNTAsNiAr NTAsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvc3RhcnR1cC5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIgorI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv ZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbGF0Y2gu aCIKQEAgLTE0NDEsNiArMTQ0MiwyMCBAQCBGaW5pc2hXYWxSZWNvdmVyeSh2b2lkKQogCSAqLwog CVhMb2dTaHV0ZG93bldhbFJjdigpOwogCisJLyoKKwkgKiBTaHV0ZG93biB0aGUgc2xvdCBzeW5j IHdvcmtlcnMgdG8gcHJldmVudCBwb3RlbnRpYWwgY29uZmxpY3RzIGJldHdlZW4KKwkgKiB1c2Vy IHByb2Nlc3NlcyBhbmQgc2xvdHN5bmMgd29ya2VycyBhZnRlciBhIHByb21vdGlvbi4KKwkgKgor CSAqIFdlIGRvIG5vdCB1cGRhdGUgdGhlICdzeW5jZWQnIGNvbHVtbiBmcm9tIHRydWUgdG8gZmFs c2UgaGVyZSwgYXMgYW55CisJICogZmFpbGVkIHVwZGF0ZSBjb3VsZCBsZWF2ZSAnc3luY2VkJyBj b2x1bW4gZmFsc2UgZm9yIHNvbWUgc2xvdHMuIFRoaXMKKwkgKiBjb3VsZCBjYXVzZSBpc3N1ZXMg ZHVyaW5nIHNsb3Qgc3luYyBhZnRlciByZXN0YXJ0aW5nIHRoZSBzZXJ2ZXIgYXMgYQorCSAqIHN0 YW5kYnkuIFdoaWxlIHVwZGF0aW5nIGFmdGVyIHN3aXRjaGluZyB0byB0aGUgbmV3IHRpbWVsaW5l IGlzIGFuCisJICogb3B0aW9uLCBpdCBkb2VzIG5vdCBzaW1wbGlmeSB0aGUgaGFuZGxpbmcgZm9y ICdzeW5jZWQnIGNvbHVtbi4KKwkgKiBUaGVyZWZvcmUsIHdlIHJldGFpbiB0aGUgJ3N5bmNlZCcg Y29sdW1uIGFzIHRydWUgYWZ0ZXIgcHJvbW90aW9uIGFzIGl0CisJICogbWF5IHByb3ZpZGUgdXNl ZnVsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzbG90IG9yaWdpbi4KKwkgKi8KKwlTaHV0RG93blNs b3RTeW5jKCk7CisKIAkvKgogCSAqIFdlIGFyZSBub3cgZG9uZSByZWFkaW5nIHRoZSB4bG9nIGZy b20gc3RyZWFtLiBUdXJuIG9mZiBzdHJlYW1pbmcKIAkgKiByZWNvdmVyeSB0byBmb3JjZSBmZXRj aGluZyB0aGUgZmlsZXMgKHdoaWNoIHdvdWxkIGJlIHJlcXVpcmVkIGF0IGVuZCBvZgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU0M2E5MzczOWQuLmFkNTdiYWRlMDcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwMjQsNyArMTAyNCw4IEBAIENS RUFURSBWSUVXIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgICAgICBMLnNhZmVfd2Fs X3NpemUsCiAgICAgICAgICAgICBMLnR3b19waGFzZSwKICAgICAgICAgICAgIEwuY29uZmxpY3Rf cmVhc29uLAotICAgICAgICAgICAgTC5mYWlsb3ZlcgorICAgICAgICAgICAgTC5mYWlsb3ZlciwK KyAgICAgICAgICAgIEwuc3luY2VkCiAgICAgRlJPTSBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMo KSBBUyBMCiAgICAgICAgICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgRCBPTiAoTC5kYXRvaWQg PSBELm9pZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIu YyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwppbmRleCA2N2Y5MmMyNGRiLi40 NjgyOGI4YTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMK KysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCkBAIC0yMSw2ICsyMSw3IEBA CiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRp b24vbG9naWNhbGxhdW5jaGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtl ci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUg InN0b3JhZ2UvZHNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9y YWdlL2xhdGNoLmgiCkBAIC0xMjksNiArMTMwLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdAogCXsK IAkJIkFwcGx5V29ya2VyTWFpbiIsIEFwcGx5V29ya2VyTWFpbgogCX0sCisJeworCQkiUmVwbFNs b3RTeW5jV29ya2VyTWFpbiIsIFJlcGxTbG90U3luY1dvcmtlck1haW4KKwl9LAogCXsKIAkJIlBh cmFsbGVsQXBwbHlXb3JrZXJNYWluIiwgUGFyYWxsZWxBcHBseVdvcmtlck1haW4KIAl9LApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBmZWI0NzFkZDFkLi5kOTBkNWQxNTc2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYworKysgYi9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtMTE2LDYgKzExNiw3IEBACiAjaW5j bHVkZSAicG9zdG1hc3Rlci93YWxzdW1tYXJpemVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24v bG9naWNhbGxhdW5jaGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wZ19z aG1lbS5oIgpAQCAtMTAxMCw2ICsxMDExLDEyIEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCiAJICovCiAJQXBwbHlMYXVuY2hlclJlZ2lzdGVyKCk7CiAKKwkvKgorCSAq IFJlZ2lzdGVyIHRoZSBzbG90IHN5bmMgd29ya2VyIGhlcmUgdG8ga2ljayBzdGFydCBzbG90LXN5 bmMgb3BlcmF0aW9uCisJICogc29vbmVyIG9uIHRoZSBwaHlzaWNhbCBzdGFuZGJ5LgorCSAqLwor CVNsb3RTeW5jV29ya2VyUmVnaXN0ZXIoKTsKKwogCS8qCiAJICogcHJvY2VzcyBhbnkgbGlicmFy aWVzIHRoYXQgc2hvdWxkIGJlIHByZWxvYWRlZCBhdCBwb3N0bWFzdGVyIHN0YXJ0CiAJICovCkBA IC01Nzk5LDYgKzU4MDYsOSBAQCBiZ3dvcmtlcl9zaG91bGRfc3RhcnRfbm93KEJnV29ya2VyU3Rh cnRUaW1lIHN0YXJ0X3RpbWUpCiAJCWNhc2UgUE1fSE9UX1NUQU5EQlk6CiAJCQlpZiAoc3RhcnRf dGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZSkKIAkJCQlyZXR1cm4gdHJ1ZTsK KwkJCWlmIChzdGFydF90aW1lID09IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0 YW5kYnkgJiYKKwkJCQkJIHBtU3RhdGUgIT0gUE1fUlVOKQorCQkJCXJldHVybiB0cnVlOwogCQkJ LyogZmFsbCB0aHJvdWdoICovCiAKIAkJY2FzZSBQTV9SRUNPVkVSWToKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2Vp dmVyLmMKaW5kZXggMjBkNTEyOGMwZS4uYWU3NmMwOThiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVy LmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1 ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3R1cGxlc3RvcmUuaCIKKyNpbmNs dWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIFBHX01PRFVMRV9NQUdJQzsKIApAQCAtNTcsNiArNTgs NyBAQCBzdGF0aWMgdm9pZCBsaWJwcXJjdl9nZXRfc2VuZGVyaW5mbyhXYWxSZWNlaXZlckNvbm4g KmNvbm4sCiAJCQkJCQkJCQljaGFyICoqc2VuZGVyX2hvc3QsIGludCAqc2VuZGVyX3BvcnQpOwog c3RhdGljIGNoYXIgKmxpYnBxcmN2X2lkZW50aWZ5X3N5c3RlbShXYWxSZWNlaXZlckNvbm4gKmNv bm4sCiAJCQkJCQkJCQkgIFRpbWVMaW5lSUQgKnByaW1hcnlfdGxpKTsKK3N0YXRpYyBjaGFyICps aWJwcXJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8pOwog c3RhdGljIGludAlsaWJwcXJjdl9zZXJ2ZXJfdmVyc2lvbihXYWxSZWNlaXZlckNvbm4gKmNvbm4p Owogc3RhdGljIHZvaWQgbGlicHFyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGUoV2FsUmVjZWl2 ZXJDb25uICpjb25uLAogCQkJCQkJCQkJCQkgVGltZUxpbmVJRCB0bGksIGNoYXIgKipmaWxlbmFt ZSwKQEAgLTk5LDYgKzEwMSw3IEBAIHN0YXRpYyBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFX YWxSZWNlaXZlckZ1bmN0aW9ucyA9IHsKIAkud2FscmN2X3NlbmQgPSBsaWJwcXJjdl9zZW5kLAog CS53YWxyY3ZfY3JlYXRlX3Nsb3QgPSBsaWJwcXJjdl9jcmVhdGVfc2xvdCwKIAkud2FscmN2X2Fs dGVyX3Nsb3QgPSBsaWJwcXJjdl9hbHRlcl9zbG90LAorCS53YWxyY3ZfZ2V0X2RibmFtZV9mcm9t X2Nvbm5pbmZvID0gbGlicHFyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvLAogCS53YWxyY3Zf Z2V0X2JhY2tlbmRfcGlkID0gbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkLAogCS53YWxyY3ZfZXhl YyA9IGxpYnBxcmN2X2V4ZWMsCiAJLndhbHJjdl9kaXNjb25uZWN0ID0gbGlicHFyY3ZfZGlzY29u bmVjdApAQCAtNDcxLDYgKzQ3NCw0NCBAQCBsaWJwcXJjdl9zZXJ2ZXJfdmVyc2lvbihXYWxSZWNl aXZlckNvbm4gKmNvbm4pCiAJcmV0dXJuIFBRc2VydmVyVmVyc2lvbihjb25uLT5zdHJlYW1Db25u KTsKIH0KIAorLyoKKyAqIEdldCBkYXRhYmFzZSBuYW1lIGZyb20gdGhlIHByaW1hcnkgc2VydmVy J3MgY29ubmluZm8uCisgKgorICogSWYgZGJuYW1lIGlzIG5vdCBmb3VuZCBpbiBjb25uSW5mbywg cmV0dXJuIE5VTEwgdmFsdWUuCisgKi8KK3N0YXRpYyBjaGFyICoKK2xpYnBxcmN2X2dldF9kYm5h bWVfZnJvbV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uSW5mbykKK3sKKwlQUWNvbm5pbmZvT3B0 aW9uICpvcHRzOworCWNoYXIJICAgKmRibmFtZSA9IE5VTEw7CisJY2hhcgkgICAqZXJyID0gTlVM TDsKKworCW9wdHMgPSBQUWNvbm5pbmZvUGFyc2UoY29ubkluZm8sICZlcnIpOworCWlmIChvcHRz ID09IE5VTEwpCisJeworCQkvKiBUaGUgZXJyb3Igc3RyaW5nIGlzIG1hbGxvYydkLCBzbyB3ZSBt dXN0IGZyZWUgaXQgZXhwbGljaXRseSAqLworCQljaGFyCSAgICplcnJjb3B5ID0gZXJyID8gcHN0 cmR1cChlcnIpIDogIm91dCBvZiBtZW1vcnkiOworCisJCVBRZnJlZW1lbShlcnIpOworCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJy bXNnKCJpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogJXMiLCBlcnJjb3B5KSkpOwor CX0KKworCWZvciAoUFFjb25uaW5mb09wdGlvbiAqb3B0ID0gb3B0czsgb3B0LT5rZXl3b3JkICE9 IE5VTEw7ICsrb3B0KQorCXsKKwkJLyoKKwkJICogSWYgbXVsdGlwbGUgZGJuYW1lcyBhcmUgc3Bl Y2lmaWVkLCB0aGVuIHRoZSBsYXN0IG9uZSB3aWxsIGJlCisJCSAqIHJldHVybmVkCisJCSAqLwor CQlpZiAoc3RyY21wKG9wdC0+a2V5d29yZCwgImRibmFtZSIpID09IDAgJiYgb3B0LT52YWwgJiYK KwkJCW9wdC0+dmFsWzBdICE9ICdcMCcpCisJCQlkYm5hbWUgPSBwc3RyZHVwKG9wdC0+dmFsKTsK Kwl9CisKKwlyZXR1cm4gZGJuYW1lOworfQorCiAvKgogICogU3RhcnQgc3RyZWFtaW5nIFdBTCBk YXRhIGZyb20gZ2l2ZW4gc3RyZWFtaW5nIG9wdGlvbnMuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvTWFrZWZpbGUKaW5kZXggMmRjMjVlMzdiYi4uYmEwM2VlZmYxYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQorKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCkBAIC0yNSw2ICsyNSw3IEBAIE9C SlMgPSBcCiAJcHJvdG8ubyBcCiAJcmVsYXRpb24ubyBcCiAJcmVvcmRlcmJ1ZmZlci5vIFwKKwlz bG90c3luYy5vIFwKIAlzbmFwYnVpbGQubyBcCiAJdGFibGVzeW5jLm8gXAogCXdvcmtlci5vCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IGNhMDljNjgzZjEu LjVhZWZiMTBlY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5j CkBAIC01MjQsNiArNTI0LDE4IEBAIENyZWF0ZURlY29kaW5nQ29udGV4dChYTG9nUmVjUHRyIHN0 YXJ0X2xzbiwKIAkJCQkgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiB3YXMgbm90IGNy ZWF0ZWQgaW4gdGhpcyBkYXRhYmFzZSIsCiAJCQkJCQlOYW1lU3RyKHNsb3QtPmRhdGEubmFtZSkp KSk7CiAKKwkvKgorCSAqIERvIG5vdCBhbGxvdyBjb25zdW1wdGlvbiBvZiBhICJzeW5jaHJvbml6 ZWQiIHNsb3QgdW50aWwgdGhlIHN0YW5kYnkKKwkgKiBnZXRzIHByb21vdGVkLgorCSAqLworCWlm IChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBzbG90LT5kYXRhLnN5bmNlZCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RB VEUpLAorCQkJCWVycm1zZygiY2Fubm90IHVzZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBmb3Ig bG9naWNhbCIKKwkJCQkJICAgIiBkZWNvZGluZyIsIE5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSks CisJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1h cnkgc2VydmVyLiIpLAorCQkJCWVycmhpbnQoIlNwZWNpZnkgYW5vdGhlciByZXBsaWNhdGlvbiBz bG90LiIpKTsKKwogCS8qCiAJICogQ2hlY2sgaWYgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCBk dWUgdG8gbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZS4gQXZvaWQKIAkgKiAiY2Fubm90IGdldCBjaGFu Z2VzIiB3b3JkaW5nIGluIHRoaXMgZXJybXNnIGJlY2F1c2UgdGhhdCdkIGJlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZAppbmRleCAxMDUwZWIyYzA5Li4zZGVj MzZhNmRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29u LmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQK QEAgLTExLDYgKzExLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncHJvdG8uYycs CiAgICdyZWxhdGlvbi5jJywKICAgJ3Jlb3JkZXJidWZmZXIuYycsCisgICdzbG90c3luYy5jJywK ICAgJ3NuYXBidWlsZC5jJywKICAgJ3RhYmxlc3luYy5jJywKICAgJ3dvcmtlci5jJywKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi44NGI2NjEwNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCkBAIC0wLDAgKzEsMTE5NSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKiBzbG90c3luYy5jCisgKgkgICBQb3N0Z3JlU1FMIHdvcmtl ciBmb3Igc3luY2hyb25pemluZyBzbG90cyB0byBhIHN0YW5kYnkgc2VydmVyIGZyb20gdGhlCisg KiAgICAgICAgIHByaW1hcnkgc2VydmVyLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNCwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgor ICoJICBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKyAqCisgKiBU aGlzIGZpbGUgY29udGFpbnMgdGhlIGNvZGUgZm9yIHNsb3Qgc3luYyB3b3JrZXIgb24gYSBwaHlz aWNhbCBzdGFuZGJ5CisgKiB0byBmZXRjaCBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGluZm9ybWF0 aW9uIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLAorICogY3JlYXRlIHRoZSBzbG90cyBvbiB0aGUg c3RhbmRieSBhbmQgc3luY2hyb25pemUgdGhlbSBwZXJpb2RpY2FsbHkuCisgKgorICogV2hpbGUg Y3JlYXRpbmcgdGhlIHNsb3Qgb24gcGh5c2ljYWwgc3RhbmRieSwgaWYgdGhlIGxvY2FsIHJlc3Rh cnRfbHNuIGFuZC9vcgorICogbG9jYWwgY2F0YWxvZ194bWluIGlzIGFoZWFkIG9mIHRob3NlIG9u IHRoZSByZW1vdGUgdGhlbiB0aGUgd29ya2VyIGNhbm5vdAorICogY3JlYXRlIHRoZSBsb2NhbCBz bG90IGluIHN5bmMgd2l0aCB0aGUgcHJpbWFyeSBzZXJ2ZXIgYmVjYXVzZSB0aGF0IHdvdWxkCisg KiBtZWFuIG1vdmluZyB0aGUgbG9jYWwgc2xvdCBiYWNrd2FyZHMgYW5kIHRoZSBzdGFuZGJ5IG1p Z2h0IG5vdCBoYXZlIFdBTHMKKyAqIHJldGFpbmVkIGZvciBvbGQgTFNOLiBJbiB0aGlzIGNhc2Us IHRoZSB3b3JrZXIgd2lsbCBtYXJrIHRoZSBzbG90IGFzCisgKiBSU19URU1QT1JBUlkuIE9uY2Ug dGhlIHByaW1hcnkgc2VydmVyIGNhdGNoZXMgdXAsIHRoZSB3b3JrZXIgd2lsbCBtYXJrIHRoZQor ICogc2xvdCBhcyBSU19QRVJTSVNURU5UICh3aGljaCBtZWFucyBzeW5jLXJlYWR5KSBhbmQgd2ls bCBwZXJmb3JtIHRoZSBzeW5jCisgKiBwZXJpb2RpY2FsbHkuCisgKgorICogVGhlIHdvcmtlciBh bHNvIHRha2VzIGNhcmUgb2YgZHJvcHBpbmcgdGhlIHNsb3RzIHdoaWNoIHdlcmUgY3JlYXRlZCBi eSBpdAorICogYW5kIGFyZSBjdXJyZW50bHkgbm90IG5lZWRlZCB0byBiZSBzeW5jaHJvbml6ZWQu CisgKgorICogSXQgd2FpdHMgZm9yIGEgcGVyaW9kIG9mIHRpbWUgYmVmb3JlIHRoZSBuZXh0IHN5 bmNocm9uaXphdGlvbiwgd2l0aCB0aGUKKyAqIGR1cmF0aW9uIHZhcnlpbmcgYmFzZWQgb24gd2hl dGhlciBhbnkgc2xvdHMgd2VyZSB1cGRhdGVkIGR1cmluZyB0aGUgbGFzdAorICogY3ljbGUuIFJl ZmVyIHRvIHRoZSBjb21tZW50cyBhYm92ZSB3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KCkgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiBTbG90IHN5bmNocm9uaXphdGlvbiBpcyBjdXJyZW50bHkgbm90 IHN1cHBvcnRlZCBvbiB0aGUgY2FzY2FkaW5nIHN0YW5kYnkuCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2dlbmFt LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50 ZXJuYWwuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ3JlY292ZXJ5LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19kYXRhYmFzZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKKyNp bmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd29ya2VyLmgiCisjaW5j bHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dp Y2FsLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCisjaW5jbHVk ZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCisj aW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgor I2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgor I2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgi CisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCisjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgor CisvKgorICogU3RydWN0dXJlIHRvIGhvbGQgaW5mb3JtYXRpb24gZmV0Y2hlZCBmcm9tIHRoZSBw cmltYXJ5IHNlcnZlciBhYm91dCBhIGxvZ2ljYWwKKyAqIHJlcGxpY2F0aW9uIHNsb3QuCisgKi8K K3R5cGVkZWYgc3RydWN0IFJlbW90ZVNsb3QKK3sKKwljaGFyCSAgICpuYW1lOworCWNoYXIJICAg KnBsdWdpbjsKKwljaGFyCSAgICpkYXRhYmFzZTsKKwlib29sCQl0d29fcGhhc2U7CisJWExvZ1Jl Y1B0cglyZXN0YXJ0X2xzbjsKKwlYTG9nUmVjUHRyCWNvbmZpcm1lZF9sc247CisJVHJhbnNhY3Rp b25JZCBjYXRhbG9nX3htaW47CisKKwkvKiBSU19JTlZBTF9OT05FIGlmIHZhbGlkLCBvciB0aGUg cmVhc29uIG9mIGludmFsaWRhdGlvbiAqLworCVJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNh dXNlIGludmFsaWRhdGVkOworfSBSZW1vdGVTbG90OworCisvKgorICogU3RydWN0IGZvciBzaGFy aW5nIGluZm9ybWF0aW9uIGJldHdlZW4gc3RhcnR1cCBwcm9jZXNzIGFuZCBzbG90CisgKiBzeW5j IHdvcmtlci4KKyAqCisgKiBTbG90IHN5bmMgd29ya2VyJ3MgcGlkIGlzIG5lZWRlZCBieSB0aGUg c3RhcnR1cCBwcm9jZXNzIGluIG9yZGVyIHRvCisgKiBzaHV0IGl0IGRvd24gZHVyaW5nIHByb21v dGlvbi4gU3RhcnR1cCBwcm9jZXNzIHNodXRzIGRvd24gdGhlIHNsb3QKKyAqIHN5bmMgd29ya2Vy IGFuZCBhbHNvIHNldHMgc3RvcFNpZ25hbGVkPXRydWUgdG8gaGFuZGxlIHRoZSByYWNlIGNvbmRp dGlvbgorICogd2hlbiBwb3N0bWFzdGVyIGhhcyBub3Qgbm90aWNlZCB0aGUgcHJvbW90aW9uIHll dCBhbmQgdGh1cyBtYXkgZW5kIHVwCisgKiByZXN0YXJ0aW5nIHNsb3Qgc3luYyB3b3JrZXIuIElm IHN0b3BTaWduYWxlZCBpcyBzZXQsIHRoZSB3b3JrZXIgd2lsbAorICogZXhpdCBpbiBzdWNoIGEg Y2FzZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QKK3sKKwlw aWRfdAkJcGlkOworCWJvb2wJCXN0b3BTaWduYWxlZDsKKwlzbG9ja190CQltdXRleDsKK30gU2xv dFN5bmNXb3JrZXJDdHhTdHJ1Y3Q7CisKK1Nsb3RTeW5jV29ya2VyQ3R4U3RydWN0ICpTbG90U3lu Y1dvcmtlciA9IE5VTEw7CisKKy8qIEdVQyB2YXJpYWJsZSAqLworYm9vbAkJZW5hYmxlX3N5bmNz bG90ID0gZmFsc2U7CisKKy8qIFRoZSBzbGVlcCB0aW1lIChtcykgYmV0d2VlbiBzbG90LXN5bmMg Y3ljbGVzIHZhcmllcyBkeW5hbWljYWxseQorICogKHdpdGhpbiBhIE1JTi9NQVggcmFuZ2UpIGFj Y29yZGluZyB0byBzbG90IGFjdGl2aXR5LiBTZWUKKyAqIHdhaXRfZm9yX3Nsb3RfYWN0aXZpdHko KSBmb3IgZGV0YWlscy4KKyAqLworI2RlZmluZSBNSU5fV09SS0VSX05BUFRJTUVfTVMgIDIwMAor I2RlZmluZSBNQVhfV09SS0VSX05BUFRJTUVfTVMgIDMwMDAwCS8qIDMwcyAqLworCitzdGF0aWMg bG9uZyBzbGVlcF9tcyA9IE1JTl9XT1JLRVJfTkFQVElNRV9NUzsKKworc3RhdGljIHZvaWQgUHJv Y2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubik7CisKKy8qCisg KiBJZiBuZWNlc3NhcnksIHVwZGF0ZSBsb2NhbCBzbG90IG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBk YXRhIGZyb20gdGhlIHJlbW90ZQorICogc2xvdC4KKyAqCisgKiBJZiBubyB1cGRhdGUgd2FzIG5l ZWRlZCAodGhlIGRhdGEgb2YgdGhlIHJlbW90ZSBzbG90IGlzIHRoZSBzYW1lIGFzIHRoZQorICog bG9jYWwgc2xvdCkgcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgdHJ1ZS4KKyAqLworc3RhdGljIGJv b2wKK2xvY2FsX3Nsb3RfdXBkYXRlKFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90KQoreworCU9pZAkJ CXJlbW90ZV9kYmlkOworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRpb25TbG90 OworCU5hbWVEYXRhCXBsdWdpbl9uYW1lOworCisJQXNzZXJ0KHNsb3QtPmRhdGEuaW52YWxpZGF0 ZWQgPT0gUlNfSU5WQUxfTk9ORSk7CisKKwlyZW1vdGVfZGJpZCA9IGdldF9kYXRhYmFzZV9vaWQo cmVtb3RlX3Nsb3QtPmRhdGFiYXNlLCBmYWxzZSk7CisKKwlpZiAoc3RyY21wKHJlbW90ZV9zbG90 LT5wbHVnaW4sIE5hbWVTdHIoc2xvdC0+ZGF0YS5wbHVnaW4pKSA9PSAwICYmCisJCXJlbW90ZV9k YmlkID09IHNsb3QtPmRhdGEuZGF0YWJhc2UgJiYKKwkJcmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNu ID09IHNsb3QtPmRhdGEucmVzdGFydF9sc24gJiYKKwkJcmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1p biA9PSBzbG90LT5kYXRhLmNhdGFsb2dfeG1pbiAmJgorCQlyZW1vdGVfc2xvdC0+dHdvX3BoYXNl ID09IHNsb3QtPmRhdGEudHdvX3BoYXNlICYmCisJCXJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNu ID09IHNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgor CSAqIFdlIGRvbid0IHdhbnQgYW55IGNvbXBsaWNhdGVkIGNvZGUgd2hpbGUgaG9sZGluZyBhIHNw aW5sb2NrLCBzbyBkbworCSAqIG5hbWVzdHJjcHkoKSBvdXRzaWRlLgorCSAqLworCW5hbWVzdHJj cHkoJnBsdWdpbl9uYW1lLCByZW1vdGVfc2xvdC0+cGx1Z2luKTsKKworCVNwaW5Mb2NrQWNxdWly ZSgmc2xvdC0+bXV0ZXgpOworCXNsb3QtPmRhdGEucGx1Z2luID0gcGx1Z2luX25hbWU7CisJc2xv dC0+ZGF0YS5kYXRhYmFzZSA9IHJlbW90ZV9kYmlkOworCXNsb3QtPmRhdGEudHdvX3BoYXNlID0g cmVtb3RlX3Nsb3QtPnR3b19waGFzZTsKKwlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVtb3Rl X3Nsb3QtPnJlc3RhcnRfbHNuOworCXNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoID0gcmVtb3Rl X3Nsb3QtPmNvbmZpcm1lZF9sc247CisJc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4gPSByZW1vdGVf c2xvdC0+Y2F0YWxvZ194bWluOworCXNsb3QtPmVmZmVjdGl2ZV9jYXRhbG9nX3htaW4gPSByZW1v dGVfc2xvdC0+Y2F0YWxvZ194bWluOworCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwor CisJaWYgKHJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW4gIT0gc2xvdC0+ZGF0YS5jYXRhbG9nX3ht aW4pCisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKKworCWlm IChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gIT0gc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJ UmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOworCisJcmV0dXJuIHRydWU7Cit9 CisKKy8qCisgKiBHZXQgbGlzdCBvZiBsb2NhbCBsb2dpY2FsIHNsb3RzIHdoaWNoIGFyZSBzeW5j aHJvbml6ZWQgZnJvbQorICogdGhlIHByaW1hcnkgc2VydmVyLgorICovCitzdGF0aWMgTGlzdCAq CitnZXRfbG9jYWxfc3luY2VkX3Nsb3RzKHZvaWQpCit7CisJTGlzdAkgICAqbG9jYWxfc2xvdHMg PSBOSUw7CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19T SEFSRUQpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkr KykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqcyA9ICZSZXBsaWNhdGlvblNsb3RDdGwtPnJlcGxp Y2F0aW9uX3Nsb3RzW2ldOworCisJCS8qIENoZWNrIGlmIGl0IGlzIGEgc3luY2hyb25pemVkIHNs b3QgKi8KKwkJaWYgKHMtPmluX3VzZSAmJiBzLT5kYXRhLnN5bmNlZCkKKwkJeworCQkJQXNzZXJ0 KFNsb3RJc0xvZ2ljYWwocykpOworCQkJbG9jYWxfc2xvdHMgPSBsYXBwZW5kKGxvY2FsX3Nsb3Rz LCBzKTsKKwkJfQorCX0KKworCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExv Y2spOworCisJcmV0dXJuIGxvY2FsX3Nsb3RzOworfQorCisvKgorICogSGVscGVyIGZ1bmN0aW9u IHRvIGNoZWNrIGlmIGxvY2FsX3Nsb3QgaXMgcHJlc2VudCBpbiByZW1vdGVfc2xvdHMgbGlzdC4K KyAqCisgKiBJdCBhbHNvIGNoZWNrcyBpZiB0aGUgc2xvdCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIg d2FzIGludmFsaWRhdGVkIHdoaWxlIHRoZQorICogY29ycmVzcG9uZGluZyByZW1vdGUgc2xvdCBp biB0aGUgbGlzdCByZW1haW5lZCB2YWxpZC4gSWYgZm91bmQgc28sIGl0IHNldHMKKyAqIHRoZSBs b2NhbGx5X2ludmFsaWRhdGVkIGZsYWcgdG8gdHJ1ZS4KKyAqLworc3RhdGljIGJvb2wKK2NoZWNr X3N5bmNfc2xvdF9vbl9yZW1vdGUoUmVwbGljYXRpb25TbG90ICpsb2NhbF9zbG90LCBMaXN0ICpy ZW1vdGVfc2xvdHMsCisJCQkJCQkgIGJvb2wgKmxvY2FsbHlfaW52YWxpZGF0ZWQpCit7CisJZm9y ZWFjaF9wdHIoUmVtb3RlU2xvdCwgcmVtb3RlX3Nsb3QsIHJlbW90ZV9zbG90cykKKwl7CisJCWlm IChzdHJjbXAocmVtb3RlX3Nsb3QtPm5hbWUsIE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1l KSkgPT0gMCkKKwkJeworCQkJLyoKKwkJCSAqIElmIHJlbW90ZSBzbG90IGlzIG5vdCBpbnZhbGlk YXRlZCBidXQgbG9jYWwgc2xvdCBpcyBtYXJrZWQgYXMKKwkJCSAqIGludmFsaWRhdGVkLCB0aGVu IHNldCB0aGUgYm9vbC4KKwkJCSAqLworCQkJU3BpbkxvY2tBY3F1aXJlKCZsb2NhbF9zbG90LT5t dXRleCk7CisJCQkqbG9jYWxseV9pbnZhbGlkYXRlZCA9CisJCQkJKHJlbW90ZV9zbG90LT5pbnZh bGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKSAmJgorCQkJCShsb2NhbF9zbG90LT5kYXRhLmludmFs aWRhdGVkICE9IFJTX0lOVkFMX05PTkUpOworCQkJU3BpbkxvY2tSZWxlYXNlKCZsb2NhbF9zbG90 LT5tdXRleCk7CisKKwkJCXJldHVybiB0cnVlOworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOwor fQorCisvKgorICogRHJvcCBvYnNvbGV0ZSBzbG90cworICoKKyAqIERyb3AgdGhlIHNsb3RzIHRo YXQgbm8gbG9uZ2VyIG5lZWQgdG8gYmUgc3luY2VkIGkuZS4gdGhlc2UgZWl0aGVyIGRvIG5vdAor ICogZXhpc3Qgb24gdGhlIHByaW1hcnkgb3IgYXJlIG5vIGxvbmdlciBlbmFibGVkIGZvciBmYWls b3Zlci4KKyAqCisgKiBBZGRpdGlvbmFsbHksIGl0IGRyb3BzIHNsb3RzIHRoYXQgYXJlIHZhbGlk IG9uIHRoZSBwcmltYXJ5IGJ1dCBnb3QKKyAqIGludmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LiBU aGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIgZHVlIHRvIHRoZSBmb2xsb3dpbmcKKyAqIHJlYXNvbnM6 CisgKiAtIFRoZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3Vm ZmljaWVudCB0byByZXRhaW4gV0FMCisgKiAgIHJlY29yZHMgZnJvbSB0aGUgcmVzdGFydF9sc24g b2YgdGhlIHNsb3QuCisgKiAtIHByaW1hcnlfc2xvdF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0 IHRvIG51bGwgYW5kIHRoZSBwaHlzaWNhbCBzbG90IGlzCisgKiAgIHJlbW92ZWQuCisgKiAtIFRo ZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xldmVsIHRvIGEgbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2Fs LgorICoKKyAqIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlc2UgZHJvcHBlZCBzbG90cyB3aWxs IGdldCByZWNyZWF0ZWQgaW4gbmV4dAorICogc3luYy1jeWNsZSBhbmQgaXQgaXMgb2theSB0byBk cm9wIGFuZCByZWNyZWF0ZSBzdWNoIHNsb3RzIGFzIGxvbmcgYXMgdGhlc2UKKyAqIGFyZSBub3Qg Y29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAod2hpY2ggaXMgdGhlIGNhc2UgY3VycmVudGx5KS4K KyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfb2Jzb2xldGVfc2xvdHMoTGlzdCAqcmVtb3RlX3Nsb3Rf bGlzdCkKK3sKKwlMaXN0CSAgICpsb2NhbF9zbG90cyA9IGdldF9sb2NhbF9zeW5jZWRfc2xvdHMo KTsKKworCWZvcmVhY2hfcHRyKFJlcGxpY2F0aW9uU2xvdCwgbG9jYWxfc2xvdCwgbG9jYWxfc2xv dHMpCisJeworCQlib29sCQlyZW1vdGVfZXhpc3RzID0gZmFsc2U7CisJCWJvb2wJCWxvY2FsbHlf aW52YWxpZGF0ZWQgPSBmYWxzZTsKKworCQlyZW1vdGVfZXhpc3RzID0gY2hlY2tfc3luY19zbG90 X29uX3JlbW90ZShsb2NhbF9zbG90LCByZW1vdGVfc2xvdF9saXN0LAorCQkJCQkJCQkJCQkJICAm bG9jYWxseV9pbnZhbGlkYXRlZCk7CisKKwkJLyoKKwkJICogRHJvcCB0aGUgbG9jYWwgc2xvdCBl aXRoZXIgaWYgaXQgaXMgbm90IGluIHRoZSByZW1vdGUgc2xvdHMgbGlzdCBvcgorCQkgKiBpcyBp bnZhbGlkYXRlZCB3aGlsZSByZW1vdGUgc2xvdCBpcyBzdGlsbCB2YWxpZC4KKwkJICovCisJCWlm ICghcmVtb3RlX2V4aXN0cyB8fCBsb2NhbGx5X2ludmFsaWRhdGVkKQorCQl7CisJCQlSZXBsaWNh dGlvblNsb3RBY3F1aXJlKE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSwgdHJ1ZSk7CisJ CQlBc3NlcnQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuc3luY2VkKTsKKwkJCVJlcGxpY2F0aW9u U2xvdERyb3BBY3F1aXJlZCgpOworCisJCQllcmVwb3J0KExPRywKKwkJCQkJZXJybXNnKCJkcm9w cGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9mIGRiaWQgJWQiLAorCQkJCQkJICAgTmFtZVN0 cihsb2NhbF9zbG90LT5kYXRhLm5hbWUpLAorCQkJCQkJICAgbG9jYWxfc2xvdC0+ZGF0YS5kYXRh YmFzZSkpOworCQl9CisJfQorfQorCisvKgorICogUmVzZXJ2ZSBXQUwgZm9yIHRoZSBjdXJyZW50 bHkgYWN0aXZlIHNsb3QgdXNpbmcgdGhlIHNwZWNpZmllZCBXQUwgbG9jYXRpb24KKyAqIChyZXN0 YXJ0X2xzbikuCisgKgorICogSWYgdGhlIGdpdmVuIFdBTCBsb2NhdGlvbiBoYXMgYmVlbiByZW1v dmVkLCByZXNlcnZlIFdBTCB1c2luZyB0aGUgb2xkZXN0CisgKiBleGlzdGluZyBXQUwgc2VnbWVu dC4KKyAqLworc3RhdGljIHZvaWQKK3Jlc2VydmVfd2FsX2Zvcl9zbG90KFhMb2dSZWNQdHIgcmVz dGFydF9sc24pCit7CisJWExvZ1NlZ05vCW9sZGVzdF9zZWdubzsKKwlYTG9nU2VnTm8Jc2Vnbm87 CisJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CisKKwlBc3NlcnQo c2xvdCAhPSBOVUxMKTsKKwlBc3NlcnQoWExvZ1JlY1B0cklzSW52YWxpZChzbG90LT5kYXRhLnJl c3RhcnRfbHNuKSk7CisKKwl3aGlsZSAodHJ1ZSkKKwl7CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xv dC0+bXV0ZXgpOworCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247CisJCVNw aW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCS8qIFByZXZlbnQgV0FMIHJlbW92YWwg YXMgZmFzdCBhcyBwb3NzaWJsZSAqLworCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVk TFNOKCk7CisKKwkJWExCeXRlVG9TZWcoc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiwgc2Vnbm8sIHdh bF9zZWdtZW50X3NpemUpOworCisJCS8qCisJCSAqIEZpbmQgdGhlIG9sZGVzdCBleGlzdGluZyBX QUwgc2VnbWVudCBmaWxlLgorCQkgKgorCQkgKiBOb3JtYWxseSwgd2UgY2FuIGRldGVybWluZSBp dCBieSB1c2luZyB0aGUgbGFzdCByZW1vdmVkIHNlZ21lbnQKKwkJICogbnVtYmVyLiBIb3dldmVy LCBpZiBubyBXQUwgc2VnbWVudCBmaWxlcyBoYXZlIGJlZW4gcmVtb3ZlZCBieSBhCisJCSAqIGNo ZWNrcG9pbnQgc2luY2Ugc3RhcnR1cCwgd2UgbmVlZCB0byBzZWFyY2ggZm9yIHRoZSBvbGRlc3Qg c2VnbWVudAorCQkgKiBmaWxlIGN1cnJlbnRseSBleGlzdGluZyBpbiBYTE9HRElSLgorCQkgKi8K KwkJb2xkZXN0X3NlZ25vID0gWExvZ0dldExhc3RSZW1vdmVkU2Vnbm8oKSArIDE7CisKKwkJaWYg KG9sZGVzdF9zZWdubyA9PSAxKQorCQkJb2xkZXN0X3NlZ25vID0gWExvZ0dldE9sZGVzdFNlZ25v KDApOworCisJCS8qCisJCSAqIElmIGFsbCByZXF1aXJlZCBXQUwgaXMgc3RpbGwgdGhlcmUsIGdy ZWF0LCBvdGhlcndpc2UgcmV0cnkuIFRoZQorCQkgKiBzbG90IHNob3VsZCBwcmV2ZW50IGZ1cnRo ZXIgcmVtb3ZhbCBvZiBXQUwsIHVubGVzcyB0aGVyZSdzIGEKKwkJICogY29uY3VycmVudCBSZXBs aWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCkgYWZ0ZXIgd2UndmUgd3JpdHRlbgorCQkg KiB0aGUgbmV3IHJlc3RhcnRfbHNuIGFib3ZlLCBzbyBub3JtYWxseSB3ZSBzaG91bGQgbmV2ZXIg bmVlZCB0byBsb29wCisJCSAqIG1vcmUgdGhhbiB0d2ljZS4KKwkJICovCisJCWlmIChzZWdubyA+ PSBvbGRlc3Rfc2Vnbm8pCisJCQlicmVhazsKKworCQkvKiBSZXRyeSB1c2luZyB0aGUgbG9jYXRp b24gb2YgdGhlIG9sZGVzdCB3YWwgc2VnbWVudCAqLworCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0 cihvbGRlc3Rfc2Vnbm8sIDAsIHdhbF9zZWdtZW50X3NpemUsIHJlc3RhcnRfbHNuKTsKKwl9Cit9 CisKKy8qCisgKiBVcGRhdGUgdGhlIExTTnMgYW5kIHBlcnNpc3QgdGhlIHNsb3QgZm9yIGZ1cnRo ZXIgc3luY3MgaWYgdGhlIHJlbW90ZQorICogcmVzdGFydF9sc24gYW5kIGNhdGFsb2dfeG1pbiBo YXZlIGNhdWdodCB1cCB3aXRoIHRoZSBsb2NhbCBvbmVzLCBvdGhlcndpc2UKKyAqIGRvIG5vdGhp bmcuCisgKgorICogUmV0dXJuIHRydWUgaWYgdGhlIHNsb3QgaXMgbWFya2VkIGFzIFJTX1BFUlNJ U1RFTlQgKHN5bmMtcmVhZHkpLCBvdGhlcndpc2UKKyAqIGZhbHNlLgorICovCitzdGF0aWMgYm9v bAordXBkYXRlX2FuZF9wZXJzaXN0X3Nsb3QoUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QpCit7CisJ UmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CisKKwkvKgorCSAqIENo ZWNrIGlmIHRoZSBwcmltYXJ5IHNlcnZlciBoYXMgY2F1Z2h0IHVwLiBSZWZlciB0byB0aGUgY29t bWVudCBhdG9wCisJICogdGhlIGZpbGUgZm9yIGRldGFpbHMgb24gdGhpcyBjaGVjay4KKwkgKgor CSAqIFdlIGFsc28gbmVlZCB0byBjaGVjayBpZiByZW1vdGVfc2xvdCdzIGNvbmZpcm1lZF9sc24g YmVjb21lcyB2YWxpZC4gSXQKKwkgKiBpcyBwb3NzaWJsZSB0byBnZXQgbnVsbCB2YWx1ZXMgZm9y IGNvbmZpcm1lZF9sc24gYW5kIGNhdGFsb2dfeG1pbiBpZiBvbgorCSAqIHRoZSBwcmltYXJ5IHNl cnZlciB0aGUgc2xvdCBpcyBqdXN0IGNyZWF0ZWQgd2l0aCBhIHZhbGlkIHJlc3RhcnRfbHNuCisJ ICogYW5kIHNsb3Qtc3luYyB3b3JrZXIgaGFzIGZldGNoZWQgdGhlIHNsb3QgYmVmb3JlIHRoZSBw cmltYXJ5IHNlcnZlcgorCSAqIGNvdWxkIHNldCB2YWxpZCBjb25maXJtZWRfbHNuIGFuZCBjYXRh bG9nX3htaW4uCisJICovCisJaWYgKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiA8IHNsb3QtPmRh dGEucmVzdGFydF9sc24gfHwKKwkJWExvZ1JlY1B0cklzSW52YWxpZChyZW1vdGVfc2xvdC0+Y29u ZmlybWVkX2xzbikgfHwKKwkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHJlbW90ZV9zbG90LT5jYXRh bG9nX3htaW4sCisJCQkJCQkJICBzbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpCisJeworCQkvKgor CQkgKiBUaGUgcmVtb3RlIHNsb3QgZGlkbid0IGNhdGNoIHVwIHRvIGxvY2FsbHkgcmVzZXJ2ZWQg cG9zaXRpb24uCisJCSAqCisJCSAqIFdlIGRvIG5vdCBkcm9wIHRoZSBzbG90IGJlY2F1c2UgdGhl IHJlc3RhcnRfbHNuIGNhbiBiZSBhaGVhZCBvZiB0aGUKKwkJICogY3VycmVudCBsb2NhdGlvbiB3 aGVuIHJlY3JlYXRpbmcgdGhlIHNsb3QgaW4gdGhlIG5leHQgY3ljbGUuIEl0IG1heQorCQkgKiB0 YWtlIG1vcmUgdGltZSB0byBjcmVhdGUgc3VjaCBhIHNsb3QuIFRoZXJlZm9yZSwgd2Uga2VlcCB0 aGlzIHNsb3QKKwkJICogYW5kIGF0dGVtcHQgdGhlIHdhaXQgYW5kIHN5bmNocm9uaXphdGlvbiBp biB0aGUgbmV4dCBjeWNsZS4KKwkJICovCisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBGaXJz dCB0aW1lIHNsb3QgdXBkYXRlLCB0aGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gdHJ1ZSAqLworCWlm ICghbG9jYWxfc2xvdF91cGRhdGUocmVtb3RlX3Nsb3QpKQorCQllbG9nKEVSUk9SLCAiZmFpbGVk IHRvIHVwZGF0ZSBzbG90Iik7CisKKwlSZXBsaWNhdGlvblNsb3RQZXJzaXN0KCk7CisKKwllcmVw b3J0KExPRywKKwkJCWVycm1zZygibmV3bHkgY3JlYXRlZCBzbG90IFwiJXNcIiBpcyBzeW5jLXJl YWR5IG5vdyIsCisJCQkJICAgcmVtb3RlX3Nsb3QtPm5hbWUpKTsKKworCXJldHVybiB0cnVlOwor fQorCisvKgorICogU3luY2hyb25pemUgc2luZ2xlIHNsb3QgdG8gZ2l2ZW4gcG9zaXRpb24uCisg KgorICogVGhpcyBjcmVhdGVzIGEgbmV3IHNsb3QgaWYgdGhlcmUgaXMgbm8gZXhpc3Rpbmcgb25l IGFuZCB1cGRhdGVzIHRoZQorICogbWV0YWRhdGEgb2YgdGhlIHNsb3QgYXMgcGVyIHRoZSBkYXRh IHJlY2VpdmVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLgorICoKKyAqIFRoZSBzbG90IGlzIGNy ZWF0ZWQgYXMgYSB0ZW1wb3Jhcnkgc2xvdCBhbmQgc3RheXMgaW4gdGhlIHNhbWUgc3RhdGUgdW50 aWwgdGhlCisgKiB0aGUgcmVtb3RlX3Nsb3QgY2F0Y2hlcyB1cCB3aXRoIGxvY2FsbHkgcmVzZXJ2 ZWQgcG9zaXRpb24gYW5kIGxvY2FsIHNsb3QgaXMKKyAqIHVwZGF0ZWQuIFRoZSBzbG90IGlzIHRo ZW4gcGVyc2lzdGVkIGFuZCBpcyBjb25zaWRlcmVkIGFzIHN5bmMtcmVhZHkgZm9yCisgKiBwZXJp b2RpYyBzeW5jcy4KKyAqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIGxvY2FsIHNsb3QgaXMgdXBk YXRlZC4KKyAqLworc3RhdGljIGJvb2wKK3N5bmNocm9uaXplX29uZV9zbG90KFdhbFJlY2VpdmVy Q29ubiAqd3Jjb25uLCBSZW1vdGVTbG90ICpyZW1vdGVfc2xvdCkKK3sKKwlSZXBsaWNhdGlvblNs b3QgKnNsb3Q7CisJYm9vbAkJc2xvdF91cGRhdGVkID0gZmFsc2U7CisJWExvZ1JlY1B0cglsYXRl c3RGbHVzaFB0cjsKKworCS8qCisJICogU2FuaXR5IGNoZWNrOiBNYWtlIHN1cmUgdGhhdCBjb25j ZXJuZWQgV0FMIGlzIHJlY2VpdmVkIGFuZCBmbHVzaGVkCisJICogYmVmb3JlIHN5bmNpbmcgc2xv dCB0byB0YXJnZXQgbHNuIHJlY2VpdmVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLgorCSAqCisJ ICogVGhpcyBjaGVjayBzaG91bGQgbmV2ZXIgcGFzcyBhcyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIs IHdlIGhhdmUgd2FpdGVkCisJICogZm9yIHRoZSBzdGFuZGJ5J3MgY29uZmlybWF0aW9uIGJlZm9y ZSB1cGRhdGluZyB0aGUgbG9naWNhbCBzbG90LgorCSAqLworCWxhdGVzdEZsdXNoUHRyID0gR2V0 U3RhbmRieUZsdXNoUmVjUHRyKE5VTEwpOworCWlmIChyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xz biA+IGxhdGVzdEZsdXNoUHRyKQorCXsKKwkJZXJlcG9ydChMT0csCisJCQkJZXJybXNnKCJza2lw cGluZyBzbG90IHN5bmNocm9uaXphdGlvbiBhcyB0aGUgcmVjZWl2ZWQgc2xvdCBzeW5jIgorCQkJ CQkgICAiIExTTiAlWC8lWCBmb3Igc2xvdCBcIiVzXCIgaXMgYWhlYWQgb2YgdGhlIHN0YW5kYnkg cG9zaXRpb24gJVgvJVgiLAorCQkJCQkgICBMU05fRk9STUFUX0FSR1MocmVtb3RlX3Nsb3QtPmNv bmZpcm1lZF9sc24pLAorCQkJCQkgICByZW1vdGVfc2xvdC0+bmFtZSwKKwkJCQkJICAgTFNOX0ZP Uk1BVF9BUkdTKGxhdGVzdEZsdXNoUHRyKSkpOworCisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkv KiBTZWFyY2ggZm9yIHRoZSBuYW1lZCBzbG90ICovCisJaWYgKChzbG90ID0gU2VhcmNoTmFtZWRS ZXBsaWNhdGlvblNsb3QocmVtb3RlX3Nsb3QtPm5hbWUsIHRydWUpKSkKKwl7CisJCWJvb2wJCXN5 bmNlZDsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc3luY2VkID0gc2xv dC0+ZGF0YS5zeW5jZWQ7CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCS8q IFVzZXIgY3JlYXRlZCBzbG90IHdpdGggdGhlIHNhbWUgbmFtZSBleGlzdHMsIHJhaXNlIEVSUk9S LiAqLworCQlpZiAoIXN5bmNlZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCWVycm1zZygiZXhp dGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGJlY2F1c2Ugc2FtZSIKKwkJCQkJCSAgICIg bmFtZSBzbG90IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgc3RhbmRieSIsCisJCQkJCQkg ICByZW1vdGVfc2xvdC0+bmFtZSkpOworCisJCS8qCisJCSAqIFNsb3QgY3JlYXRlZCBieSB0aGUg c2xvdCBzeW5jIHdvcmtlciBleGlzdHMsIHN5bmMgaXQuCisJCSAqCisJCSAqIEl0IGlzIGltcG9y dGFudCB0byBhY3F1aXJlIHRoZSBzbG90IGhlcmUgYmVmb3JlIGNoZWNraW5nCisJCSAqIGludmFs aWRhdGlvbi4gSWYgd2UgZG9uJ3QgYWNxdWlyZSB0aGUgc2xvdCBmaXJzdCwgdGhlcmUgY291bGQg YmUgYQorCQkgKiByYWNlIGNvbmRpdGlvbiB0aGF0IHRoZSBsb2NhbCBzbG90IGNvdWxkIGJlIGlu dmFsaWRhdGVkIGp1c3QgYWZ0ZXIKKwkJICogY2hlY2tpbmcgdGhlICdpbnZhbGlkYXRlZCcgZmxh ZyBoZXJlIGFuZCB3ZSBjb3VsZCBlbmQgdXAKKwkJICogb3ZlcndyaXRpbmcgJ2ludmFsaWRhdGVk JyBmbGFnIHRvIHJlbW90ZV9zbG90J3MgdmFsdWUuIFNlZQorCQkgKiBJbnZhbGlkYXRlUG9zc2li bHlPYnNvbGV0ZVNsb3QoKSB3aGVyZSBpdCBpbnZhbGlkYXRlcyBzbG90IGRpcmVjdGx5CisJCSAq IGlmIHRoZSBzbG90IGlzIG5vdCBhY3F1aXJlZCBieSBvdGhlciBwcm9jZXNzZXMuCisJCSAqLwor CQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKHJlbW90ZV9zbG90LT5uYW1lLCB0cnVlKTsKKworCQlB c3NlcnQoc2xvdCA9PSBNeVJlcGxpY2F0aW9uU2xvdCk7CisKKwkJLyoKKwkJICogQ29weSB0aGUg aW52YWxpZGF0aW9uIGNhdXNlIGZyb20gcmVtb3RlIG9ubHkgaWYgbG9jYWwgc2xvdCBpcyBub3QK KwkJICogaW52YWxpZGF0ZWQgbG9jYWxseSwgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgZXhp c3Rpbmcgb25lLgorCQkgKi8KKwkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgPT0gUlNfSU5W QUxfTk9ORSkKKwkJeworCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCQlzbG90 LT5kYXRhLmludmFsaWRhdGVkID0gcmVtb3RlX3Nsb3QtPmludmFsaWRhdGVkOworCQkJU3Bpbkxv Y2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgaW52YWxpZGF0 ZWQgc3RhdGUgcGVyc2lzdHMgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJCQlSZXBsaWNhdGlv blNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwkJCXNsb3RfdXBk YXRlZCA9IHRydWU7CisJCX0KKworCQkvKiBTa2lwIHRoZSBzeW5jIG9mIGFuIGludmFsaWRhdGVk IHNsb3QgKi8KKwkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgIT0gUlNfSU5WQUxfTk9ORSkK KwkJeworCQkJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCQkJcmV0dXJuIHNsb3RfdXBkYXRl ZDsKKwkJfQorCisJCS8qIFNsb3Qgbm90IHJlYWR5IHlldCwgbGV0J3MgYXR0ZW1wdCB0byBtYWtl IGl0IHN5bmMtcmVhZHkgbm93LiAqLworCQlpZiAoc2xvdC0+ZGF0YS5wZXJzaXN0ZW5jeSA9PSBS U19URU1QT1JBUlkpCisJCXsKKwkJCXNsb3RfdXBkYXRlZCA9IHVwZGF0ZV9hbmRfcGVyc2lzdF9z bG90KHJlbW90ZV9zbG90KTsKKwkJfQorCisJCS8qIFNsb3QgcmVhZHkgZm9yIHN5bmMsIHNvIHN5 bmMgaXQuICovCisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFNhbml0eSBjaGVjazogQXMgbG9u ZyBhcyB0aGUgaW52YWxpZGF0aW9ucyBhcmUgaGFuZGxlZAorCQkJICogYXBwcm9wcmlhdGVseSBh cyBhYm92ZSwgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLgorCQkJICovCisJCQlpZiAocmVtb3Rl X3Nsb3QtPnJlc3RhcnRfbHNuIDwgc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJCQllbG9nKEVS Uk9SLAorCQkJCQkgImNhbm5vdCBzeW5jaHJvbml6ZSBsb2NhbCBzbG90IFwiJXNcIiBMU04oJVgv JVgpIgorCQkJCQkgIiB0byByZW1vdGUgc2xvdCdzIExTTiglWC8lWCkgYXMgc3luY2hyb25pemF0 aW9uIgorCQkJCQkgIiB3b3VsZCBtb3ZlIGl0IGJhY2t3YXJkcyIsIHJlbW90ZV9zbG90LT5uYW1l LAorCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHNsb3QtPmRhdGEucmVzdGFydF9sc24pLAorCQkJCQkg TFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbikpOworCisJCQkvKiBNYWtl IHN1cmUgdGhlIHNsb3QgY2hhbmdlcyBwZXJzaXN0IGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLwor CQkJaWYgKGxvY2FsX3Nsb3RfdXBkYXRlKHJlbW90ZV9zbG90KSkKKwkJCXsKKwkJCQlzbG90X3Vw ZGF0ZWQgPSB0cnVlOworCQkJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCQkJCVJlcGxp Y2F0aW9uU2xvdFNhdmUoKTsKKwkJCX0KKwkJfQorCX0KKwkvKiBPdGhlcndpc2UgY3JlYXRlIHRo ZSBzbG90IGZpcnN0LiAqLworCWVsc2UKKwl7CisJCU9pZAkJCWRiaWQ7CisJCU5hbWVEYXRhCXBs dWdpbl9uYW1lOworCQlUcmFuc2FjdGlvbklkIHhtaW5faG9yaXpvbiA9IEludmFsaWRUcmFuc2Fj dGlvbklkOworCisJCS8qIFNraXAgY3JlYXRpbmcgdGhlIGxvY2FsIHNsb3QgaWYgcmVtb3RlX3Ns b3QgaXMgaW52YWxpZGF0ZWQgYWxyZWFkeSAqLworCQlpZiAocmVtb3RlX3Nsb3QtPmludmFsaWRh dGVkICE9IFJTX0lOVkFMX05PTkUpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogRW5zdXJlIHRo YXQgd2UgaGF2ZSB0cmFuc2FjdGlvbiBlbnYgbmVlZGVkIGJ5IGdldF9kYXRhYmFzZV9vaWQoKSAq LworCQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJCS8qCisJCSAqIEl0IGlzIG5v dCBuZWVkZWQgdG8gc3luYyAnZmFpbG92ZXInIGZyb20gcmVtb3RlX3Nsb3QgYXMgY3VycmVudGx5 CisJCSAqIHNsb3Qgc3luY2hyb25pemF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGNhc2Nh ZGluZyBzdGFuZGJ5LgorCQkgKi8KKwkJUmVwbGljYXRpb25TbG90Q3JlYXRlKHJlbW90ZV9zbG90 LT5uYW1lLCB0cnVlLCBSU19URU1QT1JBUlksCisJCQkJCQkJICByZW1vdGVfc2xvdC0+dHdvX3Bo YXNlLAorCQkJCQkJCSAgZmFsc2UgLyogZmFpbG92ZXIgKi8gLAorCQkJCQkJCSAgdHJ1ZSAvKiBz eW5jZWQgKi8gKTsKKworCQkvKiBGb3Igc2hvcnRlciBsaW5lcy4gKi8KKwkJc2xvdCA9IE15UmVw bGljYXRpb25TbG90OworCisJCS8qCisJCSAqIFdlIGRvbid0IHdhbnQgYW55IGNvbXBsaWNhdGVk IGNvZGUgd2hpbGUgaG9sZGluZyBhIHNwaW5sb2NrLCBzbyBkbworCQkgKiBuYW1lc3RyY3B5KCkg YW5kIGdldF9kYXRhYmFzZV9vaWQoKSBvdXRzaWRlLgorCQkgKi8KKwkJbmFtZXN0cmNweSgmcGx1 Z2luX25hbWUsIHJlbW90ZV9zbG90LT5wbHVnaW4pOworCQlkYmlkID0gZ2V0X2RhdGFiYXNlX29p ZChyZW1vdGVfc2xvdC0+ZGF0YWJhc2UsIGZhbHNlKTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNs b3QtPm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5kYXRhYmFzZSA9IGRiaWQ7CisJCXNsb3QtPmRhdGEu cGx1Z2luID0gcGx1Z2luX25hbWU7CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwor CisJCXJlc2VydmVfd2FsX2Zvcl9zbG90KHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbik7CisKKwkJ TFdMb2NrQWNxdWlyZShQcm9jQXJyYXlMb2NrLCBMV19FWENMVVNJVkUpOworCQl4bWluX2hvcml6 b24gPSBHZXRPbGRlc3RTYWZlRGVjb2RpbmdUcmFuc2FjdGlvbklkKHRydWUpOworCQlTcGluTG9j a0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc2xvdC0+ZWZmZWN0aXZlX2NhdGFsb2dfeG1pbiA9 IHhtaW5faG9yaXpvbjsKKwkJc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4gPSB4bWluX2hvcml6b247 CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCQlSZXBsaWNhdGlvblNsb3RzQ29t cHV0ZVJlcXVpcmVkWG1pbih0cnVlKTsKKwkJTFdMb2NrUmVsZWFzZShQcm9jQXJyYXlMb2NrKTsK KworCQkodm9pZCkgdXBkYXRlX2FuZF9wZXJzaXN0X3Nsb3QocmVtb3RlX3Nsb3QpOworCQlzbG90 X3VwZGF0ZWQgPSB0cnVlOworCX0KKworCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKworCXJl dHVybiBzbG90X3VwZGF0ZWQ7Cit9CisKKy8qCisgKiBNYXBzIHRoZSBwZ19yZXBsaWNhdGlvbl9z bG90cy5jb25mbGljdF9yZWFzb24gdGV4dCB2YWx1ZSB0bworICogUmVwbGljYXRpb25TbG90SW52 YWxpZGF0aW9uQ2F1c2UgZW51bSB2YWx1ZQorICovCitzdGF0aWMgUmVwbGljYXRpb25TbG90SW52 YWxpZGF0aW9uQ2F1c2UKK2dldF9zbG90X2ludmFsaWRhdGlvbl9jYXVzZShjaGFyICpjb25mbGlj dF9yZWFzb24pCit7CisJQXNzZXJ0KGNvbmZsaWN0X3JlYXNvbik7CisKKwlpZiAoc3RyY21wKGNv bmZsaWN0X3JlYXNvbiwgU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9URVhUKSA9PSAwKQorCQlyZXR1 cm4gUlNfSU5WQUxfV0FMX1JFTU9WRUQ7CisJZWxzZSBpZiAoc3RyY21wKGNvbmZsaWN0X3JlYXNv biwgU0xPVF9JTlZBTF9IT1JJWk9OX1RFWFQpID09IDApCisJCXJldHVybiBSU19JTlZBTF9IT1JJ Wk9OOworCWVsc2UgaWYgKHN0cmNtcChjb25mbGljdF9yZWFzb24sIFNMT1RfSU5WQUxfV0FMX0xF VkVMX1RFWFQpID09IDApCisJCXJldHVybiBSU19JTlZBTF9XQUxfTEVWRUw7CisJZWxzZQorCQlB c3NlcnQoMCk7CisKKwkvKiBLZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJcmV0dXJuIFJTX0lOVkFM X05PTkU7Cit9CisKKy8qCisgKiBTeW5jaHJvbml6ZSBzbG90cy4KKyAqCisgKiBHZXRzIHRoZSBm YWlsb3ZlciBsb2dpY2FsIHNsb3RzIGluZm8gZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgYW5kIHVw ZGF0ZXMKKyAqIHRoZSBzbG90cyBsb2NhbGx5LiBDcmVhdGVzIHRoZSBzbG90cyBpZiBub3QgcHJl c2VudCBvbiB0aGUgc3RhbmRieS4KKyAqCisgKiBSZXR1cm5zIFRSVUUgaWYgYW55IG9mIHRoZSBz bG90cyBnZXRzIHVwZGF0ZWQgaW4gdGhpcyBzeW5jLWN5Y2xlLgorICovCitzdGF0aWMgYm9vbAor c3luY2hyb25pemVfc2xvdHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pCit7CisjZGVmaW5lIFNM T1RTWU5DX0NPTFVNTl9DT1VOVCA4CisJT2lkCQkJc2xvdFJvd1tTTE9UU1lOQ19DT0xVTU5fQ09V TlRdID0ge1RFWFRPSUQsIFRFWFRPSUQsIExTTk9JRCwKKwlMU05PSUQsIFhJRE9JRCwgQk9PTE9J RCwgVEVYVE9JRCwgVEVYVE9JRH07CisKKwlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CisJVHVwbGVU YWJsZVNsb3QgKnR1cHNsb3Q7CisJU3RyaW5nSW5mb0RhdGEgczsKKwlMaXN0CSAgICpyZW1vdGVf c2xvdF9saXN0ID0gTklMOworCWJvb2wJCXNvbWVfc2xvdF91cGRhdGVkID0gZmFsc2U7CisJWExv Z1JlY1B0cglsYXRlc3RXYWxFbmQ7CisKKwkvKgorCSAqIFRoZSBwcmltYXJ5X3Nsb3RfbmFtZSBp cyBub3Qgc2V0IHlldCBvciBXQUxzIG5vdCByZWNlaXZlZCB5ZXQuCisJICogU3luY2hyb25pemF0 aW9uIGlzIG5vdCBwb3NzaWJsZSBpZiB0aGUgd2FscmVjZWl2ZXIgaXMgbm90IHN0YXJ0ZWQuCisJ ICovCisJbGF0ZXN0V2FsRW5kID0gR2V0V2FsUmN2TGF0ZXN0V2FsRW5kKCk7CisJU3BpbkxvY2tB Y3F1aXJlKCZXYWxSY3YtPm11dGV4KTsKKwlpZiAoKFdhbFJjdi0+c2xvdG5hbWVbMF0gPT0gJ1ww JykgfHwKKwkJWExvZ1JlY1B0cklzSW52YWxpZChsYXRlc3RXYWxFbmQpKQorCXsKKwkJU3Bpbkxv Y2tSZWxlYXNlKCZXYWxSY3YtPm11dGV4KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlTcGluTG9j a1JlbGVhc2UoJldhbFJjdi0+bXV0ZXgpOworCisJLyogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiB3 YWxyY3ZfZXhlYygpIG5lZWRzIGEgdHJhbnNhY3Rpb24gZW52LiAqLworCVN0YXJ0VHJhbnNhY3Rp b25Db21tYW5kKCk7CisKKwlpbml0U3RyaW5nSW5mbygmcyk7CisKKwkvKiBDb25zdHJ1Y3QgcXVl cnkgdG8gZmV0Y2ggc2xvdHMgd2l0aCBmYWlsb3ZlciBlbmFibGVkLiAqLworCWFwcGVuZFN0cmlu Z0luZm8oJnMsCisJCQkJCSAiU0VMRUNUIHNsb3RfbmFtZSwgcGx1Z2luLCBjb25maXJtZWRfZmx1 c2hfbHNuLCIKKwkJCQkJICIgcmVzdGFydF9sc24sIGNhdGFsb2dfeG1pbiwgdHdvX3BoYXNlLCIK KwkJCQkJICIgZGF0YWJhc2UsIGNvbmZsaWN0X3JlYXNvbiIKKwkJCQkJICIgRlJPTSBwZ19jYXRh bG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIgorCQkJCQkgIiBXSEVSRSBmYWlsb3ZlciBhbmQgTk9U IHRlbXBvcmFyeSIpOworCisJLyogRXhlY3V0ZSB0aGUgcXVlcnkgKi8KKwlyZXMgPSB3YWxyY3Zf ZXhlYyh3cmNvbm4sIHMuZGF0YSwgU0xPVFNZTkNfQ09MVU1OX0NPVU5ULCBzbG90Um93KTsKKwlw ZnJlZShzLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBub3QgZmV0Y2ggZmFpbG92ZXIgbG9n aWNhbCBzbG90cyBpbmZvIGZyb20gdGhlIHByaW1hcnkgc2VydmVyOiAlcyIsCisJCQkJCSAgIHJl cy0+ZXJyKSk7CisKKwkvKiBDb25zdHJ1Y3QgdGhlIHJlbW90ZV9zbG90IHR1cGxlIGFuZCBzeW5j aHJvbml6ZSBlYWNoIHNsb3QgbG9jYWxseSAqLworCXR1cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVU YWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFsVHVwbGUpOworCXdoaWxlICh0 dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxlc3RvcmUsIHRydWUsIGZhbHNlLCB0dXBz bG90KSkKKwl7CisJCWJvb2wJCWlzbnVsbDsKKwkJUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSBw YWxsb2MwKHNpemVvZihSZW1vdGVTbG90KSk7CisJCURhdHVtCQlkOworCisJCXJlbW90ZV9zbG90 LT5uYW1lID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwgMSwgJmlz bnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJcmVtb3RlX3Nsb3QtPnBsdWdpbiA9IFRl eHREYXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDIsICZpc251bGwpKTsKKwkJ QXNzZXJ0KCFpc251bGwpOworCisJCS8qCisJCSAqIEl0IGlzIHBvc3NpYmxlIHRvIGdldCBudWxs IHZhbHVlcyBmb3IgTFNOIGFuZCBYbWluIGlmIHNsb3QgaXMKKwkJICogaW52YWxpZGF0ZWQgb24g dGhlIHByaW1hcnkgc2VydmVyLCBzbyBoYW5kbGUgYWNjb3JkaW5nbHkuCisJCSAqLworCQlkID0g c2xvdF9nZXRhdHRyKHR1cHNsb3QsIDMsICZpc251bGwpOworCQlyZW1vdGVfc2xvdC0+Y29uZmly bWVkX2xzbiA9IGlzbnVsbCA/IEludmFsaWRYTG9nUmVjUHRyIDoKKwkJCURhdHVtR2V0TFNOKGQp OworCisJCWQgPSBzbG90X2dldGF0dHIodHVwc2xvdCwgNCwgJmlzbnVsbCk7CisJCXJlbW90ZV9z bG90LT5yZXN0YXJ0X2xzbiA9IGlzbnVsbCA/IEludmFsaWRYTG9nUmVjUHRyIDogRGF0dW1HZXRM U04oZCk7CisKKwkJZCA9IHNsb3RfZ2V0YXR0cih0dXBzbG90LCA1LCAmaXNudWxsKTsKKwkJcmVt b3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiA9IGlzbnVsbCA/IEludmFsaWRUcmFuc2FjdGlvbklkIDoK KwkJCURhdHVtR2V0VHJhbnNhY3Rpb25JZChkKTsKKworCQlyZW1vdGVfc2xvdC0+dHdvX3BoYXNl ID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCA2LCAmaXNudWxsKSk7CisJCUFz c2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+ZGF0YWJhc2UgPSBUZXh0RGF0dW1HZXRD U3RyaW5nKHNsb3RfZ2V0YXR0cih0dXBzbG90LAorCQkJCQkJCQkJCQkJCQkJCSA3LCAmaXNudWxs KSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlkID0gc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDgs ICZpc251bGwpOworCQlyZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQgPSBpc251bGwgPyBSU19JTlZB TF9OT05FIDoKKwkJCWdldF9zbG90X2ludmFsaWRhdGlvbl9jYXVzZShUZXh0RGF0dW1HZXRDU3Ry aW5nKGQpKTsKKworCQkvKiBDcmVhdGUgbGlzdCBvZiByZW1vdGUgc2xvdHMgKi8KKwkJcmVtb3Rl X3Nsb3RfbGlzdCA9IGxhcHBlbmQocmVtb3RlX3Nsb3RfbGlzdCwgcmVtb3RlX3Nsb3QpOworCisJ CUV4ZWNDbGVhclR1cGxlKHR1cHNsb3QpOworCX0KKworCS8qIERyb3AgbG9jYWwgc2xvdHMgdGhh dCBubyBsb25nZXIgbmVlZCB0byBiZSBzeW5jZWQuICovCisJZHJvcF9vYnNvbGV0ZV9zbG90cyhy ZW1vdGVfc2xvdF9saXN0KTsKKworCS8qIE5vdyBzeW5jIHRoZSBzbG90cyBsb2NhbGx5ICovCisJ Zm9yZWFjaF9wdHIoUmVtb3RlU2xvdCwgcmVtb3RlX3Nsb3QsIHJlbW90ZV9zbG90X2xpc3QpCisJ CXNvbWVfc2xvdF91cGRhdGVkIHw9IHN5bmNocm9uaXplX29uZV9zbG90KHdyY29ubiwgcmVtb3Rl X3Nsb3QpOworCisJLyogV2UgYXJlIGRvbmUsIGZyZWUgcmVtb3RlX3Nsb3RfbGlzdCBlbGVtZW50 cyAqLworCWxpc3RfZnJlZV9kZWVwKHJlbW90ZV9zbG90X2xpc3QpOworCisJd2FscmN2X2NsZWFy X3Jlc3VsdChyZXMpOworCisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlyZXR1cm4g c29tZV9zbG90X3VwZGF0ZWQ7Cit9CisKKy8qCisgKiBDaGVja3MgdGhlIHByaW1hcnkgc2VydmVy IGluZm8uCisgKgorICogVXNpbmcgdGhlIHNwZWNpZmllZCBwcmltYXJ5IHNlcnZlciBjb25uZWN0 aW9uLCBjaGVjayB3aGV0aGVyIHdlIGFyZSBhCisgKiBjYXNjYWRpbmcgc3RhbmRieS4gSXQgYWxz byB2YWxpZGF0ZXMgcHJpbWFyeV9zbG90X25hbWUgZm9yIG5vbi1jYXNjYWRpbmcKKyAqIHN0YW5k YnlzLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfcHJpbWFyeV9pbmZvKFdhbFJlY2VpdmVyQ29u biAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdfc3RhbmRieSkKK3sKKyNkZWZpbmUgUFJJTUFS WV9JTkZPX09VVFBVVF9DT0xfQ09VTlQgMgorCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwlPaWQJ CQlzbG90Um93W1BSSU1BUllfSU5GT19PVVRQVVRfQ09MX0NPVU5UXSA9IHtCT09MT0lELCBCT09M T0lEfTsKKwlTdHJpbmdJbmZvRGF0YSBjbWQ7CisJYm9vbAkJaXNudWxsOworCVR1cGxlVGFibGVT bG90ICp0dXBzbG90OworCWJvb2wJCXZhbGlkOworCWJvb2wJCXJlbW90ZV9pbl9yZWNvdmVyeTsK KworCS8qIFRoZSBzeXNjYWNoZSBhY2Nlc3MgaW4gd2FscmN2X2V4ZWMoKSBuZWVkcyBhIHRyYW5z YWN0aW9uIGVudi4gKi8KKwlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCisJQXNzZXJ0KGFt X2Nhc2NhZGluZ19zdGFuZGJ5ICE9IE5VTEwpOworCisJKmFtX2Nhc2NhZGluZ19zdGFuZGJ5ID0g ZmFsc2U7CS8qIG92ZXJ3cml0dGVuIGxhdGVyIGlmIGNhc2NhZGluZyAqLworCisJaW5pdFN0cmlu Z0luZm8oJmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mbygmY21kLAorCQkJCQkgIlNFTEVDVCBwZ19p c19pbl9yZWNvdmVyeSgpLCBjb3VudCgqKSA9IDEiCisJCQkJCSAiIEZST00gcGdfcmVwbGljYXRp b25fc2xvdHMiCisJCQkJCSAiIFdIRVJFIHNsb3RfdHlwZT0ncGh5c2ljYWwnIEFORCBzbG90X25h bWU9JXMiLAorCQkJCQkgcXVvdGVfbGl0ZXJhbF9jc3RyKFByaW1hcnlTbG90TmFtZSkpOworCisJ cmVzID0gd2FscmN2X2V4ZWMod3Jjb25uLCBjbWQuZGF0YSwgUFJJTUFSWV9JTkZPX09VVFBVVF9D T0xfQ09VTlQsIHNsb3RSb3cpOworCXBmcmVlKGNtZC5kYXRhKTsKKworCWlmIChyZXMtPnN0YXR1 cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycm1zZygiY291 bGQgbm90IGZldGNoIHByaW1hcnlfc2xvdF9uYW1lIFwiJXNcIiBpbmZvIGZyb20gdGhlIHByaW1h cnkgc2VydmVyOiAlcyIsCisJCQkJCSAgIFByaW1hcnlTbG90TmFtZSwgcmVzLT5lcnIpLAorCQkJ CWVycmhpbnQoIkNoZWNrIGlmIFwicHJpbWFyeV9zbG90X25hbWVcIiBpcyBjb25maWd1cmVkIGNv cnJlY3RseS4iKSk7CisKKwl0dXBzbG90ID0gTWFrZVNpbmdsZVR1cGxlVGFibGVTbG90KHJlcy0+ dHVwbGVkZXNjLCAmVFRTT3BzTWluaW1hbFR1cGxlKTsKKwlpZiAoIXR1cGxlc3RvcmVfZ2V0dHVw bGVzbG90KHJlcy0+dHVwbGVzdG9yZSwgdHJ1ZSwgZmFsc2UsIHR1cHNsb3QpKQorCQllbG9nKEVS Uk9SLAorCQkJICJmYWlsZWQgdG8gZmV0Y2ggdHVwbGUgZm9yIHRoZSBwcmltYXJ5IHNlcnZlciBz bG90IHNwZWNpZmllZCBieSBcInByaW1hcnlfc2xvdF9uYW1lXCIiKTsKKworCXJlbW90ZV9pbl9y ZWNvdmVyeSA9IERhdHVtR2V0Qm9vbChzbG90X2dldGF0dHIodHVwc2xvdCwgMSwgJmlzbnVsbCkp OworCUFzc2VydCghaXNudWxsKTsKKworCWlmIChyZW1vdGVfaW5fcmVjb3ZlcnkpCisJeworCQkv KiBObyBuZWVkIHRvIGNoZWNrIGZ1cnRoZXIsIGp1c3Qgc2V0IGFtX2Nhc2NhZGluZ19zdGFuZGJ5 IHRvIHRydWUgKi8KKwkJKmFtX2Nhc2NhZGluZ19zdGFuZGJ5ID0gdHJ1ZTsKKwl9CisJZWxzZQor CXsKKwkJLyogV2UgYXJlIGEgbm9ybWFsIHN0YW5kYnkgKi8KKwkJdmFsaWQgPSBEYXR1bUdldEJv b2woc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDIsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwp OworCisJCWlmICghdmFsaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBz bG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCS8qIHRy YW5zbGF0b3I6IHNlY29uZCAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJCQkJCWVycmRl dGFpbCgiVGhlIHByaW1hcnkgc2VydmVyIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBieSIKKwkJCQkJ CQkgICIgXCIlc1wiIGlzIG5vdCB2YWxpZC4iLAorCQkJCQkJCSAgUHJpbWFyeVNsb3ROYW1lLCAi cHJpbWFyeV9zbG90X25hbWUiKSk7CisJfQorCisJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJ d2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwor fQorCisvKgorICogQ2hlY2sgdGhhdCBhbGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hy b25pemF0aW9uIGFyZSBzZXQKKyAqIGFwcHJvcHJpYXRlbHkuIElmIG5vdCwgcmFpc2UgYW4gRVJS T1IuCisgKgorICogSWYgYWxsIGNoZWNrcyBwYXNzLCBleHRyYWN0cyB0aGUgZGJuYW1lIGZyb20g dGhlIHByaW1hcnlfY29ubmluZm8gR1VDIGFuZAorICogcmV0dXJucyBpdC4KKyAqLworc3RhdGlj IGNoYXIgKgordmFsaWRhdGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFtZSh2b2lkKQoreworCWNo YXIJICAgKmRibmFtZTsKKworCS8qIFNhbml0eSBjaGVjay4gKi8KKwlBc3NlcnQoZW5hYmxlX3N5 bmNzbG90KTsKKworCS8qCisJICogQSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90KHByaW1hcnlf c2xvdF9uYW1lKSBpcyByZXF1aXJlZCBvbiB0aGUKKwkgKiBwcmltYXJ5IHRvIGVuc3VyZSB0aGF0 IHRoZSByb3dzIG5lZWRlZCBieSB0aGUgc3RhbmRieSBhcmUgbm90IHJlbW92ZWQKKwkgKiBhZnRl ciByZXN0YXJ0aW5nLCBzbyB0aGF0IHRoZSBzeW5jaHJvbml6ZWQgc2xvdCBvbiB0aGUgc3RhbmRi eSB3aWxsIG5vdAorCSAqIGJlIGludmFsaWRhdGVkLgorCSAqLworCWlmIChQcmltYXJ5U2xvdE5h bWUgPT0gTlVMTCB8fCBzdHJjbXAoUHJpbWFyeVNsb3ROYW1lLCAiIikgPT0gMCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwor CQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQg Y29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIlwiJXNcIiBtdXN0IGJlIGRlZmluZWQuIiwg InByaW1hcnlfc2xvdF9uYW1lIikpOworCisJLyoKKwkgKiBob3Rfc3RhbmRieV9mZWVkYmFjayBt dXN0IGJlIGVuYWJsZWQgdG8gY29vcGVyYXRlIHdpdGggdGhlIHBoeXNpY2FsCisJICogcmVwbGlj YXRpb24gc2xvdCwgd2hpY2ggYWxsb3dzIGluZm9ybWluZyB0aGUgcHJpbWFyeSBhYm91dCB0aGUg eG1pbiBhbmQKKwkgKiBjYXRhbG9nX3htaW4gdmFsdWVzIG9uIHRoZSBzdGFuZGJ5LgorCSAqLwor CWlmICghaG90X3N0YW5kYnlfZmVlZGJhY2spCisJCWVyZXBvcnQoRVJST1IsCisJCS8qIHRyYW5z bGF0b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQllcnJtc2coImV4aXRpbmcg ZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJ CQllcnJoaW50KCJcIiVzXCIgbXVzdCBiZSBlbmFibGVkLiIsICJob3Rfc3RhbmRieV9mZWVkYmFj ayIpKTsKKworCS8qCisJICogTG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyB3YWxfbGV2ZWwgPj0g bG9naWNhbCBhbmQgd2UgY3VycmVudGx5IG9ubHkKKwkgKiBzeW5jaHJvbml6ZSBsb2dpY2FsIHNs b3RzLgorCSAqLworCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwor CQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQg Y29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIlwid2FsX2xldmVsXCIgbXVzdCBiZSA+PSBs b2dpY2FsLiIpKTsKKworCS8qCisJICogVGhlIHByaW1hcnlfY29ubmluZm8gaXMgcmVxdWlyZWQg dG8gbWFrZSBjb25uZWN0aW9uIHRvIHByaW1hcnkgZm9yCisJICogZ2V0dGluZyBzbG90cyBpbmZv cm1hdGlvbi4KKwkgKi8KKwlpZiAoUHJpbWFyeUNvbm5JbmZvID09IE5VTEwgfHwgc3RyY21wKFBy aW1hcnlDb25uSW5mbywgIiIpID09IDApCisJCWVyZXBvcnQoRVJST1IsCisJCS8qIHRyYW5zbGF0 b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQllcnJtc2coImV4aXRpbmcgZnJv bSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQll cnJoaW50KCJcIiVzXCIgbXVzdCBiZSBkZWZpbmVkLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOwor CisJLyoKKwkgKiBUaGUgc2xvdCBzeW5jIHdvcmtlciBuZWVkcyBhIGRhdGFiYXNlIGNvbm5lY3Rp b24gZm9yIHdhbHJjdl9leGVjIHRvCisJICogd29yay4KKwkgKi8KKwlkYm5hbWUgPSB3YWxyY3Zf Z2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7CisJaWYgKGRibmFtZSA9 PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCisJCS8qCisJCSAqIHRyYW5zbGF0b3I6ICdkYm5h bWUnIGlzIGEgc3BlY2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJsZQorCQkgKiBuYW1l CisJCSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1 ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIidkYm5hbWUnIG11c3QgYmUg c3BlY2lmaWVkIGluIFwiJXNcIi4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCXJldHVybiBk Ym5hbWU7Cit9CisKKy8qCisgKiBSZS1yZWFkIHRoZSBjb25maWcgZmlsZS4KKyAqCisgKiBJZiBh bnkgb2YgdGhlIHNsb3Qgc3luYyBHVUNzIGhhdmUgY2hhbmdlZCwgZXhpdCB0aGUgd29ya2VyIGFu ZAorICogbGV0IGl0IGdldCByZXN0YXJ0ZWQgYnkgdGhlIHBvc3RtYXN0ZXIuCisgKi8KK3N0YXRp YyB2b2lkCitzbG90c3luY19yZXJlYWRfY29uZmlnKHZvaWQpCit7CisJY2hhcgkgICAqb2xkX3By aW1hcnlfY29ubmluZm8gPSBwc3RyZHVwKFByaW1hcnlDb25uSW5mbyk7CisJY2hhcgkgICAqb2xk X3ByaW1hcnlfc2xvdG5hbWUgPSBwc3RyZHVwKFByaW1hcnlTbG90TmFtZSk7CisJYm9vbAkJb2xk X2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gaG90X3N0YW5kYnlfZmVlZGJhY2s7CisJYm9vbAkJY29u bmluZm9fY2hhbmdlZDsKKwlib29sCQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQ7CisKKwlDb25m aWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7 CisKKwljb25uaW5mb19jaGFuZ2VkID0gc3RyY21wKG9sZF9wcmltYXJ5X2Nvbm5pbmZvLCBQcmlt YXJ5Q29ubkluZm8pICE9IDA7CisJcHJpbWFyeV9zbG90bmFtZV9jaGFuZ2VkID0gc3RyY21wKG9s ZF9wcmltYXJ5X3Nsb3RuYW1lLCBQcmltYXJ5U2xvdE5hbWUpICE9IDA7CisKKwlpZiAoY29ubmlu Zm9fY2hhbmdlZCB8fAorCQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQgfHwKKwkJKG9sZF9ob3Rf c3RhbmRieV9mZWVkYmFjayAhPSBob3Rfc3RhbmRieV9mZWVkYmFjaykpCisJeworCQllcmVwb3J0 KExPRywKKwkJCQllcnJtc2coInNsb3Qgc3luYyB3b3JrZXIgd2lsbCByZXN0YXJ0IGJlY2F1c2Ug b2YgYSBwYXJhbWV0ZXIgY2hhbmdlIikpOworCisJCS8qIFRoZSBleGl0IGNvZGUgMSB3aWxsIG1h a2UgcG9zdG1hc3RlciByZXN0YXJ0IHRoaXMgd29ya2VyICovCisJCXByb2NfZXhpdCgxKTsKKwl9 CisKKwlwZnJlZShvbGRfcHJpbWFyeV9jb25uaW5mbyk7CisJcGZyZWUob2xkX3ByaW1hcnlfc2xv dG5hbWUpOworfQorCisvKgorICogSW50ZXJydXB0IGhhbmRsZXIgZm9yIG1haW4gbG9vcCBvZiBz bG90IHN5bmMgd29ya2VyLgorICovCitzdGF0aWMgdm9pZAorUHJvY2Vzc1Nsb3RTeW5jSW50ZXJy dXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKwlDSEVDS19GT1JfSU5URVJSVVBUUygp OworCisJaWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCisJeworCQl3YWxyY3ZfZGlzY29ubmVj dCh3cmNvbm4pOworCQllcmVwb3J0KExPRywKKwkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qg c3luYyB3b3JrZXIgaXMgc2h1dHRpbmcgZG93biBvbiByZWNlaXZpbmcgU0lHSU5UIikpOworCQlw cm9jX2V4aXQoMCk7CisJfQorCisJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCXNsb3RzeW5j X3JlcmVhZF9jb25maWcoKTsKK30KKworLyoKKyAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHNsb3Rz eW5jIHdvcmtlci4KKyAqCisgKiBDYWxsZWQgb24gc2xvdHN5bmMgd29ya2VyIGV4aXQuCisgKi8K K3N0YXRpYyB2b2lkCitzbG90c3luY193b3JrZXJfb25leGl0KGludCBjb2RlLCBEYXR1bSBhcmcp Cit7CisJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCVNsb3RTeW5j V29ya2VyLT5waWQgPSBJbnZhbGlkUGlkOworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3Jr ZXItPm11dGV4KTsKK30KKworLyoKKyAqIFNsZWVwIGZvciBsb25nIGVub3VnaCB0aGF0IHdlIGJl bGlldmUgaXQncyBsaWtlbHkgdGhhdCB0aGUgc2xvdHMgb24gcHJpbWFyeQorICogZ2V0IHVwZGF0 ZWQuCisgKgorICogSWYgdGhlcmUgaXMgbm8gc2xvdCBhY3Rpdml0eSB0aGUgd2FpdCB0aW1lIGJl dHdlZW4gc3luYy1jeWNsZXMgd2lsbCBkb3VibGUKKyAqICh0byBhIG1heGltdW0gb2YgMzBzKS4g SWYgdGhlcmUgaXMgc29tZSBzbG90IGFjdGl2aXR5IHRoZSB3YWl0IHRpbWUgYmV0d2VlbgorICog c3luYy1jeWNsZXMgaXMgcmVzZXQgdG8gdGhlIG1pbmltdW0gKDIwMG1zKS4KKyAqLworc3RhdGlj IHZvaWQKK3dhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoYm9vbCBzb21lX3Nsb3RfdXBkYXRlZCwgYm9v bCBhbV9jYXNjYWRpbmdfc3RhbmRieSkKK3sKKwlpbnQJCQlyYzsKKworCWlmIChhbV9jYXNjYWRp bmdfc3RhbmRieSkKKwl7CisJCS8qCisJCSAqIFNsb3Qgc3luY2hyb25pemF0aW9uIGlzIGN1cnJl bnRseSBub3Qgc3VwcG9ydGVkIG9uIGNhc2NhZGluZworCQkgKiBzdGFuZGJ5LiBTbyBpZiB3ZSBh cmUgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5LCB3ZSB3aWxsIHNraXAgdGhlCisJCSAqIHN5bmMg YW5kIHRha2UgYSBsb25nZXIgbmFwIGJlZm9yZSB3ZSBjaGVjayBhZ2FpbiB3aGV0aGVyIHdlIGFy ZQorCQkgKiBzdGlsbCBjYXNjYWRpbmcgc3RhbmRieSBvciBub3QuCisJCSAqLworCQlzbGVlcF9t cyA9IE1BWF9XT1JLRVJfTkFQVElNRV9NUzsKKwl9CisJZWxzZSBpZiAoIXNvbWVfc2xvdF91cGRh dGVkKQorCXsKKwkJLyoKKwkJICogTm8gc2xvdHMgd2VyZSB1cGRhdGVkLCBzbyBkb3VibGUgdGhl IHNsZWVwIHRpbWUsIGJ1dCBub3QgYmV5b25kIHRoZQorCQkgKiBtYXhpbXVtIGFsbG93YWJsZSB2 YWx1ZS4KKwkJICovCisJCXNsZWVwX21zID0gTWluKHNsZWVwX21zICogMiwgTUFYX1dPUktFUl9O QVBUSU1FX01TKTsKKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJICogU29tZSBzbG90cyB3ZXJlIHVw ZGF0ZWQgc2luY2UgdGhlIGxhc3Qgc2xlZXAsIHNvIHJlc2V0IHRoZSBzbGVlcAorCQkgKiB0aW1l LgorCQkgKi8KKwkJc2xlZXBfbXMgPSBNSU5fV09SS0VSX05BUFRJTUVfTVM7CisJfQorCisJcmMg PSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwg V0xfRVhJVF9PTl9QTV9ERUFUSCwKKwkJCQkgICBzbGVlcF9tcywKKwkJCQkgICBXQUlUX0VWRU5U X1JFUExfU0xPVFNZTkNfTUFJTik7CisKKwlpZiAocmMgJiBXTF9MQVRDSF9TRVQpCisJCVJlc2V0 TGF0Y2goTXlMYXRjaCk7Cit9CisKKy8qCisgKiBUaGUgbWFpbiBsb29wIG9mIG91ciB3b3JrZXIg cHJvY2Vzcy4KKyAqCisgKiBJdCBjb25uZWN0cyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIsIGZldGNo ZXMgbG9naWNhbCBmYWlsb3ZlciBzbG90cworICogaW5mb3JtYXRpb24gcGVyaW9kaWNhbGx5IGlu IG9yZGVyIHRvIGNyZWF0ZSBhbmQgc3luYyB0aGUgc2xvdHMuCisgKi8KK3ZvaWQKK1JlcGxTbG90 U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCit7CisJV2FsUmVjZWl2ZXJDb25uICp3cmNv bm4gPSBOVUxMOworCWNoYXIJICAgKmRibmFtZTsKKwlib29sCQlhbV9jYXNjYWRpbmdfc3RhbmRi eTsKKwljaGFyCSAgICplcnI7CisKKwllcmVwb3J0KExPRywgZXJybXNnKCJyZXBsaWNhdGlvbiBz bG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisKKwlvbl9zaG1lbV9leGl0KHNsb3RzeW5jX3dv cmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7CisKKwlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29y a2VyLT5tdXRleCk7CisKKwlBc3NlcnQoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlk KTsKKworCS8qCisJICogU3RhcnR1cCBwcm9jZXNzIHNpZ25hbGVkIHRoZSBzbG90IHN5bmMgd29y a2VyIHRvIHN0b3AsIHNvIGlmIG1lYW53aGlsZQorCSAqIHBvc3RtYXN0ZXIgZW5kZWQgdXAgc3Rh cnRpbmcgdGhlIHdvcmtlciBhZ2FpbiwgZXhpdC4KKwkgKi8KKwlpZiAoU2xvdFN5bmNXb3JrZXIt PnN0b3BTaWduYWxlZCkKKwl7CisJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11 dGV4KTsKKwkJcHJvY19leGl0KDApOworCX0KKworCS8qIEFkdmVydGlzZSBvdXIgUElEIHNvIHRo YXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24gKi8KKwlTbG90 U3luY1dvcmtlci0+cGlkID0gTXlQcm9jUGlkOworCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3lu Y1dvcmtlci0+bXV0ZXgpOworCisJLyogU2V0dXAgc2lnbmFsIGhhbmRsaW5nICovCisJcHFzaWdu YWwoU0lHSFVQLCBTaWduYWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsKKwlwcXNpZ25hbChTSUdJ TlQsIFNpZ25hbEhhbmRsZXJGb3JTaHV0ZG93blJlcXVlc3QpOworCXBxc2lnbmFsKFNJR1RFUk0s IGRpZSk7CisJQmFja2dyb3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7CisKKwkvKiBMb2FkIHRo ZSBsaWJwcS1zcGVjaWZpYyBmdW5jdGlvbnMgKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2 ZXIiLCBmYWxzZSk7CisKKwlkYm5hbWUgPSB2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJu YW1lKCk7CisKKwkvKgorCSAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNwZWNpZmllZCBieSB1 c2VyIGluIHByaW1hcnlfY29ubmluZm8uIFdlIG5lZWQKKwkgKiBhIGRhdGFiYXNlIGNvbm5lY3Rp b24gZm9yIHdhbHJjdl9leGVjIHRvIHdvcmsuIFBsZWFzZSBzZWUgY29tbWVudHMgYXRvcAorCSAq IGxpYnBxcmN2X2V4ZWMuCisJICovCisJQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVDb25uZWN0 aW9uKGRibmFtZSwgTlVMTCwgMCk7CisKKwkvKgorCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlv biB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yIHNsb3RzCisJICogc3luY2hyb25pemF0aW9uLgor CSAqLworCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlDb25uSW5mbywgdHJ1ZSwgZmFs c2UsCisJCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9uYW1lIDogInNsb3RzeW5jd29y a2VyIiwKKwkJCQkJCQkmZXJyKTsKKwlpZiAoIXdyY29ubikKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQllcnJjb2RlKEVSUkNPREVfQ09OTkVDVElPTl9GQUlMVVJFKSwKKwkJCQllcnJtc2coImNvdWxk IG5vdCBjb25uZWN0IHRvIHRoZSBwcmltYXJ5IHNlcnZlcjogJXMiLCBlcnIpKTsKKworCS8qCisJ ICogVXNpbmcgdGhlIHNwZWNpZmllZCBwcmltYXJ5IHNlcnZlciBjb25uZWN0aW9uLCBjaGVjayB3 aGV0aGVyIHdlIGFyZQorCSAqIGNhc2NhZGluZyBzdGFuZGJ5IGFuZCB2YWxpZGF0ZXMgcHJpbWFy eV9zbG90X25hbWUgZm9yCisJICogbm9uLWNhc2NhZGluZy1zdGFuZGJ5cy4KKwkgKi8KKwljaGVj a19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCisJLyogTWFp biB3YWl0IGxvb3AgKi8KKwlmb3IgKDs7KQorCXsKKwkJYm9vbAkJc29tZV9zbG90X3VwZGF0ZWQg PSBmYWxzZTsKKworCQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CisKKwkJaWYg KCFhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwkJCXNvbWVfc2xvdF91cGRhdGVkID0gc3luY2hyb25p emVfc2xvdHMod3Jjb25uKTsKKworCQl3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KHNvbWVfc2xvdF91 cGRhdGVkLCBhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisKKwkJLyoKKwkJICogSWYgdGhlIHN0YW5k Ynkgd2FzIHByb21vdGVkIHRoZW4gd2hhdCB3YXMgcHJldmlvdXNseSBhIGNhc2NhZGluZworCQkg KiBzdGFuZGJ5IG1pZ2h0IG5vIGxvbmdlciBiZSBvbmUsIHNvIHJlY2hlY2sgZWFjaCB0aW1lLgor CQkgKi8KKwkJaWYgKGFtX2Nhc2NhZGluZ19zdGFuZGJ5KQorCQkJY2hlY2tfcHJpbWFyeV9pbmZv KHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwl9CisKKwkvKgorCSAqIFRoZSBzbG90 IHN5bmMgd29ya2VyIGNhbiBub3QgZ2V0IGhlcmUgYmVjYXVzZSBpdCB3aWxsIG9ubHkgc3RvcCB3 aGVuIGl0CisJICogcmVjZWl2ZXMgYSBTSUdJTlQgZnJvbSB0aGUgc3RhcnR1cCBwcm9jZXNzLCBv ciB3aGVuIHRoZXJlIGlzIGFuIGVycm9yLgorCSAqLworCUFzc2VydChmYWxzZSk7Cit9CisKKy8q CisgKiBJcyBjdXJyZW50IHByb2Nlc3MgdGhlIHNsb3Qgc3luYyB3b3JrZXI/CisgKi8KK2Jvb2wK K0lzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpCit7CisJcmV0dXJuIFNsb3RTeW5jV29ya2Vy LT5waWQgPT0gTXlQcm9jUGlkOworfQorCisvKgorICogU2h1dCBkb3duIHRoZSBzbG90IHN5bmMg d29ya2VyLgorICovCit2b2lkCitTaHV0RG93blNsb3RTeW5jKHZvaWQpCit7CisJU3BpbkxvY2tB Y3F1aXJlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCisJU2xvdFN5bmNXb3JrZXItPnN0b3BT aWduYWxlZCA9IHRydWU7CisKKwlpZiAoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlk KQorCXsKKwkJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCQlyZXR1 cm47CisJfQorCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKworCWtp bGwoU2xvdFN5bmNXb3JrZXItPnBpZCwgU0lHSU5UKTsKKworCS8qIFdhaXQgZm9yIGl0IHRvIGRp ZSAqLworCWZvciAoOzspCisJeworCQlpbnQJCQlyYzsKKworCQkvKiBXYWl0IGEgYml0LCB3ZSBk b24ndCBleHBlY3QgdG8gaGF2ZSB0byB3YWl0IGxvbmcgKi8KKwkJcmMgPSBXYWl0TGF0Y2goTXlM YXRjaCwKKwkJCQkJICAgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1f REVBVEgsCisJCQkJCSAgIDEwTCwgV0FJVF9FVkVOVF9CR1dPUktFUl9TSFVURE9XTik7CisKKwkJ aWYgKHJjICYgV0xfTEFUQ0hfU0VUKQorCQl7CisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCQkJ Q0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJfQorCisJCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5 bmNXb3JrZXItPm11dGV4KTsKKworCQkvKiBJcyBpdCBnb25lPyAqLworCQlpZiAoU2xvdFN5bmNX b3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKQorCQkJYnJlYWs7CisKKwkJU3BpbkxvY2tSZWxlYXNl KCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCX0KKworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5 bmNXb3JrZXItPm11dGV4KTsKK30KKworLyoKKyAqIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHNs b3Qgc3luYyB3b3JrZXIgc2hhcmVkIG1lbW9yeQorICovCit2b2lkCitTbG90U3luY1dvcmtlclNo bWVtSW5pdCh2b2lkKQoreworCVNpemUJCXNpemU7CisJYm9vbAkJZm91bmQ7CisKKwlzaXplID0g c2l6ZW9mKFNsb3RTeW5jV29ya2VyQ3R4U3RydWN0KTsKKwlzaXplID0gTUFYQUxJR04oc2l6ZSk7 CisKKwlTbG90U3luY1dvcmtlciA9IChTbG90U3luY1dvcmtlckN0eFN0cnVjdCAqKQorCQlTaG1l bUluaXRTdHJ1Y3QoIlNsb3QgU3luYyBXb3JrZXIgRGF0YSIsIHNpemUsICZmb3VuZCk7CisKKwlp ZiAoIWZvdW5kKQorCXsKKwkJbWVtc2V0KFNsb3RTeW5jV29ya2VyLCAwLCBzaXplKTsKKwkJU2xv dFN5bmNXb3JrZXItPnBpZCA9IEludmFsaWRQaWQ7CisJCVNwaW5Mb2NrSW5pdCgmU2xvdFN5bmNX b3JrZXItPm11dGV4KTsKKwl9Cit9CisKKy8qCisgKiBSZWdpc3RlciB0aGUgYmFja2dyb3VuZCB3 b3JrZXIgZm9yIHNsb3RzIHN5bmNocm9uaXphdGlvbiBwcm92aWRlZAorICogZW5hYmxlX3N5bmNz bG90IGlzIE9OLgorICovCit2b2lkCitTbG90U3luY1dvcmtlclJlZ2lzdGVyKHZvaWQpCit7CisJ QmFja2dyb3VuZFdvcmtlciBiZ3c7CisKKwlpZiAoIWVuYWJsZV9zeW5jc2xvdCkKKwl7CisJCWVy ZXBvcnQoTE9HLAorCQkJCWVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSwK KwkJCQllcnJkZXRhaWwoIlwiZW5hYmxlX3N5bmNzbG90XCIgaXMgZGlzYWJsZWQuIikpOworCQly ZXR1cm47CisJfQorCisJbWVtc2V0KCZiZ3csIDAsIHNpemVvZihiZ3cpKTsKKworCS8qIFdlIG5l ZWQgZGF0YWJhc2UgY29ubmVjdGlvbiB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBh cyB3ZWxsICovCisJYmd3LmJnd19mbGFncyA9IEJHV09SS0VSX1NITUVNX0FDQ0VTUyB8CisJCUJH V09SS0VSX0JBQ0tFTkRfREFUQUJBU0VfQ09OTkVDVElPTjsKKworCS8qIFN0YXJ0IGFzIHNvb24g YXMgYSBjb25zaXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qgc3RhbmRieSAq LworCWJndy5iZ3dfc3RhcnRfdGltZSA9IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hv dFN0YW5kYnk7CisKKwlzbnByaW50ZihiZ3cuYmd3X2xpYnJhcnlfbmFtZSwgTUFYUEdQQVRILCAi cG9zdGdyZXMiKTsKKwlzbnByaW50ZihiZ3cuYmd3X2Z1bmN0aW9uX25hbWUsIEJHV19NQVhMRU4s ICJSZXBsU2xvdFN5bmNXb3JrZXJNYWluIik7CisJc25wcmludGYoYmd3LmJnd19uYW1lLCBCR1df TUFYTEVOLAorCQkJICJyZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIik7CisJc25wcmludGYo Ymd3LmJnd190eXBlLCBCR1dfTUFYTEVOLAorCQkJICJzbG90IHN5bmMgd29ya2VyIik7CisKKwli Z3cuYmd3X3Jlc3RhcnRfdGltZSA9IEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUw7CisJYmd3 LmJnd19ub3RpZnlfcGlkID0gMDsKKwliZ3cuYmd3X21haW5fYXJnID0gKERhdHVtKSAwOworCisJ UmVnaXN0ZXJCYWNrZ3JvdW5kV29ya2VyKCZiZ3cpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmlu ZGV4IGYyNzgxZDA0NTUuLmYwNzE0N2E2OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTQ3 LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIK ICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fs c2VuZGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBj LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCkBAIC0xMDMsNyArMTA0LDYgQEAgaW50CQkJ bWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBs aWNhdGlvbgogCQkJCQkJCQkJCSAqIHNsb3RzICovCiAKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9u U2xvdFNobWVtRXhpdChpbnQgY29kZSwgRGF0dW0gYXJnKTsKLXN0YXRpYyB2b2lkIFJlcGxpY2F0 aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKTsKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERy b3BQdHIoUmVwbGljYXRpb25TbG90ICpzbG90KTsKIAogLyogaW50ZXJuYWwgcGVyc2lzdGVuY3kg ZnVuY3Rpb25zICovCkBAIC0yNTAsMTEgKzI1MCwxMiBAQCBSZXBsaWNhdGlvblNsb3RWYWxpZGF0 ZU5hbWUoY29uc3QgY2hhciAqbmFtZSwgaW50IGVsZXZlbCkKICAqICAgICB1c2VyIHdpbGwgb25s eSBnZXQgY29tbWl0IHByZXBhcmVkLgogICogZmFpbG92ZXI6IElmIGVuYWJsZWQsIGFsbG93cyB0 aGUgc2xvdCB0byBiZSBzeW5jZWQgdG8gc3RhbmRieXMgc28KICAqICAgICB0aGF0IGxvZ2ljYWwg cmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCisgKiBzeW5jZWQ6IFRy dWUgaWYgdGhlIHNsb3QgaXMgY3JlYXRlZCBieSBhIHNsb3RzeW5jIHdvcmtlci4KICAqLwogdm9p ZAogUmVwbGljYXRpb25TbG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lm aWMsCiAJCQkJCSAgUmVwbGljYXRpb25TbG90UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksCi0JCQkJ CSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIpCisJCQkJCSAgYm9vbCB0d29fcGhhc2Us IGJvb2wgZmFpbG92ZXIsIGJvb2wgc3luY2VkKQogewogCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9 IE5VTEw7CiAJaW50CQkJaTsKQEAgLTI2Myw2ICsyNjQsMTYgQEAgUmVwbGljYXRpb25TbG90Q3Jl YXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAKIAlSZXBsaWNhdGlvblNs b3RWYWxpZGF0ZU5hbWUobmFtZSwgRVJST1IpOwogCisJLyoKKwkgKiBEbyBub3QgYWxsb3cgdXNl cnMgdG8gY3JlYXRlIHRoZSBzbG90cyB3aXRoIGZhaWxvdmVyIGVuYWJsZWQgb24gdGhlCisJICog c3RhbmRieSBhcyB3ZSBkbyBub3Qgc3VwcG9ydCBzeW5jIHRvIHRoZSBjYXNjYWRpbmcgc3RhbmRi eS4KKwkgKi8KKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgZmFpbG92ZXIpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJZXJybXNnKCJjYW5ub3QgZW5hYmxlIGZhaWxvdmVyIGZvciBhIHJlcGxpY2F0aW9uIHNsb3Qi CisJCQkJCSAgICIgY3JlYXRlZCBvbiB0aGUgc3RhbmRieSIpKTsKKwogCS8qCiAJICogSWYgc29t ZSBvdGhlciBiYWNrZW5kIHJhbiB0aGlzIGNvZGUgY29uY3VycmVudGx5IHdpdGggdXMsIHdlJ2Qg bGlrZWx5CiAJICogYm90aCBhbGxvY2F0ZSB0aGUgc2FtZSBzbG90LCBhbmQgdGhhdCB3b3VsZCBi ZSBiYWQuICBXZSdkIGFsc28gYmUgYXQKQEAgLTMxNSw2ICszMjYsNyBAQCBSZXBsaWNhdGlvblNs b3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAlzbG90LT5kYXRh LnR3b19waGFzZSA9IHR3b19waGFzZTsKIAlzbG90LT5kYXRhLnR3b19waGFzZV9hdCA9IEludmFs aWRYTG9nUmVjUHRyOwogCXNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKKwlzbG90LT5k YXRhLnN5bmNlZCA9IHN5bmNlZDsKIAogCS8qIGFuZCB0aGVuIGRhdGEgb25seSBwcmVzZW50IGlu IHNoYXJlZCBtZW1vcnkgKi8KIAlzbG90LT5qdXN0X2RpcnRpZWQgPSBmYWxzZTsKQEAgLTY4MCw2 ICs2OTIsMTYgQEAgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5v d2FpdCkKIAogCVJlcGxpY2F0aW9uU2xvdEFjcXVpcmUobmFtZSwgbm93YWl0KTsKIAorCS8qCisJ ICogRG8gbm90IGFsbG93IHVzZXJzIHRvIGRyb3AgdGhlIHNsb3RzIHdoaWNoIGFyZSBjdXJyZW50 bHkgYmVpbmcgc3luY2VkCisJICogZnJvbSB0aGUgcHJpbWFyeSB0byB0aGUgc3RhbmRieS4KKwkg Ki8KKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEu c3luY2VkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9U X0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJZXJybXNnKCJjYW5ub3QgZHJvcCByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiIsIG5hbWUpLAorCQkJCWVycmRldGFpbCgiVGhpcyBzbG90IGlzIGJl aW5nIHN5bmNlZCBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlci4iKSk7CisKIAlSZXBsaWNhdGlvblNs b3REcm9wQWNxdWlyZWQoKTsKIH0KIApAQCAtNjk5LDYgKzcyMSwyOSBAQCBSZXBsaWNhdGlvblNs b3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKQogCQkJCWVycm1zZygiY2Fu bm90IHVzZSAlcyB3aXRoIGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCiAJCQkJCSAgICJB TFRFUl9SRVBMSUNBVElPTl9TTE9UIikpOwogCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQor CXsKKwkJLyoKKwkJICogRG8gbm90IGFsbG93IHVzZXJzIHRvIGFsdGVyIHRoZSBzbG90cyB3aGlj aCBhcmUgY3VycmVudGx5IGJlaW5nCisJCSAqIHN5bmNlZCBmcm9tIHRoZSBwcmltYXJ5IHRvIHRo ZSBzdGFuZGJ5LgorCQkgKi8KKwkJaWYgKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnN5bmNlZCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BS RVJFUVVJU0lURV9TVEFURSksCisJCQkJCWVycm1zZygiY2Fubm90IGFsdGVyIHJlcGxpY2F0aW9u IHNsb3QgXCIlc1wiIiwgbmFtZSksCisJCQkJCWVycmRldGFpbCgiVGhpcyBzbG90IGlzIGJlaW5n IHN5bmNlZCBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlci4iKSk7CisKKwkJLyoKKwkJICogRG8gbm90 IGFsbG93IHVzZXJzIHRvIGFsdGVyIHNsb3RzIHRvIGVuYWJsZSBmYWlsb3ZlciBvbiB0aGUgc3Rh bmRieQorCQkgKiBhcyB3ZSBkbyBub3Qgc3VwcG9ydCBzeW5jIHRvIHRoZSBjYXNjYWRpbmcgc3Rh bmRieS4KKwkJICovCisJCWlmIChmYWlsb3ZlcikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coImNhbm5v dCBlbmFibGUgZmFpbG92ZXIgZm9yIGEgcmVwbGljYXRpb24gc2xvdCIKKwkJCQkJCSAgICIgb24g dGhlIHN0YW5kYnkiKSk7CisJfQorCiAJU3BpbkxvY2tBY3F1aXJlKCZNeVJlcGxpY2F0aW9uU2xv dC0+bXV0ZXgpOwogCU15UmVwbGljYXRpb25TbG90LT5kYXRhLmZhaWxvdmVyID0gZmFpbG92ZXI7 CiAJU3BpbkxvY2tSZWxlYXNlKCZNeVJlcGxpY2F0aW9uU2xvdC0+bXV0ZXgpOwpAQCAtNzExLDcg Kzc1Niw3IEBAIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFp bG92ZXIpCiAvKgogICogUGVybWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHJl cGxpY2F0aW9uIHNsb3QuCiAgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBSZXBsaWNhdGlvblNsb3RE cm9wQWNxdWlyZWQodm9pZCkKIHsKIAlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0 aW9uU2xvdDsKQEAgLTg2Nyw4ICs5MTIsOCBAQCBSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkodm9p ZCkKIH0KIAogLyoKLSAqIENvbnZlcnQgYSBzbG90IHRoYXQncyBtYXJrZWQgYXMgUlNfRVBIRU1F UkFMIHRvIGEgUlNfUEVSU0lTVEVOVCBzbG90LAotICogZ3VhcmFudGVlaW5nIGl0IHdpbGwgYmUg dGhlcmUgYWZ0ZXIgYW4gZXZlbnR1YWwgY3Jhc2guCisgKiBDb252ZXJ0IGEgc2xvdCB0aGF0J3Mg bWFya2VkIGFzIFJTX0VQSEVNRVJBTCBvciBSU19URU1QT1JBUlkgdG8gYQorICogUlNfUEVSU0lT VEVOVCBzbG90LCBndWFyYW50ZWVpbmcgaXQgd2lsbCBiZSB0aGVyZSBhZnRlciBhbiBldmVudHVh bCBjcmFzaC4KICAqLwogdm9pZAogUmVwbGljYXRpb25TbG90UGVyc2lzdCh2b2lkKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBlYjY4NTA4OWIzLi44NDNhZThjZDY4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtNDMsNyArNDMsNyBAQCBjcmVhdGVfcGh5 c2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBib29sIGltbWVkaWF0ZWx5X3Jlc2Vy dmUsCiAJLyogYWNxdWlyZSByZXBsaWNhdGlvbiBzbG90LCB0aGlzIHdpbGwgY2hlY2sgZm9yIGNv bmZsaWN0aW5nIG5hbWVzICovCiAJUmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIGZhbHNlLAog CQkJCQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULCBmYWxzZSwK LQkJCQkJCSAgZmFsc2UpOworCQkJCQkJICBmYWxzZSwgZmFsc2UgLyogc3luY2VkICovICk7CiAK IAlpZiAoaW1tZWRpYXRlbHlfcmVzZXJ2ZSkKIAl7CkBAIC0xMzYsNyArMTM2LDcgQEAgY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBjaGFyICpwbHVnaW4sCiAJICov CiAJUmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIHRydWUsCiAJCQkJCQkgIHRlbXBvcmFyeSA/ IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlLAotCQkJCQkJICBmYWlsb3Zl cik7CisJCQkJCQkgIGZhaWxvdmVyLCBmYWxzZSAvKiBzeW5jZWQgKi8gKTsKIAogCS8qCiAJICog Q3JlYXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBvaW50IG9yLCBp ZiB3ZSBkb24ndApAQCAtMjM3LDcgKzIzNyw3IEBAIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdChQ R19GVU5DVElPTl9BUkdTKQogRGF0dW0KIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cyhQR19GVU5D VElPTl9BUkdTKQogewotI2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNgor I2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNwogCVJldHVyblNldEluZm8g KnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKIAlYTG9nUmVj UHRyCWN1cnJsc247CiAJaW50CQkJc2xvdG5vOwpAQCAtNDE4LDIxICs0MTgsMjMgQEAgcGdfZ2V0 X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCWJyZWFrOwogCiAJCQkJ Y2FzZSBSU19JTlZBTF9XQUxfUkVNT1ZFRDoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0 VGV4dERhdHVtKCJ3YWxfcmVtb3ZlZCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRU ZXh0RGF0dW0oU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9URVhUKTsKIAkJCQkJYnJlYWs7CiAKIAkJ CQljYXNlIFJTX0lOVkFMX0hPUklaT046Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRl eHREYXR1bSgicm93c19yZW1vdmVkIik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRl eHREYXR1bShTTE9UX0lOVkFMX0hPUklaT05fVEVYVCk7CiAJCQkJCWJyZWFrOwogCiAJCQkJY2Fz ZSBSU19JTlZBTF9XQUxfTEVWRUw6Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHRE YXR1bSgid2FsX2xldmVsX2luc3VmZmljaWVudCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJp bmdHZXRUZXh0RGF0dW0oU0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCk7CiAJCQkJCWJyZWFrOwog CQkJfQogCQl9CiAKIAkJdmFsdWVzW2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9jb250ZW50cy5k YXRhLmZhaWxvdmVyKTsKIAorCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRl bnRzLmRhdGEuc3luY2VkKTsKKwogCQlBc3NlcnQoaSA9PSBQR19HRVRfUkVQTElDQVRJT05fU0xP VFNfQ09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJz aW5mby0+c2V0RGVzYywKQEAgLTcwMCw3ICs3MDIsNiBAQCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3Qo RnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9naWNhbF9zbG90KQogCVhMb2dSZWNQdHIJ c3JjX3Jlc3RhcnRfbHNuOwogCWJvb2wJCXNyY19pc2xvZ2ljYWw7CiAJYm9vbAkJdGVtcG9yYXJ5 OwotCWJvb2wJCWZhaWxvdmVyOwogCWNoYXIJICAgKnBsdWdpbjsKIAlEYXR1bQkJdmFsdWVzWzJd OwogCWJvb2wJCW51bGxzWzJdOwpAQCAtNzU2LDcgKzc1Nyw2IEBAIGNvcHlfcmVwbGljYXRpb25f c2xvdChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJc3JjX2lz bG9naWNhbCA9IFNsb3RJc0xvZ2ljYWwoJmZpcnN0X3Nsb3RfY29udGVudHMpOwogCXNyY19yZXN0 YXJ0X2xzbiA9IGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5yZXN0YXJ0X2xzbjsKIAl0ZW1wb3Jh cnkgPSAoZmlyc3Rfc2xvdF9jb250ZW50cy5kYXRhLnBlcnNpc3RlbmN5ID09IFJTX1RFTVBPUkFS WSk7Ci0JZmFpbG92ZXIgPSBmaXJzdF9zbG90X2NvbnRlbnRzLmRhdGEuZmFpbG92ZXI7CiAJcGx1 Z2luID0gbG9naWNhbF9zbG90ID8gTmFtZVN0cihmaXJzdF9zbG90X2NvbnRlbnRzLmRhdGEucGx1 Z2luKSA6IE5VTEw7CiAKIAkvKiBDaGVjayB0eXBlIG9mIHJlcGxpY2F0aW9uIHNsb3QgKi8KQEAg LTc5MSwxMiArNzkxLDIwIEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlvbkNhbGxJbmZv IGZjaW5mbywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJCSAqIFdlIG11c3Qgbm90IHRyeSB0byByZWFk IFdBTCwgc2luY2Ugd2UgaGF2ZW4ndCByZXNlcnZlZCBpdCB5ZXQgLS0KIAkJICogaGVuY2UgcGFz cyBmaW5kX3N0YXJ0cG9pbnQgZmFsc2UuICBjb25maXJtZWRfZmx1c2ggd2lsbCBiZSBzZXQKIAkJ ICogYmVsb3csIGJ5IGNvcHlpbmcgZnJvbSB0aGUgc291cmNlIHNsb3QuCisJCSAqCisJCSAqIFRv IGF2b2lkIHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB0aGUgc2xvdHN5bmMgd29ya2VyIHdoZW4gdGhl CisJCSAqIHJlc3RhcnRfbHNuIG9mIGEgcmVwbGljYXRpb24gc2xvdCBnb2VzIGJhY2t3YXJkcywg d2Ugc2V0IHRoZQorCQkgKiBmYWlsb3ZlciBvcHRpb24gdG8gZmFsc2UgaGVyZS4gVGhpcyBzaXR1 YXRpb24gb2NjdXJzIHdoZW4gYSBzbG90IG9uCisJCSAqIHRoZSBwcmltYXJ5IHNlcnZlciBpcyBk cm9wcGVkIGFuZCBpbW1lZGlhdGVseSByZXBsYWNlZCB3aXRoIGEgbmV3CisJCSAqIHNsb3Qgb2Yg dGhlIHNhbWUgbmFtZSwgY3JlYXRlZCBieSBjb3B5aW5nIGZyb20gYW5vdGhlciBleGlzdGluZwor CQkgKiBzbG90LiBIb3dldmVyLCB0aGUgc2xvdHN5bmMgd29ya2VyIHdpbGwgb25seSBvYnNlcnZl IHRoZSByZXN0YXJ0X2xzbgorCQkgKiBvZiB0aGUgc2FtZSBzbG90IGdvaW5nIGJhY2t3YXJkcy4K IAkJICovCiAJCWNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoTmFtZVN0cigqZHN0X25h bWUpLAogCQkJCQkJCQkJCXBsdWdpbiwKIAkJCQkJCQkJCQl0ZW1wb3JhcnksCiAJCQkJCQkJCQkJ ZmFsc2UsCi0JCQkJCQkJCQkJZmFpbG92ZXIsCisJCQkJCQkJCQkJZmFsc2UsCiAJCQkJCQkJCQkJ c3JjX3Jlc3RhcnRfbHNuLAogCQkJCQkJCQkJCWZhbHNlKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKaW5kZXggNzNhN2Q4Zjk2Yy4uZDQyMGE4MzNjZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYwpAQCAtMzQ1LDYg KzM0NSwyMiBAQCBHZXRXYWxSY3ZGbHVzaFJlY1B0cihYTG9nUmVjUHRyICpsYXRlc3RDaHVua1N0 YXJ0LCBUaW1lTGluZUlEICpyZWNlaXZlVExJKQogCXJldHVybiByZWNwdHI7CiB9CiAKKy8qCisg KiBSZXR1cm5zIHRoZSBsYXRlc3QgcmVwb3J0ZWQgZW5kIG9mIFdBTCBvbiB0aGUgc2VuZGVyCisg Ki8KK1hMb2dSZWNQdHIKK0dldFdhbFJjdkxhdGVzdFdhbEVuZCgpCit7CisJV2FsUmN2RGF0YSAq d2FscmN2ID0gV2FsUmN2OworCVhMb2dSZWNQdHIJcmVjcHRyOworCisJU3BpbkxvY2tBY3F1aXJl KCZ3YWxyY3YtPm11dGV4KTsKKwlyZWNwdHIgPSB3YWxyY3YtPmxhdGVzdFdhbEVuZDsKKwlTcGlu TG9ja1JlbGVhc2UoJndhbHJjdi0+bXV0ZXgpOworCisJcmV0dXJuIHJlY3B0cjsKK30KKwogLyoK ICAqIFJldHVybnMgdGhlIGxhc3QrMSBieXRlIHBvc2l0aW9uIHRoYXQgd2FscmVjZWl2ZXIgaGFz IHdyaXR0ZW4uCiAgKiBUaGlzIHJldHVybnMgYSByZWNlbnRseSB3cml0dGVuIHZhbHVlIHdpdGhv dXQgdGFraW5nIGEgbG9jay4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggNzdj OGJhYTMyYS4uZjc1M2FlZDM0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAg LTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2RlY29kZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwu aCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCiAjaW5jbHVkZSAicmVw bGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3NuYXBidWlsZC5oIgogI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNyZXAuaCIKQEAgLTI0Myw3ICsyNDQsNiBAQCBzdGF0aWMg dm9pZCBXYWxTbmRTaHV0ZG93bih2b2lkKSBwZ19hdHRyaWJ1dGVfbm9yZXR1cm4oKTsKIHN0YXRp YyB2b2lkIFhMb2dTZW5kUGh5c2ljYWwodm9pZCk7CiBzdGF0aWMgdm9pZCBYTG9nU2VuZExvZ2lj YWwodm9pZCk7CiBzdGF0aWMgdm9pZCBXYWxTbmREb25lKFdhbFNuZFNlbmREYXRhQ2FsbGJhY2sg c2VuZF9kYXRhKTsKLXN0YXRpYyBYTG9nUmVjUHRyIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1l TGluZUlEICp0bGkpOwogc3RhdGljIHZvaWQgSWRlbnRpZnlTeXN0ZW0odm9pZCk7CiBzdGF0aWMg dm9pZCBVcGxvYWRNYW5pZmVzdCh2b2lkKTsKIHN0YXRpYyBib29sIEhhbmRsZVVwbG9hZE1hbmlm ZXN0UGFja2V0KFN0cmluZ0luZm8gYnVmLCBvZmZfdCAqb2Zmc2V0LApAQCAtMTIyNCw3ICsxMjI0 LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21k KQogCXsKIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLAogCQkJ CQkJCSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULAotCQkJ CQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJCQkJCQkgIGZhbHNlLCBmYWxzZSwgZmFsc2UgLyogc3lu Y2VkICovICk7CiAKIAkJaWYgKHJlc2VydmVfd2FsKQogCQl7CkBAIC0xMjU1LDcgKzEyNTUsNyBA QCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJ CSAqLwogCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgdHJ1ZSwKIAkJCQkJ CQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLAotCQkJCQkJ CSAgdHdvX3BoYXNlLCBmYWlsb3Zlcik7CisJCQkJCQkJICB0d29fcGhhc2UsIGZhaWxvdmVyLCBm YWxzZSAvKiBzeW5jZWQgKi8gKTsKIAogCQkvKgogCQkgKiBEbyBvcHRpb25zIGNoZWNrIGVhcmx5 IHNvIHRoYXQgd2UgY2FuIGJhaWwgYmVmb3JlIGNhbGxpbmcgdGhlCkBAIC0zMzc1LDE0ICszMzc1 LDE3IEBAIFdhbFNuZERvbmUoV2FsU25kU2VuZERhdGFDYWxsYmFjayBzZW5kX2RhdGEpCiB9CiAK IC8qCi0gKiBSZXR1cm5zIHRoZSBsYXRlc3QgcG9pbnQgaW4gV0FMIHRoYXQgaGFzIGJlZW4gc2Fm ZWx5IGZsdXNoZWQgdG8gZGlzaywgYW5kCi0gKiBjYW4gYmUgc2VudCB0byB0aGUgc3RhbmRieS4g VGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiBpbiByZWNvdmVyeSwKLSAqIGllLiB3ZSdy ZSBzdHJlYW1pbmcgdG8gYSBjYXNjYWRlZCBzdGFuZGJ5LgorICogUmV0dXJucyB0aGUgbGF0ZXN0 IHBvaW50IGluIFdBTCB0aGF0IGhhcyBiZWVuIHNhZmVseSBmbHVzaGVkIHRvIGRpc2suCisgKiBU aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIGluIHJlY292ZXJ5LgorICoKKyAqIFRoaXMg aXMgY2FsbGVkIGVpdGhlciBieSBjYXNjYWRpbmcgd2Fsc2VuZGVyIHRvIGZpbmQgV0FMIHBvc3Rp b24gdG8KKyAqIGJlIHNlbnQgdG8gYSBjYXNjYWRlZCBzdGFuZGJ5IG9yIGJ5IGEgc2xvdCBzeW5j IHdvcmtlciB0byB2YWxpZGF0ZQorICogcmVtb3RlIHNsb3QncyBsc24gYmVmb3JlIHN5bmNpbmcg aXQgbG9jYWxseS4KICAqCiAgKiBBcyBhIHNpZGUtZWZmZWN0LCAqdGxpIGlzIHVwZGF0ZWQgdG8g dGhlIFRMSSBvZiB0aGUgbGFzdAogICogcmVwbGF5ZWQgV0FMIHJlY29yZC4KICAqLwotc3RhdGlj IFhMb2dSZWNQdHIKK1hMb2dSZWNQdHIKIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlE ICp0bGkpCiB7CiAJWExvZ1JlY1B0cglyZXBsYXlQdHI7CkBAIC0zMzkxLDYgKzMzOTQsOCBAQCBH ZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoVGltZUxpbmVJRCAqdGxpKQogCVRpbWVMaW5lSUQJcmVjZWl2 ZVRMSTsKIAlYTG9nUmVjUHRyCXJlc3VsdDsKIAorCUFzc2VydChhbV9jYXNjYWRpbmdfd2Fsc2Vu ZGVyIHx8IElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkpOworCiAJLyoKIAkgKiBXZSBjYW4gc2Fm ZWx5IHNlbmQgd2hhdCdzIGFscmVhZHkgYmVlbiByZXBsYXllZC4gQWxzbywgaWYgd2FscmVjZWl2 ZXIKIAkgKiBpcyBzdHJlYW1pbmcgV0FMIGZyb20gdGhlIHNhbWUgdGltZWxpbmUsIHdlIGNhbiBz ZW5kIGFueXRoaW5nIHRoYXQgaXQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L2lwY2kuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYwppbmRleCA3MDg0ZTE4ODYx Li45MjVhYzZjOTQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCkBAIC0zOCw2ICszOCw3IEBACiAj aW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJl Y2VpdmVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisjaW5jbHVkZSAi cmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3Iu aCIKICNpbmNsdWRlICJzdG9yYWdlL2RzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZHNtX3JlZ2lz dHJ5LmgiCkBAIC0zNDcsNiArMzQ4LDcgQEAgQ3JlYXRlT3JBdHRhY2hTaG1lbVN0cnVjdHModm9p ZCkKIAlXYWxTdW1tYXJpemVyU2htZW1Jbml0KCk7CiAJUGdBcmNoU2htZW1Jbml0KCk7CiAJQXBw bHlMYXVuY2hlclNobWVtSW5pdCgpOworCVNsb3RTeW5jV29ya2VyU2htZW1Jbml0KCk7CiAKIAkv KgogCSAqIFNldCB1cCBvdGhlciBtb2R1bGVzIHRoYXQgbmVlZCBzb21lIHNoYXJlZCBtZW1vcnkg c3BhY2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAxYTM0YmQzNzE1Li5lOGM1MzBhY2Q5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCkBAIC0zMjg2LDYgKzMyODYsMTcgQEAgUHJvY2Vzc0ludGVycnVwdHModm9pZCkK IAkJCSAqLwogCQkJcHJvY19leGl0KDEpOwogCQl9CisJCWVsc2UgaWYgKElzTG9naWNhbFNsb3RT eW5jV29ya2VyKCkpCisJCXsKKwkJCWVsb2coREVCVUcxLAorCQkJCSAicmVwbGljYXRpb24gc2xv dCBzeW5jIHdvcmtlciBpcyBzaHV0dGluZyBkb3duIGR1ZSB0byBhZG1pbmlzdHJhdG9yIGNvbW1h bmQiKTsKKworCQkJLyoKKwkJCSAqIFNsb3Qgc3luYyB3b3JrZXIgY2FuIGJlIHN0b3BwZWQgYXQg YW55IHRpbWUuIFVzZSBleGl0IHN0YXR1cyAxCisJCQkgKiBzbyB0aGUgYmFja2dyb3VuZCB3b3Jr ZXIgaXMgcmVzdGFydGVkLgorCQkJICovCisJCQlwcm9jX2V4aXQoMSk7CisJCX0KIAkJZWxzZSBp ZiAoSXNCYWNrZ3JvdW5kV29ya2VyKQogCQkJZXJlcG9ydChGQVRBTCwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9BRE1JTl9TSFVURE9XTiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dCBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3dhaXRfZXZlbnRfbmFtZXMudHh0CmluZGV4IGE1ZGY4MzVkZDQuLjNlNjIwMzMyMmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0Cisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CkBAIC01 Myw2ICs1Myw3IEBAIExPR0lDQUxfQVBQTFlfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Yg bG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSBwcm9jZXNzLiIKIExPR0lDQUxfTEFVTkNIRVJfTUFJ TgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBsYXVuY2hlciBw cm9jZXNzLiIKIExPR0lDQUxfUEFSQUxMRUxfQVBQTFlfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxv b3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseSBwcm9jZXNzLiIKIFJFQ09W RVJZX1dBTF9TVFJFQU0JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIHN0YXJ0dXAgcHJvY2VzcyBm b3IgV0FMIHRvIGFycml2ZSwgZHVyaW5nIHN0cmVhbWluZyByZWNvdmVyeS4iCitSRVBMX1NMT1RT WU5DX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIHNsb3Qgc3luYyB3b3JrZXIuIgogU1lT TE9HR0VSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIHN5c2xvZ2dlciBwcm9jZXNzLiIK IFdBTF9SRUNFSVZFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBXQUwgcmVjZWl2ZXIg cHJvY2Vzcy4iCiBXQUxfU0VOREVSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCBz ZW5kZXIgcHJvY2Vzcy4iCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDdmZTU4 NTE4ZDcuLmZlMDQ0YzE2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC02 OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNy ZXAuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbGFyZ2Vfb2JqZWN0LmgiCiAj aW5jbHVkZSAic3RvcmFnZS9wZ19zaG1lbS5oIgpAQCAtMjA1NCw2ICsyMDU1LDE1IEBAIHN0cnVj dCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwK IAl9LAogCisJeworCQl7ImVuYWJsZV9zeW5jc2xvdCIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNB VElPTl9TVEFOREJZLAorCQkJZ2V0dGV4dF9ub29wKCJFbmFibGVzIGEgcGh5c2ljYWwgc3RhbmRi eSB0byBzeW5jaHJvbml6ZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGZyb20gdGhlIHByaW1hcnkg c2VydmVyLiIpLAorCQl9LAorCQkmZW5hYmxlX3N5bmNzbG90LAorCQlmYWxzZSwKKwkJTlVMTCwg TlVMTCwgTlVMTAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxM LCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIE5VTEwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBkYTEwYjQz ZGFjLi4zODY4Njk0ZDNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCkBAIC0zNjEsNiArMzYxLDcgQEAKICN3YWxfcmV0cmlldmVfcmV0cnlfaW50 ZXJ2YWwgPSA1cwkjIHRpbWUgdG8gd2FpdCBiZWZvcmUgcmV0cnlpbmcgdG8KIAkJCQkJIyByZXRy aWV2ZSBXQUwgYWZ0ZXIgYSBmYWlsZWQgYXR0ZW1wdAogI3JlY292ZXJ5X21pbl9hcHBseV9kZWxh eSA9IDAJCSMgbWluaW11bSBkZWxheSBmb3IgYXBwbHlpbmcgY2hhbmdlcyBkdXJpbmcgcmVjb3Zl cnkKKyNlbmFibGVfc3luY3Nsb3QgPSBvZmYJCQkjIGVuYWJsZXMgc2xvdCBzeW5jaHJvbml6YXRp b24gb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkgZnJvbSB0aGUgcHJpbWFyeQogCiAjIC0gU3Vic2Ny aWJlcnMgLQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBlNmU0YmJkZmI5Li4xMGU2YTFl OTUxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExMTIzLDkgKzExMTIzLDkgQEAKICAg cHJvbmFtZSA9PiAncGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzJywgcHJvcm93cyA9PiAnMTAnLCBw cm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2Fs bGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQs cGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2x9JywKLSAgcHJvYXJnbW9kZXMg PT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0 aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNu LHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVhc29uLGZhaWxv dmVyfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9v bCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2wsYm9v bH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s b30nLAorICBwcm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9p ZCx0ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9s c24sY29uZmlybWVkX2ZsdXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNl LGNvbmZsaWN0X3JlYXNvbixmYWlsb3ZlcixzeW5jZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRf cmVwbGljYXRpb25fc2xvdHMnIH0sCiB7IG9pZCA9PiAnMzc4NicsIGRlc2NyID0+ICdzZXQgdXAg YSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QnLAogICBwcm9uYW1lID0+ICdwZ19jcmVhdGVfbG9n aWNhbF9yZXBsaWNhdGlvbl9zbG90JywgcHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rl ci9iZ3dvcmtlci5oCmluZGV4IDIyZmM0OWVjMjcuLjcwOTJmYzcyYzYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFz dGVyL2Jnd29ya2VyLmgKQEAgLTc5LDYgKzc5LDcgQEAgdHlwZWRlZiBlbnVtCiAJQmdXb3JrZXJT dGFydF9Qb3N0bWFzdGVyU3RhcnQsCiAJQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUsCiAJ QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkLAorCUJnV29ya2VyU3RhcnRfQ29uc2lzdGVu dFN0YXRlX0hvdFN0YW5kYnksCiB9IEJnV29ya2VyU3RhcnRUaW1lOwogCiAjZGVmaW5lIEJHV19E RUZBVUxUX1JFU1RBUlRfSU5URVJWQUwJNjAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3 b3JrZXIuaAppbmRleCBhMThkNzlkMWIyLi5iYmUwNDIyNmRiIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vbG9naWNhbHdvcmtlci5oCkBAIC0yMiw2ICsyMiw3IEBAIGV4dGVybiB2b2lkIFRhYmxl c3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpOwogCiBleHRlcm4gYm9vbCBJc0xvZ2ljYWxX b3JrZXIodm9pZCk7CiBleHRlcm4gYm9vbCBJc0xvZ2ljYWxQYXJhbGxlbEFwcGx5V29ya2VyKHZv aWQpOworZXh0ZXJuIGJvb2wgSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIodm9pZCk7CiAKIGV4dGVy biB2b2lkIEhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdlSW50ZXJydXB0KHZvaWQpOwogZXh0ZXJu IHZvaWQgSGFuZGxlUGFyYWxsZWxBcHBseU1lc3NhZ2VzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xv dC5oCmluZGV4IDcyZWY0ODU5ZWUuLjQxZjBjYzM1ZjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgK QEAgLTUyLDYgKzUyLDE0IEBAIHR5cGVkZWYgZW51bSBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRp b25DYXVzZQogCVJTX0lOVkFMX1dBTF9MRVZFTCwKIH0gUmVwbGljYXRpb25TbG90SW52YWxpZGF0 aW9uQ2F1c2U7CiAKKy8qCisgKiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAnY29uZmxpY3RfcmVh c29uJyByZXR1cm5lZCBpbgorICogcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzLgorICovCisjZGVm aW5lIFNMT1RfSU5WQUxfV0FMX1JFTU9WRURfVEVYVCAid2FsX3JlbW92ZWQiCisjZGVmaW5lIFNM T1RfSU5WQUxfSE9SSVpPTl9URVhUICAgICAicm93c19yZW1vdmVkIgorI2RlZmluZSBTTE9UX0lO VkFMX1dBTF9MRVZFTF9URVhUICAgIndhbF9sZXZlbF9pbnN1ZmZpY2llbnQiCisKIC8qCiAgKiBP bi1EaXNrIGRhdGEgb2YgYSByZXBsaWNhdGlvbiBzbG90LCBwcmVzZXJ2ZWQgYWNyb3NzIHJlc3Rh cnRzLgogICovCkBAIC0xMTIsNiArMTIwLDExIEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9u U2xvdFBlcnNpc3RlbnREYXRhCiAJLyogcGx1Z2luIG5hbWUgKi8KIAlOYW1lRGF0YQlwbHVnaW47 CiAKKwkvKgorCSAqIFdhcyB0aGlzIHNsb3Qgc3luY2hyb25pemVkIGZyb20gdGhlIHByaW1hcnkg c2VydmVyPworCSAqLworCWNoYXIJCXN5bmNlZDsKKwogCS8qCiAJICogSXMgdGhpcyBhIGZhaWxv dmVyIHNsb3QgKHN5bmMgY2FuZGlkYXRlIGZvciBzdGFuZGJ5cyk/IE9ubHkKIAkgKiByZWxldmFu dCBmb3IgbG9naWNhbCBzbG90cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuCkBAIC0yMjQsOSArMjM3 LDExIEBAIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdHNTaG1lbUluaXQodm9pZCk7CiAvKiBt YW5hZ2VtZW50IG9mIGluZGl2aWR1YWwgc2xvdHMgKi8KIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9u U2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkJCQkg IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJCQkJCQkgIGJvb2wg dHdvX3BoYXNlLCBib29sIGZhaWxvdmVyKTsKKwkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9v bCBmYWlsb3ZlciwKKwkJCQkJCQkJICBib29sIHN5bmNlZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNh dGlvblNsb3RQZXJzaXN0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChj b25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNs b3REcm9wQWNxdWlyZWQodm9pZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihj b25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGljYXRp b25TbG90QWNxdWlyZShjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaAppbmRleCBmNTY2YTk5YmExLi40OGRjODQ2ZTE5IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKQEAgLTI3OSw2ICsyNzksMTMgQEAgdHlw ZWRlZiB2b2lkICgqd2FscmN2X2dldF9zZW5kZXJpbmZvX2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpj b25uLAogdHlwZWRlZiBjaGFyICooKndhbHJjdl9pZGVudGlmeV9zeXN0ZW1fZm4pIChXYWxSZWNl aXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJCVRpbWVMaW5lSUQgKnByaW1hcnlfdGxpKTsKIAor LyoKKyAqIHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9fZm4KKyAqCisgKiBSZXR1cm5z IHRoZSBkYmlkIGZyb20gdGhlIHByaW1hcnlfY29ubmluZm8KKyAqLwordHlwZWRlZiBjaGFyICoo KndhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9fZm4pIChjb25zdCBjaGFyICpjb25uaW5m byk7CisKIC8qCiAgKiB3YWxyY3Zfc2VydmVyX3ZlcnNpb25fZm4KICAqCkBAIC00MDMsNiArNDEw LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlCiAJd2FscmN2X2dl dF9jb25uaW5mb19mbiB3YWxyY3ZfZ2V0X2Nvbm5pbmZvOwogCXdhbHJjdl9nZXRfc2VuZGVyaW5m b19mbiB3YWxyY3ZfZ2V0X3NlbmRlcmluZm87CiAJd2FscmN2X2lkZW50aWZ5X3N5c3RlbV9mbiB3 YWxyY3ZfaWRlbnRpZnlfc3lzdGVtOworCXdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9f Zm4gd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbzsKIAl3YWxyY3Zfc2VydmVyX3ZlcnNp b25fZm4gd2FscmN2X3NlcnZlcl92ZXJzaW9uOwogCXdhbHJjdl9yZWFkdGltZWxpbmVoaXN0b3J5 ZmlsZV9mbiB3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGU7CiAJd2FscmN2X3N0YXJ0c3Ry ZWFtaW5nX2ZuIHdhbHJjdl9zdGFydHN0cmVhbWluZzsKQEAgLTQyOCw2ICs0MzYsOCBAQCBleHRl cm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0 aW9uczsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9zZW5kZXJpbmZvKGNvbm4s IHNlbmRlcl9ob3N0LCBzZW5kZXJfcG9ydCkKICNkZWZpbmUgd2FscmN2X2lkZW50aWZ5X3N5c3Rl bShjb25uLCBwcmltYXJ5X3RsaSkgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfaWRl bnRpZnlfc3lzdGVtKGNvbm4sIHByaW1hcnlfdGxpKQorI2RlZmluZSB3YWxyY3ZfZ2V0X2RibmFt ZV9mcm9tX2Nvbm5pbmZvKGNvbm5pbmZvKSBcCisJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJj dl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29ubmluZm8pCiAjZGVmaW5lIHdhbHJjdl9zZXJ2 ZXJfdmVyc2lvbihjb25uKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9zZXJ2ZXJf dmVyc2lvbihjb25uKQogI2RlZmluZSB3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGUoY29u biwgdGxpLCBmaWxlbmFtZSwgY29udGVudCwgc2l6ZSkgXApAQCAtNDg1LDYgKzQ5NSw3IEBAIGV4 dGVybiB2b2lkIFJlcXVlc3RYTG9nU3RyZWFtaW5nKFRpbWVMaW5lSUQgdGxpLCBYTG9nUmVjUHRy IHJlY3B0ciwKIAkJCQkJCQkJIGJvb2wgY3JlYXRlX3RlbXBfc2xvdCk7CiBleHRlcm4gWExvZ1Jl Y1B0ciBHZXRXYWxSY3ZGbHVzaFJlY1B0cihYTG9nUmVjUHRyICpsYXRlc3RDaHVua1N0YXJ0LCBU aW1lTGluZUlEICpyZWNlaXZlVExJKTsKIGV4dGVybiBYTG9nUmVjUHRyIEdldFdhbFJjdldyaXRl UmVjUHRyKHZvaWQpOworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0V2FsUmN2TGF0ZXN0V2FsRW5kKHZv aWQpOwogZXh0ZXJuIGludAlHZXRSZXBsaWNhdGlvbkFwcGx5RGVsYXkodm9pZCk7CiBleHRlcm4g aW50CUdldFJlcGxpY2F0aW9uVHJhbnNmZXJMYXRlbmN5KHZvaWQpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5oCmluZGV4IDFiNThkNTBiM2IuLjI3NmQ4OTEzYWEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHNlbmRlci5oCkBAIC0xMiw2ICsxMiw4IEBACiAjaWZuZGVmIF9XQUxTRU5E RVJfSAogI2RlZmluZSBfV0FMU0VOREVSX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5o IgorCiAvKgogICogV2hhdCB0byBkbyB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0 aW9uIHNsb3QgY29tbWFuZC4KICAqLwpAQCAtNDUsNiArNDcsNyBAQCBleHRlcm4gdm9pZCBXYWxT bmRJbml0U3RvcHBpbmcodm9pZCk7CiBleHRlcm4gdm9pZCBXYWxTbmRXYWl0U3RvcHBpbmcodm9p ZCk7CiBleHRlcm4gdm9pZCBIYW5kbGVXYWxTbmRJbml0U3RvcHBpbmcodm9pZCk7CiBleHRlcm4g dm9pZCBXYWxTbmRScXN0RmlsZVJlbG9hZCh2b2lkKTsKK2V4dGVybiBYTG9nUmVjUHRyIEdldFN0 YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpOwogCiAvKgogICogUmVtZW1iZXIgdGhh dCB3ZSB3YW50IHRvIHdha2V1cCB3YWxzZW5kZXJzIGxhdGVyCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDUxNWFlZmQ1MTkuLjIxNjc3MjA5NzEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0yMzcsNiArMjM3LDEx IEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGluX3JlbW90ZV90cmFuc2FjdGlvbjsKIAogZXh0 ZXJuIFBHRExMSU1QT1JUIGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKKy8qIFNsb3Qg c3luYyB3b3JrZXIgb2JqZWN0cyAqLworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKlByaW1hcnlD b25uSW5mbzsKK2V4dGVybiBQR0RMTElNUE9SVCBjaGFyICpQcmltYXJ5U2xvdE5hbWU7CitleHRl cm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfc3luY3Nsb3Q7CisKIGV4dGVybiB2b2lkIGxvZ2lj YWxyZXBfd29ya2VyX2F0dGFjaChpbnQgc2xvdCk7CiBleHRlcm4gTG9naWNhbFJlcFdvcmtlciAq bG9naWNhbHJlcF93b3JrZXJfZmluZChPaWQgc3ViaWQsIE9pZCByZWxpZCwKIAkJCQkJCQkJCQkJ CWJvb2wgb25seV9ydW5uaW5nKTsKQEAgLTMyNSw2ICszMzAsMTEgQEAgZXh0ZXJuIHZvaWQgcGFf ZGVjcl9hbmRfd2FpdF9zdHJlYW1fYmxvY2sodm9pZCk7CiBleHRlcm4gdm9pZCBwYV94YWN0X2Zp bmlzaChQYXJhbGxlbEFwcGx5V29ya2VySW5mbyAqd2luZm8sCiAJCQkJCQkgICBYTG9nUmVjUHRy IHJlbW90ZV9sc24pOwogCitleHRlcm4gdm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVt IG1haW5fYXJnKTsKK2V4dGVybiB2b2lkIFNsb3RTeW5jV29ya2VyUmVnaXN0ZXIodm9pZCk7Citl eHRlcm4gdm9pZCBTaHV0RG93blNsb3RTeW5jKHZvaWQpOworZXh0ZXJuIHZvaWQgU2xvdFN5bmNX b3JrZXJTaG1lbUluaXQodm9pZCk7CisKICNkZWZpbmUgaXNQYXJhbGxlbEFwcGx5V29ya2VyKHdv cmtlcikgKCh3b3JrZXIpLT5pbl91c2UgJiYgXAogCQkJCQkJCQkJICAgKHdvcmtlciktPnR5cGUg PT0gV09SS0VSVFlQRV9QQVJBTExFTF9BUFBMWSkKICNkZWZpbmUgaXNUYWJsZXN5bmNXb3JrZXIo d29ya2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBcCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNv dmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgYi9zcmMvdGVzdC9yZWNv dmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKaW5kZXggNjQ2MjkzYzM5 ZS4uMTA1NTU3M2NkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRi eV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0 YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtODQsNiArODQsMTcwIEBAIGlzKCAkcHVi bGlzaGVyLT5zYWZlX3BzcWwoCiAJInQiLAogCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRy dWUgb24gdGhlIHB1Ymxpc2hlcicpOwogCi0kc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsKKyRzdWJzY3JpYmVyMS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEg RU5BQkxFIik7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjIFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBvbiB0aGUgc3RhbmRieQorIyBD b25maWd1cmUgc3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBzeW5jaHJvbml6ZSBsb2dpY2FsIHNs b3RzIGNvbmZpZ3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRoZSBwcmltYXJ5CisjCisjICAgICAg ICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4gc3Vic2NyaWJlcjEgKGNv bm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMgcHJpbWFyeSAtLS0+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorIyAgICAgICAgICAgICAgcGh5c2ljYWwgc2xvdCBzYjFfc2xv dC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVhbWluZyByZXBsaWNhdGlv bikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK215ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsKK215 ICRiYWNrdXBfbmFtZSA9ICdiYWNrdXAnOworJHByaW1hcnktPmJhY2t1cCgkYmFja3VwX25hbWUp OworCisjIENyZWF0ZSBhIHN0YW5kYnkKK215ICRzdGFuZGJ5MSA9IFBvc3RncmVTUUw6OlRlc3Q6 OkNsdXN0ZXItPm5ldygnc3RhbmRieTEnKTsKKyRzdGFuZGJ5MS0+aW5pdF9mcm9tX2JhY2t1cCgK KwkkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVz dG9yaW5nID0+IDEpOworCitteSAkY29ubnN0cl8xID0gJHByaW1hcnktPmNvbm5zdHI7Ciskc3Rh bmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK2VuYWJsZV9zeW5j c2xvdCA9IHRydWUKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK3ByaW1hcnlfc2xvdF9uYW1l ID0gJ3NiMV9zbG90JworcHJpbWFyeV9jb25uaW5mbyA9ICckY29ubnN0cl8xIGRibmFtZT1wb3N0 Z3JlcycKKykpOworCiskcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBnX2Ny ZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjFfc2xvdCcpO30pOworCitteSAkc3Rh bmRieTFfY29ubmluZm8gPSAkc3RhbmRieTEtPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7 CitteSAkb2Zmc2V0ID0gLXMgJHN0YW5kYnkxLT5sb2dmaWxlOworCisjIFN0YXJ0IHRoZSBzdGFu ZGJ5IHNvIHRoYXQgc2xvdCBzeW5jaW5nIGNhbiBiZWdpbgorJHN0YW5kYnkxLT5zdGFydDsKKwor IyBHZW5lcmF0ZSBhIGxvZyB0byB0cmlnZ2VyIHRoZSB3YWxzZW5kZXIgdG8gc2VuZCBtZXNzYWdl cyB0byB0aGUgd2FscmVjZWl2ZXIKKyMgd2hpY2ggd2lsbCB1cGRhdGUgV2FsUmN2LT5sYXRlc3RX YWxFbmQgdG8gYSB2YWxpZCBudW1iZXIuCiskcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgcGdfbG9nX3N0YW5kYnlfc25hcHNob3QoKTsiKTsKKworIyBXYWl0IGZvciB0aGUg c3RhbmRieSB0byBmaW5pc2ggc3luYworJHN0YW5kYnkxLT53YWl0X2Zvcl9sb2coCisJcXIvTE9H OiAoIFtBLVowLTldKzopPyBuZXdseSBjcmVhdGVkIHNsb3QgXCJsc3ViMV9zbG90XCIgaXMgc3lu Yy1yZWFkeSBub3cvLAorCSRvZmZzZXQpOworCisjIENvbmZpcm0gdGhhdCB0aGUgbG9naWNhbCBm YWlsb3ZlciBzbG90IGlzIGNyZWF0ZWQgb24gdGhlIHN0YW5kYnkgYW5kIGlzCisjIGZsYWdnZWQg YXMgJ3N5bmNlZCcKK2lzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxF Q1Qgc3luY2VkIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xz dWIxX3Nsb3QnO30pLAorCSJ0IiwKKwknbG9naWNhbCBzbG90IGhhcyBzeW5jZWQgYXMgdHJ1ZSBv biBzdGFuZGJ5Jyk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIFRlc3QgdG8gY29uZmlybSB0aGF0IHJlc3RhcnRfbHNuIGFuZCBjb25maXJt ZWRfZmx1c2hfbHNuIG9mIHRoZSBsb2dpY2FsIHNsb3QKKyMgb24gdGhlIHByaW1hcnkgaXMgc3lu Y2VkIHRvIHRoZSBzdGFuZGJ5CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCisjIEluc2VydCBkYXRhIG9uIHRoZSBwcmltYXJ5CiskcHJpbWFyeS0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGlu dCBQUklNQVJZIEtFWSk7CisJSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwKTsKK10pOworCisjIFN1YnNjcmliZSB0byB0aGUgbmV3IHRhYmxlIGRhdGEgYW5k IHdhaXQgZm9yIGl0IHRvIGFycml2ZQorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXFbCisJQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgUkVGUkVTSCBQVUJMSUNBVElPTjsKK10p OworCiskc3Vic2NyaWJlcjEtPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOworCisjIERvIG5v dCBhbGxvdyBhbnkgZnVydGhlciBhZHZhbmNlbWVudCBvZiB0aGUgcmVzdGFydF9sc24gYW5kCisj IGNvbmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBsc3ViMV9zbG90LgorJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBE SVNBQkxFIik7CisKKyMgV2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3QgdG8gYmVjb21lIGlu YWN0aXZlIG9uIHRoZSBwdWJsaXNoZXIKKyRwcmltYXJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdw b3N0Z3JlcycsCisJIlNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRp b25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnIEFORCBhY3RpdmU9J2YnIiwK KwkxKTsKKworIyBHZXQgdGhlIHJlc3RhcnRfbHNuIGZvciB0aGUgbG9naWNhbCBzbG90IGxzdWIx X3Nsb3Qgb24gdGhlIHByaW1hcnkKK215ICRwcmltYXJ5X3Jlc3RhcnRfbHNuID0gJHByaW1hcnkt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcmVzdGFydF9sc24gZnJvbSBwZ19yZXBs aWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7Iik7CisKKyMgR2V0 IHRoZSBjb25maXJtZWRfZmx1c2hfbHNuIGZvciB0aGUgbG9naWNhbCBzbG90IGxzdWIxX3Nsb3Qg b24gdGhlIHByaW1hcnkKK215ICRwcmltYXJ5X2ZsdXNoX2xzbiA9ICRwcmltYXJ5LT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvbmZpcm1lZF9mbHVzaF9sc24gZnJvbSBwZ19yZXBs aWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7Iik7CisKKyMgQ29u ZmlybSB0aGF0IHJlc3RhcnRfbHNuIGFuZCBvZiBjb25maXJtZWRfZmx1c2hfbHNuIGxzdWIxX3Ns b3Qgc2xvdCBhcmUgc3luY2VkCisjIHRvIHRoZSBzdGFuZGJ5CitvayggJHN0YW5kYnkxLT5wb2xs X3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLAorCQkiU0VMRUNUICckcHJpbWFyeV9yZXN0YXJ0 X2xzbicgPSByZXN0YXJ0X2xzbiBBTkQgJyRwcmltYXJ5X2ZsdXNoX2xzbicgPSBjb25maXJtZWRf Zmx1c2hfbHNuIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xz dWIxX3Nsb3QnOyIpLAorCSdyZXN0YXJ0X2xzbiBhbmQgY29uZmlybWVkX2ZsdXNoX2xzbiBvZiBz bG90IGxzdWIxX3Nsb3Qgc3luY2VkIHRvIHN0YW5kYnknKTsKKworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IGEgc3luY2hyb25p emVkIHNsb3QgY2FuIG5vdCBiZSBkZWNvZGVkLCBhbHRlcmVkIG9yIGRyb3BwZWQgYnkgdGhlIHVz ZXIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK KyMgRGlzYWJsZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0ZW1wb3JhcmlseSB0byBzdG9wIHNsb3Qg c3luYyB3b3JrZXIgb3RoZXJ3aXNlCisjIHRoZSBjb25jZXJuZWQgdGVzdGluZyBzY2VuYXJpb3Mg aGVyZSBtYXkgYmUgaW50ZXJydXB0ZWQgYnkgZGlmZmVyZW50IGVycm9yOgorIyAnRVJST1I6ICBy ZXBsaWNhdGlvbiBzbG90IGlzIGFjdGl2ZSBmb3IgUElEIC4uJworJHN0YW5kYnkxLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBv ZmY7Jyk7Ciskc3RhbmRieTEtPnJlc3RhcnQ7CisKKyMgQXR0ZW1wdGluZyB0byBwZXJmb3JtIGxv Z2ljYWwgZGVjb2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9y CitteSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3Rn cmVzJywKKwkic2VsZWN0ICogZnJvbSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2xzdWIx X3Nsb3QnLE5VTEwsTlVMTCk7Iik7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNhbm5vdCB1c2Ug cmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIgZm9yIGxvZ2ljYWwgZGVjb2RpbmcvLAorCSJs b2dpY2FsIGRlY29kaW5nIGlzIG5vdCBhbGxvd2VkIG9uIHN5bmNlZCBzbG90Iik7CisKKyMgQXR0 ZW1wdGluZyB0byBhbHRlciBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IK KygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgKKyAgICAncG9z dGdyZXMnLAorICAgIHFxW0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QgbHN1YjFfc2xvdCAoZmFpbG92 ZXIpO10sCisgICAgcmVwbGljYXRpb24gPT4gJ2RhdGFiYXNlJyk7Citvaygkc3RkZXJyID1+IC9F UlJPUjogIGNhbm5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8sCisJInN5 bmNlZCBzbG90IG9uIHN0YW5kYnkgY2Fubm90IGJlIGFsdGVyZWQiKTsKKworIyBBdHRlbXB0aW5n IHRvIGRyb3AgYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCisoJHJlc3Vs dCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnbHN1YjFfc2xvdCcpOyIpOworb2soJHN0ZGVy ciA9fiAvRVJST1I6ICBjYW5ub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8s CisJInN5bmNlZCBzbG90IG9uIHN0YW5kYnkgY2Fubm90IGJlIGRyb3BwZWQiKTsKKworIyBFbmFi bGUgaG90X3N0YW5kYnlfZmVlZGJhY2sgYW5kIHJlc3RhcnQgc3RhbmRieQorJHN0YW5kYnkxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJh Y2sgPSBvbjsnKTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUHJvbW90ZSB0aGUgc3RhbmRieTEgdG8g cHJpbWFyeS4gQ29uZmlybSB0aGF0OgorIyBhKSB0aGUgc2xvdCAnbHN1YjFfc2xvdCcgaXMgcmV0 YWluZWQgb24gdGhlIG5ldyBwcmltYXJ5CisjIGIpIGxvZ2ljYWwgcmVwbGljYXRpb24gZm9yIHJl Z3Jlc3NfbXlzdWIxIGlzIHJlc3VtZWQgc3VjY2Vzc2Z1bGx5IGFmdGVyIGZhaWxvdmVyCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworJHN0YW5kYnkx LT5wcm9tb3RlOworCisjIFVwZGF0ZSBzdWJzY3JpcHRpb24gd2l0aCB0aGUgbmV3IHByaW1hcnkn cyBjb25uZWN0aW9uIGluZm8KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9OICckc3RhbmRieTFf Y29ubmluZm8nOworCSBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgRU5BQkxFOyAi KTsKKworIyBDb25maXJtIHRoZSBzeW5jZWQgc2xvdCAnbHN1YjFfc2xvdCcgaXMgcmV0YWluZWQg b24gdGhlIG5ldyBwcmltYXJ5Citpcygkc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CXF7U0VMRUNUIHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3Rf bmFtZSA9ICdsc3ViMV9zbG90Jzt9KSwKKwknbHN1YjFfc2xvdCcsCisJJ3N5bmNlZCBzbG90IHJl dGFpbmVkIG9uIHRoZSBuZXcgcHJpbWFyeScpOworCisjIEluc2VydCBkYXRhIG9uIHRoZSBuZXcg cHJpbWFyeQorJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDExLCAyMCk7Iik7Ciskc3RhbmRieTEtPndh aXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CisKKyMgQ29uZmlybSB0aGF0IGRhdGEg aW4gdGFiX2ludCByZXBsaWNhdGVkIG9uIHRoZSBzdWJzY3JpYmVyCitpcyggJHN1YnNjcmliZXIx LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgY291bnQoKikgRlJPTSB0YWJfaW50O30p LAorCSIyMCIsCisJJ2RhdGEgcmVwbGljYXRlZCBmcm9tIHRoZSBuZXcgcHJpbWFyeScpOwogCiBk b25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNTc4ODRk M2ZlYy4uY2I0M2JhMWMzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0 NzQsOCArMTQ3NCw5IEBAIHBnX3JlcGxpY2F0aW9uX3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUs CiAgICAgbC5zYWZlX3dhbF9zaXplLAogICAgIGwudHdvX3BoYXNlLAogICAgIGwuY29uZmxpY3Rf cmVhc29uLAotICAgIGwuZmFpbG92ZXIKLSAgIEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90 cygpIGwoc2xvdF9uYW1lLCBwbHVnaW4sIHNsb3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFj dGl2ZSwgYWN0aXZlX3BpZCwgeG1pbiwgY2F0YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmly bWVkX2ZsdXNoX2xzbiwgd2FsX3N0YXR1cywgc2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25m bGljdF9yZWFzb24sIGZhaWxvdmVyKQorICAgIGwuZmFpbG92ZXIsCisgICAgbC5zeW5jZWQKKyAg IEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xvdF9uYW1lLCBwbHVnaW4sIHNs b3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0aXZlX3BpZCwgeG1pbiwgY2F0 YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNoX2xzbiwgd2FsX3N0YXR1cywg c2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFzb24sIGZhaWxvdmVyLCBzeW5j ZWQpCiAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBkIE9OICgobC5kYXRvaWQgPSBkLm9pZCkp KTsKIHBnX3JvbGVzfCBTRUxFQ1QgcGdfYXV0aGlkLnJvbG5hbWUsCiAgICAgcGdfYXV0aGlkLnJv bHN1cGVyLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAppbmRleCA5YmU3YWNh MmI4Li5mYWUwNTlkMzg5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5 c3ZpZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dApA QCAtMTMzLDggKzEzMyw5IEBAIHNlbGVjdCBuYW1lLCBzZXR0aW5nIGZyb20gcGdfc2V0dGluZ3Mg d2hlcmUgbmFtZSBsaWtlICdlbmFibGUlJzsKICBlbmFibGVfc2VsZl9qb2luX3JlbW92YWwgICAg ICAgfCBvbgogIGVuYWJsZV9zZXFzY2FuICAgICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX3Nv cnQgICAgICAgICAgICAgICAgICAgIHwgb24KKyBlbmFibGVfc3luY3Nsb3QgICAgICAgICAgICAg ICAgfCBvZmYKICBlbmFibGVfdGlkc2NhbiAgICAgICAgICAgICAgICAgfCBvbgotKDIzIHJvd3Mp CisoMjQgcm93cykKIAogLS0gVGhlcmUgYXJlIGFsd2F5cyB3YWl0IGV2ZW50IGRlc2NyaXB0aW9u cyBmb3IgdmFyaW91cyB0eXBlcy4KIHNlbGVjdCB0eXBlLCBjb3VudCgqKSA+IDAgYXMgb2sgRlJP TSBwZ193YWl0X2V2ZW50cwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1MTNjNzcwMmZm Li5kNTI3YmY5MThiIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjMyNSw2ICsyMzI1 LDcgQEAgUmVsb2NhdGlvbkJ1ZmZlckluZm8KIFJlbHB0ckZyZWVQYWdlQnRyZWUKIFJlbHB0ckZy ZWVQYWdlTWFuYWdlcgogUmVscHRyRnJlZVBhZ2VTcGFuTGVhZGVyCitSZW1vdGVTbG90CiBSZW5h bWVTdG10CiBSZW9wZW5QdHJUeXBlCiBSZW9yZGVyQnVmZmVyCkBAIC0yNTg1LDYgKzI1ODYsNyBA QCBTbGFiQmxvY2sKIFNsYWJDb250ZXh0CiBTbGFiU2xvdAogU2xvdE51bWJlcgorU2xvdFN5bmNX b3JrZXJDdHhTdHJ1Y3QKIFNscnVDdGwKIFNscnVDdGxEYXRhCiBTbHJ1RXJyb3JDYXVzZQotLSAK Mi4zMC4wLndpbmRvd3MuMgoK --_009_OS0PR01MB5716E304C26E6ACE0BE84925947A2OS0PR01MB5716jpnp_--