Commit fb7925ba authored by Josh de Kock's avatar Josh de Kock Committed by Kieran Kunhya

fate: add api-h264-slice test

This test ensures that you are able to send N number of slice NALUs in slice threaded mode to be decoded simultaneously
parent 0a055f46
APITESTPROGS-$(call ENCDEC, FLAC, FLAC) += api-flac
APITESTPROGS-$(call DEMDEC, H264, H264) += api-h264
APITESTPROGS-$(call DEMDEC, H264, H264) += api-h264-slice
APITESTPROGS-yes += api-seek
APITESTPROGS-yes += api-codec-param
APITESTPROGS-$(call DEMDEC, H263, H263) += api-band
......
/*
* Copyright (c) 2001 Fabrice Bellard
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#define MAX_SLICES 8
// ./fate 2 ./crew_cif out.y4m
#include "config.h"
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#if HAVE_IO_H
#include <io.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "libavformat/network.h"
#include "libavcodec/avcodec.h"
#include "libavutil/pixdesc.h"
#include "libavutil/hash.h"
static int header = 0;
static void decode(AVCodecContext *dec_ctx, AVFrame *frame,
AVPacket *pkt)
{
static uint64_t frame_cnt = 0;
int ret;
ret = avcodec_send_packet(dec_ctx, pkt);
if (ret < 0) {
fprintf(stderr, "Error sending a packet for decoding: %s\n", av_err2str(ret));
exit(1);
}
while (ret >= 0) {
const AVPixFmtDescriptor *desc;
char *sum;
struct AVHashContext *hash;
ret = avcodec_receive_frame(dec_ctx, frame);
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
return;
} else if (ret < 0) {
fprintf(stderr, "Error during decoding: %s\n", av_err2str(ret));
exit(1);
}
if (!header) {
printf(
"#format: frame checksums\n"
"#version: 2\n"
"#hash: MD5\n"
"#tb 0: 1/30\n"
"#media_type 0: video\n"
"#codec_id 0: rawvideo\n"
"#dimensions 0: 352x288\n"
"#sar 0: 128/117\n"
"#stream#, dts, pts, duration, size, hash\n");
header = 1;
}
desc = av_pix_fmt_desc_get(dec_ctx->pix_fmt);
av_hash_alloc(&hash, "md5");
av_hash_init(hash);
sum = av_mallocz(av_hash_get_size(hash) * 2 + 1);
for (int i = 0; i < frame->height; i++)
av_hash_update(hash, &frame->data[0][i * frame->linesize[0]], frame->width);
for (int i = 0; i < frame->height >> desc->log2_chroma_h; i++)
av_hash_update(hash, &frame->data[1][i * frame->linesize[1]], frame->width >> desc->log2_chroma_w);
for (int i = 0; i < frame->height >> desc->log2_chroma_h; i++)
av_hash_update(hash, &frame->data[2][i * frame->linesize[2]], frame->width >> desc->log2_chroma_w);
av_hash_final_hex(hash, sum, av_hash_get_size(hash) * 2 + 1);
printf("0, %10"PRId64", %10"PRId64", 1, %8d, %s\n",
frame_cnt, frame_cnt,
(frame->width * frame->height + 2 * (frame->height >> desc->log2_chroma_h) * (frame->width >> desc->log2_chroma_w)), sum);
frame_cnt += 1;
av_free(hash);
av_free(sum);
}
}
int main(int argc, char **argv)
{
const AVCodec *codec;
AVCodecContext *c = NULL;
AVFrame *frame;
unsigned int threads;
AVPacket *pkt;
FILE *fd;
char nal[MAX_SLICES * UINT16_MAX + AV_INPUT_BUFFER_PADDING_SIZE];
int nals = 0;
char *p = nal;
if (argc < 4) {
fprintf(stderr, "Usage: %s <threads> <input file> <output file>\n", argv[0]);
exit(1);
}
if (!(threads = strtoul(argv[1], NULL, 0)))
threads = 1;
else if (threads > MAX_SLICES)
threads = MAX_SLICES;
#ifdef _WIN32
setmode(fileno(stdout), O_BINARY);
#endif
if (!(pkt = av_packet_alloc()))
exit(1);
if (!(codec = avcodec_find_decoder(AV_CODEC_ID_H264))) {
fprintf(stderr, "Codec not found\n");
exit(1);
}
if (!(c = avcodec_alloc_context3(codec))) {
fprintf(stderr, "Could not allocate video codec context\n");
exit(1);
}
c->width = 352;
c->height = 288;
c->flags2 |= AV_CODEC_FLAG2_CHUNKS;
c->thread_type = FF_THREAD_SLICE;
c->thread_count = threads;
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "Could not open codec\n");
exit(1);
}
#if HAVE_THREADS
if (c->active_thread_type != FF_THREAD_SLICE) {
fprintf(stderr, "Couldn't activate slice threading: %d\n", c->active_thread_type);
exit(1);
}
#else
fprintf(stderr, "WARN: not using threads, only checking decoding slice NALUs\n");
#endif
if (!(frame = av_frame_alloc())) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
if (!(fd = fopen(argv[2], "rb"))) {
fprintf(stderr, "Couldn't open NALU file: %s\n", argv[2]);
exit(1);
}
while(1) {
uint16_t size = 0;
ssize_t ret = fread(&size, 1, sizeof(uint16_t), fd);
if (ret < 0) {
perror("Couldn't read size");
exit(1);
} else if (ret != sizeof(uint16_t))
break;
size = ntohs(size);
ret = fread(p, 1, size, fd);
if (ret < 0 || ret != size) {
perror("Couldn't read data");
exit(1);
}
p += ret;
if (++nals >= threads) {
pkt->data = nal;
pkt->size = p - nal;
decode(c, frame, pkt);
memset(nal, 0, MAX_SLICES * UINT16_MAX + AV_INPUT_BUFFER_PADDING_SIZE);
nals = 0;
p = nal;
}
}
if (nals) {
pkt->data = nal;
pkt->size = p - nal;
decode(c, frame, pkt);
}
decode(c, frame, NULL);
fclose(fd);
avcodec_free_context(&c);
av_frame_free(&frame);
av_packet_free(&pkt);
return 0;
}
......@@ -12,6 +12,10 @@ FATE_API_SAMPLES_LIBAVFORMAT-$(call DEMDEC, H264, H264) += fate-api-h264
fate-api-h264: $(APITESTSDIR)/api-h264-test$(EXESUF)
fate-api-h264: CMD = run $(APITESTSDIR)/api-h264-test $(TARGET_SAMPLES)/h264-conformance/SVA_NL2_E.264
FATE_API_SAMPLES_LIBAVFORMAT-$(call DEMDEC, H264, H264) += fate-api-h264-slice
fate-api-h264-slice: $(APITESTSDIR)/api-h264-slice-test$(EXESUF)
fate-api-h264-slice: CMD = run $(APITESTSDIR)/api-h264-slice-test 2 $(TARGET_SAMPLES)/h264/crew_cif.nal api-h264-slice.h264
FATE_API_LIBAVFORMAT-$(call DEMDEC, FLV, FLV) += fate-api-seek
fate-api-seek: $(APITESTSDIR)/api-seek-test$(EXESUF) fate-lavf-flv_fmt
fate-api-seek: CMD = run $(APITESTSDIR)/api-seek-test $(TARGET_PATH)/tests/data/lavf/lavf.flv 0 720
......
#format: frame checksums
#version: 2
#hash: MD5
#tb 0: 1/30
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 128/117
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 152064, 28a2f99d62b553403fcffc1f680d5403
0, 1, 1, 1, 152064, cd95f40841e08160ace0d64506f8adbf
0, 2, 2, 1, 152064, 32f37a1b3ddc2b8b0f6283f0c403a976
0, 3, 3, 1, 152064, 643c0b0702072038578ef5ae2000c1a0
0, 4, 4, 1, 152064, 8d9c9660705f7533e7f49f11693aedf9
0, 5, 5, 1, 152064, 66a794f8a116c055451091e0e4cd911e
0, 6, 6, 1, 152064, 8ad529648796ae6da279de0b7ca34f72
0, 7, 7, 1, 152064, 898ad4170eb740d713de254eb4bfe255
0, 8, 8, 1, 152064, f96cfc1f00df10003e144529a5fae6c6
0, 9, 9, 1, 152064, 0351a3b68dc87ba5963624e1461788da
0, 10, 10, 1, 152064, 6718e4086a0039584bcc37dcd4be6a67
0, 11, 11, 1, 152064, fb4fec78d9434b9579b31f8ad0472762
0, 12, 12, 1, 152064, ec2dcc547d84e15383dcee8462bb9d0c
0, 13, 13, 1, 152064, ea62711bf59b4d1d56cb9dbcb68a8eda
0, 14, 14, 1, 152064, 75b1cb899a9d9e695106f187c20b91f8
0, 15, 15, 1, 152064, 44a13e4235c2ed3692af5ef698efe4d3
0, 16, 16, 1, 152064, 6d5f1249d96573782fa95e9228d1ad0a
0, 17, 17, 1, 152064, fce8503dd9472fc7932ffbe21425d45a
0, 18, 18, 1, 152064, e93489a6b4c38d611493a3721aa994d7
0, 19, 19, 1, 152064, 04580677a663ddba1b747c2ab0d598e6
0, 20, 20, 1, 152064, a28cceb666c92eaecc3da3e092b83715
0, 21, 21, 1, 152064, ba9ce0f84fb16c27453666265ad54e35
0, 22, 22, 1, 152064, 946e014822ab2b45c52d3e08e7db97c2
0, 23, 23, 1, 152064, b7a40ebb6ac72b322ccfca2568fa521a
0, 24, 24, 1, 152064, cb5a0564af00a00496950ad705a160ce
0, 25, 25, 1, 152064, dbad9e8e79c04b1df497884ec28e3a59
0, 26, 26, 1, 152064, 3c748cdc0e6ec79ca72482e22f0c3ef8
0, 27, 27, 1, 152064, 1740911da2ebbdc729cbbea0df466c44
0, 28, 28, 1, 152064, 3b322e03fcc16d6a0dea651634ce0b40
0, 29, 29, 1, 152064, a7fca405425015b85cb58ec1aece575b
0, 30, 30, 1, 152064, 2004eec0c923f1855b4b918e6dcb5e02
0, 31, 31, 1, 152064, 20542f58f1622f58f3cbf4b2bf0b772f
0, 32, 32, 1, 152064, 8872f5cb900ed8d317f3abe50a147934
0, 33, 33, 1, 152064, 774ba43dc0cd7932099e3e0633e25721
0, 34, 34, 1, 152064, 4f2d9b7e6d115bd103ccd9945f85582f
0, 35, 35, 1, 152064, f53542ca7f6d5ec462770ffff3f4bfd0
0, 36, 36, 1, 152064, 43b5f8c4e6dc3dc1acc903687bc90293
0, 37, 37, 1, 152064, aa7d265ab285ded777a970debe6a08d5
0, 38, 38, 1, 152064, 818ae082b3dd9557e04710d7cfd700be
0, 39, 39, 1, 152064, 44cfe472ccedf8a44d0b90c97932caae
0, 40, 40, 1, 152064, 5d2756c81c90bb10484e2e892fce0e0c
0, 41, 41, 1, 152064, c1b254a4b66dc9d769e10316976f5538
0, 42, 42, 1, 152064, 03808a3f7b01293dbe6089b33e3dc103
0, 43, 43, 1, 152064, 8c689a6143a8a89415d2e645bb0fe925
0, 44, 44, 1, 152064, 24268cac7d78eefd8e247ec599e60b4f
0, 45, 45, 1, 152064, ac3195c57a3ebe3871992acfc3182e2f
0, 46, 46, 1, 152064, 8730a99fb5a2573475f61d4e7998ba44
0, 47, 47, 1, 152064, 651042c34273096db82879fcdd91310d
0, 48, 48, 1, 152064, 972b47241098a9b6471ba6c8ccc2b83b
0, 49, 49, 1, 152064, e8e53022355e6bf7ac50d53bcb1bdc92
0, 50, 50, 1, 152064, e5b003b04a88e0d60d446eb5b600cc66
0, 51, 51, 1, 152064, 1c2317c071a33b0b465bbcea04411ddf
0, 52, 52, 1, 152064, 7bd53f4e852370aaeb6b0d042d24b94a
0, 53, 53, 1, 152064, 6ef30966b0d9c0d92b2350e2f45197a8
0, 54, 54, 1, 152064, 354e2afff0d056193d6c4c2667c638d3
0, 55, 55, 1, 152064, e67767e97f44c3ef80ea4acee41af0ff
0, 56, 56, 1, 152064, 32589395bf7d07c1c6df644d43b5bbba
0, 57, 57, 1, 152064, 2f2b56210b87142fa3620cce5c56af02
0, 58, 58, 1, 152064, 599781773ace555c82ac591cc2acf8ec
0, 59, 59, 1, 152064, 2465cf6313dab6bda9171993ff6168de
0, 60, 60, 1, 152064, 54cc6c8a9b3fd95b9700d319c4a69297
0, 61, 61, 1, 152064, 9e813429ebf7ee4e11fcd4976974fea0
0, 62, 62, 1, 152064, fac0303897b4d1bd1a202fe0a7d1c6f7
0, 63, 63, 1, 152064, accb382b99f2d27cefbc9f7ea315f80c
0, 64, 64, 1, 152064, b88711feaee9f7f84da34028b7e2cc81
0, 65, 65, 1, 152064, 80549aebdcc5629dfc3bee8112536bac
0, 66, 66, 1, 152064, 9c63aa480b5d9937d839b809ba67eee2
0, 67, 67, 1, 152064, 5e5a729c45a995ba2a97083fca69c9e9
0, 68, 68, 1, 152064, 6b59c5d4460d78fa337b94b080e72215
0, 69, 69, 1, 152064, 166d675f774f4f74dbce7e2728afd16c
0, 70, 70, 1, 152064, 3051629ff9281ea8879bce0ed62c1e71
0, 71, 71, 1, 152064, c2ff4493434ca4fea45c724c10bcbe55
0, 72, 72, 1, 152064, 907274f16ebeb7c09de8bc124c1fe586
0, 73, 73, 1, 152064, 88efefc9fc00d88fbce20f4d74a55d25
0, 74, 74, 1, 152064, 357bdbcb828c088b748022df9e47b9c7
0, 75, 75, 1, 152064, 4550087923c1d4195ab536899a99d429
0, 76, 76, 1, 152064, 2b07777d9109577eaedc87321dd3ff69
0, 77, 77, 1, 152064, 4a377c552c62cba06d5285aa8478a540
0, 78, 78, 1, 152064, a0e893c028e106c2394f0578f00ae88a
0, 79, 79, 1, 152064, c0db0e2ee3768d2e4e71581a2be30707
0, 80, 80, 1, 152064, 954e0cd38b00ea2181b8c322511536f0
0, 81, 81, 1, 152064, 53ff687670a2490ac3f94405014251b8
0, 82, 82, 1, 152064, 64a588b7adbc560ec4ad6823c37e41c6
0, 83, 83, 1, 152064, 60d65e899976214cd3b2b5abb10f2b83
0, 84, 84, 1, 152064, 1bf0efef4b204a72d05b21c18a569585
0, 85, 85, 1, 152064, 65d814be6b698ab1185f082c9c9d7de3
0, 86, 86, 1, 152064, de26e7e663aaeb642e0a94776c5bf22c
0, 87, 87, 1, 152064, f7b0b259ccf21e59fcacd95945a013c3
0, 88, 88, 1, 152064, 7f3185bb4dc3368733bd29c9aa9e08eb
0, 89, 89, 1, 152064, 3cedc14798d145fcdc8b8a3082de3b88
0, 90, 90, 1, 152064, c5792622ca4a04d21e1f2c2b2ff692fe
0, 91, 91, 1, 152064, d13199fa94e53643902a8a26e33c9862
0, 92, 92, 1, 152064, b380359e836896d7698a8dadfe6d6fdc
0, 93, 93, 1, 152064, 4c7c5f1f093f7bcaddf06068b9b1d2e5
0, 94, 94, 1, 152064, 73f33e1eedea9aa5e6c3f2b636dd2c23
0, 95, 95, 1, 152064, f0d2aad6477ace945f87b25cb44f3ff0
0, 96, 96, 1, 152064, d90bddd7c2279bbd0266a26915202712
0, 97, 97, 1, 152064, 0b377a48dea8fc2702395796808af63f
0, 98, 98, 1, 152064, ea0099179e806a9680f019446e39d125
0, 99, 99, 1, 152064, a77dd3069c54b255e45b261f31be80d2
0, 100, 100, 1, 152064, d362dcbe415329e713ff6ef9e6447d87
0, 101, 101, 1, 152064, 15441bcb307ac24766ceba8db42f9413
0, 102, 102, 1, 152064, 79b953e72d11d3fa6d6974e4b8b13392
0, 103, 103, 1, 152064, ec8c35c829fac56ca8ae2f0160ae5d7f
0, 104, 104, 1, 152064, c104f8f1d17629b0449f4a2af2e40f73
0, 105, 105, 1, 152064, 4661c4b3c2b1a03a8e23e7e88e974f22
0, 106, 106, 1, 152064, 7cb48bae9841f67294b2e25a73d46a8e
0, 107, 107, 1, 152064, bddcb2c64a4257760f50714ec8c49243
0, 108, 108, 1, 152064, c2123750802357c25c352f09bd1b1de2
0, 109, 109, 1, 152064, 6eb5af4f3ad69cc88e0c08f6aa9bb034
0, 110, 110, 1, 152064, 063991a633a051d6889f0fff41059e5f
0, 111, 111, 1, 152064, fa736839a01ad04fe08d437c7fa60a2d
0, 112, 112, 1, 152064, 85a43397c5a1defe15b61464c8d1457a
0, 113, 113, 1, 152064, da50c437613be59486012b69c7953f63
0, 114, 114, 1, 152064, eb32e24757a98192928324d3a389a3dc
0, 115, 115, 1, 152064, 1bf511fb8245e3be71ebefdcf506575d
0, 116, 116, 1, 152064, 4479c195c4cd4111afe561a07c0f626d
0, 117, 117, 1, 152064, 0b1815f0c28bb55aae515a5dc3a34f3b
0, 118, 118, 1, 152064, 300d3c32442bd554384b3c804dd519ad
0, 119, 119, 1, 152064, 197df868e0488b8b12c0b42d8c4b2aec
0, 120, 120, 1, 152064, 03bce34c3214e0144a0928b9b9acc8e8
0, 121, 121, 1, 152064, ba73a879b8fca5db4a354075b26ccb6a
0, 122, 122, 1, 152064, b1c34c6d2535bf1e7af3a6936d1627df
0, 123, 123, 1, 152064, 77d162995974428c5c7766ee5627eac1
0, 124, 124, 1, 152064, fa4c70aa68850bcae2579046557c0b5f
0, 125, 125, 1, 152064, 63ce618e67f380000030c97db78ac4ae
0, 126, 126, 1, 152064, 7e32538d501127faf058792e83fbbe43
0, 127, 127, 1, 152064, 61bc1d685553a97a7c3b0cbb3790faad
0, 128, 128, 1, 152064, 57f3b97e4a80ded30b9e8f12cfc8ff44
0, 129, 129, 1, 152064, 31db51a64307ca6f1db866a01befa301
0, 130, 130, 1, 152064, 59924d342068caf1ad7329b947279e2d
0, 131, 131, 1, 152064, 2f0f9dd3056cac40c17684bcccdf267d
0, 132, 132, 1, 152064, b00df17142f99bdc077cb2e4c5c8b747
0, 133, 133, 1, 152064, e7c40734dea5433038b975666be7b21e
0, 134, 134, 1, 152064, 51d77965d3a9d431a2c409244c9bc465
0, 135, 135, 1, 152064, 15b54bdc5e2098fe7c01ce689babe08b
0, 136, 136, 1, 152064, 3fa3284ae3f714ea197ad614bff7c5c5
0, 137, 137, 1, 152064, c6512a19b7b1b29c05c7b825b41ab930
0, 138, 138, 1, 152064, b13c8bc436186d47595dc69186f1f927
0, 139, 139, 1, 152064, d5eff490784883a93dd3aaea08c46d5b
0, 140, 140, 1, 152064, a005ac77851ea3a44e261d9067ee835f
0, 141, 141, 1, 152064, 6706b74dc10c72f27e9f6341710e56ac
0, 142, 142, 1, 152064, 46479f86f53f55d2094354eb9bed78df
0, 143, 143, 1, 152064, 17f5cd040eb766ece29d1c1e283e9c20
0, 144, 144, 1, 152064, 4f34c43eeeac2c751aac486ba42d9b9a
0, 145, 145, 1, 152064, 24c16b9d01c316305686af1a12f7be49
0, 146, 146, 1, 152064, 9ae9b1f109fa3d02f226fefdaf395be6
0, 147, 147, 1, 152064, eb98c1c6e473d8b53069206ffc69a9cb
0, 148, 148, 1, 152064, f0768d9cb981d277b70d1b3b928f4915
0, 149, 149, 1, 152064, c1a5cef2bdb3f3b932a051c29d31f889
0, 150, 150, 1, 152064, 8f75fb3a6f994b90999f8b0c664ad7c4
0, 151, 151, 1, 152064, 3a778c9c86afaf03f2e60668d849e25b
0, 152, 152, 1, 152064, 4c3dd11965a2cf55790088a99289981a
0, 153, 153, 1, 152064, 763f810845e6f4e798a6edb6633f5506
0, 154, 154, 1, 152064, 6b305b9d79151c1644c924d522091eea
0, 155, 155, 1, 152064, e981ce0e01f24eca2e89c7c81480fb07
0, 156, 156, 1, 152064, 91349f36d44383dc1cd72f0a3f9c76ed
0, 157, 157, 1, 152064, 9a67f029ed2370983ff3e24d8c2c65d2
0, 158, 158, 1, 152064, cf5717cb593fbafad6abf8bdb7ca2737
0, 159, 159, 1, 152064, 7ece8c2497ca72e4f8e9eb69048391f8
0, 160, 160, 1, 152064, 9dccce22ca32a7ec8890f77e4de1fa42
0, 161, 161, 1, 152064, f418dc75e266c47ba84275741f0635cb
0, 162, 162, 1, 152064, aeddab213baab78ed0c44abb7409e291
0, 163, 163, 1, 152064, a0b5e3c0616105580a310529ed71d072
0, 164, 164, 1, 152064, e0e96da8724b472868634b6b145ebb2e
0, 165, 165, 1, 152064, bdaaf9623f5d329c8706e4850db0beea
0, 166, 166, 1, 152064, 6566ddd82da9096458e039caa7d56674
0, 167, 167, 1, 152064, b882cb5f1c6059d338273e8fdb18e41e
0, 168, 168, 1, 152064, f9723e59ce02828e64c16d32216441b2
0, 169, 169, 1, 152064, 98b5a843bf125eeae0240bde40016d6a
0, 170, 170, 1, 152064, 8958b81f8a028928c4b9a7024a4eebff
0, 171, 171, 1, 152064, 25a8acfdd14a472a8090d41626472070
0, 172, 172, 1, 152064, 6faf859c0b264b6d76e0823c6045cebd
0, 173, 173, 1, 152064, 0774a3470360c37ede375d19aebe1844
0, 174, 174, 1, 152064, 5dd921d4f05976fb6bbf5cc6996254e0
0, 175, 175, 1, 152064, d03d789e3c439420a07e3e919ddd1cf0
0, 176, 176, 1, 152064, 1fad139023f7d7022f8f65a6e31f68a9
0, 177, 177, 1, 152064, 0c706070d649da054eeaf686d2e14a1d
0, 178, 178, 1, 152064, 51e4156b19bdc55e993d1956473827e3
0, 179, 179, 1, 152064, e447458fd86c022852cedf56dc58f34f
0, 180, 180, 1, 152064, 59732caeb824f052044b4434ef564227
0, 181, 181, 1, 152064, cf5ccf671ddc89e1f430878afb86fced
0, 182, 182, 1, 152064, e3e98f92e4cf8f0ccce27482407ebbf1
0, 183, 183, 1, 152064, 089d236d04d1918b319524e3002d21c8
0, 184, 184, 1, 152064, 7063afc35aa2c24b1e3dc781bb612af1
0, 185, 185, 1, 152064, 902e5153028215ac60bf0f998673e3ca
0, 186, 186, 1, 152064, 2360fb2ed2b0e7c37a318fb7f9df7550
0, 187, 187, 1, 152064, be0788a6a06906f57f7ad1e0e4c0aba7
0, 188, 188, 1, 152064, db90ee89bbeefcd54b79f022ed9d62d9
0, 189, 189, 1, 152064, 7237b5c1e6f182805d4e324e636f2a45
0, 190, 190, 1, 152064, e5da5c0643e457087f54935cfa50f7c0
0, 191, 191, 1, 152064, 89b5d462accdc4cfaed1e57de4589f39
0, 192, 192, 1, 152064, b670710e2f897f20d83c42bcd0ee7d85
0, 193, 193, 1, 152064, 9c7ceba12895f2a670e4a1498d28951c
0, 194, 194, 1, 152064, 4b426b0719a67bc228e1928e83b47b53
0, 195, 195, 1, 152064, b2c646cd4d3b100619fd6e626ea8b3cb
0, 196, 196, 1, 152064, ad9abc825e1b87ec0defb1df032364e6
0, 197, 197, 1, 152064, 21423e23c708f43a9d615bc2bc700d97
0, 198, 198, 1, 152064, 14a42211968cd4b8416ebc0285eb02b3
0, 199, 199, 1, 152064, a45eb0c4f6a9c5beeb90a292be71461e
0, 200, 200, 1, 152064, f9bfba991f0a0ea6bbfdde5d23bd8785
0, 201, 201, 1, 152064, 49d33752288ddef86dc702652f688c75
0, 202, 202, 1, 152064, 97b50290b4a1e2f31c704cc302fe89d8
0, 203, 203, 1, 152064, c3006dcc89d2f45379c840c7dd5f7559
0, 204, 204, 1, 152064, 4a861c22e63478ffe73571909da9a15f
0, 205, 205, 1, 152064, e7a8bff496059d3cd40470920fb26c75
0, 206, 206, 1, 152064, 989d818e0d7d8eea14da209c37ad3e0b
0, 207, 207, 1, 152064, 1732c746805ca221c85fb5570911378d
0, 208, 208, 1, 152064, 60ece5f795f5756bef34ba84fb6fec2a
0, 209, 209, 1, 152064, 9fd355648ef40dd0e15c81554b111637
0, 210, 210, 1, 152064, 2a3b9220b98ea648e395ab9ea12023d2
0, 211, 211, 1, 152064, eea2a06e68196917ba2a754563953cd5
0, 212, 212, 1, 152064, 3c2ec831a9802a968654df1bee81ca40
0, 213, 213, 1, 152064, 590abeedce1cfa9df8a00d7ab9cf2c8e
0, 214, 214, 1, 152064, bc07f89391568a78854f99ad9fd62c49
0, 215, 215, 1, 152064, 0bd866450376be96a85690595d96d909
0, 216, 216, 1, 152064, 33483531a4d760bdc30a77d5de49aff7
0, 217, 217, 1, 152064, b0294c6e784fa3f15532331063c5036f
0, 218, 218, 1, 152064, f4f3ba2781b2a9be3c2dd5b4c445e0d9
0, 219, 219, 1, 152064, 8550626512e0602a1c53bfb8c51427d8
0, 220, 220, 1, 152064, 0c2d0229196825910e5f487c33b45ef3
0, 221, 221, 1, 152064, 93dbbed468f0012b921aa0b2b6751a70
0, 222, 222, 1, 152064, 2f0d99dc6d4b5c65bc18946b1e6cdc4c
0, 223, 223, 1, 152064, fb25cbe655fc050bbcbfe9cc3fa06ffe
0, 224, 224, 1, 152064, 376d3f894957b3bac2308f2662ad5c82
0, 225, 225, 1, 152064, 46b5c54ea38987b9e3d371a64d06300d
0, 226, 226, 1, 152064, 9bd24bc1a94aed633ff63aac5b720269
0, 227, 227, 1, 152064, df0bb3f7724048f67c4a60a1dbb3d5e6
0, 228, 228, 1, 152064, a9d1c8b8007ea61c0ab2f97b3cfc2aea
0, 229, 229, 1, 152064, fd5a4ccab51773b09edca30e665999e8
0, 230, 230, 1, 152064, 0eaf8218244c9b2e78660cf923755557
0, 231, 231, 1, 152064, 40f4fc64016fd148b14aea2da7652125
0, 232, 232, 1, 152064, 6f075b312e9f7e1b4c3343441a9e1f7f
0, 233, 233, 1, 152064, 93f7523632abfe91fa701208aafdc29a
0, 234, 234, 1, 152064, 3c3ea7aa12a89df2309b76c22053b0ff
0, 235, 235, 1, 152064, 2181a1aec4278efa70dec025878d88c0
0, 236, 236, 1, 152064, 35dffda6543fdf43ad182484564abda8
0, 237, 237, 1, 152064, bf2b65551a8fcf3b1b4185e0ebfca2a7
0, 238, 238, 1, 152064, 49fd2dd18ddbb7f005c3705910bff99f
0, 239, 239, 1, 152064, 9f6826599ebd45a1159e46d293fc8f7b
0, 240, 240, 1, 152064, 5b88b8ec1da51a165e2741f8a6b710ad
0, 241, 241, 1, 152064, a81229c0d464cc8d376f8b0153b50fc2
0, 242, 242, 1, 152064, 07ef482c1c9967700a6cef5cdd010384
0, 243, 243, 1, 152064, d4ebe4de6e096f7cccd5ae2be856e983
0, 244, 244, 1, 152064, 6daf25ffb2c2baf02e483e84733fc37b
0, 245, 245, 1, 152064, d52f485c747e945bfe34aeeaaec4fe78
0, 246, 246, 1, 152064, 408e5b502af7a10454af6f388e2722be
0, 247, 247, 1, 152064, 684d285dc9c08791ce16e02a1f65e22b
0, 248, 248, 1, 152064, 5de9b8f8678c6b7a1ff04f217ef8c0c3
0, 249, 249, 1, 152064, b60f9e37dcfc3924adcfc96d08fb2656
0, 250, 250, 1, 152064, 8975d551bb7c01cb520b5694e73d1809
0, 251, 251, 1, 152064, af55f9897a3fa51eacdcebf3a21f5fe5
0, 252, 252, 1, 152064, 10c21c5167cba09ce54f361e88e6e3c9
0, 253, 253, 1, 152064, 8cb92c4a8d32fe00a92c5bd4a163cc45
0, 254, 254, 1, 152064, 3d39fd1222c8421f0eed3c8249c3d772
0, 255, 255, 1, 152064, 43c5629af47dc4fd659bffe481e84999
0, 256, 256, 1, 152064, ad6d5a0f4d2d2738809b7f610f6da823
0, 257, 257, 1, 152064, d2f0dbca68098d58468e94b84ef0fb8b
0, 258, 258, 1, 152064, 247487ae60500313df92dd0175ac4e0f
0, 259, 259, 1, 152064, cfbbabb4b8c93c87c221f76a155bb0fc
0, 260, 260, 1, 152064, c708254a644abc41788d717dd59b8baf
0, 261, 261, 1, 152064, fa710d87bddd1a65970c5618a8a0158f
0, 262, 262, 1, 152064, 31210937c8a67c6aafda2e03226b9770
0, 263, 263, 1, 152064, ac518a56fc537de251f3d28d380e25cb
0, 264, 264, 1, 152064, afcb7642c336bcef9b605a40e518d305
0, 265, 265, 1, 152064, 15fd29e16aaebae6f74e49455631c1f8
0, 266, 266, 1, 152064, 938b90999b05595e9875c6d4f9836407
0, 267, 267, 1, 152064, 2fe744b939902a5f4bb69e9243c55d08
0, 268, 268, 1, 152064, a902057edac1638a1cd218fe5b88bfc2
0, 269, 269, 1, 152064, 78087115b9600b5499866c127d175c0f
0, 270, 270, 1, 152064, 877c729e2d2b599dd6cac1f59f12e068
0, 271, 271, 1, 152064, 77e6b4b761902fbe27fb0ff9eb6d02ac
0, 272, 272, 1, 152064, dd3ee373cb4935eca46947aedda3b991
0, 273, 273, 1, 152064, b3ee6b4a18f6d20f9b9fd8dc9e8af90e
0, 274, 274, 1, 152064, 492afb7421667468fa95017c693ec47b
0, 275, 275, 1, 152064, 9abb912d8101de895b8f482c199934c2
0, 276, 276, 1, 152064, 08ca372dfb5e90382f1b58345a0e51b1
0, 277, 277, 1, 152064, 805559cb3f3385e7865df692336dba29
0, 278, 278, 1, 152064, c5cc85e4d44010e048fd2013535d7180
0, 279, 279, 1, 152064, ef9a05a7a4e0b5beff9a8119af44ebc7
0, 280, 280, 1, 152064, e6983be0a0c1705cfede1e7476aad381
0, 281, 281, 1, 152064, a4bb0c3d4deb17784b07d3713db05302
0, 282, 282, 1, 152064, 0fd5bb9259e8c27aba7670b08cd9a26b
0, 283, 283, 1, 152064, 43d6df9fd672b13e2c59db924e9fe30b
0, 284, 284, 1, 152064, 3aaf3b87705c46495c9d1b9f4ea706bf
0, 285, 285, 1, 152064, 0d2ba631f5c716d9c5e5b2a75d3b6433
0, 286, 286, 1, 152064, bf29cc016dce85e621aaa7647fae1544
0, 287, 287, 1, 152064, 3374284a808d79e9be32bf3610b0fd17
0, 288, 288, 1, 152064, ea3f305e76009f3bf2cd5014d339eafa
0, 289, 289, 1, 152064, 95ce7320a841a71b5a8871cef385ce41
0, 290, 290, 1, 152064, 88613d96dbda681edab4ed41c3f08536
0, 291, 291, 1, 152064, b9e9e9045b91c4f7917274088de64a5e
0, 292, 292, 1, 152064, e0b90055449e7403289a8dda9c02add0
0, 293, 293, 1, 152064, 367ee1603fa7778dad3e99be8db779ee
0, 294, 294, 1, 152064, 6bb0eaa6140d673b452eee6ac6c262c2
0, 295, 295, 1, 152064, 9af4ef919ae61e1597db1b9acd6af95a
0, 296, 296, 1, 152064, e8f29872e86e54ac26b5fb0a20f10d3e
0, 297, 297, 1, 152064, 09aaad95cd7d173bfe609b79440cbfc8
0, 298, 298, 1, 152064, c03abe502be10f76e33d93e1c40cc674
0, 299, 299, 1, 152064, 3e7e315be8aef281714a63f4cf086085
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment