From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id EDBEA4EF23 for ; Wed, 14 May 2025 19:13:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2E01168BFC6; Wed, 14 May 2025 22:13:06 +0300 (EEST) Received: from CY4PR02CU008.outbound.protection.outlook.com (mail-westcentralusazon11021123.outbound.protection.outlook.com [40.93.199.123]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6088A68B912 for ; Wed, 14 May 2025 22:12:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n5GfTH0XAN9QmSfn7NP88WKyziX7vbYXygtOEJEJQAN5O+SdyKTJVYBr+Bswj8beIq9lxoc7a9TbbVDjGUqdKWFAy2vkXwQQbvqixA5M48BQDRiewPVKTT4xzYfmNQSX/74ohwCNjqUDV32lOB2qMz01ahCkE1j9SUxh0Hg8oC2nuo2XQTksOLzcsWiFDUolqzc+T2e5vpkwNCrqCtWnSou973r9q6Lu/XGwGrqvawdMm0Wzs3PXImRypCfumfTkxTujVo/9jj5phpxIs6bypZbPR+sCfKXGPPPFFnA2S7wX2raY+j1zU8tSL1hg5EjH/dk4Ht41zz75OWO5g25Tww== 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=JlICHv5SMBRBgB32YfbXMlawLteVEcDnYH8bsN7MCtk=; b=difBcdrmIftCnqBIP0LC4QSLpX+TN1hTY+UBH9b6wBG1925m6/sGU8dJWm4t2VTnb+HYL7frLdXy3uRphB5fPZOVnz1cVqKT3mpsCRv6Dqpr7dFyxGGe7QKwaMORjRK3rEolCIvHg4hQHNduQB25RygUNvKKGT3YUkdLMa42WqvUtUMsJstzkaKNF/6GTN1JFRFcyOlNM+9TJ/Ot0+MoSZ9RCd9EgyOdkQf1e/+H18r2sSEo9fozh1vJS0eJNcapVOK9zSK3SwD7vpvoqVhRR1/dG5+kCGIuDwMHU683rbMJ/foNveADDOdIIc0/Bhiu8cBCC2lY9HYnn/MffFSsng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none Received: from DM4PR21MB4619.namprd21.prod.outlook.com (2603:10b6:8:244::8) by DS1PR21MB4179.namprd21.prod.outlook.com (2603:10b6:8:1e4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.6; Wed, 14 May 2025 19:12:55 +0000 Received: from DM4PR21MB4619.namprd21.prod.outlook.com ([fe80::7670:fa05:fb39:c4c9]) by DM4PR21MB4619.namprd21.prod.outlook.com ([fe80::7670:fa05:fb39:c4c9%4]) with mapi id 15.20.8746.006; Wed, 14 May 2025 19:12:55 +0000 To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] Boost FPS and performance: Optimize vertical loop for cache-friendly access [libavcodec/jpeg2000dwt.c:dwt_decode97_float] Thread-Index: AQHbxQQyIAWtIJqU5UWw3KzInkAxmg== Date: Wed, 14 May 2025 19:12:55 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2025-05-14T19:12:54.720Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR21MB4619:EE_|DS1PR21MB4179:EE_ x-ms-office365-filtering-correlation-id: a17bfb80-1c6e-437e-282f-08dd931b54b1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|10070799003|376014|366016|1800799024|8096899003|7053199007|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?TUwybWZKZWFWVzRhYmVNREowbXFwbVZtNlpvaEh4TVRwS3VkU0UzblNIRG5O?= =?utf-8?B?clprSS9UWkhoZXFyTGp4Z081NG1rZVg2d0NmM1ptSFZBK2YvN2RHWkpzWGww?= =?utf-8?B?ajI4NEVuU2FyeEtLS2NoNm94eDlyZWk1bUl3YUVFU1JEb1dNbFRjb2txR1Qy?= =?utf-8?B?aFUrUVNZZ3NYQ3Zab01GZllEdVE4OEVCbjRTTm1KeVp4MExmbm1xcTZUdnps?= =?utf-8?B?VXlTN2RVZk1OUWdCSW1jMFkzVkhQN2dXL1dldndEQ210YXMzZ3BwYkhoVk9z?= =?utf-8?B?bmJHQXc5Ui9OQWhWaWJjMWRBSGtMZjVaalJrRmVrQ3VGVmVjVU5kOXBLdUhH?= =?utf-8?B?YzUrT0VQck9GdEs2OXhWUjhVZjc1ZDM5R0FiZk8wcXhLWVU0R0ZSS25NVUFz?= =?utf-8?B?SzFYRzZqd3RpdHJFeiswUUVORTFPOWpEVVprWGFqdTkweFVoLytRbEZHMDBr?= =?utf-8?B?dzk0eFF4N3l2NTdmUGZER2ZHMDdyVFNpUGYyNXBTQmxCWllPZWRRY3lHQTJu?= =?utf-8?B?Y0N2ei80NnUvVkVGOTNmamtGak5uWTlwM2E5bmRtbzJyZWdtU25pQkRWT1Za?= =?utf-8?B?djExNzAzNjJHNjl2OVlpUk9GZ3V3TUNDZUVhSU5RNzhyaEFmVnN2N3hXTFhk?= =?utf-8?B?bGN1RFJWMkd2T0l4ZjN3S2h1ZHpzZXJkck1kT2tvNm1EUEtkSjVva0tRSitr?= =?utf-8?B?Z0RvZktnV0ltL0pTazUyZXFaZU83T2ZEWHd6eGVrQ2hzcFRwZTlUVnRQN2E0?= =?utf-8?B?ckFScG9DTmFwSWhpUzhBWGplVHkzMzhEUkVSbFZTN2VtMnM5RzllbmNBR2hj?= =?utf-8?B?eVRCN2FUYXdGM3FFSWlCRUhIMlRyN0JnYnNpMUtXa01KQlVVQzkvWkRGY2pU?= =?utf-8?B?aUxIMGRmOVl1RzA2QStPRDArbWg5ZnpYcWEzUnJ5cDhMRVFodW1Rai9wWVp2?= =?utf-8?B?R3ZKclZ4SGt6ZXNwck1IRkplTDZnbFJIL1J1MVFMSjVrdzc4bjZpbGlJR3Q2?= =?utf-8?B?d1dJb0ViYk1sWjE2S1Q5WlBua0ZKNG1XOHRyK09wK1dEWFRJa0RCbjVXL3Fs?= =?utf-8?B?a0FaZ1REOTJqdDQzbDJyQWNzdjlxKzI4ZVZaeGVCcjhUdStpdm1odlVDc25s?= =?utf-8?B?WkNXTlRWWDNIVmhlNFN1bk0xbHJGeFIvb1VPZjJVZy9ucFh2cnk3K1hqZFQw?= =?utf-8?B?VE50Uy84a3Y3aDkwL1lnSVNDaXBrRHYzYnlMdi9CbE44S2lIcDZ0bjlrbVFU?= =?utf-8?B?S05nZ1l4bWlFYXZPOUdyb2NOSXlibFIyRmJPbTNvcHZKd2F3Y1RjSmRVVFBl?= =?utf-8?B?eXN6Rk5jelBzYXlUVE5yQTFDNzdMRWkwY3dkMGhCaTZqZkVVT2xYTGlxMVVa?= =?utf-8?B?RjRSN2NudXovdzNDWVNBY20wU1RScWtPczRVYmRiQlpqTjZzZ3FmVTQ3eEVh?= =?utf-8?B?UDJsUmlxSDJoTFJhVHV6dlh1ZE5ObFhKdGF1RExyRVJiVmlOVkNDbUlSR2RQ?= =?utf-8?B?WHBlWVFTcDFXZGZmRCtCNHdTWDZNMXpLK0NEWVY3U0tONnhpVmw4MWgybkVJ?= =?utf-8?B?bGpzTG1BNnBHdTBCZThJSk5MenlRdHpjUng2UlJySTBTbnUzTlY3NFNFMUVs?= =?utf-8?B?MFo2Uzdwd3p3QTVPNFhoU2UyUmhRR3M2SGdyMkt0YUZUS2JGM0RZM1I2S05t?= =?utf-8?B?bWdhWFZMMndaZ0J3SWhRZk1TcnNCaHdDc3BTeEVlT1laYzBxMmVOOFlacFlU?= =?utf-8?B?WUlkbmlBRTNZTXVqRGgxY1JLOHpmNndTSlEzWWJXcGJZSkVybnJLa1oxUGl4?= =?utf-8?B?NnpGS1cyU3haYXBrRmlFdHI0enVlaWpMTWY2dFFQMVNSTkgwelJiZnBzaStQ?= =?utf-8?B?NFhvYXhFditlMTVHTzkyM3VCZTRoNlZsMTFoSXpieVZFQmgxZ1pMNU1jTDN5?= =?utf-8?B?aEtIbnEvZDFUbGRiRjlBU2lDakhLS2kxWEpUdUhid25sL00yMG9oNWIvc2Nx?= =?utf-8?B?RnFwYi9GVkx3PT0=?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:ja; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR21MB4619.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(8096899003)(7053199007)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MDl5ZjNKVUMxdGNPRTk0L1hYc0hMSFd0M0NQeGRvRCt1RDZwSURDRHNiZjRL?= =?utf-8?B?MERhbXdOdHdGM1JMemRJQkU2ZjdlS2w5UWZrZ3RNR3VTRDZvUzMzdWNCYTJt?= =?utf-8?B?RmsxYURHNERNWUQwRmJzWk12anlNOXpBLzNENkhYM3IxQUFENVo1S2JKMUh1?= =?utf-8?B?ZnJpSFRaMjM2aDVNV2xnRVRDanNSNjFiRE1PWkdCMXJyeUs3MVVzd2RUUGdl?= =?utf-8?B?SGc3OGxNNE9QUUJ1bmwrUkxlVVZGaWhQNm1zbWlBWTRnNnFlVk0zQTZnZGhG?= =?utf-8?B?ZWUvQkJ0bWNRay9rZkFWQUN1NVQ0T1ZDbjVJWVRXS0VRWi95QnJLTjl1RVRz?= =?utf-8?B?R2Q5d3JkTmZTa1hydko0cElwWHBBUDV5dllvdTFyd2tkM2wwK1ZOWHA1SVlM?= =?utf-8?B?cEVUY0RKeFg4RnVqZ09wUVBEMlNTZVRvQ05ZY002Ly9iTk5vTjMrRGtQZG1x?= =?utf-8?B?ZW1NdlJDa084ZmtJazFuc2NTUXRnWXc0b2lQM2VBTHF3RFRRK1JQRkpPTkt1?= =?utf-8?B?Z2RJdGk2YWMwQmRFeUZ2SVlodythU3BGR0FOVlpSc1Yrcno3azBSYlNsV3VJ?= =?utf-8?B?d2lNaVhBV2pzY2s2SkI0SktOVGtZb0c3RG91akVWbjZ2L1RJV1oyd21TUGVW?= =?utf-8?B?clRSaXgxWFJya3F4OHV4NkovTVhGSWxMU3hKb29YNklTN3JaRjE4UFBTVHc3?= =?utf-8?B?RjZKYzU1cW1vclFYODUrQnMzVkNVNmlFRHRERnBNa3RNTks1Z25CT200WHZo?= =?utf-8?B?d0d0MGNkTTRWbmhNL0Z4OExKbWZjQ1oyd0dTWnMvR25IU0c0Q1A2aDAvQndl?= =?utf-8?B?ZzBqSEVZZEFHRTdqU0VrZ1F0UWpScDRzdzVuVWozZ2lZcEM0clFoZURoeTQ4?= =?utf-8?B?eldkRVJwNlJRWmIzOXhCZUdhNDBKdG9WM0c2V3JVS2ovaHdRQlRacjdqaHNz?= =?utf-8?B?a2lkeVdVV0hFUGhLekNBVGs0OWkrSTdFeXpMVXhXMy9zZjg4UlVxUm40VEZs?= =?utf-8?B?SXhnS3pxbndEMTBqNDA1dUhKM2syUThwQjl6eFFzdXdUMFAwdjQ5M3pWMVc4?= =?utf-8?B?S1J5Qm9DRkNQV1VsSXBEbUlYUE01OGNOckZpajlna0dTcDNXWTRLSXJKRXNX?= =?utf-8?B?L0h3RHZBcytEdnBvSGtsTXJmaDUvdFpZcENkdlM2WE9yRXV4aEpYK3JFejdx?= =?utf-8?B?TllxRERtRlJST1hSWWxpY01JR0Nnb2M5RktDc01ZNDhiYTVwY1FLTFB5ZURr?= =?utf-8?B?Q0xDTnBFUmwyRUZVQWNxbTVudkFNaVhKZHhMOHkxZTZ3OWl2ZTUzYjZMeTZl?= =?utf-8?B?cURIRjFXSWxjcTg0OTJBNjlXZzZvSFFJMVFpMUl5NGNkL0I5dUZSbXdxNWRE?= =?utf-8?B?UExCbzVXUzk1aUhSRkUwbUEwOXBYL0wrMXVYZ25ad1pTM2w0UXkrUVB6Slh3?= =?utf-8?B?QmVSTmJGcVVPM2VkSWs0Yjd2R0hsb3pZT3NiZ0g2amRlbDkvODZ2a0l5ODZa?= =?utf-8?B?ZjM0K0ZvU2M2c2RSb0IvR1ZrQlRWQmJQKzdWekd3eUhQMmpSb3llbkJ0ZGpX?= =?utf-8?B?eUJjUDJNcVZEZ1NReWg1akw2bUJ6YUVVKzlmYkRsSHdhMnRFOUlLL2R4OU5U?= =?utf-8?B?ZXRzN2JCdThpVkptN01mMUlNdWY5RUwvZGphUzI0OTB0VDBSRW1BR2NleDlM?= =?utf-8?B?Y2NkU2Y1UERWNXRwNmk1eVZyQURLM1BJZnNjbityTSs0K05HeG1wVHF2YUVz?= =?utf-8?B?Q05ub2NvcFlNa2JmR0FsS0ZjY05vdklFY0NEMGVTTCs1YUN2bGtFdnAxTW9Z?= =?utf-8?B?WE91RTZjOFp5S0pRdXpPaHo0NFBJa1Y5Zkw3NU1QVkxFU1BSVHhURUswMW1W?= =?utf-8?B?QituSTYvb0RJZDF1Z2plNlJGLzlaUFRYN3krQTEwR3pYaHc1d0NKR3FtNzZG?= =?utf-8?B?R0RSZTNXK0xuZWh1SGZGMnBNcXFlaUdKWSsxMWtBVEdkbDBDalI5bGFobjV5?= =?utf-8?B?Q00rTGZ6K050N21iOUxVWkpXUTgwZGFhMDd2cWt4OEdidEhIdkV5QlpUVkpU?= =?utf-8?B?aUhEZ1dCaDN4UUU0eWF5dFhWcEVld3ZoNUJKNjc1RDJHcE1kRUxHVlVuOWlT?= =?utf-8?Q?pVULJXjYyoeCJVWx5DvSBGX/v?= MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR21MB4619.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a17bfb80-1c6e-437e-282f-08dd931b54b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2025 19:12:55.0719 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cBLaoSoF9NWKxNLBpzWKNFqCGIr7j4iIZBUypKrGAdTiUB85DlA4PPwaz30s3MwcyVDuh/w2RFpW/IoXBvTXTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR21MB4179 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] Boost FPS and performance: Optimize vertical loop for cache-friendly access [libavcodec/jpeg2000dwt.c:dwt_decode97_float] X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chitra Dey Sarkar via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Chitra Dey Sarkar Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbSBkMDc0ZWE4MWMxMjEzMmUzYTkyMjExNjc5YWRiZTJkMmNiNGQ1YTY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogQ2hpdHJhRGV5U2Fya2FyIDxjaGRleXNhckBtaWNyb3NvZnQu Y29tPg0KRGF0ZTogV2VkLCAxNCBNYXkgMjAyNSAxMTo1MTozNSAtMDcwMA0KU3ViamVjdDogW1BB VENIXSBCb29zdCBGUFMgYW5kIHBlcmZvcm1hbmNlOiBPcHRpbWl6ZSB2ZXJ0aWNhbCBsb29wIGZv cg0KIGNhY2hlLWZyaWVuZGx5IGFjY2VzcyBbbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5jOmR3dF9k ZWNvZGU5N19mbG9hdF0NCkZyb206IGNoZGV5c2FyQG1pY3Jvc29mdC5jb20NClgtVW5zZW50OiAx DQpUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcNCg0KRnJvbSBlYXJsaWVyDQoNCkhpIE1pY2hh ZWwsDQpUaGFua3Mgc28gbXVjaCBmb3IgZ2V0dGluZyBiYWNrISBJJ2xsIHF1aWNrbHkgaW1wbGVt ZW50IHRoZSBmaXJzdCAzIGNvbW1lbnRzDQoNCkZvciB0aGUgbGFzdCBjb21tZW50IGlzIHRoZXJl IGEgd2F5IGZvciBtZSB0byByZWFjaCB5b3Ugb24gcmVndWxhciBlbWFpbCB0byBlbGFib3JhdGUg dGhlIHByb3Bvc2VkIGNoYW5nZSBtb3JlIHdpdGggYSBiZXR0ZXIgZXhwbGFuYXRpb24uDQpUaGUg J2dpdC1zZW5kLWVtYWlsJyB3YXMgbm90IGdvb2Qgd2F5IGZvciBtZSB0byBwcm92aWRlIGEgZGV0 YWlsZWQgZXhwbGFuYXRpb24gZm9yIHdoYXQgSSB3YXMgdHJ5aW5nIHRvIGFjaGlldmUNCkFkZGl0 aW9uYWxseSBJIGNhbiBhZGQgbW9yZSBwZW9wbGUgZnJvbSBteSBncm91cC4NCg0KQ29tbWVudCBm cm9tIE1pY2hhZWwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdGhpcyBzaG91 bGQgYmUgcnVuIGxpbmV3aXNlIG5vdCBjb2x1bW53aXNlDQppZiB5b3UgZG9udCB1bmRlcnN0YW5k IHdoYXQgaSBtZWFuIGhlcmUsIHBsZWFzZSBzYXkgc28gYW5kIGlsbCBlbGFib3JhdGUNCkJ1dCBi YXNpY2FsbHkgYm90aCB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCB0cmFuc2Zvcm1zIHNob3VsZCBi ZSBkb25lIHdpdGggcm93IGJhc2VkIGltcGxlbWVudGF0aW9ucw0KVGhlIGNvZGUgYmVmb3JlIGxv YWRzIGFuZCBzYWZlcyBlYWNoIGNvbHVtbiAod2hpY2ggaXMgYmFkKQ0KDQotIFllcyB3ZSB3b3Vs ZCBsaWtlIHRvIGxlYXJuIG1vcmUgLiBJIGFtIGFsd2F5cyBoYXBweSB0byB1bmRlcnN0YW5kIHRo ZSBkZXRhaWxzIGJlaGluZCB3aGF0IGlzIGdvaW5nIG9uIGhlcmUgYW5kIGFwcHJlY2lhdGUgeW91 ciBleHBsYW5hdGlvbnMNCg0KSXNzdWUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KZm9yIChpID0gbXY7IGkgPCBsdjsgaSArPSAyLCBqKyspDQogICAgICAgICAgICAgIGxbaV0g PSBkYXRhW3cgKiBqICsgbHBdOw0KLSBWRVJfU0QgaXMgcnVubmluZyB2ZXJ0aWNhbGx5IGF0IHRo ZSBtb21lbnQgd2l0aCBqIGJlaW5nIGluY3JlbWVudGVkIGluIHRoZSBpbm5lcm1vc3QgbG9vcC4N CldpdGggdz00MDk2ICwgd2UgYWNjZXNzIGRhdGFbNDA5Nl0gLCBkYXRhWzgxOTJdICwgZGF0YVsx MjI4OF0gIHdoaWNoIHRvdWNoZXMgYSBuZXcgY2FjaGVsaW5lIGluIGV2ZXJ5IHNpbmdsZSBpdGVy YXRpb24gb2YgdGhlIGlubmVyLSBsb29wIGFuZCBjYXVzZXMgY2FjaGUgdGhyYXNoaW5nIChUaGUg bmV4dCBpdGVyYXRpb24gb2YgbG9vcCBkb2VzIG5vdCB1c2UgdGhlIHByZXZpb3VzIGNhY2hlbGlu ZSkNCiBJbiBvdXIgcHJvZmlsaW5nIG9uIHRoZSBuZXdlc3QgU3VyZmFjZSAxMSBkZXZpY2VzIHdp dGggfjM2TSBMMiBjYWNoZSB3ZSBvYnNlcnZlZCB0aGlzIGxvb3AgdG8gYmUgYSBib3R0bGVuZWNr IGNvc3RpbmcgfjQtNSBGUFMgb24gdGhlc2UgZGV2aWNlcy4gV2Ugb2JzZXJ2ZWQgdGhpcyBvbiBN YWMgTTIgYW5kIE00IGRldmljZXMgdG9vLg0KDQpDaGl0cmEncyBjb21tZW50cw0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUaGUgcHJvcG9zZWQgZml4IHNhdmVzIGVhY2gg Y29sdW1uIGluIDJEIGFycmF5IGluIHJldmVyc2UuIElubmVyIGxvb3BzIGFyZSBzZXF1ZW50aWFs LCBidXQgdGhlIHBlcmZvcm1hbmNlIGJlbmVmaXQgaXMgYWxzbyBjb21pbmcgZnJvbSB0aGUgc2l6 ZSBvZiAyREFycmF5DQoNCkluIG15IHByb2ZpbGluZyBoZXJlIGFyZSB0aGUgcmVhbCB0aW1lLXZh bHVlcw0KTFYgOiAxMDgsIDIxNSAsICA0MjkgLCAgODU3ICwxNzE0DQpMSCA6IDI1NiAsIDUxMiAs IDEwMjQgLCAyMDQ4ICwgNDA5Ng0KVyA6IDQwOTYNCg0KT3JpZ2luYWwgY29kZSB0aGUgc2l6ZSBv ZiAqZGF0YSAgPSAxNzE0ICogNDA5NiAqIHNpemVvZihmbG9hdCkgPSAyNk1CDQoNCkluIGNhY2hl LWJsb2NraW5nIHdpdGggdGhlIDJEIEFycmF5IEkgYW0gaW50ZW50aW9uYWxseSB0cmFuc3Bvc2lu ZyAqZGF0YSBpbiBhIDJEIGFycmF5IGJ1dCAyREFycmF5IGlzIG11Y2ggc21hbGxlciBhbmQgZml0 cyBpbiBDUFUgY2FjaGUgYW5kIG5vIG5lZWQgdG8gYWNjZXNzIERSQU0uDQpIZXJlIGFyZSB0aGUg c2l6ZXMgb2YgMkRBcnJheQ0KTFbigILigILigILigIJMSOKAguKAguKAguKAgk1lbW9yeSBmb3Ig QXJyYXkyREJsb2NrDQoxMDjigILigILigIIyNTbigILigILigIJ+MC4xIE1CDQoyMTXigILigILi gII1MTLigILigILigIJ+MC40IE1CDQo0MjnigILigILigIIxMDI04oCC4oCCfjEuNiBNQg0KODU3 4oCC4oCC4oCCMjA0OOKAguKAgn42LjcgTUINCjE3MTTigILigII0MDk24oCC4oCCfjI2IE1CDQoN Ck92ZXJhbGwgbG9naWMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVGhlIG92ZXJh bGwgbG9naWMgaXMgbm90IGltcGFjdGVkIC4gSSBkbyBub3QgY2hhbmdlIHRoZSBjb250ZW50cyBv ZiBsW2ldIGV2ZW4gdGhvdWdoIGl0IGdldHMgcG9wdWxhdGVkIHRocm91Z2ggdGhlIDJEIEFycmF5 DQpzcl8xZDk3X2Zsb2F0IHVzaW5nICpsaW5lIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQNCg0KSSBo YXZlIHZhbGlkYXRlZCB0aGUgQ1JDIG9mIHRoZSBvdXRwdXQgZmlsZSBmb3IgdHJhbnNjb2Rpbmcg dGhlIGZpcnN0IDE1MDAgZnJhbWVzIG9mIHRlYXJzIG9mIFN0ZWVsIHdpdGggYW5kIHdpdGhvdXQg dGhpcyBjaGFuZ2UgYW5kIEkgYW0gYWxzbyBoYXBweSB0byBkbyBhIERlbW8gaWYgdGhhdCBpcyBh biBvcHRpb24uDQoNCjIgZXh0cmEgY29waWVzIGV4cGxhbmF0aW9uDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCkVhcmxpZXIgKmRhdGEgaXMgbWFsbG9jJ2Qgb3V0c2lkZSBvZiB0aGUgZnVu Y3Rpb24sICB3aXRob3V0IGtub3dpbmcgTFYgYW5kIExIIGl0IHRvb2sgdGhlIGxhcmdlc3QgTFYq TEggYXMgaXRzIHNpemUsIHdoaWNoIGlzIG11Y2ggbGFyZ2VyIHRoYW4gMkQgQXJyYXkNCg0KRWFy bGllciB0aGVyZSB3ZXJlIDMgbG9vcHMgYWNjZXNzaW5nICpkYXRhIHZlcnRpY2FsbHkgKGNvbHVt bndpc2UpICwgbm93IHRoZXJlIGFyZSA1IGxvb3BzIEkgYWdyZWUuIEJ1dCB0aGUgNSBsb29wcyBh cmUgY2FjaGUgZnJpZW5kbHkNCg0KSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24NCg0KICAx Lg0KQWxsIHRoZSBsb29wcyBhY2Nlc3MgKmRhdGEgcm93IHdpc2UgYnV0IGNvcHkgdG8gMkQgQXJy YXkgY29sdW1ud2lzZQ0KICAyLg0KSXRzIG1pZ2h0IGJlIG9rIHRvIGNvcHkgdG8gMkQgQXJyYXkg Y29sdW1uLXdpc2UgYXMgaXQgaXMgc21hbGxlciAoZml0cyB3ZWxsIGluIENQVSBjYWNoZSBmb3Ig NCBvdXQgb2YgNSB0aW1lcykNCiAgMy4NCiBBbGwgdGhlIGlubmVyIGxvb3BzIGFyZSBzZXF1ZW50 aWFsIGFuZCBlYXNpZXIgZm9yIHByZWZldGNoIGFuZCBlYXNpZXIgZm9yIGNvbXBpbGVyIHRvIGFw cGx5IHZhY3Rvcml6YXRpb24gYW5kIG9wdGltaXphdGlvbnMNCg0KDQpJIGNhbiBwb3RlbnRpYWxs eSByZWR1Y2UgdGhlIGV4dHJhIGNvcGllcyBhbmQgdXNlIHRoZSBmYWxsYmFjayBwYXRoICBpZiB0 aGUgZnVuY3Rpb24gaXMgaW52b2tlZCB3aXRoIExWIGFuZCBMSCBsYXJnZSBlbm91Z2ggdGhhdCB0 aGUgZXh0cmEgY29waWVzIGFyZSBub3QgYmVuZWZpY2lhbCB3aXRoIGEgY29uZGl0aW9uIGNoZWNr DQoNCk92ZXJhbGwgdGhpcyBoYXMgc2hvd24gdXMgYSBsb3Qgb2YgaW1wcm92ZW1lbnQNClBsZWFz ZSBsZXQgdXMga25vdyBpZiBJIGNhbiBwcm92aWRlIGFueSBtb3JlIGRldGFpbHMuIFRoYW5rcyBm b3IgcmV2aWVpbmcgb3VyIGNvZGUhDQoNClJlZ2FyZHMNCkNoaXRyYQ0KDQpTaWduZWQtb2ZmLWJ5 OiBDaGl0cmFEZXlTYXJrYXIgPGNoZGV5c2FyQG1pY3Jvc29mdC5jb20+DQotLS0NCiBsaWJhdmNv ZGVjL2pwZWcyMDAwZHd0LmMgfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KIDEgZmls ZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkd3QuYyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkd3QuYw0K aW5kZXggNDVkNzg5Nzg5My4uNGRlOTVhM2JlYSAxMDA2NDQNCi0tLSBhL2xpYmF2Y29kZWMvanBl ZzIwMDBkd3QuYw0KKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5jDQpAQCAtNDA5LDE0ICs0 MDksMTQgQEAgc3RhdGljIHZvaWQgZHd0X2RlY29kZTk3X2Zsb2F0KERXVENvbnRleHQgKnMsIGZs b2F0ICp0KQ0KICAgICAvKiBwb3NpdGlvbiBhdCBpbmRleCBPIG9mIGxpbmUgcmFuZ2UgWzAtNSx3 KzVdIGNmLiBleHRlbmQgZnVuY3Rpb24gKi8NCiAgICAgbGluZSArPSA1Ow0KDQotICAgIC8qIEZp bmQgdGhlIGxhcmdlc3QgbHYgYW5kIGx2IHRvIGFsbG9jYXRlIGEgMkQgQXJyYXkqLw0KLSAgICBp bnQgbWF4X2RpbSA9IDA7DQorICAgIC8qIEZpbmQgdGhlIGxhcmdlc3QgbHYgYW5kIGxoIHRvIGFs bG9jYXRlIGEgMkQgQXJyYXkqLw0KKyAgICBpbnQgbWF4X2RpbV9sdiA9IDAgLCBtYXhfZGltX2xo ID0gMDsNCiAgICAgZm9yIChsZXYgPSAwOyBsZXYgPCBzLT5uZGVjbGV2ZWxzOyBsZXYrKykgew0K LSAgICAgICAgaWYgKHMtPmxpbmVsZW5bbGV2XVswXSAgPiBtYXhfZGltKSBtYXhfZGltID0gcy0+ bGluZWxlbltsZXZdWzBdOw0KLSAgICAgICAgaWYgKHMtPmxpbmVsZW5bbGV2XVsxXSA+IG1heF9k aW0pIG1heF9kaW0gPSBzLT5saW5lbGVuW2xldl1bMV07DQotICAgIH0NCi0gICAgZmxvYXQgKmFy cmF5MkRCbG9jayA9IGF2X21hbGxvYyhtYXhfZGltICogbWF4X2RpbSAqIHNpemVvZihmbG9hdCkp Ow0KLSAgICBpbnQgdXNlRmFsbGJhY2sgPSAhYXJyYXkyREJsb2NrOw0KKyAgICAgICAgbWF4X2Rp bV9saCA9IEZGTUFYKG1heF9kaW1fbGgsIHMtPmxpbmVsZW5bbGV2XVswXSk7DQorICAgICAgICBt YXhfZGltX2x2ID0gRkZNQVgobWF4X2RpbV9sdiwgcy0+bGluZWxlbltsZXZdWzFdKTsNCisgICAg fQ0KKyAgICBmbG9hdCAqYXJyYXlfMmRfYmxvY2sgPSBhdl9tYWxsb2MobWF4X2RpbV9sdiAqIG1h eF9kaW1fbGggKiBzaXplb2YoZmxvYXQpKTsNCisgICAgaW50IHVzZUZhbGxiYWNrID0gIWFycmF5 XzJkX2Jsb2NrOw0KDQogICAgIGZvciAobGV2ID0gMDsgbGV2IDwgcy0+bmRlY2xldmVsczsgbGV2 KyspIHsNCiAgICAgICAgIGludCBsaCA9IHMtPmxpbmVsZW5bbGV2XVswXSwNCkBAIC00NjYsMzAg KzQ2NiwzMCBAQCBzdGF0aWMgdm9pZCBkd3RfZGVjb2RlOTdfZmxvYXQoRFdUQ29udGV4dCAqcywg ZmxvYXQgKnQpDQogICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICBmb3IgKGludCBscCA9IDA7 IGxwIDwgbHY7IGxwKyspDQogICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGg7 IGorKykNCi0gICAgICAgICAgICAgICAgICAgIGFycmF5MkRCbG9ja1tqICogbHYgKyBscF0gPSBk YXRhW3cgKiBscCArIGpdOw0KKyAgICAgICAgICAgICAgICAgICAgYXJyYXlfMmRfYmxvY2tbaiAq IGx2ICsgbHBdID0gZGF0YVt3ICogbHAgKyBqXTsNCg0KICAgICAgICAgICAgICAgICBsID0gbGlu ZSArIG12Ow0KICAgICAgICAgICAgICAgICBmb3IgKGxwID0gMDsgbHAgPCBsaDsgbHArKykgew0K ICAgICAgICAgICAgICAgICAgICAgaW50IGksIGogPSAwOw0KICAgICAgICAgICAgICAgICAgICAg Zm9yIChpID0gbXY7IGkgPCBsdjsgaSArPSAyLCBqKyspDQotICAgICAgICAgICAgICAgICAgICAg ICAgbFtpXSA9IGFycmF5MkRCbG9ja1tscCAqIGx2ICsgal07DQorICAgICAgICAgICAgICAgICAg ICAgICAgbFtpXSA9IGFycmF5XzJkX2Jsb2NrW2xwICogbHYgKyBqXTsNCiAgICAgICAgICAgICAg ICAgICAgIGZvciAoaSA9IDEgLSBtdjsgaSA8IGx2OyBpICs9IDIsIGorKykNCi0gICAgICAgICAg ICAgICAgICAgICAgICBsW2ldID0gYXJyYXkyREJsb2NrW2xwICogbHYgKyBqXTsNCisgICAgICAg ICAgICAgICAgICAgICAgICBsW2ldID0gYXJyYXlfMmRfYmxvY2tbbHAgKiBsdiArIGpdOw0KDQog ICAgICAgICAgICAgICAgICAgICBzcl8xZDk3X2Zsb2F0KGxpbmUsIG12LCBtdiArIGx2KTsNCg0K ICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGx2OyBpKyspDQotICAgICAgICAg ICAgICAgICAgICAgICAgYXJyYXkyREJsb2NrW2xwICogbHYgKyBpXSA9IGxbaV07DQorICAgICAg ICAgICAgICAgICAgICAgICAgYXJyYXlfMmRfYmxvY2tbbHAgKiBsdiArIGldID0gbFtpXTsNCiAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgZm9yIChpbnQgbHAgPSAwOyBscCA8IGx2 OyBscCsrKQ0KICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxoOyBqKyspDQot ICAgICAgICAgICAgICAgICAgICBkYXRhW3cgKiBscCArIGpdID0gYXJyYXkyREJsb2NrW2ogKiBs diArIGxwXTsNCisgICAgICAgICAgICAgICAgICAgIGRhdGFbdyAqIGxwICsgal0gPSBhcnJheV8y ZF9ibG9ja1tqICogbHYgKyBscF07DQogICAgICAgICB9DQogICAgIH0NCg0KICAgICBpZiAoIXVz ZUZhbGxiYWNrKQ0KLSAgICAgICAgYXZfZnJlZShhcnJheTJEQmxvY2spOw0KKyAgICAgICAgYXZf ZnJlZShhcnJheV8yZF9ibG9jayk7DQogfQ0KDQogc3RhdGljIHZvaWQgc3JfMWQ5N19pbnQoaW50 MzJfdCAqcCwgaW50IGkwLCBpbnQgaTEpDQotLQ0KMi40OS4wLnZmcy4wLjMNCg0KDQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCg==