Compare commits

...

3 Commits

Author SHA1 Message Date
Zhao Zhili
413346bd06 tests/fate/ffmpeg: add test for -force_key_frames scd_metadata 2025-12-02 03:03:55 +00:00
Zhao Zhili
540aacf759 fftools/ffmpeg: add force key frame by scdet metadata support
For example:

./ffmpeg -hwaccel videotoolbox \
	-i input.mp4 -c:a copy \
	-vf scdet=threshold=10 \
	-c:v h264_videotoolbox \
	-force_key_frames scd_metadata \
	-g 1000 -t 30 output.mp4
2025-12-02 03:03:55 +00:00
Thomas Gritzan
27e94281d1 libavdevice/decklink: add support for DeckLink SDK 14.3
This patch adds support for DeckLink SDK 14.3 and newer by using
the legacy interfaces in the header <DeckLinkAPI_v14_2_1.h>.

The missing QueryInterface implementations are also provided.
2025-12-01 21:37:12 +00:00
10 changed files with 527 additions and 40 deletions

View File

@@ -1665,6 +1665,7 @@ Force video tag/fourcc. This is an alias for @code{-tag:v}.
@item -force_key_frames[:@var{stream_specifier}] @var{time}[,@var{time}...] (@emph{output,per-stream})
@item -force_key_frames[:@var{stream_specifier}] expr:@var{expr} (@emph{output,per-stream})
@item -force_key_frames[:@var{stream_specifier}] source (@emph{output,per-stream})
@item -force_key_frames[:@var{stream_specifier}] scd_metadata (@emph{output,per-stream})
@var{force_key_frames} can take arguments of the following form:
@@ -1728,6 +1729,14 @@ the current frame being encoded is marked as a key frame in its source.
In cases where this particular source frame has to be dropped,
enforce the next available frame to become a key frame instead.
@item scd_metadata
If the argument is @code{scd_metadata}, ffmpeg will force a key frame if
the current frame contains a metadata entry with the key @code{lavfi.scd.time}.
The metadata can be added by filters like @code{scdet} and @code{scdet_vulkan}.
Avoid inserting filters that duplicate frames after @code{scdet}, as this can
cause duplicate metadata for multiple frames and repeated insertion of key
frames.
@end table
Note that forcing too many keyframes is very harmful for the lookahead

View File

@@ -602,6 +602,8 @@ enum {
#if FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP
KF_FORCE_SOURCE_NO_DROP = 2,
#endif
// force keyframe if lavfi.scd.time metadata is set
KF_FORCE_SCD_METADATA = 3,
};
typedef struct KeyframeForceCtx {

View File

@@ -768,6 +768,9 @@ static enum AVPictureType forced_kf_apply(void *logctx, KeyframeForceCtx *kf,
}
} else if (kf->type == KF_FORCE_SOURCE && (frame->flags & AV_FRAME_FLAG_KEY)) {
goto force_keyframe;
} else if (kf->type == KF_FORCE_SCD_METADATA &&
av_dict_get(frame->metadata, "lavfi.scd.time", NULL, 0)) {
goto force_keyframe;
}
return AV_PICTURE_TYPE_NONE;

View File

