From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 857BD4C5D1 for <ffmpegdev@gitmailbox.com>; Mon, 26 May 2025 07:44:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 3CD8368D223; Mon, 26 May 2025 10:43:59 +0300 (EEST) Received: from SY5PR01CU010.outbound.protection.outlook.com (mail-australiaeastazolkn19012054.outbound.protection.outlook.com [52.103.72.54]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id D700E68CF6C for <ffmpeg-devel@ffmpeg.org>; Mon, 26 May 2025 10:43:51 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yaNBKL0ck/f6E77rkQswOhnHnelK2YCsgQLJjSYY/lMuIacf0aTOeGtbNTZFKuenykj7BlMcJwnrSbpvuW0MTDjwfGegqtq+fxhtu+8dm+/bN+wrvXhhxnkixl/raPLtWKm6PKMAeUNJVQSl+iGdaPfi++LADhzPHD7h5lCWZj4cgpLshKPWEIwR9iahyt/Od+qUzG6oz6eCOYvBD8+NFTUX4c6lashVWmpWrFWqaC2symrlloBiR2zj1mh9TOh5YEJ7UuFPWNxvZ59a2W1MBpdYGZXG6ffF4hBYimzLNkuJsJWFSVHu+QuOTAwfrmdBqVakEryokQNLZieUucFFZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wzQOX1ZHhkIhIuhxrcLlf0okpWA2ot5XXl+VpoqpVUs=; b=PtRSjkVd1MLh4VrGtfTrBjQkjzLXFQ1Dq4F9y+sA1FiFLVewN4CYLhbvE6nXZVB2p0V+flROGv6GbyK36IYtfvT3WnogHQ+/+Pmyp1nJXf+g2P0zPXpmKdMOAatQRsaqU3VFhZzNGpatkPg7Tbf/6lETnTfg5YuAmkhDFF9XQcchq9rzuGlw1ap1tgJ9KueKKXGCeR2m5yVReV7okD7Ynanl0tPQb7RsXK82Yk5LjiIzP6zI7HBTTQTtXFRvKoMrZxkLaaKTX1GVBUCrlTeFAXE8pzT0uQ1rstMjvx3IfPiQPmrW2Ht9grco8sXm1OLlvcom1KiMxnHAfrvYSyyIwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wzQOX1ZHhkIhIuhxrcLlf0okpWA2ot5XXl+VpoqpVUs=; b=MjxWoYRBrf0GKnt9ta+7m9ThV7HAUyUsgWiGXv+BalhMX+9pBjJRECZGkGvZVTq3spIJbsXA3kXN232nhQJKUIHQFlLiDm8f70t3PqK/D3KXa3UOCun1qPJA204AIyP3buPGSMvhbEQkfeKmuUjtRMO+5bkz2l4Qx5+IAyyb67paGg22SS0nK/dLK6UVtDYqTTz55u1z0Z8JBKnjlqpfuKhCuER8PvrvkEM4ptZyTZ/MgmM5vxTLfcAUs6uWphWdMLN/OPOHdo3H1Sfcd+wjgFIPya8XYmnXbJYR79Y73fLvimw/y381DGbQmNMSVYyLVS6sc6sfKcQYdK/dzSGgvw== Received: from MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:be::15) by SY2PPF4CACBD0CC.AUSP282.PROD.OUTLOOK.COM (2603:10c6:18::213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Mon, 26 May 2025 07:43:45 +0000 Received: from MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM ([fe80::dc32:4068:a067:92b8]) by MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM ([fe80::dc32:4068:a067:92b8%3]) with mapi id 15.20.8769.025; Mon, 26 May 2025 07:43:45 +0000 From: Fang Yibo <blueybf777@outlook.com> To: "ffmpeg-devel@ffmpeg.org" <ffmpeg-devel@ffmpeg.org> Thread-Topic: [FFmpeg-devel] [PATCH] avfilter: add PCM dumping between filters for audio debugging Thread-Index: AQHbs4FR7I/oWjJTTUybqSSDOZn5ULO0wauAgC/4h3w= Date: Mon, 26 May 2025 07:43:45 +0000 Message-ID: <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> In-Reply-To: <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> Accept-Language: en-GB, zh-CN, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MEYP282MB1878:EE_|SY2PPF4CACBD0CC:EE_ x-ms-office365-filtering-correlation-id: 8a6e28c1-abfa-4f3a-45f3-08dd9c290b4e x-microsoft-antispam: BCL:0; ARA:14566002|19110799006|461199028|7092599006|8060799009|8062599006|15080799009|9400799033|41001999006|12050799012|15030799003|56899033|3412199025|440099028|12091999003|102099032|10035399007|26104999006; x-microsoft-antispam-message-info: =?gb2312?B?a1B1VW13a3VOWUZDdzRocHQ3Q2U0NUZBOXlTdUE1UmR1cENtN1pWbzJ4NWhu?= =?gb2312?B?N3pJRVdwendrQnNUTEVQeGdNZmUvSUtsdVhYVXM1bW0weHVhbENOV0hvYTdH?= =?gb2312?B?U25ORzJtaW1GQlZNVklkSmJLMUZZUEFOWVh2L0NiSVNzbjgxQzRRcTc1eVBh?= =?gb2312?B?R1hJbURnRHRlVzVUdWM4VEljSVczTFlhVVpLMXRoSy80cmRJQmU2ckNDcUUz?= =?gb2312?B?c1pTaGRlNEhOSDhXSlpONWEzVk9OYUI0c081Wnd4eEpYU2FJaTZHcVBpa21W?= =?gb2312?B?QU9YNmdUeFAzV3Avb1RTOTNUeER2UWpqUkN5TTNyZkR5VDFhcDRiVUtoYVJa?= =?gb2312?B?TDB6ZkcxeWt2cVYyL0FqSktUMXp4MUVDUDRWd1BtZXdQUjZwenFhemM4S0F0?= =?gb2312?B?aTFhUnNWTE9ZakpvNkZxMEszSEVjblYwN3JBMmp5cWdoVTU5cVBMemhkREJP?= =?gb2312?B?bEIxL2tKUEJXUzkzWCtQNDBteHFlSnIzS1oxY0VLaHYzOG51T2p0eTZnT3po?= =?gb2312?B?cjM5Y2V4ZDh2Z1NHcmJQTis2MHFDbi9GdEl3NmtQMUtnWU00ckJDMzZXbjRE?= =?gb2312?B?aHkvamxtTHVaWE9nZ1gvOENCeGtpMjB5T2lEUlhLQWcvdlRJVVd4NHpDak1k?= =?gb2312?B?QjlERnFMb2U2V21NNmRqZGFtVjZzV09oSThTeWF1QzBYV3RhZlp0bUx2TWQ1?= =?gb2312?B?UFpraEdoelZ1aGtoNlRBV1hYT3ZBTkdGN3k2K3RZbEJxbSs1eEV2UmFQbEVw?= =?gb2312?B?MXdxeG5tZUdvdzl6Ym1ER0FpbUhRTmNHZUFBN0ljN0trUjFkK01ralMya0tn?= =?gb2312?B?c1o1UXYyakJyR2hFQUMvb1Z2R0NKRE9OTGNsMnpaSUxnQ1huRWtrRTR5ckw0?= =?gb2312?B?RjJ5cEpzUGVtZlhFTlN5RHl3R09IQUgvZ2Q1ZGgyOFlSMzFKWWk5MHp0SkJY?= =?gb2312?B?RDJnSk9tR055T0dCN2lyVkRIYlE2YzZaM0lqaE52QWdPOElkVFdRdUdGb1ZI?= =?gb2312?B?TytJY0tXRVZlRWp2L2t6VDRMUzVhR2FUU3NLRFFiMlM3WDdXclNkVlo4WFNz?= =?gb2312?B?NVJicU1SZnNUdURmY2JCSU9Sb29uQVIxUnRpOUdlVUpJQi9aRXpWQ3AwaWNs?= =?gb2312?B?THorNFhtU2xCYjFBMjZZN0hvRkVlbEF2K2crZ1FKdW5VYVpsNlNicU9sazhB?= =?gb2312?B?WkxoL0FFSzZBK0VxMlRuSnArelJrVXZnS1RUUkxXbWtqNVQxK3FSUVhTaUpJ?= =?gb2312?B?VTFtN25qaUc5Ry9xYlFQWEdDYmQ0S2dRYkIvR01PZGNwUEcwRkc3MklsZUZZ?= =?gb2312?B?dFkwakRHL2tKWGxFM2l1QnZBdGRDZTZWMFVMRmVBZmoyQTFpYXdwSGhzMlJL?= =?gb2312?B?dnd2Z2R1d0tIdVlQSVNTUlZMZWpIRjVjK1Z1UnlEa25yQXZpL0pTRkJEa1p0?= =?gb2312?B?TThaR3RLU0d1elFsTGhHbzhSQ2FpTkcvRjlJejJBNGJlZFBDWVJUd1lVdHdr?= =?gb2312?B?bFl2enRMT3lBa2hxNk44SGRFd3pYQ0RKNGtSa1hUWDErdVF0WkRSWDVZQ3BK?= =?gb2312?B?UGtyazZReXdPSmIrNjVOTURmc1pLczBYKy81WFZEdERJaFJoMGZtZEtpUjQz?= =?gb2312?B?bndvTURKSXU3Y0VKOFoydDNYSWtqaDFaK1RVbDBSRDJCdGJhQTl4RENCQUdo?= =?gb2312?B?L1U1MzRYM0F0ZXc2Nk5Db2xDaVpQRmY5SG5QaGRycm44ZncvenlIdWw0TWFn?= =?gb2312?B?TUF4aTQxdjd1dzZBRDB5NGVMVFZqL21tTVpGR3FSNUZjT0hOWVg3UElodWlr?= =?gb2312?B?b1dkbXhQOVlQSUpjZGlGOUk5SVdLMGpsNU1oaVJkSjdXaVpibzBkY0VBTkR1?= =?gb2312?B?TmdaWTYxZEx2WUdCYW9mbTlxSzZOZUYwRjNpSWhURTNHQ1E9PQ==?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?bmxFdXJEbWxmUjNYMWRnZUh5WXl5UmtSeHhySzRJZXM3WUVIVTVHN0hMejBS?= =?gb2312?B?WXZyV29nZTJubzRkTWVoTkFkS05uQ3VTbFpPNEIyemd6RnVMdWxMRURaNTVq?= =?gb2312?B?TTBMSWZHWUxxSU11eVlNbEFDNFRnUVVwYWhMTERQSXBJVVA3NEZFY0RkcHJ3?= =?gb2312?B?TzJESCtpTnJKWHNPVDEvaEpLbHBKNm9DS1dSQUduNTY4Uzg2a25nM05zWUhS?= =?gb2312?B?V09TRS9NRThyODl5NXRUQWp6STF0MjNvZXU4WmYwK3VpZnh6RmVOWXpQaU5m?= =?gb2312?B?NlV1NnVUWDhnR25JTk9naHk1cWVGNVBmWEx0Ym5IUU5JeCtYVXE5Mmk2eHA5?= =?gb2312?B?RGxhZEszL041UnZ3ZG80eHFjaXlRTk1sUXVVNnJrOS9HcDVRSXJ6Y3pvZUFI?= =?gb2312?B?QTQwdkU0ZnVtUjI1L2J4MENvbDFHdDhJQjlTQ2NsL1QrSXFjMlBnbUdOanpX?= =?gb2312?B?NGdOQ0daRTEyczFna2RXcW90bm1YS3o3QkZrN2xWRzN0NHFkYUJHUG5TNS9N?= =?gb2312?B?WmVkQnFPUDVoSnN3Yk9oKzB1UFVla2s5QlBBYkViVHlJbng0cUx3MU44Wkpu?= =?gb2312?B?ako0K0RPTExqM1JwWDRCYUZyclJMMjZxbERmL3ZkclhiWm1uOENxOUZ3Ry8v?= =?gb2312?B?U3VadHFWaTBIelhBZUtJdHkvZGhzV21VT1NHOXUvK3dKaFoyOEozUVg4d3Rk?= =?gb2312?B?TUQxTlJhS1poeCs1NjhRclhsRGFlWk9PRjZZcG53VTduQ05QNkR0eFZCRGpr?= =?gb2312?B?NjVab0wwczRUQVhYYjdhVXUvSE1Rek9pbk9xNU9kMnNrQWFZNGRGdlVFWFZP?= =?gb2312?B?NkEydEZiTVdLNW5jR05wb0dVd3BpTUV2eUZESUQxbGtEcGhpeUhSMjdMTFRL?= =?gb2312?B?MXR0Nm1HKzhoQlB6TXRzbWorWU1KV3hNdHF6Mmp2cDFUN3VtK2Q5QldFUEVN?= =?gb2312?B?SElxa2hlSDNLUXltZjJESzUzeUdNb0VpWGhTZ1NmZFNQTkU0dUZ0Y1luYmdt?= =?gb2312?B?SklzY1dzL3NGTnZoVmN4TVo0VERXUHc2WllCYlBtQS9Da1RFVkhkUHMvRFJE?= =?gb2312?B?TFpncGRmVDZWa2xXV3o1OUxkLzhFMzE2V1Vaa1JubDYwMVlOS3oydkt3dnZU?= =?gb2312?B?bHJXU1RDVDdoRmVlYmxodXRCaEZhYnBqSnlxTFNNUy9sdXk2WlVudk1LckFt?= =?gb2312?B?MjVmSC9HV2pCa3YzRjlqQlB0dFVBQk5lTGw5QlI2cWtvRDlHNCt6Qk1sY3dr?= =?gb2312?B?ekVYQ0gzMUwyMTFwVC9JTngvRE5nZldxbFhNa0NHQWNrNzRDRTl2ZldZazI1?= =?gb2312?B?Zi9EVHdJTDk3WTdBbDdVQWI1TnJ3QjUvNlBIYjJUZkhlOGZFM0dBZG8ycW5j?= =?gb2312?B?SEdMdzBrRnNWQVZOSkxIeGFPMFRNSERYa3VOejhyYkZuVXA5TzgyQmUzRVhy?= =?gb2312?B?SUFmSjRWV2p6VFF4c0lnTUVCeGV6cFZ5bkVMT245RDVLVHdLUWlHaHhEa01U?= =?gb2312?B?Q1FFaUNmbWdkUTBINnJNSXdjMHFRMEhPSUllWU1NVENEa2dlZUt3T29TRG9O?= =?gb2312?B?dFVZUFg3bUFyemhqUjZQUW5MR2tnWUFQNW1sbFlWcEplUWt4RkQvQ1N6Y3ds?= =?gb2312?Q?uekr2dSQ1M+riPaaoBFRqnYDVm8vSP8gVQfwRzmnnIGI=3D?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 8a6e28c1-abfa-4f3a-45f3-08dd9c290b4e X-MS-Exchange-CrossTenant-originalarrivaltime: 26 May 2025 07:43:45.3387 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY2PPF4CACBD0CC X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] =?gb2312?b?u9i4tDogIFtQQVRDSF0gYXZmaWx0ZXI6IGFk?= =?gb2312?b?ZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlvIGRlYnVn?= =?gb2312?b?Z2luZw==?= X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> UmU6IFtGRm1wZWctZGV2ZWwsdjIsMC8yXSBhdmZpbHRlcjogYWRkIFBDTSBkdW1waW5nIGJldHdl ZW4gZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nDQoNCkZyb206IFlpYm8gRmFuZyA8Ymx1ZXli Zjc3N0BvdXRsb29rLmNvbT4NClN1YmplY3Q6IFtGRm1wZWctZGV2ZWwsdjIsMC8yXSBhdmZpbHRl cjogYWRkIFBDTSBkdW1waW5nIGJldHdlZW4gZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nDQpE YXRlOiBXZWQsIDIzIEFwciAyMDI1IDEwOjU3OjAwICswODAwDQpNZXNzYWdlLUlkOiA8Y292ZXIu MC4yQGZmbXBlZz4NCg0KVGhpcyBzZXJpZXMgYWRkcyBhIGRlYnVnZ2luZyBmZWF0dXJlIHRoYXQg bGV0cyBkZXZlbG9wZXJzIGR1bXAgcmF3DQpQQ00gYXVkaW8gYmV0d2VlbiBmaWx0ZXJzLiAgVGhl IGRhdGEgYXJlIHdyaXR0ZW4gdG8gZmlsZXMgaW4gYSB1c2VyLQ0Kc2VsZWN0ZWQgZGlyZWN0b3J5 IHZpYSB0d28gbmV3IGNvbW1hbmRzOg0KDQogICAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vcGF0aC90 by9kaXIvDQogICAgZHVtcF9yYXdfc3RvcA0KDQpQbGFuYXIgYXVkaW8gaXMgYXV0b21hdGljYWxs eSBpbnRlcmxlYXZlZDsgb25seSBhdWRpbyBsaW5rcyBhcmUNCmFmZmVjdGVkLiAgUGF0Y2ggMS8y IGltcGxlbWVudHMgdGhlIGZlYXR1cmUsIHBhdGNoIDIvMiBkb2N1bWVudHMgaXQuDQoNClJlZ2Fy ZHMsDQpZaWJvIEZhbmcNCg0KLS0tDQoNCkZyb20gMmRmNTZlNzQyNzNkNDc3YWUyNzAwM2UwOTgx MjIwNzQ5YTZiNThjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCkZyb206IFlpYm8gRmFuZyA8 Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCkRhdGU6IFdlZCwgMjMgQXByIDIwMjUgMTA6NTg6NTUg KzA4MDANClN1YmplY3Q6IFtQQVRDSCAxLzJdIGF2ZmlsdGVyOiBhZGQgUENNIGR1bXBpbmcgYmV0 d2VlbiBmaWx0ZXJzIGZvciBhdWRpbw0KIGRlYnVnZ2luZw0KDQpUaGlzIHBhdGNoIGludHJvZHVj ZXMgUENNIGR1bXBpbmcgc3VwcG9ydCBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLA0KaW50ZW5kZWQg Zm9yIGF1ZGlvIGRlYnVnZ2luZyBhbmQgZmlsdGVyLWdyYXBoIGluc3BlY3Rpb24uDQoNClR3byBm aWx0ZXIgY29tbWFuZHMgYXJlIGFkZGVkOg0KDQogICAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vcGF0 aC90by9vdXRwdXQvZGlyLw0KICAgIGR1bXBfcmF3X3N0b3ANCg0KV2hlbiBkdW1waW5nIGlzIGVu YWJsZWQsIGF1ZGlvIGxlYXZpbmcgdGhlIHNlbGVjdGVkIGZpbHRlciBvdXRwdXQgaXMNCndyaXR0 ZW4gdG8gYW4gYXV0b21hdGljYWxseSBuYW1lZCBmaWxlOg0KDQogICAgPHNyY19maWx0ZXI+LTxk c3RfZmlsdGVyPi5wY20NCg0KUGxhbmFyIGZvcm1hdHMgYXJlIGNvbnZlcnRlZCB0byBwYWNrZWQu ICBGaWxlIGRlc2NyaXB0b3JzIGFyZSBvcGVuZWQNCm9uIGRlbWFuZCBhbmQgY2xvc2VkIGF1dG9t YXRpY2FsbHkuICBXb3JrcyBvbmx5IG9uIGF1ZGlvIGxpbmtzLg0KDQpFeGFtcGxlIChDIEFQSSk6 DQogICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3X3N0YXJ0IiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU9L3RtcC8iLCBOVUxMLCAwLCAwKTsN Cg0KU2lnbmVkLW9mZi1ieTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91dGxvb2suY29tPg0KLS0t DQogbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KIGxpYmF2ZmlsdGVyL2F2ZmlsdGVyLmggfCAgIDUgKysNCiAyIGZp bGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9saWJhdmZpbHRl ci9hdmZpbHRlci5jIGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYw0KaW5kZXggNjRjMTA3NWM0MC4u YjcwMzQ1NjlkYiAxMDA2NDQNCi0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCisrKyBiL2xp YmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCkBAIC0xOSw2ICsxOSw5IEBADQogICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQ0KICAqLw0KDQorI2luY2x1ZGUgPGZjbnRsLmg+DQorI2luY2x1ZGUgPHVuaXN0ZC5o Pg0KKw0KICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCINCiAjaW5jbHVkZSAibGliYXZ1 dGlsL2F2c3RyaW5nLmgiDQogI2luY2x1ZGUgImxpYmF2dXRpbC9icHJpbnQuaCINCkBADQogICAg IHJldHVybiAwOw0KIH0NCg0KKy8qIC0tLS0tLS0tLS0gUENNIGR1bXAgaGVscGVycyAtLS0tLS0t LS0tICovDQorDQorc3RhdGljIGF2X2NvbGQgdm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZp bHRlckxpbmsgKmxpbmspDQorew0KKyAgICBpZiAobGluay0+ZHVtcF9wY21fZmRzKSB7DQorICAg ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBpKysp DQorICAgICAgICAgICAgaWYgKGxpbmstPmR1bXBfcGNtX2Zkc1tpXSA+PSAwKQ0KKyAgICAgICAg ICAgICAgICBjbG9zZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0pOw0KKyAgICAgICAgYXZfZnJlZXAo JmxpbmstPmR1bXBfcGNtX2Zkcyk7DQorICAgICAgICBsaW5rLT5uYl9kdW1wX3BjbV9mZHMgPSAw Ow0KKyAgICB9DQorICAgIGF2X2ZyZWVwKCZsaW5rLT5kdW1wX3BjbV9wYXRoKTsNCisgICAgbGlu ay0+ZHVtcF9wY20gPSAwOw0KK30NCisNCitzdGF0aWMgYXZfY29sZCBpbnQgbGlua19pbml0X2R1 bXBfcGNtKEFWRmlsdGVyTGluayAqbGluaykNCit7DQorICAgIC8qIGJ1aWxkIGZ1bGwgcGF0aCAi PGRpcj4vPHNyYz4tPGRzdD4ucGNtIiAqLw0KKyAgICBjb25zdCBjaGFyICpkaXIgPSBsaW5rLT5k dW1wX3BjbV9wYXRoOw0KKyAgICBjb25zdCBjaGFyICpzZXAgPSBkaXJbc3RybGVuKGRpcikgLSAx XSA9PSAnLycgPyAiIiA6ICIvIjsNCisgICAgY2hhciBwYXRoWzQwOTZdOw0KKyAgICBzbnByaW50 ZihwYXRoLCBzaXplb2YocGF0aCksICIlcyVzJS4xNnMtJS44cy5wY20iLA0KKyAgICAgICAgICAg ICBkaXIsIHNlcCwgbGluay0+c3JjLT5uYW1lLCBsaW5rLT5kc3QtPm5hbWUpOw0KKw0KKyAgICBs aW5rLT5uYl9kdW1wX3BjbV9mZHMgPSAxOw0KKyAgICBsaW5rLT5kdW1wX3BjbV9mZHMgPSBhdl9t YWxsb2Moc2l6ZW9mKGludCkpOw0KKyAgICBpZiAoIWxpbmstPmR1bXBfcGNtX2ZkcykNCisgICAg ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7DQorDQorICAgIGludCBmZCA9IG9wZW4ocGF0aCwg T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQyB8IE9fRVhDTCwgMDY0NCk7DQorICAgIGlmIChm ZCA8IDApIHsNCisgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmspOw0KKyAgICAgICAg cmV0dXJuIEFWRVJST1IoZXJybm8pOw0KKyAgICB9DQorICAgIGxpbmstPmR1bXBfcGNtX2Zkc1sw XSA9IGZkOw0KKyAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfSU5GTywgIlBDTSBkdW1wIGZp bGU6ICVzXG4iLCBwYXRoKTsNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgZmls dGVyX3NldF9kdW1wX3BjbShBVkZpbHRlckNvbnRleHQgKmYsIGNvbnN0IGNoYXIgKmFyZywgaW50 IHNldCkNCit7DQorICAgIGNvbnN0IGNoYXIgKnByZWZpeCA9ICJmaWxlPSI7DQorICAgIGlmICgh YXJnIHx8IGF2X3N0cm5jYXNlY21wKGFyZywgcHJlZml4LCBzdHJsZW4ocHJlZml4KSkpIHsNCisg ICAgICAgIGF2X2xvZyhmLCBBVl9MT0dfRVJST1IsDQorICAgICAgICAgICAgICAgImR1bXBfcmF3 XyogZXhwZWN0cyBhcmd1bWVudCBmaWxlPS9kaXIvXG4iKTsNCisgICAgICAgIHJldHVybiBBVkVS Uk9SKEVJTlZBTCk7DQorICAgIH0NCisgICAgY29uc3QgY2hhciAqZGlyID0gYXJnICsgc3RybGVu KHByZWZpeCk7DQorDQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZi0+bmJfb3V0cHV0czsgaSsr KSB7DQorICAgICAgICBBVkZpbHRlckxpbmsgKmwgPSBmLT5vdXRwdXRzW2ldOw0KKyAgICAgICAg aWYgKGwtPnR5cGUgIT0gQVZNRURJQV9UWVBFX0FVRElPKQ0KKyAgICAgICAgICAgIGNvbnRpbnVl Ow0KKyAgICAgICAgaWYgKHNldCkgew0KKyAgICAgICAgICAgIGF2X2ZyZWVwKCZsLT5kdW1wX3Bj bV9wYXRoKTsNCisgICAgICAgICAgICBsLT5kdW1wX3BjbV9wYXRoID0gYXZfc3RyZHVwKGRpcik7 DQorICAgICAgICAgICAgaWYgKCFsLT5kdW1wX3BjbV9wYXRoKQ0KKyAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOw0KKyAgICAgICAgICAgIGwtPmR1bXBfcGNtID0gMTsNCisg ICAgICAgIH0gZWxzZQ0KKyAgICAgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGwpOw0KKyAg ICB9DQorICAgIHJldHVybiAwOw0KK30NCisNCisvKiB3cml0ZSBvbmUgZnJhbWUgKi8NCitzdGF0 aWMgaW50IGxpbmtfZHVtcF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1l KQ0KK3sNCisgICAgaW50IHJldDsNCisgICAgaWYgKCFsaW5rLT5kdW1wX3BjbV9mZHMgJiYNCisg ICAgICAgIChyZXQgPSBsaW5rX2luaXRfZHVtcF9wY20obGluaykpIDwgMCkNCisgICAgICAgIHJl dHVybiByZXQ7DQorDQorICAgIGNvbnN0IGludCBjaCAgICAgPSBmcmFtZS0+Y2hfbGF5b3V0Lm5i X2NoYW5uZWxzOw0KKyAgICBjb25zdCBpbnQgYnBzICAgID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1w bGUoZnJhbWUtPmZvcm1hdCk7DQorICAgIGNvbnN0IGludCBucyAgICAgPSBmcmFtZS0+bmJfc2Ft cGxlczsNCisgICAgY29uc3QgaW50IHRvdGxlbiA9IGNoICogbnMgKiBicHM7DQorDQorICAgIC8q IGludGVybGVhdmUgcGxhbmFyIHRvIHBhY2tlZCBpZiBuZWNlc3NhcnkgKi8NCisgICAgaWYgKGF2 X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7DQorICAgICAgICB1aW50OF90 ICpidWYgPSBhdl9tYWxsb2ModG90bGVuKTsNCisgICAgICAgIGlmICghYnVmKQ0KKyAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7DQorICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8 IG5zOyBzKyspDQorICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBjaDsgYysrKQ0KKyAg ICAgICAgICAgICAgICBtZW1jcHkoYnVmICsgKHMqY2ggKyBjKSpicHMsDQorICAgICAgICAgICAg ICAgICAgICAgICAodWludDhfdCopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY10gKyBzKmJwcywNCisg ICAgICAgICAgICAgICAgICAgICAgIGJwcyk7DQorICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5k dW1wX3BjbV9mZHNbMF0sIGJ1ZiwgdG90bGVuKTsNCisgICAgICAgIGF2X2ZyZWUoYnVmKTsNCisg ICAgfSBlbHNlDQorICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5kdW1wX3BjbV9mZHNbMF0sIGZy YW1lLT5kYXRhWzBdLCB0b3RsZW4pOw0KKw0KKyAgICBpZiAocmV0IDwgMCkgew0KKyAgICAgICAg YXZfbG9nKGxpbmstPmRzdCwgQVZfTE9HX0VSUk9SLCAiUENNIGR1bXAgd3JpdGUgZmFpbGVkOiAl c1xuIiwNCisgICAgICAgICAgICAgICBhdl9lcnIyc3RyKHJldCkpOw0KKyAgICAgICAgbGlua191 bmluaXRfZHVtcF9wY20obGluayk7DQorICAgICAgICByZXR1cm4gcmV0Ow0KKyAgICB9DQorICAg IHJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoq bGluaykNCiB7DQpAQA0KDQogaW50IGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChBVkZpbHRlckNv bnRleHQgKmZpbHRlciwgY29uc3QgY2hhciAqY21kLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqYXJnLCBjaGFyICpyZXMsIGludCByZXNfbGVuLCBpbnQgZmxhZ3Mp DQogew0KQEANCi0gICAgICAgIGlmIChyZXMgPT0gbG9jYWxfcmVzKQ0KLSAgICAgICAgICAgIGF2 X2xvZyhmaWx0ZXIsIEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOw0KLSAgICAgICAgcmV0dXJuIDA7 DQorICAgICAgICBpZiAocmVzID09IGxvY2FsX3JlcykNCisgICAgICAgICAgICBhdl9sb2coZmls dGVyLCBBVl9MT0dfSU5GTywgIiVzIiwgcmVzKTsNCisgICAgICAgIHJldHVybiAwOw0KKyAgICB9 IGVsc2UgaWYgKCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RhcnQiKSkgew0KKyAgICAgICAgcmV0 dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcsIDEpOw0KKyAgICB9IGVsc2UgaWYg KCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7DQorICAgICAgICByZXR1cm4gZmlsdGVy X3NldF9kdW1wX3BjbShmaWx0ZXIsIGFyZywgMCk7DQogICAgIH0gZWxzZSBpZighc3RyY21wKGNt ZCwgImVuYWJsZSIpKSB7DQogICAgICAgICByZXR1cm4gc2V0X2VuYWJsZV9leHByKGZmZmlsdGVy Y3R4KGZpbHRlciksIGFyZyk7DQpAQA0KICAgICAvKiAuLi4gZXhpc3RpbmcgY29kZSAuLi4gKi8N Cg0KKyAgICBpZiAobGluay0+ZHVtcF9wY20gJiYgbGluay0+dHlwZSA9PSBBVk1FRElBX1RZUEVf QVVESU8pIHsNCisgICAgICAgIHJldCA9IGxpbmtfZHVtcF9mcmFtZShsaW5rLCBmcmFtZSk7DQor ICAgICAgICBpZiAocmV0IDwgMCkNCisgICAgICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9M T0dfRVJST1IsDQorICAgICAgICAgICAgICAgICAgICJQQ00gZHVtcCBmYWlsZWQgd2l0aCAlc1xu IiwgYXZfZXJyMnN0cihyZXQpKTsNCisgICAgfQ0KKw0KICAgICBsaS0+ZnJhbWVfYmxvY2tlZF9p biA9IGxpLT5mcmFtZV93YW50ZWRfb3V0ID0gMDsNCkBADQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0 ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgNCmluZGV4IGE4OWQzY2Y2NTgu LjBkNGM5MWJiNmIgMTAwNjQ0DQotLS0gYS9saWJhdmZpbHRlci9hdmZpbHRlci5oDQorKysgYi9s aWJhdmZpbHRlci9hdmZpbHRlci5oDQpAQA0KICAgICBBVkNoYW5uZWxMYXlvdXQgY2hfbGF5b3V0 OyAgLy8vPCBjaGFubmVsIGxheW91dCBvZiBjdXJyZW50IGJ1ZmZlcg0KDQorICAgIGludCAgICAg IGR1bXBfcGNtOyAgICAgICAgICAvLy88IGVuYWJsZSBkdW1waW5nIG9uIHRoaXMgbGluaw0KKyAg ICBpbnQgICAgICpkdW1wX3BjbV9mZHM7ICAgICAgLy8vPCBvbmUgRkQgcGVyIGxpbmsgKGN1cnJl bnRseSAxKQ0KKyAgICB1bnNpZ25lZCBuYl9kdW1wX3BjbV9mZHM7ICAgLy8vPCBudW1iZXIgb2Yg RkRzDQorICAgIGNoYXIgICAgKmR1bXBfcGNtX3BhdGg7ICAgICAvLy88IHVzZXItc3VwcGxpZWQg ZGlyZWN0b3J5DQorDQogICAgIC8qKg0KICAgICAgKiBEZWZpbmUgdGhlIHRpbWUgYmFzZSB1c2Vk IGJ5IHRoZSBQVFMgb2YgdGhlIGZyYW1lcy9zYW1wbGVzDQogICAgICAqIHdoaWNoIHdpbGwgcGFz cyB0aHJvdWdoIHRoaXMgbGluay4NCi0tDQoyLjM0LjENCg0KLS0tDQoNCkZyb20gOGNmN2JmYTUy YTEwYmU4N2UwZjE3Yjk3ODMxNTliMGU4M2Y5NjBmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEN CkZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCkRhdGU6IFdlZCwgMjMg QXByIDIwMjUgMTI6Mzg6MDAgKzA4MDANClN1YmplY3Q6IFtQQVRDSCAyLzJdIGRvYy9maWx0ZXJz OiBkb2N1bWVudCBkdW1wX3Jhd19zdGFydCBhbmQgZHVtcF9yYXdfc3RvcA0KIGNvbW1hbmRzDQoN ClNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCi0tLQ0K IGRvYy9maWx0ZXJzLnRleGkgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0t Z2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkNCmluZGV4IDQ1YjNlMDNl NWUuLjZhMmQyM2RmM2YgMTAwNjQ0DQotLS0gYS9kb2MvZmlsdGVycy50ZXhpDQorKysgYi9kb2Mv ZmlsdGVycy50ZXhpDQpAQA0KIEBzZWN0aW9uIGFkdW1wcGNtDQoNCiBEdW1wIHJhdyBQQ00gYXVk aW8gZGF0YSBmb3IgZGVidWdnaW5nIGJldHdlZW4gZmlsdGVycy4NCg0KIFRoaXMgZmlsdGVyIGFs bG93cyB3cml0aW5nIHJhdyBhdWRpbyBkYXRhIHRvIGRpc2sgZnJvbSBhbnkgYXVkaW8gbGluaw0K IGluIHRoZSBmaWx0ZXJncmFwaCBmb3IgaW5zcGVjdGlvbi4gSXQgc3VwcG9ydHMgcGxhbmFyIGFu ZCBwYWNrZWQgZm9ybWF0cywNCiBhdXRvbWF0aWNhbGx5IGludGVybGVhdmluZyBwbGFuYXIgZGF0 YSBmb3Igd3JpdGluZy4NCg0KIEBzdWJzZWN0aW9uIFN5bnRheA0KDQogQGV4YW1wbGUNCiBkdW1w X3Jhd19zdGFydD1maWxlPS95b3VyL2R1bXAvZGlyZWN0b3J5Lw0KIEBlbmQgZXhhbXBsZQ0KDQog QHN1YnNlY3Rpb24gVXNhZ2UNCg0KIFRvIGVuYWJsZSBkdW1waW5nLCB1c2UgdGhlIEBjb2Rle2R1 bXBfcmF3X3N0YXJ0fSBjb21tYW5kOg0KDQogQGV4YW1wbGUNCiBmZm1wZWcgLWkgaW5wdXQud2F2 IC1hZiAidm9sdW1lLGFzZW5kY21kPScwLjAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vdG1wL3BjbS8n IiAtZiBudWxsIC0NCiBAZW5kIGV4YW1wbGUNCg0KIFRvIHN0b3AgZHVtcGluZzoNCg0KIEBleGFt cGxlDQogYXNlbmRjbWQ9JzUuMCBkdW1wX3Jhd19zdG9wJw0KIEBlbmQgZXhhbXBsZQ0KDQogQHN1 YnNlY3Rpb24gT3B0aW9ucw0KDQogQHRhYmxlIEBvcHRpb24NCiBAaXRlbSBmaWxlDQogU3BlY2lm eSBhIGRpcmVjdG9yeSBwYXRoIChub3QgYSBmaWxlbmFtZSkgd2hlcmUgUENNIGRhdGEgd2lsbCBi ZSBkdW1wZWQuDQogVGhlIGR1bXBlZCBmaWxlIGlzIG5hbWVkIEBjb2RlezxzcmM+LTxkc3Q+LnBj bX0gYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuDQogQGVuZCB0 YWJsZQ0KLS0NCjIuMzQuMQ0KDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N CkZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRldmVsLWJvdW5jZXNAZmZtcGVnLm9yZz4gb24g YmVoYWxmIG9mIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2su Y29tPg0KU2VudDogMjYgQXByaWwgMjAyNSAzOjAwDQpUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcgPGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPg0KU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxd IFtQQVRDSF0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1 ZGlvIGRlYnVnZ2luZw0KDQrSu9a7tPMgt8rDqDoNCj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFBD TSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBsaW5rcywgaW50ZW5kZWQgZm9yIGF1 ZGlvIGRlYnVnZ2luZy4NCj4NCj4gSXQgYWRkcyBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbiBgLS1k dW1wZGlyPVBBVEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHJhdyBQQ00g ZGF0YSAoZGVmYXVsdDogL3RtcC8pLg0KPg0KPiBUd28gY29tbWFuZHMgYXJlIGV4cG9zZWQgdG8g Y29udHJvbCBkdW1waW5nOg0KPiAgIC0gZHVtcF9yYXdfc3RhcnQgPGRzdF9maWx0ZXJfbmFtZT4N Cj4gICAtIGR1bXBfcmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFtZT4NCj4NCj4gRHVtcCBmaWxlcyBh cmUgd3JpdHRlbiBhczogc3JjbmFtZS1kc3RuYW1lLWNoYW5uZWwucGNtDQo+DQo+IFN1cHBvcnRz IHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIG1hbmFnZWQg YXV0b21hdGljYWxseSBhbmQgd29yayBvbmx5IG9uIGF1ZGlvIGxpbmtzLg0KPg0KPiBFeGFtcGxl IHVzYWdlOg0KPiAgICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3 X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOw0KPg0KPiBUaGlzIGZlYXR1cmUgaGVscHMg ZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIgYmVoYXZpb3IgYnkgaW5zcGVjdGluZyBpbnRlcm1lZGlh dGUgYXVkaW8gZGF0YS4NCj4gLS0tDQo+IEZyb20gNmEzMWM4NWFmZDI4MDBjMDkwNzZjMWUyYjdj NzM0YzdiNzE5ZjczZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogWWlibyBGYW5n IDxibHVleWJmNzc3QG91dGxvb2suY29tPg0KPiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDA5OjE3 OjUxICswODAwDQo+IFN1YmplY3Q6IFtQQVRDSCAxLzFdIGF2ZmlsdGVyOiBhZGQgUENNIGR1bXBp bmcgYmV0d2VlbiBmaWx0ZXJzIGZvciBhdWRpbw0KPiAgZGVidWdnaW5nDQo+DQo+IFRoaXMgcGF0 Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJhdyBQQ00gYXVkaW8gZGF0YSBiZXR3ZWVuIEFW RmlsdGVyIGxpbmtzLg0KPiBJdCBpbnRyb2R1Y2VzIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uIGAt LWR1bXBkaXI9UEFUSGAgdG8gY29udHJvbCB0aGUgb3V0cHV0DQo+IGRpcmVjdG9yeSBvZiBkdW1w IGZpbGVzIChkZWZhdWx0OiAvdG1wLykuIFRoaXMgZmVhdHVyZSBpcyBoZWxwZnVsIGZvciBkZWJ1 Z2dpbmcNCj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJpZnlpbmcgYXVkaW8gcHJvY2Vzc2luZy4N Cj4NCj4gVHdvIGZpbHRlciBjb21tYW5kcyBhcmUgYWRkZWQ6DQo+ICAgLSBkdW1wX3Jhd19zdGFy dCA8ZHN0X2ZpbHRlcl9uYW1lPg0KPiAgIC0gZHVtcF9yYXdfc3RvcCA8ZHN0X2ZpbHRlcl9uYW1l Pg0KPg0KPiBUaGUgUENNIGZpbGVzIGFyZSB3cml0dGVuIGluIHRoZSBmb3JtYXQ6IHNyY25hbWUt ZHN0bmFtZS08Y2hhbm5lbD4ucGNtLg0KPg0KPiBTdXBwb3J0cyBib3RoIHBhY2tlZCBhbmQgcGxh bmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIGF1dG9tYXRpY2FsbHkNCj4gbWFuYWdl ZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4NCj4NCj4gRXhhbXBsZSB1c2FnZToNCj4gICBh dmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVtcF9yYXdfc3RhcnQiLCAidm9sdW1l IiwgTlVMTCwgMCwgMCk7DQo+DQo+IFNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3 N0BvdXRsb29rLmNvbT4NCj4gLS0tDQo+ICBjb25maWd1cmUgICAgICAgICAgICAgIHwgICA3ICsr Kw0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCB8ICAgNCArKw0K PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKQ0KPg0KPiBkaWZmIC0tZ2l0IGEv Y29uZmlndXJlIGIvY29uZmlndXJlDQo+IGluZGV4IGM5NGI4ZWFjNDMuLjM4MTYzMzc0OWQgMTAw NzU1DQo+IC0tLSBhL2NvbmZpZ3VyZQ0KPiArKysgYi9jb25maWd1cmUNCj4gQEAgLTUyNCw2ICs1 MjQsNyBAQCBEZXZlbG9wZXIgb3B0aW9ucyAodXNlZnVsIHdoZW4gd29ya2luZyBvbiBGRm1wZWcg aXRzZWxmKToNCj4gICAgLS1kaXNhYmxlLWxhcmdlLXRlc3RzICAgIGRpc2FibGUgdGVzdHMgdGhh dCB1c2UgYSBsYXJnZSBhbW91bnQgb2YgbWVtb3J5DQo+ICAgIC0tZGlzYWJsZS1wdHgtY29tcHJl c3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBldmVuIHdoZW4gcG9zc2libGUNCj4g ICAgLS1kaXNhYmxlLXZlcnNpb24tdHJhY2tpbmcgZG9uJ3QgaW5jbHVkZSB0aGUgZ2l0L3JlbGVh c2UgdmVyc2lvbiBpbiB0aGUgYnVpbGQNCj4gKyAgLS1kdW1wZGlyPVBBVEggICAgICAgICAgIGxv Y2F0aW9uIG9mIHBjbSBkdW1wIGZpbGVzIHRvIHNhdmUuDQo+DQo+ICBOT1RFOiBPYmplY3QgZmls ZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25maWd1cmUgaXMgbGF1bmNoZWQuDQo+ ICBFT0YNCj4gQEAgLTI2OTAsNiArMjY5MSw3IEBAIFBBVEhTX0xJU1Q9Ig0KPiAgICAgIHByZWZp eA0KPiAgICAgIHNobGliZGlyDQo+ICAgICAgaW5zdGFsbF9uYW1lX2Rpcg0KPiArICAgIGR1bXBk aXINCj4gICINCj4NCj4gIENNRExJTkVfU0VUPSINCj4gQEAgLTQxMjMsNiArNDEyNSw5IEBAIGlu Y2Rpcl9kZWZhdWx0PScke3ByZWZpeH0vaW5jbHVkZScNCj4gIGxpYmRpcl9kZWZhdWx0PScke3By ZWZpeH0vbGliJw0KPiAgbWFuZGlyX2RlZmF1bHQ9JyR7cHJlZml4fS9zaGFyZS9tYW4nDQo+DQo+ ICsjIHJ1bnRpbWUgcGF0aA0KPiArZHVtcGRpcl9kZWZhdWx0PScvdG1wLycNCj4gKw0KPiAgIyB0 b29sY2hhaW4NCj4gIGFyX2RlZmF1bHQ9ImFyIg0KPiAgY2NfZGVmYXVsdD0iZ2NjIg0KPiBAQCAt ODExOCw2ICs4MTIzLDcgQEAgRE9DRElSPVwkKERFU1RESVIpJGRvY2Rpcg0KPiAgTUFORElSPVwk KERFU1RESVIpJG1hbmRpcg0KPiAgUEtHQ09ORklHRElSPVwkKERFU1RESVIpJHBrZ2NvbmZpZ2Rp cg0KPiAgSU5TVEFMTF9OQU1FX0RJUj0kaW5zdGFsbF9uYW1lX2Rpcg0KPiArRFVNUERJUj0kZHVt cGRpcg0KPiAgU1JDX1BBVEg9JHNvdXJjZV9wYXRoDQo+ICBTUkNfTElOSz0kc291cmNlX2xpbmsN Cj4gIGlmbmRlZiBNQUlOX01BS0VGSUxFDQo+IEBAIC04MjY3LDYgKzgyNzMsNyBAQCBjYXQgPiAk VE1QSCA8PEVPRg0KPiAgI2RlZmluZSBDT05GSUdfVEhJU19ZRUFSIDIwMjUNCj4gICNkZWZpbmUg RkZNUEVHX0RBVEFESVIgIiQoZXZhbCBjX2VzY2FwZSAkZGF0YWRpcikiDQo+ICAjZGVmaW5lIEFW Q09OVl9EQVRBRElSICIkKGV2YWwgY19lc2NhcGUgJGRhdGFkaXIpIg0KPiArI2RlZmluZSBGRk1Q RUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRkdW1wZGlyKSINCj4gICNkZWZpbmUgQ0NfSURF TlQgIiQoY19lc2NhcGUgJHtjY19pZGVudDotVW5rbm93biBjb21waWxlcn0pIg0KPiAgI2RlZmlu ZSBPU19OQU1FICR0YXJnZXRfb3MNCj4gICNkZWZpbmUgRVhURVJOX1BSRUZJWCAiJHtleHRlcm5f cHJlZml4fSINCj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMgYi9saWJhdmZp bHRlci9hdmZpbHRlci5jDQo+IGluZGV4IDY0YzEwNzVjNDAuLjlmYzYzMDg1NDQgMTAwNjQ0DQo+ IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCj4gKysrIGIvbGliYXZmaWx0ZXIvYXZmaWx0 ZXIuYw0KPiBAQCAtMTksNiArMTksOSBAQA0KPiAgICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQ0KPiAg ICovDQo+DQo+ICsjaW5jbHVkZSA8ZmNudGwuaD4NCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4g Kw0KPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIg0KPiAgI2luY2x1ZGUgImxpYmF2 dXRpbC9hdnN0cmluZy5oIg0KPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9icHJpbnQuaCINCj4gQEAg LTE5NSw2ICsxOTgsNjYgQEAgaW50IGF2ZmlsdGVyX2xpbmsoQVZGaWx0ZXJDb250ZXh0ICpzcmMs IHVuc2lnbmVkIHNyY3BhZCwNCj4gICAgICByZXR1cm4gMDsNCj4gIH0NCj4NCj4gK3N0YXRpYyBh dl9jb2xkIHZvaWQgbGlua191bmluaXRfZHVtcF9wY20oQVZGaWx0ZXJMaW5rICpsaW5rLCBpbnQg c3RvcCkNCj4gK3sNCj4gKyAgICBpZiAobGluay0+ZHVtcF9wY21fZmRzKSB7DQo+ICsgICAgICAg IGludCBpOw0KPiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRz OyBpKyspIHsNCj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHNbaV0pDQo+ICsg ICAgICAgICAgICAgICAgY2xvc2UobGluay0+ZHVtcF9wY21fZmRzW2ldKTsNCj4gKyAgICAgICAg fQ0KPiArICAgICAgICBhdl9mcmVlKGxpbmstPmR1bXBfcGNtX2Zkcyk7DQo+ICsgICAgICAgIGxp bmstPmR1bXBfcGNtX2ZkcyAgICA9IE5VTEw7DQo+ICsgICAgICAgIGxpbmstPm5iX2R1bXBfcGNt X2ZkcyA9IDA7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKHN0b3ApDQo+ICsgICAgICAgIGxp bmstPmR1bXBfcGNtID0gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGF2X2NvbGQgaW50IGxpbmtf aW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspDQo+ICt7DQo+ICsgICAgY2hhciBwYXRo WzQwOTZdOw0KPiArICAgIGludCBmZCwgaTsNCj4gKw0KPiArICAgIGxpbmstPm5iX2R1bXBfcGNt X2ZkcyA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGxpbmstPmZvcm1hdCk/IGxpbmstPmNoX2xh eW91dC5uYl9jaGFubmVscyA6IDE7DQo+ICsgICAgbGluay0+ZHVtcF9wY21fZmRzID0gYXZfbWFs bG9jX2FycmF5KGxpbmstPm5iX2R1bXBfcGNtX2Zkcywgc2l6ZW9mKGludCkpOw0KPiArICAgIGlm ICghbGluay0+ZHVtcF9wY21fZmRzKQ0KPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p Ow0KPiArDQo+ICsgICAgZm9yIChpID0gMDsgaSA8IGxpbmstPm5iX2R1bXBfcGNtX2ZkczsgaSsr KSB7DQo+ICsgICAgICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgRkZNUEVHX0RVTVBE SVIiJS4xNnMtJS44cy0lZC5wY20iLCBsaW5rLT5zcmMtPm5hbWUsIGxpbmstPmRzdC0+bmFtZSwg aSk7DQo+ICsgICAgICAgIGZkID0gb3BlbihwYXRoLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RS VU5DLCAwNjQ0KTsNCj4gKyAgICAgICAgaWYgKGZkIDwgMCkgew0KPiArICAgICAgICAgICAgbGlu a191bmluaXRfZHVtcF9wY20obGluaywgMSk7DQo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJP UihlcnJubyk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgbGluay0+ZHVtcF9wY21fZmRzW2ld ID0gZmQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyBpbnQgZmlsdGVyX3NldF9kdW1wX3BjbShBVkZpbHRlckNvbnRleHQgKmZpbHRlciwgY29u c3QgY2hhciAqdGFyZ2V0LCBpbnQgc2V0KQ0KPiArew0KPiArICAgIGludCBpOw0KPiArDQo+ICsg ICAgZm9yIChpID0gMDsgaSA8IGZpbHRlci0+bmJfb3V0cHV0czsgaSsrKSB7DQo+ICsgICAgICAg IEFWRmlsdGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0c1tpXTsNCj4gKyAgICAgICAgaWYg KCF0YXJnZXQgfHwgIXN0cmNtcChsaW5rLT5kc3QtPm5hbWUsIHRhcmdldCkpIHsNCj4gKyAgICAg ICAgICAgIGlmIChzZXQpIHsNCj4gKyAgICAgICAgICAgICAgICBsaW5rLT5kdW1wX3BjbSA9IDE7 DQo+ICsgICAgICAgICAgICB9IGVsc2UNCj4gKyAgICAgICAgICAgICAgICBsaW5rX3VuaW5pdF9k dW1wX3BjbShsaW5rLCAxKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKHRhcmdldCkNCj4gKyAg ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiAr ICAgIHJldHVybiB0YXJnZXQgPyBBVkVSUk9SKEVJTlZBTCkgOiAwOw0KPiArfQ0KPiArDQo+ICBz dGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoqbGluaykNCj4gIHsNCj4gICAgICBG aWx0ZXJMaW5rSW50ZXJuYWwgKmxpOw0KPiBAQCAtMjA4LDYgKzI3MSw4IEBAIHN0YXRpYyB2b2lk IGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQ0KPiAgICAgIGF2X2NoYW5uZWxfbGF5b3V0 X3VuaW5pdCgmKCpsaW5rKS0+Y2hfbGF5b3V0KTsNCj4gICAgICBhdl9mcmFtZV9zaWRlX2RhdGFf ZnJlZSgmKCpsaW5rKS0+c2lkZV9kYXRhLCAmKCpsaW5rKS0+bmJfc2lkZV9kYXRhKTsNCj4NCj4g KyAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbSgqbGluaywgMSk7DQo+ICsNCj4gICAgICBhdl9idWZm ZXJfdW5yZWYoJmxpLT5sLmh3X2ZyYW1lc19jdHgpOw0KPg0KPiAgICAgIGF2X2ZyZWVwKGxpbmsp Ow0KPiBAQCAtNjE3LDYgKzY4MiwxMCBAQCBpbnQgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKEFW RmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpjbWQsIGNvbnN0IGNoYQ0KPiAgICAg ICAgICBpZiAocmVzID09IGxvY2FsX3JlcykNCj4gICAgICAgICAgICAgIGF2X2xvZyhmaWx0ZXIs IEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOw0KPiAgICAgICAgICByZXR1cm4gMDsNCj4gKyAgICB9 ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0YXJ0IikpIHsNCj4gKyAgICAgICAgcmV0 dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcsIDEpOw0KPiArICAgIH1lbHNlIGlm KCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7DQo+ICsgICAgICAgIHJldHVybiBmaWx0 ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJnLCAwKTsNCj4gICAgICB9ZWxzZSBpZighc3RyY21w KGNtZCwgImVuYWJsZSIpKSB7DQo+ICAgICAgICAgIHJldHVybiBzZXRfZW5hYmxlX2V4cHIoZmZm aWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsNCj4gICAgICB9ZWxzZSBpZiAoZmZmaWx0ZXIoZmlsdGVy LT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsNCj4gQEAgLTEwNTAsNiArMTExOSw0MSBAQCBm YWlsOg0KPiAgICAgIHJldHVybiByZXQ7DQo+ICB9DQo+DQo+ICtzdGF0aWMgaW50IGxpbmtfZHVt cF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1lKQ0KPiArew0KPiArICAg IGludCBzYW1wbGVzX3NpemUsIHJldDsNCj4gKw0KPiArICAgIGlmICghbGluay0+ZHVtcF9wY21f ZmRzKSB7DQo+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9kdW1wX3BjbShsaW5rKTsNCj4gKyAg ICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0N Cj4gKw0KPiArICAgIHNhbXBsZXNfc2l6ZSA9IGF2X2dldF9ieXRlc19wZXJfc2FtcGxlKGZyYW1l LT5mb3JtYXQpICogZnJhbWUtPm5iX3NhbXBsZXM7DQo+ICsgICAgaWYgKGF2X3NhbXBsZV9mbXRf aXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7DQo+ICsgICAgICAgIGludCBpOw0KPiArICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzICYmIGkgPCBmcmFtZS0+Y2hf bGF5b3V0Lm5iX2NoYW5uZWxzOyBpKyspIHsNCj4gKyAgICAgICAgICAgIGlmIChpIDwgQVZfTlVN X0RBVEFfUE9JTlRFUlMpIHsNCj4gKyAgICAgICAgICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5k dW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1wbGVzX3NpemUpOw0KPiArICAgICAg ICAgICAgfSBlbHNlDQo+ICsgICAgICAgICAgICAgICAgcmV0ID0gd3JpdGUobGluay0+ZHVtcF9w Y21fZmRzW2ldLCBmcmFtZS0+ZXh0ZW5kZWRfZGF0YVtpIC0gQVZfTlVNX0RBVEFfUE9JTlRFUlNd LCBzYW1wbGVzX3NpemUpOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAg ICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0gZWxzZSB7DQo+ ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNtX2Zkc1swXSwgZnJhbWUtPmRhdGFb MF0sIHNhbXBsZXNfc2l6ZSAqIGZyYW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMpOw0KPiArICAg ICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgIGdvdG8gZXJyOw0KPiArDQo+ICsgICAg fQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICtlcnI6DQo+ICsgICAgbGlua191bmluaXRfZHVt cF9wY20obGluaywgMSk7DQo+ICsgICAgcmV0dXJuIEFWRVJST1IoZXJybm8pOw0KPiArfQ0KPiAr DQo+ICBpbnQgZmZfZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFtZSAqZnJh bWUpDQo+ICB7DQo+ICAgICAgRmlsdGVyTGlua0ludGVybmFsICogY29uc3QgbGkgPSBmZl9saW5r X2ludGVybmFsKGxpbmspOw0KPiBAQCAtMTA4Nyw2ICsxMTkxLDEyIEBAIGludCBmZl9maWx0ZXJf ZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmstPnRpbWVfYmFzZSk7DQo+ICAgICAgfQ0K Pg0KPiArICAgIGlmIChsaW5rLT5kdW1wX3BjbSAmJiBsaW5rLT50eXBlID09IEFWTUVESUFfVFlQ RV9BVURJTykgew0KPiArICAgICAgICByZXQgPSBsaW5rX2R1bXBfZnJhbWUobGluaywgZnJhbWUp Ow0KPiArICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgIGF2X2xvZyhsaW5rLT5k c3QsIEFWX0xPR19FUlJPUiwgIkR1bXAgcGNtIGZpbGVzIGZhaWxlZCB3aXRoICVkXG4iLCByZXQp Ow0KPiArICAgIH0NCj4gKw0KPiAgICAgIGxpLT5mcmFtZV9ibG9ja2VkX2luID0gbGktPmZyYW1l X3dhbnRlZF9vdXQgPSAwOw0KPiAgICAgIGxpLT5sLmZyYW1lX2NvdW50X2luKys7DQo+ICAgICAg bGktPmwuc2FtcGxlX2NvdW50X2luICs9IGZyYW1lLT5uYl9zYW1wbGVzOw0KPiBkaWZmIC0tZ2l0 IGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgNCj4gaW5k ZXggYTg5ZDNjZjY1OC4uNmQwNGI5ZGE3NyAxMDA2NDQNCj4gLS0tIGEvbGliYXZmaWx0ZXIvYXZm aWx0ZXIuaA0KPiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRlci5oDQo+IEBAIC00MDQsNiArNDA0 LDEwIEBAIHN0cnVjdCBBVkZpbHRlckxpbmsgew0KPiAgICAgIGludCBzYW1wbGVfcmF0ZTsgICAg ICAgICAgICAvLy88IHNhbXBsZXMgcGVyIHNlY29uZA0KPiAgICAgIEFWQ2hhbm5lbExheW91dCBj aF9sYXlvdXQ7ICAvLy88IGNoYW5uZWwgbGF5b3V0IG9mIGN1cnJlbnQgYnVmZmVyIChzZWUgbGli YXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgpDQo+DQo+ICsgICAgaW50ICAgICAgICBkdW1wX3BjbTsg ICAgICAgLy8vPCBmbGFnIHRvIGR1bXAgcGNtDQo+ICsgICAgaW50ICAgICAgICAqZHVtcF9wY21f ZmRzOyAgIC8vLzwgZHVtcCBmaWxlcw0KPiArICAgIHVuc2lnbmVkIG5iX2R1bXBfcGNtX2Zkczsg ICAvLy88IG51bWJlciBvZiBkdW1wIGZpbGUNCj4gKw0KPiAgICAgIC8qKg0KPiAgICAgICAqIERl ZmluZSB0aGUgdGltZSBiYXNlIHVzZWQgYnkgdGhlIFBUUyBvZiB0aGUgZnJhbWVzL3NhbXBsZXMN Cj4gICAgICAgKiB3aGljaCB3aWxsIHBhc3MgdGhyb3VnaCB0aGlzIGxpbmsuDQo+IC0tDQo+IDIu MzQuMQ0KPg0KDQpDYW4ndCB5b3UgdXNlIHRoZSBhc3BsaXQgZmlsdGVyIHRvIGR1cGxpY2F0ZSB0 aGUgYXVkaW8/DQoNCi0gQW5kcmVhcw0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXw0KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdA0KZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcNCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbA0KDQpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwNCmZmbXBl Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2 ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxp bmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBz dWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==