From patchwork Wed Apr 4 23:00:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mattias Amnefelt X-Patchwork-Id: 8333 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp5408713jad; Wed, 4 Apr 2018 16:01:16 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+mtwLToIzyEqedefiNA71ZPKuk7Mia69h35UkVt+snQGSZ7iCkz7T/woCO7q0Mt1LFJS91 X-Received: by 10.223.182.16 with SMTP id f16mr15100712wre.23.1522882876282; Wed, 04 Apr 2018 16:01:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522882876; cv=none; d=google.com; s=arc-20160816; b=bSX84sGzdHszwAUp22LLU4rts9j0QfssHBD2DjvTw0B1JKkmBr8p57dcgf7mhAjl9j T8Z7YT2T0C77HMbvUXJHIFhlPr//+kNdH6T0kLil0CMIvwpIsIh9372hizXl4BVkIM49 YhwvdnQeu/guYEZMfovoguaHojAZ+UmlZb3uTAgtTtx+XQT7fIU4+jwNx0ob8tnTNgHP BLVi8J8HEyOpvfuvLJf6f0+KtMNp3Xn9GgFNY4RRHKyd6RFvhEXvH2Av4aaW6WHm7k0u m/1PgUq1NlJkh7MWsPnvIbVki7aBngMEm6Fm8q05+eyQ/EmcuGS7UoluNVThwJxEzipZ iitg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:delivered-to :arc-authentication-results; bh=aSDcjFIMmgo6tAnqLGDuA5d0WnTzUTTriQvwHRhyHs0=; b=rB2yoB4Rzowtd4wWrILtSH27VH8QXAUwk/S14XoWiGoz0m9RbKaDeUcPqvJrzwzg1G b7E4tAlP7JS9LyiRbTltc3CUO543xFMbz+XF41dPpKltwl8efMnDHbYhsz8Ug18sFB3x PpJfwWIuVrnUq+2xjDTMfF4+UgaHJuPD8iUDLGGoXmCfehSJ1C11/N4fenGf5vGOhA/3 O5TEkWtFOdro6c4Nj2bCcIc7FoM5nD16YrLJUhmHSgKJ8mwvxi/TJNe7QJOeJe4Y9R3k vyOLhfhSbCpzsqXmFiodCUgJsJgYineJ6G4w/FssmkxpSZW3ywX1NxONNljZ8UaZh2OT C0sA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b136si3103962wme.18.2018.04.04.16.01.15; Wed, 04 Apr 2018 16:01:16 -0700 (PDT) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9E4BD689CE5; Thu, 5 Apr 2018 02:00:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from moist.coloti.se (moist.coloti.se [159.253.24.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 264B7689C25 for ; Thu, 5 Apr 2018 02:00:46 +0300 (EEST) Received: from pluto.avm.se (c83-249-32-182.bredband.comhem.se [83.249.32.182]) by moist.coloti.se (Postfix) with ESMTPSA id C5414198005F for ; Thu, 5 Apr 2018 01:01:06 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by pluto.avm.se (Postfix) with ESMTP id E0269E007C for ; Thu, 5 Apr 2018 01:01:28 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at pluto.avm.se X-Spam-Flag: NO X-Spam-Score: -2.9 X-Spam-Level: X-Spam-Status: No, score=-2.9 tagged_above=-200 required=6.31 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9] autolearn=ham Received: from pluto.avm.se ([127.0.0.1]) by localhost (pluto.avm.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 3-3dlmNaNyk5 for ; Thu, 5 Apr 2018 01:01:11 +0200 (CEST) Received: from lapetus.cantemo.com (c-969671d5.018-180-73746f39.cust.bredbandsbolaget.se [213.113.150.150]) by pluto.avm.se (Postfix) with ESMTPSA id 32592E005E for ; Thu, 5 Apr 2018 01:01:11 +0200 (CEST) To: ffmpeg-devel@ffmpeg.org References: <1600c26d-13ac-8e95-7cda-aab5a79f29ca@avm.se> <09e5c799-4367-bf2e-237b-11b7fda05d38@avm.se> From: Mattias Amnefelt Message-ID: <3f64fb9c-237c-98bd-4f72-e986f86612e1@avm.se> Date: Thu, 5 Apr 2018 01:00:48 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <09e5c799-4367-bf2e-237b-11b7fda05d38@avm.se> Content-Language: sv Subject: Re: [FFmpeg-devel] [PATCH] libavformat/aac: Parse all ID3 tags present between ADTS frames X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" On 2018-04-04 09:22, Mattias Amnefelt wrote: > On 2018-04-04 03:42, James Almer wrote: >> On 4/3/2018 10:40 PM, Carl Eugen Hoyos wrote: >>> 2018-04-04 3:38 GMT+02:00, James Almer : >>>> On 4/3/2018 10:33 PM, Carl Eugen Hoyos wrote: >>>>> The "-f aac" looks like a bad idea to me. >>>>> It's also true for the tests above, but that's still not reason to >>>>> add more. >>>>> >>>>> Please avoid top-posting here, Carl Eugen >>>> At least in one of them it was added because the sample had too few >>>> frames and probing was detecting it with a score of 1, which seemed >>>> too >>>> fragile. >>> I believe that it is good to have a sample that is detected with >>> a small score as part of fate. >>> >>> Carl Eugen >> When i asked it was suggested to just force the demuxer. I have no >> opinion one way or another, so feel free to change it. > I have to admit I just copy-n-pasted the test above. I just > double-checked and all the id3 tag tests pass without -f aac now. I'm > not sure if anything has changed since the test was added or not. Do > you want a patch which removes it for all of them? > > Here's an updated version of the patch without -f aac /mattiasa From 1d5ab8e48502c570b562ef4fdb6cf674f1d91e93 Mon Sep 17 00:00:00 2001 From: Mattias Amnefelt Date: Mon, 2 Apr 2018 11:30:40 +0200 Subject: [PATCH] libavformat/aac: Parse all ID3 tags present between ADTS frames Some ADTS streams can have multiple ID3 tags between frames. This change parses all of them, rather than just the first one. Signed-off-by: Mattias Amnefelt --- libavformat/aacdec.c | 14 +- tests/fate/demux.mak | 3 +- tests/ref/fate/adts-id3v2-two-tags-demux | 475 +++++++++++++++++++++++++++++++ 3 files changed, 486 insertions(+), 6 deletions(-) create mode 100644 tests/ref/fate/adts-id3v2-two-tags-demux diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c index 5ec706bdc7..685458b911 100644 --- a/libavformat/aacdec.c +++ b/libavformat/aacdec.c @@ -154,11 +154,15 @@ static int adts_aac_read_packet(AVFormatContext *s, AVPacket *pkt) { int ret, fsize; - ret = av_get_packet(s->pb, pkt, FFMAX(ID3v2_HEADER_SIZE, ADTS_HEADER_SIZE)); - - if (ret >= ID3v2_HEADER_SIZE && ff_id3v2_match(pkt->data, ID3v2_DEFAULT_MAGIC)) { - if ((ret = handle_id3(s, pkt)) >= 0) - ret = av_get_packet(s->pb, pkt, ADTS_HEADER_SIZE); + // Parse all the ID3 headers between frames + while (1) { + ret = av_get_packet(s->pb, pkt, FFMAX(ID3v2_HEADER_SIZE, ADTS_HEADER_SIZE)); + if (ret >= ID3v2_HEADER_SIZE && ff_id3v2_match(pkt->data, ID3v2_DEFAULT_MAGIC)) { + if ((ret = handle_id3(s, pkt)) >= 0) { + continue; + } + } + break; } if (ret < 0) diff --git a/tests/fate/demux.mak b/tests/fate/demux.mak index 306904b9de..ef9e677821 100644 --- a/tests/fate/demux.mak +++ b/tests/fate/demux.mak @@ -1,10 +1,11 @@ FATE_SAMPLES_DEMUX-$(call DEMDEC, AVI, FRAPS) += fate-avio-direct fate-avio-direct: CMD = framecrc -avioflags direct -i $(TARGET_SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi -avioflags direct -FATE_SAMPLES_DEMUX-$(call DEMDEC, AAC, AAC) += fate-adts-demux fate-adts-id3v1-demux fate-adts-id3v2-demux +FATE_SAMPLES_DEMUX-$(call DEMDEC, AAC, AAC) += fate-adts-demux fate-adts-id3v1-demux fate-adts-id3v2-demux fate-adts-id3v2-two-tags-demux fate-adts-demux: CMD = crc -i $(TARGET_SAMPLES)/aac/ct_faac-adts.aac -c:a copy fate-adts-id3v1-demux: CMD = framecrc -f aac -i $(TARGET_SAMPLES)/aac/id3v1.aac -c:a copy fate-adts-id3v2-demux: CMD = framecrc -f aac -i $(TARGET_SAMPLES)/aac/id3v2.aac -c:a copy +fate-adts-id3v2-two-tags-demux: CMD = framecrc -i $(TARGET_SAMPLES)/aac/id3v2_two_tags.aac -c:a copy FATE_SAMPLES_DEMUX-$(CONFIG_AEA_DEMUXER) += fate-aea-demux fate-aea-demux: CMD = crc -i $(TARGET_SAMPLES)/aea/chirp.aea -c:a copy diff --git a/tests/ref/fate/adts-id3v2-two-tags-demux b/tests/ref/fate/adts-id3v2-two-tags-demux new file mode 100644 index 0000000000..4fffd2e767 --- /dev/null +++ b/tests/ref/fate/adts-id3v2-two-tags-demux @@ -0,0 +1,475 @@ +#tb 0: 1/28224000 +#media_type 0: audio +#codec_id 0: aac +#sample_rate 0: 48000 +#channel_layout 0: 4 +#channel_layout_name 0: mono +0, 0, 0, 602112, 128, 0x23291993 +0, 602112, 602112, 602112, 128, 0x23291993 +0, 1204224, 1204224, 602112, 128, 0x23291993 +0, 1806336, 1806336, 602112, 128, 0x23291993 +0, 2408448, 2408448, 602112, 128, 0x23291993 +0, 3010560, 3010560, 602112, 128, 0x23291993 +0, 3612672, 3612672, 602112, 128, 0x23291993 +0, 4214784, 4214784, 602112, 128, 0x23291993 +0, 4816896, 4816896, 602112, 128, 0x23291993 +0, 5419008, 5419008, 602112, 128, 0x23291993 +0, 6021120, 6021120, 602112, 128, 0x23291993 +0, 6623232, 6623232, 602112, 128, 0x23291993 +0, 7225344, 7225344, 602112, 128, 0x23291993 +0, 7827456, 7827456, 602112, 128, 0x23291993 +0, 8429568, 8429568, 602112, 128, 0x23291993 +0, 9031680, 9031680, 602112, 128, 0x23291993 +0, 9633792, 9633792, 602112, 128, 0x23291993 +0, 10235904, 10235904, 602112, 128, 0x23291993 +0, 10838016, 10838016, 602112, 128, 0x23291993 +0, 11440128, 11440128, 602112, 128, 0x23291993 +0, 12042240, 12042240, 602112, 128, 0x23291993 +0, 12644352, 12644352, 602112, 128, 0x23291993 +0, 13246464, 13246464, 602112, 128, 0x23291993 +0, 13848576, 13848576, 602112, 128, 0x23291993 +0, 14450688, 14450688, 602112, 128, 0x23291993 +0, 15052800, 15052800, 602112, 128, 0x23291993 +0, 15654912, 15654912, 602112, 128, 0x23291993 +0, 16257024, 16257024, 602112, 128, 0x23291993 +0, 16859136, 16859136, 602112, 128, 0x23291993 +0, 17461248, 17461248, 602112, 128, 0x23291993 +0, 18063360, 18063360, 602112, 128, 0x23291993 +0, 18665472, 18665472, 602112, 128, 0x23291993 +0, 19267584, 19267584, 602112, 128, 0x23291993 +0, 19869696, 19869696, 602112, 128, 0x23291993 +0, 20471808, 20471808, 602112, 128, 0x23291993 +0, 21073920, 21073920, 602112, 128, 0x23291993 +0, 21676032, 21676032, 602112, 128, 0x23291993 +0, 22278144, 22278144, 602112, 128, 0x23291993 +0, 22880256, 22880256, 602112, 128, 0x23291993 +0, 23482368, 23482368, 602112, 128, 0x23291993 +0, 24084480, 24084480, 602112, 128, 0x23291993 +0, 24686592, 24686592, 602112, 128, 0x23291993 +0, 25288704, 25288704, 602112, 128, 0x23291993 +0, 25890816, 25890816, 602112, 128, 0x23291993 +0, 26492928, 26492928, 602112, 128, 0x23291993 +0, 27095040, 27095040, 602112, 128, 0x23291993 +0, 27697152, 27697152, 602112, 128, 0x23291993 +0, 28299264, 28299264, 602112, 128, 0x23291993 +0, 28901376, 28901376, 602112, 128, 0x23291993 +0, 29503488, 29503488, 602112, 128, 0x23291993 +0, 30105600, 30105600, 602112, 128, 0x23291993 +0, 30707712, 30707712, 602112, 128, 0x23291993 +0, 31309824, 31309824, 602112, 128, 0x23291993 +0, 31911936, 31911936, 602112, 128, 0x23291993 +0, 32514048, 32514048, 602112, 128, 0x23291993 +0, 33116160, 33116160, 602112, 128, 0x23291993 +0, 33718272, 33718272, 602112, 128, 0x23291993 +0, 34320384, 34320384, 602112, 128, 0x23291993 +0, 34922496, 34922496, 602112, 128, 0x23291993 +0, 35524608, 35524608, 602112, 128, 0x23291993 +0, 36126720, 36126720, 602112, 128, 0x23291993 +0, 36728832, 36728832, 602112, 128, 0x23291993 +0, 37330944, 37330944, 602112, 128, 0x23291993 +0, 37933056, 37933056, 602112, 128, 0x23291993 +0, 38535168, 38535168, 602112, 128, 0x23291993 +0, 39137280, 39137280, 602112, 128, 0x23291993 +0, 39739392, 39739392, 602112, 128, 0x23291993 +0, 40341504, 40341504, 602112, 128, 0x23291993 +0, 40943616, 40943616, 602112, 128, 0x23291993 +0, 41545728, 41545728, 602112, 128, 0x23291993 +0, 42147840, 42147840, 602112, 128, 0x23291993 +0, 42749952, 42749952, 602112, 128, 0x23291993 +0, 43352064, 43352064, 602112, 128, 0x23291993 +0, 43954176, 43954176, 602112, 128, 0x23291993 +0, 44556288, 44556288, 602112, 128, 0x23291993 +0, 45158400, 45158400, 602112, 128, 0x23291993 +0, 45760512, 45760512, 602112, 128, 0x23291993 +0, 46362624, 46362624, 602112, 128, 0x23291993 +0, 46964736, 46964736, 602112, 128, 0x23291993 +0, 47566848, 47566848, 602112, 128, 0x23291993 +0, 48168960, 48168960, 602112, 128, 0x23291993 +0, 48771072, 48771072, 602112, 128, 0x23291993 +0, 49373184, 49373184, 602112, 128, 0x23291993 +0, 49975296, 49975296, 602112, 128, 0x23291993 +0, 50577408, 50577408, 602112, 128, 0x23291993 +0, 51179520, 51179520, 602112, 128, 0x23291993 +0, 51781632, 51781632, 602112, 128, 0x23291993 +0, 52383744, 52383744, 602112, 128, 0x23291993 +0, 52985856, 52985856, 602112, 128, 0x23291993 +0, 53587968, 53587968, 602112, 128, 0x23291993 +0, 54190080, 54190080, 602112, 128, 0x23291993 +0, 54792192, 54792192, 602112, 128, 0x23291993 +0, 55394304, 55394304, 602112, 128, 0x23291993 +0, 55996416, 55996416, 602112, 128, 0x23291993 +0, 56598528, 56598528, 602112, 128, 0x23291993 +0, 57200640, 57200640, 602112, 128, 0x23291993 +0, 57802752, 57802752, 602112, 128, 0x23291993 +0, 58404864, 58404864, 602112, 128, 0x23291993 +0, 59006976, 59006976, 602112, 128, 0x23291993 +0, 59609088, 59609088, 602112, 128, 0x23291993 +0, 60211200, 60211200, 602112, 128, 0x23291993 +0, 60813312, 60813312, 602112, 128, 0x23291993 +0, 61415424, 61415424, 602112, 128, 0x23291993 +0, 62017536, 62017536, 602112, 128, 0x23291993 +0, 62619648, 62619648, 602112, 128, 0x23291993 +0, 63221760, 63221760, 602112, 128, 0x23291993 +0, 63823872, 63823872, 602112, 128, 0x23291993 +0, 64425984, 64425984, 602112, 128, 0x23291993 +0, 65028096, 65028096, 602112, 128, 0x23291993 +0, 65630208, 65630208, 602112, 128, 0x23291993 +0, 66232320, 66232320, 602112, 128, 0x23291993 +0, 66834432, 66834432, 602112, 128, 0x23291993 +0, 67436544, 67436544, 602112, 128, 0x23291993 +0, 68038656, 68038656, 602112, 128, 0x23291993 +0, 68640768, 68640768, 602112, 128, 0x23291993 +0, 69242880, 69242880, 602112, 128, 0x23291993 +0, 69844992, 69844992, 602112, 128, 0x23291993 +0, 70447104, 70447104, 602112, 128, 0x23291993 +0, 71049216, 71049216, 602112, 128, 0x23291993 +0, 71651328, 71651328, 602112, 128, 0x23291993 +0, 72253440, 72253440, 602112, 128, 0x23291993 +0, 72855552, 72855552, 602112, 128, 0x23291993 +0, 73457664, 73457664, 602112, 128, 0x23291993 +0, 74059776, 74059776, 602112, 128, 0x23291993 +0, 74661888, 74661888, 602112, 128, 0x23291993 +0, 75264000, 75264000, 602112, 128, 0x23291993 +0, 75866112, 75866112, 602112, 128, 0x23291993 +0, 76468224, 76468224, 602112, 128, 0x23291993 +0, 77070336, 77070336, 602112, 128, 0x23291993 +0, 77672448, 77672448, 602112, 128, 0x23291993 +0, 78274560, 78274560, 602112, 128, 0x23291993 +0, 78876672, 78876672, 602112, 128, 0x23291993 +0, 79478784, 79478784, 602112, 128, 0x23291993 +0, 80080896, 80080896, 602112, 128, 0x23291993 +0, 80683008, 80683008, 602112, 128, 0x23291993 +0, 81285120, 81285120, 602112, 128, 0x23291993 +0, 81887232, 81887232, 602112, 128, 0x23291993 +0, 82489344, 82489344, 602112, 128, 0x23291993 +0, 83091456, 83091456, 602112, 128, 0x23291993 +0, 83693568, 83693568, 602112, 128, 0x23291993 +0, 84295680, 84295680, 602112, 128, 0x23291993 +0, 84897792, 84897792, 602112, 128, 0x23291993 +0, 85499904, 85499904, 602112, 128, 0x23291993 +0, 86102016, 86102016, 602112, 128, 0x23291993 +0, 86704128, 86704128, 602112, 128, 0x23291993 +0, 87306240, 87306240, 602112, 128, 0x23291993 +0, 87908352, 87908352, 602112, 128, 0x23291993 +0, 88510464, 88510464, 602112, 128, 0x23291993 +0, 89112576, 89112576, 602112, 128, 0x23291993 +0, 89714688, 89714688, 602112, 128, 0x23291993 +0, 90316800, 90316800, 602112, 128, 0x23291993 +0, 90918912, 90918912, 602112, 128, 0x23291993 +0, 91521024, 91521024, 602112, 128, 0x23291993 +0, 92123136, 92123136, 602112, 128, 0x23291993 +0, 92725248, 92725248, 602112, 128, 0x23291993 +0, 93327360, 93327360, 602112, 128, 0x23291993 +0, 93929472, 93929472, 602112, 128, 0x23291993 +0, 94531584, 94531584, 602112, 128, 0x23291993 +0, 95133696, 95133696, 602112, 128, 0x23291993 +0, 95735808, 95735808, 602112, 128, 0x23291993 +0, 96337920, 96337920, 602112, 128, 0x23291993 +0, 96940032, 96940032, 602112, 128, 0x23291993 +0, 97542144, 97542144, 602112, 128, 0x23291993 +0, 98144256, 98144256, 602112, 128, 0x23291993 +0, 98746368, 98746368, 602112, 128, 0x23291993 +0, 99348480, 99348480, 602112, 128, 0x23291993 +0, 99950592, 99950592, 602112, 128, 0x23291993 +0, 100552704, 100552704, 602112, 128, 0x23291993 +0, 101154816, 101154816, 602112, 128, 0x23291993 +0, 101756928, 101756928, 602112, 128, 0x23291993 +0, 102359040, 102359040, 602112, 128, 0x23291993 +0, 102961152, 102961152, 602112, 128, 0x23291993 +0, 103563264, 103563264, 602112, 128, 0x23291993 +0, 104165376, 104165376, 602112, 128, 0x23291993 +0, 104767488, 104767488, 602112, 128, 0x23291993 +0, 105369600, 105369600, 602112, 128, 0x23291993 +0, 105971712, 105971712, 602112, 128, 0x23291993 +0, 106573824, 106573824, 602112, 128, 0x23291993 +0, 107175936, 107175936, 602112, 128, 0x23291993 +0, 107778048, 107778048, 602112, 128, 0x23291993 +0, 108380160, 108380160, 602112, 128, 0x23291993 +0, 108982272, 108982272, 602112, 128, 0x23291993 +0, 109584384, 109584384, 602112, 128, 0x23291993 +0, 110186496, 110186496, 602112, 128, 0x23291993 +0, 110788608, 110788608, 602112, 128, 0x23291993 +0, 111390720, 111390720, 602112, 128, 0x23291993 +0, 111992832, 111992832, 602112, 128, 0x23291993 +0, 112594944, 112594944, 602112, 128, 0x23291993 +0, 113197056, 113197056, 602112, 128, 0x23291993 +0, 113799168, 113799168, 602112, 128, 0x23291993 +0, 114401280, 114401280, 602112, 128, 0x23291993 +0, 115003392, 115003392, 602112, 128, 0x23291993 +0, 115605504, 115605504, 602112, 128, 0x23291993 +0, 116207616, 116207616, 602112, 128, 0x23291993 +0, 116809728, 116809728, 602112, 128, 0x23291993 +0, 117411840, 117411840, 602112, 128, 0x23291993 +0, 118013952, 118013952, 602112, 128, 0x23291993 +0, 118616064, 118616064, 602112, 128, 0x23291993 +0, 119218176, 119218176, 602112, 128, 0x23291993 +0, 119820288, 119820288, 602112, 128, 0x23291993 +0, 120422400, 120422400, 602112, 128, 0x23291993 +0, 121024512, 121024512, 602112, 128, 0x23291993 +0, 121626624, 121626624, 602112, 128, 0x23291993 +0, 122228736, 122228736, 602112, 128, 0x23291993 +0, 122830848, 122830848, 602112, 128, 0x23291993 +0, 123432960, 123432960, 602112, 128, 0x23291993 +0, 124035072, 124035072, 602112, 128, 0x23291993 +0, 124637184, 124637184, 602112, 128, 0x23291993 +0, 125239296, 125239296, 602112, 128, 0x23291993 +0, 125841408, 125841408, 602112, 128, 0x23291993 +0, 126443520, 126443520, 602112, 128, 0x23291993 +0, 127045632, 127045632, 602112, 128, 0x23291993 +0, 127647744, 127647744, 602112, 128, 0x23291993 +0, 128249856, 128249856, 602112, 128, 0x23291993 +0, 128851968, 128851968, 602112, 128, 0x23291993 +0, 129454080, 129454080, 602112, 128, 0x23291993 +0, 130056192, 130056192, 602112, 128, 0x23291993 +0, 130658304, 130658304, 602112, 128, 0x23291993 +0, 131260416, 131260416, 602112, 128, 0x23291993 +0, 131862528, 131862528, 602112, 128, 0x23291993 +0, 132464640, 132464640, 602112, 128, 0x23291993 +0, 133066752, 133066752, 602112, 128, 0x23291993 +0, 133668864, 133668864, 602112, 128, 0x23291993 +0, 134270976, 134270976, 602112, 128, 0x23291993 +0, 134873088, 134873088, 602112, 128, 0x23291993 +0, 135475200, 135475200, 602112, 128, 0x23291993 +0, 136077312, 136077312, 602112, 128, 0x23291993 +0, 136679424, 136679424, 602112, 128, 0x23291993 +0, 137281536, 137281536, 602112, 128, 0x23291993 +0, 137883648, 137883648, 602112, 128, 0x23291993 +0, 138485760, 138485760, 602112, 128, 0x23291993 +0, 139087872, 139087872, 602112, 128, 0x23291993 +0, 139689984, 139689984, 602112, 128, 0x23291993 +0, 140292096, 140292096, 602112, 128, 0x23291993 +0, 140894208, 140894208, 602112, 128, 0x23291993 +0, 141496320, 141496320, 602112, 128, 0x23291993 +0, 142098432, 142098432, 602112, 128, 0x23291993 +0, 142700544, 142700544, 602112, 128, 0x23291993 +0, 143302656, 143302656, 602112, 128, 0x23291993 +0, 143904768, 143904768, 602112, 128, 0x23291993 +0, 144506880, 144506880, 602112, 128, 0x23291993 +0, 145108992, 145108992, 602112, 128, 0x23291993 +0, 145711104, 145711104, 602112, 128, 0x23291993 +0, 146313216, 146313216, 602112, 128, 0x23291993 +0, 146915328, 146915328, 602112, 128, 0x23291993 +0, 147517440, 147517440, 602112, 128, 0x23291993 +0, 148119552, 148119552, 602112, 128, 0x23291993 +0, 148721664, 148721664, 602112, 128, 0x23291993 +0, 149323776, 149323776, 602112, 128, 0x23291993 +0, 149925888, 149925888, 602112, 128, 0x23291993 +0, 150528000, 150528000, 602112, 128, 0x23291993 +0, 151130112, 151130112, 602112, 128, 0x23291993 +0, 151732224, 151732224, 602112, 128, 0x23291993 +0, 152334336, 152334336, 602112, 128, 0x23291993 +0, 152936448, 152936448, 602112, 128, 0x23291993 +0, 153538560, 153538560, 602112, 128, 0x23291993 +0, 154140672, 154140672, 602112, 128, 0x23291993 +0, 154742784, 154742784, 602112, 128, 0x23291993 +0, 155344896, 155344896, 602112, 128, 0x23291993 +0, 155947008, 155947008, 602112, 128, 0x23291993 +0, 156549120, 156549120, 602112, 128, 0x23291993 +0, 157151232, 157151232, 602112, 128, 0x23291993 +0, 157753344, 157753344, 602112, 128, 0x23291993 +0, 158355456, 158355456, 602112, 128, 0x23291993 +0, 158957568, 158957568, 602112, 128, 0x23291993 +0, 159559680, 159559680, 602112, 128, 0x23291993 +0, 160161792, 160161792, 602112, 128, 0x23291993 +0, 160763904, 160763904, 602112, 128, 0x23291993 +0, 161366016, 161366016, 602112, 128, 0x23291993 +0, 161968128, 161968128, 602112, 128, 0x23291993 +0, 162570240, 162570240, 602112, 128, 0x23291993 +0, 163172352, 163172352, 602112, 128, 0x23291993 +0, 163774464, 163774464, 602112, 128, 0x23291993 +0, 164376576, 164376576, 602112, 128, 0x23291993 +0, 164978688, 164978688, 602112, 128, 0x23291993 +0, 165580800, 165580800, 602112, 128, 0x23291993 +0, 166182912, 166182912, 602112, 128, 0x23291993 +0, 166785024, 166785024, 602112, 128, 0x23291993 +0, 167387136, 167387136, 602112, 128, 0x23291993 +0, 167989248, 167989248, 602112, 128, 0x23291993 +0, 168591360, 168591360, 602112, 128, 0x23291993 +0, 169193472, 169193472, 602112, 128, 0x23291993 +0, 169795584, 169795584, 602112, 128, 0x23291993 +0, 170397696, 170397696, 602112, 128, 0x23291993 +0, 170999808, 170999808, 602112, 128, 0x23291993 +0, 171601920, 171601920, 602112, 128, 0x23291993 +0, 172204032, 172204032, 602112, 128, 0x23291993 +0, 172806144, 172806144, 602112, 128, 0x23291993 +0, 173408256, 173408256, 602112, 128, 0x23291993 +0, 174010368, 174010368, 602112, 128, 0x23291993 +0, 174612480, 174612480, 602112, 128, 0x23291993 +0, 175214592, 175214592, 602112, 128, 0x23291993 +0, 175816704, 175816704, 602112, 128, 0x23291993 +0, 176418816, 176418816, 602112, 128, 0x23291993 +0, 177020928, 177020928, 602112, 128, 0x23291993 +0, 177623040, 177623040, 602112, 128, 0x23291993 +0, 178225152, 178225152, 602112, 128, 0x23291993 +0, 178827264, 178827264, 602112, 128, 0x23291993 +0, 179429376, 179429376, 602112, 128, 0x23291993 +0, 180031488, 180031488, 602112, 128, 0x23291993 +0, 180633600, 180633600, 602112, 128, 0x23291993 +0, 181235712, 181235712, 602112, 128, 0x23291993 +0, 181837824, 181837824, 602112, 128, 0x23291993 +0, 182439936, 182439936, 602112, 128, 0x23291993 +0, 183042048, 183042048, 602112, 128, 0x23291993 +0, 183644160, 183644160, 602112, 128, 0x23291993 +0, 184246272, 184246272, 602112, 128, 0x23291993 +0, 184848384, 184848384, 602112, 128, 0x23291993 +0, 185450496, 185450496, 602112, 128, 0x23291993 +0, 186052608, 186052608, 602112, 128, 0x23291993 +0, 186654720, 186654720, 602112, 128, 0x23291993 +0, 187256832, 187256832, 602112, 128, 0x23291993 +0, 187858944, 187858944, 602112, 128, 0x23291993 +0, 188461056, 188461056, 602112, 128, 0x23291993 +0, 189063168, 189063168, 602112, 128, 0x23291993 +0, 189665280, 189665280, 602112, 128, 0x23291993 +0, 190267392, 190267392, 602112, 128, 0x23291993 +0, 190869504, 190869504, 602112, 128, 0x23291993 +0, 191471616, 191471616, 602112, 128, 0x23291993 +0, 192073728, 192073728, 602112, 128, 0x23291993 +0, 192675840, 192675840, 602112, 128, 0x23291993 +0, 193277952, 193277952, 602112, 128, 0x23291993 +0, 193880064, 193880064, 602112, 128, 0x23291993 +0, 194482176, 194482176, 602112, 128, 0x23291993 +0, 195084288, 195084288, 602112, 128, 0x23291993 +0, 195686400, 195686400, 602112, 128, 0x23291993 +0, 196288512, 196288512, 602112, 128, 0x23291993 +0, 196890624, 196890624, 602112, 128, 0x23291993 +0, 197492736, 197492736, 602112, 128, 0x23291993 +0, 198094848, 198094848, 602112, 128, 0x23291993 +0, 198696960, 198696960, 602112, 128, 0x23291993 +0, 199299072, 199299072, 602112, 128, 0x23291993 +0, 199901184, 199901184, 602112, 128, 0x23291993 +0, 200503296, 200503296, 602112, 128, 0x23291993 +0, 201105408, 201105408, 602112, 128, 0x23291993 +0, 201707520, 201707520, 602112, 128, 0x23291993 +0, 202309632, 202309632, 602112, 128, 0x23291993 +0, 202911744, 202911744, 602112, 128, 0x23291993 +0, 203513856, 203513856, 602112, 128, 0x23291993 +0, 204115968, 204115968, 602112, 128, 0x23291993 +0, 204718080, 204718080, 602112, 128, 0x23291993 +0, 205320192, 205320192, 602112, 128, 0x23291993 +0, 205922304, 205922304, 602112, 128, 0x23291993 +0, 206524416, 206524416, 602112, 128, 0x23291993 +0, 207126528, 207126528, 602112, 128, 0x23291993 +0, 207728640, 207728640, 602112, 128, 0x23291993 +0, 208330752, 208330752, 602112, 128, 0x23291993 +0, 208932864, 208932864, 602112, 128, 0x23291993 +0, 209534976, 209534976, 602112, 128, 0x23291993 +0, 210137088, 210137088, 602112, 128, 0x23291993 +0, 210739200, 210739200, 602112, 128, 0x23291993 +0, 211341312, 211341312, 602112, 128, 0x23291993 +0, 211943424, 211943424, 602112, 128, 0x23291993 +0, 212545536, 212545536, 602112, 128, 0x23291993 +0, 213147648, 213147648, 602112, 128, 0x23291993 +0, 213749760, 213749760, 602112, 128, 0x23291993 +0, 214351872, 214351872, 602112, 128, 0x23291993 +0, 214953984, 214953984, 602112, 128, 0x23291993 +0, 215556096, 215556096, 602112, 128, 0x23291993 +0, 216158208, 216158208, 602112, 128, 0x23291993 +0, 216760320, 216760320, 602112, 128, 0x23291993 +0, 217362432, 217362432, 602112, 128, 0x23291993 +0, 217964544, 217964544, 602112, 128, 0x23291993 +0, 218566656, 218566656, 602112, 128, 0x23291993 +0, 219168768, 219168768, 602112, 128, 0x23291993 +0, 219770880, 219770880, 602112, 128, 0x23291993 +0, 220372992, 220372992, 602112, 128, 0x23291993 +0, 220975104, 220975104, 602112, 128, 0x23291993 +0, 221577216, 221577216, 602112, 128, 0x23291993 +0, 222179328, 222179328, 602112, 128, 0x23291993 +0, 222781440, 222781440, 602112, 128, 0x23291993 +0, 223383552, 223383552, 602112, 128, 0x23291993 +0, 223985664, 223985664, 602112, 128, 0x23291993 +0, 224587776, 224587776, 602112, 128, 0x23291993 +0, 225189888, 225189888, 602112, 128, 0x23291993 +0, 225792000, 225792000, 602112, 128, 0x23291993 +0, 226394112, 226394112, 602112, 128, 0x23291993 +0, 226996224, 226996224, 602112, 128, 0x23291993 +0, 227598336, 227598336, 602112, 128, 0x23291993 +0, 228200448, 228200448, 602112, 128, 0x23291993 +0, 228802560, 228802560, 602112, 128, 0x23291993 +0, 229404672, 229404672, 602112, 128, 0x23291993 +0, 230006784, 230006784, 602112, 128, 0x23291993 +0, 230608896, 230608896, 602112, 128, 0x23291993 +0, 231211008, 231211008, 602112, 128, 0x23291993 +0, 231813120, 231813120, 602112, 128, 0x23291993 +0, 232415232, 232415232, 602112, 128, 0x23291993 +0, 233017344, 233017344, 602112, 128, 0x23291993 +0, 233619456, 233619456, 602112, 128, 0x23291993 +0, 234221568, 234221568, 602112, 128, 0x23291993 +0, 234823680, 234823680, 602112, 128, 0x23291993 +0, 235425792, 235425792, 602112, 128, 0x23291993 +0, 236027904, 236027904, 602112, 128, 0x23291993 +0, 236630016, 236630016, 602112, 128, 0x23291993 +0, 237232128, 237232128, 602112, 128, 0x23291993 +0, 237834240, 237834240, 602112, 128, 0x23291993 +0, 238436352, 238436352, 602112, 128, 0x23291993 +0, 239038464, 239038464, 602112, 128, 0x23291993 +0, 239640576, 239640576, 602112, 128, 0x23291993 +0, 240242688, 240242688, 602112, 128, 0x23291993 +0, 240844800, 240844800, 602112, 128, 0x23291993 +0, 241446912, 241446912, 602112, 128, 0x23291993 +0, 242049024, 242049024, 602112, 128, 0x23291993 +0, 242651136, 242651136, 602112, 128, 0x23291993 +0, 243253248, 243253248, 602112, 128, 0x23291993 +0, 243855360, 243855360, 602112, 128, 0x23291993 +0, 244457472, 244457472, 602112, 128, 0x23291993 +0, 245059584, 245059584, 602112, 128, 0x23291993 +0, 245661696, 245661696, 602112, 128, 0x23291993 +0, 246263808, 246263808, 602112, 128, 0x23291993 +0, 246865920, 246865920, 602112, 128, 0x23291993 +0, 247468032, 247468032, 602112, 128, 0x23291993 +0, 248070144, 248070144, 602112, 128, 0x23291993 +0, 248672256, 248672256, 602112, 128, 0x23291993 +0, 249274368, 249274368, 602112, 128, 0x23291993 +0, 249876480, 249876480, 602112, 128, 0x23291993 +0, 250478592, 250478592, 602112, 128, 0x23291993 +0, 251080704, 251080704, 602112, 128, 0x23291993 +0, 251682816, 251682816, 602112, 128, 0x23291993 +0, 252284928, 252284928, 602112, 128, 0x23291993 +0, 252887040, 252887040, 602112, 128, 0x23291993 +0, 253489152, 253489152, 602112, 128, 0x23291993 +0, 254091264, 254091264, 602112, 128, 0x23291993 +0, 254693376, 254693376, 602112, 128, 0x23291993 +0, 255295488, 255295488, 602112, 128, 0x23291993 +0, 255897600, 255897600, 602112, 128, 0x23291993 +0, 256499712, 256499712, 602112, 128, 0x23291993 +0, 257101824, 257101824, 602112, 128, 0x23291993 +0, 257703936, 257703936, 602112, 128, 0x23291993 +0, 258306048, 258306048, 602112, 128, 0x23291993 +0, 258908160, 258908160, 602112, 128, 0x23291993 +0, 259510272, 259510272, 602112, 128, 0x23291993 +0, 260112384, 260112384, 602112, 128, 0x23291993 +0, 260714496, 260714496, 602112, 128, 0x23291993 +0, 261316608, 261316608, 602112, 128, 0x23291993 +0, 261918720, 261918720, 602112, 128, 0x23291993 +0, 262520832, 262520832, 602112, 128, 0x23291993 +0, 263122944, 263122944, 602112, 128, 0x23291993 +0, 263725056, 263725056, 602112, 128, 0x23291993 +0, 264327168, 264327168, 602112, 128, 0x23291993 +0, 264929280, 264929280, 602112, 128, 0x23291993 +0, 265531392, 265531392, 602112, 128, 0x23291993 +0, 266133504, 266133504, 602112, 128, 0x23291993 +0, 266735616, 266735616, 602112, 128, 0x23291993 +0, 267337728, 267337728, 602112, 128, 0x23291993 +0, 267939840, 267939840, 602112, 128, 0x23291993 +0, 268541952, 268541952, 602112, 128, 0x23291993 +0, 269144064, 269144064, 602112, 128, 0x23291993 +0, 269746176, 269746176, 602112, 128, 0x23291993 +0, 270348288, 270348288, 602112, 128, 0x23291993 +0, 270950400, 270950400, 602112, 128, 0x23291993 +0, 271552512, 271552512, 602112, 128, 0x23291993 +0, 272154624, 272154624, 602112, 128, 0x23291993 +0, 272756736, 272756736, 602112, 128, 0x23291993 +0, 273358848, 273358848, 602112, 128, 0x23291993 +0, 273960960, 273960960, 602112, 128, 0x23291993 +0, 274563072, 274563072, 602112, 128, 0x23291993 +0, 275165184, 275165184, 602112, 128, 0x23291993 +0, 275767296, 275767296, 602112, 128, 0x23291993 +0, 276369408, 276369408, 602112, 128, 0x23291993 +0, 276971520, 276971520, 602112, 128, 0x23291993 +0, 277573632, 277573632, 602112, 128, 0x23291993 +0, 278175744, 278175744, 602112, 128, 0x23291993 +0, 278777856, 278777856, 602112, 128, 0x23291993 +0, 279379968, 279379968, 602112, 128, 0x23291993 +0, 279982080, 279982080, 602112, 128, 0x23291993 +0, 280584192, 280584192, 602112, 128, 0x23291993 +0, 281186304, 281186304, 602112, 128, 0x23291993 +0, 281788416, 281788416, 602112, 128, 0x23291993