@@ -3279,6 +3279,8 @@ static int process_forced_keyframes(Muxer *mux, const OptionsContext *o)
"-force_key_frames is deprecated, use just 'source'\n");
ost->kf.type = KF_FORCE_SOURCE;
#endif
} else if (!strcmp(forced_keyframes, "scd_metadata")) {
ost->kf.type = KF_FORCE_SCD_METADATA;
} else {
int ret = parse_forced_key_frames(ost, &ost->kf, mux, forced_keyframes);
if (ret < 0)

View File

@@ -25,7 +25,12 @@ extern "C" {
#include "libavformat/internal.h"
}
#include <DeckLinkAPIVersion.h>
#include <DeckLinkAPI.h>
#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0e030000
#include <DeckLinkAPI_v14_2_1.h>
#endif
#ifdef _WIN32
#include <DeckLinkAPI_i.c>
#else
@@ -512,8 +517,8 @@ int ff_decklink_list_devices(AVFormatContext *avctx,
return AVERROR(EIO);
while (ret == 0 && iter->Next(&dl) == S_OK) {
IDeckLinkOutput *output_config;
IDeckLinkInput *input_config;
IDeckLinkOutput_v14_2_1 *output_config;
IDeckLinkInput_v14_2_1 *input_config;
const char *display_name = NULL;
const char *unique_name = NULL;
AVDeviceInfo *new_device = NULL;
@@ -527,14 +532,14 @@ int ff_decklink_list_devices(AVFormatContext *avctx,
goto next;
if (show_outputs) {
if (dl->QueryInterface(IID_IDeckLinkOutput, (void **)&output_config) == S_OK) {
if (dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **)&output_config) == S_OK) {
output_config->Release();
add = 1;
}
}
if (show_inputs) {
if (dl->QueryInterface(IID_IDeckLinkInput, (void **)&input_config) == S_OK) {
if (dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **)&input_config) == S_OK) {
input_config->Release();
add = 1;
}

View File

@@ -29,6 +29,23 @@
#define IDeckLinkProfileAttributes IDeckLinkAttributes
#endif
#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0e030000
#define IDeckLinkInput_v14_2_1 IDeckLinkInput
#define IDeckLinkInputCallback_v14_2_1 IDeckLinkInputCallback
#define IDeckLinkMemoryAllocator_v14_2_1 IDeckLinkMemoryAllocator
#define IDeckLinkOutput_v14_2_1 IDeckLinkOutput
#define IDeckLinkVideoFrame_v14_2_1 IDeckLinkVideoFrame
#define IDeckLinkVideoInputFrame_v14_2_1 IDeckLinkVideoInputFrame
#define IDeckLinkVideoOutputCallback_v14_2_1 IDeckLinkVideoOutputCallback
#define IID_IDeckLinkInput_v14_2_1 IID_IDeckLinkInput
#define IID_IDeckLinkInputCallback_v14_2_1 IID_IDeckLinkInputCallback
#define IID_IDeckLinkMemoryAllocator_v14_2_1 IID_IDeckLinkMemoryAllocator
#define IID_IDeckLinkOutput_v14_2_1 IID_IDeckLinkOutput
#define IID_IDeckLinkVideoFrame_v14_2_1 IID_IDeckLinkVideoFrame
#define IID_IDeckLinkVideoInputFrame_v14_2_1 IID_IDeckLinkVideoInputFrame
#define IID_IDeckLinkVideoOutputCallback_v14_2_1 IID_IDeckLinkVideoOutputCallback
#endif
extern "C" {
#include "libavutil/mem.h"
#include "libavcodec/packet_internal.h"
@@ -76,6 +93,16 @@ static char *dup_cfstring_to_utf8(CFStringRef w)
#define DECKLINK_FREE(s) free((void *) s)
#endif
#ifdef _WIN32
#include <guiddef.h> // REFIID, IsEqualIID()
#define DECKLINK_IsEqualIID IsEqualIID
#else
static inline bool DECKLINK_IsEqualIID(const REFIID& riid1, const REFIID& riid2)
{
return memcmp(&riid1, &riid2, sizeof(REFIID)) == 0;
}
#endif
class decklink_output_callback;
class decklink_input_callback;
@@ -93,8 +120,8 @@ typedef struct DecklinkPacketQueue {
struct decklink_ctx {
/* DeckLink SDK interfaces */
IDeckLink *dl;
IDeckLinkOutput *dlo;
IDeckLinkInput *dli;
IDeckLinkOutput_v14_2_1 *dlo;
IDeckLinkInput_v14_2_1 *dli;
IDeckLinkConfiguration *cfg;
IDeckLinkProfileAttributes *attr;
decklink_output_callback *output_callback;

View File

@@ -31,7 +31,11 @@ extern "C" {
#include "libavformat/internal.h"
}
#include <DeckLinkAPIVersion.h>
#include <DeckLinkAPI.h>
#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0e030000
#include <DeckLinkAPI_v14_2_1.h>
#endif
extern "C" {
#include "config.h"
@@ -105,7 +109,7 @@ static VANCLineNumber vanc_line_numbers[] = {
{bmdModeUnknown, 0, -1, -1, -1}
};
class decklink_allocator : public IDeckLinkMemoryAllocator
class decklink_allocator : public IDeckLinkMemoryAllocator_v14_2_1
{
public:
decklink_allocator(): _refs(1) { }
@@ -129,7 +133,21 @@ public:
virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; }
// IUnknown methods
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID *ppv)
{
if (DECKLINK_IsEqualIID(riid, IID_IUnknown)) {
*ppv = static_cast<IUnknown*>(this);
} else if (DECKLINK_IsEqualIID(riid, IID_IDeckLinkMemoryAllocator_v14_2_1)) {
*ppv = static_cast<IDeckLinkMemoryAllocator_v14_2_1*>(this);
} else {
*ppv = NULL;
return E_NOINTERFACE;
}
AddRef();
return S_OK;
}
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
virtual ULONG STDMETHODCALLTYPE Release(void)
{
@@ -472,7 +490,7 @@ skip_packet:
}
static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame *videoFrame, int64_t pts)
static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, int64_t pts)
{
const uint8_t KLV_DID = 0x44;
const uint8_t KLV_IN_VANC_SDID = 0x04;
@@ -574,17 +592,30 @@ static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideo
}
}
class decklink_input_callback : public IDeckLinkInputCallback
class decklink_input_callback : public IDeckLinkInputCallback_v14_2_1
{
public:
explicit decklink_input_callback(AVFormatContext *_avctx);
~decklink_input_callback();
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID *ppv)
{
if (DECKLINK_IsEqualIID(riid, IID_IUnknown)) {
*ppv = static_cast<IUnknown*>(this);
} else if (DECKLINK_IsEqualIID(riid, IID_IDeckLinkInputCallback_v14_2_1)) {
*ppv = static_cast<IDeckLinkInputCallback_v14_2_1*>(this);
} else {
*ppv = NULL;
return E_NOINTERFACE;
}
AddRef();
return S_OK;
}
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags);
virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*);
virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame_v14_2_1*, IDeckLinkAudioInputPacket*);
private:
std::atomic<int> _refs;
@@ -593,7 +624,7 @@ private:
int no_video;
int64_t initial_video_pts;
int64_t initial_audio_pts;
IDeckLinkVideoInputFrame* last_video_frame;
IDeckLinkVideoInputFrame_v14_2_1* last_video_frame;
};
decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1)
@@ -625,7 +656,7 @@ ULONG decklink_input_callback::Release(void)
return ret;
}
static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame,
static int64_t get_pkt_pts(IDeckLinkVideoInputFrame_v14_2_1 *videoFrame,
IDeckLinkAudioInputPacket *audioFrame,
int64_t wallclock,
int64_t abs_wallclock,
@@ -679,7 +710,7 @@ static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame,
return pts;
}
static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame *videoFrame)
static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
{
IDeckLinkTimecode *timecode;
int ret = AVERROR(ENOENT);
@@ -701,7 +732,7 @@ static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational f
return ret;
}
static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame *videoFrame)
static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
{
AVRational frame_rate = ctx->video_st->r_frame_rate;
int ret;
@@ -726,7 +757,7 @@ static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimec
}
HRESULT decklink_input_callback::VideoInputFrameArrived(
IDeckLinkVideoInputFrame *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
{
void *frameBytes;
void *audioFrameBytes;
@@ -1141,7 +1172,7 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
goto error;
/* Get input device. */
if (ctx->dl->QueryInterface(IID_IDeckLinkInput, (void **) &ctx->dli) != S_OK) {
if (ctx->dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **) &ctx->dli) != S_OK) {
av_log(avctx, AV_LOG_ERROR, "Could not open input device from '%s'\n",
avctx->url);
ret = AVERROR(EIO);

View File

@@ -28,7 +28,11 @@ extern "C" {
#include "libavformat/internal.h"
}
#include <DeckLinkAPIVersion.h>
#include <DeckLinkAPI.h>
#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0e030000
#include <DeckLinkAPI_v14_2_1.h>
#endif
extern "C" {
#include "libavformat/avformat.h"
@@ -47,18 +51,8 @@ extern "C" {
#include "libklvanc/pixels.h"
#endif
#ifdef _WIN32
#include <guiddef.h>
#else
/* There is no guiddef.h in Linux builds, so we provide our own IsEqualIID() */
static bool IsEqualIID(REFIID riid1, REFIID riid2)
{
return memcmp(&riid1, &riid2, sizeof(REFIID)) == 0;
}
#endif
/* DeckLink callback class declaration */
class decklink_frame : public IDeckLinkVideoFrame
class decklink_frame : public IDeckLinkVideoFrame_v14_2_1
{
public:
decklink_frame(struct decklink_ctx *ctx, AVFrame *avframe, AVCodecID codec_id, int height, int width) :
@@ -123,10 +117,10 @@ public:
}
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID *ppv)
{
if (IsEqualIID(riid, IID_IUnknown)) {
if (DECKLINK_IsEqualIID(riid, IID_IUnknown)) {
*ppv = static_cast<IUnknown*>(this);
} else if (IsEqualIID(riid, IID_IDeckLinkVideoFrame)) {
*ppv = static_cast<IDeckLinkVideoFrame*>(this);
} else if (DECKLINK_IsEqualIID(riid, IID_IDeckLinkVideoFrame_v14_2_1)) {
*ppv = static_cast<IDeckLinkVideoFrame_v14_2_1*>(this);
} else {
*ppv = NULL;
return E_NOINTERFACE;
@@ -135,7 +129,6 @@ public:
AddRef();
return S_OK;
}
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
virtual ULONG STDMETHODCALLTYPE Release(void)
{
@@ -162,10 +155,10 @@ private:
std::atomic<int> _refs;
};
class decklink_output_callback : public IDeckLinkVideoOutputCallback
class decklink_output_callback : public IDeckLinkVideoOutputCallback_v14_2_1
{
public:
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *_frame, BMDOutputFrameCompletionResult result)
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame_v14_2_1 *_frame, BMDOutputFrameCompletionResult result)
{
decklink_frame *frame = static_cast<decklink_frame *>(_frame);
struct decklink_ctx *ctx = frame->_ctx;
@@ -183,7 +176,20 @@ public:
return S_OK;
}
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped(void) { return S_OK; }
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID *ppv)
{
if (DECKLINK_IsEqualIID(riid, IID_IUnknown)) {
*ppv = static_cast<IUnknown*>(this);
} else if (DECKLINK_IsEqualIID(riid, IID_IDeckLinkVideoOutputCallback_v14_2_1)) {
*ppv = static_cast<IDeckLinkVideoOutputCallback_v14_2_1*>(this);
} else {
*ppv = NULL;
return E_NOINTERFACE;
}
AddRef();
return S_OK;
}
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return 1; }
virtual ULONG STDMETHODCALLTYPE Release(void) { return 1; }
};
@@ -763,7 +769,7 @@ static int decklink_write_video_packet(AVFormatContext *avctx, AVPacket *pkt)
ctx->first_pts = pkt->pts;
/* Schedule frame for playback. */
hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame *) frame,
hr = ctx->dlo->ScheduleVideoFrame(frame,
pkt->pts * ctx->bmd_tb_num,
ctx->bmd_tb_num, ctx->bmd_tb_den);
/* Pass ownership to DeckLink, or release on failure */
@@ -898,7 +904,7 @@ av_cold int ff_decklink_write_header(AVFormatContext *avctx)
return ret;
/* Get output device. */
if (ctx->dl->QueryInterface(IID_IDeckLinkOutput, (void **) &ctx->dlo) != S_OK) {
if (ctx->dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **) &ctx->dlo) != S_OK) {
av_log(avctx, AV_LOG_ERROR, "Could not open output device from '%s'\n",
avctx->url);
ret = AVERROR(EIO);

View File

@@ -40,8 +40,13 @@ fate-force_key_frames-source-dup: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra
-c:v mpeg2video -g 400 -sc_threshold 99999 \
-force_key_frames source -r 39 -force_fps -strict experimental
FATE_SAMPLES_FFMPEG-$(call ENCDEC, MPEG2VIDEO H264, FRAMECRC H264, H264_PARSER CROP_FILTER DRAWBOX_FILTER PIPE_PROTOCOL) += \
fate-force_key_frames-source fate-force_key_frames-source-drop fate-force_key_frames-source-dup
fate-force_key_frames-scd_metadata: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra_refresh.h264 \
-vf scdet=threshold=10,crop=2:2,drawbox=color=black:t=fill \
-c:v mpeg2video -g 400 \
-force_key_frames scd_metadata
FATE_SAMPLES_FFMPEG-$(call ENCDEC, MPEG2VIDEO H264, FRAMECRC H264, H264_PARSER CROP_FILTER DRAWBOX_FILTER SCDET_FILTER PIPE_PROTOCOL) += \
fate-force_key_frames-source fate-force_key_frames-source-drop fate-force_key_frames-source-dup fate-force_key_frames-scd_metadata
# Tests that the video is properly autorotated using the contained
# display matrix and that the generated file does not contain

View File

@@ -0,0 +1,397 @@
#tb 0: 1/25
#media_type 0: video
#codec_id 0: mpeg2video
#dimensions 0: 2x2
#sar 0: 0/1
0, -1, 0, 1, 57, 0x7db00eb7, S=1, Quality stats, 8, 0x05ec00be
0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 5, 6, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 6, 7, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 7, 8, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 8, 9, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 9, 10, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 10, 11, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 11, 12, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 12, 13, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 13, 14, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 14, 15, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 15, 16, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 16, 17, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 17, 18, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 18, 19, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 19, 20, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 20, 21, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 21, 22, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 22, 23, 1, 24, 0x590006e5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 23, 24, 1, 24, 0x4ad40626, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 24, 25, 1, 24, 0x4f940666, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 25, 26, 1, 24, 0x545406a6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 26, 27, 1, 24, 0x591406e6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 27, 28, 1, 24, 0x4ae80627, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 28, 29, 1, 24, 0x4fa80667, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 29, 30, 1, 24, 0x546806a7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 30, 31, 1, 24, 0x592806e7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 31, 32, 1, 24, 0x4afc0628, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 32, 33, 1, 24, 0x4fbc0668, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 33, 34, 1, 24, 0x547c06a8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 34, 35, 1, 24, 0x593c06e8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 35, 36, 1, 24, 0x4b100629, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 36, 37, 1, 24, 0x4fd00669, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 37, 38, 1, 24, 0x549006a9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 38, 39, 1, 24, 0x595006e9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 39, 40, 1, 24, 0x4b24062a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 40, 41, 1, 24, 0x4fe4066a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 41, 42, 1, 24, 0x54a406aa, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 42, 43, 1, 24, 0x596406ea, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 43, 44, 1, 24, 0x4b38062b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 44, 45, 1, 24, 0x4ff8066b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 45, 46, 1, 24, 0x54b806ab, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 46, 47, 1, 24, 0x597806eb, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 47, 48, 1, 24, 0x4b4c062c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 48, 49, 1, 24, 0x500c066c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 49, 50, 1, 24, 0x54cc06ac, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 50, 51, 1, 24, 0x598c06ec, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 51, 52, 1, 24, 0x4b60062d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 52, 53, 1, 24, 0x5020066d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 53, 54, 1, 24, 0x54e006ad, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 54, 55, 1, 24, 0x59a006ed, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 55, 56, 1, 24, 0x4b74062e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 56, 57, 1, 24, 0x5034066e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 57, 58, 1, 24, 0x54f406ae, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 58, 59, 1, 24, 0x59b406ee, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 59, 60, 1, 24, 0x4b88062f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 60, 61, 1, 24, 0x5048066f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 61, 62, 1, 24, 0x550806af, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 62, 63, 1, 24, 0x59c806ef, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 63, 64, 1, 24, 0x4b9c0630, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 64, 65, 1, 24, 0x505c0670, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 65, 66, 1, 24, 0x551c06b0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 66, 67, 1, 24, 0x59dc06f0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 67, 68, 1, 24, 0x4bb00631, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 68, 69, 1, 24, 0x50700671, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 69, 70, 1, 24, 0x553006b1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 70, 71, 1, 24, 0x59f006f1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 71, 72, 1, 24, 0x4bc40632, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 72, 73, 1, 24, 0x50840672, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 73, 74, 1, 24, 0x554406b2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 74, 75, 1, 24, 0x5a0406f2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 75, 76, 1, 24, 0x4bd80633, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 76, 77, 1, 24, 0x50980673, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 77, 78, 1, 24, 0x555806b3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 78, 79, 1, 24, 0x5a1806f3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 79, 80, 1, 24, 0x4bec0634, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 80, 81, 1, 24, 0x50ac0674, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 81, 82, 1, 24, 0x556c06b4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 82, 83, 1, 24, 0x5a2c06f4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 83, 84, 1, 24, 0x4c000635, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 84, 85, 1, 24, 0x50c00675, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 85, 86, 1, 24, 0x558006b5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 86, 87, 1, 24, 0x5a4006f5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 87, 88, 1, 24, 0x4c140636, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 88, 89, 1, 24, 0x50d40676, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 89, 90, 1, 24, 0x559406b6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 90, 91, 1, 24, 0x5a5406f6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 91, 92, 1, 24, 0x4c280637, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 92, 93, 1, 24, 0x50e80677, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 93, 94, 1, 24, 0x55a806b7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 94, 95, 1, 24, 0x5a6806f7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 95, 96, 1, 24, 0x4c3c0638, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 96, 97, 1, 24, 0x50fc0678, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 97, 98, 1, 24, 0x55bc06b8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 98, 99, 1, 24, 0x5a7c06f8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 99, 100, 1, 24, 0x4c500639, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 100, 101, 1, 24, 0x51100679, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 101, 102, 1, 24, 0x55d006b9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 102, 103, 1, 24, 0x5a9006f9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 103, 104, 1, 24, 0x4c64063a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 104, 105, 1, 24, 0x5124067a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 105, 106, 1, 24, 0x55e406ba, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 106, 107, 1, 24, 0x5aa406fa, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 107, 108, 1, 57, 0x85a40efb, S=1, Quality stats, 8, 0x05ec00be
0, 108, 109, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 109, 110, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 110, 111, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 111, 112, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 112, 113, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 113, 114, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 114, 115, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 115, 116, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 116, 117, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 117, 118, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 118, 119, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 119, 120, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 120, 121, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 121, 122, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 122, 123, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 123, 124, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 124, 125, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 125, 126, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 126, 127, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 127, 128, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 128, 129, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 129, 130, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 130, 131, 1, 24, 0x590006e5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 131, 132, 1, 24, 0x4ad40626, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 132, 133, 1, 24, 0x4f940666, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 133, 134, 1, 24, 0x545406a6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 134, 135, 1, 24, 0x591406e6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 135, 136, 1, 24, 0x4ae80627, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 136, 137, 1, 24, 0x4fa80667, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 137, 138, 1, 24, 0x546806a7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 138, 139, 1, 24, 0x592806e7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 139, 140, 1, 24, 0x4afc0628, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 140, 141, 1, 24, 0x4fbc0668, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 141, 142, 1, 24, 0x547c06a8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 142, 143, 1, 24, 0x593c06e8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 143, 144, 1, 24, 0x4b100629, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 144, 145, 1, 24, 0x4fd00669, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 145, 146, 1, 24, 0x549006a9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 146, 147, 1, 24, 0x595006e9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 147, 148, 1, 24, 0x4b24062a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 148, 149, 1, 24, 0x4fe4066a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 149, 150, 1, 24, 0x54a406aa, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 150, 151, 1, 24, 0x596406ea, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 151, 152, 1, 57, 0x8c8d0f38, S=1, Quality stats, 8, 0x05ec00be
0, 152, 153, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 153, 154, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 154, 155, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 155, 156, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 156, 157, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 157, 158, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 158, 159, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 159, 160, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 160, 161, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 161, 162, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 162, 163, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 163, 164, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 164, 165, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 165, 166, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 166, 167, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 167, 168, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 168, 169, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 169, 170, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 170, 171, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 171, 172, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 172, 173, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 173, 174, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 174, 175, 1, 24, 0x590006e5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 175, 176, 1, 24, 0x4ad40626, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 176, 177, 1, 24, 0x4f940666, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 177, 178, 1, 24, 0x545406a6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 178, 179, 1, 24, 0x591406e6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 179, 180, 1, 24, 0x4ae80627, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 180, 181, 1, 24, 0x4fa80667, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 181, 182, 1, 24, 0x546806a7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 182, 183, 1, 24, 0x592806e7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 183, 184, 1, 24, 0x4afc0628, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 184, 185, 1, 24, 0x4fbc0668, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 185, 186, 1, 24, 0x547c06a8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 186, 187, 1, 24, 0x593c06e8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 187, 188, 1, 24, 0x4b100629, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 188, 189, 1, 24, 0x4fd00669, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 189, 190, 1, 24, 0x549006a9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 190, 191, 1, 24, 0x595006e9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 191, 192, 1, 24, 0x4b24062a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 192, 193, 1, 24, 0x4fe4066a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 193, 194, 1, 24, 0x54a406aa, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 194, 195, 1, 24, 0x596406ea, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 195, 196, 1, 24, 0x4b38062b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 196, 197, 1, 24, 0x4ff8066b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 197, 198, 1, 24, 0x54b806ab, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 198, 199, 1, 24, 0x597806eb, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 199, 200, 1, 24, 0x4b4c062c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 200, 201, 1, 24, 0x500c066c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 201, 202, 1, 24, 0x54cc06ac, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 202, 203, 1, 24, 0x598c06ec, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 203, 204, 1, 24, 0x4b60062d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 204, 205, 1, 24, 0x5020066d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 205, 206, 1, 24, 0x54e006ad, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 206, 207, 1, 24, 0x59a006ed, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 207, 208, 1, 24, 0x4b74062e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 208, 209, 1, 24, 0x5034066e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 209, 210, 1, 24, 0x54f406ae, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 210, 211, 1, 24, 0x59b406ee, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 211, 212, 1, 24, 0x4b88062f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 212, 213, 1, 24, 0x5048066f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 213, 214, 1, 24, 0x550806af, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 214, 215, 1, 24, 0x59c806ef, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 215, 216, 1, 24, 0x4b9c0630, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 216, 217, 1, 24, 0x505c0670, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 217, 218, 1, 24, 0x551c06b0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 218, 219, 1, 24, 0x59dc06f0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 219, 220, 1, 24, 0x4bb00631, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 220, 221, 1, 24, 0x50700671, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 221, 222, 1, 24, 0x553006b1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 222, 223, 1, 24, 0x59f006f1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 223, 224, 1, 24, 0x4bc40632, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 224, 225, 1, 24, 0x50840672, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 225, 226, 1, 24, 0x554406b2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 226, 227, 1, 24, 0x5a0406f2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 227, 228, 1, 24, 0x4bd80633, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 228, 229, 1, 24, 0x50980673, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 229, 230, 1, 24, 0x555806b3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 230, 231, 1, 24, 0x5a1806f3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 231, 232, 1, 24, 0x4bec0634, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 232, 233, 1, 24, 0x50ac0674, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 233, 234, 1, 24, 0x556c06b4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 234, 235, 1, 24, 0x5a2c06f4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 235, 236, 1, 24, 0x4c000635, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 236, 237, 1, 57, 0x7b1c0e9e, S=1, Quality stats, 8, 0x05ec00be
0, 237, 238, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 238, 239, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 239, 240, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 240, 241, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 241, 242, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 242, 243, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 243, 244, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 244, 245, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 245, 246, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 246, 247, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 247, 248, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 248, 249, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 249, 250, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 250, 251, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 251, 252, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 252, 253, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 253, 254, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 254, 255, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 255, 256, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 256, 257, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 257, 258, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 258, 259, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 259, 260, 1, 24, 0x590006e5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 260, 261, 1, 24, 0x4ad40626, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 261, 262, 1, 24, 0x4f940666, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 262, 263, 1, 24, 0x545406a6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 263, 264, 1, 24, 0x591406e6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 264, 265, 1, 24, 0x4ae80627, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 265, 266, 1, 24, 0x4fa80667, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 266, 267, 1, 24, 0x546806a7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 267, 268, 1, 24, 0x592806e7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 268, 269, 1, 24, 0x4afc0628, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 269, 270, 1, 24, 0x4fbc0668, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 270, 271, 1, 24, 0x547c06a8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 271, 272, 1, 24, 0x593c06e8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 272, 273, 1, 24, 0x4b100629, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 273, 274, 1, 24, 0x4fd00669, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 274, 275, 1, 24, 0x549006a9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 275, 276, 1, 24, 0x595006e9, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 276, 277, 1, 24, 0x4b24062a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 277, 278, 1, 24, 0x4fe4066a, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 278, 279, 1, 24, 0x54a406aa, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 279, 280, 1, 24, 0x596406ea, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 280, 281, 1, 24, 0x4b38062b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 281, 282, 1, 24, 0x4ff8066b, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 282, 283, 1, 24, 0x54b806ab, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 283, 284, 1, 24, 0x597806eb, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 284, 285, 1, 24, 0x4b4c062c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 285, 286, 1, 24, 0x500c066c, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 286, 287, 1, 24, 0x54cc06ac, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 287, 288, 1, 24, 0x598c06ec, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 288, 289, 1, 24, 0x4b60062d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 289, 290, 1, 24, 0x5020066d, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 290, 291, 1, 24, 0x54e006ad, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 291, 292, 1, 24, 0x59a006ed, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 292, 293, 1, 24, 0x4b74062e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 293, 294, 1, 24, 0x5034066e, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 294, 295, 1, 24, 0x54f406ae, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 295, 296, 1, 24, 0x59b406ee, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 296, 297, 1, 24, 0x4b88062f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 297, 298, 1, 24, 0x5048066f, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 298, 299, 1, 24, 0x550806af, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 299, 300, 1, 24, 0x59c806ef, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 300, 301, 1, 24, 0x4b9c0630, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 301, 302, 1, 24, 0x505c0670, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 302, 303, 1, 24, 0x551c06b0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 303, 304, 1, 24, 0x59dc06f0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 304, 305, 1, 24, 0x4bb00631, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 305, 306, 1, 24, 0x50700671, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 306, 307, 1, 24, 0x553006b1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 307, 308, 1, 24, 0x59f006f1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 308, 309, 1, 24, 0x4bc40632, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 309, 310, 1, 24, 0x50840672, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 310, 311, 1, 24, 0x554406b2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 311, 312, 1, 24, 0x5a0406f2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 312, 313, 1, 24, 0x4bd80633, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 313, 314, 1, 24, 0x50980673, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 314, 315, 1, 24, 0x555806b3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 315, 316, 1, 24, 0x5a1806f3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 316, 317, 1, 24, 0x4bec0634, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 317, 318, 1, 24, 0x50ac0674, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 318, 319, 1, 24, 0x556c06b4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 319, 320, 1, 24, 0x5a2c06f4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 320, 321, 1, 24, 0x4c000635, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 321, 322, 1, 24, 0x50c00675, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 322, 323, 1, 24, 0x558006b5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 323, 324, 1, 24, 0x5a4006f5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 324, 325, 1, 24, 0x4c140636, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 325, 326, 1, 24, 0x50d40676, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 326, 327, 1, 24, 0x559406b6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 327, 328, 1, 24, 0x5a5406f6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 328, 329, 1, 24, 0x4c280637, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 329, 330, 1, 24, 0x50e80677, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 330, 331, 1, 24, 0x55a806b7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 331, 332, 1, 24, 0x5a6806f7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 332, 333, 1, 24, 0x4c3c0638, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 333, 334, 1, 24, 0x50fc0678, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 334, 335, 1, 24, 0x55bc06b8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 335, 336, 1, 24, 0x5a7c06f8, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 336, 337, 1, 57, 0x899c0f1e, S=1, Quality stats, 8, 0x05ec00be
0, 337, 338, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 338, 339, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 339, 340, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 340, 341, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 341, 342, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 342, 343, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 343, 344, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 344, 345, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 345, 346, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 346, 347, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 347, 348, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 348, 349, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 349, 350, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 350, 351, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 351, 352, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 352, 353, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 353, 354, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 354, 355, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 355, 356, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 356, 357, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 357, 358, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 358, 359, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 359, 360, 1, 24, 0x590006e5, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 360, 361, 1, 24, 0x4ad40626, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 361, 362, 1, 24, 0x4f940666, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 362, 363, 1, 24, 0x545406a6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 363, 364, 1, 24, 0x591406e6, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 364, 365, 1, 24, 0x4ae80627, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 365, 366, 1, 24, 0x4fa80667, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 366, 367, 1, 24, 0x546806a7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 367, 368, 1, 24, 0x592806e7, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 368, 369, 1, 57, 0x9b930fc1, S=1, Quality stats, 8, 0x05ec00be
0, 369, 370, 1, 24, 0x4f1c0660, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 370, 371, 1, 24, 0x53dc06a0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 371, 372, 1, 24, 0x589c06e0, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 372, 373, 1, 24, 0x4a700621, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 373, 374, 1, 24, 0x4f300661, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 374, 375, 1, 24, 0x53f006a1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 375, 376, 1, 24, 0x58b006e1, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 376, 377, 1, 24, 0x4a840622, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 377, 378, 1, 24, 0x4f440662, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 378, 379, 1, 24, 0x540406a2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 379, 380, 1, 24, 0x58c406e2, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 380, 381, 1, 24, 0x4a980623, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 381, 382, 1, 24, 0x4f580663, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 382, 383, 1, 24, 0x541806a3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 383, 384, 1, 24, 0x58d806e3, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 384, 385, 1, 24, 0x4aac0624, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 385, 386, 1, 24, 0x4f6c0664, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 386, 387, 1, 24, 0x542c06a4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 387, 388, 1, 24, 0x58ec06e4, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 388, 389, 1, 24, 0x4ac00625, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 389, 390, 1, 24, 0x4f800665, F=0x0, S=1, Quality stats, 8, 0x076800ee
0, 390, 391, 1, 24, 0x544006a5, F=0x0, S=1, Quality stats, 8, 0x076800ee