From patchwork Thu Dec 16 11:04:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 32654 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp291038iog; Thu, 16 Dec 2021 03:04:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJyqDbW8lcSTlvaVqBXlEAxHIhd/rNklzqVSnaM+0SA0oNYMD9IvwJIn04/dtLXI/1jj9kUB X-Received: by 2002:a17:906:ae48:: with SMTP id lf8mr14835373ejb.451.1639652697029; Thu, 16 Dec 2021 03:04:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639652697; cv=none; d=google.com; s=arc-20160816; b=tWTF6vi16rvxeUO2QHxXNYKNCm+ErmCU6IHQG1Jo97az20hGq4icsLKIwvuLnR65cN vGv+ttnn+XRH9IYQpBnqoPhcKv5EtR8Em4i56uZSsNsqyDUnaOSVl/9vyi+cPllge/no QOTOUGXsmBDBRpuHy6/IcYhWUlhrUdCKHj5xtf9BWbPwHAoSt8Uzs70JDZYngCq8PaKD 3mwaQwatB25VnIVzHNVkARfLsA9UCiQKE5/7jiSZ+7VbWIAckUP5W3sQ66PCm4R515VP GfDxDMfqVsMRZCvxycgRkxM1BjuD3cwlUZklnDeClb5BLSZqO3bn3SdrW+M2UJAx15Tw ksQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=AJ/tXDXJcyWM5bUWImZfPfP/OtO0Tg7xk3bkE7hb+Ho=; b=RolZwOoh8ep+isWEUA+idazRK9BWBIPP2EHq0mdN48tQbh7awLy2TZjucxpO4sIj+y kGuOLiGYRG+sOFW1VOgign452eNI+nKoZLnyxQ/dEBSNBL8ZkD3/feN3YDUyF6QDf8j2 Cc6p7Gg09qykm4ZHDIcxqr+1/y+c/sktKD+XsgsGh9bHm/5BUqdSVX4CnwoB4G8k2uPO vexh0+q1g9FPpZ7yk/WGxM9wU9lp8ngx93VuZi7SsgFoV9D0TFuvS+dl2pmAZcAxdy+v gHYep+FHwXJHr/TKr7EGYCOeyIylQbDpBVRc1xZg3WZGO5LxX3JaQeNu8m4G6W9RVq5P EICg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lxtU68FG; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id sc23si4781778ejc.36.2021.12.16.03.04.55; Thu, 16 Dec 2021 03:04:57 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=lxtU68FG; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9E88B6806F5; Thu, 16 Dec 2021 13:04:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9384E689F94 for ; Thu, 16 Dec 2021 13:04:45 +0200 (EET) Received: by mail-ed1-f50.google.com with SMTP id e3so86534256edu.4 for ; Thu, 16 Dec 2021 03:04:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=dJLjPcMIzPp5otc2W5X9yi/WUGL4CNU2Zw6MC1/RVU0=; b=lxtU68FGnRaMf8e2olTj96oFFlj5IgT+IJPrtxvs61FtqgMxssbhHZwRGFRVJI+8Oa KBDRZNPK+re4nMub9Gv0lIDoDghJGcCgLZAmaatrNGLwBuNbDm00/9C7sMrvduEDh17n 3288RaDc9BSmCQob5mgen8r36M9cugCfcmjRj1wuLtCVfoNYXW5TbhiWrhUjKlpY9UFq pT2IsOBld++bo6vtWgK6NwO812HIXv5T+YqLEmNHoX1ZTB+vQ2EQ6PL75uIu8S+y9vTw 2dq6YQfMD5U8NBKfG0MUsnMq5CJ+h8usFTZDlt+D9VRbhBU2vWpDhFRaBso0+SYqqNiq Dp5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=dJLjPcMIzPp5otc2W5X9yi/WUGL4CNU2Zw6MC1/RVU0=; b=uphuPGsc7lw28pO1oem8MGGSvMr//SyHV1vjdlJd+5+ROF449pIc5DbEdDoOz1DUgP 4L3y4qgC66NZuaKSwiFoX1eM+4abXlqn06OumkbcTFsUyIHGl/QNCkYU1ANpKLxAt0bY VHlwInKFRhGIFkHWsIJ26Ldvp7ogwtbOMZfnqzPxz45Ud/kOqFLpqf2JVyJs27FbVK7e d7RbEGUipZFz2MchHpAWXfxl2a6+oyAzSUSr5qmjop0r4F6tNj7ebIurS61J/E8J13aq 6v4rbvwSGxqX5MmuLXYm61HZVE1bXnTHSZPWySga9yB14U1PxlCv8zxA4KEj11N4Dh/5 kqoA== X-Gm-Message-State: AOAM532hzgT2uoL03U0SN9+0y0bzqYrppScLJ8z1wewaHhZCG/6Q1Cvg Dy+Rm/PiZ6AiXcsl01TbICjcSE1hkmA= X-Received: by 2002:a05:6402:5246:: with SMTP id t6mr19510598edd.18.1639652685084; Thu, 16 Dec 2021 03:04:45 -0800 (PST) Received: from localhost.localdomain ([95.168.120.84]) by smtp.gmail.com with ESMTPSA id h2sm2229619edl.85.2021.12.16.03.04.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Dec 2021 03:04:44 -0800 (PST) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 Dec 2021 12:04:46 +0100 Message-Id: <20211216110447.922332-1-onemda@gmail.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/cdgraphics: unbreak rendering of vertical scrolling 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: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: VSEwFvI03Pim Signed-off-by: Paul B Mahol --- libavcodec/cdgraphics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/cdgraphics.c b/libavcodec/cdgraphics.c index 731d800666..c9e265fa53 100644 --- a/libavcodec/cdgraphics.c +++ b/libavcodec/cdgraphics.c @@ -218,7 +218,7 @@ static void cdg_scroll(CDGraphicsContext *cc, uint8_t *data, /// find the difference and save the offset for cdg_tile_block usage hinc = h_off - cc->hscroll; - vinc = v_off - cc->vscroll; + vinc = cc->vscroll - v_off; cc->hscroll = h_off; cc->vscroll = v_off; From patchwork Thu Dec 16 11:04:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 32655 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp291231iog; Thu, 16 Dec 2021 03:05:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJydZ+gyRE2mrMguQ1b5FUf3EHwxkrMVybxQL3zjQNSdGtfq3uY3UVbWxNzhOrq55uxFWQ7R X-Received: by 2002:a17:906:c156:: with SMTP id dp22mr15712268ejc.36.1639652708249; Thu, 16 Dec 2021 03:05:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639652708; cv=none; d=google.com; s=arc-20160816; b=l+YVEI/RlgiEhnHndZNoEjU10BceH4vPYxmxOCE1lDaRbaOvlpgkzr0slUJh4fpkgi u02K9tG65HwDno9rsjbBLHt4QI4lNt3gN2mdJ4iv3liJI9PbTMS8fCYktrPhQ/Gwh8dU I29vL6Opj0wVlLuVoWHa5oNThGOc7D06+WDDSOF589Eg6WnzEAkyhGyRgdOaLjJR/cxM WTbakcwEnTFy9rTv797Z59JXtFmFD17xD2vb/SWDYsUc7+KnPcfIRfzDlJaEIwaAG1g7 HmUWtRYn2VKPgqMteWvfL1pL22/OGOTevmgMOdZJlfUDK1pD9nyZcCcOn4msmvJDOjDW Sa6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=WOnt0x8ehC2jD6opWfrqrbMO8WRf6FqbijhKvmEiPhQ=; b=qvRtRjL6dT9rnryshYSNdunqIbyipftplethGNe2T/zLnOmqXRyr0q5IxiiSLeRT53 XKa3Mn06lzhzKsbdgF9oSLD350+zY8M2hAwr2bGDLp/waSh25vlcODTUx4WXjCwId9+e JtLVgVnJzZ++iPL2k7OPywXRjiM8KAtFvmPggUGr1ZpJ+GiCEEOnG3sQFFXRIcVA0Vrp FnpHq0LM1NLOscpfFbKAn1RyIIY3Ultk++XMB8EziEghZ5jYySKwjOdT+UfFAgFKNK7A 7NDIIGhs0ktfZzLpW9Oj9Wpbp6/3gGkBRpePf69TJrzSJit6kZqhZIUhM4XmU7NJutpj 6q/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VrxbpDGG; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ds20si4533142ejc.535.2021.12.16.03.05.06; Thu, 16 Dec 2021 03:05:08 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VrxbpDGG; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A6EC568AE95; Thu, 16 Dec 2021 13:04:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 913956806F5 for ; Thu, 16 Dec 2021 13:04:46 +0200 (EET) Received: by mail-ed1-f44.google.com with SMTP id y12so84602513eda.12 for ; Thu, 16 Dec 2021 03:04:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WjIygIOxADn7GaNepp3gp4y8aKpDDZmLzeNQgD9zgu0=; b=VrxbpDGGJsNpj/VJcd5QC1lH93ma4ljayuI/vu0zpPDDqffKi7M7nmuVrpsiIT71vj jvH4jYFuEClnxHAqU5/Fd3hKn7Y8WdONeoc8/t7XaHbQKPJuiYYUHIO5KYdxQGhs8Eaj HozDRxY55QWw2aQKL/1XpIbD9ksrINu2+ZSV/iGzyMSkKBgi8UveAgzVDV6Qhl0Z+bqB WIGTzCoNuQWh6AQIQQF48+E5UFjlU1jNDXgj+zZTdo6FDLxdhXoBxDeEwBZKWt6ksM73 9FTmUBndJWfC2YmStYJrw7mgPTGrr/wVGRFXnRDNxGGioJTE8Tb1tf4pJM7cNkNGR9HL zwIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WjIygIOxADn7GaNepp3gp4y8aKpDDZmLzeNQgD9zgu0=; b=mx1QRjWUZ3cDdvso0NIWsXY+AQ6qRsqQrqlRhAPNBYyZomThGU8xUWzIf6w4v+okHy DSnK0x7keVsfv8iwphCzTPhfhH8Jm488FGW4m4z3HbU++gBGi3WwfypmkhwKgk2bnQ0s 2heVOF454VZVaI+/iMpKQX/pWmMjHvipKmRGLbjs98IHwG53MzJPWKWglcPjMAYRS0yc 8b1V+bcUXhsMkHYTbUoNdZEscmxjZq1Ctks2TCLCuCgkhpejm42d+O1BxozvZXaSbxSi 4EzoD5mFVhAox2dWljXiZcFdojSBCmsrzcfOg5aw3NuI6jInEYi2dUpJ/dqqn9IlQs/2 nENw== X-Gm-Message-State: AOAM530HQH8XbJOL5YlMYyPLWNec7NJ8n1OhMTWrALbEuIMQb3QiI9Tl yqeH7SWUkbu13u2eBnqIM95YehJdB3I= X-Received: by 2002:a05:6402:185:: with SMTP id r5mr19559620edv.259.1639652685919; Thu, 16 Dec 2021 03:04:45 -0800 (PST) Received: from localhost.localdomain ([95.168.120.84]) by smtp.gmail.com with ESMTPSA id h2sm2229619edl.85.2021.12.16.03.04.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Dec 2021 03:04:45 -0800 (PST) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 Dec 2021 12:04:47 +0100 Message-Id: <20211216110447.922332-2-onemda@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211216110447.922332-1-onemda@gmail.com> References: <20211216110447.922332-1-onemda@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/cdgraphics: fix transparency handling 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: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 844fba7NbinT Signed-off-by: Paul B Mahol --- libavcodec/cdgraphics.c | 13 +- tests/ref/fate/cdgraphics | 398 +++++++++++++++++++------------------- 2 files changed, 206 insertions(+), 205 deletions(-) diff --git a/libavcodec/cdgraphics.c b/libavcodec/cdgraphics.c index c9e265fa53..06f8392094 100644 --- a/libavcodec/cdgraphics.c +++ b/libavcodec/cdgraphics.c @@ -68,7 +68,7 @@ typedef struct CDGraphicsContext { AVFrame *frame; int hscroll; int vscroll; - int transparency; + uint8_t alpha[CDG_PALETTE_SIZE]; int cleared; } CDGraphicsContext; @@ -79,7 +79,9 @@ static av_cold int cdg_decode_init(AVCodecContext *avctx) cc->frame = av_frame_alloc(); if (!cc->frame) return AVERROR(ENOMEM); - cc->transparency = -1; + + for (int i = 0; i < CDG_PALETTE_SIZE; i++) + cc->alpha[i] = 0xFFU; avctx->pix_fmt = AV_PIX_FMT_PAL8; return ff_set_dimensions(avctx, CDG_FULL_WIDTH, CDG_FULL_HEIGHT); @@ -120,9 +122,7 @@ static void cdg_load_palette(CDGraphicsContext *cc, uint8_t *data, int low) r = ((color >> 8) & 0x000F) * 17; g = ((color >> 4) & 0x000F) * 17; b = ((color ) & 0x000F) * 17; - palette[i + array_offset] = 0xFFU << 24 | r << 16 | g << 8 | b; - if (cc->transparency >= 0) - palette[cc->transparency] &= 0xFFFFFF; + palette[i + array_offset] = cc->alpha[i + array_offset] << 24 | r << 16 | g << 8 | b; } cc->frame->palette_has_changed = 1; } @@ -346,7 +346,8 @@ static int cdg_decode_frame(AVCodecContext *avctx, return ret; break; case CDG_INST_TRANSPARENT_COL: - cc->transparency = cdg_data[0] & 0xF; + for (int i = 0; i < CDG_PALETTE_SIZE; i++) + cc->alpha[i] = 255 - ((cdg_data[i] & 0x3f) << 2); break; default: break; diff --git a/tests/ref/fate/cdgraphics b/tests/ref/fate/cdgraphics index f079bd4df0..9ffe129397 100644 --- a/tests/ref/fate/cdgraphics +++ b/tests/ref/fate/cdgraphics @@ -16,202 +16,202 @@ 0, 10, 10, 1, 259200, 0x6779f55d 0, 11, 11, 1, 259200, 0x6779f55d 0, 12, 12, 1, 259200, 0x6779f55d -0, 13, 13, 1, 259200, 0xf33cc0c4 -0, 14, 14, 1, 259200, 0xf33cc0c4 -0, 15, 15, 1, 259200, 0xf33cc0c4 -0, 16, 16, 1, 259200, 0x098280da -0, 17, 17, 1, 259200, 0x098280da -0, 18, 18, 1, 259200, 0x098280da -0, 19, 19, 1, 259200, 0x098280da -0, 20, 20, 1, 259200, 0x098280da -0, 21, 21, 1, 259200, 0x098280da -0, 22, 22, 1, 259200, 0x098280da -0, 23, 23, 1, 259200, 0x098280da -0, 24, 24, 1, 259200, 0x098280da -0, 25, 25, 1, 259200, 0x098280da -0, 26, 26, 1, 259200, 0x098280da -0, 27, 27, 1, 259200, 0x098280da -0, 28, 28, 1, 259200, 0x098280da -0, 29, 29, 1, 259200, 0x098280da -0, 30, 30, 1, 259200, 0x098280da -0, 31, 31, 1, 259200, 0x098280da -0, 32, 32, 1, 259200, 0xf33cc0c4 -0, 33, 33, 1, 259200, 0xa389d0b4 -0, 34, 34, 1, 259200, 0xecf1f094 -0, 35, 35, 1, 259200, 0xe7171c77 -0, 37, 37, 1, 259200, 0xf9d72c67 -0, 38, 38, 1, 259200, 0x7932583b -0, 40, 40, 1, 259200, 0x1c618c07 -0, 41, 41, 1, 259200, 0x7e88c1d1 -0, 43, 43, 1, 259200, 0x2c5df59d -0, 44, 44, 1, 259200, 0xa78f435e -0, 46, 46, 1, 259200, 0xb96e5948 -0, 47, 47, 1, 259200, 0x85c1653c -0, 49, 49, 1, 259200, 0xefdc930e -0, 50, 50, 1, 259200, 0xea24bee2 -0, 52, 52, 1, 259200, 0x8feef8a8 -0, 53, 53, 1, 259200, 0x8a7b02ad -0, 55, 55, 1, 259200, 0xe41b2689 -0, 56, 56, 1, 259200, 0x007d307f -0, 58, 58, 1, 259200, 0xb0c9802f -0, 59, 59, 1, 259200, 0xb50c941b -0, 61, 61, 1, 259200, 0xdf7dc7e7 -0, 62, 62, 1, 259200, 0xbaac01bc -0, 64, 64, 1, 259200, 0x1ef70db0 -0, 65, 65, 1, 259200, 0xeeab4b72 -0, 67, 67, 1, 259200, 0x0eaf7d40 -0, 68, 68, 1, 259200, 0xc7bec4f8 -0, 70, 70, 1, 259200, 0xa506caf2 -0, 71, 71, 1, 259200, 0x268808c3 -0, 73, 73, 1, 259200, 0xebd90ebd -0, 74, 74, 1, 259200, 0x8d792aa1 -0, 76, 76, 1, 259200, 0x960d3a91 -0, 77, 77, 1, 259200, 0xf0395e6d -0, 79, 79, 1, 259200, 0x3d0e8645 -0, 80, 80, 1, 259200, 0x88bc9a31 -0, 82, 82, 1, 259200, 0xda37c209 -0, 83, 83, 1, 259200, 0xafa6c803 -0, 85, 85, 1, 259200, 0xdc58f5d5 -0, 86, 86, 1, 259200, 0x1a5ffbcf -0, 88, 88, 1, 259200, 0xc8872bae -0, 89, 89, 1, 259200, 0xc5472dac -0, 91, 91, 1, 259200, 0xd54e5f7a -0, 92, 92, 1, 259200, 0xf4576574 -0, 94, 94, 1, 259200, 0xdefaad2c -0, 95, 95, 1, 259200, 0xca44c316 -0, 97, 97, 1, 259200, 0x8102d504 -0, 98, 98, 1, 259200, 0xe0c8fcdc -0, 100, 100, 1, 259200, 0x53c100e7 -0, 101, 101, 1, 259200, 0x8de628bf -0, 103, 103, 1, 259200, 0x86f92eb9 -0, 104, 104, 1, 259200, 0x13c66285 -0, 106, 106, 1, 259200, 0xe5766c7b -0, 107, 107, 1, 259200, 0x3ddb9453 -0, 109, 109, 1, 259200, 0x39559a4d -0, 110, 110, 1, 259200, 0x507da443 -0, 112, 112, 1, 259200, 0x3b8dedf9 -0, 113, 113, 1, 259200, 0x55c9fde9 -0, 115, 115, 1, 259200, 0x7c43ffe7 -0, 116, 116, 1, 259200, 0xdf2c31c4 -0, 118, 118, 1, 259200, 0x144735c0 -0, 119, 119, 1, 259200, 0x9a716b8a -0, 121, 121, 1, 259200, 0x5ab08174 -0, 122, 122, 1, 259200, 0x06dcb540 -0, 124, 124, 1, 259200, 0x0d09b93c -0, 125, 125, 1, 259200, 0x5abce70e -0, 127, 127, 1, 259200, 0x38a4ed08 -0, 128, 128, 1, 259200, 0x427b30d3 -0, 130, 130, 1, 259200, 0x7f8d34cf -0, 131, 131, 1, 259200, 0xf5613cc7 -0, 133, 133, 1, 259200, 0x5086748f -0, 134, 134, 1, 259200, 0x7da8788b -0, 136, 136, 1, 259200, 0x79c8946f -0, 137, 137, 1, 259200, 0x65d9bc47 -0, 139, 139, 1, 259200, 0x3f5a0012 -0, 140, 140, 1, 259200, 0x4d9713fe -0, 142, 142, 1, 259200, 0x917839d8 -0, 143, 143, 1, 259200, 0x92624dc4 -0, 145, 145, 1, 259200, 0x465c739e -0, 146, 146, 1, 259200, 0x21137f92 -0, 148, 148, 1, 259200, 0xd677a76a -0, 149, 149, 1, 259200, 0xe1efb35e -0, 151, 151, 1, 259200, 0xd2d6d73a -0, 152, 152, 1, 259200, 0x06a8f31e -0, 154, 154, 1, 259200, 0x8aaf1d03 -0, 155, 155, 1, 259200, 0x9e0a42dd -0, 157, 157, 1, 259200, 0x1f7268b7 -0, 158, 158, 1, 259200, 0x1a3c6cb3 -0, 160, 160, 1, 259200, 0x5607aa75 -0, 161, 161, 1, 259200, 0xa19ebc63 -0, 163, 163, 1, 259200, 0x9dbaf42b -0, 164, 164, 1, 259200, 0x2d06fe21 -0, 166, 166, 1, 259200, 0x960e2c02 -0, 167, 167, 1, 259200, 0x04f935f8 -0, 169, 169, 1, 259200, 0x488143ea -0, 170, 170, 1, 259200, 0xcb515bd2 -0, 172, 172, 1, 259200, 0xa27c85a8 -0, 173, 173, 1, 259200, 0x3bb38da0 -0, 175, 175, 1, 259200, 0x39d9b17c -0, 176, 176, 1, 259200, 0x3fbcbd70 -0, 178, 178, 1, 259200, 0xbc19e548 -0, 179, 179, 1, 259200, 0x29400735 -0, 181, 181, 1, 259200, 0x21612d0f -0, 182, 182, 1, 259200, 0x66943705 -0, 184, 184, 1, 259200, 0x9efa6ccf -0, 185, 185, 1, 259200, 0x3b4180bb -0, 187, 187, 1, 259200, 0x9a8aa695 -0, 188, 188, 1, 259200, 0x6529b883 -0, 190, 190, 1, 259200, 0x6e1aec4f -0, 191, 191, 1, 259200, 0x3ebc2426 -0, 193, 193, 1, 259200, 0xff6e3a10 -0, 194, 194, 1, 259200, 0x70f05dec -0, 196, 196, 1, 259200, 0x853777d2 -0, 197, 197, 1, 259200, 0x05ea97b2 -0, 199, 199, 1, 259200, 0x03f3a7a2 -0, 200, 200, 1, 259200, 0xf4f7cb7e -0, 202, 202, 1, 259200, 0xd411db6e -0, 203, 203, 1, 259200, 0xfa3afb4e -0, 205, 205, 1, 259200, 0x0a451b3d -0, 206, 206, 1, 259200, 0x94624117 -0, 208, 208, 1, 259200, 0x00996ceb -0, 209, 209, 1, 259200, 0x8c898ccb -0, 211, 211, 1, 259200, 0x5d2496c1 -0, 212, 212, 1, 259200, 0x4f5fce89 -0, 214, 214, 1, 259200, 0xf6a0e671 -0, 215, 215, 1, 259200, 0xcf6f184e -0, 217, 217, 1, 259200, 0x66e2283e -0, 218, 218, 1, 259200, 0x7cd25016 -0, 220, 220, 1, 259200, 0xc2e05a0c -0, 221, 221, 1, 259200, 0x33b767fe -0, 223, 223, 1, 259200, 0x6f5583e2 -0, 224, 224, 1, 259200, 0x19f3a9bc -0, 226, 226, 1, 259200, 0xb3f3b5b0 -0, 227, 227, 1, 259200, 0x6417d590 -0, 229, 229, 1, 259200, 0x7130e580 -0, 230, 230, 1, 259200, 0x4558096b -0, 232, 232, 1, 259200, 0x920c3143 -0, 233, 233, 1, 259200, 0xb7e75123 -0, 235, 235, 1, 259200, 0x38e46113 -0, 236, 236, 1, 259200, 0x96ba90e3 -0, 238, 238, 1, 259200, 0xc65faac9 -0, 239, 239, 1, 259200, 0x7260caa9 -0, 241, 241, 1, 259200, 0x4983cca7 -0, 242, 242, 1, 259200, 0xc04ddc97 -0, 244, 244, 1, 259200, 0x52de0082 -0, 245, 245, 1, 259200, 0xb1cb1c66 -0, 247, 247, 1, 259200, 0x273b364c -0, 248, 248, 1, 259200, 0xd26a661c -0, 250, 250, 1, 259200, 0x9a9599e8 -0, 251, 251, 1, 259200, 0x2e16b5cc -0, 253, 253, 1, 259200, 0x2d4ec9b8 -0, 254, 254, 1, 259200, 0x32d8e998 -0, 256, 256, 1, 259200, 0x5182f988 -0, 257, 257, 1, 259200, 0x48d7157b -0, 259, 259, 1, 259200, 0xa50f335d -0, 260, 260, 1, 259200, 0x3f274f41 -0, 262, 262, 1, 259200, 0xe9776b25 -0, 263, 263, 1, 259200, 0x76728709 -0, 265, 265, 1, 259200, 0x1960a0ef -0, 266, 266, 1, 259200, 0x3d3acac5 -0, 268, 268, 1, 259200, 0x1c6aeaa5 -0, 269, 269, 1, 259200, 0x8bc0148a -0, 271, 271, 1, 259200, 0xa2a72a74 -0, 272, 272, 1, 259200, 0x77db4658 -0, 274, 274, 1, 259200, 0x63705a44 -0, 275, 275, 1, 259200, 0x30db8c12 -0, 277, 277, 1, 259200, 0x32f5a3fa -0, 278, 278, 1, 259200, 0x0107d7c6 -0, 280, 280, 1, 259200, 0xe14707a5 -0, 281, 281, 1, 259200, 0xed7e3379 -0, 283, 283, 1, 259200, 0x55bc416b -0, 284, 284, 1, 259200, 0x1cf1614b -0, 286, 286, 1, 259200, 0x2d507b31 -0, 287, 287, 1, 259200, 0x3fbbaefd -0, 289, 289, 1, 259200, 0x8608d6d5 -0, 290, 290, 1, 259200, 0x169d00ba -0, 292, 292, 1, 259200, 0x7d0b209a -0, 293, 293, 1, 259200, 0xd5943c7e -0, 295, 295, 1, 259200, 0x94e25664 -0, 296, 296, 1, 259200, 0x97447e3c -0, 298, 298, 1, 259200, 0x68bc8436 -0, 299, 299, 1, 259200, 0xb7ee9426 +0, 13, 13, 1, 259200, 0x6779f55d +0, 14, 14, 1, 259200, 0x6779f55d +0, 15, 15, 1, 259200, 0x6779f55d +0, 16, 16, 1, 259200, 0x29aeb27e +0, 17, 17, 1, 259200, 0x29aeb27e +0, 18, 18, 1, 259200, 0x29aeb27e +0, 19, 19, 1, 259200, 0x29aeb27e +0, 20, 20, 1, 259200, 0x29aeb27e +0, 21, 21, 1, 259200, 0x29aeb27e +0, 22, 22, 1, 259200, 0x29aeb27e +0, 23, 23, 1, 259200, 0x29aeb27e +0, 24, 24, 1, 259200, 0x29aeb27e +0, 25, 25, 1, 259200, 0x29aeb27e +0, 26, 26, 1, 259200, 0x29aeb27e +0, 27, 27, 1, 259200, 0x29aeb27e +0, 28, 28, 1, 259200, 0x29aeb27e +0, 29, 29, 1, 259200, 0x29aeb27e +0, 30, 30, 1, 259200, 0x29aeb27e +0, 31, 31, 1, 259200, 0x29aeb27e +0, 32, 32, 1, 259200, 0x6779f55d +0, 33, 33, 1, 259200, 0xcc9cfd55 +0, 34, 34, 1, 259200, 0x0b670d54 +0, 35, 35, 1, 259200, 0x2c45233e +0, 37, 37, 1, 259200, 0x42a92b36 +0, 38, 38, 1, 259200, 0xa61a4120 +0, 40, 40, 1, 259200, 0x22065b06 +0, 41, 41, 1, 259200, 0x7f0775eb +0, 43, 43, 1, 259200, 0x00468fd1 +0, 44, 44, 1, 259200, 0xfd4bb6aa +0, 46, 46, 1, 259200, 0x182fc19f +0, 47, 47, 1, 259200, 0x8814c799 +0, 49, 49, 1, 259200, 0xe28dde82 +0, 50, 50, 1, 259200, 0x038bf46c +0, 52, 52, 1, 259200, 0x8597115e +0, 53, 53, 1, 259200, 0x8b001659 +0, 55, 55, 1, 259200, 0xd5192847 +0, 56, 56, 1, 259200, 0xeb652d42 +0, 58, 58, 1, 259200, 0x84ae551a +0, 59, 59, 1, 259200, 0x171c5f10 +0, 61, 61, 1, 259200, 0xd69a78f6 +0, 62, 62, 1, 259200, 0xf36095d9 +0, 64, 64, 1, 259200, 0x2f509bd3 +0, 65, 65, 1, 259200, 0x49a1bab4 +0, 67, 67, 1, 259200, 0x8248d39b +0, 68, 68, 1, 259200, 0x9969f777 +0, 70, 70, 1, 259200, 0x0cf6fa74 +0, 71, 71, 1, 259200, 0x801f1964 +0, 73, 73, 1, 259200, 0xe7a91c61 +0, 74, 74, 1, 259200, 0xcf402a53 +0, 76, 76, 1, 259200, 0xe08e324b +0, 77, 77, 1, 259200, 0x2afc4439 +0, 79, 79, 1, 259200, 0x71e95825 +0, 80, 80, 1, 259200, 0xa805621b +0, 82, 82, 1, 259200, 0x71547607 +0, 83, 83, 1, 259200, 0x60ed7904 +0, 85, 85, 1, 259200, 0x1cb98fed +0, 86, 86, 1, 259200, 0xc08f92ea +0, 88, 88, 1, 259200, 0x3ebeaad2 +0, 89, 89, 1, 259200, 0xbeb7abd1 +0, 91, 91, 1, 259200, 0xef67c4b8 +0, 92, 92, 1, 259200, 0x03dcc7b5 +0, 94, 94, 1, 259200, 0xb3b8eb91 +0, 95, 95, 1, 259200, 0x3b4af686 +0, 97, 97, 1, 259200, 0xa546ff7d +0, 98, 98, 1, 259200, 0xf5b31378 +0, 100, 100, 1, 259200, 0x32781576 +0, 101, 101, 1, 259200, 0xf00d2962 +0, 103, 103, 1, 259200, 0xf1782c5f +0, 104, 104, 1, 259200, 0x62334645 +0, 106, 106, 1, 259200, 0x53354b40 +0, 107, 107, 1, 259200, 0x9fea5f2c +0, 109, 109, 1, 259200, 0x22906229 +0, 110, 110, 1, 259200, 0xb63f6724 +0, 112, 112, 1, 259200, 0x68018bff +0, 113, 113, 1, 259200, 0x822393f7 +0, 115, 115, 1, 259200, 0x170894f6 +0, 116, 116, 1, 259200, 0x7129addd +0, 118, 118, 1, 259200, 0x8ef0afdb +0, 119, 119, 1, 259200, 0x7dfacac0 +0, 121, 121, 1, 259200, 0x6fffd5b5 +0, 122, 122, 1, 259200, 0x7062ef9b +0, 124, 124, 1, 259200, 0xf6b2f199 +0, 125, 125, 1, 259200, 0x43060891 +0, 127, 127, 1, 259200, 0xb6d40b8e +0, 128, 128, 1, 259200, 0x73182d6c +0, 130, 130, 1, 259200, 0x94e22f6a +0, 131, 131, 1, 259200, 0xd64e3366 +0, 133, 133, 1, 259200, 0x31764f4a +0, 134, 134, 1, 259200, 0x4b485148 +0, 136, 136, 1, 259200, 0x601f5f3a +0, 137, 137, 1, 259200, 0xf6aa7326 +0, 139, 139, 1, 259200, 0x9ac39504 +0, 140, 140, 1, 259200, 0x322e9efa +0, 142, 142, 1, 259200, 0x7308b1e7 +0, 143, 143, 1, 259200, 0x83c2bbdd +0, 145, 145, 1, 259200, 0xfca1ceca +0, 146, 146, 1, 259200, 0x73c7d4c4 +0, 148, 148, 1, 259200, 0xef03e8b0 +0, 149, 149, 1, 259200, 0xfe82eeaa +0, 151, 151, 1, 259200, 0x944600a7 +0, 152, 152, 1, 259200, 0x44f60e99 +0, 154, 154, 1, 259200, 0xa9242384 +0, 155, 155, 1, 259200, 0xd1bb3671 +0, 157, 157, 1, 259200, 0x3160495e +0, 158, 158, 1, 259200, 0x32064b5c +0, 160, 160, 1, 259200, 0x825b6a3d +0, 161, 161, 1, 259200, 0xb6cb7334 +0, 163, 163, 1, 259200, 0xe2678f18 +0, 164, 164, 1, 259200, 0x32379413 +0, 166, 166, 1, 259200, 0x0c2eaafc +0, 167, 167, 1, 259200, 0xcbb7aff7 +0, 169, 169, 1, 259200, 0x78e6b6f0 +0, 170, 170, 1, 259200, 0xcdd4c2e4 +0, 172, 172, 1, 259200, 0xdb94d7cf +0, 173, 173, 1, 259200, 0x2eb9dbcb +0, 175, 175, 1, 259200, 0x4b15edb9 +0, 176, 176, 1, 259200, 0xd7c2f3b3 +0, 178, 178, 1, 259200, 0xb68207ae +0, 179, 179, 1, 259200, 0x88be189d +0, 181, 181, 1, 259200, 0xa3b82b8a +0, 182, 182, 1, 259200, 0xce743085 +0, 184, 184, 1, 259200, 0x969c4b6a +0, 185, 185, 1, 259200, 0xf4fd5560 +0, 187, 187, 1, 259200, 0x439a684d +0, 188, 188, 1, 259200, 0x378e7144 +0, 190, 190, 1, 259200, 0xe64c8b2a +0, 191, 191, 1, 259200, 0xfc2ba70e +0, 193, 193, 1, 259200, 0xee71b203 +0, 194, 194, 1, 259200, 0xc47bc3f1 +0, 196, 196, 1, 259200, 0xe3c5d0e4 +0, 197, 197, 1, 259200, 0x3e2ee0d4 +0, 199, 199, 1, 259200, 0xca2fe8cc +0, 200, 200, 1, 259200, 0x6009faba +0, 202, 202, 1, 259200, 0x5c9a02c1 +0, 203, 203, 1, 259200, 0x09be12b1 +0, 205, 205, 1, 259200, 0x2bc422a1 +0, 206, 206, 1, 259200, 0x8fbc358e +0, 208, 208, 1, 259200, 0xe99b4b78 +0, 209, 209, 1, 259200, 0x49aa5b68 +0, 211, 211, 1, 259200, 0x3a1a6063 +0, 212, 212, 1, 259200, 0xe0be7c47 +0, 214, 214, 1, 259200, 0xc7ec883b +0, 215, 215, 1, 259200, 0xdd00a122 +0, 217, 217, 1, 259200, 0x35c5a91a +0, 218, 218, 1, 259200, 0x6147bd06 +0, 220, 220, 1, 259200, 0x0c78c201 +0, 221, 221, 1, 259200, 0xd038c8fa +0, 223, 223, 1, 259200, 0x04ddd6ec +0, 224, 224, 1, 259200, 0x790ee9d9 +0, 226, 226, 1, 259200, 0xcfd1efd3 +0, 227, 227, 1, 259200, 0xc1ebffc3 +0, 229, 229, 1, 259200, 0x558307ca +0, 230, 230, 1, 259200, 0x5ce019b8 +0, 232, 232, 1, 259200, 0xa3c42da4 +0, 233, 233, 1, 259200, 0x50c13d94 +0, 235, 235, 1, 259200, 0x9e3c458c +0, 236, 236, 1, 259200, 0xf4335d74 +0, 238, 238, 1, 259200, 0x213b6a67 +0, 239, 239, 1, 259200, 0x913c7a57 +0, 241, 241, 1, 259200, 0x7e6e7b56 +0, 242, 242, 1, 259200, 0xc6d7834e +0, 244, 244, 1, 259200, 0x2d70953c +0, 245, 245, 1, 259200, 0xf3a6a32e +0, 247, 247, 1, 259200, 0x438cb021 +0, 248, 248, 1, 259200, 0x4037c809 +0, 250, 250, 1, 259200, 0xce92e1ef +0, 251, 251, 1, 259200, 0x2f21efe1 +0, 253, 253, 1, 259200, 0x3f02f9d7 +0, 254, 254, 1, 259200, 0x5bcf09d6 +0, 256, 256, 1, 259200, 0x782811ce +0, 257, 257, 1, 259200, 0x0aa11fc0 +0, 259, 259, 1, 259200, 0xd11d2eb1 +0, 260, 260, 1, 259200, 0xb4f03ca3 +0, 262, 262, 1, 259200, 0x20ee4a95 +0, 263, 263, 1, 259200, 0x7e2b5887 +0, 265, 265, 1, 259200, 0xe4c1657a +0, 266, 266, 1, 259200, 0x98e07a65 +0, 268, 268, 1, 259200, 0xa2808a55 +0, 269, 269, 1, 259200, 0x7c5d9f40 +0, 271, 271, 1, 259200, 0x99b6aa35 +0, 272, 272, 1, 259200, 0x9b17b827 +0, 274, 274, 1, 259200, 0x212ec21d +0, 275, 275, 1, 259200, 0x3090db04 +0, 277, 277, 1, 259200, 0x4523e6f8 +0, 278, 278, 1, 259200, 0x567900ed +0, 280, 280, 1, 259200, 0xeda518d5 +0, 281, 281, 1, 259200, 0x97932ebf +0, 283, 283, 1, 259200, 0xd70e35b8 +0, 284, 284, 1, 259200, 0x54b845a8 +0, 286, 286, 1, 259200, 0x720e529b +0, 287, 287, 1, 259200, 0x25986c81 +0, 289, 289, 1, 259200, 0xe941806d +0, 290, 290, 1, 259200, 0xd3b69558 +0, 292, 292, 1, 259200, 0x2104a548 +0, 293, 293, 1, 259200, 0xe408b33a +0, 295, 295, 1, 259200, 0x58ddc02d +0, 296, 296, 1, 259200, 0x7a98d419 +0, 298, 298, 1, 259200, 0xe82ed716 +0, 299, 299, 1, 259200, 0x1cdadf0e