No changes between revisions
/Designs/Data_loggers/DOGFINDER01A/PrjInfo.txt
0,0 → 1,18
//
// Toto je popisný soubor pro popis obsahu adresáře (příklad)
//
 
[InfoShortDescription.en]
Dog finder - Track Logger
 
[InfoShortDescription.cs]
Psí vyhledávač - záznamník trasy
[InfoLongDescription.en]
The track is logged in NMEA format on SD/MMC card.
[InfoLongDescription.cs]
Umožňuje zaznamanat trasu opakovaně utíkajícího psa. A tím nalézt zdroj problémů, například díru v plotě :)
Trasa je zaznamenávána na SD/MMC kartu ve formátu NMEA.
 
[End]
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/Makefile
0,0 → 1,52
PRG = glg
OBJ = main.o tff.o mmc.o
MCU_TARGET = atmega168
OPTIMIZE = -Os -mcall-prologues
DEFS =
LIBS =
DEBUG = dwarf-2
 
CC = avr-gcc
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
ALL_ASFLAGS = -mmcu=$(MCU_TARGET) -I. -x assembler-with-cpp $(ASFLAGS)
CFLAGS = -g$(DEBUG) -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
LDFLAGS = -Wl,-Map,$(PRG).map
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
 
 
all: $(PRG).elf lst text size
 
$(PRG).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
 
 
clean:
rm -rf *.o $(PRG).elf *.eps *.bak *.a
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
rm -rf $(PRG).hex
 
 
 
size: $(PRG).elf
$(SIZE) $(PRG).elf
 
lst: $(PRG).lst
%.lst: %.elf
$(OBJDUMP) -h -S $< > $@
 
%.o : %.S
$(CC) -c $(ALL_ASFLAGS) $< -o $@
 
 
 
text: hex
hex: $(PRG).hex
 
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
 
 
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/diskio.h
0,0 → 1,64
/*-----------------------------------------------------------------------
/ Low level disk interface modlue include file R0.04a (C)ChaN, 2007
/-----------------------------------------------------------------------*/
 
#ifndef _DISKIO
 
#define _READONLY 0 /* 1: Read-only mode */
 
#include "integer.h"
 
 
/* Status of Disk Functions */
typedef BYTE DSTATUS;
 
/* Results of Disk Functions */
typedef enum {
RES_OK = 0, /* 0: Successful */
RES_ERROR, /* 1: R/W Error */
RES_WRPRT, /* 2: Write Protected */
RES_NOTRDY, /* 3: Not Ready */
RES_PARERR /* 4: Invalid Parameter */
} DRESULT;
 
 
/*---------------------------------------*/
/* Prototypes for disk control functions */
 
DSTATUS disk_initialize (BYTE);
DSTATUS disk_status (BYTE);
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
#if _READONLY == 0
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
#endif
DRESULT disk_ioctl (BYTE, BYTE, void*);
void disk_timerproc (void);
 
 
 
 
/* Disk Status Bits (DSTATUS) */
 
#define STA_NOINIT 0x01 /* Drive not initialized */
#define STA_NODISK 0x02 /* No medium in the drive */
#define STA_PROTECT 0x04 /* Write protected */
 
 
/* Command code for disk_ioctrl() */
 
#define GET_SECTOR_COUNT 1
#define GET_SECTOR_SIZE 2
#define CTRL_SYNC 3
#define CTRL_POWER 4
#define CTRL_LOCK 5
#define CTRL_EJECT 6
#define MMC_GET_CSD 10
#define MMC_GET_CID 11
#define MMC_GET_OCR 12
#define ATA_GET_REV 20
#define ATA_GET_MODEL 21
#define ATA_GET_SN 22
 
 
#define _DISKIO
#endif
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/ff.c
0,0 → 1,2036
/*----------------------------------------------------------------------------/
/ FatFs - FAT file system module R0.06 (C)ChaN, 2008
/-----------------------------------------------------------------------------/
/ The FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2008, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ commercial use without restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/-----------------------------------------------------------------------------/
/ Feb 26,'06 R0.00 Prototype.
/
/ Apr 29,'06 R0.01 First stable version.
/
/ Jun 01,'06 R0.02 Added FAT12 support.
/ Removed unbuffered mode.
/ Fixed a problem on small (<32M) patition.
/ Jun 10,'06 R0.02a Added a configuration option (_FS_MINIMUM).
/
/ Sep 22,'06 R0.03 Added f_rename().
/ Changed option _FS_MINIMUM to _FS_MINIMIZE.
/ Dec 11,'06 R0.03a Improved cluster scan algolithm to write files fast.
/ Fixed f_mkdir() creates incorrect directory on FAT32.
/
/ Feb 04,'07 R0.04 Supported multiple drive system.
/ Changed some interfaces for multiple drive system.
/ Changed f_mountdrv() to f_mount().
/ Added f_mkfs().
/ Apr 01,'07 R0.04a Supported multiple partitions on a plysical drive.
/ Added a capability of extending file size to f_lseek().
/ Added minimization level 3.
/ Fixed an endian sensitive code in f_mkfs().
/ May 05,'07 R0.04b Added a configuration option _USE_NTFLAG.
/ Added FSInfo support.
/ Fixed DBCS name can result FR_INVALID_NAME.
/ Fixed short seek (<= csize) collapses the file object.
/
/ Aug 25,'07 R0.05 Changed arguments of f_read(), f_write() and f_mkfs().
/ Fixed f_mkfs() on FAT32 creates incorrect FSInfo.
/ Fixed f_mkdir() on FAT32 creates incorrect directory.
/ Feb 03,'08 R0.05a Added f_truncate() and f_utime().
/ Fixed off by one error at FAT sub-type determination.
/ Fixed btr in f_read() can be mistruncated.
/ Fixed cached sector is not flushed when create and close
/ without write.
/
/ Apr 01,'08 R0.06 Added fputc(), fputs(), fprintf() and fgets().
/ Improved performance of f_lseek() on moving to the same
/ or following cluster.
/---------------------------------------------------------------------------*/
 
#include <string.h>
#include "ff.h" /* FatFs declarations */
#include "diskio.h" /* Include file for user provided disk functions */
 
 
/*--------------------------------------------------------------------------
 
Module Private Functions
 
---------------------------------------------------------------------------*/
 
static
FATFS *FatFs[_DRIVES]; /* Pointer to the file system objects (logical drives) */
static
WORD fsid; /* File system mount ID */
 
 
 
/*-----------------------------------------------------------------------*/
/* Change window offset */
/*-----------------------------------------------------------------------*/
 
static
BOOL move_window ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD sector /* Sector number to make apperance in the fs->win[] */
) /* Move to zero only writes back dirty window */
{
DWORD wsect;
 
 
wsect = fs->winsect;
if (wsect != sector) { /* Changed current window */
#if !_FS_READONLY
BYTE n;
if (fs->winflag) { /* Write back dirty window if needed */
if (disk_write(fs->drive, fs->win, wsect, 1) != RES_OK)
return FALSE;
fs->winflag = 0;
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to FAT copy */
wsect += fs->sects_fat;
disk_write(fs->drive, fs->win, wsect, 1);
}
}
}
#endif
if (sector) {
if (disk_read(fs->drive, fs->win, sector, 1) != RES_OK)
return FALSE;
fs->winsect = sector;
}
}
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Clean-up cached data */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT sync ( /* FR_OK: successful, FR_RW_ERROR: failed */
FATFS *fs /* File system object */
)
{
fs->winflag = 1;
if (!move_window(fs, 0)) return FR_RW_ERROR;
#if _USE_FSINFO
/* Update FSInfo sector if needed */
if (fs->fs_type == FS_FAT32 && fs->fsi_flag) {
fs->winsect = 0;
memset(fs->win, 0, 512);
ST_WORD(&fs->win[BS_55AA], 0xAA55);
ST_DWORD(&fs->win[FSI_LeadSig], 0x41615252);
ST_DWORD(&fs->win[FSI_StrucSig], 0x61417272);
ST_DWORD(&fs->win[FSI_Free_Count], fs->free_clust);
ST_DWORD(&fs->win[FSI_Nxt_Free], fs->last_clust);
disk_write(fs->drive, fs->win, fs->fsi_sector, 1);
fs->fsi_flag = 0;
}
#endif
/* Make sure that no pending write process in the physical drive */
if (disk_ioctl(fs->drive, CTRL_SYNC, NULL) != RES_OK)
return FR_RW_ERROR;
return FR_OK;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get a cluster status */
/*-----------------------------------------------------------------------*/
 
static
DWORD get_cluster ( /* 0,>=2: successful, 1: failed */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to get the link information */
)
{
WORD wc, bc;
DWORD fatsect;
 
 
if (clust >= 2 && clust < fs->max_clust) { /* Is it a valid cluster#? */
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fs, fatsect + (bc / SS(fs)))) break;
wc = fs->win[bc & (SS(fs) - 1)]; bc++;
if (!move_window(fs, fatsect + (bc / SS(fs)))) break;
wc |= (WORD)fs->win[bc & (SS(fs) - 1)] << 8;
return (clust & 1) ? (wc >> 4) : (wc & 0xFFF);
 
case FS_FAT16 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 2)))) break;
return LD_WORD(&fs->win[((WORD)clust * 2) & (SS(fs) - 1)]);
 
case FS_FAT32 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 4)))) break;
return LD_DWORD(&fs->win[((WORD)clust * 4) & (SS(fs) - 1)]) & 0x0FFFFFFF;
}
}
 
return 1; /* Out of cluster range, or an error occured */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change a cluster status */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL put_cluster ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD clust, /* Cluster# to change (must be 2 to fs->max_clust-1) */
DWORD val /* New value to mark the cluster */
)
{
WORD bc;
BYTE *p;
DWORD fatsect;
 
 
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fs, fatsect + (bc / SS(fs)))) return FALSE;
p = &fs->win[bc & (SS(fs) - 1)];
*p = (clust & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
bc++;
fs->winflag = 1;
if (!move_window(fs, fatsect + (bc / SS(fs)))) return FALSE;
p = &fs->win[bc & (SS(fs) - 1)];
*p = (clust & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
break;
 
case FS_FAT16 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 2)))) return FALSE;
ST_WORD(&fs->win[((WORD)clust * 2) & (SS(fs) - 1)], (WORD)val);
break;
 
case FS_FAT32 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 4)))) return FALSE;
ST_DWORD(&fs->win[((WORD)clust * 4) & (SS(fs) - 1)], val);
break;
 
default :
return FALSE;
}
fs->winflag = 1;
return TRUE;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Remove a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL remove_chain ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to remove chain from */
)
{
DWORD nxt;
 
 
while (clust >= 2 && clust < fs->max_clust) {
nxt = get_cluster(fs, clust);
if (nxt == 1) return FALSE;
if (!put_cluster(fs, clust, 0)) return FALSE;
if (fs->free_clust != 0xFFFFFFFF) {
fs->free_clust++;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
clust = nxt;
}
return TRUE;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Stretch or create a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
DWORD create_chain ( /* 0: No free cluster, 1: Error, >=2: New cluster number */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to stretch, 0 means create new */
)
{
DWORD cstat, ncl, scl, mcl = fs->max_clust;
 
 
if (clust == 0) { /* Create new chain */
scl = fs->last_clust; /* Get suggested start point */
if (scl == 0 || scl >= mcl) scl = 1;
}
else { /* Stretch existing chain */
cstat = get_cluster(fs, clust); /* Check the cluster status */
if (cstat < 2) return 1; /* It is an invalid cluster */
if (cstat < mcl) return cstat; /* It is already followed by next cluster */
scl = clust;
}
 
ncl = scl; /* Start cluster */
for (;;) {
ncl++; /* Next cluster */
if (ncl >= mcl) { /* Wrap around */
ncl = 2;
if (ncl > scl) return 0; /* No free custer */
}
cstat = get_cluster(fs, ncl); /* Get the cluster status */
if (cstat == 0) break; /* Found a free cluster */
if (cstat == 1) return 1; /* Any error occured */
if (ncl == scl) return 0; /* No free custer */
}
 
if (!put_cluster(fs, ncl, 0x0FFFFFFF)) return 1; /* Mark the new cluster "in use" */
if (clust != 0 && !put_cluster(fs, clust, ncl)) return 1; /* Link it to previous one if needed */
 
fs->last_clust = ncl; /* Update fsinfo */
if (fs->free_clust != 0xFFFFFFFF) {
fs->free_clust--;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
 
return ncl; /* Return new cluster number */
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get sector# from cluster# */
/*-----------------------------------------------------------------------*/
 
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to be converted */
)
{
clust -= 2;
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
return clust * fs->csize + fs->database;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Move directory pointer to next */
/*-----------------------------------------------------------------------*/
 
static
BOOL next_dir_entry ( /* TRUE: successful, FALSE: could not move next */
DIR *dj /* Pointer to directory object */
)
{
DWORD clust;
WORD idx;
 
 
idx = dj->index + 1;
if ((idx & ((SS(dj->fs) - 1) / 32)) == 0) { /* Table sector changed? */
dj->sect++; /* Next sector */
if (dj->clust == 0) { /* In static table */
if (idx >= dj->fs->n_rootdir) return FALSE; /* Reached to end of table */
} else { /* In dynamic table */
if (((idx / (SS(dj->fs) / 32)) & (dj->fs->csize - 1)) == 0) { /* Cluster changed? */
clust = get_cluster(dj->fs, dj->clust); /* Get next cluster */
if (clust < 2 || clust >= dj->fs->max_clust) /* Reached to end of table */
return FALSE;
dj->clust = clust; /* Initialize for new cluster */
dj->sect = clust2sect(dj->fs, clust);
}
}
}
dj->index = idx; /* Lower several bits of dj->index indicates offset in dj->sect */
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get file status from directory entry */
/*-----------------------------------------------------------------------*/
 
#if _FS_MINIMIZE <= 1
static
void get_fileinfo ( /* No return code */
FILINFO *finfo, /* Ptr to store the file information */
const BYTE *dir /* Ptr to the directory entry */
)
{
BYTE n, c, a;
char *p;
 
 
p = &finfo->fname[0];
a = _USE_NTFLAG ? dir[DIR_NTres] : 0; /* NT flag */
for (n = 0; n < 8; n++) { /* Convert file name (body) */
c = dir[n];
if (c == ' ') break;
if (c == 0x05) c = 0xE5;
if (a & 0x08 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
if (dir[8] != ' ') { /* Convert file name (extension) */
*p++ = '.';
for (n = 8; n < 11; n++) {
c = dir[n];
if (c == ' ') break;
if (a & 0x10 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
}
*p = '\0';
 
finfo->fattrib = dir[DIR_Attr]; /* Attribute */
finfo->fsize = LD_DWORD(&dir[DIR_FileSize]); /* Size */
finfo->fdate = LD_WORD(&dir[DIR_WrtDate]); /* Date */
finfo->ftime = LD_WORD(&dir[DIR_WrtTime]); /* Time */
}
#endif /* _FS_MINIMIZE <= 1 */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Pick a paragraph and create the name in format of directory entry */
/*-----------------------------------------------------------------------*/
 
static
char make_dirfile ( /* 1: error - detected an invalid format, '\0'or'/': next character */
const char **path, /* Pointer to the file path pointer */
char *dirname /* Pointer to directory name buffer {Name(8), Ext(3), NT flag(1)} */
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
a = 0; b = 0x18; /* NT flag */
n = 0; t = 8;
for (;;) {
c = *(*path)++;
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
if (n == 0) break;
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
return c;
}
if (c <= ' ' || c == 0x7F) break; /* Reject invisible chars */
if (c == '.') {
if (!(a & 1) && n >= 1 && n <= 8) { /* Enter extension part */
n = 8; t = 11; continue;
}
break;
}
if (_USE_SJIS &&
((c >= 0x81 && c <= 0x9F) || /* Accept S-JIS code */
(c >= 0xE0 && c <= 0xFC))) {
if (n == 0 && c == 0xE5) /* Change heading \xE5 to \x05 */
c = 0x05;
a ^= 0x01; goto md_l2;
}
if (c == '"') break; /* Reject " */
if (c <= ')') goto md_l1; /* Accept ! # $ % & ' ( ) */
if (c <= ',') break; /* Reject * + , */
if (c <= '9') goto md_l1; /* Accept - 0-9 */
if (c <= '?') break; /* Reject : ; < = > ? */
if (!(a & 1)) { /* These checks are not applied to S-JIS 2nd byte */
if (c == '|') break; /* Reject | */
if (c >= '[' && c <= ']') break;/* Reject [ \ ] */
if (_USE_NTFLAG && c >= 'A' && c <= 'Z')
(t == 8) ? (b &= 0xF7) : (b &= 0xEF);
if (c >= 'a' && c <= 'z') { /* Convert to upper case */
c -= 0x20;
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
}
}
md_l1:
a &= 0xFE;
md_l2:
if (n >= t) break;
dirname[n++] = c;
}
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Trace a file path */
/*-----------------------------------------------------------------------*/
 
static
FRESULT trace_path ( /* FR_OK(0): successful, !=0: error code */
DIR *dj, /* Pointer to directory object to return last directory */
char *fn, /* Pointer to last segment name to return {file(8),ext(3),attr(1)} */
const char *path, /* Full-path string to trace a file or directory */
BYTE **dir /* Pointer to pointer to found entry to retutn */
)
{
DWORD clust;
char ds;
BYTE *dptr = NULL;
FATFS *fs = dj->fs;
 
 
/* Initialize directory object */
clust = fs->dirbase;
if (fs->fs_type == FS_FAT32) {
dj->clust = dj->sclust = clust;
dj->sect = clust2sect(fs, clust);
} else {
dj->clust = dj->sclust = 0;
dj->sect = clust;
}
dj->index = 0;
 
if (*path == '\0') { /* Null path means the root directory */
*dir = NULL; return FR_OK;
}
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(fs, dj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dj->index & ((SS(fs) - 1) / 32)) * 32]; /* Pointer to the directory entry */
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
&& !(dptr[DIR_Attr] & AM_VOL)
&& !memcmp(&dptr[DIR_Name], fn, 8+3) ) break;
if (!next_dir_entry(dj)) /* Next directory pointer */
return !ds ? FR_NO_FILE : FR_NO_PATH;
}
if (!ds) { *dir = dptr; return FR_OK; } /* Matched with end of path */
if (!(dptr[DIR_Attr] & AM_DIR)) return FR_NO_PATH; /* Cannot trace because it is a file */
clust = ((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) | LD_WORD(&dptr[DIR_FstClusLO]); /* Get cluster# of the directory */
dj->clust = dj->sclust = clust; /* Restart scanning at the new directory */
dj->sect = clust2sect(fs, clust);
dj->index = 2;
}
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Reserve a directory entry */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT reserve_direntry ( /* FR_OK: successful, FR_DENIED: no free entry, FR_RW_ERROR: a disk error occured */
DIR *dj, /* Target directory to create new entry */
BYTE **dir /* Pointer to pointer to created entry to retutn */
)
{
DWORD clust, sector;
BYTE c, n, *dptr;
FATFS *fs = dj->fs;
 
 
/* Re-initialize directory object */
clust = dj->sclust;
if (clust != 0) { /* Dyanmic directory table */
dj->clust = clust;
dj->sect = clust2sect(fs, clust);
} else { /* Static directory table */
dj->sect = fs->dirbase;
}
dj->index = 0;
 
do {
if (!move_window(fs, dj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dj->index & ((SS(dj->fs) - 1) / 32)) * 32]; /* Pointer to the directory entry */
c = dptr[DIR_Name];
if (c == 0 || c == 0xE5) { /* Found an empty entry */
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dj)); /* Next directory pointer */
/* Reached to end of the directory table */
 
/* Abort when it is a static table or could not stretch dynamic table */
if (clust == 0 || !(clust = create_chain(fs, dj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(fs, 0)) return FR_RW_ERROR;
 
/* Cleanup the expanded table */
fs->winsect = sector = clust2sect(fs, clust);
memset(fs->win, 0, SS(fs));
for (n = fs->csize; n; n--) {
if (disk_write(fs->drive, fs->win, sector, 1) != RES_OK)
return FR_RW_ERROR;
sector++;
}
fs->winflag = 1;
*dir = fs->win;
 
return FR_OK;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Load boot record and check if it is an FAT boot record */
/*-----------------------------------------------------------------------*/
 
static
BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record or error */
FATFS *fs, /* File system object */
DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */
)
{
if (disk_read(fs->drive, fs->win, sect, 1) != RES_OK) /* Load boot record */
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */
return 2;
 
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
return 0;
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
 
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Make sure that the file system is valid */
/*-----------------------------------------------------------------------*/
 
static
FRESULT auto_mount ( /* FR_OK(0): successful, !=0: any error occured */
const char **path, /* Pointer to pointer to the path name (drive number) */
FATFS **rfs, /* Pointer to pointer to the found file system object */
BYTE chk_wp /* !=0: Check media write protection for write access */
)
{
BYTE drv, fmt, *tbl;
DSTATUS stat;
DWORD bootsect, fatsize, totalsect, maxclust;
const char *p = *path;
FATFS *fs;
 
 
/* Get drive number from the path name */
while (*p == ' ') p++; /* Strip leading spaces */
drv = p[0] - '0'; /* Is there a drive number? */
if (drv <= 9 && p[1] == ':')
p += 2; /* Found a drive number, get and strip it */
else
drv = 0; /* No drive number is given, use drive number 0 as default */
if (*p == '/') p++; /* Strip heading slash */
*path = p; /* Return pointer to the path name */
 
/* Check if the drive number is valid or not */
if (drv >= _DRIVES) return FR_INVALID_DRIVE; /* Is the drive number valid? */
*rfs = fs = FatFs[drv]; /* Returen pointer to the corresponding file system object */
if (!fs) return FR_NOT_ENABLED; /* Is the file system object registered? */
 
if (fs->fs_type) { /* If the logical drive has been mounted */
stat = disk_status(fs->drive);
if (!(stat & STA_NOINIT)) { /* and physical drive is kept initialized (has not been changed), */
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
return FR_OK; /* The file system object is valid */
}
}
 
/* The logical drive must be re-mounted. Following code attempts to mount the logical drive */
 
memset(fs, 0, sizeof(FATFS)); /* Clean-up the file system object */
fs->drive = LD2PD(drv); /* Bind the logical drive and a physical drive */
stat = disk_initialize(fs->drive); /* Initialize low level disk I/O layer */
if (stat & STA_NOINIT) /* Check if the drive is ready */
return FR_NOT_READY;
#if S_MAX_SIZ > 512 /* Get disk sector size if needed */
if (disk_ioctl(drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK || SS(fs) > S_MAX_SIZ)
return FR_NO_FILESYSTEM;
#endif
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
/* Search FAT partition on the drive */
fmt = check_fs(fs, bootsect = 0); /* Check sector 0 as an SFD format */
if (fmt == 1) { /* Not an FAT boot record, it may be patitioned */
/* Check a partition listed in top of the partition table */
tbl = &fs->win[MBR_Table + LD2PT(drv) * 16]; /* Partition table */
if (tbl[4]) { /* Is the partition existing? */
bootsect = LD_DWORD(&tbl[8]); /* Partition offset in LBA */
fmt = check_fs(fs, bootsect); /* Check the partition */
}
}
if (fmt || LD_WORD(&fs->win[BPB_BytsPerSec]) != SS(fs)) /* No valid FAT patition is found */
return FR_NO_FILESYSTEM;
 
/* Initialize the file system object */
fatsize = LD_WORD(&fs->win[BPB_FATSz16]); /* Number of sectors per FAT */
if (!fatsize) fatsize = LD_DWORD(&fs->win[BPB_FATSz32]);
fs->sects_fat = fatsize;
fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FAT copies */
fatsize *= fs->n_fats; /* (Number of sectors in FAT area) */
fs->fatbase = bootsect + LD_WORD(&fs->win[BPB_RsvdSecCnt]); /* FAT start sector (lba) */
fs->csize = fs->win[BPB_SecPerClus]; /* Number of sectors per cluster */
fs->n_rootdir = LD_WORD(&fs->win[BPB_RootEntCnt]); /* Nmuber of root directory entries */
totalsect = LD_WORD(&fs->win[BPB_TotSec16]); /* Number of sectors on the file system */
if (!totalsect) totalsect = LD_DWORD(&fs->win[BPB_TotSec32]);
fs->max_clust = maxclust = (totalsect /* max_clust = Last cluster# + 1 */
- LD_WORD(&fs->win[BPB_RsvdSecCnt]) - fatsize - fs->n_rootdir / (SS(fs)/32)
) / fs->csize + 2;
 
fmt = FS_FAT12; /* Determine the FAT sub type */
if (maxclust >= 0xFF7) fmt = FS_FAT16;
if (maxclust >= 0xFFF7) fmt = FS_FAT32;
 
if (fmt == FS_FAT32)
fs->dirbase = LD_DWORD(&fs->win[BPB_RootClus]); /* Root directory start cluster */
else
fs->dirbase = fs->fatbase + fatsize; /* Root directory start sector (lba) */
fs->database = fs->fatbase + fatsize + fs->n_rootdir / (SS(fs)/32); /* Data start sector (lba) */
 
#if !_FS_READONLY
/* Initialize allocation information */
fs->free_clust = 0xFFFFFFFF;
#if _USE_FSINFO
/* Get fsinfo if needed */
if (fmt == FS_FAT32) {
fs->fsi_sector = bootsect + LD_WORD(&fs->win[BPB_FSInfo]);
if (disk_read(fs->drive, fs->win, fs->fsi_sector, 1) == RES_OK &&
LD_WORD(&fs->win[BS_55AA]) == 0xAA55 &&
LD_DWORD(&fs->win[FSI_LeadSig]) == 0x41615252 &&
LD_DWORD(&fs->win[FSI_StrucSig]) == 0x61417272) {
fs->last_clust = LD_DWORD(&fs->win[FSI_Nxt_Free]);
fs->free_clust = LD_DWORD(&fs->win[FSI_Free_Count]);
}
}
#endif
#endif
 
fs->fs_type = fmt; /* FAT syb-type */
fs->id = ++fsid; /* File system mount ID */
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Check if the file/dir object is valid or not */
/*-----------------------------------------------------------------------*/
 
static
FRESULT validate ( /* FR_OK(0): The object is valid, !=0: Invalid */
const FATFS *fs, /* Pointer to the file system object */
WORD id /* Member id of the target object to be checked */
)
{
if (!fs || !fs->fs_type || fs->id != id)
return FR_INVALID_OBJECT;
if (disk_status(fs->drive) & STA_NOINIT)
return FR_NOT_READY;
 
return FR_OK;
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
--------------------------------------------------------------------------*/
 
 
 
/*-----------------------------------------------------------------------*/
/* Mount/Unmount a Locical Drive */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mount (
BYTE drv, /* Logical drive number to be mounted/unmounted */
FATFS *fs /* Pointer to new file system object (NULL for unmount)*/
)
{
if (drv >= _DRIVES) return FR_INVALID_DRIVE;
 
if (FatFs[drv]) FatFs[drv]->fs_type = 0; /* Clear old object */
 
FatFs[drv] = fs; /* Register and clear new object */
if (fs) fs->fs_type = 0;
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Open or Create a File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
fp->fs = NULL; /* Clear file object */
#if !_FS_READONLY
mode &= (FA_READ|FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW);
res = auto_mount(&path, &dj.fs, (BYTE)(mode & (FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)));
#else
mode &= FA_READ;
res = auto_mount(&path, &dj.fs, 0);
#endif
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
 
#if !_FS_READONLY
/* Create or Open a file */
if (mode & (FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)) {
DWORD ps, rs;
if (res != FR_OK) { /* No file, create new */
if (res != FR_NO_FILE) return res;
res = reserve_direntry(&dj, &dir);
if (res != FR_OK) return res;
memset(dir, 0, 32); /* Initialize the new entry with open name */
memcpy(&dir[DIR_Name], fn, 8+3);
dir[DIR_NTres] = fn[11];
mode |= FA_CREATE_ALWAYS;
}
else { /* Any object is already existing */
if (mode & FA_CREATE_NEW) /* Cannot create new */
return FR_EXIST;
if (!dir || (dir[DIR_Attr] & (AM_RDO|AM_DIR))) /* Cannot overwrite it (R/O or DIR) */
return FR_DENIED;
if (mode & FA_CREATE_ALWAYS) { /* Resize it to zero if needed */
rs = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]); /* Get start cluster */
ST_WORD(&dir[DIR_FstClusHI], 0); /* cluster = 0 */
ST_WORD(&dir[DIR_FstClusLO], 0);
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
dj.fs->winflag = 1;
ps = dj.fs->winsect; /* Remove the cluster chain */
if (!remove_chain(dj.fs, rs) || !move_window(dj.fs, ps))
return FR_RW_ERROR;
dj.fs->last_clust = rs - 1; /* Reuse the cluster hole */
}
}
if (mode & FA_CREATE_ALWAYS) {
dir[DIR_Attr] = 0; /* Reset attribute */
ps = get_fattime();
ST_DWORD(&dir[DIR_CrtTime], ps); /* Created time */
dj.fs->winflag = 1;
mode |= FA__WRITTEN; /* Set file changed flag */
}
}
/* Open an existing file */
else {
#endif /* !_FS_READONLY */
if (res != FR_OK) return res; /* Trace failed */
if (!dir || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
return FR_NO_FILE;
#if !_FS_READONLY
if ((mode & FA_WRITE) && (dir[DIR_Attr] & AM_RDO)) /* R/O violation */
return FR_DENIED;
}
fp->dir_sect = dj.fs->winsect; /* Pointer to the directory entry */
fp->dir_ptr = dir;
#endif
fp->flag = mode; /* File access mode */
fp->org_clust = /* File start cluster */
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
fp->fsize = LD_DWORD(&dir[DIR_FileSize]); /* File size */
fp->fptr = 0; fp->csect = 255; /* File pointer */
fp->curr_sect = 0;
fp->fs = dj.fs; fp->id = dj.fs->id; /* Owner file system object of the file */
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_read (
FIL *fp, /* Pointer to the file object */
void *buff, /* Pointer to data buffer */
UINT btr, /* Number of bytes to read */
UINT *br /* Pointer to number of bytes read */
)
{
FRESULT res;
DWORD clust, sect, remain;
UINT rcnt, cc;
BYTE *rbuff = buff;
 
 
*br = 0;
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
if ((fp->fptr % SS(fp->fs)) == 0) { /* On the sector boundary? */
if (fp->csect >= fp->fs->csize) { /* On the cluster boundary? */
clust = (fp->fptr == 0) ? /* On the top of the file? */
fp->org_clust : get_cluster(fp->fs, fp->curr_clust);
if (clust < 2 || clust >= fp->fs->max_clust) goto fr_error;
fp->curr_clust = clust; /* Update current cluster */
fp->csect = 0; /* Reset sector address in the cluster */
}
sect = clust2sect(fp->fs, fp->curr_clust) + fp->csect; /* Get current sector */
cc = btr / SS(fp->fs); /* When remaining bytes >= sector size, */
if (cc) { /* Read maximum contiguous sectors directly */
if (fp->csect + cc > fp->fs->csize) /* Clip at cluster boundary */
cc = fp->fs->csize - fp->csect;
if (disk_read(fp->fs->drive, rbuff, sect, (BYTE)cc) != RES_OK)
goto fr_error;
fp->csect += (BYTE)cc; /* Next sector address in the cluster */
rcnt = SS(fp->fs) * cc; /* Number of bytes transferred */
continue;
}
if (sect != fp->curr_sect) { /* Is window offset changed? */
#if !_FS_READONLY
if (fp->flag & FA__DIRTY) { /* Write back file I/O buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fr_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
#endif
if (disk_read(fp->fs->drive, fp->buffer, sect, 1) != RES_OK) /* Fill file I/O buffer with file data */
goto fr_error;
fp->curr_sect = sect;
}
fp->csect++; /* Next sector address in the cluster */
}
rcnt = SS(fp->fs) - (fp->fptr % SS(fp->fs)); /* Get partial sector from file I/O buffer */
if (rcnt > btr) rcnt = btr;
memcpy(rbuff, &fp->buffer[fp->fptr % SS(fp->fs)], rcnt);
}
 
return FR_OK;
 
fr_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Write File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_write (
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
UINT btw, /* Number of bytes to write */
UINT *bw /* Pointer to number of bytes written */
)
{
FRESULT res;
DWORD clust, sect;
UINT wcnt, cc;
const BYTE *wbuff = buff;
 
 
*bw = 0;
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
if ((fp->fptr % SS(fp->fs)) == 0) { /* On the sector boundary? */
if (fp->csect >= fp->fs->csize) { /* On the cluster boundary? */
if (fp->fptr == 0) { /* On the top of the file? */
clust = fp->org_clust; /* Follow from the origin */
if (clust == 0) /* When there is no cluster chain, */
fp->org_clust = clust = create_chain(fp->fs, 0); /* Create a new cluster chain */
} else { /* Middle or end of the file */
clust = create_chain(fp->fs, fp->curr_clust); /* Trace or streach cluster chain */
}
if (clust == 0) break; /* Could not allocate a new cluster (disk full) */
if (clust == 1 || clust >= fp->fs->max_clust) goto fw_error;
fp->curr_clust = clust; /* Update current cluster */
fp->csect = 0; /* Reset sector address in the cluster */
}
sect = clust2sect(fp->fs, fp->curr_clust) + fp->csect; /* Get current sector */
cc = btw / SS(fp->fs); /* When remaining bytes >= sector size, */
if (cc) { /* Write maximum contiguous sectors directly */
if (fp->csect + cc > fp->fs->csize) /* Clip at cluster boundary */
cc = fp->fs->csize - fp->csect;
if (disk_write(fp->fs->drive, wbuff, sect, (BYTE)cc) != RES_OK)
goto fw_error;
fp->csect += (BYTE)cc; /* Next sector address in the cluster */
wcnt = SS(fp->fs) * cc; /* Number of bytes transferred */
continue;
}
if (sect != fp->curr_sect) { /* Is window offset changed? */
if (fp->flag & FA__DIRTY) { /* Write back file I/O buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fw_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
if (fp->fptr < fp->fsize && /* Fill file I/O buffer with file data */
disk_read(fp->fs->drive, fp->buffer, sect, 1) != RES_OK)
goto fw_error;
fp->curr_sect = sect;
}
fp->csect++; /* Next sector address in the cluster */
}
wcnt = SS(fp->fs) - (fp->fptr % SS(fp->fs)); /* Put partial sector into file I/O buffer */
if (wcnt > btw) wcnt = btw;
memcpy(&fp->buffer[fp->fptr % SS(fp->fs)], wbuff, wcnt);
fp->flag |= FA__DIRTY;
}
 
if (fp->fptr > fp->fsize) fp->fsize = fp->fptr; /* Update file size if needed */
fp->flag |= FA__WRITTEN; /* Set file changed flag */
return FR_OK;
 
fw_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Synchronize the file object */
/*-----------------------------------------------------------------------*/
 
FRESULT f_sync (
FIL *fp /* Pointer to the file object */
)
{
FRESULT res;
DWORD tim;
BYTE *dir;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res == FR_OK) {
if (fp->flag & FA__WRITTEN) { /* Has the file been written? */
/* Write back data buffer if needed */
if (fp->flag & FA__DIRTY) {
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
return FR_RW_ERROR;
fp->flag &= (BYTE)~FA__DIRTY;
}
/* Update the directory entry */
if (!move_window(fp->fs, fp->dir_sect))
return FR_RW_ERROR;
dir = fp->dir_ptr;
dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
ST_DWORD(&dir[DIR_FileSize], fp->fsize); /* Update file size */
ST_WORD(&dir[DIR_FstClusLO], fp->org_clust); /* Update start cluster */
ST_WORD(&dir[DIR_FstClusHI], fp->org_clust >> 16);
tim = get_fattime(); /* Updated time */
ST_DWORD(&dir[DIR_WrtTime], tim);
fp->flag &= (BYTE)~FA__WRITTEN;
res = sync(fp->fs);
}
}
return res;
}
 
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Close File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_close (
FIL *fp /* Pointer to the file object to be closed */
)
{
FRESULT res;
 
 
#if !_FS_READONLY
res = f_sync(fp);
#else
res = validate(fp->fs, fp->id);
#endif
if (res == FR_OK) fp->fs = NULL;
return res;
}
 
 
 
 
#if _FS_MINIMIZE <= 2
/*-----------------------------------------------------------------------*/
/* Seek File R/W Pointer */
/*-----------------------------------------------------------------------*/
 
FRESULT f_lseek (
FIL *fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
{
FRESULT res;
DWORD clust, csize, nsect, ifptr;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR;
if (ofs > fp->fsize /* In read-only mode, clip offset with the file size */
#if !_FS_READONLY
&& !(fp->flag & FA_WRITE)
#endif
) ofs = fp->fsize;
 
ifptr = fp->fptr;
fp->fptr = 0; fp->csect = 255;
nsect = 0;
if (ofs > 0) {
csize = (DWORD)fp->fs->csize * SS(fp->fs); /* Cluster size (byte) */
if (ifptr > 0 &&
(ofs - 1) / csize >= (ifptr - 1) / csize) {/* When seek to same or following cluster, */
fp->fptr = (ifptr - 1) & ~(csize - 1); /* start from the current cluster */
ofs -= fp->fptr;
clust = fp->curr_clust;
} else { /* When seek to back cluster, */
clust = fp->org_clust; /* start from the first cluster */
#if !_FS_READONLY
if (clust == 0) { /* If no cluster chain, create a new chain */
clust = create_chain(fp->fs, 0);
if (clust == 1) goto fk_error;
fp->org_clust = clust;
}
#endif
fp->curr_clust = clust;
}
if (clust != 0) {
while (ofs > csize) { /* Cluster following loop */
#if !_FS_READONLY
if (fp->flag & FA_WRITE) { /* Check if in write mode or not */
clust = create_chain(fp->fs, clust); /* Force streached if in write mode */
if (clust == 0) { /* When disk gets full, clip file size */
ofs = csize; break;
}
} else
#endif
clust = get_cluster(fp->fs, clust); /* Follow cluster chain if not in write mode */
if (clust < 2 || clust >= fp->fs->max_clust) goto fk_error;
fp->curr_clust = clust;
fp->fptr += csize;
ofs -= csize;
}
fp->fptr += ofs;
fp->csect = (BYTE)(ofs / SS(fp->fs)); /* Sector offset in the cluster */
if (ofs & (SS(fp->fs) - 1)) {
nsect = clust2sect(fp->fs, clust) + fp->csect; /* Current sector */
fp->csect++;
}
}
}
if (nsect && nsect != fp->curr_sect) {
#if !_FS_READONLY
if (fp->flag & FA__DIRTY) { /* Write-back dirty buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fk_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
#endif
if (disk_read(fp->fs->drive, fp->buffer, nsect, 1) != RES_OK)
goto fk_error;
fp->curr_sect = nsect;
}
 
#if !_FS_READONLY
if (fp->fptr > fp->fsize) { /* Set changed flag if the file was extended */
fp->fsize = fp->fptr;
fp->flag |= FA__WRITTEN;
}
#endif
 
return FR_OK;
 
fk_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if _FS_MINIMIZE <= 1
/*-----------------------------------------------------------------------*/
/* Create a directroy object */
/*-----------------------------------------------------------------------*/
 
FRESULT f_opendir (
DIR *dj, /* Pointer to directory object to create */
const char *path /* Pointer to the directory path */
)
{
FRESULT res;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj->fs, 0);
if (res == FR_OK) {
res = trace_path(dj, fn, path, &dir); /* Trace the directory path */
if (res == FR_OK) { /* Trace completed */
if (dir) { /* It is not the root dir */
if (dir[DIR_Attr] & AM_DIR) { /* The entry is a directory */
dj->clust = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
dj->sect = clust2sect(dj->fs, dj->clust);
dj->index = 2;
} else { /* The entry is not a directory */
res = FR_NO_FILE;
}
}
dj->id = dj->fs->id;
}
}
 
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Directory Entry in Sequense */
/*-----------------------------------------------------------------------*/
 
FRESULT f_readdir (
DIR *dj, /* Pointer to the directory object */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir, c, res;
 
 
res = validate(dj->fs, dj->id); /* Check validity of the object */
if (res != FR_OK) return res;
 
finfo->fname[0] = 0;
while (dj->sect) {
if (!move_window(dj->fs, dj->sect))
return FR_RW_ERROR;
dir = &dj->fs->win[(dj->index & ((SS(dj->fs) - 1) >> 5)) * 32]; /* pointer to the directory entry */
c = dir[DIR_Name];
if (c == 0) break; /* Has it reached to end of dir? */
if (c != 0xE5 && !(dir[DIR_Attr] & AM_VOL)) /* Is it a valid entry? */
get_fileinfo(finfo, dir);
if (!next_dir_entry(dj)) dj->sect = 0; /* Next entry */
if (finfo->fname[0]) break; /* Found valid entry */
}
 
return FR_OK;
}
 
 
 
 
#if _FS_MINIMIZE == 0
/*-----------------------------------------------------------------------*/
/* Get File Status */
/*-----------------------------------------------------------------------*/
 
FRESULT f_stat (
const char *path, /* Pointer to the file path */
FILINFO *finfo /* Pointer to file information to return */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 0);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir) /* Found an object */
get_fileinfo(finfo, dir);
else /* It is root dir */
res = FR_INVALID_NAME;
}
}
 
return res;
}
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Truncate File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_truncate (
FIL *fp /* Pointer to the file object */
)
{
FRESULT res;
DWORD ncl;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
 
if (fp->fsize > fp->fptr) {
fp->fsize = fp->fptr; /* Set file size to current R/W point */
fp->flag |= FA__WRITTEN;
if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
if (!remove_chain(fp->fs, fp->org_clust)) goto ft_error;
fp->org_clust = 0;
} else { /* When truncate a part of the file, remove remaining clusters */
ncl = get_cluster(fp->fs, fp->curr_clust);
if (ncl < 2) goto ft_error;
if (ncl < fp->fs->max_clust) {
if (!put_cluster(fp->fs, fp->curr_clust, 0x0FFFFFFF)) goto ft_error;
if (!remove_chain(fp->fs, ncl)) goto ft_error;
}
}
}
 
return FR_OK;
 
ft_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get Number of Free Clusters */
/*-----------------------------------------------------------------------*/
 
FRESULT f_getfree (
const char *drv, /* Pointer to the logical drive number (root dir) */
DWORD *nclust, /* Pointer to the variable to return number of free clusters */
FATFS **fatfs /* Pointer to pointer to corresponding file system object to return */
)
{
FRESULT res;
DWORD n, clust, sect;
BYTE fat, f, *p;
 
 
/* Get drive number */
res = auto_mount(&drv, fatfs, 0);
if (res != FR_OK) return res;
 
/* If number of free cluster is valid, return it without cluster scan. */
if ((*fatfs)->free_clust <= (*fatfs)->max_clust - 2) {
*nclust = (*fatfs)->free_clust;
return FR_OK;
}
 
/* Get number of free clusters */
fat = (*fatfs)->fs_type;
n = 0;
if (fat == FS_FAT12) {
clust = 2;
do {
if ((WORD)get_cluster(*fatfs, clust) == 0) n++;
} while (++clust < (*fatfs)->max_clust);
} else {
clust = (*fatfs)->max_clust;
sect = (*fatfs)->fatbase;
f = 0; p = 0;
do {
if (!f) {
if (!move_window(*fatfs, sect++)) return FR_RW_ERROR;
p = (*fatfs)->win;
}
if (fat == FS_FAT16) {
if (LD_WORD(p) == 0) n++;
p += 2; f += 1;
} else {
if (LD_DWORD(p) == 0) n++;
p += 4; f += 2;
}
} while (--clust);
}
(*fatfs)->free_clust = n;
#if _USE_FSINFO
if (fat == FS_FAT32) (*fatfs)->fsi_flag = 1;
#endif
 
*nclust = n;
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Delete a File or Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_unlink (
const char *path /* Pointer to the file or directory path */
)
{
FRESULT res;
DIR dj;
BYTE *dir, *sdir;
DWORD dclust, dsect;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res != FR_OK) return res; /* Trace failed */
if (!dir) return FR_INVALID_NAME; /* It is the root directory */
if (dir[DIR_Attr] & AM_RDO) return FR_DENIED; /* It is a R/O object */
dsect = dj.fs->winsect;
dclust = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
 
if (dir[DIR_Attr] & AM_DIR) { /* It is a sub-directory */
dj.clust = dclust; /* Check if the sub-dir is empty or not */
dj.sect = clust2sect(dj.fs, dclust);
dj.index = 2;
do {
if (!move_window(dj.fs, dj.sect)) return FR_RW_ERROR;
sdir = &dj.fs->win[(dj.index & ((SS(dj.fs) - 1) >> 5)) * 32];
if (sdir[DIR_Name] == 0) break;
if (sdir[DIR_Name] != 0xE5 && !(sdir[DIR_Attr] & AM_VOL))
return FR_DENIED; /* The directory is not empty */
} while (next_dir_entry(&dj));
}
 
if (!move_window(dj.fs, dsect)) return FR_RW_ERROR; /* Mark the directory entry 'deleted' */
dir[DIR_Name] = 0xE5;
dj.fs->winflag = 1;
if (!remove_chain(dj.fs, dclust)) return FR_RW_ERROR; /* Remove the cluster chain */
 
return sync(dj.fs);
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Create a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mkdir (
const char *path /* Pointer to the directory path */
)
{
FRESULT res;
DIR dj;
BYTE *dir, *fw, n;
char fn[8+3+1];
DWORD sect, dsect, dclust, pclust, tim;
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) return FR_EXIST; /* Any file or directory is already existing */
if (res != FR_NO_FILE) return res;
 
res = reserve_direntry(&dj, &dir); /* Reserve a directory entry */
if (res != FR_OK) return res;
sect = dj.fs->winsect;
dclust = create_chain(dj.fs, 0); /* Allocate a cluster for new directory table */
if (dclust == 1) return FR_RW_ERROR;
dsect = clust2sect(dj.fs, dclust);
if (!dsect) return FR_DENIED;
if (!move_window(dj.fs, dsect)) return FR_RW_ERROR;
 
fw = dj.fs->win;
memset(fw, 0, SS(dj.fs)); /* Clear the new directory table */
for (n = 1; n < dj.fs->csize; n++) {
if (disk_write(dj.fs->drive, fw, ++dsect, 1) != RES_OK)
return FR_RW_ERROR;
}
memset(&fw[DIR_Name], ' ', 8+3); /* Create "." entry */
fw[DIR_Name] = '.';
fw[DIR_Attr] = AM_DIR;
tim = get_fattime();
ST_DWORD(&fw[DIR_WrtTime], tim);
memcpy(&fw[32], &fw[0], 32); fw[33] = '.'; /* Create ".." entry */
ST_WORD(&fw[ DIR_FstClusLO], dclust);
ST_WORD(&fw[ DIR_FstClusHI], dclust >> 16);
pclust = dj.sclust;
if (dj.fs->fs_type == FS_FAT32 && pclust == dj.fs->dirbase) pclust = 0;
ST_WORD(&fw[32+DIR_FstClusLO], pclust);
ST_WORD(&fw[32+DIR_FstClusHI], pclust >> 16);
dj.fs->winflag = 1;
 
if (!move_window(dj.fs, sect)) return FR_RW_ERROR;
memset(&dir[0], 0, 32); /* Initialize the new entry */
memcpy(&dir[DIR_Name], fn, 8+3); /* Name */
dir[DIR_NTres] = fn[11];
dir[DIR_Attr] = AM_DIR; /* Attribute */
ST_DWORD(&dir[DIR_WrtTime], tim); /* Crated time */
ST_WORD(&dir[DIR_FstClusLO], dclust); /* Table start cluster */
ST_WORD(&dir[DIR_FstClusHI], dclust >> 16);
 
return sync(dj.fs);
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change File Attribute */
/*-----------------------------------------------------------------------*/
 
FRESULT f_chmod (
const char *path, /* Pointer to the file path */
BYTE value, /* Attribute bits */
BYTE mask /* Attribute mask to change */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (!dir) {
res = FR_INVALID_NAME; /* Root directory */
} else {
mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */
dir[DIR_Attr] = (value & mask) | (dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
res = sync(dj.fs);
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change Timestamp */
/*-----------------------------------------------------------------------*/
 
FRESULT f_utime (
const char *path, /* Pointer to the file/directory name */
const FILINFO *finfo /* Pointer to the timestamp to be set */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (!dir) {
res = FR_INVALID_NAME; /* Root directory */
} else {
ST_WORD(&dir[DIR_WrtTime], finfo->ftime);
ST_WORD(&dir[DIR_WrtDate], finfo->fdate);
res = sync(dj.fs);
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Rename File/Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_rename (
const char *path_old, /* Pointer to the old name */
const char *path_new /* Pointer to the new name */
)
{
FRESULT res;
DIR dj;
DWORD sect_old;
BYTE *dir_old, *dir_new, direntry[32-11];
char fn[8+3+1];
 
 
res = auto_mount(&path_old, &dj.fs, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dj, fn, path_old, &dir_old); /* Check old object */
if (res != FR_OK) return res; /* The old object is not found */
if (!dir_old) return FR_NO_FILE;
sect_old = dj.fs->winsect; /* Save the object information */
memcpy(direntry, &dir_old[DIR_Attr], 32-11);
 
res = trace_path(&dj, fn, path_new, &dir_new); /* Check new object */
if (res == FR_OK) return FR_EXIST; /* The new object name is already existing */
if (res != FR_NO_FILE) return res; /* Is there no old name? */
res = reserve_direntry(&dj, &dir_new); /* Reserve a directory entry */
if (res != FR_OK) return res;
 
memcpy(&dir_new[DIR_Attr], direntry, 32-11); /* Create new entry */
memcpy(&dir_new[DIR_Name], fn, 8+3);
dir_new[DIR_NTres] = fn[11];
dj.fs->winflag = 1;
 
if (!move_window(dj.fs, sect_old)) return FR_RW_ERROR; /* Delete old entry */
dir_old[DIR_Name] = 0xE5;
 
return sync(dj.fs);
}
 
#endif /* !_FS_READONLY */
#endif /* _FS_MINIMIZE == 0 */
#endif /* _FS_MINIMIZE <= 1 */
#endif /* _FS_MINIMIZE <= 2 */
 
 
 
#if _USE_MKFS && !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Create File System on the Drive */
/*-----------------------------------------------------------------------*/
#define N_ROOTDIR 512 /* Multiple of 32 and <= 2048 */
#define N_FATS 1 /* 1 or 2 */
#define MAX_SECTOR 64000000UL /* Maximum partition size */
#define MIN_SECTOR 2000UL /* Minimum partition size */
 
 
 
FRESULT f_mkfs (
BYTE drv, /* Logical drive number */
BYTE partition, /* Partitioning rule 0:FDISK, 1:SFD */
WORD allocsize /* Allocation unit size [bytes] */
)
{
BYTE fmt, m, *tbl;
DWORD b_part, b_fat, b_dir, b_data; /* Area offset (LBA) */
DWORD n_part, n_rsv, n_fat, n_dir; /* Area size */
DWORD n_clust, n;
FATFS *fs;
DSTATUS stat;
 
 
/* Check validity of the parameters */
if (drv >= _DRIVES) return FR_INVALID_DRIVE;
if (partition >= 2) return FR_MKFS_ABORTED;
for (n = 512; n <= 32768U && n != allocsize; n <<= 1);
if (n != allocsize) return FR_MKFS_ABORTED;
 
/* Check mounted drive and clear work area */
fs = FatFs[drv];
if (!fs) return FR_NOT_ENABLED;
fs->fs_type = 0;
drv = LD2PD(drv);
 
/* Get disk statics */
stat = disk_initialize(drv);
if (stat & STA_NOINIT) return FR_NOT_READY;
if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
if (disk_ioctl(drv, GET_SECTOR_COUNT, &n_part) != RES_OK || n_part < MIN_SECTOR)
return FR_MKFS_ABORTED;
if (n_part > MAX_SECTOR) n_part = MAX_SECTOR;
b_part = (!partition) ? 63 : 0; /* Boot sector */
n_part -= b_part;
#if S_MAX_SIZ > 512 /* Check disk sector size */
if (disk_ioctl(drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK
|| SS(fs) > S_MAX_SIZ
|| SS(fs) > allocsize)
return FR_MKFS_ABORTED;
#endif
allocsize /= SS(fs); /* Number of sectors per cluster */
 
/* Pre-compute number of clusters and FAT type */
n_clust = n_part / allocsize;
fmt = FS_FAT12;
if (n_clust >= 0xFF5) fmt = FS_FAT16;
if (n_clust >= 0xFFF5) fmt = FS_FAT32;
 
/* Determine offset and size of FAT structure */
switch (fmt) {
case FS_FAT12:
n_fat = ((n_clust * 3 + 1) / 2 + 3 + SS(fs) - 1) / SS(fs);
n_rsv = 1 + partition;
n_dir = N_ROOTDIR * 32 / SS(fs);
break;
case FS_FAT16:
n_fat = ((n_clust * 2) + 4 + SS(fs) - 1) / SS(fs);
n_rsv = 1 + partition;
n_dir = N_ROOTDIR * 32 / SS(fs);
break;
default:
n_fat = ((n_clust * 4) + 8 + SS(fs) - 1) / SS(fs);
n_rsv = 33 - partition;
n_dir = 0;
}
b_fat = b_part + n_rsv; /* FATs start sector */
b_dir = b_fat + n_fat * N_FATS; /* Directory start sector */
b_data = b_dir + n_dir; /* Data start sector */
 
/* Align data start sector to erase block boundary (for flash memory media) */
if (disk_ioctl(drv, GET_BLOCK_SIZE, &n) != RES_OK) return FR_MKFS_ABORTED;
n = (b_data + n - 1) & ~(n - 1);
n_fat += (n - b_data) / N_FATS;
/* b_dir and b_data are no longer used below */
 
/* Determine number of cluster and final check of validity of the FAT type */
n_clust = (n_part - n_rsv - n_fat * N_FATS - n_dir) / allocsize;
if ( (fmt == FS_FAT16 && n_clust < 0xFF5)
|| (fmt == FS_FAT32 && n_clust < 0xFFF5))
return FR_MKFS_ABORTED;
 
/* Create partition table if needed */
if (!partition) {
DWORD n_disk = b_part + n_part;
 
tbl = &fs->win[MBR_Table];
ST_DWORD(&tbl[0], 0x00010180); /* Partition start in CHS */
if (n_disk < 63UL * 255 * 1024) { /* Partition end in CHS */
n_disk = n_disk / 63 / 255;
tbl[7] = (BYTE)n_disk;
tbl[6] = (BYTE)((n_disk >> 2) | 63);
} else {
ST_WORD(&tbl[6], 0xFFFF);
}
tbl[5] = 254;
if (fmt != FS_FAT32) /* System ID */
tbl[4] = (n_part < 0x10000) ? 0x04 : 0x06;
else
tbl[4] = 0x0c;
ST_DWORD(&tbl[8], 63); /* Partition start in LBA */
ST_DWORD(&tbl[12], n_part); /* Partition size in LBA */
ST_WORD(&tbl[64], 0xAA55); /* Signature */
if (disk_write(drv, fs->win, 0, 1) != RES_OK)
return FR_RW_ERROR;
}
 
/* Create boot record */
tbl = fs->win; /* Clear buffer */
memset(tbl, 0, SS(fs));
ST_DWORD(&tbl[BS_jmpBoot], 0x90FEEB); /* Boot code (jmp $, nop) */
ST_WORD(&tbl[BPB_BytsPerSec], SS(fs)); /* Sector size */
tbl[BPB_SecPerClus] = (BYTE)allocsize; /* Sectors per cluster */
ST_WORD(&tbl[BPB_RsvdSecCnt], n_rsv); /* Reserved sectors */
tbl[BPB_NumFATs] = N_FATS; /* Number of FATs */
ST_WORD(&tbl[BPB_RootEntCnt], SS(fs) / 32 * n_dir); /* Number of rootdir entries */
if (n_part < 0x10000) { /* Number of total sectors */
ST_WORD(&tbl[BPB_TotSec16], n_part);
} else {
ST_DWORD(&tbl[BPB_TotSec32], n_part);
}
tbl[BPB_Media] = 0xF8; /* Media descripter */
ST_WORD(&tbl[BPB_SecPerTrk], 63); /* Number of sectors per track */
ST_WORD(&tbl[BPB_NumHeads], 255); /* Number of heads */
ST_DWORD(&tbl[BPB_HiddSec], b_part); /* Hidden sectors */
n = get_fattime(); /* Use current time as a VSN */
if (fmt != FS_FAT32) {
ST_DWORD(&tbl[BS_VolID], n); /* Volume serial number */
ST_WORD(&tbl[BPB_FATSz16], n_fat); /* Number of secters per FAT */
tbl[BS_DrvNum] = 0x80; /* Drive number */
tbl[BS_BootSig] = 0x29; /* Extended boot signature */
memcpy(&tbl[BS_VolLab], "NO NAME FAT ", 19); /* Volume lavel, FAT signature */
} else {
ST_DWORD(&tbl[BS_VolID32], n); /* Volume serial number */
ST_DWORD(&tbl[BPB_FATSz32], n_fat); /* Number of secters per FAT */
ST_DWORD(&tbl[BPB_RootClus], 2); /* Root directory cluster (2) */
ST_WORD(&tbl[BPB_FSInfo], 1); /* FSInfo record (bs+1) */
ST_WORD(&tbl[BPB_BkBootSec], 6); /* Backup boot record (bs+6) */
tbl[BS_DrvNum32] = 0x80; /* Drive number */
tbl[BS_BootSig32] = 0x29; /* Extended boot signature */
memcpy(&tbl[BS_VolLab32], "NO NAME FAT32 ", 19); /* Volume lavel, FAT signature */
}
ST_WORD(&tbl[BS_55AA], 0xAA55); /* Signature */
if (disk_write(drv, tbl, b_part+0, 1) != RES_OK)
return FR_RW_ERROR;
if (fmt == FS_FAT32)
disk_write(drv, tbl, b_part+6, 1);
 
/* Initialize FAT area */
for (m = 0; m < N_FATS; m++) {
memset(tbl, 0, SS(fs)); /* 1st sector of the FAT */
if (fmt != FS_FAT32) {
n = (fmt == FS_FAT12) ? 0x00FFFFF8 : 0xFFFFFFF8;
ST_DWORD(&tbl[0], n); /* Reserve cluster #0-1 (FAT12/16) */
} else {
ST_DWORD(&tbl[0], 0xFFFFFFF8); /* Reserve cluster #0-1 (FAT32) */
ST_DWORD(&tbl[4], 0xFFFFFFFF);
ST_DWORD(&tbl[8], 0x0FFFFFFF); /* Reserve cluster #2 for root dir */
}
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
memset(tbl, 0, SS(fs)); /* Following FAT entries are filled by zero */
for (n = 1; n < n_fat; n++) {
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
}
}
 
/* Initialize Root directory */
m = (BYTE)((fmt == FS_FAT32) ? allocsize : n_dir);
do {
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
} while (--m);
 
/* Create FSInfo record if needed */
if (fmt == FS_FAT32) {
ST_WORD(&tbl[BS_55AA], 0xAA55);
ST_DWORD(&tbl[FSI_LeadSig], 0x41615252);
ST_DWORD(&tbl[FSI_StrucSig], 0x61417272);
ST_DWORD(&tbl[FSI_Free_Count], n_clust - 1);
ST_DWORD(&tbl[FSI_Nxt_Free], 0xFFFFFFFF);
disk_write(drv, tbl, b_part+1, 1);
disk_write(drv, tbl, b_part+7, 1);
}
 
return (disk_ioctl(drv, CTRL_SYNC, NULL) == RES_OK) ? FR_OK : FR_RW_ERROR;
}
 
#endif /* _USE_MKFS && !_FS_READONLY */
 
 
 
 
#if _USE_STRFUNC >= 1
/*-----------------------------------------------------------------------*/
/* Get a string from the file */
/*-----------------------------------------------------------------------*/
char* fgets (
char* buff, /* Pointer to the string buffer to read */
int len, /* Size of string buffer */
FIL* fil /* Pointer to the file object */
)
{
int i = 0;
char *p = buff;
UINT rc;
 
 
while (i < len - 1) { /* Read bytes until buffer gets filled */
f_read(fil, p, 1, &rc);
if (rc != 1) break; /* Break when no data to read */
#if _USE_STRFUNC >= 2
if (*p == '\r') continue; /* Strip '\r' */
#endif
i++;
if (*p++ == '\n') break; /* Break when reached end of line */
}
*p = 0;
return i ? buff : 0; /* When no data read (eof or error), return with error. */
}
 
 
 
#if !_FS_READONLY
#include <stdarg.h>
/*-----------------------------------------------------------------------*/
/* Put a character to the file */
/*-----------------------------------------------------------------------*/
int fputc (
int chr, /* A character to be output */
FIL* fil /* Ponter to the file object */
)
{
UINT bw;
char c;
 
 
#if _USE_STRFUNC >= 2
if (chr == '\n') fputc ('\r', fil); /* LF -> CRLF conversion */
#endif
if (!fil) { /* Special value may be used to switch the destination to any other device */
/* put_console(chr); */
return chr;
}
c = (char)chr;
f_write(fil, &c, 1, &bw); /* Write a byte to the file */
return bw ? chr : EOF; /* Return the resulut */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Put a string to the file */
/*-----------------------------------------------------------------------*/
int fputs (
const char* str, /* Pointer to the string to be output */
FIL* fil /* Pointer to the file object */
)
{
int n;
 
 
for (n = 0; *str; str++, n++) {
if (fputc(*str, fil) == EOF) return EOF;
}
return n;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Put a formatted string to the file */
/*-----------------------------------------------------------------------*/
int fprintf (
FIL* fil, /* Pointer to the file object */
const char* str, /* Pointer to the format string */
... /* Optional arguments... */
)
{
va_list arp;
UCHAR c, f, r;
ULONG val;
char s[16];
int i, w, res, cc;
 
 
va_start(arp, str);
 
for (cc = res = 0; cc != EOF; res += cc) {
c = *str++;
if (c == 0) break; /* End of string */
if (c != '%') { /* Non escape cahracter */
cc = fputc(c, fil);
if (cc != EOF) cc = 1;
continue;
}
w = f = 0;
c = *str++;
if (c == '0') { /* Flag: '0' padding */
f = 1; c = *str++;
}
while (c >= '0' && c <= '9') { /* Precision */
w = w * 10 + (c - '0');
c = *str++;
}
if (c == 'l') { /* Prefix: Size is long int */
f |= 2; c = *str++;
}
if (c == 's') { /* Type is string */
cc = fputs(va_arg(arp, char*), fil);
continue;
}
if (c == 'c') { /* Type is character */
cc = fputc(va_arg(arp, char), fil);
if (cc != EOF) cc = 1;
continue;
}
r = 0;
if (c == 'd') r = 10; /* Type is signed decimal */
if (c == 'u') r = 10; /* Type is unsigned decimal */
if (c == 'X') r = 16; /* Type is unsigned hexdecimal */
if (r == 0) break; /* Unknown type */
if (f & 2) { /* Get the value */
val = (ULONG)va_arg(arp, long);
} else {
val = (c == 'd') ? (ULONG)(long)va_arg(arp, int) : (ULONG)va_arg(arp, unsigned int);
}
/* Put numeral string */
if (c == 'd') {
if (val >= 0x80000000) {
val = 0 - val;
f |= 4;
}
}
i = sizeof(s) - 1; s[i] = 0;
do {
c = (UCHAR)(val % r + '0');
if (c > '9') c += 7;
s[--i] = c;
val /= r;
} while (i && val);
if (i && (f & 4)) s[--i] = '-';
w = sizeof(s) - 1 - w;
while (i && i > w) s[--i] = (f & 1) ? '0' : ' ';
cc = fputs(&s[i], fil);
}
 
va_end(arp);
return (cc == EOF) ? cc : res;
}
 
#endif /* !_FS_READONLY */
#endif /* _USE_STRFUNC >= 1*/
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/ff.h
0,0 → 1,339
/*--------------------------------------------------------------------------/
/ FatFs - FAT file system module include file R0.06 (C)ChaN, 2008
/---------------------------------------------------------------------------/
/ FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2008, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ commercial use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------*/
 
#ifndef _FATFS
 
#define _MCU_ENDIAN 0
/* The _MCU_ENDIAN defines which access method is used to the FAT structure.
/ 1: Enable word access.
/ 2: Disable word access and use byte-by-byte access instead.
/ When the architectural byte order of the MCU is big-endian and/or address
/ miss-aligned access results incorrect behavior, the _MCU_ENDIAN must be set to 2.
/ If it is not the case, it can also be set to 1 for good code efficiency. */
 
#define _FS_READONLY 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
 
#define _FS_MINIMIZE 0
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename are removed.
/ 2: f_opendir and f_readdir are removed in addition to level 1.
/ 3: f_lseek is removed in addition to level 2. */
 
#define _USE_STRFUNC 0
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */
 
#define _USE_MKFS 0
/* When _USE_MKFS is set to 1 and _FS_READONLY is set to 0, f_mkfs function is
/ enabled. */
 
#define _DRIVES 2
/* Number of logical drives to be used. This affects the size of internal table. */
 
#define _MULTI_PARTITION 0
/* When _MULTI_PARTITION is set to 0, each logical drive is bound to same
/ physical drive number and can mount only 1st primaly partition. When it is
/ set to 1, each logical drive can mount a partition listed in Drives[]. */
 
#define _USE_FSINFO 0
/* To enable FSInfo support on FAT32 volume, set _USE_FSINFO to 1. */
 
#define _USE_SJIS 1
/* When _USE_SJIS is set to 1, Shift-JIS code transparency is enabled, otherwise
/ only US-ASCII(7bit) code can be accepted as file/directory name. */
 
#define _USE_NTFLAG 1
/* When _USE_NTFLAG is set to 1, upper/lower case of the file name is preserved.
/ Note that the files are always accessed in case insensitive. */
 
 
#include "integer.h"
 
 
 
/* Definitions corresponds to multiple sector size (not tested) */
#define S_MAX_SIZ 512U /* Do not change */
#if S_MAX_SIZ > 512U
#define SS(fs) ((fs)->s_size)
#else
#define SS(fs) 512U
#endif
 
 
/* File system object structure */
typedef struct _FATFS {
WORD id; /* File system mount ID */
WORD n_rootdir; /* Number of root directory entries */
DWORD winsect; /* Current sector appearing in the win[] */
DWORD sects_fat; /* Sectors per fat */
DWORD max_clust; /* Maximum cluster# + 1 */
DWORD fatbase; /* FAT start sector */
DWORD dirbase; /* Root directory start sector (cluster# for FAT32) */
DWORD database; /* Data start sector */
#if !_FS_READONLY
DWORD last_clust; /* Last allocated cluster */
DWORD free_clust; /* Number of free clusters */
#if _USE_FSINFO
DWORD fsi_sector; /* fsinfo sector */
BYTE fsi_flag; /* fsinfo dirty flag (1:must be written back) */
BYTE pad2;
#endif
#endif
BYTE fs_type; /* FAT sub type */
BYTE csize; /* Number of sectors per cluster */
#if S_MAX_SIZ > 512U
WORD s_size; /* Sector size */
#endif
BYTE n_fats; /* Number of FAT copies */
BYTE drive; /* Physical drive number */
BYTE winflag; /* win[] dirty flag (1:must be written back) */
BYTE pad1;
BYTE win[S_MAX_SIZ]; /* Disk access window for Directory/FAT */
} FATFS;
 
 
/* Directory object structure */
typedef struct _DIR {
WORD id; /* Owner file system mount ID */
WORD index; /* Current index */
FATFS* fs; /* Pointer to the owner file system object */
DWORD sclust; /* Start cluster */
DWORD clust; /* Current cluster */
DWORD sect; /* Current sector */
} DIR;
 
 
/* File object structure */
typedef struct _FIL {
WORD id; /* Owner file system mount ID */
BYTE flag; /* File status flags */
BYTE csect; /* Sector address in the cluster */
FATFS* fs; /* Pointer to the owner file system object */
DWORD fptr; /* File R/W pointer */
DWORD fsize; /* File size */
DWORD org_clust; /* File start cluster */
DWORD curr_clust; /* Current cluster */
DWORD curr_sect; /* Current sector */
#if _FS_READONLY == 0
DWORD dir_sect; /* Sector containing the directory entry */
BYTE* dir_ptr; /* Ponter to the directory entry in the window */
#endif
BYTE buffer[S_MAX_SIZ]; /* File R/W buffer */
} FIL;
 
 
/* File status structure */
typedef struct _FILINFO {
DWORD fsize; /* Size */
WORD fdate; /* Date */
WORD ftime; /* Time */
BYTE fattrib; /* Attribute */
char fname[8+1+3+1]; /* Name (8.3 format) */
} FILINFO;
 
 
 
/* Definitions corresponds to multi partition */
 
#if _MULTI_PARTITION != 0 /* Multiple partition cfg */
 
typedef struct _PARTITION {
BYTE pd; /* Physical drive # (0-255) */
BYTE pt; /* Partition # (0-3) */
} PARTITION;
extern
const PARTITION Drives[]; /* Logical drive# to physical location conversion table */
#define LD2PD(drv) (Drives[drv].pd) /* Get physical drive# */
#define LD2PT(drv) (Drives[drv].pt) /* Get partition# */
 
#else /* Single partition cfg */
 
#define LD2PD(drv) (drv) /* Physical drive# is equal to logical drive# */
#define LD2PT(drv) 0 /* Always mounts the 1st partition */
 
#endif
 
 
/* File function return code (FRESULT) */
 
typedef enum {
FR_OK = 0, /* 0 */
FR_NOT_READY, /* 1 */
FR_NO_FILE, /* 2 */
FR_NO_PATH, /* 3 */
FR_INVALID_NAME, /* 4 */
FR_INVALID_DRIVE, /* 5 */
FR_DENIED, /* 6 */
FR_EXIST, /* 7 */
FR_RW_ERROR, /* 8 */
FR_WRITE_PROTECTED, /* 9 */
FR_NOT_ENABLED, /* 10 */
FR_NO_FILESYSTEM, /* 11 */
FR_INVALID_OBJECT, /* 12 */
FR_MKFS_ABORTED /* 13 */
} FRESULT;
 
 
 
/*-----------------------------------------------------*/
/* FatFs module application interface */
 
FRESULT f_mount (BYTE, FATFS*); /* Mount/Unmount a logical drive */
FRESULT f_open (FIL*, const char*, BYTE); /* Open or create a file */
FRESULT f_read (FIL*, void*, UINT, UINT*); /* Read data from a file */
FRESULT f_write (FIL*, const void*, UINT, UINT*); /* Write data to a file */
FRESULT f_lseek (FIL*, DWORD); /* Move file pointer of a file object */
FRESULT f_close (FIL*); /* Close an open file object */
FRESULT f_opendir (DIR*, const char*); /* Open an existing directory */
FRESULT f_readdir (DIR*, FILINFO*); /* Read a directory item */
FRESULT f_stat (const char*, FILINFO*); /* Get file status */
FRESULT f_getfree (const char*, DWORD*, FATFS**); /* Get number of free clusters on the drive */
FRESULT f_truncate (FIL*); /* Truncate file */
FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT f_unlink (const char*); /* Delete an existing file or directory */
FRESULT f_mkdir (const char*); /* Create a new directory */
FRESULT f_chmod (const char*, BYTE, BYTE); /* Change file/dir attriburte */
FRESULT f_utime (const char*, const FILINFO*); /* Change file/dir timestamp */
FRESULT f_rename (const char*, const char*); /* Rename/Move a file or directory */
FRESULT f_mkfs (BYTE, BYTE, WORD); /* Create a file system on the drive */
#if _USE_STRFUNC
#define feof(fp) ((fp)->fptr == (fp)->fsize)
#define EOF -1
int fputc (int, FIL*); /* Put a character to the file */
int fputs (const char*, FIL*); /* Put a string to the file */
int fprintf (FIL*, const char*, ...); /* Put a formatted string to the file */
char* fgets (char*, int, FIL*); /* Get a string from the file */
#endif
 
/* User defined function to give a current time to fatfs module */
 
DWORD get_fattime (void); /* 31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */
/* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
 
 
 
/* File access control and file status flags (FIL.flag) */
 
#define FA_READ 0x01
#define FA_OPEN_EXISTING 0x00
#if _FS_READONLY == 0
#define FA_WRITE 0x02
#define FA_CREATE_NEW 0x04
#define FA_CREATE_ALWAYS 0x08
#define FA_OPEN_ALWAYS 0x10
#define FA__WRITTEN 0x20
#define FA__DIRTY 0x40
#endif
#define FA__ERROR 0x80
 
 
/* FAT sub type (FATFS.fs_type) */
 
#define FS_FAT12 1
#define FS_FAT16 2
#define FS_FAT32 3
 
 
/* File attribute bits for directory entry */
 
#define AM_RDO 0x01 /* Read only */
#define AM_HID 0x02 /* Hidden */
#define AM_SYS 0x04 /* System */
#define AM_VOL 0x08 /* Volume label */
#define AM_LFN 0x0F /* LFN entry */
#define AM_DIR 0x10 /* Directory */
#define AM_ARC 0x20 /* Archive */
 
 
 
/* Offset of FAT structure members */
 
#define BS_jmpBoot 0
#define BS_OEMName 3
#define BPB_BytsPerSec 11
#define BPB_SecPerClus 13
#define BPB_RsvdSecCnt 14
#define BPB_NumFATs 16
#define BPB_RootEntCnt 17
#define BPB_TotSec16 19
#define BPB_Media 21
#define BPB_FATSz16 22
#define BPB_SecPerTrk 24
#define BPB_NumHeads 26
#define BPB_HiddSec 28
#define BPB_TotSec32 32
#define BS_55AA 510
 
#define BS_DrvNum 36
#define BS_BootSig 38
#define BS_VolID 39
#define BS_VolLab 43
#define BS_FilSysType 54
 
#define BPB_FATSz32 36
#define BPB_ExtFlags 40
#define BPB_FSVer 42
#define BPB_RootClus 44
#define BPB_FSInfo 48
#define BPB_BkBootSec 50
#define BS_DrvNum32 64
#define BS_BootSig32 66
#define BS_VolID32 67
#define BS_VolLab32 71
#define BS_FilSysType32 82
 
#define FSI_LeadSig 0
#define FSI_StrucSig 484
#define FSI_Free_Count 488
#define FSI_Nxt_Free 492
 
#define MBR_Table 446
 
#define DIR_Name 0
#define DIR_Attr 11
#define DIR_NTres 12
#define DIR_CrtTime 14
#define DIR_CrtDate 16
#define DIR_FstClusHI 20
#define DIR_WrtTime 22
#define DIR_WrtDate 24
#define DIR_FstClusLO 26
#define DIR_FileSize 28
 
 
 
/* Multi-byte word access macros */
 
#if _MCU_ENDIAN == 1 /* Use word access */
#define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
#define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
#elif _MCU_ENDIAN == 2 /* Use byte-by-byte access */
#define LD_WORD(ptr) (WORD)(((WORD)*(volatile BYTE*)((ptr)+1)<<8)|(WORD)*(volatile BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(((DWORD)*(volatile BYTE*)((ptr)+3)<<24)|((DWORD)*(volatile BYTE*)((ptr)+2)<<16)|((WORD)*(volatile BYTE*)((ptr)+1)<<8)|*(volatile BYTE*)(ptr))
#define ST_WORD(ptr,val) *(volatile BYTE*)(ptr)=(BYTE)(val); *(volatile BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8)
#define ST_DWORD(ptr,val) *(volatile BYTE*)(ptr)=(BYTE)(val); *(volatile BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(volatile BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(volatile BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24)
#else
#error Do not forget to set _MCU_ENDIAN properly!
#endif
 
 
#define _FATFS
#endif /* _FATFS */
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/glg.hex
0,0 → 1,573
:100000000C9441000C945E000C945E000C945E0015
:100010000C945E000C945E000C945E000C945E00E8
:100020000C945E000C945E000C945E000C94C00274
:100030000C945E000C945E000C945E000C945E00C8
:100040000C945E000C945E000C94B5000C945E0061
:100050000C945E000C9460000C945E000C945E00A6
:100060000C945E000C945E00244750524D430024D3
:100070004750474741002E6C6F6700244750524D50
:10008000430011241FBECFEFD4E0DEBFCDBF11E08F
:10009000A0E0B1E0EAEAF3E202C005900D92A630DA
:1000A000B107D9F714E0A6E0B1E001C01D92AF336B
:1000B000B107E1F70E9435010C94D3110C940000B4
:1000C0001F920F920FB60F9211242F933F938F938D
:1000D000209178003091790080917C00203D31059D
:1000E00070F4809109018F3030F08091650181605A
:1000F0008093650106C08F5F8093090102C0109252
:10010000090181E02C32380770F0809108018F30AE
:1001100030F0809165018E7F8093650106C08F5F0E
:100120008093080102C01092080130936701209368
:10013000660182E480937C0080917C00309302020F
:100140002093010281E480937C008FED80937A00FC
:100150008F913F912F910F900FBE0F901F90189588
:1001600060E070E081EA96E308951F920F920FB667
:100170000F9211248F939F93EF93FF939091C6005A
:1001800080916A01863988F48F5F80936A0180913B
:100190006801E82FF0E0E859FE4F93838F5F8639BE
:1001A00008F080E08093680105C08091650182605D
:1001B00080936501FF91EF919F918F910F900FBEFA
:1001C0000F901F90189590E051E448E901C090E02D
:1001D0008091650180FD46C03091690180916A017E
:1001E000882311F420E013C0E32FF0E0E859FE4F1C
:1001F0002381E32FEF5FF89480916A01815080930F
:100200006A017894E63908F0E0E0E09369018091B2
:10021000650181FF14C0F8941092C1001092690129
:100220001092680110926A015093C4004093C1007B
:10023000809165018D7F809365017894C8CF2223DA
:1002400039F2992319F4243209F0C2CFE92FF0E0F2
:10025000ED5EFE4F20839F5F2A3029F0923508F033
:10026000B6CFB6CF90E0892F0895A2E0B0E0EBE3DF
:10027000F1E00C94A1118DE085B98EE284B98FE391
:1002800088B917B88EEA8BB982E58AB980E58CBD4A
:1002900081E08DBD83ED90E3909389008093880089
:1002A0008AE08093810082E080936F0082E187BDC5
:1002B00082E484BD81E480937C008FED80937A009A
:1002C00078946FE172E080E00E942709EE24FF2419
:1002D00034E6832E77247A9423E0C22E95E0D92E3B
:1002E0005E010894A11CB11C82E3982E1092C100FB
:1002F0002998809212018091650180FF02C080924E
:100300001201809112018823B1F7299A709212018B
:100310008091650180FD05C080E00E943D0F81FF56
:1003200002C07092120180911201882389F791E036
:100330000EC0C5BCD0921201809112018823E1F752
:1003400015BCD0921201809112018823E1F79150DF
:1003500080F7F8941092C100109269011092680120
:1003600010926A0181E48093C40088E98093C100FF
:10037000809165018D7F80936501789402C0EE24A1
:10038000FF240E94E300882309F4B0CF2BE730E07C
:10039000A3E1B1E0F9012F5F3F4F9491992329F038
:1003A0008C91981771F41196F5CFE3E1F1E082E0BA
:1003B0009081913220F331969C32D1F78150C1F770
:1003C0007F01E114F104E9F2F70180818134C9F67B
:1003D000E3E1F1E089E09081913208F4A6C0319622
:1003E0009C32C9F78150B9F77F01309709F49DC05D
:1003F000848195819093140180931301828193816C
:10040000909316018093150180819181909318013A
:100410008093170166E770E089E191E00E9437114F
:1004200042E163E171E083E092E00E947F09892B61
:1004300009F07DC040910D0250910E0260910F02B3
:100440007091100283E092E00E94E404892B09F08D
:100450006EC092E00EC0C5BCD09212018091120114
:100460008823E1F715BCD0921201809112018823F4
:10047000E1F7915080F73FC02FE630E0A3E1B1E013
:10048000F9012F5F3F4F9491992389F08C91981730
:1004900009F064C01196F4CF1196F9012F5F3F4F18
:1004A0009491992321F08C919817B1F311C0042FE6
:1004B00010E09501A80163E171E083E092E00E9401
:1004C000B606892BF9F489819A8108171907D1F4A6
:1004D0008091650182FF0FC083E092E00E94510687
:1004E000892B11F096E024C0F894809165018B7FF0
:1004F0008093650178940E94E300482F882309F0D7
:10050000BBCF31C095E014C0C5BC90921201809160
:1005100012018823E1F715BC90921201809112011B
:100520008823E1F7915080F7E1CE93E001C094E099
:100530001092C100299833E029E135BD20931201C2
:10054000809112018823E1F715BC2093120180915C
:1005500012018823E1F7915081F7FFCF28E630E0C0
:10056000A3E1B1E09ACF1092C100299883E092E014
:100570000E94A806892B11F097E0DACF91E0D2CF44
:100580001F920F920FB60F9211242F938F939F9368
:1005900080911201882319F081508093120180917B
:1005A000060190910701019690930701809306013F
:1005B0008055964448F010920701109206018091F0
:1005C00065018460809365010E9417119F918F914E
:1005D0002F910F900FBE0F901F901895FC01009760
:1005E00069F0808191818617970741F480E00E942D
:1005F0003D0F282F30E02170307002C02CE030E039
:10060000C9010895A0E0B0E0E8E0F3E00C94A01187
:100610004B015C01C0910A01D0910B01CC80DD80BF
:10062000EE80FF80C616D706E806F90609F44EC02C
:100630008F8D8823A1F180E2682E712C6C0E7D1EB7
:1006400001E0A7019601B30180E00E94A30F892B6E
:10065000D9F51F8E8C899D89A0E0B0E02885398569
:100660004A855B85820F931FA41FB51FC816D90644
:10067000EA06FB06A0F41E8D10C08C899D89A0E0BF
:10068000B0E0C80ED91EEA1EFB1E01E0A7019601CC
:10069000B30180E00E94A30F1150123070F7811453
:1006A0009104A104B10491F0BE01605E7F4F01E0AE
:1006B000A501940180E00E94440F892B29F48C82CB
:1006C0009D82AE82BF8202C080E001C081E0CDB7D2
:1006D000DEB7EEE00C94BC11A0E0B0E0E2E7F3E09E
:1006E0000C94A011EC014B01E0900A01F0900B0179
:1006F000F701A084B184C284D384848D813021F039
:10070000823009F072C05AC08E01000F111F0C0F09
:100710001D1F16950795B801672F7727669580E00E
:1007200090E06A0D7B1D8C1D9D1D0E940203882395
:1007300009F45BC0D801B17051E0652E712C6C22B8
:100740007D22C0FF0AC0F701EA0FFB1F80A18F7056
:10075000982D9295907F982B01C0982DAE0DBF1DBE
:10076000FD0190A3E801219681E0F701878FBE018A
:10077000672F7727669580E090E06A0D7B1D8C1DC2
:100780009D1D0E940203882381F1DE01B170611476
:10079000710439F034E0969487943A95E1F7982DF6
:1007A00008C0F701EA0FFB1F90A1907F892D8F7081
:1007B000982BAE0DBF1DFD0190A313C06D2F7727A1
:1007C00080E090E06A0D7B1D8C1D9D1D0E94020340
:1007D000882359F0CC0FDD1FD170CE0DDF1D99A2FB
:1007E00088A281E0F701878F01C080E0CDB7DEB736
:1007F000EEE00C94BC11A0E0B0E0E1E0F4E00C9479
:10080000A3118C01E0900A01F0900B018230910558
:1008100008F467C0E7018E899F890817190708F057
:1008200060C0A884B984CA84DB848C8D813021F0B7
:10083000823009F056C040C0E801CC0FDD1FC00F68
:10084000D11FD695C795BE01672F7727669580E0A3
:1008500090E06A0D7B1D8C1D9D1D0E940203882364
:1008600009F43FC0FE01F170EE0DFF1D90A021962E
:10087000BE01672F7727669580E090E06A0D7B1DAB
:100880008C1D9D1D0E940203882359F1292D30E003
:10089000D170EC0EFD1EF70190A180E0282B392BC2
:1008A00000FF07C0F90194E0F695E7959A95E1F706
:1008B0001AC0F901FF7017C0612F772780E090E020
:1008C0006A0D7B1D8C1D9D1D0E940203882349F02B
:1008D000000F111F1170E00EF11EE701E8A1F9A150
:1008E00002C0E1E0F0E0CF01CDB7DEB7EBE00C9461
:1008F000BF11A0E0B0E0EFE7F4E00C94A4117C019C
:10090000C0900A01D0900B01F601A688B788009725
:1009100049F4008D118D0230110588F00A151B0570
:1009200070F40FC00E94FB039C018230910508F413
:1009300040C08A159B0508F441C0870102C001E050
:1009400010E0E8012196CA15DB0528F002301105F8
:1009500098F1C2E0D0E0CE010E94FB039C01009719
:1009600039F08130910551F1C017D10759F724C0F2
:100970001C2F0D2F6FEF7FEFCE010E946C03882399
:10098000C1F0E114F10431F0BE01C7010E946C0313
:10099000882379F0F601108F018F828D938DFFEF00
:1009A0008F3F9F0721F00197F601938F828F9E0161
:1009B00005C021E030E002C020E030E0C901CDB741
:1009C000DEB7EAE00C94C011A0E0B0E0EAEEF4E09B
:1009D0000C94A011EC017A018B016C807D80688100
:1009E0007981C3010E94EE024C01009709F0D6C044
:1009F0008A8187FDD0C0AA84BB84CC84DD84AE14F8
:100A0000BF04C006D10610F481FF02C0570168017F
:100A10001E821F821886198681E08B83A114B1047F
:100A2000C104D10409F49DC06E857F8561157105EF
:100A300071F480E090E00E947904BC01813091055E
:100A400009F4A6C09F878E87009709F48AC0F30136
:100A5000858DE82EFF2400E010E0F9E0EE0CFF1C8D
:100A6000001F111FFA95D1F7798B688BEA14FB04EC
:100A70000C051D0558F58A8181FF04C0CB010E9439
:100A8000790403C0CB010E94FB03BC010097E1F095
:100A90008130910509F47CC0F30186899789681734
:100AA000790708F075C08E819F81A885B9858E0D64
:100AB0009F1DA01FB11F8E839F83A887B987AE1883
:100AC000BF08C00AD10AD0CF57016801D601C501BD
:100AD0000197A109B109E9E0B695A7959795879582
:100AE000EA95D1F7F82E00910A0110910B0162509E
:100AF0007040F8018689978902976817790728F06E
:100B000020E030E040E050E014C080E090E0F801E8
:100B1000258D30E040E050E00E945B119B01AC016C
:100B2000F80180899189A289B389280F391F4A1F4A
:100B30005B1F2F0D311D411D511D2A8B3B8B4C8B93
:100B40005D8BF301858D8F198B838E819F81A885A5
:100B5000B9858A0D9B1DAC1DBD1D8E839F83A88703
:100B6000B9876A8161FF1AC02E813F814885598506
:100B70008A859B85AC85BD8582179307A407B50739
:100B800068F42A873B874C875D8760626A8306C06A
:100B90008A8180688A8368E0862E912CC401CDB753
:100BA000DEB7EEE00C94BC11EF92FF920F931F930F
:100BB000CF93DF938C01C0910A01D0910B01FC010E
:100BC000E280F3800894E11CF11CC7018F709070E3
:100BD000892B09F05BC082859385A485B585019634
:100BE000A11DB11D82879387A487B5874085518554
:100BF0004115510539F48A819B81E816F90608F4FC
:100C000045C049C08D8D90E001979701A4E03695CD
:100C10002795AA95E1F782239323892BB9F5CA0179
:100C20000E94FB03BC0182309105A8F18E899F8947
:100C30006817790780F5F80171876087C0910A010C
:100C4000D0910B01625070408E899F89029768177E
:100C5000790728F020E030E040E050E012C080E06A
:100C600090E02D8D30E040E050E00E945B119B0150
:100C7000AC0188899989AA89BB89280F391F4A1F25
:100C80005B1FF8012287338744875587F801F38279
:100C9000E28281E001C080E0CDB7DEB7E6E00C94EF
:100CA000C411EF92FF920F931F93CF93DF93EC0148
:100CB000688179818C819D810E94EE027C01009780
:100CC00009F040C08A8185FF3DC06E897F89888D8B
:100CD000998D0E940203882391F10A8D1B8DF801E2
:100CE0008385806283878A859B85AC85BD85848F5B
:100CF000958FA68FB78F8E859F85938F828F0E9449
:100D0000B000F801668B778B808F918F8A818F7D01
:100D10008A83E0910A01F0910B0181E0878F60E006
:100D200070E080E090E00E940203882341F040E000
:100D300050E063E080E00E941F10892B19F0B8E0BA
:100D4000EB2EF12CC701CDB7DEB7E6E00C94C41151
:100D5000CF93DF93EC010E9451069C01009711F4A0
:100D60001D821C82C901DF91CF910895A0E0B0E0FF
:100D7000ECEBF6E00C949D11EC01162F072F7A0195
:100D80003901AC80BD80F9011182108268817981BE
:100D9000C5010E94EE024C01009709F03BC18A8117
:100DA00087FD35C181FD04C036E0832E912C32C110
:100DB0002A853B854C855D85C701A0E0B0E0820FA8
:100DC000931FA41FB51F82179307A407B50708F444
:100DD00021C1812F902F9C016901412C22E0522ECC
:100DE00033243394F8C02E813F8148855985DA0138
:100DF000C9019170A070B0700097A105B10509F00C
:100E0000B1C08B8181508B83882349F02A893B892B
:100E10004C895D892F5F3F4F4F4F5F4F51C0211568
:100E200031054105510569F46E857F8561157105B0
:100E300089F480E090E00E947904BC019F878E874E
:100E400005C0888999890E947904BC0161157105E2
:100E500009F4C5C06130710509F4D6C0F501868971
:100E600097896817790708F0CFC0798B688B009154
:100E70000A0110910B0162507040F8018689978930
:100E800002976817790728F020E030E040E050E052
:100E900014C080E090E0F801258D30E040E050E0A3
:100EA0000E945B119B01AC01F80180899189A289A4
:100EB000B389280F391F4A1F5B1FF501858D8B836E
:100EC0002A8B3B8B4C8B5D8B0F2D069561F16B81D3
:100ED000102F601708F4162F012FB60180E00E9432
:100EE000A30F892B09F090C08B818F5F811B8B83AF
:100EF000812F90E001979C01442737FD4095542FA6
:100F00008C010F5F1F4F8A899B89AC89BD89820F35
:100F1000931FA41FB51F8A8B9B8BAC8BBD8B102F8F
:100F20000027110F3EC02E813F81488559858A8553
:100F30009B85AC85BD85281739074A075B0790F06C
:100F400060E070E080E090E00E940203882309F4F2
:100F50005BC08A899B89AC89BD89F50184839583AF
:100F6000A683B7836A897B898C899D890E94020345
:100F7000882309F449C02E813F813170C201821B50
:100F8000930B87018E159F0508F48C01205E3F4F5F
:100F90002A0D3B1DA801B601C9010E944B11F501A4
:100FA000378EC00ED11EC801A0E0B0E02E813F8177
:100FB00048855985280F391F4A1F5B1F2E833F83A1
:100FC00048875987F30180819181800F911F918318
:100FD0008083E01AF10AE114F10409F004CF2E81B4
:100FE0003F81488559858A859B85AC85BD8582175B
:100FF0009307A407B50720F42A873B874C875D87B2
:101000008A8180628A8306C08A8180688A8388E0B8
:10101000882E912CC401CDB7DEB7E1E10C94B91153
:10102000A0E0B0E0E6E1F8E00C949E11EC01162F90
:10103000072F7A0139018C809D80F901118210827D
:1010400068817981C4010E94EE025C01009709F079
:10105000F8C08A8187FDF2C080FD04C076E0A72E2B
:10106000B12CEFC02A853B854C855D858E819F81A3
:10107000A885B985281B390B4A0B5B0BC701A0E07B
:10108000B0E0281739074A075B0708F47901812F78
:10109000902F9C016901412C62E0562EC7C02E8121
:1010A0003F8148855985DA01C9019170A070B070FF
:1010B0000097A105B10509F084C08B8181508B8315
:1010C000882349F02A893B894C895D892F5F3F4FEE
:1010D0004F4F5F4F43C0211531054105510519F4AC
:1010E0006E857F8505C0888999890E94FB03BC01B4
:1010F0006230710508F49FC0F401868997896817EA
:10110000790708F098C0798B688B00910A011091DB
:101110000B0162507040F801868997890297681721
:10112000790728F020E030E040E050E014C080E093
:1011300090E0F801258D30E040E050E00E945B1126
:101140009B01AC01F80180899189A289B389280F9C
:10115000391F4A1F5B1FF401858D8B832A8B3B8BC4
:101160004C8B5D8B0F2D069561F16B81102F6017F5
:1011700008F4162F012FB60180E00E94440F892B3E
:1011800009F059C08B818F5F811B8B83812F90E089
:1011900001979C01442737FD4095542F8C010F5F28
:1011A0001F4F8A899B89AC89BD89820F931FA41F19
:1011B000B51F8A8B9B8BAC8BBD8B102F0027110F1B
:1011C0001BC06A897B898C899D890E9402038823C0
:1011D00091F18E819F8191709201281B390B8701BB
:1011E0002E153F0508F489018096880D991DA801E8
:1011F000BC01C6010E944B11C00ED11EC801A0E067
:10120000B0E02E813F8148855985280F391F4A1F3C
:101210005B1F2E833F8348875987F301808191812B
:10122000800F911F91838083E01AF10AE114F10489
:1012300009F035CF06C08A8180688A8348E0A42EF1
:10124000B12CC501CDB7DEB7E0E10C94BA11CF9354
:10125000DF93FB01882319F025E030E01DC0A09149
:101260000A01B0910B0170930B0160930A01109772
:1012700041F080E292E0ED019C0119922150304052
:10128000E1F7309739F080E292E0DF01EC011D9246
:101290002197E9F720E030E0C901DF91CF9108956F
:1012A0000F93CF93DF939B01AC01C0910A01D091C2
:1012B0000B01BE01605E7F4F01E080E00E94440FA1
:1012C000892BC1F4C25EDD4F88819981CE51D24015
:1012D00085559A4A79F443E050E060E071E0CE0130
:1012E0008A5A9F4F0E943E119C0180E0232B19F0E7
:1012F00081E001C082E0DF91CF910F910895ADE1CF
:10130000B0E0E5E8F9E00C949C119D8F8C8F3B01D7
:1013100080900A0190900B01FC011582148203C099
:101320000894611C711CF30180818032C9F38F32F3
:1013300019F40894611C711C8114910409F417C1FB
:10134000F42FFF71FB8F142F1E71F401848D8823FD
:1013500059F080E00E943D0F80FD06C0112309F482
:10136000ABC382FD07C1A8C380E292E0F4019C01F7
:10137000119221503040E1F780E00E94600E80FF22
:1013800003C021E030E08BC3112311F082FDF2C0D5
:1013900060E070E080E090E00E945009813021F030
:1013A000EE24FF2487011EC082EE91E0880E991E74
:1013B000F40180812EE13EEF820E931E882309F412
:1013C000DCC086EE91E0880E991EF401E080F18089
:1013D000028113812AE13EEF820E931EC801B701FC
:1013E0000E945009882309F0C8C0F40183A594A580
:1013F0008050924009F0C1C0F40186A997A9BC01B0
:1014000080E090E0611571058105910569F424E49F
:1014100030E0820E931EF40160817181828193819C
:101420002CEB3FEF820E931EF401758B648B20A989
:10143000268F30E040E050E00E945B115B016C01C0
:10144000F40186A597A5A0E0B0E0E80EF91E0A1FFA
:101450001B1FE086F1860287138785A5858F21A94A
:1014600032A93383228383A994A97C0100E010E090
:10147000E114F1040105110569F480E490E0880E9F
:10148000991EF401E080F1800281138180EC9FEFCE
:10149000880E991EF40186A597A5A0E0B0E0E81A91
:1014A000F90A0A0B1B0BEA18FB080C091D09A4E03A
:1014B00036952795AA95E1F7C901A0E0B0E0E81AB2
:1014C000F90A0A0B1B0B258D30E040E050E0C80103
:1014D000B7010E947A112E5F3F4F4F4F5F4FF401CB
:1014E000378B268B283FFFE03F07F0E04F07F0E007
:1014F0005F0710F461E006C0285F3F4F4040504056
:10150000E0F562E0F4012085318542855385D601FE
:10151000C501820F931FA41FB51F84879587A687D7
:10152000B7878281938174E0969587957A95E1F7E4
:10153000A0E0B0E0820F931FA41FB51F8A0D9B1D72
:10154000AC1DBD1D808B918BA28BB38B648F8FEFF5
:101550009FEF938F828F80910C0190910D010196E6
:1015600090930D0180930C0191838083A5C22AE0A2
:1015700030E095C229E030E092C22BE030E08FC22B
:101580002E010894411C511C92E0292E312C4BE075
:1015900050E060E270E0C2010E94541120E048E097
:1015A00090E038E102C028E04BE0F30111913F01E7
:1015B000112311F01F3249F4222309F4C7C0392343
:1015C0003C87113009F044C0C1C0113208F4BEC0DC
:1015D0001F3709F4BBC01E3241F490FDB7C022236F
:1015E00009F4B4C02930F8F2B1C0123209F4AEC027
:1015F0001A3220F11D3208F4A9C01A33F8F0103461
:1016000008F4A4C090FD1AC01C3709F49FC0812FB4
:101610008B55833008F49AC0865E8A3128F44830AE
:1016200011F4377F01C03F7E812F81568A3130F41B
:101630001052483011F4986001C09061241708F0EE
:1016400085C09E7FF201E20FF11D10832F5FADCFA9
:101650006F89788D898D9A8D0E940203882331F4D9
:1016600090E09C01590128E030E084C02F85388942
:101670002F70307085E0220F331F8A95E1F7F60155
:10168000E20FF31F80A18823E1F0853EA1F000E284
:10169000A02EB12CA20EB31EAC0CBD1CF50183858F
:1016A000082F83FD08C04BE050E0B201C5010E9445
:1016B0003E11009751F0CE010D960E94D40588236B
:1016C00039F6112309F049C04FC0112319F420E065
:1016D00030E050C004FF41C0F501E28CF38CFE8A7B
:1016E000ED8A00910A0110910B01B7016250704020
:1016F000F8018689978902976817790728F020E012
:1017000030E040E050E014C080E090E0F801258D2A
:1017100030E040E050E00E945B119B01AC01F80119
:1017200080899189A289B389280F391F4A1F5B1FBD
:10173000FC8AEB8A2F8B388F498F5A8F388A2F86F5
:1017400026CF20E030E0AA24BB2414C080E090E043
:101750009C01590124E030E00DC080E090E09C0144
:10176000590123E030E006C080E090E09C0159017F
:1017700022E030E0FB8D4F2F50E0CA018C71907059
:10178000892B09F441C12115310509F4D6C0223055
:10179000310509F084C160900A0170900B010B893A
:1017A0001C890115110551F11E8B0D8BB80162507A
:1017B0007040F3018689978902976817790728F0A6
:1017C00020E030E040E050E014C080E090E0F30121
:1017D000258D30E040E050E00E945B119B01AC01A0
:1017E000F30180899189A289B389280F391F4A1F83
:1017F0005B1F2F8B388F498F5A8F09C0F301848567
:101800009585A685B7858F8B988FA98FBA8F188AF3
:101810001F86BDE0EB2EF12CEC0EFD1E6F89788D3E
:10182000898D9A8D0E940203882309F433C1EF85C4
:10183000F889EF70F070A5E0EE0FFF1FAA95E1F7B1
:10184000B0965301AE0EBF1EB097E60DF71D80A1F6
:10185000882309F44CC1853E09F449C1C7010E949F
:10186000D4058823D9F60115110509F410C18D8915
:101870009E890E9479048C01009709F408C1813087
:10188000910509F407C160E070E080E090E00E94FB
:101890000203882309F4FEC0A0900A01B0900B0156
:1018A000B80162507040F5018689978902976817E0
:1018B000790720F0CC24DD24760114C080E090E08C
:1018C000F501258D30E040E050E00E945B116B0196
:1018D0007C01F50180899189A289B389C80ED91E3E
:1018E000EA1EFB1EF301C482D582E682F782E0E2A3
:1018F000AE2EB12CA60CB71C80E092E0F5019C0145
:10190000119221503040E1F7F301158D10C001E034
:10191000A7019601B50180E00E94A30F892B09F071
:10192000B9C00894C11CD11CE11CF11C1150112339
:1019300071F781E0F301878FDAC0F2FF03C027E07F
:1019400030E0ADC0A114B10409F4A1C0F501838554
:10195000817109F09CC043FF42C0C28CD38C138EAE
:10196000128E148E158E168E178E81E0F401878FDD
:101970002480358046805780E0900A01F0900B016A
:1019800086011CC0C8010E94FB033C018130910507
:1019900009F480C060E070E0C8010E946C038823F5
:1019A00009F478C0F701828D938DFFEF8F3F9F0779
:1019B00021F00196F701938F828F83010230110588
:1019C00008F472C0F7018689978908171907D0F2C1
:1019D0006BC00894C108D108F401D18EC08EFB8D74
:1019E000F3FF22C080E2F50183870E94B000F50179
:1019F000668B778B808F918F66877787808B918BB3
:101A000081E0F401878F10C02115310509F047C02E
:101A1000A114B10409F441C0F501838584FD3DC0E2
:101A200041FF02C080FD33C0F40184819581A6810D
:101A3000B781EC8DFD8D868B978BA08FB18FB38E88
:101A4000A28E2B8D2283F501828D938DEC8DFD8DE1
:101A500097878687F501848D958DA68DB78DEC8D42
:101A6000FD8D82879387A487B5871682178210869B
:101A7000118681E0838395828482F4018081918143
:101A8000EC8DFD8D9183808320E030E008C026E05E
:101A900030E005C028E030E002C022E030E0C901BB
:101AA0006D96E2E10C94B811C201B1010E940203EB
:101AB000882309F08ECFEECFC0900A01D0900B01A1
:101AC000F601848595851C8A1B8A1E8A1D8AA0E0E2
:101AD000B0E08F8B988FA98FBA8F188A1F86DA8A09
:101AE000C98AF3018081882309F04ACD2ACE80E299
:101AF000F50111928A95E9F7D501FE0131968BE047
:101B000001900D928150E1F78C85F5018487FB8D62
:101B1000F860FB8F64CFFC018AE080930F019FEF98
:101B20009EBD0DB407FEFDCF8EB58F3F29F4809189
:101B30000F018823A9F722C08E3F01F59FEF9EBDBC
:101B40000DB407FEFDCF8EB580839EBD0DB407FE9C
:101B5000FDCF8EB581836250704011F03296EFCF89
:101B60008FEF8EBD0DB407FEFDCF8EB58FEF8EBD0E
:101B70000DB407FEFDCF8EB581E0089580E0089595
:101B8000FC0182E3809310018FEF8EBD0DB407FE40
:101B9000FDCF8EB59FEF9EBD0DB407FEFDCF8EB578
:101BA0008F3F31F0809110018823A9F790E02EC07B
:101BB0006EBD0DB407FEFDCF6D3F11F491E026C060
:101BC00090E080818EBD0DB407FEFDCF81818EBD7A
:101BD0000DB407FEFDCF915011F03296F2CF8FEF8A
:101BE0008EBD0DB407FEFDCF8FEF8EBD0DB407FE89
:101BF000FDCF8FEF8EBD0DB407FEFDCF8EB590E00B
:101C00008F71853009F091E081E09827892F089540
:101C1000282F82E3809310018FEF8EBD0DB407FE55
:101C2000FDCF8EB59FEF9EBD0DB407FEFDCF8EB5E7
:101C30008F3F31F0809110018823A9F78FEF08952D
:101C40002EBD0DB407FEFDCF872F9927AA27BB27EE
:101C50008EBD0DB407FEFDCFCB01AA27BB278EBDDD
:101C60000DB407FEFDCFBB27A72F962F852F8EBD66
:101C70000DB407FEFDCF4EBD0DB407FEFDCF2034E1
:101C800011F485E905C0283411F487E801C080E02B
:101C90008EBD0DB407FEFDCF2C3431F48FEF8EBD19
:101CA0000DB407FEFDCF8EB59AE02FEF2EBD0DB41B
:101CB00007FEFDCF8EB587FF02C09150B9F708959A
:101CC000A4E0B0E0E6E6FEE00C94A811882311F051
:101CD00081E0CFC08091040181FDC9C08AE09FEFFF
:101CE0009EBD0DB407FEFDCF2EB58150C9F72A98D1
:101CF00040E050E060E070E080E40E94080E813037
:101D000009F0A0C084E680930F014AEA51E060E048
:101D100070E088E40E94080E813009F054C07E0112
:101D20000894E11CF11C87019FEF9E012B5F3F4F40
:101D30009EBD0DB407FEFDCF8EB5F80181938F01D6
:101D4000E217F307A9F78B81813009F07BC08C8102
:101D50008A3A09F077C040E050E060E070E087E741
:101D60000E94080E823048F440E050E060E070E4E9
:101D700089E60E94080E882321F080910F018823B4
:101D800051F780910F01882309F45CC040E050E0D6
:101D900060E070E08AE70E94080E882309F052C0D4
:101DA0009FEF9EBD0DB407FEFDCF8EB5F701819369
:101DB0007F01E017F107A9F7898186FD02C012E0D3
:101DC00042C016E040C040E050E060E070E087E7CD
:101DD0000E94080E823058F440E050E060E070E06D
:101DE00089E60E94080E823010F412E001C011E072
:101DF000123079F440E050E060E070E087E70E9444
:101E0000080E823078F440E050E060E070E089E64F
:101E100005C040E050E060E070E081E40E94080E00
:101E2000882321F080910F01882311F780910F0101
:101E3000882341F040E052E060E070E080E50E94DD
:101E4000080E811110E0109311012A9A8FEF8EBDB8
:101E50000DB407FEFDCF8EB5112321F08091040152
:101E60008E7F03C080910401816080930401809182
:101E700004012496E6E00C94C411882311F081E05B
:101E800008958091040108950F93CF93DF93EB01A0
:101E9000882309F051C0002309F44EC08091040149
:101EA00080FF03C023E030E049C08091110182FD32
:101EB00007C069E0220F331F441F551F6A95D1F7F1
:101EC0002A98013089F4BA01A90181E50E94080E1F
:101ED000882321F560E072E0CE010E948B0D00E0C6
:101EE0008823E1F401E01AC0BA01A90182E50E9449
:101EF000080E882399F460E072E0CE010E948B0DF9
:101F0000882329F0015019F0C050DE4FF4CF40E093
:101F100050E060E070E08CE40E94080E2A9A8FEF97
:101F20008EBD0DB407FEFDCF8EB520E030E000235E
:101F300029F021E030E002C024E030E0C901DF9167
:101F4000CF910F910895CF92DF92EF92FF920F936E
:101F5000CF93DF93EB0169017A01882309F064C014
:101F6000002309F461C08091040180FF03C023E0D5
:101F700030E05CC08091040182FF03C022E030E0C9
:101F800055C08091110182FD07C079E0CC0CDD1CA9
:101F9000EE1CFF1C7A95D1F72A98013069F4B7013D
:101FA000A60188E50E94080E882381F56EEFCE0118
:101FB0000E94C00D00E027C081FF0EC040E050E04D
:101FC00060E070E087E70E94080E402F50E060E07C
:101FD00070E087E50E94080EB701A60189E50E941E
:101FE000080E882399F46CEFCE010E94C00D88235F
:101FF00029F0015019F0C050DE4FF5CF6DEF80E0B1
:1020000090E00E94C00D882309F401E02A9A8FEF26
:102010008EBD0DB407FEFDCF8EB520E030E000236D
:1020200029F021E030E002C024E030E0C901DF9176
:10203000CF910F91FF90EF90DF90CF900895A0E1A6
:10204000B0E0E5E2F0E10C94AA118A01882319F0CE
:1020500024E030E0E7C02A98633009F47FC06430A0
:1020600028F4613079F0623051F472C06B3009F4B9
:1020700096C06C3009F4AAC06A3009F486C024E026
:1020800030E0C6C040E050E060E070E089E40E94CB
:10209000080E882309F0B7C060E170E0CE01019618
:1020A0000E948B0D882309F4AEC0898182958695A4
:1020B000869583707A8549858130B1F4872F90E0C9
:1020C0000196342F20E0820F931FA0E0B0E02AE0B9
:1020D000880F991FAA1FBB1F2A95D1F7F80180838B
:1020E0009183A283B38392C04295469546954370EF
:1020F000288530E0220F331F220F331F240F311D9C
:102100002F5F3F4F8F8190E083709070982F8827CA
:10211000990F990F280F391F40E050E08E818F7082
:102120006B85661F6627661F860F8E5F7370770F3D
:10213000870F90E0099704C0220F331F441F551FDB
:102140008A95D2F7F80120833183428353835EC09E
:1021500080E092E0FA019183808358C082E380930B
:1021600010018FEF8EBD0DB407FEFDCF8EB59FEF32
:102170009EBD0DB407FEFDCF8EB58F3F09F446C05E
:10218000809110018823A1F73EC08091040180FD59
:1021900047C040E050E060E070E089E409C0809111
:1021A000040180FD3DC040E050E060E070E08AE462
:1021B0000E94080E882339F560E170E0C8010E9492
:1021C0008B0D20E030E0882319F51DC080910401BB
:1021D00080FD26C040E050E060E070E08AE70E94A9
:1021E000080E882381F4F8019FEF98012D5F3F4F7F
:1021F0009EBD0DB407FEFDCF8EB58083E217F307B9
:1022000029F03196F5CF21E030E002C020E030E047
:102210002A9A8FEF8EBD0DB407FEFDCF8EB502C09A
:1022200023E030E0C9016096E4E00C94C61180918F
:102230000F01882319F0815080930F0180911001C4
:10224000882319F081508093100190910E0183B181
:10225000817080930E01981749F48091040190FFDA
:1022600002C0836001C08D7F809304010895FB014B
:10227000DC0105900D920020E1F70895FB01DC01DF
:1022800004C08D910190801921F441505040C8F74D
:10229000881B990B0895FB01DC0102C001900D928F
:1022A00041505040D8F70895DC0101C06D93415072
:1022B0005040E0F70895629FD001739FF001829F24
:1022C000E00DF11D649FE00DF11D929FF00D839FC5
:1022D000F00D749FF00D659FF00D9927729FB00D62
:1022E000E11DF91F639FB00DE11DF91FBD01CF0175
:1022F00011240895A1E21A2EAA1BBB1BFD010DC0DB
:10230000AA1FBB1FEE1FFF1FA217B307E407F507A5
:1023100020F0A21BB30BE40BF50B661F771F881F81
:10232000991F1A9469F760957095809590959B0117
:10233000AC01BD01CF0108952F923F924F925F9261
:102340006F927F928F929F92AF92BF92CF92DF92C5
:10235000EF92FF920F931F93CF93DF93CDB7DEB72A
:10236000CA1BDB0B0FB6F894DEBF0FBECDBF0994BE
:102370002A88398848885F846E847D848C849B8415
:10238000AA84B984C884DF80EE80FD800C811B8123
:10239000AA81B981CE0FD11D0FB6F894DEBF0FBE52
:0A23A000CDBFED010895F894FFCFC2
:0623AA0046415400010051
:00000001FF
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/integer.h
0,0 → 1,23
#ifndef _INTEGER
 
typedef int INT;
typedef unsigned int UINT;
 
typedef char CHAR;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
 
typedef short SHORT;
typedef unsigned short USHORT;
typedef unsigned short WORD;
 
typedef long LONG;
typedef unsigned long ULONG;
typedef unsigned long DWORD;
 
typedef unsigned char BOOL;
#define FALSE 0
#define TRUE 1
 
#define _INTEGER
#endif
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/main.c
0,0 → 1,393
/*---------------------------------------------------------------*/
/* GPS data logger R0.02 (C)ChaN, 2008 */
/*---------------------------------------------------------------*/
 
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <string.h>
#include "tff.h"
#include "diskio.h"
 
 
#define SYSCLK 10000000UL
 
#define BEEP_ON() TCCR0B=0b011
#define BEEP_OFF() TCCR0B=0b000
#define GPS_ON() PORTB|=0x02
#define GPS_OFF() PORTB&=0xFD
#define DELAY(dly) for(Timer=dly;Timer;)
 
#define VTH_LOW (WORD)(8000UL*100/3838)
#define VTH_HIGH (WORD)(11500UL*100/3838)
#define POWER_check 0b01000000 | 1
#define ANALOG_IN1 0b01000000 | 2
 
 
FATFS fatfs; /* File system object for each logical drive */
FIL file1; /* File object */
BYTE Buff[82]; /* File/Console buffer */
 
uint16_t battery; // battery voltage
uint16_t intensity; // radiation intensity
 
volatile BYTE Timer; /* 100Hz decrement timer */
volatile BYTE Stat; /* Status */
 
 
typedef struct _fifo {
uint8_t idx_w;
uint8_t idx_r;
uint8_t count;
uint8_t buff[150];
} FIFO;
volatile FIFO rxfifo;
 
 
 
/*---------------------------------------------------------*/
/* ADC interrupt */
/*---------------------------------------------------------*/
 
ISR(ADC_vect)
{
WORD n;
static BYTE l, h;
 
n = ADC;
 
if(ADMUX == POWER_check)
{
if (n < VTH_LOW) {
if (l >= 15) {
Stat |= 0x01;
}
else {l++;}
}
else {l = 0;}
 
if (n > VTH_HIGH) {
if (h >= 15) {
Stat &= 0xFE;
}
else {h++;}
}
else {h = 0;}
 
battery = n;
ADMUX = ANALOG_IN1;
}
 
if(ADMUX == ANALOG_IN1)
{
intensity = n;
ADMUX = POWER_check;
}
 
//!!!!
//Stat &= 0xFE;
 
ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
}
 
 
/*---------------------------------------------------------*/
/* 100Hz timer interrupt generated by OC1A */
/*---------------------------------------------------------*/
 
 
ISR(TIMER1_COMPA_vect)
{
BYTE n;
static WORD ivt_sync;
 
 
n = Timer;
if (n) Timer = n - 1;
 
if (++ivt_sync >= 180 * 100) {
ivt_sync = 0;
Stat |= 4;
}
 
disk_timerproc(); /* Drive timer procedure of low level disk I/O module */
 
}
 
 
 
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
 
 
DWORD get_fattime ()
{
return ((2007UL - 1980) << 25) /* Fixed to 2007.5.1, 00:00:00 */
| ((5UL) << 21)
| ((1UL) << 16)
| (0 << 11)
| (0 << 5)
| (0 >> 1);
}
 
 
/*--------------------------------------------------------------------------*/
/* UART control */
 
 
static
void uart_init (void)
{
cli();
UCSR0B = 0;
rxfifo.idx_r = 0;
rxfifo.idx_w = 0;
rxfifo.count = 0;
UBRR0L = SYSCLK/16/9600; // Enable USRAT0 in N81,4800bps
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
Stat &= 0xFD; // Clear overflow flag
sei();
}
 
 
static
void uart_stop (void)
{
UCSR0B = 0;
}
 
 
/* Get a received character */
static
uint8_t uart_get ()
{
uint8_t d, i;
 
 
i = rxfifo.idx_r;
if (rxfifo.count == 0) return 0;
d = rxfifo.buff[i++];
cli();
rxfifo.count--;
sei();
if(i >= sizeof(rxfifo.buff))
i = 0;
rxfifo.idx_r = i;
 
return d;
+
+/* USART0 RXC interrupt */
+ISR(USART_RX_vect)
+{
+ uint8_t d, n, i;
+
+
+ d = UDR0;
+ n = rxfifo.count;
+ if(n < sizeof(rxfifo.buff)) {
+ rxfifo.count = ++n;
+ i = rxfifo.idx_w;
+ rxfifo.buff[i++] = d;
+ if(i >= sizeof(rxfifo.buff))
+ i = 0;
+ rxfifo.idx_w = i;
+ } else {
+ Stat |= 2;
+ }
+}
+
+
+
+/*----------------------------------------------------*/
+/* Get a line received from GPS module */
+/*----------------------------------------------------*/
+
+static
+BYTE get_line (void) // 0: Power fail occured, >0: Number of bytes received.
+{
+ BYTE c, i = 0;
+
+
+ for (;;) {
+ if (Stat & 1) return 0; // When power fail is detected, return with zero.
+ c = uart_get();
+ if (Stat & 2) { // When buffer overflow has occured, restert to receive line.
+ uart_init();
+ i = 0; c = 0;
+ }
+ if (!c || (i == 0 && c != '$')) continue;
+ Buff[i++] = c;
+ if (c == '\n') break;
+ if (i >= sizeof(Buff)) i = 0;
+ }
+ return i;
+}
+
+
+
+/*--------------------------------------------------------------------------*/
+/* Controls */
+
+static
+void beep (BYTE len, BYTE cnt)
+{
+ while (cnt--) {
+ BEEP_ON();
+ DELAY(len);
+ BEEP_OFF();
+ DELAY(len);
+ }
+}
+
+
+
+
+/* Compare sentence header string */
+static
+BYTE gp_comp (BYTE *str1, const prog_uint8_t *str2)
+{
+ BYTE c;
+
+ do {
+ c = pgm_read_byte(str2++);
+ } while (c && c == *str1++);
+ return c;
+}
+
+/* Get a column item */
+static
+BYTE* gp_col ( /* Returns pointer to the item (returns a NULL when not found) */
+ const BYTE* buf, /* Pointer to the sentence */
+ BYTE col /* Column number (0 is the 1st item) */
+) {
+ BYTE c;
+
+
+ while (col) {
+ do {
+ c = *buf++;
+ if (c <= ' ') return NULL;
+ } while (c != ',');
+ col--;
+ }
+ return (BYTE*)buf;
+}
+
+
+
+static
+void ioinit (void)
+{
+ PORTB = 0b00001101; // Port B
+ DDRB = 0b00101110;
+ PORTC = 0b00111111; // Port C
+ DDRC = 0b00000000;
+ PORTD = 0b10101110; // Port D
+ DDRD = 0b01010010;
+
+ SPCR = 0b01010000; /* Initialize SPI port (Mode 0) */
+ SPSR = 0b00000001;
+
+ OCR1A = SYSCLK/8/100-1; // Timer1: 100Hz interval (OC1A)
+ TCCR1B = 0b00001010;
+ TIMSK1 = _BV(OCIE1A); // Enable TC1.oca interrupt
+
+ OCR0A = SYSCLK/64/4000/2-1; // Timer0: 4kHz sound (OC0A)
+ TCCR0A = 0b01000010;
+
+ ADMUX = POWER_check; // Select ADC input
+ ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
+
+ sei();
+}
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Main */
+
+
+int main ()
+{
+ BYTE b, err, *p = NULL;
+ WORD s;
+
+
+ ioinit();
+ f_mount(0, &fatfs); /* Enable file I/O layer */
+
+ for (;;) {
+ uart_stop();
+ GPS_OFF();
+ Timer = 100;
+ do {
+ if (Stat & 1) Timer = 100;
+ } while (Timer);
+
+ GPS_ON();
+ Timer = 255;
+ do {
+ if ((Stat & 1) || (disk_status(0) & STA_NODISK)) Timer = 255;
+ } while (Timer);
+
+ beep(5, 1); // Single beep. Start to get current time.
+ uart_init();
+ do { // Wait for valid RMC sentence.
+ b = get_line();
+ if (!b) break;
+ if (gp_comp(Buff, PSTR("$GPRMC"))) continue;
+ p = gp_col(Buff,2);
+ } while (!p || *p != 'A');
+ if (!b) continue;
+ p = gp_col(Buff,9); // Open log file with the name of current date (YYMMDD.log in UTC).
+
+ if (!p) {err = 3; break;}
+
+ memcpy(&Buff[0], p+4, 2);
+ memcpy(&Buff[2], p+2, 2);
+ memcpy(&Buff[4], p+0, 2);
+ strcpy_P(&Buff[6], PSTR(".log"));
+ if (f_open(&file1, Buff, FA_OPEN_ALWAYS | FA_WRITE) || f_lseek(&file1, file1.fsize)) { err = 4; break; }
+
+ beep(5, 2); // Two beeps. Start logging.
+ err = 0;
+ while ((b = get_line()) > 0) {
+ if ( !gp_comp(Buff, PSTR("$GPGGA")) // Which sentence is logged?
+ || !gp_comp(Buff, PSTR("$GPRMC"))
+ // || !gp_comp(Buff, PSTR("$GPGSA"))
+ // || !gp_comp(Buff, PSTR("$GPGLL"))
+ // || !gp_comp(Buff, PSTR("$GPGSV"))
+ // || !gp_comp(Buff, PSTR("$GPZDA"))
+ // || !gp_comp(Buff, PSTR("$GPVTG"))
+ )
+ {
+ if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; };
+ }
+ if ((Stat & 4) == 0) continue;
+ if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec.
+ cli(); Stat &= 0xFB; sei(); // Clear sync request
+ }
+ if (err) break;
+
+ // Turn-off GPS power and close the log file by power supply is discharged.
+ uart_stop();
+ GPS_OFF();
+ if (f_close(&file1)) { err = 7; break; };
+
+ // When a long beep is sounded, the shutdoun process has been succeeded.
+ beep(50, 1);
+ }
+
+ // Unrecoverble error. Enter shutdown state.
+ uart_stop();
+ GPS_OFF();
+ beep(25, err);
+ for (;;);
+}
+
+
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/mmc.c
0,0 → 1,487
/*-----------------------------------------------------------------------*/
/* MMC/SDC (in SPI mode) control module (C)ChaN, 2006 */
/*-----------------------------------------------------------------------*/
/* Only rcvr_spi(), xmit_spi(), disk_timerproc(), disk_initialize () and */
/* some macros are platform dependent. */
/*-----------------------------------------------------------------------*/
 
 
#include <avr/io.h>
#include "diskio.h"
 
 
/* Definitions for MMC/SDC command */
#define CMD0 (0x40+0) /* GO_IDLE_STATE */
#define CMD1 (0x40+1) /* SEND_OP_COND */
#define CMD8 (0x40+8) /* SEND_IF_COND */
#define CMD9 (0x40+9) /* SEND_CSD */
#define CMD10 (0x40+10) /* SEND_CID */
#define CMD12 (0x40+12) /* STOP_TRANSMISSION */
#define CMD16 (0x40+16) /* SET_BLOCKLEN */
#define CMD17 (0x40+17) /* READ_SINGLE_BLOCK */
#define CMD18 (0x40+18) /* READ_MULTIPLE_BLOCK */
#define CMD23 (0x40+23) /* SET_BLOCK_COUNT */
#define CMD24 (0x40+24) /* WRITE_BLOCK */
#define CMD25 (0x40+25) /* WRITE_MULTIPLE_BLOCK */
#define CMD41 (0x40+41) /* SEND_OP_COND (ACMD) */
#define CMD55 (0x40+55) /* APP_CMD */
#define CMD58 (0x40+58) /* READ_OCR */
 
 
/* Control signals (Platform dependent) */
#define SELECT() PORTB &= ~_BV(PB2) /* MMC CS = L */
#define DESELECT() PORTB |= _BV(PB2) /* MMC CS = H */
 
#define SOCKPORT PINB /* Socket contact port */
#define SOCKINS 0x01 /* Card detect switch (PB0) */
 
 
 
/*--------------------------------------------------------------------------
 
Module Private Functions
 
---------------------------------------------------------------------------*/
 
static volatile
DSTATUS Stat = STA_NOINIT; /* Disk status */
 
static volatile
BYTE Timer1, Timer2; /* 100Hz decrement timer */
 
static
BYTE CardType; /* b0:MMC, b1:SDC, b2:Block addressing */
 
 
 
/*-----------------------------------------------------------------------*/
/* Transmit a byte to MMC via SPI (Platform dependent) */
/*-----------------------------------------------------------------------*/
 
#define xmit_spi(dat) SPDR=(dat); loop_until_bit_is_set(SPSR,SPIF)
 
 
 
/*-----------------------------------------------------------------------*/
/* Receive a byte from MMC via SPI (Platform dependent) */
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
loop_until_bit_is_set(SPSR, SPIF);
return SPDR;
}
 
/* Alternative macro to receive data fast */
#define rcvr_spi_m(dst) SPDR=0xFF; loop_until_bit_is_set(SPSR,SPIF); *(dst)=SPDR
 
 
 
/*-----------------------------------------------------------------------*/
/* Wait for card ready */
/*-----------------------------------------------------------------------*/
 
static
BYTE wait_ready (void)
{
BYTE res;
 
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
rcvr_spi();
do
res = rcvr_spi();
while ((res != 0xFF) && Timer2);
 
return res;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Receive a data packet from MMC */
/*-----------------------------------------------------------------------*/
 
static
BOOL rcvr_datablock (
BYTE *buff, /* Data buffer to store received data */
UINT btr /* Byte count (must be even number) */
)
{
BYTE token;
 
 
Timer1 = 10;
do { /* Wait for data packet in timeout of 100ms */
token = rcvr_spi();
} while ((token == 0xFF) && Timer1);
if(token != 0xFE) return FALSE; /* If not valid data token, retutn with error */
 
do { /* Receive the data block into buffer */
rcvr_spi_m(buff++);
rcvr_spi_m(buff++);
} while (btr -= 2);
rcvr_spi(); /* Discard CRC */
rcvr_spi();
 
return TRUE; /* Return with success */
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
 
#if _READONLY == 0
static
BOOL xmit_datablock (
const BYTE *buff, /* 512 byte data block to be transmitted */
BYTE token /* Data/Stop token */
)
{
BYTE resp, wc;
 
 
if (wait_ready() != 0xFF) return FALSE;
 
xmit_spi(token); /* Xmit data token */
if (token != 0xFD) { /* Is data token */
wc = 0;
do { /* Xmit the 512 byte data block to MMC */
xmit_spi(*buff++);
xmit_spi(*buff++);
} while (--wc);
xmit_spi(0xFF); /* CRC (Dummy) */
xmit_spi(0xFF);
resp = rcvr_spi(); /* Reveive data response */
if ((resp & 0x1F) != 0x05) /* If not accepted, return with error */
return FALSE;
}
 
return TRUE;
}
#endif /* _READONLY */
 
 
 
/*-----------------------------------------------------------------------*/
/* Send a command packet to MMC */
/*-----------------------------------------------------------------------*/
 
static
BYTE send_cmd (
BYTE cmd, /* Command byte */
DWORD arg /* Argument */
)
{
BYTE n, res;
 
 
if (wait_ready() != 0xFF) return 0xFF;
 
/* Send command packet */
xmit_spi(cmd); /* Command */
xmit_spi((BYTE)(arg >> 24)); /* Argument[31..24] */
xmit_spi((BYTE)(arg >> 16)); /* Argument[23..16] */
xmit_spi((BYTE)(arg >> 8)); /* Argument[15..8] */
xmit_spi((BYTE)arg); /* Argument[7..0] */
n = 0;
if (cmd == CMD0) n = 0x95; /* CRC for CMD0(0) */
if (cmd == CMD8) n = 0x87; /* CRC for CMD8(0x1AA) */
xmit_spi(n);
 
/* Receive command response */
if (cmd == CMD12) rcvr_spi(); /* Skip a stuff byte when stop reading */
n = 10; /* Wait for a valid response in timeout of 10 attempts */
do
res = rcvr_spi();
while ((res & 0x80) && --n);
 
return res; /* Return with the response value */
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
---------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Initialize Disk Drive */
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_initialize (
BYTE drv /* Physical drive nmuber (0) */
)
{
BYTE n, ty, ocr[4];
 
 
if (drv) return STA_NOINIT; /* Supports only single drive */
if (Stat & STA_NODISK) return Stat; /* No card in the socket */
 
for (n = 10; n; n--) rcvr_spi(); /* 80 dummy clocks */
 
SELECT(); /* CS = L */
ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
Timer1 = 100; /* Initialization timeout of 1000 msec */
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDC Ver2+ */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
do {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 1UL << 30) == 0) break; /* ACMD41 with HCS bit */
} while (Timer1);
if (Timer1 && send_cmd(CMD58, 0) == 0) { /* Check CCS bit */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
ty = (ocr[0] & 0x40) ? 6 : 2;
}
}
} else { /* SDC Ver1 or MMC */
ty = (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) <= 1) ? 2 : 1; /* SDC : MMC */
do {
if (ty == 2) {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) == 0) break; /* ACMD41 */
} else {
if (send_cmd(CMD1, 0) == 0) break; /* CMD1 */
}
} while (Timer1);
if (!Timer1 || send_cmd(CMD16, 512) != 0) /* Select R/W block length */
ty = 0;
}
}
CardType = ty;
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
if (ty) { /* Initialization succeded */
Stat &= ~STA_NOINIT; /* Clear STA_NOINIT */
} else { /* Initialization failed */
Stat |= STA_NOINIT; /* Set STA_NOINIT */
}
 
return Stat;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Get Disk Status */
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_status (
BYTE drv /* Physical drive nmuber (0) */
)
{
if (drv) return STA_NOINIT; /* Supports only single drive */
return Stat;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Sector(s) */
/*-----------------------------------------------------------------------*/
 
DRESULT disk_read (
BYTE drv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
if (drv || !count) return RES_PARERR;
if (Stat & STA_NOINIT) return RES_NOTRDY;
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
 
SELECT(); /* CS = L */
 
if (count == 1) { /* Single block read */
if ((send_cmd(CMD17, sector) == 0) /* READ_SINGLE_BLOCK */
&& rcvr_datablock(buff, 512))
count = 0;
}
else { /* Multiple block read */
if (send_cmd(CMD18, sector) == 0) { /* READ_MULTIPLE_BLOCK */
do {
if (!rcvr_datablock(buff, 512)) break;
buff += 512;
} while (--count);
send_cmd(CMD12, 0); /* STOP_TRANSMISSION */
}
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
 
#if _READONLY == 0
DRESULT disk_write (
BYTE drv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
if (drv || !count) return RES_PARERR;
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (Stat & STA_PROTECT) return RES_WRPRT;
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
 
SELECT(); /* CS = L */
 
if (count == 1) { /* Single block write */
if ((send_cmd(CMD24, sector) == 0) /* WRITE_BLOCK */
&& xmit_datablock(buff, 0xFE))
count = 0;
}
else { /* Multiple block write */
if (CardType & 2) {
send_cmd(CMD55, 0); send_cmd(CMD23, count); /* ACMD23 */
}
if (send_cmd(CMD25, sector) == 0) { /* WRITE_MULTIPLE_BLOCK */
do {
if (!xmit_datablock(buff, 0xFC)) break;
buff += 512;
} while (--count);
if (!xmit_datablock(0, 0xFD)) /* STOP_TRAN token */
count = 1;
}
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
}
#endif /* _READONLY */
 
 
 
/*-----------------------------------------------------------------------*/
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
 
DRESULT disk_ioctl (
BYTE drv, /* Physical drive nmuber (0) */
BYTE ctrl, /* Control code */
void *buff /* Buffer to send/receive data block */
)
{
DRESULT res;
BYTE n, csd[16], *ptr = buff;
WORD csize;
 
 
if (drv) return RES_PARERR;
 
SELECT(); /* CS = L */
 
res = RES_ERROR;
switch (ctrl) {
case GET_SECTOR_COUNT : /* Get number of sectors on the disk (DWORD) */
if ((send_cmd(CMD9, 0) == 0) && rcvr_datablock(csd, 16)) {
if ((csd[0] >> 6) == 1) { /* SDC ver 2.00 */
csize = csd[9] + ((WORD)csd[8] << 8) + 1;
*(DWORD*)buff = (DWORD)csize << 10;
} else { /* MMC or SDC ver 1.XX */
n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2;
csize = (csd[8] >> 6) + ((WORD)csd[7] << 2) + ((WORD)(csd[6] & 3) << 10) + 1;
*(DWORD*)buff = (DWORD)csize << (n - 9);
}
res = RES_OK;
}
break;
 
case GET_SECTOR_SIZE : /* Get sectors on the disk (WORD) */
*(WORD*)buff = 512;
res = RES_OK;
break;
 
case CTRL_SYNC : /* Make sure that data has been written */
if (wait_ready() == 0xFF)
res = RES_OK;
break;
 
case MMC_GET_CSD : /* Receive CSD as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if ((send_cmd(CMD9, 0) == 0) /* READ_CSD */
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_CID : /* Receive CID as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if ((send_cmd(CMD10, 0) == 0) /* READ_CID */
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
for (n = 0; n < 4; n++)
*ptr++ = rcvr_spi();
res = RES_OK;
}
break;
 
default:
res = RES_PARERR;
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return res;
}
 
 
 
/*---------------------------------------*/
/* Device timer interrupt procedure */
/* This must be called in period of 10ms */
/* (Platform dependent) */
 
void disk_timerproc (void)
{
static BYTE pv;
BYTE n, s;
 
 
n = Timer1; /* 100Hz decrement timer */
if (n) Timer1 = --n;
n = Timer2;
if (n) Timer2 = --n;
 
n = pv;
pv = SOCKPORT & (SOCKINS); /* Sample socket switch */
 
if (n == pv) { /* Have contacts stabled? */
s = Stat;
if (pv & SOCKINS) /* INS = H (Socket empty) */
s |= (STA_NODISK | STA_NOINIT);
else /* INS = L (Card inserted) */
s &= ~STA_NODISK;
 
Stat = s;
}
}
 
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/tff.c
0,0 → 1,1580
/*--------------------------------------------------------------------------/
/ FatFs - Tiny FAT file system module R0.04b (C)ChaN, 2007
/---------------------------------------------------------------------------/
/ The FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2007, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ profit use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------/
/ Feb 26, 2006 R0.00 Prototype.
/ Apr 29, 2006 R0.01 First stable version.
/ Jun 01, 2006 R0.02 Added FAT12 support.
/ Removed unbuffered mode.
/ Fixed a problem on small (<32M) patition.
/ Jun 10, 2006 R0.02a Added a configuration option (_FS_MINIMUM).
/ Sep 22, 2006 R0.03 Added f_rename().
/ Changed option _FS_MINIMUM to _FS_MINIMIZE.
/ Dec 09, 2006 R0.03a Improved cluster scan algolithm to write files fast.
/ Feb 04, 2007 R0.04 Added FAT32 supprt.
/ Changed some interfaces incidental to FatFs.
/ Changed f_mountdrv() to f_mount().
/ Apr 01, 2007 R0.04a Added a capability of extending file size to f_lseek().
/ Added minimization level 3.
/ Fixed a problem in FAT32 support.
/ xxx xx, 2007 R0.04b Added a configuration option _USE_NTFLAG.
/ Added FSInfo support.
/ Fixed some problems corresponds to FAT32 support.
/ Fixed DBCS name can result FR_INVALID_NAME.
/ Fixed short seek (<= csize) collapses the file object.
/---------------------------------------------------------------------------*/
 
#include <string.h>
#include "tff.h" /* Tiny-FatFs declarations */
#include "diskio.h" /* Include file for user provided disk functions */
 
 
static
FATFS *FatFs; /* Pointer to the file system objects (logical drive) */
static
WORD fsid; /* File system mount ID */
 
 
/*-------------------------------------------------------------------------
 
Module Private Functions
 
-------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Change window offset */
/*-----------------------------------------------------------------------*/
 
static
BOOL move_window ( /* TRUE: successful, FALSE: failed */
DWORD sector /* Sector number to make apperance in the FatFs->win */
) /* Move to zero only writes back dirty window */
{
DWORD wsect;
FATFS *fs = FatFs;
 
 
wsect = fs->winsect;
if (wsect != sector) { /* Changed current window */
#if !_FS_READONLY
BYTE n;
if (fs->winflag) { /* Write back dirty window if needed */
if (disk_write(0, fs->win, wsect, 1) != RES_OK)
return FALSE;
fs->winflag = 0;
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to all FAT copies */
wsect += fs->sects_fat;
disk_write(0, fs->win, wsect, 1);
}
}
}
#endif
if (sector) {
if (disk_read(0, fs->win, sector, 1) != RES_OK)
return FALSE;
fs->winsect = sector;
}
}
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Clean-up cached data */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT sync (void) /* FR_OK: successful, FR_RW_ERROR: failed */
{
FATFS *fs = FatFs;
 
 
fs->winflag = 1;
if (!move_window(0)) return FR_RW_ERROR;
#if _USE_FSINFO
if (fs->fs_type == FS_FAT32 && fs->fsi_flag) { /* Update FSInfo sector if needed */
fs->winsect = 0;
memset(fs->win, 0, 512);
ST_WORD(&fs->win[BS_55AA], 0xAA55);
ST_DWORD(&fs->win[FSI_LeadSig], 0x41615252);
ST_DWORD(&fs->win[FSI_StrucSig], 0x61417272);
ST_DWORD(&fs->win[FSI_Free_Count], fs->free_clust);
ST_DWORD(&fs->win[FSI_Nxt_Free], fs->last_clust);
disk_write(0, fs->win, fs->fsi_sector, 1);
fs->fsi_flag = 0;
}
#endif
if (disk_ioctl(0, CTRL_SYNC, NULL) != RES_OK) return FR_RW_ERROR;
return FR_OK;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get a cluster status */
/*-----------------------------------------------------------------------*/
 
static
CLUST get_cluster ( /* 0,>=2: successful, 1: failed */
CLUST clust /* Cluster# to get the link information */
)
{
WORD wc, bc;
DWORD fatsect;
FATFS *fs = FatFs;
 
 
if (clust >= 2 && clust < fs->max_clust) { /* Valid cluster# */
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fatsect + bc / 512)) break;
wc = fs->win[bc % 512]; bc++;
if (!move_window(fatsect + bc / 512)) break;
wc |= (WORD)fs->win[bc % 512] << 8;
return (clust & 1) ? (wc >> 4) : (wc & 0xFFF);
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) break;
return LD_WORD(&fs->win[((WORD)clust * 2) % 512]);
#if _FAT32
case FS_FAT32 :
if (!move_window(fatsect + clust / 128)) break;
return LD_DWORD(&fs->win[((WORD)clust * 4) % 512]) & 0x0FFFFFFF;
#endif
}
}
 
return 1; /* There is no cluster information, or an error occured */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change a cluster status */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL put_cluster ( /* TRUE: successful, FALSE: failed */
CLUST clust, /* Cluster# to change */
CLUST val /* New value to mark the cluster */
)
{
WORD bc;
BYTE *p;
DWORD fatsect;
FATFS *fs = FatFs;
 
 
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fatsect + bc / 512)) return FALSE;
p = &fs->win[bc % 512];
*p = (clust & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
bc++;
fs->winflag = 1;
if (!move_window(fatsect + bc / 512)) return FALSE;
p = &fs->win[bc % 512];
*p = (clust & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
break;
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) return FALSE;
ST_WORD(&fs->win[((WORD)clust * 2) % 512], (WORD)val);
break;
#if _FAT32
case FS_FAT32 :
if (!move_window(fatsect + clust / 128)) return FALSE;
ST_DWORD(&fs->win[((WORD)clust * 4) % 512], val);
break;
#endif
default :
return FALSE;
}
fs->winflag = 1;
return TRUE;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Remove a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL remove_chain ( /* TRUE: successful, FALSE: failed */
CLUST clust /* Cluster# to remove chain from */
)
{
CLUST nxt;
FATFS *fs = FatFs;
 
 
while (clust >= 2 && clust < fs->max_clust) {
nxt = get_cluster(clust);
if (nxt == 1) return FALSE;
if (!put_cluster(clust, 0)) return FALSE;
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
fs->free_clust++;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
clust = nxt;
}
return TRUE;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Stretch or create a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
CLUST create_chain ( /* 0: no free cluster, 1: error, >=2: new cluster number */
CLUST clust /* Cluster# to stretch, 0 means create new */
)
{
CLUST cstat, ncl, scl, mcl;
FATFS *fs = FatFs;
 
 
mcl = fs->max_clust;
if (clust == 0) { /* Create new chain */
scl = fs->last_clust; /* Get last allocated cluster */
if (scl < 2 || scl >= mcl) scl = 1;
}
else { /* Stretch existing chain */
cstat = get_cluster(clust); /* Check the cluster status */
if (cstat < 2) return 1; /* It is an invalid cluster */
if (cstat < mcl) return cstat; /* It is already followed by next cluster */
scl = clust;
}
 
ncl = scl; /* Start cluster */
for (;;) {
ncl++; /* Next cluster */
if (ncl >= mcl) { /* Wrap around */
ncl = 2;
if (ncl > scl) return 0; /* No free custer */
}
cstat = get_cluster(ncl); /* Get the cluster status */
if (cstat == 0) break; /* Found a free cluster */
if (cstat == 1) return 1; /* Any error occured */
if (ncl == scl) return 0; /* No free custer */
}
 
if (!put_cluster(ncl, (CLUST)0x0FFFFFFF)) return 1; /* Mark the new cluster "in use" */
if (clust && !put_cluster(clust, ncl)) return 1; /* Link it to previous one if needed */
 
fs->last_clust = ncl; /* Update fsinfo */
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
fs->free_clust--;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
 
return ncl; /* Return new cluster number */
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get sector# from cluster# */
/*-----------------------------------------------------------------------*/
 
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
 
 
clust -= 2;
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
return (DWORD)clust * fs->sects_clust + fs->database;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Move directory pointer to next */
/*-----------------------------------------------------------------------*/
 
static
BOOL next_dir_entry ( /* TRUE: successful, FALSE: could not move next */
DIR *dirobj /* Pointer to directory object */
)
{
CLUST clust;
WORD idx;
FATFS *fs = FatFs;
 
 
idx = dirobj->index + 1;
if ((idx & 15) == 0) { /* Table sector changed? */
dirobj->sect++; /* Next sector */
if (!dirobj->clust) { /* In static table */
if (idx >= fs->n_rootdir) return FALSE; /* Reached to end of table */
} else { /* In dynamic table */
if (((idx / 16) & (fs->sects_clust - 1)) == 0) { /* Cluster changed? */
clust = get_cluster(dirobj->clust); /* Get next cluster */
if (clust < 2 || clust >= fs->max_clust) /* Reached to end of table */
return FALSE;
dirobj->clust = clust; /* Initialize for new cluster */
dirobj->sect = clust2sect(clust);
}
}
}
dirobj->index = idx; /* Lower 4 bit of dirobj->index indicates offset in dirobj->sect */
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get file status from directory entry */
/*-----------------------------------------------------------------------*/
 
#if _FS_MINIMIZE <= 1
static
void get_fileinfo ( /* No return code */
FILINFO *finfo, /* Ptr to store the File Information */
const BYTE *dir /* Ptr to the directory entry */
)
{
BYTE n, c, a;
char *p;
 
 
p = &finfo->fname[0];
a = _USE_NTFLAG ? dir[DIR_NTres] : 0; /* NT flag */
for (n = 0; n < 8; n++) { /* Convert file name (body) */
c = dir[n];
if (c == ' ') break;
if (c == 0x05) c = 0xE5;
if (a & 0x08 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
if (dir[8] != ' ') { /* Convert file name (extension) */
*p++ = '.';
for (n = 8; n < 11; n++) {
c = dir[n];
if (c == ' ') break;
if (a & 0x10 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
}
*p = '\0';
 
finfo->fattrib = dir[DIR_Attr]; /* Attribute */
finfo->fsize = LD_DWORD(&dir[DIR_FileSize]); /* Size */
finfo->fdate = LD_WORD(&dir[DIR_WrtDate]); /* Date */
finfo->ftime = LD_WORD(&dir[DIR_WrtTime]); /* Time */
}
#endif /* _FS_MINIMIZE <= 1 */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Pick a paragraph and create the name in format of directory entry */
/*-----------------------------------------------------------------------*/
 
static
char make_dirfile ( /* 1: error - detected an invalid format, '\0'or'/': next character */
const char **path, /* Pointer to the file path pointer */
char *dirname /* Pointer to directory name buffer {Name(8), Ext(3), NT flag(1)} */
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
a = 0; b = 0x18; /* NT flag */
n = 0; t = 8;
for (;;) {
c = *(*path)++;
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
if (n == 0) break;
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
return c;
}
if (c <= ' ' || c == 0x7F) break; /* Reject invisible chars */
if (c == '.') {
if (!(a & 1) && n >= 1 && n <= 8) { /* Enter extension part */
n = 8; t = 11; continue;
}
break;
}
if (_USE_SJIS &&
((c >= 0x81 && c <= 0x9F) || /* Accept S-JIS code */
(c >= 0xE0 && c <= 0xFC))) {
if (n == 0 && c == 0xE5) /* Change heading \xE5 to \x05 */
c = 0x05;
a ^= 1; goto md_l2;
}
if (c == '"') break; /* Reject " */
if (c <= ')') goto md_l1; /* Accept ! # $ % & ' ( ) */
if (c <= ',') break; /* Reject * + , */
if (c <= '9') goto md_l1; /* Accept - 0-9 */
if (c <= '?') break; /* Reject : ; < = > ? */
if (!(a & 1)) { /* These checks are not applied to S-JIS 2nd byte */
if (c == '|') break; /* Reject | */
if (c >= '[' && c <= ']') break;/* Reject [ \ ] */
if (_USE_NTFLAG && c >= 'A' && c <= 'Z')
(t == 8) ? (b &= ~0x08) : (b &= ~0x10);
if (c >= 'a' && c <= 'z') { /* Convert to upper case */
c -= 0x20;
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
}
}
md_l1:
a &= ~1;
md_l2:
if (n >= t) break;
dirname[n++] = c;
}
return 1;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Trace a file path */
/*-----------------------------------------------------------------------*/
 
static
FRESULT trace_path ( /* FR_OK(0): successful, !=0: error code */
DIR *dirobj, /* Pointer to directory object to return last directory */
char *fn, /* Pointer to last segment name to return */
const char *path, /* Full-path string to trace a file or directory */
BYTE **dir /* Directory pointer in Win[] to retutn */
)
{
CLUST clust;
char ds;
BYTE *dptr = NULL;
FATFS *fs = FatFs;
 
/* Initialize directory object */
clust = fs->dirbase;
#if _FAT32
if (fs->fs_type == FS_FAT32) {
dirobj->clust = dirobj->sclust = clust;
dirobj->sect = clust2sect(clust);
} else
#endif
{
dirobj->clust = dirobj->sclust = 0;
dirobj->sect = clust;
}
dirobj->index = 0;
dirobj->fs = fs;
 
if (*path == '\0') { /* Null path means the root directory */
*dir = NULL; return FR_OK;
}
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
&& !(dptr[DIR_Attr] & AM_VOL)
&& !memcmp(&dptr[DIR_Name], fn, 8+3) ) break;
if (!next_dir_entry(dirobj)) /* Next directory pointer */
return !ds ? FR_NO_FILE : FR_NO_PATH;
}
if (!ds) { *dir = dptr; return FR_OK; } /* Matched with end of path */
if (!(dptr[DIR_Attr] & AM_DIR)) return FR_NO_PATH; /* Cannot trace because it is a file */
clust = /* Get cluster# of the directory */
#if _FAT32
((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dptr[DIR_FstClusLO]);
dirobj->clust = dirobj->sclust = clust; /* Restart scannig with the new directory */
dirobj->sect = clust2sect(clust);
dirobj->index = 2;
}
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Reserve a directory entry */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT reserve_direntry ( /* FR_OK: successful, FR_DENIED: no free entry, FR_RW_ERROR: a disk error occured */
DIR *dirobj, /* Target directory to create new entry */
BYTE **dir /* Pointer to pointer to created entry to retutn */
)
{
CLUST clust;
DWORD sector;
BYTE c, n, *dptr;
FATFS *fs = FatFs;
 
 
/* Re-initialize directory object */
clust = dirobj->sclust;
if (clust) { /* Dyanmic directory table */
dirobj->clust = clust;
dirobj->sect = clust2sect(clust);
} else { /* Static directory table */
dirobj->sect = fs->dirbase;
}
dirobj->index = 0;
 
do {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
c = dptr[DIR_Name];
if (c == 0 || c == 0xE5) { /* Found an empty entry! */
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dirobj)); /* Next directory pointer */
/* Reached to end of the directory table */
 
/* Abort when static table or could not stretch dynamic table */
if (!clust || !(clust = create_chain(dirobj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(0)) return FR_RW_ERROR;
 
fs->winsect = sector = clust2sect(clust); /* Cleanup the expanded table */
memset(fs->win, 0, 512);
for (n = fs->sects_clust; n; n--) {
if (disk_write(0, fs->win, sector, 1) != RES_OK)
return FR_RW_ERROR;
sector++;
}
fs->winflag = 1;
*dir = fs->win;
return FR_OK;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Load boot record and check if it is a FAT boot record */
/*-----------------------------------------------------------------------*/
 
static
BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record or error */
DWORD sect /* Sector# to check if it is a FAT boot record or not */
)
{
FATFS *fs = FatFs;
 
if (disk_read(0, fs->win, sect, 1) != RES_OK) /* Load boot record */
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature */
return 2;
 
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
return 0;
#if _FAT32
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
#endif
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Make sure that the file system is valid */
/*-----------------------------------------------------------------------*/
 
static
FRESULT auto_mount ( /* FR_OK(0): successful, !=0: any error occured */
const char **path, /* Pointer to pointer to the path name (drive number) */
BYTE chk_wp /* !=0: Check media write protection for wrinting fuctions */
)
{
BYTE fmt;
DSTATUS stat;
DWORD bootsect, fatsize, totalsect, maxclust;
const char *p = *path;
FATFS *fs = FatFs;
 
 
 
while (*p == ' ') p++; /* Strip leading spaces */
if (*p == '/') p++; /* Strip heading slash */
*path = p; /* Return pointer to the path name */
 
/* Is the file system object registered? */
if (!fs) return FR_NOT_ENABLED;
 
/* Chekck if the logical drive has been mounted or not */
if (fs->fs_type) {
stat = disk_status(0);
if (!(stat & STA_NOINIT)) { /* If the physical drive is kept initialized */
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
return FR_OK; /* The file system object is valid */
}
}
 
/* The logical drive has not been mounted, following code attempts to mount the logical drive */
 
memset(fs, 0, sizeof(FATFS)); /* Clean-up the file system object */
stat = disk_initialize(0); /* Initialize low level disk I/O layer */
if (stat & STA_NOINIT) /* Check if the drive is ready */
return FR_NOT_READY;
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
 
/* Search FAT partition on the drive */
fmt = check_fs(bootsect = 0); /* Check sector 0 as an SFD format */
if (fmt == 1) { /* Not a FAT boot record, it may be patitioned */
/* Check a partition listed in top of the partition table */
if (fs->win[MBR_Table+4]) { /* Is the 1st partition existing? */
bootsect = LD_DWORD(&fs->win[MBR_Table+8]); /* Partition offset in LBA */
fmt = check_fs(bootsect); /* Check the partition */
}
}
if (fmt || LD_WORD(&fs->win[BPB_BytsPerSec]) != 512) /* No valid FAT patition is found */
return FR_NO_FILESYSTEM;
 
/* Initialize the file system object */
fatsize = LD_WORD(&fs->win[BPB_FATSz16]); /* Number of sectors per FAT */
if (!fatsize) fatsize = LD_DWORD(&fs->win[BPB_FATSz32]);
fs->sects_fat = (CLUST)fatsize;
fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FAT copies */
fatsize *= fs->n_fats; /* (Number of sectors in FAT area) */
fs->fatbase = bootsect + LD_WORD(&fs->win[BPB_RsvdSecCnt]); /* FAT start sector (lba) */
fs->sects_clust = fs->win[BPB_SecPerClus]; /* Number of sectors per cluster */
fs->n_rootdir = LD_WORD(&fs->win[BPB_RootEntCnt]); /* Nmuber of root directory entries */
totalsect = LD_WORD(&fs->win[BPB_TotSec16]); /* Number of sectors on the file system */
if (!totalsect) totalsect = LD_DWORD(&fs->win[BPB_TotSec32]);
fs->max_clust = maxclust = (totalsect /* Last cluster# + 1 */
- LD_WORD(&fs->win[BPB_RsvdSecCnt]) - fatsize - fs->n_rootdir / 16
) / fs->sects_clust + 2;
 
fmt = FS_FAT12; /* Determine the FAT sub type */
if (maxclust > 0xFF7) fmt = FS_FAT16;
if (maxclust > 0xFFF7)
#if !_FAT32
return FR_NO_FILESYSTEM;
#else
fmt = FS_FAT32;
if (fmt == FS_FAT32)
fs->dirbase = LD_DWORD(&fs->win[BPB_RootClus]); /* Root directory start cluster */
else
#endif
fs->dirbase = fs->fatbase + fatsize; /* Root directory start sector (lba) */
fs->database = fs->fatbase + fatsize + fs->n_rootdir / 16; /* Data start sector (lba) */
fs->fs_type = fmt; /* FAT sub-type */
 
#if !_FS_READONLY
fs->free_clust = (CLUST)0xFFFFFFFF;
#if _USE_FSINFO
/* Load fsinfo sector if needed */
if (fmt == FS_FAT32) {
fs->fsi_sector = bootsect + LD_WORD(&fs->win[BPB_FSInfo]);
if (disk_read(0, fs->win, fs->fsi_sector, 1) == RES_OK &&
LD_WORD(&fs->win[BS_55AA]) == 0xAA55 &&
LD_DWORD(&fs->win[FSI_LeadSig]) == 0x41615252 &&
LD_DWORD(&fs->win[FSI_StrucSig]) == 0x61417272) {
fs->last_clust = LD_DWORD(&fs->win[FSI_Nxt_Free]);
fs->free_clust = LD_DWORD(&fs->win[FSI_Free_Count]);
}
}
#endif
#endif
fs->id = ++fsid; /* File system mount ID */
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Check if the file/dir object is valid or not */
/*-----------------------------------------------------------------------*/
 
static
FRESULT validate ( /* FR_OK(0): The id is valid, !=0: Not valid */
const FATFS *fs, /* Pointer to the file system object */
WORD id /* id member of the target object to be checked */
)
{
if (!fs || fs->id != id)
return FR_INVALID_OBJECT;
if (disk_status(0) & STA_NOINIT)
return FR_NOT_READY;
 
return FR_OK;
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
--------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Mount/Unmount a Locical Drive */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mount (
BYTE drv, /* Logical drive number to be mounted/unmounted */
FATFS *fs /* Pointer to new file system object (NULL for unmount)*/
)
{
FATFS *fsobj;
 
 
if (drv) return FR_INVALID_DRIVE;
fsobj = FatFs;
FatFs = fs;
if (fsobj) memset(fsobj, 0, sizeof(FATFS));
if (fs) memset(fs, 0, sizeof(FATFS));
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Open or Create a File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
{
FRESULT res;
BYTE *dir;
DIR dirobj;
char fn[8+3+1];
FATFS *fs = FatFs;
 
 
fp->fs = NULL;
#if !_FS_READONLY
mode &= (FA_READ|FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW);
res = auto_mount(&path, (BYTE)(mode & (FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)));
#else
mode &= FA_READ;
res = auto_mount(&path, 0);
#endif
if (res != FR_OK) return res;
 
/* Trace the file path */
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
 
#if !_FS_READONLY
/* Create or Open a File */
if (mode & (FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)) {
CLUST rs;
DWORD dw;
if (res != FR_OK) { /* No file, create new */
if (res != FR_NO_FILE) return res;
res = reserve_direntry(&dirobj, &dir);
if (res != FR_OK) return res;
memset(dir, 0, 32); /* Initialize the new entry */
memcpy(&dir[DIR_Name], fn, 8+3);
dir[DIR_NTres] = fn[11];
mode |= FA_CREATE_ALWAYS;
} else { /* Any object is already existing */
if (mode & FA_CREATE_NEW) /* Cannot create new */
return FR_EXIST;
if (dir == NULL || (dir[DIR_Attr] & (AM_RDO|AM_DIR))) /* Cannot overwrite (R/O or DIR) */
return FR_DENIED;
if (mode & FA_CREATE_ALWAYS) { /* Resize it to zero */
#if _FAT32
rs = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
ST_WORD(&dir[DIR_FstClusHI], 0);
#else
rs = LD_WORD(&dir[DIR_FstClusLO]);
#endif
ST_WORD(&dir[DIR_FstClusLO], 0); /* cluster = 0 */
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
fs->winflag = 1;
dw = fs->winsect; /* Remove the cluster chain */
if (!remove_chain(rs) || !move_window(dw))
return FR_RW_ERROR;
fs->last_clust = rs - 1; /* Reuse the cluster hole */
}
}
if (mode & FA_CREATE_ALWAYS) {
dir[DIR_Attr] = AM_ARC; /* New attribute */
dw = get_fattime();
ST_DWORD(&dir[DIR_WrtTime], dw); /* Updated time */
ST_DWORD(&dir[DIR_CrtTime], dw); /* Created time */
fs->winflag = 1;
}
}
/* Open a File */
else {
#endif /* !_FS_READONLY */
if (res != FR_OK) return res; /* Trace failed */
if (dir == NULL || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
return FR_NO_FILE;
#if !_FS_READONLY
if ((mode & FA_WRITE) && (dir[DIR_Attr] & AM_RDO)) /* R/O violation */
return FR_DENIED;
}
 
fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
fp->dir_ptr = dir;
#endif
fp->flag = mode; /* File access mode */
fp->org_clust = /* File start cluster */
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
fp->fsize = LD_DWORD(&dir[DIR_FileSize]); /* File size */
fp->fptr = 0; /* File ptr */
fp->sect_clust = 1; /* Sector counter */
fp->fs = fs; fp->id = fs->id; /* Owner file system object of the file */
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_read (
FIL *fp, /* Pointer to the file object */
void *buff, /* Pointer to data buffer */
WORD btr, /* Number of bytes to read */
WORD *br /* Pointer to number of bytes read */
)
{
DWORD sect, remain;
WORD rcnt;
CLUST clust;
BYTE cc, *rbuff = buff;
FRESULT res;
FATFS *fs = fp->fs;
 
 
*br = 0;
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
if (--fp->sect_clust) { /* Decrement left sector counter */
sect = fp->curr_sect + 1; /* Get current sector */
} else { /* On the cluster boundary, get next cluster */
clust = (fp->fptr == 0) ?
fp->org_clust : get_cluster(fp->curr_clust);
if (clust < 2 || clust >= fs->max_clust)
goto fr_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
}
fp->curr_sect = sect; /* Update current sector */
cc = btr / 512; /* When left bytes >= 512, */
if (cc) { /* Read maximum contiguous sectors directly */
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_read(0, rbuff, sect, cc) != RES_OK)
goto fr_error;
fp->sect_clust -= cc - 1;
fp->curr_sect += cc - 1;
rcnt = cc * 512; continue;
}
}
if (!move_window(fp->curr_sect)) goto fr_error; /* Move sector window */
rcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes from sector window */
if (rcnt > btr) rcnt = btr;
memcpy(rbuff, &fs->win[(WORD)fp->fptr % 512], rcnt);
}
 
return FR_OK;
 
fr_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Write File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_write (
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
WORD btw, /* Number of bytes to write */
WORD *bw /* Pointer to number of bytes written */
)
{
DWORD sect;
WORD wcnt;
CLUST clust;
BYTE cc;
FRESULT res;
const BYTE *wbuff = buff;
FATFS *fs = fp->fs;
 
 
*bw = 0;
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
if (--(fp->sect_clust)) { /* Decrement left sector counter */
sect = fp->curr_sect + 1; /* Get current sector */
} else { /* On the cluster boundary, get next cluster */
if (fp->fptr == 0) { /* Is top of the file */
clust = fp->org_clust;
if (clust == 0) /* No cluster is created yet */
fp->org_clust = clust = create_chain(0); /* Create a new cluster chain */
} else { /* Middle or end of file */
clust = create_chain(fp->curr_clust); /* Trace or streach cluster chain */
}
if (clust == 0) break; /* Disk full */
if (clust == 1 || clust >= fs->max_clust) goto fw_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
}
fp->curr_sect = sect; /* Update current sector */
cc = btw / 512; /* When left bytes >= 512, */
if (cc) { /* Write maximum contiguous sectors directly */
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_write(0, wbuff, sect, cc) != RES_OK)
goto fw_error;
fp->sect_clust -= cc - 1;
fp->curr_sect += cc - 1;
wcnt = cc * 512; continue;
}
if (fp->fptr >= fp->fsize) { /* Flush R/W window if needed */
if (!move_window(0)) goto fw_error;
fs->winsect = fp->curr_sect;
}
}
if (!move_window(fp->curr_sect)) /* Move sector window */
goto fw_error;
wcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes bytes to sector window */
if (wcnt > btw) wcnt = btw;
memcpy(&fs->win[(WORD)fp->fptr % 512], wbuff, wcnt);
fs->winflag = 1;
}
 
if (fp->fptr > fp->fsize) fp->fsize = fp->fptr; /* Update file size if needed */
fp->flag |= FA__WRITTEN; /* Set file changed flag */
return FR_OK;
 
fw_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Synchronize between File and Disk */
/*-----------------------------------------------------------------------*/
 
FRESULT f_sync (
FIL *fp /* Pointer to the file object */
)
{
DWORD tim;
BYTE *dir;
FRESULT res;
FATFS *fs = fp->fs;
 
 
res = validate(fs, fp->id); /* Check validity of the object */
if (res == FR_OK) {
if (fp->flag & FA__WRITTEN) { /* Has the file been written? */
/* Update the directory entry */
if (!move_window(fp->dir_sect))
return FR_RW_ERROR;
dir = fp->dir_ptr;
dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
ST_DWORD(&dir[DIR_FileSize], fp->fsize); /* Update file size */
ST_WORD(&dir[DIR_FstClusLO], fp->org_clust); /* Update start cluster */
#if _FAT32
ST_WORD(&dir[DIR_FstClusHI], fp->org_clust >> 16);
#endif
tim = get_fattime(); /* Updated time */
ST_DWORD(&dir[DIR_WrtTime], tim);
fp->flag &= ~FA__WRITTEN;
res = sync();
}
}
return res;
}
 
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Close File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_close (
FIL *fp /* Pointer to the file object to be closed */
)
{
FRESULT res;
 
 
#if !_FS_READONLY
res = f_sync(fp);
#else
res = validate(fp->fs, fp->id);
#endif
if (res == FR_OK)
fp->fs = NULL;
 
return res;
}
 
 
 
 
#if _FS_MINIMIZE <= 2
/*-----------------------------------------------------------------------*/
/* Seek File Pointer */
/*-----------------------------------------------------------------------*/
 
FRESULT f_lseek (
FIL *fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
{
CLUST clust;
DWORD csize;
BYTE csect;
FRESULT res;
FATFS *fs = fp->fs;
 
 
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
 
if (fp->flag & FA__ERROR) return FR_RW_ERROR;
#if !_FS_READONLY
if (ofs > fp->fsize && !(fp->flag & FA_WRITE))
#else
if (ofs > fp->fsize)
#endif
ofs = fp->fsize;
fp->fptr = 0; fp->sect_clust = 1; /* Set file R/W pointer to top of the file */
 
/* Move file R/W pointer if needed */
if (ofs) {
clust = fp->org_clust; /* Get start cluster */
#if !_FS_READONLY
if (!clust) { /* If the file does not have a cluster chain, create new cluster chain */
clust = create_chain(0);
if (clust == 1) goto fk_error;
fp->org_clust = clust;
}
#endif
if (clust) { /* If the file has a cluster chain, it can be followed */
csize = (DWORD)fs->sects_clust * 512; /* Cluster size in unit of byte */
for (;;) { /* Loop to skip leading clusters */
fp->curr_clust = clust; /* Update current cluster */
if (ofs <= csize) break;
#if !_FS_READONLY
if (fp->flag & FA_WRITE) /* Check if in write mode or not */
clust = create_chain(clust); /* Force streached if in write mode */
else
#endif
clust = get_cluster(clust); /* Only follow cluster chain if not in write mode */
if (clust == 0) { /* Stop if could not follow the cluster chain */
ofs = csize; break;
}
if (clust == 1 || clust >= fs->max_clust) goto fk_error;
fp->fptr += csize; /* Update R/W pointer */
ofs -= csize;
}
csect = (BYTE)((ofs - 1) / 512); /* Sector offset in the cluster */
fp->curr_sect = clust2sect(clust) + csect; /* Current sector */
fp->sect_clust = fs->sects_clust - csect; /* Left sector counter in the cluster */
fp->fptr += ofs; /* Update file R/W pointer */
}
}
#if !_FS_READONLY
if ((fp->flag & FA_WRITE) && fp->fptr > fp->fsize) { /* Set updated flag if in write mode */
fp->fsize = fp->fptr;
fp->flag |= FA__WRITTEN;
}
#endif
 
return FR_OK;
 
fk_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if _FS_MINIMIZE <= 1
/*-----------------------------------------------------------------------*/
/* Open a directroy */
/*-----------------------------------------------------------------------*/
 
FRESULT f_opendir (
DIR *dirobj, /* Pointer to directory object to create */
const char *path /* Pointer to the directory path */
)
{
BYTE *dir;
char fn[8+3+1];
FRESULT res;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 0);
if (res != FR_OK) return res;
 
res = trace_path(dirobj, fn, path, &dir); /* Trace the directory path */
if (res == FR_OK) { /* Trace completed */
if (dir != NULL) { /* It is not the root dir */
if (dir[DIR_Attr] & AM_DIR) { /* The entry is a directory */
dirobj->clust =
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
dirobj->sect = clust2sect(dirobj->clust);
dirobj->index = 2;
} else { /* The entry is not a directory */
res = FR_NO_FILE;
}
}
dirobj->id = fs->id;
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Directory Entry in Sequense */
/*-----------------------------------------------------------------------*/
 
FRESULT f_readdir (
DIR *dirobj, /* Pointer to the directory object */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir, c;
FRESULT res;
FATFS *fs = dirobj->fs;
 
 
res = validate(fs, dirobj->id); /* Check validity of the object */
if (res) return res;
 
finfo->fname[0] = 0;
while (dirobj->sect) {
if (!move_window(dirobj->sect))
return FR_RW_ERROR;
dir = &fs->win[(dirobj->index & 15) * 32]; /* pointer to the directory entry */
c = dir[DIR_Name];
if (c == 0) break; /* Has it reached to end of dir? */
if (c != 0xE5 && !(dir[DIR_Attr] & AM_VOL)) /* Is it a valid entry? */
get_fileinfo(finfo, dir);
if (!next_dir_entry(dirobj)) dirobj->sect = 0; /* Next entry */
if (finfo->fname[0]) break; /* Found valid entry */
}
 
return FR_OK;
}
 
 
 
 
#if _FS_MINIMIZE == 0
/*-----------------------------------------------------------------------*/
/* Get File Status */
/*-----------------------------------------------------------------------*/
 
FRESULT f_stat (
const char *path, /* Pointer to the file path */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir;
char fn[8+3+1];
FRESULT res;
DIR dirobj;
 
 
res = auto_mount(&path, 0);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir) /* Found an object */
get_fileinfo(finfo, dir);
else /* It is root dir */
res = FR_INVALID_NAME;
}
 
return res;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Get Number of Free Clusters */
/*-----------------------------------------------------------------------*/
 
FRESULT f_getfree (
const char *drv, /* Logical drive number */
DWORD *nclust, /* Pointer to the double word to return number of free clusters */
FATFS **fatfs /* Pointer to pointer to the file system object to return */
)
{
DWORD n, sect;
CLUST clust;
BYTE fat, f, *p;
FRESULT res;
FATFS *fs;
 
 
/* Get drive number */
res = auto_mount(&drv, 0);
if (res != FR_OK) return res;
*fatfs = fs = FatFs;
 
/* If number of free cluster is valid, return it without cluster scan. */
if (fs->free_clust <= fs->max_clust - 2) {
*nclust = fs->free_clust;
return FR_OK;
}
 
/* Count number of free clusters */
fat = fs->fs_type;
n = 0;
if (fat == FS_FAT12) {
clust = 2;
do {
if ((WORD)get_cluster(clust) == 0) n++;
} while (++clust < fs->max_clust);
} else {
clust = fs->max_clust;
sect = fs->fatbase;
f = 0; p = 0;
do {
if (!f) {
if (!move_window(sect++)) return FR_RW_ERROR;
p = fs->win;
}
if (!_FAT32 || fat == FS_FAT16) {
if (LD_WORD(p) == 0) n++;
p += 2; f += 1;
} else {
if (LD_DWORD(p) == 0) n++;
p += 4; f += 2;
}
} while (--clust);
}
fs->free_clust = n;
#if _USE_FSINFO
if (fat == FS_FAT32) fs->fsi_flag = 1;
#endif
 
*nclust = n;
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Delete a File or a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_unlink (
const char *path /* Pointer to the file or directory path */
)
{
BYTE *dir, *sdir;
DWORD dsect;
char fn[8+3+1];
CLUST dclust;
FRESULT res;
DIR dirobj;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res != FR_OK) return res; /* Trace failed */
if (dir == NULL) return FR_INVALID_NAME; /* It is the root directory */
if (dir[DIR_Attr] & AM_RDO) return FR_DENIED; /* It is a R/O object */
dsect = fs->winsect;
dclust =
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
if (dir[DIR_Attr] & AM_DIR) { /* It is a sub-directory */
dirobj.clust = dclust; /* Check if the sub-dir is empty or not */
dirobj.sect = clust2sect(dclust);
dirobj.index = 2;
do {
if (!move_window(dirobj.sect)) return FR_RW_ERROR;
sdir = &fs->win[(dirobj.index & 15) * 32];
if (sdir[DIR_Name] == 0) break;
if (sdir[DIR_Name] != 0xE5 && !(sdir[DIR_Attr] & AM_VOL))
return FR_DENIED; /* The directory is not empty */
} while (next_dir_entry(&dirobj));
}
 
if (!move_window(dsect)) return FR_RW_ERROR; /* Mark the directory entry 'deleted' */
dir[DIR_Name] = 0xE5;
fs->winflag = 1;
if (!remove_chain(dclust)) return FR_RW_ERROR; /* Remove the cluster chain */
 
return sync();
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Create a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mkdir (
const char *path /* Pointer to the directory path */
)
{
BYTE *dir, *fw, n;
char fn[8+3+1];
DWORD sect, dsect, tim;
CLUST dclust, pclust;
FRESULT res;
DIR dirobj;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) return FR_EXIST; /* Any file or directory is already existing */
if (res != FR_NO_FILE) return res;
 
res = reserve_direntry(&dirobj, &dir); /* Reserve a directory entry */
if (res != FR_OK) return res;
sect = fs->winsect;
dclust = create_chain(0); /* Allocate a cluster for new directory table */
if (dclust == 1) return FR_RW_ERROR;
dsect = clust2sect(dclust);
if (!dsect) return FR_DENIED;
if (!move_window(dsect)) return FR_RW_ERROR;
 
fw = fs->win;
memset(fw, 0, 512); /* Clear the directory table */
for (n = 1; n < fs->sects_clust; n++) {
if (disk_write(0, fw, ++dsect, 1) != RES_OK)
return FR_RW_ERROR;
}
 
memset(&fw[DIR_Name], ' ', 8+3); /* Create "." entry */
fw[DIR_Name] = '.';
fw[DIR_Attr] = AM_DIR;
tim = get_fattime();
ST_DWORD(&fw[DIR_WrtTime], tim);
memcpy(&fw[32], &fw[0], 32); fw[33] = '.'; /* Create ".." entry */
pclust = dirobj.sclust;
#if _FAT32
ST_WORD(&fw[ DIR_FstClusHI], dclust >> 16);
if (fs->fs_type == FS_FAT32 && pclust == fs->dirbase) pclust = 0;
ST_WORD(&fw[32+DIR_FstClusHI], pclust >> 16);
#endif
ST_WORD(&fw[ DIR_FstClusLO], dclust);
ST_WORD(&fw[32+DIR_FstClusLO], pclust);
fs->winflag = 1;
 
if (!move_window(sect)) return FR_RW_ERROR;
memset(&dir[0], 0, 32); /* Clean-up the new entry */
memcpy(&dir[DIR_Name], fn, 8+3); /* Name */
dir[DIR_NTres] = fn[11];
dir[DIR_Attr] = AM_DIR; /* Attribute */
ST_DWORD(&dir[DIR_WrtTime], tim); /* Crated time */
ST_WORD(&dir[DIR_FstClusLO], dclust); /* Table start cluster */
#if _FAT32
ST_WORD(&dir[DIR_FstClusHI], dclust >> 16);
#endif
 
return sync();
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change File Attribute */
/*-----------------------------------------------------------------------*/
 
FRESULT f_chmod (
const char *path, /* Pointer to the file path */
BYTE value, /* Attribute bits */
BYTE mask /* Attribute mask to change */
)
{
FRESULT res;
BYTE *dir;
DIR dirobj;
char fn[8+3+1];
 
 
res = auto_mount(&path, 1);
if (res == FR_OK) {
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir == NULL) {
res = FR_INVALID_NAME;
} else {
mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */
dir[DIR_Attr] = (value & mask) | (dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
res = sync();
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Rename File/Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_rename (
const char *path_old, /* Pointer to the old name */
const char *path_new /* Pointer to the new name */
)
{
FRESULT res;
DWORD sect_old;
BYTE *dir_old, *dir_new, direntry[32-11];
DIR dirobj;
char fn[8+3+1];
FATFS *fs = FatFs;
 
 
res = auto_mount(&path_old, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path_old, &dir_old); /* Check old object */
if (res != FR_OK) return res; /* The old object is not found */
if (!dir_old) return FR_NO_FILE;
sect_old = fs->winsect; /* Save the object information */
memcpy(direntry, &dir_old[11], 32-11);
 
res = trace_path(&dirobj, fn, path_new, &dir_new); /* Check new object */
if (res == FR_OK) return FR_EXIST; /* The new object name is already existing */
if (res != FR_NO_FILE) return res; /* Is there no old name? */
res = reserve_direntry(&dirobj, &dir_new); /* Reserve a directory entry */
if (res != FR_OK) return res;
 
memcpy(&dir_new[DIR_Attr], direntry, 32-11); /* Create new entry */
memcpy(&dir_new[DIR_Name], fn, 8+3);
dir_new[DIR_NTres] = fn[11];
fs->winflag = 1;
 
if (!move_window(sect_old)) return FR_RW_ERROR; /* Remove old entry */
dir_old[DIR_Name] = 0xE5;
 
return sync();
}
 
#endif /* !_FS_READONLY */
#endif /* _FS_MINIMIZE == 0 */
#endif /* _FS_MINIMIZE <= 1 */
#endif /* _FS_MINIMIZE <= 2 */
 
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/tff.h
0,0 → 1,289
/*--------------------------------------------------------------------------/
/ Tiny-FatFs - FAT file system module include file R0.04b (C)ChaN, 2007
/---------------------------------------------------------------------------/
/ FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2007, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ profit use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------*/
 
#ifndef _FATFS
 
#define _MCU_ENDIAN 1
/* The _MCU_ENDIAN defines which access method is used to the FAT structure.
/ 1: Enable word access.
/ 2: Disable word access and use byte-by-byte access instead.
/ When the architectural byte order of the MCU is big-endian and/or address
/ miss-aligned access is prohibited, the _MCU_ENDIAN must be set to 2.
/ If it is not the case, it can be set to 1 for good code efficiency. */
 
#define _FS_READONLY 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename
/ and useless f_getfree. */
 
#define _FS_MINIMIZE 2
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod and f_rename are removed.
/ 2: f_opendir and f_readdir are removed in addition to level 1.
/ 3: f_lseek is removed in addition to level 2. */
 
#define _FAT32 0
/* To support FAT32 in addition of FAT12/16, set _FAT32 to 1. */
 
#define _USE_FSINFO 0
/* To support FSInfo on FAT32 volume, set _USE_FSINFO to 1. */
 
#define _USE_SJIS 0
/* When _USE_SJIS is set to 1, Shift-JIS code transparency is enabled, otherwise
/ only US-ASCII(7bit) code can be accepted as file/directory name. */
 
#define _USE_NTFLAG 1
/* When _USE_NTFLAG is set to 1, upper/lower case of the file name is preserved. */
 
 
#include "integer.h"
 
 
/* Type definition for cluster number */
#if _FAT32
typedef DWORD CLUST;
#else
typedef WORD CLUST;
#undef _USE_FSINFO
#define _USE_FSINFO 0
#endif
 
 
/* File system object structure */
typedef struct _FATFS {
WORD id; /* File system mount ID */
WORD n_rootdir; /* Number of root directory entries */
DWORD winsect; /* Current sector appearing in the win[] */
DWORD fatbase; /* FAT start sector */
DWORD dirbase; /* Root directory start sector */
DWORD database; /* Data start sector */
CLUST sects_fat; /* Sectors per fat */
CLUST max_clust; /* Maximum cluster# + 1 */
#if !_FS_READONLY
CLUST last_clust; /* Last allocated cluster */
CLUST free_clust; /* Number of free clusters */
#if _USE_FSINFO
DWORD fsi_sector; /* fsinfo sector */
BYTE fsi_flag; /* fsinfo dirty flag (1:must be written back) */
BYTE pad1;
#endif
#endif
BYTE fs_type; /* FAT sub type */
BYTE sects_clust; /* Sectors per cluster */
BYTE n_fats; /* Number of FAT copies */
BYTE winflag; /* win[] dirty flag (1:must be written back) */
BYTE win[512]; /* Disk access window for Directory/FAT/File */
} FATFS;
 
 
/* Directory object structure */
typedef struct _DIR {
WORD id; /* Owner file system mount ID */
WORD index; /* Current index */
FATFS* fs; /* Pointer to the owner file system object */
CLUST sclust; /* Start cluster */
CLUST clust; /* Current cluster */
DWORD sect; /* Current sector */
} DIR;
 
 
/* File object structure */
typedef struct _FIL {
WORD id; /* Owner file system mount ID */
BYTE flag; /* File status flags */
BYTE sect_clust; /* Left sectors in cluster */
FATFS* fs; /* Pointer to owner file system */
DWORD fptr; /* File R/W pointer */
DWORD fsize; /* File size */
CLUST org_clust; /* File start cluster */
CLUST curr_clust; /* Current cluster */
DWORD curr_sect; /* Current sector */
#if !_FS_READONLY
DWORD dir_sect; /* Sector containing the directory entry */
BYTE* dir_ptr; /* Ponter to the directory entry in the window */
#endif
} FIL;
 
 
/* File status structure */
typedef struct _FILINFO {
DWORD fsize; /* Size */
WORD fdate; /* Date */
WORD ftime; /* Time */
BYTE fattrib; /* Attribute */
char fname[8+1+3+1]; /* Name (8.3 format) */
} FILINFO;
 
 
/* File function return code (FRESULT) */
 
typedef enum {
FR_OK = 0, /* 0 */
FR_NOT_READY, /* 1 */
FR_NO_FILE, /* 2 */
FR_NO_PATH, /* 3 */
FR_INVALID_NAME, /* 4 */
FR_INVALID_DRIVE, /* 5 */
FR_DENIED, /* 6 */
FR_EXIST, /* 7 */
FR_RW_ERROR, /* 8 */
FR_WRITE_PROTECTED, /* 9 */
FR_NOT_ENABLED, /* 10 */
FR_NO_FILESYSTEM, /* 11 */
FR_INVALID_OBJECT /* 12 */
} FRESULT;
 
 
 
/*-----------------------------------------------------*/
/* FatFs module application interface */
 
FRESULT f_mount (BYTE, FATFS*); /* Mount/Unmount a logical drive */
FRESULT f_open (FIL*, const char*, BYTE); /* Open or create a file */
FRESULT f_read (FIL*, void*, WORD, WORD*); /* Read data from a file */
FRESULT f_write (FIL*, const void*, WORD, WORD*); /* Write data to a file */
FRESULT f_lseek (FIL*, DWORD); /* Move file pointer of a file object */
FRESULT f_close (FIL*); /* Close an open file object */
FRESULT f_opendir (DIR*, const char*); /* Open an existing directory */
FRESULT f_readdir (DIR*, FILINFO*); /* Read a directory item */
FRESULT f_stat (const char*, FILINFO*); /* Get file status */
FRESULT f_getfree (const char*, DWORD*, FATFS**); /* Get number of free clusters on the drive */
FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT f_unlink (const char*); /* Delete an existing file or directory */
FRESULT f_mkdir (const char*); /* Create a new directory */
FRESULT f_chmod (const char*, BYTE, BYTE); /* Change file/dir attriburte */
FRESULT f_rename (const char*, const char*); /* Rename/Move a file or directory */
 
 
/* User defined function to give a current time to fatfs module */
 
DWORD get_fattime (void); /* 31-25: Year(0-127 +1980), 24-21: Month(1-12), 20-16: Day(1-31) */
/* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
 
 
 
/* File access control and file status flags (FIL.flag) */
 
#define FA_READ 0x01
#define FA_OPEN_EXISTING 0x00
#if !_FS_READONLY
#define FA_WRITE 0x02
#define FA_CREATE_NEW 0x04
#define FA_CREATE_ALWAYS 0x08
#define FA_OPEN_ALWAYS 0x10
#define FA__WRITTEN 0x20
#endif
#define FA__ERROR 0x80
 
 
/* FAT sub type (FATFS.fs_type) */
 
#define FS_FAT12 1
#define FS_FAT16 2
#define FS_FAT32 3
 
 
/* File attribute bits for directory entry */
 
#define AM_RDO 0x01 /* Read only */
#define AM_HID 0x02 /* Hidden */
#define AM_SYS 0x04 /* System */
#define AM_VOL 0x08 /* Volume label */
#define AM_LFN 0x0F /* LFN entry */
#define AM_DIR 0x10 /* Directory */
#define AM_ARC 0x20 /* Archive */
 
 
 
/* Offset of FAT structure members */
 
#define BS_jmpBoot 0
#define BS_OEMName 3
#define BPB_BytsPerSec 11
#define BPB_SecPerClus 13
#define BPB_RsvdSecCnt 14
#define BPB_NumFATs 16
#define BPB_RootEntCnt 17
#define BPB_TotSec16 19
#define BPB_Media 21
#define BPB_FATSz16 22
#define BPB_SecPerTrk 24
#define BPB_NumHeads 26
#define BPB_HiddSec 28
#define BPB_TotSec32 32
#define BS_55AA 510
 
#define BS_DrvNum 36
#define BS_BootSig 38
#define BS_VolID 39
#define BS_VolLab 43
#define BS_FilSysType 54
 
#define BPB_FATSz32 36
#define BPB_ExtFlags 40
#define BPB_FSVer 42
#define BPB_RootClus 44
#define BPB_FSInfo 48
#define BPB_BkBootSec 50
#define BS_DrvNum32 64
#define BS_BootSig32 66
#define BS_VolID32 67
#define BS_VolLab32 71
#define BS_FilSysType32 82
 
#define FSI_LeadSig 0
#define FSI_StrucSig 484
#define FSI_Free_Count 488
#define FSI_Nxt_Free 492
 
#define MBR_Table 446
 
#define DIR_Name 0
#define DIR_Attr 11
#define DIR_NTres 12
#define DIR_CrtTime 14
#define DIR_CrtDate 16
#define DIR_FstClusHI 20
#define DIR_WrtTime 22
#define DIR_WrtDate 24
#define DIR_FstClusLO 26
#define DIR_FileSize 28
 
 
 
/* Multi-byte word access macros */
 
#if _MCU_ENDIAN == 1 /* Use word access */
#define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
#define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
#else
#if _MCU_ENDIAN == 2 /* Use byte-by-byte access */
#define LD_WORD(ptr) (WORD)(((WORD)*(BYTE*)((ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(((DWORD)*(BYTE*)((ptr)+3)<<24)|((DWORD)*(BYTE*)((ptr)+2)<<16)|((WORD)*(BYTE*)((ptr)+1)<<8)|*(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8)
#define ST_DWORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24)
#else
#error Do not forget to set _MCU_ENDIAN properly!
#endif
#endif
 
 
 
#define _FATFS
#endif /* _FATFS */
/Designs/Data_loggers/DOGFINDER01A/SW/ATMEGA168/tt.ini
0,0 → 1,0
bps=115200
/Designs/Data_loggers/DOGFINDER02A/PrjInfo.txt
0,0 → 1,17
//
// Toto je popisný soubor pro popis obsahu adresáře (příklad)
//
 
[InfoShortDescription.en]
Dog finder - Beacon tracker
 
[InfoShortDescription.cs]
Psí vyhledávač - majákový vysílač
[InfoLongDescription.en]
The coordinate of GPS receiver is transmitted by the RFM01S module to receiver station.
[InfoLongDescription.cs]
Zařízení vysílá pozici GPS přijímače na psím obojku.
 
[End]
/Designs/Data_loggers/DOGFINDER02A/PrjInfo.txt~
0,0 → 1,18
//
// Toto je popisný soubor pro popis obsahu adresáře (příklad)
//
 
[InfoShortDescription.en]
Dog finder - Track Logger
 
[InfoShortDescription.cs]
Psí vyhledávač - záznamník trasy
[InfoLongDescription.en]
The track is logged in NMEA format on SD/MMC card.
[InfoLongDescription.cs]
Umožňuje zaznamanat trasu opakovaně utíkajícího psa. A tím nalézt zdroj problémů, například díru v plotě :)
Trasa je zaznamenávána na SD/MMC kartu ve formátu NMEA.
 
[End]
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.c
0,0 → 1,192
/* mija 2008
demo for RFM02 - TX 868MHz
 
CPU ATMEGA16
fcpu = 1MHz
 
!! define PIN,PORT,DDR for IOpin !!
 
tested with module RFM12B RX 9600 BW 134kHz
*/
 
#define F_CPU 1000000UL
 
#include <avr/io.h>
#include <util/delay.h>
#include "RFM02.h"
 
//************************************************************************
 
#define SDI PB3
#define SDI_PORT PORTB
#define SDI_DDR DDRB
 
#define FSK PC1
#define FSK_PORT PORTC
#define FSK_DDR DDRC
+#define SCK PB5
+ #define SCK_PORT PORTB
+ #define SCK_DDR DDRB
+
+#define nIRQ PD2 // input for mega
+ #define nIRQ_PORT PORTD
+ #define nIRQ_DDR DDRD
+ #define nIRQ_PIN PIND
+
+#define nSEL PB2
+ #define nSEL_PORT PORTB
+ #define nSEL_DDR DDRB
+
+#define LED PC3
+ #define LED_PORT PORTC
+ #define LED_DDR DDRC
+
+// interni
+#define SDI_H SDI_PORT |= _BV(SDI)
+#define SDI_L SDI_PORT &= (~(_BV(SDI)))
+#define SDI_INIT SDI_DDR |= _BV(SDI)
+
+#define FSK_H FSK_PORT |= _BV(FSK)
+#define FSK_L FSK_PORT &= (~(_BV(FSK)))
+#define FSK_INIT FSK_DDR |= _BV(FSK)
+
+#define SDO_INPUT (SDO_PIN & _BV(SDO))
+#define SDO_INIT SDO_DDR &= (~(_BV(SDO)))
+
+#define SCK_H SCK_PORT |= _BV(SCK)
+#define SCK_L SCK_PORT &= (~(_BV(SCK)))
+#define SCK_INIT SCK_DDR |= _BV(SCK)
+
+#define nIRQ_INPUT (nIRQ_PIN & _BV(nIRQ))
+#define nIRQ_INIT nIRQ_DDR &= (~(_BV(nIRQ)))
+
+#define nSEL_H nSEL_PORT |= _BV(nSEL)
+#define nSEL_L nSEL_PORT &= (~(_BV(nSEL)))
+#define nSEL_INIT nSEL_DDR |= _BV(nSEL)
+
+#define LED_H LED_PORT |= _BV(LED)
+#define LED_L LED_PORT &= (~(_BV(LED)))
+#define LED_INIT LED_DDR |= _BV(LED)
+
+#define START_TX RF_WRITE_CMD(CMD_POWER|POWER_EX|POWER_ES|POWER_EA|POWER_DC)
+#define STOP_TX RF_WRITE_CMD(CMD_POWER|POWER_DC)
+
+//************************************************************************
+
+//uint8_t test[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x03b,0x3c,0x3d,0x3e,0x3f};
+uint8_t test[17]="\n\rATmega16\n\r ---";
+//uint8_t test[16]="0123456789abcdef";
+
+
+//************************************************************************
+
+void delay_ms(uint16_t time)
+{
+ while(time--) _delay_ms(1);
+}
+
+void IO_INIT(void)
+{
+ SDI_INIT;
+ SCK_INIT;
+ nIRQ_INIT;
+ nSEL_INIT;
+ FSK_INIT;
+ LED_INIT;
+}
+
+void RF_INIT(void)
+{
+ nSEL_H;
+ SDI_H;
+ SCK_L;
+ nIRQ_INPUT;
+ FSK_H;
+}
+
+void RF_WRITE_CMD(uint16_t cmd)
+{
+ uint8_t i;
+
+ SCK_L;
+ nSEL_L;
+ for (i=0;i<16;i++)
+ {
+ SCK_L;
+ SCK_L;
+ if (cmd & 0x8000) SDI_H;
+ else SDI_L;
+ SCK_H;
+ SCK_H;
+ cmd <<= 1;
+ }
+ SCK_L;
+ nSEL_H;
+}
+
+void RF_WRITE_DATA(uint8_t data)
+{
+ uint8_t i;
+
+ for (i=0;i<8;i++)
+ {
+ while (nIRQ_INPUT);
+ while (!nIRQ_INPUT);
+ if (data & 0x80)FSK_H;
+ else FSK_L;
+ data <<= 1;
+ }
+}
+
+int main()
+{
+ uint8_t i,j,ChkSum;
+
+ IO_INIT();
+ RF_INIT();
+ LED_H;
+ delay_ms(100);
+
+ RF_WRITE_CMD(CMD_STATUS);
+ RF_WRITE_CMD(CMD_SETTING |BAND_868 |C_12pF |TX_DEV_90);
+ RF_WRITE_CMD(CMD_FREQUENCY |FREQUENCY_868);
+ RF_WRITE_CMD(0xD040);
+ RF_WRITE_CMD(CMD_RATE |RATE_4800);
+ RF_WRITE_CMD(CMD_BATTERY |TX_EBS);
+ RF_WRITE_CMD(CMD_POWER |POWER_DC);
+ RF_WRITE_CMD(POWER_OUT_0);
+
+ j= 0;
+ while (1)
+ {
+ LED_H;
+
+ START_TX;
+ ChkSum = 0;
+ for (i=0;i<3;i++) RF_WRITE_DATA(0xAA);
+ RF_WRITE_DATA(0x2D);
+ RF_WRITE_DATA(0xD4);
+
+ for (i=0;i<16;i++)
+ {
+ RF_WRITE_DATA(test[i]);
+ ChkSum += test[i];
+ }
+ RF_WRITE_DATA(ChkSum);
+ RF_WRITE_DATA(0xAA);
+ RF_WRITE_DATA(0xAA);
+ STOP_TX;
+
+ LED_L;
+ delay_ms(500);
+ j++;
+ test[13]=(j/100)+0x30;
+ test[14]=((j%100)/10)+0x30;
+ test[15]=((j%100)%10)+0x30;
+ }
+ return 0;
+}
+
+
+
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.c~
0,0 → 1,192
/* mija 2008
demo for RFM02 - TX 868MHz
 
CPU ATMEGA16
fcpu = 1MHz
 
!! define PIN,PORT,DDR for IOpin !!
 
tested with module RFM12B RX 9600 BW 134kHz
*/
 
#define F_CPU 1000000UL
 
#include <avr/io.h>
#include <util/delay.h>
#include "RFM02.h"
 
//************************************************************************
 
#define SDI PB3
#define SDI_PORT PORTB
#define SDI_DDR DDRB
 
#define FSK PC1
#define FSK_PORT PORTC
#define FSK_DDR DDRC
+#define SCK PB5
+ #define SCK_PORT PORTB
+ #define SCK_DDR DDRB
+
+#define nIRQ PD2 // input for mega
+ #define nIRQ_PORT PORTD
+ #define nIRQ_DDR DDRD
+ #define nIRQ_PIN PIND
+
+#define nSEL PB2
+ #define nSEL_PORT PORTB
+ #define nSEL_DDR DDRB
+
+#define LED PC3
+ #define LED_PORT PORTC
+ #define LED_DDR DDRC
+
+// interni
+#define SDI_H SDI_PORT |= _BV(SDI)
+#define SDI_L SDI_PORT &= (~(_BV(SDI)))
+#define SDI_INIT SDI_DDR |= _BV(SDI)
+
+#define FSK_H FSK_PORT |= _BV(FSK)
+#define FSK_L FSK_PORT &= (~(_BV(FSK)))
+#define FSK_INIT FSK_DDR |= _BV(FSK)
+
+#define SDO_INPUT (SDO_PIN & _BV(SDO))
+#define SDO_INIT SDO_DDR &= (~(_BV(SDO)))
+
+#define SCK_H SCK_PORT |= _BV(SCK)
+#define SCK_L SCK_PORT &= (~(_BV(SCK)))
+#define SCK_INIT SCK_DDR |= _BV(SCK)
+
+#define nIRQ_INPUT (nIRQ_PIN & _BV(nIRQ))
+#define nIRQ_INIT nIRQ_DDR &= (~(_BV(nIRQ)))
+
+#define nSEL_H nSEL_PORT |= _BV(nSEL)
+#define nSEL_L nSEL_PORT &= (~(_BV(nSEL)))
+#define nSEL_INIT nSEL_DDR |= _BV(nSEL)
+
+#define LED_H LED_PORT |= _BV(LED)
+#define LED_L LED_PORT &= (~(_BV(LED)))
+#define LED_INIT LED_DDR |= _BV(LED)
+
+#define START_TX RF_WRITE_CMD(CMD_POWER|POWER_EX|POWER_ES|POWER_EA|POWER_DC)
+#define STOP_TX RF_WRITE_CMD(CMD_POWER|POWER_DC)
+
+//************************************************************************
+
+//uint8_t test[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x03b,0x3c,0x3d,0x3e,0x3f};
+uint8_t test[17]="\n\rATmega16\n\r ---";
+//uint8_t test[16]="0123456789abcdef";
+
+
+//************************************************************************
+
+void delay_ms(uint16_t time)
+{
+ while(time--) _delay_ms(1);
+}
+
+void IO_INIT(void)
+{
+ SDI_INIT;
+ SCK_INIT;
+ nIRQ_INIT;
+ nSEL_INIT;
+ FSK_INIT;
+ LED_INIT;
+}
+
+void RF_INIT(void)
+{
+ nSEL_H;
+ SDI_H;
+ SCK_L;
+ nIRQ_INPUT;
+ FSK_H;
+}
+
+void RF_WRITE_CMD(uint16_t cmd)
+{
+ uint8_t i;
+
+ SCK_L;
+ nSEL_L;
+ for (i=0;i<16;i++)
+ {
+ SCK_L;
+ SCK_L;
+ if (cmd & 0x8000) SDI_H;
+ else SDI_L;
+ SCK_H;
+ SCK_H;
+ cmd <<= 1;
+ }
+ SCK_L;
+ nSEL_H;
+}
+
+void RF_WRITE_DATA(uint8_t data)
+{
+ uint8_t i;
+
+ for (i=0;i<8;i++)
+ {
+ while (nIRQ_INPUT);
+ while (!nIRQ_INPUT);
+ if (data & 0x80)FSK_H;
+ else FSK_L;
+ data <<= 1;
+ }
+}
+
+int main()
+{
+ uint8_t i,j,ChkSum;
+
+ IO_INIT();
+ RF_INIT();
+ LED_H;
+ delay_ms(100);
+
+ RF_WRITE_CMD(CMD_STATUS);
+ RF_WRITE_CMD(CMD_SETTING |BAND_868 |C_12pF |TX_DEV_90);
+ RF_WRITE_CMD(CMD_FREQUENCY |FREQUENCY_868);
+ RF_WRITE_CMD(0xD040);
+ RF_WRITE_CMD(CMD_RATE |RATE_9600);
+ RF_WRITE_CMD(CMD_BATTERY |TX_EBS);
+ RF_WRITE_CMD(CMD_POWER |POWER_DC);
+ RF_WRITE_CMD(POWER_OUT_0);
+
+ j= 0;
+ while (1)
+ {
+ LED_H;
+
+ START_TX;
+ ChkSum = 0;
+ for (i=0;i<3;i++) RF_WRITE_DATA(0xAA);
+ RF_WRITE_DATA(0x2D);
+ RF_WRITE_DATA(0xD4);
+
+ for (i=0;i<16;i++)
+ {
+ RF_WRITE_DATA(test[i]);
+ ChkSum += test[i];
+ }
+ RF_WRITE_DATA(ChkSum);
+ RF_WRITE_DATA(0xAA);
+ RF_WRITE_DATA(0xAA);
+ STOP_TX;
+
+ LED_L;
+ delay_ms(500);
+ j++;
+ test[13]=(j/100)+0x30;
+ test[14]=((j%100)/10)+0x30;
+ test[15]=((j%100)%10)+0x30;
+ }
+ return 0;
+}
+
+
+
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.hex
0,0 → 1,35
:1000000012C02CC02BC02AC029C028C027C026C0BF
:1000100025C024C023C022C021C020C01FC01EC0D4
:100020001DC01CC01BC011241FBECFE5D4E0DEBF25
:10003000CDBF10E0A0E6B0E0E2EFF1E002C0059035
:100040000D92A237B107D9F710E0A2E7B0E001C0E6
:100050001D92A237B107E1F73ED0C9C0D1CF2AEF38
:1000600030E004C0F9013197F1F701970097D1F71B
:100070000895BB9ABD9A8A98BA9AA19AA39A0895AC
:10008000C29AC39AC59880B3A99A0895C598C29890
:1000900020E0C598C59897FF02C0C39A01C0C398D5
:1000A000C59AC59A2F5F203119F0880F991FF1CF9B
:1000B000C598C29A089590E08299FECF829BFECFA8
:1000C00087FF02C0A99A01C0A9989F5F983011F0DC
:1000D000880FF2CF0895EF92FF920F931F93CF9363
:1000E000DF93BB9ABD9A8A98BA9AA19AA39AC29AA8
:1000F000C39AC59880B3A99AAB9A24E630E04AEF38
:1001000050E003C0CA010197F1F7215030408FEF52
:100110002F3F3807B9F780E09CECB8DF82E790E921
:10012000B5DF80E496EAB2DF80E490EDAFDF87E4EC
:1001300098ECACDF80E292ECA9DF81E090ECA6DFE6
:1001400080E090EBA3DF00E04AEFE42EF12CAB9AC5
:1001500089E390EC9BDF8AEAAEDF8AEAACDF8AEAC9
:10016000AADF8DE2A8DF84EDA6DFC0E6D0E010E0D4
:100170008881A1DF8991180F20E0C037D207C1F72D
:10018000812F99DF8AEA97DF8AEA95DF81E090EC98
:100190007DDFAB9884EF91E003C0F7013197F1F771
:1001A00001972FEF8F3F9207C1F70F5F802F64E613
:1001B00012D0805D80936D00802F0DD0292F892F64
:1001C0006AE009D0805D80936E00822F04D0905D3C
:1001D00090936F00BCCF991B79E004C0991F9617CC
:1001E00008F0961B881F7A95C9F780950895F894B2
:0201F000FFCF3F
:1001F2000A0D41546D65676131360A0D202D2D2D92
:020202000000FA
:00000001FF
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.map
0,0 → 1,363
Archive member included because of file (symbol)
 
/usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_udivmodqi4.o)
DOGFINDER_TX.o (__udivmodqi4)
/usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o (exit)
/usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
DOGFINDER_TX.o (__do_copy_data)
/usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
DOGFINDER_TX.o (__do_clear_bss)
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
LOAD /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
LOAD DOGFINDER_TX.o
LOAD /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/libc.a
LOAD /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x1f2
*(.vectors)
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
0x00000026 . = ALIGN (0x2)
0x00000026 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000026 0x0 linker stubs
*(.trampolines*)
0x00000026 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000026 __ctors_start = .
*(.ctors)
0x00000026 __ctors_end = .
0x00000026 __dtors_start = .
*(.dtors)
0x00000026 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000026 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
0x00000026 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000026 0xc /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000032 0x16 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
0x00000032 __do_copy_data
.init4 0x00000048 0x10 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
0x00000048 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000058 0x4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
*(.init9)
*(.text)
.text 0x0000005c 0x2 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
0x0000005c __vector_1
0x0000005c __vector_12
0x0000005c __bad_interrupt
0x0000005c __vector_6
0x0000005c __vector_3
0x0000005c __vector_11
0x0000005c __vector_13
0x0000005c __vector_17
0x0000005c __vector_7
0x0000005c __vector_5
0x0000005c __vector_4
0x0000005c __vector_9
0x0000005c __vector_2
0x0000005c __vector_15
0x0000005c __vector_8
0x0000005c __vector_14
0x0000005c __vector_10
0x0000005c __vector_16
0x0000005c __vector_18
.text 0x0000005e 0x178 DOGFINDER_TX.o
0x0000008c RF_WRITE_CMD
0x000000d6 main
0x0000005e delay_ms
0x00000080 RF_INIT
0x00000072 IO_INIT
0x000000b6 RF_WRITE_DATA
.text 0x000001d6 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_udivmodqi4.o)
.text 0x000001d6 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
.text 0x000001d6 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
.text 0x000001d6 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
0x000001d6 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x000001d6 0x18 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_udivmodqi4.o)
0x000001d6 __udivmodqi4
.text.libgcc 0x000001ee 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
.text.libgcc 0x000001ee 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
.text.libgcc 0x000001ee 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
0x000001ee . = ALIGN (0x2)
*(.fini9)
.fini9 0x000001ee 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
0x000001ee exit
0x000001ee _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000001ee 0x4 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
*(.fini0)
0x000001f2 _etext = .
 
.data 0x00800060 0x12 load address 0x000001f2
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
.data 0x00800060 0x11 DOGFINDER_TX.o
0x00800060 test
.data 0x00800071 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_udivmodqi4.o)
.data 0x00800071 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
.data 0x00800071 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
.data 0x00800071 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800072 . = ALIGN (0x2)
*fill* 0x00800071 0x1 00
0x00800072 _edata = .
0x00800072 PROVIDE (__data_end, .)
 
.bss 0x00800072 0x0 load address 0x00000204
0x00800072 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800072 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
.bss 0x00800072 0x0 DOGFINDER_TX.o
.bss 0x00800072 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_udivmodqi4.o)
.bss 0x00800072 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_exit.o)
.bss 0x00800072 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_copy_data.o)
.bss 0x00800072 0x0 /usr/lib/gcc/avr/4.3.0/avr4/libgcc.a(_clear_bss.o)
*(.bss*)
*(COMMON)
0x00800072 PROVIDE (__bss_end, .)
0x000001f2 __data_load_start = LOADADDR (.data)
0x00000204 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x00800072 0x0
0x00800072 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800072 PROVIDE (__noinit_end, .)
0x00800072 _end = .
0x00800072 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.stab 0x00000000 0x1008
*(.stab)
.stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
.stab 0x000006b4 0x954 DOGFINDER_TX.o
0x960 (size before relaxing)
 
.stabstr 0x00000000 0x88f
*(.stabstr)
.stabstr 0x00000000 0x88f /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr4/crtm8.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(DOGFINDER_TX.out elf32-avr)
LOAD linker stubs
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.o
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/DOGFINDER02A/SW/DOGFINDER_TX.out
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/DOGFINDER02A/SW/Makefile
0,0 → 1,25
# makefile, written by kaklik
MCU=atmega8
CC=avr-gcc
OBJCOPY=avr-objcopy
# optimize for size:
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
#-------------------
all: DOGFINDER_TX.hex
#-------------------
help:
@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal"
@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an"
@echo " external crystal! uC is dead after wrfusecrystal if you do not"
@echo " have an external crystal."
#-------------------
DOGFINDER_TX.hex : DOGFINDER_TX.out
$(OBJCOPY) -R .eeprom -O ihex DOGFINDER_TX.out DOGFINDER_TX.hex
DOGFINDER_TX.out : DOGFINDER_TX.o
$(CC) $(CFLAGS) -o DOGFINDER_TX.out -Wl,-Map,DOGFINDER_TX.map DOGFINDER_TX.o
DOGFINDER_TX.o : DOGFINDER_TX.c
$(CC) $(CFLAGS) -Os -c DOGFINDER_TX.c
#-------------------
clean:
rm -f *.o *.map *.out *.hex
#-------------------
/Designs/Data_loggers/DOGFINDER02A/SW/Makefile~
0,0 → 1,25
# makefile, written by kaklik
MCU=atmega8
CC=avr-gcc
OBJCOPY=avr-objcopy
# optimize for size:
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
#-------------------
all: DOGFINDER_TX.hex
#-------------------
help:
@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal"
@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an"
@echo " external crystal! uC is dead after wrfusecrystal if you do not"
@echo " have an external crystal."
#-------------------
DOGFINDER_TX.hex : DOGFINDER_TX.out
$(OBJCOPY) -R .eeprom -O ihex DOGFINDER_TX.out DOGFINDER_TX.hex
DOGFINDER_TX.out : DOGFINDER_TX.o
$(CC) $(CFLAGS) -o DOGFINDER_TX.out -Wl,-Map,DOGFINDER_TX.map DOGFINDER_TX.o
DOGFINDER_TX.o : DOGFINDER_TX.c
$(CC) $(CFLAGS) -Os -c DOGFINDER_TX.c
#-------------------
clean:
rm -f *.o *.map *.out *t.hex
#-------------------
/Designs/Data_loggers/DOGFINDER02A/SW/RFM02.h
0,0 → 1,82
/* mija 2008
defines for module RFM02 - TX 868MHz
*/
 
#define CMD_SETTING 0x8000 // b1, b0, d2..d0, x3..x0, ms, m2..m0
#define CMD_POWER 0xC000 // a1, a0, ex, es, ea, eb, et, dc
#define CMD_POWER_OUT 0xB000 // p2..p0 -3*Pmax dBm
#define CMD_FREQUENCY 0xA000 // f11..f0 860+F*0.005 MHz 36..3903
#define CMD_RATE 0xC800 // r7..r0 BR=10M/29/(R+1)
#define CMD_WAKE_UP 0xE000 // r4..r0, m7..m0 T=M*2^R [ms]
#define CMD_SLEEP 0xC400 // s7..s0 S stop CLK
#define CMD_BATTERY 0xC200 // dwc, ebs , t4..t0
#define CMD_STATUS 0xCC00 // for read status
 
// CMD_SETTING
#define BAND_315 0x0000
#define BAND_433 0x800
#define BAND_868 0x1000
#define BADN_915 0x1800
 
#define C_8_5pF 0x00
#define C_9pF 0x10
#define C_9_5pF 0x20
#define C_10pF 0x30
#define C_10_5pF 0x40
#define C_11pF 0x50
#define C_11_5pF 0x60
#define C_12pF 0x70
#define C_12_5pF 0x80
#define C_13pF 0x90
#define C_13_5pF 0xA0
#define C_14pF 0xB0
#define C_14_5pF 0xC0
#define C_15pF 0xD0
#define C_15_5pF 0xE0
#define C_16pF 0xF0
#define SETTING_MS 0x08 // modulation polarity
#define TX_DEV_30 0x00 // select frequency deviation
#define TX_DEV_60 0x01
#define TX_DEV_90 0x02
#define TX_DEV_120 0x03
#define TX_DEV_150 0x04
#define TX_DEV_180 0x05
#define TX_DEV_210 0x06
 
// CMD_POWER
#define POWER_A1 0x80 // enable crystal and syntheesizer by sleep
#define POWER_A0 0x40 // enable PA by sleep
#define POWER_EX 0x20 // enable transmitter
#define POWER_ES 0x10 // enable synthesizer
#define POWER_EA 0x08 // enable PA (power amplifier)
#define POWER_EB 0x04 // enable low battery detector
#define POWER_ET 0x02 // enable wake up timer
#define POWER_DC 0x01 // disable clock output of CLK pin
 
// CMD_POWER_OUT
#define POWER_OUT_0 0xB000 // -0dBm
#define POWER_OUT_3 0xB100 // -3dBm
#define POWER_OUT_6 0xB200 // -6dBm
#define POWER_OUT_9 0xB300 // -9dBm
#define POWER_OUT_12 0xB400 // -12dBm
#define POWER_OUT_15 0xB500 // -15dBm
#define POWER_OUT_18 0xB600 // -18dBm
#define POWER_OUT_21 0xB700 // -21dBm
 
// CMD_FREQUENCY
#define FREQUENCY_867 0x578
#define FREQUENCY_868 0x640
#define FREQUENCY_869 0x708
 
// CMD_RATE
#define RATE_2400 0x8F
#define RATE_4800 0x47
#define RATE_9600 0x23
#define RATE_19200 0x11
#define RATE_38400 0x8
#define RATE_57600 0x5
#define RATE_115200 0x2
// CMD_BATTERY
#define WAKE_UP_DWC 0x80 // disable wake-up timer periodical calibration
#define TX_EBS 0x20 // enable TX bit synchronization function
/Designs/Data_loggers/DOGFINDER02A/SW/TX_RFM02.c~
0,0 → 1,199
/* mija 2008
demo for RFM02 - TX 868MHz
 
CPU ATMEGA16
fcpu = 1MHz
 
!! define PIN,PORT,DDR for IOpin !!
 
tested with module RFM12B RX 9600 BW 134kHz
*/
 
#include <avr/io.h>
#include <util/delay.h>
#include "RFM02.h"
 
#define F_CPU 1000000UL
 
//************************************************************************
 
#define SDI PB3
#define SDI_PORT PORTB
#define SDI_DDR DDRB
 
#define FSK PC1
#define FSK_PORT PORTC
#define FSK_DDR DDRC
 
#define SDO PB4 // input for mega
#define SDO_PORT PORTB
#define SDO_DDR DDRB
#define SDO_PIN PINB
 
#define SCK PB5
#define SCK_PORT PORTB
#define SCK_DDR DDRB
 
#define nIRQ PD2 // input for mega
#define nIRQ_PORT PORTD
#define nIRQ_DDR DDRD
#define nIRQ_PIN PIND
 
#define nSEL PB2
#define nSEL_PORT PORTB
#define nSEL_DDR DDRB
 
#define LED PC3
#define LED_PORT PORTC
#define LED_DDR DDRC
 
// interni
#define SDI_H SDI_PORT |= _BV(SDI)
#define SDI_L SDI_PORT &= (~(_BV(SDI)))
#define SDI_INIT SDI_DDR |= _BV(SDI)
 
#define FSK_H FSK_PORT |= _BV(FSK)
#define FSK_L FSK_PORT &= (~(_BV(FSK)))
#define FSK_INIT FSK_DDR |= _BV(FSK)
 
#define SDO_INPUT (SDO_PIN & _BV(SDO))
#define SDO_INIT SDO_DDR &= (~(_BV(SDO)))
 
#define SCK_H SCK_PORT |= _BV(SCK)
#define SCK_L SCK_PORT &= (~(_BV(SCK)))
#define SCK_INIT SCK_DDR |= _BV(SCK)
 
#define nIRQ_INPUT (nIRQ_PIN & _BV(nIRQ))
#define nIRQ_INIT nIRQ_DDR &= (~(_BV(nIRQ)))
 
#define nSEL_H nSEL_PORT |= _BV(nSEL)
#define nSEL_L nSEL_PORT &= (~(_BV(nSEL)))
#define nSEL_INIT nSEL_DDR |= _BV(nSEL)
 
#define LED_H LED_PORT |= _BV(LED)
#define LED_L LED_PORT &= (~(_BV(LED)))
#define LED_INIT LED_DDR |= _BV(LED)
 
#define START_TX RF_WRITE_CMD(CMD_POWER|POWER_EX|POWER_ES|POWER_EA|POWER_DC)
#define STOP_TX RF_WRITE_CMD(CMD_POWER|POWER_DC)
 
//************************************************************************
 
//uint8_t test[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x03b,0x3c,0x3d,0x3e,0x3f};
uint8_t test[17]="\n\rATmega16\n\r ---";
//uint8_t test[16]="0123456789abcdef";
 
 
//************************************************************************
 
void delay_ms(uint16_t time)
{
while(time--) _delay_ms(1);
}
 
void IO_INIT(void)
{
SDI_INIT;
SDO_INIT;
SCK_INIT;
nIRQ_INIT;
nSEL_INIT;
FSK_INIT;
LED_INIT;
}
 
void RF_INIT(void)
{
nSEL_H;
SDI_H;
SCK_L;
nIRQ_INPUT;
SDO_INPUT;
FSK_H;
}
 
void RF_WRITE_CMD(uint16_t cmd)
{
uint8_t i;
 
SCK_L;
nSEL_L;
for (i=0;i<16;i++)
{
SCK_L;
SCK_L;
if (cmd & 0x8000) SDI_H;
else SDI_L;
SCK_H;
SCK_H;
cmd <<= 1;
}
SCK_L;
nSEL_H;
}
 
void RF_WRITE_DATA(uint8_t data)
{
uint8_t i;
for (i=0;i<8;i++)
{
while (nIRQ_INPUT);
while (!nIRQ_INPUT);
if (data & 0x80)FSK_H;
else FSK_L;
data <<= 1;
}
}
 
int main()
{
uint8_t i,j,ChkSum;
 
IO_INIT();
RF_INIT();
LED_H;
delay_ms(100);
 
RF_WRITE_CMD(CMD_STATUS);
RF_WRITE_CMD(CMD_SETTING |BAND_868 |C_12pF |TX_DEV_90);
RF_WRITE_CMD(CMD_FREQUENCY |FREQUENCY_868);
RF_WRITE_CMD(0xD040);
RF_WRITE_CMD(CMD_RATE |RATE_19200);
RF_WRITE_CMD(CMD_BATTERY |TX_EBS);
RF_WRITE_CMD(CMD_POWER |POWER_DC);
RF_WRITE_CMD(POWER_OUT_0);
 
j= 0;
while (1)
{
LED_H;
 
START_TX;
ChkSum = 0;
for (i=0;i<3;i++) RF_WRITE_DATA(0xAA);
RF_WRITE_DATA(0x2D);
RF_WRITE_DATA(0xD4);
for (i=0;i<16;i++)
{
RF_WRITE_DATA(test[i]);
ChkSum += test[i];
}
RF_WRITE_DATA(ChkSum);
RF_WRITE_DATA(0xAA);
RF_WRITE_DATA(0xAA);
STOP_TX;
 
LED_L;
delay_ms(500);
j++;
test[13]=(j/100)+0x30;
test[14]=((j%100)/10)+0x30;
test[15]=((j%100)%10)+0x30;
}
return 0;
}
 
 
 
/Designs/Data_loggers/GMCOUNT/PrjInfo.txt
0,0 → 1,17
//
// Toto je popisný soubor pro popis obsahu adresáře (příklad)
//
 
[InfoShortDescription.en]
Some radioactivity intensimeter
 
[InfoShortDescription.cs]
Geiger-Müllerův počítač
[InfoLongDescription.en]
A counter is based on Geiger-Müller tube. Powered by internal Li-ion cell and voltage converter. It can log data in time domain and then it can send log to a computer.
 
[InfoLongDescription.cs]
Zaznamenává intenzity v průběhu času do paměti a následně je umožnoje uložit do počítače. Je napájen z integrované Li-ion baterie a vlastního měniče.
 
[End]
/Designs/Data_loggers/GMCOUNT/SW/GMC01A.c
0,0 → 1,551
#include <16F876A.h>
#device adc=10
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOLVP,NOPROTECT,XT,NOBROWNOUT
#use delay(clock=4000000)
//#define EEPROM_SCL PIN_C3
//#define EEPROM_SDA PIN_C4
#use rs232(baud=9600,xmit=PIN_C6,disable_ints)
//#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)
 
 
#define LCD_RS PIN_C7 // rizeni registru LCD displeje <lcd.c>
#define LCD_E PIN_B7 // enable LCD displeje <lcd.c>
#define LCD_D0 PIN_B3 // data LCD <lcd.c>
#define LCD_D1 PIN_B2
#define LCD_D2 PIN_B1
#define LCD_D3 PIN_B0
#define PWM_OUT PIN_C2 // kontrast LCD - menic
#define LCD_ENABLE PIN_A1
 
#define GM_PIN PIN_A4 // vstup od GMT
#define HV_ENABLE PIN_A3 // start 400V
#define CHARGE PIN_A2 // nabijeni baterie
 
#define KBD_K4 0 //tlacitko na PIN_B7 neexistuje <kbd.c>
#define TL3 0x10 //tlacitko PIN_B4 -ostatni default, viz <kbd.c>
#define TL2 0x20 //tlacitko PIN_B5 <kbd.c>
#define TL1 0x40 //tlacitko PIN_B6 <kbd.c>
 
#define KBD_CALMTIME 1 //x*40ms - doba na zakmity tlacitek <kbd.c>
#define KEYDELAY 30 //x*40ms - doba podrzeni tlacitka do opakovani
#define KEYREPEAT 6 //x*40ms - doba opakovani stiskleho tlacitka
#define LOG_PERIOD 30 //perioda logovani v min
#define TIME_TO_SLEEP 19 //x*16s - doba do uspani, pokud zadny stisk a HV nebezi
 
#define MAX_EEPROM 255 //max velikost vnitrni ee pameti
#define EE_LOG_SWITCH 1 //misto v ee, kam se uklada zpusob logovani
#define EE_LOG_OFFSET 0 //misto v ee, kde je ulozen offset dalsiho volneho mista
 
#define ECHO_MAX_CYCLE 700 //ryhlost hlavni smyèky za 40ms /cca 20kHz/ (700)
#define ECHO_PIN1 PIN_C4 //piezo
#define ECHO_PIN2 PIN_C5 //piezo
 
#define TEST_V_BATT 0x0f //maska minut pro test baterie
#define BATT_ENABLE 525 //1024/ADC*1.5+0.18 ADC=525 .. Ubat=3.1V; jeli Ubat nizsi pak sleep
 
#include <lcd.c>
#include <kbd.c>
 
int8 ms7RTC,sRTC,mRTC,hRTC,dRTC,mdRTC,yRTC; //promenne RTC
int1 vypocet,refresh,counters,sleep,log,piezo; //povoleni vypoctu,zobrazeni,citani,uspani,logovani,cvak pieza
int16 avg,bkg,min,max,dif; //hlavni zobrazované promìnne
int32 gmcount,mincount; //citac trubice GM,citac minut od startu
int8 timer_n,timer_s; //citace pulzù do 40ms, v celych 40ms, v predchozi 40ms
int32 gmcount_p; //pocet pulzu od zapnuti v predchozi cele minute
int32 gmcount_sm; //pocet pulzu od zapnuti precteno v cele minute
int8 s25tik,sTIK; //tiky pro casovani trubice 25tiku do sekundy, 60s do min
int8 key_timer,save_key,keyp; //pomocny citac pro tlacitka,ulozeni stiskleho tlacitka,provedeni akce stiskleho tl.
int8 menu_A,menu_B; //vektor pro pohyb v menu na LCD
int8 log_interval; //minutovy citac do dalsiho logu
int8 log_switch; //prepinac zpusobu logovani
int8 ee_offset; //kam v ee ulozit dalsi zaznam
int8 echo_switch,echo_tik; //povolení echa,poèet tiku za 40ms
int16 echo_timer,echo_cycle; //èitaè rychlosti smyèky pro echo,cvaknuti v cyklu
int8 pwm; //kontrast
int8 tik_to_sleep; //casovac pro uspani
float analog; //napeti baterie
int1 test_batt; //test napeti baterie
int1 test; //pokus
int8 timertest; //pokus
 
#priority timer2,timer1,rb
 
#int_TIMER2 //nastaven presne na 40ms,cte casovac timer0 GMT
TIMER2_isr()
{
kbd_ticktimer();
if (key_timer) key_timer--;
if (!counters) {set_timer0(0);s25TIK=0;sTIK=0;return;}
if (echo_switch) echo_switch=2;
timer_n=get_timer0();
s25TIK++;
if (timer_n!=timer_s) //nastala zmena v citaci,pak proved pricteni puslu
{
if (timer_n < timer_s) {timer_s=256-timer_s+timer_n;gmcount=gmcount+timer_s;} //test preteceni casovace
else {timer_s=timer_n-timer_s;gmcount=gmcount+timer_s;}
echo_tik=timer_s;
timer_s=timer_n;
if (menu_A==1 && menu_B==0) refresh=true;
}
else echo_tik=0;
if (s25TIK==25) //cela sekunda
{
s25TIK=0;
sTIK++;
if (menu_A==1 && menu_B==5) refresh=true;
if (sTIK==60) //cela minuta
{
sTIK=0;
mincount++;
vypocet=true;
gmcount_sm=gmcount;
}
}
}
 
#int_RB
RB_isr()
{
kbd_pullkbd();
tik_to_sleep = TIME_TO_SLEEP;
}
 
int8 modulo(int8 h,int8 m) //pomocna fce pro modulo x
{
if (h<m) return (h);
return(h-m);
}
 
void clear_lcd()
{
printf(lcd_putc,"\f");
}
 
void set_date() //citac datumu
{
dRTC++;
switch (mdRTC)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: if(dRTC>=32) {dRTC=1;mdRTC++;if(mdRTC==13) {mdRTC =1;yRTC=modulo(yRTC++,100);}} break;
case 4:
case 6:
case 9:
case 11: if(dRTC>=31) {dRTC=1;mdRTC++;} break;
case 2: if (dRTC >= 30) {dRTC=1;mdRTC++;break;}
if (dRTC ==29) {if (!(yRTC & 0x03)) break;dRTC=1;mdRTC++;}
}
 
}
 
 
 
#int_TIMER1 // RTC
TIMER1_isr()
{
sRTC=sRTC+16;
if (sRTC >= 60)
{
mRTC++;sRTC=modulo(sRTC,60); //1min
if (mRTC>=60) {hRTC++;mRTC=0;} //1hod
if ((mRTC & TEST_V_BATT) == TEST_V_BATT) test_batt=true;
if (hRTC>=24) {hRTC=0;set_date();} //1den
}
refresh=true;
if (tik_to_sleep) tik_to_sleep--;
}
 
void ee_head() //ulozeni hlavicky do ee cas,datum,zpusob logovani
{ //v ee 100hhhhh /hodiny/,l0mmmmmm /log + minuty/,000ddddd /den/,yyyymmmm /rok-7,mesic/
int8 data;
log=true;
if (!log_switch) return;
if (ee_offset>5) {
data=read_eeprom(ee_offset-4);
if (bit_test(data,7)) ee_offset=ee_offset-4;
}
if (ee_offset>=(MAX_EEPROM-5)) {log=false;return;}
log_interval=0;
data=hRTC;
bit_set(data,7);
write_eeprom(ee_offset++,data);
data=mRTC;
if (bit_test(log_switch,0)) bit_set(data,7);
write_eeprom(ee_offset++,data);
write_eeprom(ee_offset++,dRTC);
data=((yRTC-7) << 4)|mdRTC;
write_eeprom(ee_offset++,data);
}
 
 
 
void menu_proces(int8 key) //menu zobrazene na LCD pri citani
{
switch (key)
{
case TL1: menu_A=2;refresh=true;clear_lcd();return;
case TL2: if (log) log=false;
else ee_head();
break;
case TL3: menu_B=modulo(++menu_B,6);break;
}
printf(lcd_putc,"\rdif=%lu ",dif);
lcd_gotoxy(11,1);
if (log) printf(lcd_putc,"L"); //pokud se loguje, zobraz L
else printf(lcd_putc," ");
if (bkg) printf(lcd_putc,"B"); //pokud jiz je BKG,zobraz B
lcd_gotoxy(14,1);
printf(lcd_putc,"%3u\n",(int8)(MAX_EEPROM-ee_offset)/2); //zbivajici misto v ee
 
switch (menu_B)
{
case 0: printf(lcd_putc,"n=%lu",gmcount);break;
case 1: printf(lcd_putc,"min=%Lu",min);break;
case 2: printf(lcd_putc,"max=%lu",max);break;
case 3: printf(lcd_putc,"avg=%lu",avg);break;
case 4: printf(lcd_putc,"bkg=%lu",bkg);break;
case 5: printf(lcd_putc,"ontime=%lu:%02d ",mincount,sTIK);break;
}
}
 
void send_data() //posle data z ee na rs232 9600 8N1
{
int8 i;
int16 data;
int8 *adr;
for (i=2;i<ee_offset;i)
{
adr=&data;
*adr=read_eeprom(i++);
if (bit_test(*adr,7)) //test, zda se nejedna o hlavicku v ee
{
bit_clear(*adr,7);
printf("\r\n%d:",*adr);
*adr=read_eeprom(i++);
printf("%02d ",(0x3f&*adr));
adr++;*adr=read_eeprom(i++);
printf("%d/",*adr);
*adr=read_eeprom(i++);
printf("%02d/",*adr&0x0f);
*adr=(*adr>>4)+7;
printf("%02d ",*adr);
adr--;
if (bit_test(*adr,7)) printf("1min");
else {*adr=LOG_PERIOD;printf("%umin",*adr);}
 
}
else{
data=data<<8;
*adr=read_eeprom(i++);
printf("\r\n%lu",data);
}
 
}
}
 
void display(int8 key) //zobrazeni na LCD - zakladni menu
{
int8 mon,year; //pomocne promenne
if (key) clear_lcd();
keyp=0;
refresh=false;
if (menu_A>1) { //zmena pri stisku tl spolecna pro vetsinu menu_A
 
if (key==TL3) {menu_A++;if (menu_A>11) menu_A=2;} //TL3 pak rolluj v menu_A
if ( ( menu_A != 10 ) && ( menu_A != 6 ) && (menu_A != 11) )
{
if (key==TL1)
{
if (counters) menu_A=1;
else menu_A=0;
key=0;
}
else printf(lcd_putc,"\r\nesc cr roll\r");
}
}
 
switch (menu_A) //hlavni menu
{
case 0: min=0xffff; //zakladni menu po resetu, nastaveni promennych
max=gmcount=gmcount_sm=gmcount_p=timer_s=timer_n=mincount=dif=avg=bkg=0;
vypocet=sleep=counters=log=echo_switch=false;
test_batt = true;
log_switch=read_eeprom(EE_LOG_SWITCH);
ee_offset=read_eeprom(EE_LOG_OFFSET);
output_high(HV_ENABLE);
printf(lcd_putc,"\r%d:%02d %d.%d.%02d \nmenu off start",hRTC,mRTC,dRTC,mdRTC,yRTC);
switch (key)
{
case TL1: menu_A=2;break;
case TL2: menu_A=menu_B=0;sleep=true;break;
case TL3: menu_A=1;menu_B=0;
output_low(HV_ENABLE);
printf(lcd_putc,"\fSTART HV 400V");
delay_ms(2000);
counters=true;
break;
}
if (key) {refresh=true;clear_lcd();}
break;
case 1: menu_proces(key);break; //skok na menu zobrazujici vypoctene a nacitane promenne
case 3: if (key==TL2) {log_switch=modulo(++log_switch,3);write_eeprom(EE_LOG_SWITCH,log_switch);log=false;}
switch (log_switch)
{
case 0: printf(lcd_putc,"log \176 rs232");break;
case 1: printf(lcd_putc,"log \176 eeprom 1m");break;
case 2: mon=LOG_PERIOD;printf(lcd_putc,"log \176 eeprom %um",mon);break;
//case 3: printf(lcd_putc,"log \176 off ");break;
}
break;
case 9: printf(lcd_putc,"OFF (stand by)");
if (key==TL2) {menu_A=menu_B=0;sleep=true;output_high(HV_ENABLE);}
break;
case 8: if (key==TL2) if (echo_switch) echo_switch=0;else echo_switch=1;
 
if (echo_switch) printf(lcd_putc,"echo on");
else printf(lcd_putc,"echo off");
break;
case 4: if (key==TL2) send_data();
printf(lcd_putc,"send log \176 rs232");
break;
case 5: if (key==TL2) {log=false;ee_offset=2;write_eeprom(EE_LOG_OFFSET,2);}
printf(lcd_putc,"erase eeprom %3u",(int8)(MAX_EEPROM-ee_offset)/2);
break;
case 2: printf(lcd_putc,"STOP & clear");
if (key==TL2) {menu_A=0;menu_B=0;refresh=true;}
break;
case 7: printf(lcd_putc,"batterie ");
//if (!input(CHARGE)) {printf(lcd_putc,"charge");break;}
if ( key == TL2 || counters )
{
if ( !counters ) {output_low(HV_ENABLE);delay_ms(30);}
analog = (float) (read_adc());
analog = 1024/analog*1.5 + 0.18;
if ( !counters ) output_float(HV_ENABLE);
printf(lcd_putc,"%1.2fV",analog);
}
break;
case 6: if (key == TL2) {pwm++;if (pwm > 10) pwm --;}
if (key == TL1) {pwm--;if (pwm < 2) pwm ++;}
set_pwm1_duty(pwm);
printf(lcd_putc,"contrast: %d\n - + roll",pwm);
break;
case 10: if (key==TL2) {set_timer1(0);sRTC=0;mRTC=modulo(++mRTC,60);}
if (key==TL1) hRTC=modulo(++hRTC,24);
printf(lcd_putc,"\rtime %2d:%02d\nhod min roll",hRTC,mRTC);
break;
case 11: if (key==TL1) {mon=mdRTC;year=yRTC;set_date();mdRTC=mon;year=yRTC;}
if (key==TL2) {mon=dRTC;year=yRTC;dRTC=32;set_date();year=yRTC;}
if (key==0x30) {mon=mdRTC;yRTC++;dRTC--;set_date();}
printf(lcd_putc,"\rdate %2d.%02d.%02d\nday mon roll",dRTC,mdRTC,yRTC);
break;
}
}
 
void counters_fce()
{
int8 *adr;
if (vypocet) //1x za minutu se provede vypocet a log
{
dif=gmcount_sm-gmcount_p;
gmcount_p=gmcount_sm;
avg=gmcount_sm/mincount;
if (dif>max) max=dif;
if (dif<min) min=dif;
if (mincount==5) bkg=gmcount_sm/5;
vypocet=false;
refresh=true;
 
if (log)
{
//if (log_switch && (ee_offset>(MAX_EEPROM-2))) {log=false;return;}
switch (log_switch)
{
case 0: printf("\n\r%d:%02d %2d/%02d/%02d dif=%lu",hRTC,mRTC,dRTC,mdRTC,yRTC,dif);break;
case 2: if (log_interval) break;
case 1: adr=&dif;adr++;bit_clear(*adr,7);
write_eeprom(ee_offset++,*adr);
write_eeprom(ee_offset++,*(--adr));
write_eeprom(EE_LOG_OFFSET,ee_offset);
if (ee_offset > (MAX_EEPROM-2)) log=false;
break;
}
log_interval=modulo(++log_interval,LOG_PERIOD);
}
}
}
 
void echo_fce()
{
int8 a,c;
int16 b;
if (!echo_tik || !counters) return;
//if (echo_switch==2) {echo_switch=1;echo_cycle=ECHO_MAX_CYCLE/echo_tik;echo_timer=0;}
if (echo_tik == 1)
{
for (a=0;a<2;a++) {output_high(ECHO_PIN1);delay_us(160);output_low(ECHO_PIN1);delay_us(160);}
echo_tik=0;
}
else /*if ((echo_timer == echo_cycle) || (!echo_timer))*/
{
echo_switch=1;
c=echo_tik;
if (echo_tik <40) {a=40/c;b=0;}
if ((echo_tik >=40) && (echo_tik < 60)) {a=0;b=40000/c;}
if (echo_tik >=60) {a=0;b=160;}
while (echo_tik && (echo_switch==1) && !kbd_press())
{
echo_timer=0;
output_high(ECHO_PIN1);
delay_us(160);
output_low(ECHO_PIN1);
piezo=~piezo;
delay_us(b);
delay_ms(a);
}
 
//output_bit(ECHO_PIN2,piezo);
}
echo_timer++;
}
 
void pin_set_sleep()
{
#use fast_IO(A)
set_tris_A(0x15);
output_A(0x2a);
#use standard_IO(A)
#use fast_IO(B)
set_tris_B(0x70);
output_B(0x8f);
#use standard_IO(B)
#use fast_IO(C)
set_tris_C(0x2);
output_C(0x84);
#use standard_IO(C)
}
 
void sleep_fce()
{
/*if (!input(CHARGE)) // pokud se nabiji, pak nespi
{
printf(lcd_putc,"\fcharged batt");
tik_to_sleep = 0;
while (!tik_to_sleep) if (input(CHARGE)) return;
kbd_getc();
sleep = false;
}
else */
{
//setup_timer_0(RTCC_DIV_1|RTCC_INTERNAL);
//setup_timer_1(T1_DISABLED);
//setup_timer_2(T2_DIV_BY_16,249,10);
counters=false;
printf(lcd_putc,"\fchrrr");
delay_ms(1000);
setup_adc_ports(ADC_OFF);
setup_ccp1(CCP_OFF);
//SET_TRIS_A(0xFF);
//SET_TRIS_B(0xFF);
//SET_TRIS_C(0xFF);
pin_set_sleep();
do {sleep();delay_cycles(1);} while ( kbd_state!=0x20 /*&& input(CHARGE)*/ );
#use fast_IO(B)
set_tris_B(0x70);
output_B(0);
#use standard_IO(B)
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_16);
set_adc_channel(0);
//setup_timer_0(RTCC_DIV_1|RTCC_EXT_L_TO_H);
//setup_timer_2(T2_DIV_BY_16,249,10);
//setup_ccp1(CCP_PWM);
menu_A=menu_B=0;
setup_ccp1(CCP_PWM);
set_PWM1_duty(pwm);
delay_ms(200);
output_low(LCD_ENABLE);
output_high(HV_ENABLE);
lcd_init();
//printf(lcd_putc,"\fhello");
delay_ms(1000);kbd_getc();
keyp=0;
sleep=false;
refresh=true;
}
}
 
 
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_16);
set_adc_channel(0);
setup_timer_0(RTCC_DIV_1|RTCC_EXT_L_TO_H);
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_8|T1_CLK_OUT);
setup_timer_2(T2_DIV_BY_16,249,10);
setup_ccp1(CCP_PWM);
set_PWM1_duty(0x5);
 
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_RB);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
 
output_low(LCD_ENABLE);
KBD_init();
LCD_init();
pwm=5;
sRTC=0;
mRTC=0;
hRTC=0;
dRTC=18;
mdRTC=10;
yRTC=07;
 
menu_A=menu_B=0;
refresh=true;
keyp=0;
 
 
while (TRUE)
{
if (refresh) display(keyp); //povoleni zobrazeni(menu + fce tlacitek)
if (counters) { tik_to_sleep = TIME_TO_SLEEP;counters_fce();} //povoleni citacu,vypoctu a logovani
else if (! tik_to_sleep) sleep = true; //necita a zadny stisk tlacitek do TIME_TO_SLEEP pak sleep
if (echo_switch) echo_fce();
if (kbd_press()) //test stisku tlacitek,repeat, delay
{
if (!save_key) {save_key=kbd_getc();keyp=save_key;refresh=true;key_timer=KEYDELAY;} //delay key
if (!key_timer) {refresh=true;keyp=save_key;key_timer=KEYREPEAT;} //repeat key
}
else key_timer=save_key=keyp=0;
//echo (piezo)
if (test_batt && counters) //test napeti baterie
{
if (read_adc() > BATT_ENABLE)
{
printf(lcd_putc,"\flow batt");
delay_ms(2000);
sleep = true;
}
test_batt=false;
}
if (sleep) sleep_fce(); //sleep
//if (!timertest) {timertest=30;output_bit(PIN_C3,test);test=~test;}
//timertest--;
}
 
}
/Designs/Data_loggers/GMCOUNT/SW/GMC01A.hex
0,0 → 1,768
:1000000018308A0000280000FF00030E8301A100C1
:100010000A08A0008A010408A2007708A300780853
:10002000A4007908A5007A08A6007B08A70083131E
:1000300083128C308400801C1F288C1842288C303E
:100040008400001C25280C183F288B1D29280B181C
:100050003C28220884002308F7002408F80025081B
:10006000F9002608FA002708FB0020088A00210E64
:100070008300FF0E7F0E09008A110A12F32A8A11EB
:100080000A12672B8A110A125F2A0A108A100A11B3
:10009000820728340C34013406340A108A100A11FD
:1000A00082070C3400340A108A100A1182070D34BA
:1000B0006434693466343D3425346C34753400342A
:1000C0000A108A100A1182074C3400340A108A1070
:1000D0000A118207203400340A108A100A1182079C
:1000E000423400340A108A100A1182076D346934D0
:1000F0006E343D3425344C34753400340A108A1083
:100100000A1182076D34613478343D3425346C34FF
:10011000753400340A108A100A118207613476346B
:1001200067343D3425346C34753400340A108A1039
:100130000A11820762346B3467343D3425346C34E1
:10014000753400340A108A100A1182076F346E3435
:10015000743469346D3465343D3425346C3475340D
:100160003A342534303432346434203400340A10C4
:100170008A100A11820731346D3469346E340034C8
:100180000A108A100A1182070D340A346534733458
:1001900063342034203420346334723420342034E7
:1001A0002034203472346F346C346C340D340034A9
:1001B0000A108A100A11DF3E03188A0A82000D34E1
:1001C000253464343A3425343034323464342034C1
:1001D0002034253464342E34253464342E342534CC
:1001E0003034323464340A346D3465346E347534EA
:1001F000203420346F346634663420342034733431
:10020000743461347234743400340A148A100A115C
:1002100082070C345334543441345234543420342F
:100220004834563420343434303430345634003486
:100230000A148A100A1182076C346F346734203430
:100240007E342034723473343234333432340034F4
:100250000A148A100A1182076C346F346734203410
:100260007E34203465346534703472346F346D34C8
:10027000203431346D3400340A148A100A11820794
:100280006C346F34673420347E3420346534653404
:10029000703472346F346D342034253475346D34D9
:1002A00000340A148A100A1182074F344634463447
:1002B000203428347334743461346E34643420341C
:1002C00062347934293400340A148A100A118207FE
:1002D0006534633468346F34203420346F346E34C2
:1002E00000340A148A100A118207653463346834B2
:1002F0006F34203420346F346634663400340A148A
:100300008A100A118207733465346E3464342034E1
:100310006C346F34673420347E3420347234733458
:1003200032343334323400340A148A100A1182070A
:100330006534723461347334653420346534653423
:10034000703472346F346D34203425343334753462
:1003500000340A148A100A118207533454344F347B
:10036000503420342634203463346C3465346134A2
:10037000723400340A148A100A118207623461341C
:100380007434743465347234693465342034003420
:100390000A148A100A11820763346F346E3474347D
:1003A00072346134733474343A3420342534643410
:1003B0000A3420342D342B3472346F346C346C3462
:1003C00000340A148A100A1182070D347434693417
:1003D0006D34653420342534323464343A34253471
:1003E0003034323464340A3468346F3464346D34F5
:1003F00069346E3472346F346C346C3400340A10E7
:100400008A140A1182070D346434613474346534FB
:1004100020342534323464342E34253430343234AC
:1004200064342E3425343034323464340A34643441
:10043000613479346D346F346E3472346F346C34AB
:100440006C3400340A108A140A1182070A340D34FD
:10045000253464343A34253430343234643420342E
:100460002534323464342F34253430343234643417
:100470002F342534303432346434203464346934D5
:1004800066343D3425346C34753400340A108A14D3
:100490000A1182070C346334683472347234723453
:1004A00000340A108A140A1182070C346C346F3439
:1004B0007734203462346134743474340034AB08DB
:1004C000031D6D2A0608FF3A7039AA00FF30AB0001
:1004D000AC08031D6D2A2A08AC002B0F702A712A64
:1004E000AB03AD08031D772AAE0803197B2A2D083C
:1004F0000319AE03AD03D508031DD5033619842AAD
:100500008101D301D401EF2ADD080319892A0230C1
:10051000DD000108C900D30A4A0849020319CC2AA0
:100520004A0849020318B22A4A08003C8316D1003F
:100530000130D2000030031C0130D202831249087E
:10054000831651078312CA00C10700300318013017
:10055000C207003003180130C30700300318013010
:10056000C407C22A4A084902CA00C107003003185A
:100570000130C207003003180130C30700300318F0
:100580000130C4074A08DE004908CA00580BCB2ACC
:10059000D9080319B614CD2ADE015308193C031DEE
:1005A000EF2AD301D40A580BD92A5908053C03195C
:1005B000B61454083C3C031DEF2AD4010130C50792
:1005C0000318C60A0319C70A0319C80A36144408CF
:1005D000D2004308D1004208D0004108CF008C105F
:1005E0008A110A1229280608FF3A70398316D100A9
:1005F00083122A08831651020319062B0130831235
:10060000AB00831651088312AA008316133083129D
:10061000E4000B108A110A1229288316530852028B
:100620000318152B5208F800182B53085202F80033
:1006300083120034B30A01303402F43E0318562BFF
:100640000C3E572B33081F3C03183A2B0130B300E4
:10065000B40A34080D3C031D3A2B0130B4003508B0
:10066000B50A8316D100D2006430D30083120D2363
:100670007808B500562B33081E3C0318422B013076
:10068000B300B40A562B33081D3C03184B2B013022
:10069000B300B40A562B33081D3C031D562B3508F6
:1006A00003390319562B0130B300B40A00340A147D
:1006B0008A140A118207222B432B222B3B2B222B3D
:1006C0003B2B222B222B3B2B222B3B2B222B103084
:1006D000B00730083B3C0318882BB10A300883165A
:1006E000D2003C30D30083120D237808B0003108CB
:1006F0003B3C03187D2BB20AB10131080F390F3C86
:10070000031936173208173C0318882BB2011A2335
:10071000B614E408031DE4030C108A110A122928F8
:100720008316811383120608AA00AA01FF30AB00CA
:10073000AC018A150A165028A73084000008031956
:10074000B02B0130F800F701F70BA42BF80BA32B0B
:100750004A30F700F70BAA2B00000000800BA12BFA
:10076000003483162D18B82B83128611BA2B8316EA
:100770008312861583168611AD18C22B83120611BB
:10078000C42B831683120615831606112D19CC2B44
:1007900083128610CE2B831683128614831686103E
:1007A000AD19D62B83120610D82B8316831206148C
:1007B0008316061083128617831686130000831291
:1007C000861383168613831200348316AB08031D29
:1007D000ED2B83128713EF2B831683128717A91330
:1007E000290883168700AC0E2C08AD008312B123B4
:1007F0008316AC0E2C08AD008312B1230D30F70028
:10080000F70B002C0034C8308316A70083129C23FA
:100810008713A9132908831687008312861383166A
:1008200086138312EA016A08023C031C232C02305F
:100830008316A70083129C2303308316AD00831216
:10084000B123EA0A132C0D30F700F70B252C0230E8
:100850008316AD008312B1230D30F700F70B2E2C59
:10086000EA016A08023C031C472C6A084520EB0099
:100870008316AB0183126B088316AC008312E52349
:1008800002308316A70083129C23EA0A312C00341D
:10089000013083162702A9002808023C031D522CB0
:1008A0004030A90729088038AA00AB012A08AC000B
:1008B0008312E5230034831626080C3A83120319A9
:1008C000682C063A0319742C073A03197C2C832CE4
:1008D0008316AB010130AC008312E523023083168E
:1008E000A70083129C23912C01308316A7000230AD
:1008F000A80083124824912C01308316A700A80079
:1009000083124824912C831626081F3C031C8A2C32
:100910000730A6050130AB002608AC008312E523A2
:10092000912C0034EE016E084D20003803199E2CE6
:10093000EE0A8316A60083125B24932C00348316E0
:100940002508F80124020318A82C2408F700B42C69
:10095000F7010830A600A40DF70D2508770203184B
:10096000F700F80DA60BAB2C831200342030701E5C
:100970003030F1006F08F700EF1FC52CF709F70AB8
:100980007708EF002D30F100F0176F088316A400F0
:100990006430A50083129F247708EF003030780779
:1009A000F2006F088316A4000A30A50083129F246A
:1009B00030307707F40030307807F3007108F70023
:1009C000F01DE42CF01F7011701AF12CF01F0C2D8B
:1009D00070190C2D7708F200F0180C2D7708F30031
:1009E0000C2D30307202031D0C2D7708F2002030E0
:1009F000F100F01DFF2C7011F014F01FF0103030DA
:100A00007302031D0C2D7708F3002030F200F01D57
:100A1000FF2CF010F01F7010701D132D710883163D
:100A2000A60083125B24F01C1A2D72088316A60000
:100A300083125B24701C212D73088316A600831279
:100A40005B2474088316A60083125B240034040818
:100A5000F600700EF038F200F207E23EF300323E8C
:100A6000F50070080F39F307F307F507E93EF400C6
:100A7000F407F4076F0E0F39F407F507F40DF50DC1
:100A8000F509F50D6F080F39F507F20D0730F10084
:100A90000A30F507F403031C492DF407F303031C84
:100AA0004D2DF307F203031C512DF207F103031C34
:100AB000552D713084000730760576138407753024
:100AC0000402031976170008F700031D6F2D761B2B
:100AD0006F2D761A7D2DF6196F2D2030722DF6159B
:100AE00076123030F707F0010408EF00770883161C
:100AF000A60083125B246F088400840A761F5F2D92
:100B00000034780870088316A4006430A5008312AE
:100B10009F247708F00078083030031D962DF11CD3
:100B20009F2DF1199F2D711A2030992DF1117112FD
:100B30007114F80778088316A60083125B247008E6
:100B40008316A4000A30A50083129F247708F000C2
:100B500078083030031DB22DF119B82D711CB82D55
:100B6000711A2030F80778088316A60083125B24D8
:100B70003030F00770088316A60083125B2400341F
:100B8000F701F801F901FA018316AE01AF01B001D6
:100B9000B1012D082C042B042A040319FF2D203049
:100BA000B2000310A60DA70DA80DA90DAE0DAF0D37
:100BB000B00DB10D2D083102031DE82D2C083002B7
:100BC000031DE82D2B082F02031DE82D2A082E02F5
:100BD000031CF92D2A08AE022B08031C2B0FAF02B1
:100BE0002C08031C2C0FB0022D08031C2D0FB10282
:100BF0000314F70DF80DF90DFA0DB20BD12D00000D
:100C0000AE3084008312003404088316A0003B3009
:100C1000A5009A30A400CA30A300A2010A30A100A6
:100C20007208A9007108A8007008A70083126F0855
:100C30008316A6002508AD002408AC002308AB00ED
:100C40002208AA008312C0250008EF00840A0008C9
:100C5000F000840A0008F100840A0008F200FD3068
:100C60008407F708031D4B2E83162108013A031D44
:100C70003B2E83124B2E200803194D2E0F392102D3
:100C80000319442E0318542EA01B542E201B4D2E46
:100C900020304E2E83128316A0013030F7077708DC
:100CA000A60083125B2483162508A9002408A80047
:100CB0002308A7002208A600AD01AC01AB010A3051
:100CC000AA008312C0257A088316A5007908A4001B
:100CD0007808A3007708A200A10B102E831200341D
:100CE0000B088316A70083128B1329132908831678
:100CF0008700831207130830F8000000000000008E
:100D0000F817932EF8138316A60C831203180717EF
:100D1000031C07137817932E7813F80B832E00000B
:100D20000000000007171C308400840B952E000083
:100D30000000F81B822E781B8C2E8316A71FA32E73
:100D400083128B178316831200342030741E3030C8
:100D50008316A0007308F700F31FB52EF709F70AF2
:100D60007708F3002D30A000F4177308A400643056
:100D7000A50083129F247708F3003030780783168C
:100D8000A1007308A4000A30A50083129F2430300C
:100D900077078316A30030307807A2002008F700F9
:100DA000F41DD42EF41F7411741AE12EF41FFC2EBE
:100DB0007419FC2E7708A100F418FC2E7708A20005
:100DC000FC2E30302102031DFC2E7708A1002030BC
:100DD000A000F41DEF2E7411F414F41FF410303041
:100DE0002202031DFC2E7708A2002030A100F41D72
:100DF000EF2EF410F41F7410741D032F2008A600AA
:100E0000831270268316F41C0A2F2108A600831271
:100E100070268316741C112F2208A60083127026D8
:100E200083162308A60083127026003478087208FF
:100E30008316A4006430A50083129F247708F20073
:100E400078083030031D2B2FF31C342FF319342F67
:100E5000731A20302E2FF31173127314F8077808C9
:100E60008316A6008312702672088316A4000A3027
:100E7000A50083129F247708F20078083030031D04
:100E8000472FF3194D2F731C4D2F731A2030F8077D
:100E900078088316A600831270263030F207720895
:100EA0008316A600831270268A110A16042B0408E2
:100EB0008316A500720EF038A100A107E23EA20041
:100EC000323EA40072080F39A207A207A407E93E28
:100ED000A300A307A307710E0F39A307A407A30D4F
:100EE000A40DA409A40D71080F39A407A10D0730A2
:100EF000A0000A30A407A303031C7A2FA307A203B0
:100F0000031C7E2FA207A103031C822FA107A003AD
:100F1000031C862FA0308400073025052513840785
:100F2000A4300402031925170008F700031DA02FA1
:100F3000251BA02F251AAE2FA519A02F2030A32FD7
:100F4000A51525123030F707F2010408F1007708E3
:100F5000A60083127026710884008316840A251F58
:100F6000902F831200348E30F7006E08F8006D0861
:100F7000F900FA01F808031DC72F7908F800F901F4
:100F80000830F702F808031DC72FF701CF2F031011
:100F9000F81BCE2FF90DF80DF703C72FF81300003B
:100FA0008A110A16DE2B83162608B63CA600FA0123
:100FB0002708AA00A7170310A70CA80CA90CFA0C65
:100FC000F90CF80CF70CA60BDB2FAA1FF22FF70970
:100FD000F809F909FA09F70A0319F80A0319F90ACD
:100FE0000319FA0A83128A150A12FE2C2C08EA0049
:0C0FF000EA08031DAC016A08F800003498
:101000006D08403A03190B28603A03191228303A48
:101010000319C228D5280230D800B6148A119224A8
:101020008A15182A361E16283612C1283616DB08ED
:101030000319C1285C08053C03182E2804305C0203
:10104000EF0003178D0083168C130C1483120C0809
:101050000313EE00EE1F2E280430DC025C08F93C7E
:10106000031834283612C128DA013208EE00EE17D0
:101070005C08DC0AEF0003178D0003136E080317EA
:101080008C0083168C130C15831203130B08F700C6
:101090008B138316031755308D00AA308D008C14E6
:1010A0008C1850280C117708831203138B04310815
:1010B000EE005B18EE175C08DC0AEF0003178D00EA
:1010C00003136E0803178C0083168C130C15831200
:1010D00003130B08F7008B138316031755308D008D
:1010E000AA308D008C148C1873280C117708831289
:1010F00003138B045C08DC0AEF0003178D00031355
:10110000330803178C0083168C130C1583120313FA
:101110000B08F7008B138316031755308D00AA3088
:101120008D008C148C1892280C11770883120313ED
:101130008B0407303502F700F70EF030F70577081B
:101140003404EE005C08DC0AEF0003178D00031383
:101150006E0803178C0083168C130C15831203136F
:101160000B08F7008B138316031755308D00AA3038
:101170008D008C148C18BA280C1177088312031375
:101180008B04D528D90AA8018B1BA8178B135908E3
:101190008316D2000630D3008A1183120D238A15DC
:1011A000A81B8B177808D900D528EE016E088A1184
:1011B00053208A15EE0AF7008316A6008A118312BF
:1011C0005B248A1505306E02031DD628103084007A
:1011D0004008F0003F08EF008A1127258A150330E8
:1011E000EF0020308316A6008A1183125B248A1533
:1011F000EF0BF1280B308316A7000130A8008A11ED
:10120000831248248A15361E1629EE016E088A11AB
:1012100060208A15003803191529EE0A8316A600E6
:101220008A1183125B248A1506292629EE016E088D
:101230008A1166208A15003803192629EE0A8316BA
:10124000A6008A1183125B248A15172939083A04EB
:1012500003193A29EE016E088A116C208A150038AC
:1012600003193A29EE0A8316A6008A1183125B2419
:101270008A152B290E308316A7000130A8008A1189
:10128000831248248A155C08FF3CF7000310770C92
:10129000EF00F0001330F1008A1181258A150A3021
:1012A0008316A6008A1183125B248A155908FA3E18
:1012B0000318182A063E1B2A6E308316A6008A11D0
:1012C00083125B248A153D308316A6008A1183128F
:1012D0005B248A15413084004408F2004308F10081
:1012E0004208F0004108EF008A1104268A15182AE6
:1012F000EE016E088A1172208A15EE0AF700831635
:10130000A6008A1183125B248A1504306E02031D25
:101310007929103084003C08F0003B08EF008A1166
:1013200027258A15182AEE016E088A117E208A1553
:10133000EE0AF7008316A6008A1183125B248A1531
:1013400004306E02031D9429103084003E08F00022
:101350003D08EF008A1127258A15182AEE016E082C
:101360008A118A208A15EE0AF7008316A6008A11D0
:1013700083125B248A1504306E02031DAF291030DE
:1013800084003808F0003708EF008A1127258A15F5
:10139000182AEE016E088A1196208A15EE0AF700C7
:1013A0008316A6008A1183125B248A1504306E020C
:1013B000031DCA29103084003A08F0003908EF00F4
:1013C0008A1127258A15182AEE016E088A11A22093
:1013D0008A15EE0AF7008316A6008A1183125B2491
:1013E0008A1507306E02031DE52941308400480844
:1013F000F2004708F1004608F0004508EF008A11A6
:1014000004268A153A308316A6008A1183125B24BB
:101410008A155408EF000130F0008A11B6248A15AD
:1014200020308316A6008A1183125B248A15182A9D
:101430008A110A16362E0A108A140A1182075C29AC
:1014400078299329AE29C929E4296D080319FD2AB1
:101450008316A4007108031D2F2A8312FD2AA402FB
:10146000031C392A7F30A407031C382A8312FD2A63
:10147000432A8130A40203183F2A8312FD2A031D48
:10148000432A8312FD2A2408F700F801F901FA0122
:10149000A30183126E088316A200A21783126F089D
:1014A0008316A1007008A0001930A4007408A002DF
:1014B00003186A2A0130A10203186A2AA20203183B
:1014C0006A2AA30203186A2AA30AA20AA10A7408B4
:1014D000A0079C2A7308A1020318852A0130A202E2
:1014E0000318852AA3020318852AA30AA20A7308EF
:1014F000A1077408A007031C9C2AA10A031D9C2AAB
:10150000A20A031D9C2AA30A9C2A72088038A20200
:1015100003189B2A0130A30203189B2AA30A72080E
:101520008038A2077308A107031C792AA20A031DA9
:10153000792AA30A792A7A14A40B9F2AAA2A0310CB
:10154000A00DA10DA20DA30D0310FA0DF90DF80DBC
:10155000A50D562A251CB22A0310F80CF90CFA0C1A
:10156000A50CB62AF70BB62A8312FD2AA51BDF2A83
:101570000310A00DA10DA20DA30D7408A002031865
:10158000CB2A0130A1020318CB2AA2020318CB2ACE
:10159000A302031CF02A7308A1020318D62A013003
:1015A000A2020318D62AA302031CF02A720880386C
:1015B000A2020318DF2A0130A302031CF02AFA0A50
:1015C000031DF02AF90A031DF02AF80A031DF02A68
:1015D000F70A031DED2A8312FD2AF80CF90CFA0C08
:1015E00083126E088316A4007208A406A41FFA2AA8
:1015F000F817022BF813022B8312F701F801F901F7
:10160000FA018316000083128A110A16F72B83163B
:1016100026080319782BAE002A080319782BAE0789
:101620000318192B7F30AE02031C782B0319782B7B
:101630001D2B8130AE070318782B2E08F700F80118
:10164000F901FA012708B200B2172808B1002908E9
:10165000B0001830AE00AF01301C462B2D08FA0741
:10166000031C382BF90A031D382BF80A0319AF178E
:101670002C08F907031C3F2BF80A0319AF172B0896
:10168000A800A8172808F8070318AF17AF0DF80C23
:10169000F90CFA0CB20CB10CB00C0310AE0B2B2BE6
:1016A0000130F7070318782BF81B5D2BB20DFA0DEC
:1016B000F90DF80DF7030319782BB21F6E2BFA0AF8
:1016C000031D6E2BF90A031D6E2BF80A031D6E2BEA
:1016D000F80CF90CFA0CF70A0319782B2708AF005D
:1016E0002B08AF06AF1F762BF8177C2BF8137C2B3B
:1016F000F701F801F901FA0100008312003480308B
:10170000831C852B8316A50683128316AA01AB01C1
:101710002108A9002508A90620080319702CA80093
:10172000F70024080319792CA8020319162C031CAE
:10173000D52B2508AE00AE172608AD002708AC0053
:10174000AB010310AE0CAD0CAC0CAB0CA80BA02B7A
:10175000A91FAD2B2A148D2C2A1028102A16A3306D
:101760008400A22C2A12A91BBF2B281CCA2BAE0C4A
:10177000AD0CAC0CAB0CF70A0319882CCA2BAE1BB2
:10178000CD2B0310AB0DAC0DAD0DAE0DF703031952
:10179000882CBF2B2A17352C2A132108A900A11F3A
:1017A000D32BAE17812CAE13812C2408A800F70090
:1017B0002008A8022108AE00AE172208AD002308B9
:1017C000AC00AB010310AE0CAD0CAC0CAB0CA80B19
:1017D000E12BA91FEE2BAA148D2CAA102810AA16F3
:1017E000A7308400A22CAA12A91B002C281C0B2CA9
:1017F000AE0CAD0CAC0CAB0CF70A0319882C0B2CFF
:10180000AE1B0E2C0310AB0DAC0DAD0DAE0DF703E2
:101810000319882C002CAA17352CAA132508A90017
:10182000A51F142CAE17812CAE13812C2508AE00F9
:10183000AE172608AD002708AC00A91F232CAE1355
:101840002A158D2C2A11AB012810A3308400A22C5C
:10185000A91B4B2C2108A900281C352CAE0CAD0C63
:10186000AC0CAB0CF70A0319882CAB1F462CAC0A46
:10187000031D462CAD0A031D462CAE0A031D462C43
:10188000AE0CAD0CAC0CF70A0319882C2A1BCC2B20
:10189000AA1B0D2C6A2C8030AE06AE1F532C8D2C4B
:1018A0002508A900602C2108A900AE08031D602CA2
:1018B000AD08031D602CAC08031D602CF701812CC2
:1018C000AE1B6A2C0310AB0DAC0DAD0DAE0DF70BBE
:1018D000602C882CA91F6E2CAE17812CAE13812C86
:1018E0002408F7002508AE002608AD002708AC0044
:1018F000812C2008F7002108AE002208AD00230843
:10190000AC002E08F8002D08F9002C08FA00C02CB5
:10191000F701F801F901FA01C02CAB01AC09AD09DE
:10192000AE09AB09AB0A031D9B2CAC0A031D9B2C13
:10193000AD0A0319AE0A2A18AC2BAA18ED2B2A19E6
:10194000222C502C0008AC07031CAC2CAD0A031D44
:10195000AC2CAE0A0319281484030008AD07031C3D
:10196000B42CAE0A0319281484030008801F803A9F
:10197000AE07031828142A1AB22BAA1AF32B282C04
:10198000000083128A110A16392C04088316A0005D
:101990007108A1000319ED2C7008A90083126F08CB
:1019A0008316A80083126E088316A70083126D08A1
:1019B0008316A600AD01AC012030AB008230AA0036
:1019C000831207237A08F0007908EF007808EE0008
:1019D0007708ED008316A10BCC2C7008A9008312A8
:1019E0006F088316A80083126E088316A70083125F
:1019F0006D088316A6008A118312D32F8A157A08E0
:101A0000F0007908EF007808EE007708ED00F01F8D
:101A1000182D8316A003A0168312ED09EE09EF0915
:101A2000F009ED0A0319EE0A0319EF0A0319F00A87
:101A30003B308316A5009A30A400CA30A300A2014F
:101A40000A30A10071080319A00A7008A9008312C6
:101A50006F088316A80083126E088316A7008312EE
:101A60006D088316A6002508AD002408AC002308E5
:101A7000AB002208AA008A118312C0258A1500082B
:101A8000ED00840A0008EE00840A0008EF00840AD2
:101A90000008F000FD308407F708031D662D710A69
:101AA00083162102031D562D8312662D200803196B
:101AB000692D0F39210203195F2D0318A92DA01BD1
:101AC000A92D201B692D2030A12D831220308316D3
:101AD000A005A01E7B2DA0127108031DA00377088E
:101AE000A0002D30A6008A1183125B248A1583166C
:101AF0002008F700A00171082102031D8D2D770831
:101B0000A0002E30A6008A1183125B248A1583164A
:101B10002008F7002030A00500303030A01EA12D95
:101B2000A0127108031DA0037708A0002D30A600A5
:101B30008A1183125B248A1583162008F700A001FE
:101B40003030F7077708A6008A1183125B248A15C4
:101B500083162508A9002408A8002308A700220846
:101B6000A600AD01AC01AB010A30AA008A118312B4
:101B7000C0258A157A088316A5007908A40078087C
:101B8000A3007708A200A10B252D83128A110A1643
:101B9000572C361C442F4B084F02BF005008C00082
:101BA0004C08031C4C0FC0025208CE005108CD0057
:101BB0005008CC004F08CB0052088316A9008312AE
:101BC00051088316A800831250088316A7008312B9
:101BD0004F088316A600831248088316AD008312AF
:101BE00047088316AC00831246088316AB008312A5
:101BF00045088316AA008A118312C0258A15780821
:101C0000B8007708B7003E084002031C112E031DE0
:101C10000D2E3F083D020318112E4008BE003F085C
:101C2000BD0040083C02031C1F2E031D1B2E3B0859
:101C30003F0203181F2E4008BC003F08BB004508A8
:101C4000053C031D482EC608031D482EC708031D6A
:101C5000482EC808031D482E52088316A900831277
:101C600051088316A800831250088316A700831218
:101C70004F088316A600AD01AC01AB010530AA00E8
:101C80008A118312C0258A157808BA007708B9002E
:101C90003610B614361E442F5B080319562E023A2E
:101CA0000319BF2E033A0319C22E322F0A308316AE
:101CB000A6008A11831270268A150D308316A6009D
:101CC0008A11831270268A153208F3001F30F4003F
:101CD0008A11A5268A153A308316A6008A11831226
:101CE00070268A153108F3000130F4008A11A52608
:101CF0008A1520308316A6008A11831270268A1551
:101D00003308F3001130F4008A11A5268A152F300C
:101D10008316A6008A11831270268A153408F300F0
:101D20000130F4008A11A5268A152F308316A600EB
:101D30008A11831270268A153508F3000130F400E9
:101D40008A11A5268A151730EB006B088A1122220A
:101D50008A15EB0AF7008316A6008A1183127026F3
:101D60008A151C306B02031DA52E1030840040081C
:101D7000F2003F08F1008A1157278A15322FDA083E
:101D8000031D322F3F30EA00EA0A6A0884008013FC
:101D90005C08DC0AEB006A0884000008EC006B08B1
:101DA00003178D0003136C0803178C0083168C1324
:101DB0000C15831203130B08F7008B1383160317FC
:101DC00055308D00AA308D008C148C18E52E0C1126
:101DD0007708831203138B045C08DC0AEB00EA0328
:101DE0006A0884000008EC006B0803178D000313D9
:101DF0006C0803178C0083168C130C1583120313C5
:101E00000B08F7008B138316031755308D00AA308B
:101E10008D008C148C180A2F0C1177088312031371
:101E20008B0403178D0103135C0803178C008316C2
:101E30008C130C15831203130B08F7008B138316F6
:101E4000031755308D00AA308D008C148C18262F66
:101E50000C117708831203138B045C08FD3C031CF0
:101E60003612322FDA0AA8018B1BA8178B135A08D7
:101E70008316D2001E30D3008A1183120D238A15D7
:101E8000A81B8B177808DA008A150A167428F8013F
:101E9000F901F701FA017108031D512F70080319A8
:101EA0006B2F1030F2000310EE0DEF0DF70DFA0D51
:101EB00071087A02031D5E2F70087702031C672FDA
:101EC0007008F702031CFA037108FA020314F80DF4
:101ED000F90DF20B532F00008A110A16962E2B0FC4
:101EE000722F762F0030F800792F792F2A08F8000A
:101EF000792F00341230EE02031C8C2F6E308400D8
:101F0000FC3080050310800C800C000803198C2F16
:0E1F10008A2F0000800B892F8A110A16CA2E14
:10200000EA08031906280A1292240A16D701B61004
:102010005808013C03183F286A08103C031D172884
:10202000D80A58080B3C031817280230D800580863
:102030000A3C03193F285808063C03193F28580852
:102040000B3C03193F286A08403C031D2F28361D0E
:102050002C280130D8002D28D801EA013F28ED01B5
:102060006D080A12C0200A16003803193F28ED0A2D
:102070008316A6000A1283125B240A163028580819
:10208000F43E0318362E0C3E392EFF30BC00BB0048
:10209000BA01B9013A08B8003908B7003808C000D9
:1020A0003708BF00C801C7014008C6003F08C50087
:1020B000C900CA00CE01CD01CC014A08CB004E08B0
:1020C000D2004D08D1004C08D0004B08CF00520878
:1020D000C4005108C3005008C2004F08C1004208A4
:1020E000BE004108BD00DD0136125D183616361AF5
:1020F0007B2836117C28361536198028B6118128A0
:10210000B615B619852836108628361436170130CC
:1021100003178D0083168C130C1483120C08031301
:10212000DB0003178D0183168C130C1483120C082B
:102130000313DC0083168511831285150D30831679
:10214000A6000A1283125B240A163208EF001F3021
:10215000F0000A12B6240A163A308316A6000A12B4
:1021600083125B240A163108EF000130F0000A12D6
:10217000B6240A1620308316A6000A1283125B24A6
:102180000A1620308316A6000A1283125B240A1650
:102190003308EF001F30F0000A12B6240A162E3062
:1021A0008316A6000A1283125B240A163408EF0075
:1021B0001F30F0000A12B6240A162E308316A6002D
:1021C0000A1283125B240A163508EF000130F00072
:1021D0000A12B6240A160330ED0020308316A6003A
:1021E0000A1283125B240A16ED0BED281430EE0060
:1021F0006E080A12D8200A16EE0AF7008316A60007
:102200000A1283125B240A1625306E02031DF82879
:102210006A08403A03191329603A03191629303A1B
:1022200003191B293F290230D8003F29D901590839
:10223000D800B6153F290130D800D9018316851181
:1022400083128511ED016D080A1205210A16003866
:1022500003193229ED0A8316A6000A1283125B24A1
:102260000A1623290830ED00FA308316A7000A1257
:1022700083129C230A16ED0B342936153F29EA08F0
:1022800003194629B6140A1292240A16362E6A0831
:10229000ED000A128A1500280A168A116A08203CE5
:1022A000031D8229DB0AA8018B1BA8178B135B086F
:1022B0008316D2000330D3000A1283120D230A16AC
:1022C000A81B8B177808DB00013003178D00031360
:1022D0005B0803178C0083168C130C1583120313F1
:1022E0000B08F7008B138316031755308D00AA30A7
:1022F0008D008C148C187A290C1177088312031323
:102300008B0436125B0803198C29013A03199D29A5
:10231000033A0319AE29D029ED016D080A121821DC
:102320000A16003803199C29ED0A8316A6000A1222
:1023300083125B240A168D29D029ED016D080A123B
:1023400028210A1600380319AD29ED0A8316A600C4
:102350000A1283125B240A169E29D0291E30EB0034
:10236000ED016D080A123C210A16ED0AF7008316EA
:10237000A6000A1283125B240A160D306D02031D9B
:10238000B1296B08F0001B30F1000A1281250A16F2
:102390006D308316A6000A1283125B240A16D02918
:1023A000362EED016D080A1251210A160038031964
:1023B000E129ED0A8316A6000A1283125B240A168D
:1023C000D2296A08203C031DED29D9015908D800FB
:1023D000B6158316851183128515362E6A08203CA2
:1023E000031DF929DD080319F729DD01F929013059
:1023F000DD00DD0803190D2AED016D080A126421C4
:102400000A16003803190C2AED0A8316A6000A12D0
:1024100083125B240A16FD291D2AED016D080A129C
:1024200071210A16003803191D2AED0A8316A60029
:102430000A1283125B240A160E2A362E6A08203CE2
:10244000031D462B0230ED005C086D020318462B7D
:102450006E30F000700884006D08ED0AF20003177A
:102460008D0083168C130C1483120C0880007008E6
:1024700084000008F100F11F1C2B700884008013F9
:10248000700884000008F1000D3083160313A600C5
:102490000A12831270260A160A308316A6000A1240
:1024A000831270260A167108F3001F30F4000A1216
:1024B000A5260A163A308316A6000A128312702641
:1024C0000A16700884006D08ED0AF20003178D00EB
:1024D00083168C130C1483120C088000700884007F
:1024E00000083F39F100F3000130F4000A12031331
:1024F000A5260A1620308316A6000A12831270261B
:102500000A16F00A700884006D08ED0AF20003173D
:102510008D0083168C130C1483120C088000700835
:1025200084000008F100F3001F30F4000A120313C6
:10253000A5260A162F308316A6000A1283127026CB
:102540000A16700884006D08ED0AF20003178D006A
:1025500083168C130C1483120C08800070088400FE
:1025600000080F39F200F3000130F4000A120313DF
:10257000A5260A162F308316A6000A12831270268B
:102580000A1670088400000EF7000F30F705770870
:10259000073EF4007008840074088000700884000E
:1025A0000008F100F3000130F4000A12A5260A1613
:1025B00020308316A6000A12831270260A16F00332
:1025C000700884000008F100F11FF72AF10171087A
:1025D0000A12B7200A1600380319F62AF10A8316E0
:1025E000A6000A12831270260A16E72A1A2B700810
:1025F00084001E308000700884000008F100F200A2
:102600001B30F3000A12162F0A166D308316A6002F
:102610000A12831270260A1669308316A6000A125F
:10262000831270260A166E308316A6000A128312D1
:1026300070260A16452B031703136E08EF00EE01F0
:10264000700884006D08ED0AF20003178D008316F0
:102650008C130C1483120C0880000D3083160313A6
:10266000A6000A12831270260A160A308316A600E4
:102670000A12831270260A16103084006F08F200C6
:102680006E08F1000A1257270A16242AED016D0878
:102690000A127F210A1600380319562BED0A8316F9
:1026A000A6000A1283125B240A16472B362E6A08EC
:1026B000203C031D772B36120230DC0003178D01FE
:1026C0008C0083168C130C15831203130B08F70070
:1026D0008B138316031755308D00AA308D008C1490
:1026E0008C18702B0C117708831203138B045C0871
:1026F000FF3CF7000310770CEE00EF016F080A12A1
:1027000094210A16EF0AF7008316A6000A12831214
:102710005B240A160D306F02031D7E2B6E08F0003D
:102720001330F1000A1281250A16362EED016D08CC
:102730000A12A9210A1600380319A62BED0A8316DE
:10274000A6000A1283125B240A16972B6A08203C03
:10275000031DAD2BD801D901B614362EED016D083D
:102760000A12BA210A1600380319BE2BED0A831685
:10277000A6000A1283125B240A16AF2B6A08203CBB
:102780000319C42B361D602C3619D12B83168511E5
:10279000831285111E308316A7000A1283129C2310
:1027A0000A161F151F19D22B1E08FA0083161E08C1
:1027B0008312ED001E08EE000A12B32F0A167A08E3
:1027C000E8007908E7007808E6007708E500F001FE
:1027D000EF01EE018930ED006808F4006708F300AE
:1027E0006608F2006508F1000A128A15252A0A1601
:1027F0008A117708ED007808EE007908EF007A0872
:10280000F0008316A90083126F088316A8008312B4
:102810006E088316A70083126D088316A600AD010B
:10282000AC014030AB007F30AA000A128A15831237
:1028300007230A168A117708F1007808F200790850
:10284000F3007A08F400831074088316A300730859
:10285000A2007208A1007108A000EC30A70051305E
:10286000A6003830A5007C30A4000A128A15831215
:102870007F2B0A168A117A08E8007908E7007808A1
:10288000E6007708E5003619482C83168515831273
:10289000893084006808F0006708EF006608EE00E1
:1028A0006508ED000230F1000A128A15C52C0A16DF
:1028B0008A1156308316A6000A1283125B240A1668
:1028C000362E6A08203C031D6A2CE30A63080A3C82
:1028D000031CE3036A08403C031D732CE3036308F5
:1028E000013C0318E30A63089500ED016D080A1224
:1028F000C8210A16ED0AF7008316A6000A128312F1
:102900005B240A160A306D02031D762C6308EF0063
:102910001F30F0000A12B6240A160A308316A600E9
:102920000A1283125B240A1620308316A6000A12AC
:1029300083125B240A162D308316A6000A12831216
:102940005B240A160530EE0020308316A6000A121A
:1029500083125B240A16EE0BA42C2B308316A600E0
:102960000A1283125B240A160430EF00203083160B
:10297000A6000A1283125B240A16EF0BB62C103045
:10298000F00070080A12C8210A16F00AF700831630
:10299000A6000A1283125B240A1614307002031D6B
:1029A000C12C362E6A08203C031DEB2C8F018E01B2
:1029B000B001B10AA8018B1BA8178B13310883162D
:1029C000D2003C30D3000A1283120D230A16A81B32
:1029D0008B177808B1006A08403C031D012DB20A2C
:1029E000A8018B1BA8178B1332088316D20018304E
:1029F000D3000A1283120D230A16A81B8B1778081E
:102A0000B200ED016D080A12E1210A16ED0AF70085
:102A10008316A6000A1283125B240A1606306D0282
:102A2000031D022D3208EF001130F0000A12B62407
:102A30000A163A308316A6000A1283125B240A167D
:102A40003108EF000130F0000A12B6240A160E30E9
:102A5000EE006E080A12E1210A16EE0AF70083164C
:102A6000A6000A1283125B240A1612306E02031D9E
:102A7000292D0330EF0020308316A6000A1283129E
:102A80005B240A16EF0B3B2D6D308316A6000A124D
:102A900083125B240A1669308316A6000A12831279
:102AA0005B240A166E308316A6000A1283125B247A
:102AB0000A160330F00020308316A6000A12831293
:102AC0005B240A16F00B5B2D1530F10071080A1219
:102AD000E1210A16F10AF7008316A6000A128312F2
:102AE0005B240A1619307102031D662D362E6A0802
:102AF000403C031D8C2D3408EB003508EC00A80188
:102B00008B1BA8178B130A121A230A16A81B8B17E4
:102B10006B08B4003508EC006A08203C031DA12DA9
:102B20003308EB003508EC002030B300A8018B1B04
:102B3000A8178B130A121A230A16A81B8B1735081D
:102B4000EC006A08303C031DB22D3408EB00B50AD6
:102B5000B303A8018B1BA8178B130A121A230A169A
:102B6000A81B8B17ED016D080A12FF210A16ED0A4A
:102B7000F7008316A6000A1283125B240A16063099
:102B80006D02031DB32D3308EF001130F0000A125F
:102B9000B6240A162E308316A6000A1283125B246E
:102BA0000A163408EF000130F0000A12B6240A16A3
:102BB0002E308316A6000A1283125B240A163508EB
:102BC000EF000130F0000A12B6240A161330EE00AE
:102BD0006E080A12FF210A16EE0AF7008316A600F5
:102BE0000A1283125B240A1617306E02031DE82DA9
:102BF0000330EF0020308316A6000A1283125B24F4
:102C00000A16EF0BFA2D6D308316A6000A128312F6
:102C10005B240A166F308316A6000A1283125B2407
:102C20000A166E308316A6000A1283125B240A1657
:102C30000330F00020308316A6000A1283125B24B2
:102C40000A16F00B1A2E1A30F10071080A12FF2131
:102C50000A16F10AF7008316A6000A1283125B24F3
:102C60000A161E307102031D252E362E8A150A16ED
:102C70006D280A108A140A15820745284729962BC1
:102C80004E291E2A572B612CAE2BEE29D129D22C8E
:102C9000772DDE08031D361DD72E5E0B6C2EEA0144
:102CA0006A08013C031C6A2E291229088316870032
:102CB000831207163530F700F70B5C2E291229080E
:102CC00083168700831207123530F700F70B662E44
:102CD000EA0A502EDE01D42E0130DD005E08EB0042
:102CE0005E08273C031C832E28308316A400831221
:102CF0006B088316A5000A1283129F240A1678080F
:102D0000EA00ED01EC015E08273C03189C2E5E08EA
:102D10003B3C031C9C2EEA019C30EF004030EE004F
:102D2000F1016B08F0000A128A15472F0A168A1162
:102D30007908ED007808EC005E083B3C0318A42EEF
:102D4000EA01ED01A030EC00DE080319D42E5D0B82
:102D5000D42E0A128A156F270A168A11F808031D45
:102D6000D42EE001DF01291229088316870083127F
:102D700007163530F700F70BBB2E291229088316EA
:102D80008700831207122030B6066C08EE000A1284
:102D90008A157A2F0A168A116A088316A7000A1262
:102DA00083129C230A16A42EDF0A0319E00A8A154F
:042DB0000A167E2859
:1030000084011F3083052913290883168700831242
:10301000071783161F149F141F159F1107309C005C
:10302000FF308312A90083161F109F141F159F15D0
:103030001F1783121F179F1383169F1783121F14C6
:103040000030F8001F08C73978049F008316010874
:10305000C73928388100BF30831290004830F8000B
:1030600006389200F930831692008312291129083C
:1030700083168700831207110C30970005309500E6
:1030800083168C1483128B1583160C14C030831294
:103090008B0483168510831285100A128A11902BD7
:1030A0000A168A150A128A1103240A168A1505308F
:1030B000E300B001B101B2011230B3000A30B40034
:1030C0000730B500D9015908D800B614D701B61C8D
:1030D0006E285708EA008A1100288A15361D7628BE
:1030E0001330E4000A12C92D0A167928E4080319DE
:1030F000B615DD0803197F288A11492E8A150A1290
:103100006F270A16F80803199C28D608031D932870
:103110000A128A11F6270A168A157808D600D700EF
:10312000B6141E30D500D508031D9B28B6145608CA
:10313000D7000630D500A028D7015708D600D50003
:10314000361FDC28361DDC281F151F19A5281E0870
:10315000FA0083161E088312EA007A08EB00013C8D
:103160000318DB28FF3A031DB9286A080D3C031831
:10317000DB28EA016A080A128A1151220A168A1506
:1031800000380319CD28EA0A8316A6000A128A110C
:1031900083125B240A168A15BA280830EA00FA302E
:1031A0008316A7000A128A1183129C230A168A1515
:1031B000EA0BCF28B6153613B61D75293611EA016C
:1031C0006A080A128A1146220A168A15003803195B
:1031D000F328EA0A8316A6000A128A1183125B24D6
:1031E0000A168A15E0280430EA00FA308316A70090
:1031F0000A128A1183129C230A168A15EA0BF528F3
:1032000083161F109F101F119F1183122915290863
:103210008316870083129701970115308316850066
:103220002A30831285007030831686008F30831217
:103230008600023083168700843083128700630083
:1032400000002A08203C031D1F29703083168600C9
:103250008312860183161F109F141F159F151F17B9
:1032600083121F179F1383169F1783121F1400309A
:10327000F8001F08C73978049F00D9015908D80001
:103280002911290883168700831207110C30970033
:1032900063089500C8308316A7000A128A118312AA
:1032A0009C230A168A1583168510831285108316AF
:1032B0008511831285150A128A1103240A168A15AC
:1032C0000430EA00FA308316A7000A128A1183122A
:1032D0009C230A168A15EA0B62290A128A11F6271C
:0E32E0000A168A15D701B611B61467286300C6
:02400E00393F38
:00000001FF
;PIC16F876A
/Designs/Data_loggers/GMCOUNT/SW
Property changes:
Added: svn:ignore
+*.err
/Designs/Data_loggers/GMCOUNT/SCH/GMC01A.DSN
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GMCOUNT/SCH/GMC01A.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GMCOUNT/SCH/GMC01A_POWER.DSN
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GMCOUNT/SCH/GMC01A_POWER.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/BOARD.PHO
0,0 → 1,86
*
*
G04 PADS Layout (Build Number 2007.42.1) generated Gerber (RS-274-X) file*
G04 PC Version=2.1*
*
%IN "GMC01A.pcb"*%
*
%MOIN*%
*
%FSLAX35Y35*%
*
*
*
*
G04 PC Standard Apertures*
*
*
G04 Thermal Relief Aperture macro.*
%AMTER*
1,1,$1,0,0*
1,0,$1-$2,0,0*
21,0,$3,$4,0,0,45*
21,0,$3,$4,0,0,135*
%
*
*
G04 Annular Aperture macro.*
%AMANN*
1,1,$1,0,0*
1,0,$2,0,0*
%
*
*
G04 Odd Aperture macro.*
%AMODD*
1,1,$1,0,0*
1,0,$1-0.005,0,0*
%
*
*
G04 PC Custom Aperture Macros*
*
*
*
*
*
*
G04 PC Aperture Table*
*
%ADD025C,0.01*%
*
*
*
*
G04 PC Copper Outlines (0)*
G04 Layer Name GMC01A.pcb - dark (0)*
%LPD*%
*
*
G04 PC Area=Custom_Thermal*
*
G04 PC Custom Flashes*
G04 Layer Name GMC01A.pcb - flashes*
%LPD*%
*
*
G04 PC Circuitry*
G04 Layer Name GMC01A.pcb - circuitry*
%LPD*%
*
G54D25*
G01X108400Y330550D02*
X145800D01*
Y377750*
X614200*
Y330550*
X651600*
Y149450*
X614200*
Y102250*
X145800*
Y149450*
X108400*
Y330550*
X0Y0D02*
M02*
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/BOARD_POWER.PHO
0,0 → 1,86
*
*
G04 PADS Layout (Build Number 2007.42.1) generated Gerber (RS-274-X) file*
G04 PC Version=2.1*
*
%IN "GMC01A-POWER.pcb"*%
*
%MOIN*%
*
%FSLAX35Y35*%
*
*
*
*
G04 PC Standard Apertures*
*
*
G04 Thermal Relief Aperture macro.*
%AMTER*
1,1,$1,0,0*
1,0,$1-$2,0,0*
21,0,$3,$4,0,0,45*
21,0,$3,$4,0,0,135*
%
*
*
G04 Annular Aperture macro.*
%AMANN*
1,1,$1,0,0*
1,0,$2,0,0*
%
*
*
G04 Odd Aperture macro.*
%AMODD*
1,1,$1,0,0*
1,0,$1-0.005,0,0*
%
*
*
G04 PC Custom Aperture Macros*
*
*
*
*
*
*
G04 PC Aperture Table*
*
%ADD025C,0.01*%
*
*
*
*
G04 PC Copper Outlines (0)*
G04 Layer Name GMC01A-POWER.pcb - dark (0)*
%LPD*%
*
*
G04 PC Area=Custom_Thermal*
*
G04 PC Custom Flashes*
G04 Layer Name GMC01A-POWER.pcb - flashes*
%LPD*%
*
*
G04 PC Circuitry*
G04 Layer Name GMC01A-POWER.pcb - circuitry*
%LPD*%
*
G54D25*
G01X108400Y330550D02*
X145800D01*
Y377750*
X614200*
Y330550*
X651600*
Y149450*
X614200*
Y102250*
X145800*
Y149450*
X108400*
Y330550*
X0Y0D02*
M02*
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/DRILL.DRL
0,0 → 1,107
%
T1C.02F197S55
X036025Y035866
X044654Y035866
T2C.025F197S55
X05993Y017972
X06073Y017972
X06073Y018972
X05993Y018972
T3C.028F197S55
X039775Y035526
X040904Y035526
X040904Y036206
X039775Y036206
T4C.035F197S55
X020686Y035985
X023686Y035985
X021686Y035985
X025686Y035985
X024686Y035985
X029169Y035985
X030169Y035985
X031169Y035985
X030334Y034678
X031334Y034678
X031334Y031678
X030334Y031678
X033334Y031678
X032334Y031678
X036334Y031678
X035334Y031678
X034334Y031678
X034334Y034678
X035334Y034678
X036334Y034678
X032334Y034678
X033334Y034678
X035169Y035985
X033169Y035985
X034169Y035985
X032169Y035985
X037334Y034678
X038334Y034678
X039334Y034678
X040334Y034678
X041334Y034678
X037334Y031678
X038334Y031678
X041334Y031678
X040334Y031678
X039334Y031678
X045716Y031649
X044636Y031649
X043334Y031678
X042334Y031678
X043334Y034678
X042334Y034678
X05857Y029186
X05857Y028186
X063266Y027131
X063266Y028168
X06157Y028186
X06157Y029186
X063266Y029204
T5C.037F197S55
X028384Y030998
X026726Y031672
X024683Y031672
X026712Y032603
X026712Y034494
X023688Y035247
X029169Y035247
X029369Y033851
X02938Y031675
X0515Y01625
X041Y030998
X0515Y03175
X057792Y031743
X05825Y01625
T6C.04F139S55
X0254Y03025
X0264Y03025
X0274Y03025
X0284Y03025
X0294Y03025
X0304Y03025
X0354Y03025
X0364Y03025
X0374Y03025
X0384Y03025
X05273Y0179
X05276Y0179
T7C.09F066S55
X06183Y016072
X06183Y020872
T8C.102F069S658
X02325Y0179
X02325Y0301
X05275Y0179
T9C.102F069S658
X05275Y0301
T10C.12598F035S794
X016349Y013173
X016349Y034827
X059651Y034827
X059651Y013173
M30
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/DRILL_POWER.DRL
0,0 → 1,70
%
T1C.001F0S0
X04875Y011477
X05075Y011477
T2C.035F197S55
X018253Y011606
X018253Y022426
X020622Y023691
X02617Y036282
X024179Y036245
X028201Y034994
X024179Y032745
X025078Y025094
X025133Y023691
X024122Y023691
X027037Y022232
X027037Y018732
X027037Y017446
X027037Y013946
X028704Y015714
X028704Y021314
X029935Y023558
X028633Y023691
X029935Y024558
X028578Y025094
X029935Y025558
X029935Y026558
X030169Y033864
X029169Y033864
X02967Y036282
X030618Y036282
X034118Y036282
X032994Y03503
X031701Y034994
X031169Y033864
X033169Y033864
X032169Y033864
X034169Y033864
X035169Y033864
X032935Y026558
X032935Y025558
X032935Y024558
X032935Y023558
X034304Y021314
X035541Y017863
X034304Y015714
X041169Y011481
X037106Y011484
X041169Y012861
X037106Y012864
X036494Y03503
X045111Y012861
X045111Y011481
X056704Y023072
T3C.037F197S55
X029654Y027934
X029648Y031689
X032331Y032983
X033173Y032253
X032336Y029016
X033177Y027388
T4C.04F139S55
X015509Y017863
X013509Y017863
T5C.12598F035S794
X016349Y013173
X016349Y034827
X059651Y034827
X059651Y013173
M30
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/V1.PHO
0,0 → 1,3243
*
*
G04 PADS Layout (Build Number 2007.42.1) generated Gerber (RS-274-X) file*
G04 PC Version=2.1*
*
%IN "GMC01A.pcb"*%
*
%MOIN*%
*
%FSLAX35Y35*%
*
*
*
*
G04 PC Standard Apertures*
*
*
G04 Thermal Relief Aperture macro.*
%AMTER*
1,1,$1,0,0*
1,0,$1-$2,0,0*
21,0,$3,$4,0,0,45*
21,0,$3,$4,0,0,135*
%
*
*
G04 Annular Aperture macro.*
%AMANN*
1,1,$1,0,0*
1,0,$2,0,0*
%
*
*
G04 Odd Aperture macro.*
%AMODD*
1,1,$1,0,0*
1,0,$1-0.005,0,0*
%
*
*
G04 PC Custom Aperture Macros*
*
*
*
*
*
*
G04 PC Aperture Table*
*
%ADD010R,0.039X0.039*%
%ADD011C,0.06*%
%ADD012R,0.07X0.07*%
%ADD013C,0.23622*%
%ADD017C,0.02*%
%ADD019C,0.03*%
%ADD020C,0.012*%
%ADD022C,0.055*%
%ADD025C,0.01*%
%ADD031C,0.07*%
%ADD035C,0.065*%
%ADD040R,0.06X0.06*%
%ADD042C,0.045*%
%ADD043R,0.055X0.055*%
%ADD044R,0.04X0.04*%
%ADD045R,0.065X0.065*%
%ADD046C,0.14*%
%ADD047C,0.177*%
%ADD048C,0.018*%
%ADD049C,0.035*%
*
*
*
*
G04 PC Copper Outlines (0)*
G04 Layer Name GMC01A.pcb - dark (0)*
%LPD*%
*
*
G04 PC Area=ANP000033*
G75*
G36*
G01*
X648600Y233045D02*
X648454Y233399D01*
X648100Y233545D01*
X634401D01*
X634047Y233692D01*
X599850Y267889D01*
X599703Y268243D01*
Y332215D01*
X599996Y332508D01*
X610700D01*
X611054Y332654D01*
X611200Y333008D01*
Y342519D01*
X611003Y342917D01*
X610568Y343001D01*
X610237Y342707D01*
X609741Y341483D01*
X608331Y339250D01*
X606549Y337301D01*
X604450Y335698D01*
X602101Y334491D01*
X599575Y333720D01*
X596953Y333407D01*
X594316Y333563D01*
X591749Y334183D01*
X589332Y335247D01*
X587142Y336723D01*
X585247Y338562D01*
X583707Y340708D01*
X582571Y343092D01*
X581875Y345639D01*
X581640Y348270D01*
X581875Y350901D01*
X582571Y353448D01*
X583707Y355832D01*
X585247Y357978D01*
X587142Y359817D01*
X589332Y361293D01*
X591749Y362357D01*
X594316Y362977D01*
X596953Y363133D01*
X599575Y362820D01*
X602101Y362049D01*
X604450Y360842D01*
X606549Y359239D01*
X608331Y357290D01*
X609741Y355057D01*
X610237Y353833D01*
X610568Y353539D01*
X611003Y353623D01*
X611200Y354021D01*
Y374250D01*
X611054Y374604D01*
X610700Y374750D01*
X304368D01*
X304014Y374604D01*
X303868Y374250D01*
X304014Y373896D01*
X311938Y365972D01*
X312246Y365828D01*
X313032Y365755D01*
X314514Y365208D01*
X315804Y364295D01*
X316308Y363687D01*
X316693Y363507D01*
X317077Y363687D01*
X317561Y364269D01*
X318786Y365156D01*
X320192Y365712D01*
X321693Y365901D01*
X323193Y365712D01*
X324600Y365156D01*
X325825Y364269D01*
X326308Y363687D01*
X326693Y363507D01*
X327077Y363687D01*
X327561Y364269D01*
X328786Y365156D01*
X330192Y365712D01*
X331693Y365901D01*
X333193Y365712D01*
X334600Y365156D01*
X335825Y364269D01*
X336308Y363687D01*
X336693Y363507D01*
X337077Y363687D01*
X337592Y364307D01*
X338910Y365230D01*
X340426Y365773D01*
X342031Y365898D01*
X343612Y365595D01*
X345057Y364887D01*
X346265Y363822D01*
X347149Y362477D01*
X347647Y360946D01*
X347725Y359338D01*
X347550Y358553D01*
X347685Y358091D01*
X352850Y352925D01*
X353214Y352779D01*
X353891Y352793D01*
X355216Y352519D01*
X356447Y351956D01*
X357522Y351134D01*
X357954Y350614D01*
X358339Y350433D01*
X358723Y350614D01*
X359242Y351238D01*
X360573Y352166D01*
X362104Y352707D01*
X363723Y352822D01*
X365314Y352503D01*
X366764Y351773D01*
X367967Y350683D01*
X368838Y349313D01*
X369313Y347761D01*
X369359Y346139D01*
X368973Y344563D01*
X368577Y343854D01*
X368522Y343519D01*
X368694Y343226D01*
X369013Y343110D01*
X377664D01*
X377983Y343226D01*
X378155Y343519D01*
X378100Y343854D01*
X377770Y344446D01*
X377389Y345748D01*
X377309Y347103D01*
X377421Y347771D01*
X377428Y347854D01*
X377315Y348171D01*
X377026Y348344D01*
X376516Y348446D01*
X375623Y348982D01*
X374963Y349786D01*
X374613Y350766D01*
Y355760D01*
X374494Y356083D01*
X374194Y356253D01*
X373668Y356340D01*
X372740Y356865D01*
X372050Y357678D01*
X371682Y358680D01*
Y365410D01*
X372139Y366512D01*
X372983Y367356D01*
X374085Y367813D01*
X379002D01*
X379811Y367582D01*
X380168Y367360D01*
X380432Y367284D01*
X380696Y367360D01*
X381053Y367582D01*
X381862Y367813D01*
X386719D01*
X387727Y367440D01*
X388543Y366740D01*
X388804Y366270D01*
X388988Y366082D01*
X389241Y366013D01*
X394112D01*
X394428Y366126D01*
X395033Y366620D01*
X396477Y367213D01*
X398031Y367360D01*
X399560Y367049D01*
X400934Y366306D01*
X402031Y365196D01*
X402758Y363814D01*
X402905Y363048D01*
X403174Y362694D01*
X403618D01*
X403887Y363048D01*
X404028Y363783D01*
X404710Y365117D01*
X405739Y366207D01*
X407030Y366966D01*
X408483Y367333D01*
X409232Y367306D01*
X409477Y367361D01*
X409665Y367528D01*
X409940Y367940D01*
X410726Y368542D01*
X411664Y368861D01*
X416480D01*
X417288Y368630D01*
X417645Y368407D01*
X417909Y368332D01*
X418174Y368407D01*
X418530Y368630D01*
X419339Y368861D01*
X424256D01*
X425359Y368404D01*
X426203Y367560D01*
X426659Y366457D01*
Y360261D01*
X426497Y359206D01*
X426659Y358151D01*
Y356833D01*
X426783Y356504D01*
X427092Y356337D01*
X427434Y356415D01*
X427923Y356737D01*
X429046Y357073D01*
X441082D01*
X442100Y356800D01*
X443012Y356274D01*
X447806Y351480D01*
X448159Y351333D01*
X449081D01*
X449331Y351400D01*
X449514Y351583D01*
X449778Y352042D01*
X450589Y352722D01*
X451583Y353083D01*
X457498D01*
X457851Y353230D01*
X457998Y353583D01*
X457851Y353937D01*
X457351Y354437D01*
X456998Y354583D01*
X451515D01*
X450412Y355040D01*
X449568Y355884D01*
X449112Y356987D01*
Y363680D01*
X449568Y364783D01*
X450412Y365627D01*
X451515Y366083D01*
X462708D01*
X463811Y365627D01*
X464655Y364783D01*
X465112Y363680D01*
Y358783D01*
X465258Y358430D01*
X465612Y358283D01*
X468867D01*
X469295Y358252D01*
X469694Y358369D01*
X469867Y358747D01*
Y359880D01*
X470323Y360983D01*
X471167Y361827D01*
X472270Y362283D01*
X476397D01*
X476750Y362430D01*
X476897Y362783D01*
Y363680D01*
X477353Y364783D01*
X478197Y365627D01*
X479300Y366083D01*
X490493D01*
X491596Y365627D01*
X492440Y364783D01*
X492897Y363680D01*
Y356987D01*
X492440Y355884D01*
X491596Y355040D01*
X490493Y354583D01*
X480155D01*
X479868Y354493D01*
X479685Y354255D01*
X479489Y353826D01*
X479435Y353491D01*
X479607Y353199D01*
X479926Y353083D01*
X490493D01*
X491596Y352627D01*
X492440Y351783D01*
X492897Y350680D01*
Y343987D01*
X492440Y342884D01*
X491596Y342040D01*
X490493Y341583D01*
X479375D01*
X478393Y341936D01*
X477587Y342599D01*
X477320Y343047D01*
X477138Y343225D01*
X476891Y343291D01*
X476456D01*
X475664Y343452D01*
X475293Y343610D01*
X475002Y343641D01*
X474744Y343503D01*
X470649Y339409D01*
X470502Y339055D01*
X470649Y338701D01*
X471002Y338555D01*
X529317D01*
X547195D01*
X548213Y338282D01*
X549125Y337756D01*
X553370Y333511D01*
X553896Y332599D01*
X554169Y331582D01*
Y148629D01*
X553893Y147607D01*
X553362Y146692D01*
X518287Y111892D01*
X518139Y111539D01*
X518285Y111184D01*
X518639Y111037D01*
X530766D01*
X531120Y111184D01*
X557902Y137966D01*
X558048Y138319D01*
Y155522D01*
X558355Y156666D01*
X558947Y157692D01*
X571486Y170231D01*
X571632Y170584D01*
Y175360D01*
X572089Y176462D01*
X572933Y177306D01*
X574035Y177763D01*
X584095D01*
X584449Y177909D01*
X584595Y178263D01*
Y178763D01*
X584449Y179117D01*
X584095Y179263D01*
X574035D01*
X572933Y179720D01*
X572089Y180564D01*
X571632Y181666D01*
Y188360D01*
X572089Y189462D01*
X572933Y190306D01*
X574035Y190763D01*
X583909D01*
X584263Y190909D01*
X584409Y191263D01*
X584345Y191928D01*
Y196424D01*
X584802Y197527D01*
X585646Y198371D01*
X586749Y198828D01*
X593484D01*
X594495Y198453D01*
X594903Y198101D01*
X595334Y197991D01*
X595682Y198267D01*
X596473Y199392D01*
X598378Y201297D01*
X598524Y201650D01*
Y206451D01*
X598351Y206829D01*
X597953Y206946D01*
X597443Y206910D01*
X572797D01*
X571881Y207155D01*
X571060Y207629D01*
X570096Y208594D01*
X569742Y208740D01*
X566923D01*
X566569Y208594D01*
X566423Y208240D01*
Y200743D01*
X565967Y199954D01*
X565178Y199499D01*
X561222D01*
X560433Y199954D01*
X559977Y200743D01*
Y208241D01*
X559839Y208586D01*
X559501Y208741D01*
X559301Y208750D01*
X559025Y209040D01*
Y229230D01*
X558874Y229588D01*
X558299Y230147D01*
X558121Y230259D01*
X557541Y230469D01*
X556561Y231218D01*
X555853Y232228D01*
X555481Y233404D01*
Y255612D01*
X555754Y256629D01*
X556281Y257541D01*
X571316Y272576D01*
X572509Y273162D01*
X573168Y273246D01*
X573511Y273451D01*
X573764Y273759D01*
X573900Y274101D01*
Y294530D01*
X573900D01*
X573915Y313093D01*
X573775Y313439D01*
X573264Y313971D01*
X572542Y315259D01*
X572169Y316688D01*
Y318253D01*
X572635Y319839D01*
X573529Y321230D01*
X574778Y322313D01*
X576282Y323000D01*
X577919Y323235D01*
X579555Y323000D01*
X581060Y322313D01*
X582309Y321230D01*
X583203Y319839D01*
X583669Y318253D01*
Y316686D01*
X583294Y315255D01*
X582569Y313965D01*
X582055Y313432D01*
X581915Y313085D01*
X581900Y294526D01*
Y288348D01*
X582062Y287980D01*
X582443Y287850D01*
X582703Y287862D01*
X589300D01*
X590403Y287405D01*
X591247Y286561D01*
X591703Y285458D01*
Y278258D01*
X591236Y277145D01*
X590375Y276299D01*
X589814Y276075D01*
X589586Y275891D01*
X589500Y275611D01*
Y274101D01*
X589635Y273759D01*
X590028Y273341D01*
X590450Y272276D01*
Y266604D01*
X590417Y266161D01*
X590533Y265761D01*
X590911Y265587D01*
X594944D01*
X596046Y265131D01*
X596890Y264287D01*
X597347Y263184D01*
Y260924D01*
X597573Y260506D01*
X598047Y260466D01*
X598597Y260705D01*
X599788Y260841D01*
X600968Y260622D01*
X602031Y260066D01*
X606347Y255803D01*
X606699Y255658D01*
X608241D01*
X608534Y255365D01*
Y253851D01*
X608683Y253495D01*
X631571Y230886D01*
X632106Y229969D01*
X632383Y228944D01*
Y186885D01*
X632110Y185867D01*
X631584Y184955D01*
X615512Y168884D01*
X614600Y168357D01*
X613583Y168085D01*
X595093D01*
X594750Y167949D01*
X594333Y167557D01*
X593268Y167135D01*
X587595D01*
X587085Y167178D01*
X586662Y167054D01*
X586247Y166672D01*
X585196Y166263D01*
X580453D01*
X580100Y166117D01*
X567195Y153212D01*
X567048Y152858D01*
Y135656D01*
X566742Y134511D01*
X566149Y133485D01*
X538768Y106104D01*
X538621Y105750D01*
X538768Y105396D01*
X539121Y105250D01*
X610700D01*
X611054Y105396D01*
X611200Y105750D01*
Y125979D01*
X611003Y126377D01*
X610568Y126461D01*
X610237Y126167D01*
X609741Y124943D01*
X608331Y122710D01*
X606549Y120761D01*
X604450Y119158D01*
X602101Y117951D01*
X599575Y117180D01*
X596953Y116867D01*
X594316Y117023D01*
X591749Y117643D01*
X589332Y118707D01*
X587142Y120183D01*
X585247Y122022D01*
X583707Y124168D01*
X582571Y126552D01*
X581875Y129099D01*
X581640Y131730D01*
X581875Y134361D01*
X582571Y136908D01*
X583707Y139292D01*
X585247Y141438D01*
X587142Y143277D01*
X589332Y144753D01*
X591749Y145817D01*
X594316Y146437D01*
X596953Y146593D01*
X599575Y146280D01*
X602101Y145509D01*
X604450Y144302D01*
X606549Y142699D01*
X608331Y140750D01*
X609741Y138517D01*
X610237Y137293D01*
X610568Y136999D01*
X611003Y137083D01*
X611200Y137481D01*
Y150047D01*
X611657Y151149D01*
X612501Y151993D01*
X613603Y152450D01*
X648100D01*
X648454Y152596D01*
X648600Y152950D01*
Y233045D01*
G37*
G74*
*
*
G04 PC Copper Outlines (1)*
G04 Layer Name GMC01A.pcb - dark (1)*
%LPD*%
*
*
G04 PC Area=ANP000029*
G75*
G36*
G01*
X300379Y111593D02*
X300354Y112039D01*
Y116078D01*
X300276Y116345D01*
X300068Y116529D01*
X299553Y116774D01*
X298773Y117607D01*
X298354Y118669D01*
Y125240D01*
X298472Y126140D01*
X298325Y126493D01*
X297972Y126640D01*
X291740D01*
X290685Y126982D01*
X289788Y127634D01*
X289136Y128531D01*
X288794Y129585D01*
Y149375D01*
X289007Y150219D01*
X289214Y150602D01*
X289274Y150840D01*
X289214Y151077D01*
X289007Y151460D01*
X288794Y152305D01*
Y154894D01*
X289136Y155949D01*
X289788Y156846D01*
X290685Y157497D01*
X291740Y157840D01*
X297972D01*
X298325Y157986D01*
X298472Y158340D01*
X298354Y159240D01*
Y165691D01*
X298620Y166555D01*
X298874Y166928D01*
X298961Y167209D01*
X298814Y167563D01*
X298461Y167709D01*
X246475D01*
X246092Y167531D01*
X245140Y166396D01*
X242892Y164469D01*
X240359Y162936D01*
X237609Y161836D01*
X234717Y161200D01*
X231760Y161045D01*
X228817Y161375D01*
X225968Y162182D01*
X223289Y163442D01*
X220851Y165124D01*
X218721Y167181D01*
X216956Y169558D01*
X215602Y172192D01*
X214697Y175011D01*
X214264Y177941D01*
X214316Y180901D01*
X214851Y183814D01*
X215854Y186600D01*
X217298Y189185D01*
X219146Y191499D01*
X220246Y192490D01*
X220411Y192861D01*
Y286298D01*
X220237Y286678D01*
X219074Y287673D01*
X217100Y290010D01*
X215528Y292635D01*
X214400Y295479D01*
X213744Y298468D01*
X213578Y301523D01*
X213905Y304565D01*
X214719Y307514D01*
X215997Y310294D01*
X217705Y312832D01*
X219800Y315062D01*
X222227Y316925D01*
X224922Y318373D01*
X227815Y319368D01*
X230831Y319885D01*
X232361Y319897D01*
X232712Y320045D01*
X232857Y320397D01*
Y348157D01*
X232718Y348502D01*
X232430Y348828D01*
X232043Y349011D01*
X231160D01*
X230818Y348875D01*
X230400Y348483D01*
X229335Y348061D01*
X223066D01*
X221963Y348518D01*
X221119Y349362D01*
X220663Y350464D01*
Y355381D01*
X220894Y356190D01*
X221116Y356547D01*
X221192Y356811D01*
X221116Y357075D01*
X220894Y357432D01*
X220663Y358240D01*
Y361292D01*
X220516Y361645D01*
X220163Y361792D01*
X213196D01*
X212842Y361645D01*
X212696Y361292D01*
X212857Y359854D01*
Y359002D01*
X212383Y357366D01*
X211472Y355927D01*
X210197Y354797D01*
X208659Y354067D01*
X206977Y353795D01*
X205287Y354000D01*
X203720Y354668D01*
X202401Y355746D01*
X201434Y357148D01*
X200895Y358764D01*
X200828Y360466D01*
X201236Y362119D01*
X202088Y363594D01*
X202703Y364183D01*
X202857Y364544D01*
Y366332D01*
X202886Y366820D01*
X202765Y367212D01*
X202390Y367381D01*
X201170D01*
X200817Y367234D01*
X198496Y364913D01*
X198349Y364560D01*
Y176639D01*
X198496Y176286D01*
X263686Y111184D01*
X264039Y111037D01*
X299882D01*
X300255Y111204D01*
X300379Y111593D01*
G37*
G74*
*
*
G04 PC Copper Outlines (2)*
G04 Layer Name GMC01A.pcb - dark (2)*
%LPD*%
*
*
G04 PC Area=ANP000019*
G75*
G36*
G01*
X398255Y321331D02*
X388422D01*
X388068Y321184D01*
X387922Y320831D01*
X388031Y320519D01*
X388452Y319991D01*
X389038Y318773D01*
X389339Y317455D01*
Y316780D01*
X389274Y315868D01*
X389381Y315559D01*
X391499Y312861D01*
X391892Y312670D01*
X397933D01*
X398263Y312794D01*
X398429Y313104D01*
X398349Y313447D01*
X397926Y314080D01*
X397424Y315517D01*
X397296Y317034D01*
X397551Y318535D01*
X398172Y319924D01*
X398646Y320519D01*
X398754Y320868D01*
X398595Y321197D01*
X398255Y321331D01*
G37*
G74*
*
*
G04 PC Copper Outlines (3)*
G04 Layer Name GMC01A.pcb - dark (3)*
%LPD*%
*
*
G04 PC Area=ANP000016*
G75*
G36*
G01*
X378185Y116925D02*
X377843Y117208D01*
X377351Y117946D01*
X377094Y118796D01*
Y125240D01*
X377212Y126140D01*
X377065Y126493D01*
X376712Y126640D01*
X370440D01*
X369385Y126982D01*
X368488Y127634D01*
X367836Y128531D01*
X367494Y129585D01*
Y149375D01*
X367707Y150219D01*
X367914Y150602D01*
X367974Y150840D01*
X367914Y151077D01*
X367707Y151460D01*
X367494Y152305D01*
Y154894D01*
X367836Y155949D01*
X368488Y156846D01*
X369385Y157497D01*
X370440Y157840D01*
X376712D01*
X377065Y157986D01*
X377212Y158340D01*
X377094Y159240D01*
Y165691D01*
X377360Y166555D01*
X377614Y166928D01*
X377701Y167209D01*
X377554Y167563D01*
X377201Y167709D01*
X310247D01*
X309917Y167584D01*
X309751Y167272D01*
X309834Y166928D01*
X310088Y166555D01*
X310354Y165691D01*
Y159240D01*
X310236Y158340D01*
X310383Y157986D01*
X310736Y157840D01*
X317048D01*
X318103Y157497D01*
X319000Y156846D01*
X319651Y155949D01*
X319994Y154894D01*
Y152305D01*
X319781Y151460D01*
X319574Y151077D01*
X319514Y150840D01*
X319574Y150602D01*
X319781Y150219D01*
X319994Y149375D01*
Y129585D01*
X319651Y128531D01*
X319000Y127634D01*
X318103Y126982D01*
X317048Y126640D01*
X310736D01*
X310383Y126493D01*
X310236Y126140D01*
X310354Y125240D01*
Y118796D01*
X310097Y117946D01*
X309605Y117208D01*
X309262Y116925D01*
X309081Y116539D01*
X309227Y116186D01*
X309581Y116039D01*
X377867D01*
X378232Y116197D01*
X378366Y116571D01*
X378185Y116925D01*
G37*
G74*
*
*
G04 PC Copper Outlines (4)*
G04 Layer Name GMC01A.pcb - dark (4)*
%LPD*%
*
*
G04 PC Area=ANP000013*
G75*
G36*
G01*
X456441Y167209D02*
X456294Y167563D01*
X455941Y167709D01*
X388987D01*
X388657Y167584D01*
X388491Y167272D01*
X388574Y166928D01*
X388828Y166555D01*
X389094Y165691D01*
Y159240D01*
X388976Y158340D01*
X389123Y157986D01*
X389476Y157840D01*
X395748D01*
X396803Y157497D01*
X397700Y156846D01*
X398351Y155949D01*
X398694Y154894D01*
Y152305D01*
X398481Y151460D01*
X398274Y151077D01*
X398214Y150840D01*
X398274Y150602D01*
X398481Y150219D01*
X398694Y149375D01*
Y129585D01*
X398351Y128531D01*
X397700Y127634D01*
X396803Y126982D01*
X395748Y126640D01*
X389476D01*
X389123Y126493D01*
X388976Y126140D01*
X389094Y125240D01*
Y120666D01*
X389240Y120312D01*
X389594Y120166D01*
X455334D01*
X455687Y120312D01*
X455834Y120666D01*
Y125240D01*
X455952Y126140D01*
X455805Y126493D01*
X455452Y126640D01*
X449140D01*
X448085Y126982D01*
X447188Y127634D01*
X446536Y128531D01*
X446194Y129585D01*
Y149375D01*
X446407Y150219D01*
X446614Y150602D01*
X446674Y150840D01*
X446614Y151077D01*
X446407Y151460D01*
X446194Y152305D01*
Y154894D01*
X446536Y155949D01*
X447188Y156846D01*
X448085Y157497D01*
X449140Y157840D01*
X455452D01*
X455805Y157986D01*
X455952Y158340D01*
X455834Y159240D01*
Y165691D01*
X456100Y166555D01*
X456354Y166928D01*
X456441Y167209D01*
G37*
G74*
*
*
G04 PC Copper Outlines (5)*
G04 Layer Name GMC01A.pcb - dark (5)*
%LPD*%
*
*
G04 PC Area=ANP000008*
G75*
G36*
G01*
X539291Y164859D02*
X539157Y165199D01*
X538827Y165357D01*
X538477Y165248D01*
X537401Y164379D01*
X535009Y162994D01*
X532431Y161992D01*
X529731Y161398D01*
X526971Y161226D01*
X524218Y161480D01*
X521536Y162153D01*
X518990Y163230D01*
X516639Y164685D01*
X514539Y166484D01*
X513640Y167534D01*
X513260Y167709D01*
X467727D01*
X467397Y167584D01*
X467231Y167272D01*
X467314Y166928D01*
X467568Y166555D01*
X467834Y165691D01*
Y159240D01*
X467716Y158340D01*
X467863Y157986D01*
X468216Y157840D01*
X474448D01*
X475503Y157497D01*
X476400Y156846D01*
X477051Y155949D01*
X477394Y154894D01*
Y152305D01*
X477181Y151460D01*
X476974Y151077D01*
X476914Y150840D01*
X476974Y150602D01*
X477181Y150219D01*
X477394Y149375D01*
Y129540D01*
X476994Y128408D01*
X476240Y127474D01*
X475728Y127159D01*
X475554Y126977D01*
X475490Y126733D01*
X475637Y126380D01*
X475990Y126233D01*
X506494Y126219D01*
X506847Y126365D01*
X539144Y158581D01*
X539291Y158935D01*
Y164859D01*
G37*
G74*
*
*
G04 PC Copper Outlines (6)*
G04 Layer Name GMC01A.pcb - dark (6)*
%LPD*%
*
*
G04 PC Area=ANP000003*
G75*
G36*
G01*
X578566Y256837D02*
X578491Y257102D01*
X578268Y257458D01*
X578037Y258267D01*
Y262587D01*
X578070Y263030D01*
X577954Y263430D01*
X577576Y263604D01*
X575576D01*
X574852Y263787D01*
X574523Y263965D01*
X574213Y264019D01*
X573932Y263878D01*
X566565Y256512D01*
X566419Y256158D01*
X566565Y255805D01*
X566919Y255658D01*
X577739D01*
X578027Y255750D01*
X578210Y255991D01*
X578491Y256573D01*
X578566Y256837D01*
G37*
G74*
*
*
G04 PC Copper Outlines (7)*
G04 Layer Name GMC01A.pcb - dark (7)*
%LPD*%
*
*
G04 PC Area=ANP000000*
G75*
G36*
G01*
X624383Y226533D02*
X624234Y226889D01*
X609386Y241556D01*
X609032Y241700D01*
X608680Y241553D01*
X608534Y241200D01*
Y239042D01*
X608681Y238688D01*
X610502Y236867D01*
X611028Y235955D01*
X611301Y234938D01*
Y194747D01*
X611468Y194374D01*
X612116Y193795D01*
X613046Y192326D01*
X613540Y190658D01*
X613561Y188920D01*
X613106Y187241D01*
X612210Y185751D01*
X610941Y184561D01*
X609396Y183764D01*
X607692Y183418D01*
X605958Y183550D01*
X605142Y183851D01*
X604738Y183825D01*
X604486Y183509D01*
X604549Y183110D01*
X605000Y182413D01*
X605506Y180832D01*
X605582Y179173D01*
X605223Y177552D01*
X604838Y176817D01*
X604791Y176484D01*
X604965Y176197D01*
X605281Y176085D01*
X611192D01*
X611546Y176231D01*
X624236Y188922D01*
X624383Y189275D01*
Y226533D01*
G37*
G74*
*
*
G04 PC Copper Outlines (8)*
G04 Layer Name GMC01A.pcb - dark (8)*
%LPD*%
*
*
G04 PC Area=CFC0*
G75*
G36*
G01*
X395194Y154340D02*
X370994D01*
Y152740D01*
X395194D01*
Y154340D01*
G37*
G74*
*
*
G04 PC Copper Outlines (9)*
G04 Layer Name GMC01A.pcb - dark (9)*
%LPD*%
*
*
G04 PC Area=CFC1*
G75*
G36*
G01*
X395194Y131740D02*
X370994D01*
Y130140D01*
X395194D01*
Y131740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (10)*
G04 Layer Name GMC01A.pcb - dark (10)*
%LPD*%
*
*
G04 PC Area=CFC2*
G75*
G36*
G01*
X383994Y148940D02*
X382094D01*
Y125240D01*
X383994D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (11)*
G04 Layer Name GMC01A.pcb - dark (11)*
%LPD*%
*
*
G04 PC Area=CFC3*
G75*
G36*
G01*
X389694Y153740D02*
X387694D01*
Y135540D01*
X389694D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (12)*
G04 Layer Name GMC01A.pcb - dark (12)*
%LPD*%
*
*
G04 PC Area=CFC4*
G75*
G36*
G01*
X395194Y148940D02*
X393294D01*
Y130740D01*
X395194D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (13)*
G04 Layer Name GMC01A.pcb - dark (13)*
%LPD*%
*
*
G04 PC Area=CFC5*
G75*
G36*
G01*
X378494Y153740D02*
X376494D01*
Y135540D01*
X378494D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (14)*
G04 Layer Name GMC01A.pcb - dark (14)*
%LPD*%
*
*
G04 PC Area=CFC6*
G75*
G36*
G01*
X372894Y148940D02*
X370994D01*
Y130740D01*
X372894D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (15)*
G04 Layer Name GMC01A.pcb - dark (15)*
%LPD*%
*
*
G04 PC Area=CFC7*
G75*
G36*
G01*
X294194Y148940D02*
X292294D01*
Y130740D01*
X294194D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (16)*
G04 Layer Name GMC01A.pcb - dark (16)*
%LPD*%
*
*
G04 PC Area=CFC8*
G75*
G36*
G01*
X299794Y153740D02*
X297794D01*
Y135540D01*
X299794D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (17)*
G04 Layer Name GMC01A.pcb - dark (17)*
%LPD*%
*
*
G04 PC Area=CFC9*
G75*
G36*
G01*
X316494Y148940D02*
X314594D01*
Y130740D01*
X316494D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (18)*
G04 Layer Name GMC01A.pcb - dark (18)*
%LPD*%
*
*
G04 PC Area=CFC10*
G75*
G36*
G01*
X310994Y153740D02*
X308994D01*
Y135540D01*
X310994D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (19)*
G04 Layer Name GMC01A.pcb - dark (19)*
%LPD*%
*
*
G04 PC Area=CFC11*
G75*
G36*
G01*
X305394Y148940D02*
X303394D01*
Y125240D01*
X305394D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (20)*
G04 Layer Name GMC01A.pcb - dark (20)*
%LPD*%
*
*
G04 PC Area=CFC12*
G75*
G36*
G01*
X316494Y131740D02*
X292294D01*
Y130140D01*
X316494D01*
Y131740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (21)*
G04 Layer Name GMC01A.pcb - dark (21)*
%LPD*%
*
*
G04 PC Area=CFC13*
G75*
G36*
G01*
X316494Y154340D02*
X292294D01*
Y152740D01*
X316494D01*
Y154340D01*
G37*
G74*
*
*
G04 PC Copper Outlines (22)*
G04 Layer Name GMC01A.pcb - dark (22)*
%LPD*%
*
*
G04 PC Area=CFC14*
G75*
G36*
G01*
X451594Y148940D02*
X449694D01*
Y130740D01*
X451594D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (23)*
G04 Layer Name GMC01A.pcb - dark (23)*
%LPD*%
*
*
G04 PC Area=CFC15*
G75*
G36*
G01*
X457194Y153740D02*
X455194D01*
Y135540D01*
X457194D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (24)*
G04 Layer Name GMC01A.pcb - dark (24)*
%LPD*%
*
*
G04 PC Area=CFC16*
G75*
G36*
G01*
X473894Y148940D02*
X471994D01*
Y130740D01*
X473894D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (25)*
G04 Layer Name GMC01A.pcb - dark (25)*
%LPD*%
*
*
G04 PC Area=CFC17*
G75*
G36*
G01*
X468394Y153740D02*
X466394D01*
Y135540D01*
X468394D01*
Y153740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (26)*
G04 Layer Name GMC01A.pcb - dark (26)*
%LPD*%
*
*
G04 PC Area=CFC18*
G75*
G36*
G01*
X462794Y148940D02*
X460794D01*
Y125240D01*
X462794D01*
Y148940D01*
G37*
G74*
*
*
G04 PC Copper Outlines (27)*
G04 Layer Name GMC01A.pcb - dark (27)*
%LPD*%
*
*
G04 PC Area=CFC19*
G75*
G36*
G01*
X473894Y131740D02*
X449694D01*
Y130140D01*
X473894D01*
Y131740D01*
G37*
G74*
*
*
G04 PC Copper Outlines (28)*
G04 Layer Name GMC01A.pcb - dark (28)*
%LPD*%
*
*
G04 PC Area=CFC20*
G75*
G36*
G01*
X473894Y154340D02*
X449694D01*
Y152740D01*
X473894D01*
Y154340D01*
G37*
G74*
*
*
G04 PC Copper Outlines (29)*
G04 Layer Name GMC01A.pcb - dark (29)*
%LPD*%
*
*
G04 PC Area=CFC21*
G75*
G36*
G01*
X384094Y159240D02*
X382094D01*
Y154840D01*
X384094D01*
Y159240D01*
G37*
G74*
*
*
G04 PC Copper Outlines (30)*
G04 Layer Name GMC01A.pcb - dark (30)*
%LPD*%
*
*
G04 PC Area=CFC22*
G75*
G36*
G01*
X305394Y159540D02*
X303394D01*
Y154740D01*
X305394D01*
Y159540D01*
G37*
G74*
*
*
G04 PC Copper Outlines (31)*
G04 Layer Name GMC01A.pcb - dark (31)*
%LPD*%
*
*
G04 PC Area=CFC23*
G75*
G36*
G01*
X462794Y159240D02*
X460794D01*
Y154540D01*
X462794D01*
Y159240D01*
G37*
G74*
*
*
G04 PC Copper Outlines (32)*
G04 Layer Name GMC01A.pcb - dark (32)*
%LPD*%
*
*
G04 PC Area=Custom_Thermal*
*
G04 PC Custom Flashes*
G04 Layer Name GMC01A.pcb - flashes*
%LPD*%
*
*
G04 PC Circuitry*
G04 Layer Name GMC01A.pcb - circuitry*
%LPD*%
*
G54D10*
G01X376632Y361163D02*
Y362863D01*
X384232Y361163D02*
Y362863D01*
X379563Y353236D02*
Y354936D01*
X387163Y353236D02*
Y354936D01*
X421709Y363911D02*
Y362211D01*
X414109Y363911D02*
Y362211D01*
X421709Y356201D02*
Y354501D01*
X414109Y356201D02*
Y354501D01*
X589295Y193878D02*
X590995D01*
X589295Y186278D02*
X590995D01*
X590697Y260637D02*
X592397D01*
X590697Y253037D02*
X592397D01*
X582987Y260637D02*
X584687D01*
X582987Y253037D02*
X584687D01*
X589545Y179685D02*
X590745D01*
X589545Y172085D02*
X590745D01*
X225613Y360611D02*
X226813D01*
X225613Y353011D02*
X226813D01*
X585500Y269754D02*
Y268554D01*
X577900Y269754D02*
Y268554D01*
X623762Y273560D02*
X622562D01*
X623762Y281160D02*
X622562D01*
X392031Y304913D02*
Y306613D01*
X399631Y304913D02*
Y306613D01*
G54D11*
X246857Y359854D03*
X236857D03*
X216857D03*
X206857D03*
X585703Y291862D03*
X615703D03*
Y281862D03*
X301693Y359854D03*
X311693D03*
X321693D03*
X331693D03*
X341693D03*
X351693D03*
X313339Y346780D03*
X323339D03*
X333339D03*
X343339D03*
X353339D03*
X363339D03*
X373339D03*
X383339D03*
X393339D03*
X403339D03*
X413339D03*
X423339D03*
X433339D03*
Y316780D03*
X423339D03*
X413339D03*
X403339D03*
X393339D03*
X383339D03*
X373339D03*
X363339D03*
X353339D03*
X343339D03*
X333339D03*
X323339D03*
X313339D03*
X303339D03*
G54D12*
X254000Y302500D03*
G54D13*
X163490Y348270D03*
Y131730D03*
X596510Y348270D03*
Y131730D03*
G54D17*
X304354Y122240D02*
Y112039D01*
X512755*
X550169Y149159*
Y331055*
X383094Y122240D02*
Y116166D01*
X509729*
X546593Y153343*
X461834Y122240D02*
X508354Y122218D01*
X543291Y157068*
X304354Y162240D02*
X383094D01*
X461834*
X462094Y162500*
X515000*
X582500D02*
X616517D01*
X618301Y160716*
X590145Y172085D02*
X613056D01*
X628383Y187411*
X579632Y172013D02*
X579704Y172085D01*
X590145*
X618301Y160716D02*
X631964Y174379D01*
Y230564*
X590145Y179685D02*
X590177Y179716D01*
X599301*
X590145Y179685D02*
Y186278D01*
X579632Y185013D02*
Y190378D01*
X583132Y193878*
X590145*
X579632Y185013D02*
X581281D01*
X607301Y179716D02*
X618301Y190716D01*
Y208716*
X599301Y189716D02*
Y196563D01*
X602524Y199786*
Y232484*
X559481Y234020D02*
Y255085D01*
X573674Y269278*
X577775*
X577900Y269154*
X571171Y253343D02*
X578355Y260527D01*
X583727*
X583837Y260637*
X602920Y238792D02*
X607301Y234411D01*
Y189716*
X577900Y269154D02*
Y294527D01*
X577919Y317426*
X585500Y269154D02*
Y281658D01*
X585703Y281862*
X583837Y260637D02*
X591547D01*
X591553Y260643*
X591547Y260637D02*
X601891D01*
X631964Y230564*
X599646Y256799D02*
X628383Y228413D01*
Y187411*
X623162Y273560D02*
X625409Y271313D01*
X632664*
X585703Y291862D02*
X591553Y286012D01*
Y260643*
X615703Y281862D02*
X632481D01*
X632664Y281679*
X615703Y291862D02*
X632481D01*
X632664Y292045*
X623162Y281160D02*
Y281430D01*
X623594Y281862*
X632481*
X632664Y281679*
X254000Y302500D02*
Y334912D01*
X257500Y338412*
X294473*
X264000Y302500D02*
X264061Y293859D01*
X283840Y309979D02*
X284000Y309819D01*
Y302500*
X246828Y316718D02*
X246857D01*
Y359854*
X260192Y330506D02*
Y313607D01*
X263692Y310107*
X266393*
X274000Y302500*
X260192Y330506D02*
X263709Y333001D01*
X318909*
X325017Y339110*
X464694*
X474867Y349283*
X267263Y316716D02*
X274161Y323666D01*
X299839*
X303339Y320199*
Y316780*
X267121Y326028D02*
X268049Y328607D01*
X304190*
X313339Y316780*
X293803Y316747D02*
X294000Y315747D01*
Y302500*
X303339Y316780D02*
Y303161D01*
X304000Y302500*
X313339Y316780D02*
X331292Y334555D01*
X529317*
X546669*
X550169Y331055*
X323339Y316780D02*
X337069Y330153D01*
X526531*
X543361Y330186*
X546593Y326686*
Y153343*
X333339Y316780D02*
X341746Y325331D01*
X539791*
X543291Y321831*
Y157068*
X343339Y316780D02*
Y313161D01*
X354000Y302500*
X353339Y316780D02*
Y313161D01*
X364000Y302500*
X363339Y316780D02*
Y313161D01*
X374000Y302500*
X373339Y316780D02*
Y313161D01*
X384000Y302500*
X383339Y316780D02*
X391363Y306554D01*
X393339Y316780D02*
X399631Y310487D01*
Y305763*
X403339Y316780D02*
X410000Y310118D01*
Y309979*
X413339Y316780D02*
X426152Y303967D01*
X464006*
X477539Y317500*
X515000*
X423339Y316780D02*
X430538Y309581D01*
X457160*
Y316491*
X433339Y316780D02*
X446074D01*
X446363Y316491*
X553671Y323606D02*
Y204631D01*
X572420Y185882*
X578763*
X579632Y185013*
X553671Y323606D02*
Y324238D01*
X553754Y324931*
X582203Y324886*
X585703Y321386*
Y291862*
X202055Y337278D02*
Y176726D01*
X216740Y162041*
X304155*
X304354Y162240*
X202055Y337278D02*
X216857Y352079D01*
Y359854*
X236857Y352972D02*
Y318047D01*
X245662Y309241*
Y297359*
X249162Y293859*
X264061*
X236857Y352972D02*
Y318047D01*
X245662Y309241*
Y297359*
X249162Y293859*
X388531*
X392031Y297359*
Y305763*
X236876Y352475D02*
X237329D01*
X226213Y353011D02*
X236818D01*
X236857Y352972*
Y359854*
X294473Y338412D02*
X317463D01*
X323339Y346780*
X293692Y338510D02*
Y338939D01*
X294473Y338412*
X291693Y352475D02*
Y359854D01*
X373339Y346780D02*
Y362155D01*
X376490*
X376632Y362013*
X393339Y346780D02*
Y350849D01*
X397749Y355260*
X383339Y346780D02*
Y361120D01*
X384232Y362013*
X387163Y354086D02*
X393339Y347911D01*
Y346780*
X409043Y355260D02*
X414018D01*
X414109Y355351*
X413339Y346780D02*
Y354580D01*
X414109Y355351*
X403339Y346780D02*
Y356355D01*
X409043Y362060*
X423339Y346780D02*
X429632Y353073D01*
X440556*
X446295Y347333*
X457112*
X474867Y349283D02*
X476859Y347291D01*
X484854*
X484897Y347333*
X206857Y359854D02*
Y366332D01*
X226242*
X206857Y359854D02*
Y365792D01*
X273941*
X277441Y362292*
Y348791*
X280941Y345291*
X301854*
X303339Y346780*
X226213Y360611D02*
Y366303D01*
X226242Y366332*
X236857Y352972D02*
Y359854D01*
Y352972*
X237329Y352475*
X256857Y359854D02*
Y355201D01*
X267121Y344937*
X301693Y359854D02*
Y358425D01*
X313339Y346780*
X331693Y359854D02*
X343339Y348208D01*
Y346780*
X321693Y359854D02*
Y358425D01*
X333339Y346780*
X351693Y359854D02*
X353995Y362155D01*
X360249*
X341693Y359854D02*
Y358425D01*
X353339Y346780*
X360249Y362155D02*
X376490D01*
X376632Y362013*
X360249Y362155D02*
Y358660D01*
X373339Y362155D02*
Y354086D01*
X379563*
X373339Y362155D02*
X376490D01*
X376632Y362013*
Y364788*
X380132Y368288*
X481397*
X484897Y364788*
Y360333*
X384232Y362013D02*
X397702D01*
X397749Y362060*
X421709Y355351D02*
Y363061D01*
Y368288*
X446543*
X481397*
X484897Y364788*
Y360333*
X446543Y368288D02*
Y358660D01*
X457112Y360333D02*
X464162Y353283D01*
X466867*
X474867Y357283D02*
X477665Y360082D01*
X484645*
X484897Y360333*
X550171*
X553671Y356833*
Y323606*
G54D19*
X193849Y366631D02*
Y174566D01*
X261970Y106537*
X532838*
X562548Y136248*
Y154929*
X579632Y172013*
X193849Y366631D02*
X199099Y371881D01*
X299666*
X311693Y359854*
G54D20*
X559481Y234020D02*
X567581Y226135D01*
X571621*
X573721Y224035*
Y216907*
X571171D02*
Y212610D01*
X573271Y210510*
X597443*
X599543Y212610*
Y229362*
X578821Y216907D02*
X578886D01*
X570984Y244907D02*
Y233708D01*
X573084Y231608*
X578821*
Y216907*
X571171Y244907D02*
X570984D01*
Y233708*
X573084Y231608*
X578821*
Y231958*
X586921*
X589021Y234058*
Y244907*
X570984D02*
Y233708D01*
X573084Y231608*
X578821*
Y231958*
X581371*
Y244907*
X568621D02*
X571171D01*
Y253343*
X594113Y240895D02*
Y244900D01*
X594121Y244907*
X594113Y240895D02*
X602524Y232484D01*
X583921Y244907D02*
X586471D01*
X591571D02*
Y237334D01*
X599543Y229362*
X596671Y244907D02*
X602786Y238792D01*
X602920*
X583837Y253037D02*
Y256799D01*
X599646*
X583837Y253037D02*
X583921Y252954D01*
Y244907*
X591547Y253037D02*
X591571Y253014D01*
Y244907*
G54D22*
X515000Y162500D03*
X582500D03*
X246828Y316718D03*
X267263Y316716D03*
X267121Y326028D03*
X293803Y316747D03*
X515000Y317500D03*
X577919Y317426D03*
X236876Y352475D03*
X267121Y344937D03*
X293692Y338510D03*
X291693Y352475D03*
X283840Y309979D03*
X410000D03*
G54D25*
X360518Y179998D02*
X360291Y180623D01*
X359836Y181248*
X359382Y181561*
X358473*
X358018Y181248*
X357564Y180623*
X357336Y179998*
X357109Y179061*
Y177498*
X357336Y176561*
X357564Y175936*
X358018Y175311*
X358473Y174998*
X359382*
X359836Y175311*
X360291Y175936*
X360518Y176561*
Y177498*
X359382D02*
X360518D01*
X362564Y181561D02*
Y174998D01*
Y181561D02*
X364382Y174998D01*
X366200Y181561D02*
X364382Y174998D01*
X366200Y181561D02*
Y174998D01*
X371655Y179998D02*
X371427Y180623D01*
X370973Y181248*
X370518Y181561*
X369609*
X369155Y181248*
X368700Y180623*
X368473Y179998*
X368245Y179061*
Y177498*
X368473Y176561*
X368700Y175936*
X369155Y175311*
X369609Y174998*
X370518*
X370973Y175311*
X371427Y175936*
X371655Y176561*
X375064Y181561D02*
X374382Y181248D01*
X373927Y180311*
X373700Y178748*
Y177811*
X373927Y176248*
X374382Y175311*
X375064Y174998*
X375518*
X376200Y175311*
X376655Y176248*
X376882Y177811*
Y178748*
X376655Y180311*
X376200Y181248*
X375518Y181561*
X375064*
X378927Y180311D02*
X379382Y180623D01*
X380064Y181561*
Y174998*
X383927Y181561D02*
X382109Y174998D01*
X383927Y181561D02*
X385745Y174998D01*
X382791Y177186D02*
X385064D01*
X284976Y361642D02*
X285430Y361955D01*
X286112Y362892*
Y356330*
X262723Y361467D02*
X263177Y361779D01*
X263859Y362717*
Y356154*
X562177Y209199D02*
X562632Y209511D01*
X563314Y210449*
X563314D02*
Y203886D01*
X370994Y154340D02*
X395194D01*
Y152740*
X370994*
Y154340*
Y130140D02*
X395194D01*
Y131740*
X370994*
Y130140*
X382094Y148940D02*
X383994D01*
Y125240*
X382094*
Y148940*
X387694Y153740D02*
X389694D01*
Y135540*
X387694*
Y153740*
X393294Y130740D02*
X395194D01*
Y148940*
X393294*
Y130740*
X378494Y153740D02*
X376494D01*
Y135540*
X378494*
Y153740*
X372894Y130740D02*
X370994D01*
Y148940*
X372894*
Y130740*
X294194D02*
X292294D01*
Y148940*
X294194*
Y130740*
X299794Y153740D02*
X297794D01*
Y135540*
X299794*
Y153740*
X314594Y130740D02*
X316494D01*
Y148940*
X314594*
Y130740*
X308994Y153740D02*
X310994D01*
Y135540*
X308994*
Y153740*
X303394Y148940D02*
X305394D01*
Y125240*
X303394*
Y148940*
X292294Y130140D02*
X316494D01*
Y131740*
X292294*
Y130140*
Y154340D02*
X316494D01*
Y152740*
X292294*
Y154340*
X451594Y130740D02*
X449694D01*
Y148940*
X451594*
Y130740*
X457194Y153740D02*
X455194D01*
Y135540*
X457194*
Y153740*
X471994Y130740D02*
X473894D01*
Y148940*
X471994*
Y130740*
X466394Y153740D02*
X468394D01*
Y135540*
X466394*
Y153740*
X460794Y148940D02*
X462794D01*
Y125240*
X460794*
Y148940*
X449694Y130140D02*
X473894D01*
Y131740*
X449694*
Y130140*
Y154340D02*
X473894D01*
Y152740*
X449694*
Y154340*
X382094Y154840D02*
X384094D01*
Y159240*
X382094*
Y154840*
X303394Y159540D02*
X305394D01*
Y154740*
X303394*
Y159540*
X460794Y159240D02*
X462794D01*
Y154540*
X460794*
Y159240*
X648600Y152950D02*
Y233045D01*
G75*
G03X648100Y233545I-500J0D01*
G01X634401*
X634047Y233692D02*
G03X634401Y233545I354J353D01*
G01X634047Y233692D02*
X599850Y267889D01*
X599703Y268243D02*
G03X599850Y267889I500J-0D01*
G01X599703Y268243D02*
Y332008D01*
X600203Y332508D02*
G03X599703Y332008I0J-500D01*
G01X600203Y332508D02*
X610700D01*
G03X611200Y333008I-0J500*
G01Y342519*
G03X610237Y342707I-500J0*
G01Y353833D02*
G03Y342707I-13727J-5563D01*
G01Y353833D02*
G03X611200Y354021I463J188D01*
G01Y374250*
G03X610700Y374750I-500J-0*
G01X304368*
G03X304014Y373896I-0J-500*
G01X311938Y365972*
G03X312246Y365828I354J354*
G01X316308Y363687D02*
G03X312246Y365828I-4615J-3833D01*
G01X316308Y363687D02*
G03X317077I385J320D01*
G01X326308D02*
G03X317077I-4615J-3833D01*
G01X326308D02*
G03X327077I385J320D01*
G01X336308D02*
G03X327077I-4615J-3833D01*
G01X336308D02*
G03X337077I385J320D01*
G01X347550Y358553D02*
G03X337077Y363687I-5857J1301D01*
G01X347550Y358553D02*
G03X347685Y358091I488J-109D01*
G01X352850Y352925*
G03X353214Y352779I354J353*
G01X357954Y350614D02*
G03X353214Y352779I-4615J-3834D01*
G01X357954Y350614D02*
G03X358723I385J319D01*
G01X368577Y343854D02*
G03X358723Y350614I-5238J2926D01*
G01X368577Y343854D02*
G03X369013Y343110I436J-244D01*
G01X377664*
G03X378100Y343854I-0J500*
G01X377421Y347771D02*
G03X378100Y343854I5918J-991D01*
G01X377421Y347772D02*
G03X377026Y348344I-493J82D01*
G01X374613Y351286D02*
G03X377026Y348344I3000J0D01*
G01X374613Y351286D02*
Y355760D01*
G03X374194Y356253I-500J-0*
G01X371682Y359213D02*
G03X374194Y356253I3000J0D01*
G01X371682Y359213D02*
Y364813D01*
X374682Y367813D02*
G03X371682Y364813I-0J-3000D01*
G01X374682Y367813D02*
X378582D01*
X380168Y367360D02*
G03X378582Y367813I-1586J-2547D01*
G01X380168Y367360D02*
G03X380696I264J424D01*
G01X382282Y367813D02*
G03X380696Y367360I-0J-3000D01*
G01X382282Y367813D02*
X386182D01*
X388804Y366270D02*
G03X386182Y367813I-2622J-1457D01*
G01X388804Y366270D02*
G03X389241Y366013I437J243D01*
G01X394112*
G03X394428Y366126I-0J500*
G01X402905Y363048D02*
G03X394428Y366126I-5156J-988D01*
G01X402905Y363048D02*
G03X403887I491J94D01*
G01X409232Y367306D02*
G03X403887Y363048I-189J-5246D01*
G01X409232Y367306D02*
G03X409665Y367528I18J500D01*
G01X412159Y368861D02*
G03X409665Y367528I0J-3000D01*
G01X412159Y368861D02*
X416059D01*
X417645Y368407D02*
G03X416059Y368861I-1586J-2546D01*
G01X417645Y368407D02*
G03X418174I264J425D01*
G01X419759Y368861D02*
G03X418174Y368407I0J-3000D01*
G01X419759Y368861D02*
X423659D01*
X426659Y365861D02*
G03X423659Y368861I-3000J-0D01*
G01X426659Y365861D02*
Y360261D01*
X426520Y359356D02*
G03X426659Y360261I-2861J905D01*
G01X426520Y359356D02*
G03Y359055I477J-150D01*
G01X426659Y358151D02*
G03X426520Y359055I-3000J-0D01*
G01X426659Y358151D02*
Y356833D01*
G03X427434Y356415I500J-0*
G01X429632Y357073D02*
G03X427434Y356415I-0J-4000D01*
G01X429632Y357073D02*
X440556D01*
X443384Y355901D02*
G03X440556Y357073I-2828J-2828D01*
G01X443384Y355901D02*
X447806Y351480D01*
G03X448159Y351333I353J353*
G01X449081*
G03X449514Y351583I-0J500*
G01X452112Y353083D02*
G03X449514Y351583I-0J-3000D01*
G01X452112Y353083D02*
X457498D01*
G03X457851Y353937I-0J500*
G01X457351Y354437*
G03X456998Y354583I-353J-354*
G01X452112*
X449112Y357583D02*
G03X452112Y354583I3000J0D01*
G01X449112Y357583D02*
Y363083D01*
X452112Y366083D02*
G03X449112Y363083I-0J-3000D01*
G01X452112Y366083D02*
X462112D01*
X465112Y363083D02*
G03X462112Y366083I-3000J0D01*
G01X465112Y363083D02*
Y358783D01*
G03X465612Y358283I500J0*
G01X468867*
X469295Y358252D02*
G03X468867Y358283I-428J-2969D01*
G01X469295Y358252D02*
G03X469867Y358747I72J495D01*
G01Y359283*
X472867Y362283D02*
G03X469867Y359283I-0J-3000D01*
G01X472867Y362283D02*
X476397D01*
G03X476897Y362783I-0J500*
G01Y363083*
X479897Y366083D02*
G03X476897Y363083I-0J-3000D01*
G01X479897Y366083D02*
X489897D01*
X492897Y363083D02*
G03X489897Y366083I-3000J0D01*
G01X492897Y363083D02*
Y357583D01*
X489897Y354583D02*
G03X492897Y357583I-0J3000D01*
G01X489897Y354583D02*
X480155D01*
G03X479685Y354255I-0J-500*
G01X479489Y353826D02*
G03X479685Y354255I-2622J1457D01*
G01X479489Y353826D02*
G03X479926Y353083I437J-243D01*
G01X489897*
X492897Y350083D02*
G03X489897Y353083I-3000J0D01*
G01X492897Y350083D02*
Y344583D01*
X489897Y341583D02*
G03X492897Y344583I-0J3000D01*
G01X489897Y341583D02*
X479897D01*
X477320Y343047D02*
G03X479897Y341583I2577J1536D01*
G01X477320Y343047D02*
G03X476891Y343291I-429J-256D01*
G01X476859*
X475293Y343610D02*
G03X476859Y343291I1566J3681D01*
G01X475293Y343610D02*
G03X474744Y343503I-196J-460D01*
G01X470649Y339409*
G03X471002Y338555I353J-354*
G01X529317*
X546669*
X549497Y337383D02*
G03X546669Y338555I-2828J-2828D01*
G01X549497Y337383D02*
X552997Y333883D01*
X554169Y331055D02*
G03X552997Y333883I-4000J0D01*
G01X554169Y331055D02*
Y149159D01*
X552986Y146319D02*
G03X554169Y149159I-2817J2840D01*
G01X552986Y146319D02*
X518287Y111892D01*
G03X518639Y111037I352J-355*
G01X530766*
X530766D02*
G03X531120Y111184I0J500D01*
G01X557902Y137966*
G03X558048Y138319I-354J353*
G01Y154929*
X559366Y158111D02*
G03X558048Y154929I3182J-3182D01*
G01X559366Y158111D02*
X571486Y170231D01*
G03X571632Y170584I-354J353*
G01Y174763*
X574632Y177763D02*
G03X571632Y174763I0J-3000D01*
G01X574632Y177763D02*
X584095D01*
G03X584595Y178263I0J500*
G01Y178763*
G03X584095Y179263I-500J-0*
G01X574632*
X571632Y182263D02*
G03X574632Y179263I3000J0D01*
G01X571632Y182263D02*
Y187763D01*
X574632Y190763D02*
G03X571632Y187763I0J-3000D01*
G01X574632Y190763D02*
X583909D01*
G03X584400Y191358I-0J500*
G01X584345Y191928D02*
G03X584400Y191358I3000J-0D01*
G01X584345Y191928D02*
Y195828D01*
X587345Y198828D02*
G03X584345Y195828I0J-3000D01*
G01X587345Y198828D02*
X592945D01*
X594903Y198101D02*
G03X592945Y198828I-1958J-2273D01*
G01X594903Y198101D02*
G03X595682Y198267I326J379D01*
G01X596473Y199392D02*
G03X595682Y198267I2828J-2829D01*
G01X596473Y199392D02*
X598378Y201297D01*
G03X598524Y201650I-354J353*
G01Y206451*
G03X597953Y206946I-500J0*
G01X597443Y206910D02*
G03X597953Y206946I-0J3600D01*
G01X597443Y206910D02*
X573271D01*
X570725Y207964D02*
G03X573271Y206910I2546J2546D01*
G01X570725Y207964D02*
X570096Y208594D01*
G03X569742Y208740I-354J-354*
G01X566923*
G03X566423Y208240I-0J-500*
G01Y201199*
X564723Y199499D02*
G03X566423Y201199I-0J1700D01*
G01X564723Y199499D02*
X561677D01*
X559977Y201199D02*
G03X561677Y199499I1700J-0D01*
G01X559977Y201199D02*
Y208241D01*
G03X559501Y208741I-500J0*
G01X559025Y209240D02*
G03X559501Y208741I500J0D01*
G01X559025Y209240D02*
Y229230D01*
G03X558874Y229588I-500J-0*
G01X558299Y230147*
G03X558121Y230259I-349J-358*
G01X555481Y234020D02*
G03X558121Y230259I4000J0D01*
G01X555481Y234020D02*
Y255085D01*
X556653Y257913D02*
G03X555481Y255085I2828J-2828D01*
G01X556653Y257913D02*
X570846Y272106D01*
X573168Y273246D02*
G03X570846Y272106I506J-3968D01*
G01X573168Y273246D02*
G03X573511Y273451I-64J496D01*
G01X573764Y273759D02*
G03X573511Y273451I2186J-2055D01*
G01X573764Y273759D02*
G03X573900Y274101I-364J342D01*
G01Y294527*
Y294526*
Y294530*
X573900*
X573915Y313092*
Y313093*
G03X573775Y313439I-500J-0*
G01X582055Y313432D02*
G03X573775Y313439I-4136J3994D01*
G01X582055Y313432D02*
G03X581915Y313085I360J-347D01*
G01X581900Y294526*
X581900*
Y288348*
G03X582443Y287850I500J0*
G01X582703Y287862D02*
G03X582443Y287850I0J-3000D01*
G01X582703Y287862D02*
X588703D01*
X591703Y284862D02*
G03X588703Y287862I-3000J-0D01*
G01X591703Y284862D02*
Y278862D01*
X589814Y276075D02*
G03X591703Y278862I-1111J2787D01*
G01X589814Y276075D02*
G03X589500Y275611I186J-464D01*
G01Y274101*
G03X589635Y273759I500J-0*
G01X590450Y271704D02*
G03X589635Y273759I-3000J-0D01*
G01X590450Y271704D02*
Y266604D01*
X590417Y266161D02*
G03X590450Y266604I-2967J443D01*
G01X590417Y266161D02*
G03X590911Y265587I494J-74D01*
G01X594347*
X597347Y262587D02*
G03X594347Y265587I-3000J0D01*
G01X597347Y262587D02*
Y260924D01*
G03X598047Y260466I500J-0*
G01X602457Y259645D02*
G03X598047Y260466I-2811J-2846D01*
G01X602457Y259645D02*
X606347Y255803D01*
G03X606699Y255658I352J355*
G01X608034*
X608534Y255158D02*
G03X608034Y255658I-500J0D01*
G01X608534Y255158D02*
Y253851D01*
G03X608683Y253495I500J0*
G01X631194Y231259*
X632383Y228413D02*
G03X631194Y231259I-4000J0D01*
G01X632383Y228413D02*
Y187411D01*
X631211Y184583D02*
G03X632383Y187411I-2828J2828D01*
G01X631211Y184583D02*
X615885Y169256D01*
X613056Y168085D02*
G03X615885Y169256I0J4000D01*
G01X613056Y168085D02*
X595093D01*
G03X594750Y167949I-0J-500*
G01X592695Y167135D02*
G03X594750Y167949I0J3000D01*
G01X592695Y167135D02*
X587595D01*
X587085Y167178D02*
G03X587595Y167135I510J2957D01*
G01X587085Y167178D02*
G03X586662Y167054I-85J-492D01*
G01X584632Y166263D02*
G03X586662Y167054I0J3000D01*
G01X584632Y166263D02*
X580453D01*
G03X580100Y166117I0J-500*
G01X567195Y153212*
G03X567048Y152858I353J-354*
G01Y136248*
X565730Y133066D02*
G03X567048Y136248I-3182J3182D01*
G01X565730Y133066D02*
X538768Y106104D01*
G03X539121Y105250I353J-354*
G01X610700*
G03X611200Y105750I-0J500*
G01Y125979*
G03X610237Y126167I-500J0*
G01Y137293D02*
G03Y126167I-13727J-5563D01*
G01Y137293D02*
G03X611200Y137481I463J188D01*
G01Y149450*
X614200Y152450D02*
G03X611200Y149450I0J-3000D01*
G01X614200Y152450D02*
X648100D01*
G03X648600Y152950I-0J500*
G01X299882Y111037D02*
G03X300379Y111593I-0J500D01*
G01X300354Y112039D02*
G03X300379Y111593I4000J0D01*
G01X300354Y112039D02*
Y116078D01*
G03X300068Y116529I-500J-0*
G01X298354Y119240D02*
G03X300068Y116529I3000J-0D01*
G01X298354Y119240D02*
Y125240D01*
X298455Y126011D02*
G03X298354Y125240I2899J-771D01*
G01X298455Y126011D02*
G03X297972Y126640I-483J129D01*
G01X292294*
X288794Y130140D02*
G03X292294Y126640I3500J-0D01*
G01X288794Y130140D02*
Y130740D01*
Y148940*
X289214Y150602D02*
G03X288794Y148940I3080J-1662D01*
G01X289214Y150602D02*
G03Y151077I-440J238D01*
G01X288794Y152740D02*
G03X289214Y151077I3500J-0D01*
G01X288794Y152740D02*
Y154340D01*
X292294Y157840D02*
G03X288794Y154340I-0J-3500D01*
G01X292294Y157840D02*
X297972D01*
G03X298455Y158468I-0J500*
G01X298354Y159240D02*
G03X298455Y158468I3000J-0D01*
G01X298354Y159240D02*
Y165240D01*
X298874Y166928D02*
G03X298354Y165240I2480J-1688D01*
G01X298874Y166928D02*
G03X298461Y167709I-413J281D01*
G01X246475*
G03X246092Y167531I-0J-500*
G01X220246Y192490D02*
G03X246092Y167531I12050J-13383D01*
G01X220246Y192490D02*
G03X220411Y192861I-335J371D01*
G01Y286298*
G03X220237Y286678I-500J0*
G01X232361Y319897D02*
G03X220237Y286678I149J-18876D01*
G01X232361Y319897D02*
G03X232857Y320397I-4J500D01*
G01Y348157*
G03X232718Y348502I-500J0*
G01X232430Y348828D02*
G03X232718Y348503I4446J3647D01*
G01X232430Y348828D02*
G03X232043Y349011I-387J-317D01*
G01X231160*
G03X230818Y348875I0J-500*
G01X228763Y348061D02*
G03X230818Y348875I-0J3000D01*
G01X228763Y348061D02*
X223663D01*
X220663Y351061D02*
G03X223663Y348061I3000J-0D01*
G01X220663Y351061D02*
Y354961D01*
X221116Y356547D02*
G03X220663Y354961I2547J-1586D01*
G01X221116Y356547D02*
G03Y357075I-424J264D01*
G01X220663Y358661D02*
G03X221116Y357075I3000J-0D01*
G01X220663Y358661D02*
Y361292D01*
G03X220163Y361792I-500J-0*
G01X213196*
G03X212708Y361181I-0J-500*
G01X202703Y364183D02*
G03X212708Y361181I4154J-4329D01*
G01X202703Y364183D02*
G03X202857Y364544I-346J361D01*
G01Y366332*
X202886Y366820D02*
G03X202857Y366332I3971J-488D01*
G01X202886Y366820D02*
G03X202390Y367381I-496J61D01*
G01X201170*
G03X200817Y367234I0J-500*
G01X198496Y364913*
G03X198349Y364560I353J-353*
G01Y176639*
G03X198496Y176286I500J0*
G01X263686Y111184*
G03X264039Y111037I353J353*
G01X299882*
X398646Y320519D02*
G03X398255Y321331I-391J312D01*
G01X388422*
G03X388031Y320519I-0J-500*
G01X389279Y315938D02*
G03X388031Y320519I-5940J842D01*
G01X389279Y315938D02*
G03X389381Y315559I495J-70D01*
G01X391499Y312861*
G03X391892Y312670I393J309*
G01X397933*
G03X398349Y313447I0J500*
G01X398646Y320519D02*
G03X398349Y313447I4693J-3739D01*
G01X377867Y116039D02*
G03X378185Y116925I0J500D01*
G01X377094Y119240D02*
G03X378185Y116925I3000J-0D01*
G01X377094Y119240D02*
Y125240D01*
X377195Y126011D02*
G03X377094Y125240I2899J-771D01*
G01X377195Y126011D02*
G03X376712Y126640I-483J129D01*
G01X370994*
X367494Y130140D02*
G03X370994Y126640I3500J-0D01*
G01X367494Y130140D02*
Y130740D01*
Y148940*
X367914Y150602D02*
G03X367494Y148940I3080J-1662D01*
G01X367914Y150602D02*
G03Y151077I-440J238D01*
G01X367494Y152740D02*
G03X367914Y151077I3500J-0D01*
G01X367494Y152740D02*
Y154340D01*
X370994Y157840D02*
G03X367494Y154340I-0J-3500D01*
G01X370994Y157840D02*
X376712D01*
G03X377195Y158468I-0J500*
G01X377094Y159240D02*
G03X377195Y158468I3000J-0D01*
G01X377094Y159240D02*
Y165240D01*
X377614Y166928D02*
G03X377094Y165240I2480J-1688D01*
G01X377614Y166928D02*
G03X377201Y167709I-413J281D01*
G01X310247*
G03X309834Y166928I0J-500*
G01X310354Y165240D02*
G03X309834Y166928I-3000J-0D01*
G01X310354Y165240D02*
Y159240D01*
X310253Y158468D02*
G03X310354Y159240I-2899J772D01*
G01X310253Y158468D02*
G03X310736Y157840I483J-128D01*
G01X316494*
X319994Y154340D02*
G03X316494Y157840I-3500J-0D01*
G01X319994Y154340D02*
Y152740D01*
X319574Y151077D02*
G03X319994Y152740I-3080J1663D01*
G01X319574Y151077D02*
G03Y150602I440J-237D01*
G01X319994Y148940D02*
G03X319574Y150602I-3500J-0D01*
G01X319994Y148940D02*
Y131740D01*
Y130740*
Y130140*
X316494Y126640D02*
G03X319994Y130140I-0J3500D01*
G01X316494Y126640D02*
X310736D01*
G03X310253Y126011I0J-500*
G01X310354Y125240D02*
G03X310253Y126011I-3000J-0D01*
G01X310354Y125240D02*
Y119240D01*
X309262Y116925D02*
G03X310354Y119240I-1908J2315D01*
G01X309262Y116925D02*
G03X309581Y116039I319J-386D01*
G01X377867*
X456354Y166928D02*
G03X455941Y167709I-413J281D01*
G01X388987*
G03X388574Y166928I0J-500*
G01X389094Y165240D02*
G03X388574Y166928I-3000J-0D01*
G01X389094Y165240D02*
Y159240D01*
X388993Y158468D02*
G03X389094Y159240I-2899J772D01*
G01X388993Y158468D02*
G03X389476Y157840I483J-128D01*
G01X395194*
X398694Y154340D02*
G03X395194Y157840I-3500J-0D01*
G01X398694Y154340D02*
Y152740D01*
X398274Y151077D02*
G03X398694Y152740I-3080J1663D01*
G01X398274Y151077D02*
G03Y150602I440J-237D01*
G01X398694Y148940D02*
G03X398274Y150602I-3500J-0D01*
G01X398694Y148940D02*
Y131740D01*
Y130740*
Y130140*
X395194Y126640D02*
G03X398694Y130140I-0J3500D01*
G01X395194Y126640D02*
X389476D01*
G03X388993Y126011I0J-500*
G01X389094Y125240D02*
G03X388993Y126011I-3000J-0D01*
G01X389094Y125240D02*
Y120666D01*
G03X389594Y120166I500J-0*
G01X455334*
G03X455834Y120666I-0J500*
G01Y125240*
X455935Y126011D02*
G03X455834Y125240I2899J-771D01*
G01X455935Y126011D02*
G03X455452Y126640I-483J129D01*
G01X449694*
X446194Y130140D02*
G03X449694Y126640I3500J-0D01*
G01X446194Y130140D02*
Y130740D01*
Y148940*
X446614Y150602D02*
G03X446194Y148940I3080J-1662D01*
G01X446614Y150602D02*
G03Y151077I-440J238D01*
G01X446194Y152740D02*
G03X446614Y151077I3500J-0D01*
G01X446194Y152740D02*
Y154340D01*
X449694Y157840D02*
G03X446194Y154340I-0J-3500D01*
G01X449694Y157840D02*
X455452D01*
G03X455935Y158468I-0J500*
G01X455834Y159240D02*
G03X455935Y158468I3000J-0D01*
G01X455834Y159240D02*
Y165240D01*
X456354Y166928D02*
G03X455834Y165240I2480J-1688D01*
G01X539291Y158935D02*
Y164859D01*
G03X538477Y165248I-500J-0*
G01X513640Y167534D02*
G03X538477Y165248I13596J11644D01*
G01X513640Y167534D02*
G03X513260Y167709I-380J-325D01*
G01X467727*
G03X467314Y166928I0J-500*
G01X467834Y165240D02*
G03X467314Y166928I-3000J-0D01*
G01X467834Y165240D02*
Y159240D01*
X467733Y158468D02*
G03X467834Y159240I-2899J772D01*
G01X467733Y158468D02*
G03X468216Y157840I483J-128D01*
G01X473894*
X477394Y154340D02*
G03X473894Y157840I-3500J-0D01*
G01X477394Y154340D02*
Y152740D01*
X476974Y151077D02*
G03X477394Y152740I-3080J1663D01*
G01X476974Y151077D02*
G03Y150602I440J-237D01*
G01X477394Y148940D02*
G03X476974Y150602I-3500J-0D01*
G01X477394Y148940D02*
Y131740D01*
Y130740*
Y130140*
X475728Y127159D02*
G03X477394Y130140I-1834J2981D01*
G01X475728Y127159D02*
G03X475990Y126233I262J-426D01*
G01X506494Y126219*
G03X506847Y126365I0J500*
G01X539144Y158581*
G03X539291Y158935I-353J354*
G01X578491Y256573D02*
G03Y257102I-425J264D01*
G01X578037Y258687D02*
G03X578491Y257102I3000J0D01*
G01X578037Y258687D02*
Y262587D01*
X578070Y263030D02*
G03X578037Y262587I2967J-443D01*
G01X578070Y263030D02*
G03X577576Y263604I-494J74D01*
G01X575950*
X574523Y263965D02*
G03X575950Y263604I1427J2639D01*
G01X574523Y263965D02*
G03X573932Y263878I-238J-440D01*
G01X566565Y256512*
G03X566919Y255658I354J-354*
G01X577739*
G03X578210Y255991I0J500*
G01X578491Y256573D02*
G03X578210Y255991I2546J-1586D01*
G01X624383Y189275D02*
Y226533D01*
G03X624234Y226889I-500J0*
G01X609386Y241556*
G03X608534Y241200I-352J-356*
G01Y239042*
G03X608681Y238688I500J-0*
G01X610129Y237240*
X611301Y234411D02*
G03X610129Y237240I-4000J0D01*
G01X611301Y234411D02*
Y194747D01*
G03X611468Y194374I500J0*
G01X605142Y183851D02*
G03X611468Y194374I2159J5865D01*
G01X605142Y183851D02*
G03X604549Y183110I-173J-469D01*
G01X604838Y176817D02*
G03X604549Y183110I-5537J2899D01*
G01X604838Y176817D02*
G03X605281Y176085I443J-232D01*
G01X611192*
G03X611546Y176231I0J500*
G01X624236Y188922*
G03X624383Y189275I-353J353*
G01X372561Y366934D02*
X375253Y364242D01*
X380703Y366934D02*
X378011Y364242D01*
X372561Y357092D02*
X375253Y359784D01*
X578916Y256566D02*
X581608Y259258D01*
X466955Y167361D02*
X463955Y164361D01*
X456713Y167361D02*
X459713Y164361D01*
X388215Y167361D02*
X385215Y164361D01*
X377973Y167361D02*
X380973Y164361D01*
X309475Y167361D02*
X306475Y164361D01*
X299233Y167361D02*
X302233Y164361D01*
X596468Y264709D02*
X593776Y262016D01*
X572511Y180142D02*
X575437Y183068D01*
X572511Y189884D02*
X575437Y186958D01*
X470745Y361405D02*
X473452Y358697D01*
X492018Y365205D02*
X489091Y362278D01*
X492018Y355462D02*
X489091Y358389D01*
X477775Y365205D02*
X480702Y362278D01*
X595067Y197949D02*
X592374Y195257D01*
X585224Y197949D02*
X587916Y195257D01*
X417638Y367982D02*
X420330Y365289D01*
X425781Y367982D02*
X423088Y365289D01*
X375492Y349165D02*
X378184Y351858D01*
X241996Y287989D02*
X522000D01*
Y188001*
X241996*
Y287989*
G54D31*
X264000Y302500D03*
X274000D03*
X284000D03*
X294000D03*
X304000D03*
X527300Y179300D03*
Y179000D03*
Y179300D03*
X527600Y179000D03*
X354000Y302500D03*
X364000D03*
X374000D03*
X384000D03*
X527800Y301200D03*
X527800D03*
G54D35*
X599301Y179716D03*
Y189716D03*
X607301D03*
Y179716D03*
G54D40*
X256857Y359854D03*
X585703Y281862D03*
X304354Y122240D03*
Y162240D03*
X383094Y122240D03*
Y162240D03*
X461834Y122240D03*
Y162240D03*
X291693Y359854D03*
X303339Y346780D03*
G54D42*
X397749Y355260D03*
Y362060D03*
X409043D03*
Y355260D03*
G54D43*
X581882Y172013D02*
X577382D01*
X581882Y185013D02*
X577382D01*
X482647Y360333D02*
X487147D01*
X482647Y347333D02*
X487147D01*
X459362D02*
X454862D01*
X459362Y360333D02*
X454862D01*
G54D44*
X474867Y349283D03*
Y357283D03*
X466867Y353283D03*
G54D45*
X632664Y271563D02*
Y271063D01*
Y281429D02*
Y281929D01*
Y292295D02*
Y291795D01*
X457160Y316241D02*
Y316741D01*
X446363Y316241D02*
Y316741D01*
G54D46*
X618301Y208716D03*
Y160716D03*
G54D47*
X527500Y301000D03*
Y179000D03*
X232500D03*
Y301000D03*
G54D48*
X563521Y214307D02*
Y219507D01*
X566071Y214307D02*
Y219507D01*
X568621Y214307D02*
Y219507D01*
X571171Y214307D02*
Y219507D01*
X573721Y214307D02*
Y219507D01*
X576271Y214307D02*
Y219507D01*
X578821Y214307D02*
Y219507D01*
X581371Y214307D02*
Y219507D01*
X583921Y214307D02*
Y219507D01*
X586471Y214307D02*
Y219507D01*
X589021Y214307D02*
Y219507D01*
X591571Y214307D02*
Y219507D01*
X594121Y214307D02*
Y219507D01*
X596671Y214307D02*
Y219507D01*
Y242307D02*
Y247507D01*
X594121Y242307D02*
Y247507D01*
X591571Y242307D02*
Y247507D01*
X589021Y242307D02*
Y247507D01*
X586471Y242307D02*
Y247507D01*
X583921Y242307D02*
Y247507D01*
X581371Y242307D02*
Y247507D01*
X578821Y242307D02*
Y247507D01*
X576271Y242307D02*
Y247507D01*
X573721Y242307D02*
Y247507D01*
X571171Y242307D02*
Y247507D01*
X568621Y242307D02*
Y247507D01*
X566071Y242307D02*
Y247507D01*
X563521Y242307D02*
Y247507D01*
G54D49*
X360249Y358660D03*
X446543D03*
G74*
X0Y0D02*
M02*
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/V1.pdf
0,0 → 1,616
+%âãÏÓ
+0000000016 00000 n
+0000000904 00000 n
+0000001201 00000 n
+0000001405 00000 n
+0000001539 00000 n
+0000001746 00000 n
+0000002174 00000 n
+0000002213 00000 n
+0000002235 00000 n
+0000006544 00000 n
+0000006566 00000 n
+0000010175 00000 n
+0000010197 00000 n
+0000014092 00000 n
+0000014114 00000 n
+0000017983 00000 n
+0000018005 00000 n
+0000022119 00000 n
+0000022141 00000 n
+0000025899 00000 n
+0000025921 00000 n
+0000029438 00000 n
+0000029460 00000 n
+0000032901 00000 n
+0000050439 00000 n
+0000053116 00000 n
+0000000993 00000 n
+0000001181 00000 n
+stream
+stream
+»I÷u,¹sŸÆc:7È7{qÉÇÜå‹øéÐG“ ? ¿¦s›Æ™æe3GµR\hΌe5܏EîG6Ì~—e¶5Þ|ÁQ`:rfÞ¥Õ6OõX5¦í³2M[çz7uæOà4ÓÕ¶Äåu\=A‹òJ0Ò®:ÍÕmWžïûâÀý¶Í+£rÍîÚ·Ãkq¿Ó¶ZR7Ók;¨Þ¯V»ŸíWWî²¹FyÔËsŠíòª*[}sºrê[PÔÚΘišÖ=¤ú"×òš®”±”XWJuò¬[JÕä¶;·ê®qy嵧lS󠯨+ë¼óKŒú¶u³¿LËíV'í+ÓrlO,•lXêÀLq?x0…‹º~f§nŽ^Ó±ì‹û¾dAµ±D+,ۊ›Ä+hÀ–ì‹ÍÎ<÷¶M¯Fs\G"¶›=Šy[,ÇÜwÊ]«¾ù›EéØmê–Ê×rŸvnìîã¦[±]+ÉfUï» •,·Ò ܘoaWSåáé…é4K˜Ó£Ý³ÅßÉ£aµª´…B3¤;—jï Ǻ=ºâf*WC+/Û2ó°5–ÊÅ7
+[w,}_N( ¶ÙÖë
+ÝÓ®¦îYv4ƒ¥.nºa›Ð2õH£6³ZŠéaV\€ ËÝ”zd€›_DÙ es4[ŠûI·[ː°­š_•e<@åжä*Åw¾q­—¸b‘Mxn§a»˜5ò¦^œv:Rي|SlҍýªÐáp=G—™Rô8˜F¹3nÌ!eFy#ôˆ ¶ wk²ÌαqÙݘù$bl‚`K|;ψG¶‡¼Xžˆ®ò8E¹NÌKD]nˆ ÖÅæPÔ3sn»Íq@æ©"ü³/Ëm{e/íö˜Ob#PaÓ¥Û²q̂ĶÀ™lm\êÖ8&ܸßäÛAK©¼Æ=;¹Ü½$™ÁZþ@…R9‰ó­«äÅÓ¢6)·«Ÿ +f ñtc³r“Ÿ,ÎÃÓ6ÏèiÌÃ<0w˜s ùàa­a Çò2¹ršØ¸ó2³;WO 2ŸhKþ攉ÌÌd“Á3™‰¦ù
+ÛÅyÚ¨”›øˆqu6mÌq©>„ȱ$‡GfnXC»0mŠß՗‹¿ÇxdŠ–TÙërÞÞdÊÌ1ë¬äÆÝ\椢l/Q–0Ê'sšðÃd%†Á+€ÌÁB:94ÊäÔP&s
+Œ—»sbS°Ê)ÓBpu\Žy^íK&ƒ®\¹ÛÊщƒÕ
+U Ñ?¼G3*&ã'Åáb@(¿ZYY}‡––Æ̓w»ìWþš×ÛÍcTp΁Iߢõ‰
+íaŒÍ`®½£Xx_ZÚً“·å|„"}#pùz/Ö­rÉLï#NCø†z­JðËJ£9?¦)½1¤ûí7æäýR@¹™×Ò+k†ÊÔá7ñoÝùm~s_…Œ³•çÏv6´èÒ͎Mƒ-ÐõGãÛh˜nµÄÈí_LÁnèÅÖ£ÇåPÁGߢº³· «éd‰®aí,É{~{ûa¯1BM>èg;’Q8ïÊÖ
+ÒQc¾)16ÿ]çдéÜ5ÿ`­Ó]Ùe7õ´ä§­ŠÜF6ºóí[•<“½¹i3-M¶G¤
+h–ÅÍ"Ú[–ïæ*)®–ŸÏÖíG*ö;Ù|Íù(Ìíf<9%þ‡qø™– ì㚚
+nìœ'/K;÷ Ñè›Î…³käuíìóŒ1<ضµß>Pú0½kd Oø怛ùöV(\%¾ut\ŸˆNÌgN<+Îqÿì¦àGcÛ±À”òÀγbi˜.às«Mžy­9*wNæâÁ³xîõ•¼¦:£vô˜4™ñ[ ç¶çIoþÁ*gú§^`!k¾Ãßa%„l—d°­hˆ,Î=°˜Á …³™áruHɹ âÃLv)XüX_l¹¼)ÂÍøLVŒM&”ÑÉQ¬‡½è-O{"c
+r’ó8ã@&ÌXMY9éàÑ9Úy՞ÃxWÏ­ölŽ.Žksbµ;Üë=Ãäþ+E 7»ú/¸Û28£ßˆŽ¢Y6fƒ1+f©`ø”R-F³Tk^žßRÍKҊ-Û$ªl>¢Rsž¥RkÚoÈ*Íg®u«4¬ŽUPégvÔlÜ**6ëµ¼@ÖkyÁ¬×òþ§^ãó²@ãÛ ½¥\ ³rí o9xË5~É)× g-׌G-׌W©Öx֩μQù²Ž2߸Çv9Þ¥·ð»ç6†ï(—%ß·ð¸ûÔ;NS,T‰ÇP ÅÌEvSÇÆÛÞ?˜ñý£Éö(~pf³Äϝˆ°÷ççé­Ö¨ã©£Xž2# ÆÑGŸqµ£ß¸zÊ;vÔï¾L»ß »¥gåpùpú%åºíòc¯W/ÅáõÎӋÀÛ®­‰Þn—¥+ޕ¢°Œ;Û¥öntAÀ‘…6'äùküBÜ!7ÇVåɸþáYåi¼ª<Åӕ§lv !OC­ò$_yúq«È󎟴#rõh•÷(ò´X½µÈÓø"®:E(¸gbêӃwÕ'£÷\LW¯9ÞnÖU¿¹
+ywÃAn›(ØPPÈùêÎéŠÕÂýEðR}B‹8¢Ú/.Œ>Dšõ{@>¦©ÛÕw£)Zgš½Í<{qx3ö_;!‰¿jýÅ3nHÓi„°àÆã2$:—WÆiL[¿oˆsœ%Äߟâq÷#ïø“ãý†8±ÀþTœnñ«¡12#óŸFäóÔàè R!ÑÄT°MGå“
+QDŒ;1íÌOwÉýҝ‚ÝÝÊmædê<ÏˆÇ¼ŒYü¹x\úö€S;J®^Âø‘ÊÃ
+stream
+ڝè²ì÷TEì÷Ä4»Þâû¨NîŽ~cÑ}ÀÅ£ßD÷åªQ½è"ÌèRïúǓõèMôó‰zôDý:Z÷iÜ£Ö¶,}Ô=2k*'wXäuSŠz=›uŸòéèkúuF÷9™‰RtI¸ýîÓÓº\ü¬)àëô¨XV ù%NÝƝ£1ò „PùìíËAÈ
+¸¤Þ¢à^åå™@”DlĘi¤Y—’¸*¢`„ÌÈ÷’4'~.ⓩ¿Ž¤©o ßM}Ž$CG£Fš™@Ó§ã%T\Ò#‡Þ%)
+N
+ƒEnS^Ñ÷'gҐÌaÖÆ1šôä3HË~}8îbóž9ôa̺ÃlÜWEÔ!1ÅtL—#8È4RAÆtºœ=º-D«Î3(‡ØX1Ó³.åpUDYÈI:'GN’3xä©'ösêrö—ÕßÌ$¢bcÅL#̺.ç‰{BÈbìí*t9]¯—R%ö{ä¤x»]xÌr9À“âqb]Ê᪈!$²0»]NÓ Çå) (·8I2¯q–=G嫧ÅëRWEÔ!1…œç¶‚ö\Vh¤êŠý¯ã¶‚g©Ô­€ˆrˆUÓâu)‡«Bά ’595ßVPóe€ •bÿës[A‰³TʌV@D9ÄƪÄiñº.'Ž!ô!·‚Òn+(í²@ª±ÿ¥ÜVPâ,•’¢¹œ­ Äiñº”ÃUmÁ
+"Y““çmy^Vh¤òˆýÏý¶‚|ÝJ¹F+ ¢bc•¯›%÷Û
+¸*¢3XA$ 9é¶ÁQN
+VŸØÿ´n+H×­”F´"Ê!6VéºYÒº­€«BN
+VɚœTo+ä‚T‰ýO鶂tÝJϊV@D9ĐsÝ,)ÝVÀU­Á
+"Y“óôÛ
+9€ ÕbÿŸz[ÁsÝJOŽV@ärr´‚çºYžz[WE´+ˆdUN^ë²ÅG¡’ÊkyË
+òŠ³”W Và ;VVž©„½.äøªˆ®cÙKÎÞÑä rR¶l+¼OC>r 9ŒafiÙ#g–vä¤ýÇ#ÇБèBb {6ÊÁþQa¶½µm7Â<”Ã#è'faaÇÊÊ3•°×…_Q#„Ä@ö²—cÓår†„1².M96ì”är€30ëRWEÔ!1½ŒÚå˜÷¹@#ˤœÄ£fÔ¬˜¢b°±ÿ¬K9\Õ¢ d‰‘ìu9z39!'N ¯;—ƒËQ»(™ D9Ä`Õbÿsœ¤s2j„È^—cï—h¤Jœ>F\ž*Œ¦`Ž(‡ØX1Ó—rY¯Šh;Vp‘½ž .Ç^u.ÐHÕ8-|*9+î™”3o+ «û_ŸÛ
+jœ%²ÄHöúàrìÍír!'N ò.Ï|F[´"Ê!«û_Çm5Î Yb${ý|;rÆe€FªÅiáÏ,—ƒaŒ–hD”C V%ö¿µÛ
+Zœ%Bâønòû4ʱ߫.ÐHõëféù¶‚žâÞõ'Zå+fážo+è×­BH¬ß­`¤Û
+9€Fj\7K_·ô÷®hD.gD+`&¯Û
+Æu+%F²3o+åÌ`ãºYF¿­`´¸w£F+ ¢b°j±ÿ£ßV0®[ „8¿[Áì·rÔ¼n–Yn+˜9îÝLÑ
+D"‘–•oË«æ³ ±]F¬Të«v_ÇÐÎ=¸eÉ5RÉ·Ú¥F;abËÜޟ^ÅóèÕÁ€\Ýî4€\.£&yVÔÕú"Žëkvª-sÊæpC_P(ìòd¢#,³Õ¥9ñ skKHb“떤iïÛ®´‹ì|3Ó²?bTDz"z
+ÂPø*>AÆ Œá
+É*ËLv]uêu¯_½÷Æ:ÝäÏg$!„"m?¶´ýÚØ{þÙÒ¾½oŸ_ûöÓÏú®lØðkrõg›Ïœ=„ȧ~ð‹ÊR­7Ùà8šf{;WkÁµ…5>'&îˆõ#¬ù­°/Ú¹ƒI„xÃ1µÞp~W‹¿FwŠK=æð¾fZ÷VµÝ˜\;ô ðžy®ª{ºã_ü¡˜$ÜЈû¸7H®›a–½|j²Nه­ÇD.|øê–ðåÆI!ʉŸ/rmbŽûå™ÊÂÿ'w…0\U`¯¡Üá
+|ˋ±É¯Ê~‹ „+™åY®\sn|]¶¿cŽºxî¯ÎFñÁõM ;°y¹kk‘†{EÿV¼Áu¯ÉÈ3yZ1K9;Ž;Ø֕¢ª™2¬xVµ2Ãöú‚"ŒÞƒ±Ãν„snÍsBɁð­ÜË­ôeò+7ì(D{YFƒñ£l:±Dp®ÕÈÓzøöÁ/.Š/C I@Û֌À:C¥Xç$c2þ7äy)Á” 
+py‰¨vjŽz0²ˆ4ÄöƒƒM<òN²FY¤¶P¨Y›ndÕט.ãM×Hr­´uÔ"<K¬xËðæXŠÝ­Ðº7ÿõÄ¢ÓõaVçkT
+7“®xe¯9L#.“cï;¯’{¯q• ϽOµ2ZÊ›5u†ù‘Z!>ÍK\x‹w$ûâû鏑kE%y¥ÓÉþ37Žý‰–Ë”öƒý§p˜=gŽãmý„ñÉ(oǪ-F¿Ã[¼YÅ;rÊN™l%ÆÓÔÇ¡)ÆÊޚ
+¦>1Eý—:ï$ÝMl™F1š,Ó. ²ìåçh֓*4'…Ýɜ54§G·¿jÛNJô
+stream
+E÷yŠ\ˬݜ£ÓÏQG(“VmúúÂÿÊ²–Ú´ÊxIAþÑ[9Öú½­~}ôZ*\ÛQëç+¸”ãäz¹k~Žs£’¯cõÌõhU¸çüNŸí¯ã8!ß®û¸Wæq`ù>`­
+ªîFéÀÂÅq\+!·ªª&Ho i† ¢ƒôI·²om÷:Êv¢Ý×qCs=&W=!»/GYnçÊÒېÈ^†ê<
+$ÙI4dä`B§áWFÉDÒ#- Yú™­.ýjhpÇT·"µÙàɶXuŸi96Ϫ҉¡^êeZv£™2~Õöá*ÈÓޏéMñëW+EÆ{€ø¿™ßP´¾™ù»Á„•›ÓË/lfPе>ÌDè)¦_øÈìcé<álâ?ø¡ÿà™Øl{WÛRh ¦J)%šȓl˜6¾?ÃLe)À ݉Žx¯MҋT‰ak¯ÎE˅TV¢é²Æ]YkêÁõXœÕ’Ô¦•í{R¥sóh=ð}5NHª¨¥j”n8S­Êk_ú7¢¬sˊø5.äà‹<ŠÝÚyö]ÏZY:+Û<U'üFœn_Ú­a¨ßøbÝâÇ¥ãÖ#.¾!òÔ㾟½à¥\Éì…ÁÌyÅçèDG¯˜ÝºÓϏÚXϱ:UÖvQ/dåÍûŒ]EMm×c£ºêqãÃ[ëV|/# r
+*7…(T[º¤>ئäŸF _f%GNÒL7ú%EP&g[ãda{ô·G`¨Îø&ºé
+-³¥KêƒmJþECåϽ,Ì¡õÔOXgш¶P8H€Pbµv'£Ì½:\öÞ¤z5raUØÎZTVõVkºnÕWÍCۙýՐ¤¨Ï•\Ó©8#Åí¾÷Q4Lg=Γ"çR]›*¨» ,‘ÁÌrì]ûœ yï“
+¸SPB"pÚ>>òm13…íM§Ìª-÷ýË´Téå¾H}pã{§D*Ó®›.J§ÜûäE_{e商J1rh³:}üxûϖXv¬®á]CûÝå’îØ
+¦\/7¼“VÄF#ÊÓw-®$ê‘qß&= *½ÑàÒۘEþKõD-ûèÊ˾X°ûZî³Ø
+stream
+…û®Sš‡u¼%Hu½ÿ6<‡¤D?¤ ©ìïrIMԟšÖ»¬Wïé]Ê ”©EèëõùxüHç Swà¥^kSZ¤6œTwüHWqOÂ?ÿ!êó=›»þ’Çró'2âšï®æ…P‹Ó‡š¹Ei*ÁÎÀb4Îï4^Ç0¿óºnIªÛ£ÑÃëI§®˜N{÷áŒtŠLEoR£A±bCɞ?…Ra•K2Æf>~y}ÐRmNþ¡Ô˜ˆq}o•NÂTC™£Ï¶¾G‰ÃVä«\–3(«tKaXã¬Òb!ªe=á[µSr TP} œÞ•XQ¾²EڜQ?|IëWø!“Àã(ü? ¡.§51sW:[°3h®j\Ú+¦ݦaº%
+-3¼±²e'¦Ÿ1’Íš¬^]:ýé—Å/åo œ_™“^'V@Yóe$‘ c5_)²0Ãe™ª±,‹c¸°ˆŽÛ¥{ü jÒ-c´š±˜ïï2œ‘¬#Áýn‹â„r*Štî÷Fí*©blfáÖhtnøóuoŠÏLçüކ®{W—S ‹³L‰Õƒ7]Ôþ^®æ]¸ê®¡óYX"¤YC­ÚåMùغ†¥6†n}òCæžHõYc{ Áw-ô‰¾7Ñ7zgÖâ¹ú^ºQqêÝډÿ4Â̘þ™óWy¼^ÿµêÞ=úY«cá¹Ò-ŸZ`fùgÍ¿9º*K5îÁËâñæWpšM1]Y×Íêù<l#¦Ÿhn¨ºÌÇDYC6r•—N¶#Í'n‹C÷:2CC91@]èT‡“š–i> ’êê.¾ì¨g½cT3j÷»êïSX%ÔcùxXý‰y”­7#®„W/¶‚GîÜ W|8Ãú"¦Nhªy#ìfð_VÁd·[9dÓ-ž•n´°ßÇ¥—éîHG»–!N-D®<ÁDÎm3o¸Òu#ՄJM3q~ K”­d$á`*Ü¡¸^a}¸Iå
+ÔzÅl|ÉrCµ£L¸) E…£Dâzq¯—Û¡¡<>›Þ-‚sÙnÑÊÈ]Úx´;±Ü@­'—Ù,ðXÚbÞlC½Ù*?'4e^;ÓC ‘ÞàÆz¯›€EJ·Ë§ŸÅ¸Â²‚ÁŽE¼C¶͍Õ斕ÞÁ¶ØÂé [=ëk1o¾žðe띵¥‡®AF—†’ÓËö2áí=Vu3[—ìù8ë ‡ëëøáãõ RìøòLÊ«„ãëRrݛØÃãLÜUu>ì8ŠbµZ ¬
+ýð=9í©íyàliøO¶þjv¹ï©D}£êe0îíuÍ°ù®G•,
+- 3¼A~<MÉÒ¸?ÿ«ÿ»Õ ³ÒÀÓíÒ:Ó%6öåy¶›(xO´£Wi•‘'„cEC£Ùn¢à>^n˜ÜñJ:é©Åc†7ژ±Ea)Ÿ Ÿÿƒ ÿ“’ZBpñ jÍÙ6Tqæf'äq é™wQõ†M»ÆКÓçg™¨T®H["¤ßd,ñõ
+‹žZæUéC·(ô•Ž-ŠësTµ´€B°:]–^ø‘t˜¦6óÚÛèU芜NÇþ¡0hû Ë@I‚Éº´sÖhæm_FKt©¶þÑåÄ cÀT"åæôùs‚;ÒîŽ~Қ ¾&kñ%œcO¾lŸ(sùë¦>_úø›†z8ŒÓIH«9aÿMM̤Scá[(ÞÂeÜHÈqXÇþ
+!¼š½r¥¾uw=ãÀ2àjb JìöJ*¢Ê,$>g
+¼×‘ñÈyˆr2€µå£@Jcü»Ê] œ]‡ÎzÊ]9.5—%ƒØ kF€çO݌¯rQ~/.µûë~‘§Œ+©µ¬DEÀPÍ´.-nҀSUi·P;÷¹ôøæ„Á*ú‹#Q߃ðø8©ø°ù¡züŠ¹Y’hÌÇ0•˜Âj1æåaÖ)VÂÒòU·4ç'r¶§âÕX?Ö²í¯0Ý DS+Ôt€¹¼$V$YÔ²š²žŽŽÜ(SNWÁ
+”_ÇÍÀÝ«ªåƒþÀpRÕþ£:KðzcuZO¸8‹tfÈ\ig=^[ËØx=w=¼kÇ¡ÍÒù—Áó™h󂝩(ª‰Ä!b‡ŽàXuâî‘ðá’A;…aja,³Ñ0n„Z€ÆV_:÷R«(¹±æXцþh4ÕÐ"lˆ¢¢a¾àÌAÝå
+kð)ÖüxØÆÀM11Üy~4Ûg~ÜTÏüxè­µõ̏ÒĈ(»šé4„ã̏h1?âB<Z¬Îühÿôõ\ÑKÚ².ÖP¤æ~éŽmõ«ç`×욧±çÃv"ÒÄiÉ®ÎR^CÊ]3NjMK½1?Àüì_¹ŽYޒ̑‰Wã`>ل* rô¦"¡é)š‘ ÿOd(|ŽÉ÷L=ý¼ØVÛú´^¢Wⶵ–‡6³°¯£Ô¹R8²ŸxÀã|Z…l• ‹ðù“b[¯öxP?̌.›ýPuØN¥¬·˓4˜Išx§DÙ_áR¶”T—ÆmdéhYq¤º ö¯šžÝa—¹/§F¼®˜£õÛêšë²Üª2Õeñ›è±båº#ÃÊ­Hí„˝"ý¨…'é5²æ•ëò°U—4Qy²«º”א®’5ׯº”ºê|êҜ•S—¥ÛÌuYü­s
+stream
+L7š^¶dâðIEUBþiΛb/6g}K﵋gRñè1­øÖh4€jlŠmZÚ]úï›;™â9ÇÃ2½ðœXƒ$¡r褼uø8|ŸÔ]EØ+Un=X¸ã—Ê' [®’Àþ²¨3ßñö¼õø¼E/ƒSd†3S’äÞ°ÉBåbOE\’Hï
+rci0ËzNÎLÖc³£/„
+ê¼Q‹wwøBÜ5!!>-Ú_' µyZ[>ÆÕÁ—•÷×
+@eþD Çv¶acŸ2ù¦7ËyݟKÉqP¦Šwn’L¨Ü±ü¿1öËö4ßއ ‡Ëw\óêñæìG>ú¿Üâæ7õ-Ûxšäƒ)¥›—}Çß'rCÒíºè³7cŠy.ʹØ{&]‡Uè͛07ï"í¿œ²ÖÏ9‹.qÊz¶@É(Õ I±Ãpëä¤>pê"÷÷NI5²[©g¼Sñõƒ½¤vü<¡®Ø»uª_UˆÒTãûדNŸsç{ªžï³<5TSŽc¬›ÄØÏñdê¤ây†Âœt­5‘•›ášôIÖ7yÎ`“ºx±Q”Œúæ{Êé7R²wÆÔx¸#¶@ÐòÊ ¯¡’jó´¶|¬Kߎ8Ò
+Æ5âL+׈C=¥•ör¶”¦ÍÏÕ¾2rå*h?B´îxK¦©Zß3t:ûÒ«B§xnÂãw:?Ëкæø‰ÖÂzÜ{ ÁTYЊž“àH-@;ö¡¹ƒ—Qý%SÄ9¼u¾äBÒ]7ánâÅ#‚Tâż­SßâÒàӋÏÀì½±a®Á/2 cùZ¡O?(å[O½¤ìgœNðœá¾Ó³‡l¾³jɔæPw6¡ð&'"/}àUÜgçÚ Ÿn Ùƒ ÕÕ[³íx‹Ãü"^ÇàÆë5„›70UNñ!Yø&|¯ü"ÏŒ±UÝ¿51?)]Ï|*]ñ6hØè<ÔƈASV;D¡öŸØ—Ѻ[e|anÝ¥§èäF÷—Ùª=¨Ö“ZÀ©íÖ8BZYB_ ¹íXy–PG3Ñ
+÷X(·M¢òÄø^'æýµì—çIŒVꇲŽEPVš{Qm -ðÒ~‘ï}#"8–”éá*šöÊ®`î!˜˜9ÖOgî'ý^éWB—”J_…è CÈKž«¼õUùööèQúþàylO™
+¢ì×Ã/ÚÛc/†|ìNašîÝ/áŒtYTЋ~3Ã(•ýéz.€§g`£”%–‡ Ӆ=YEOÊíÊÞ¤ß}¥²Jƒ²q×±
+²¥…#N~ÿ_0ÇÏ0¤Óêaëý€±føfë¹ö&ãc¾æ^?˜I“ÔòIr~3®o×ì`ZC;5OePÄd°ž%ÒØÊ@¶J’Î%ÂÑAI“w~!}wªÌHLÒpÒRb‡£—$TX”Ë}éÕævòt!{]Z“„|¤*EɁ—¯ •Î¾yDŒ­wq~v ïP>©»”c•Ñ…¬(€R²oóY6«ä0¿ˆÇàÌvM²$' „÷sŠwPüžÃG˜m×ý·VfJÀ³êþ‚" (!¥@Á•äõ¬»°Zé×AlTB6´}€mõô›hÑKê4»kyÅr©
+žÌ;hjðô@„t9ñlÏXN­zÃ{óB¼€íVWë~,÷Ý4o¢ïÊ Þ¯ZÀIñÃ8CŠ^ÖÙ&Û_ú|ýÍ.2E·Ê”ä…É.Qüox sWW§†°bŸ Ëז¤ÑËø÷çÞzî2¯Zf—s4-ß÷U×{×U¥Å¥XF¸Î„xŽ„HÉböÇÿ%zœGžG`Òf»ïeÕà؍‘½eӃ}ÿüqóŒãœäZý˜|¼]§møø wR¹!q“æQˆ»—Ü{0¤ÂÍy \ÂMݏ}²€`tòØÁb׫EÓzã˴ëôGJ¹ƒÒQ ‚TâWôÁ¤ÝÒ:|¯©û£ü`nâÈZðâ[²,!ž@Oÿ·Ô0¯ú$¤‘÷BP`#
+o1N=%É6#œœ_ò³ŸþÛ֍/¾Hž(=ºïˆHž­‡ð‰HáTŒ-8_E‚
+ÝØóÑO ÏlÍ-ÙðS^5DšŒÂ…[¥Ÿt·ï²#ƒž# ñ‡ŽN•-iêš^œç—/š…­¤®Ì•Zr[|q(9WU6§¦*‰iéh!€Œ×t­ÃŸÃ™æ'Ѻ9Y/™hÊj{Pž_r›dMvDZ.‰¦©á9Bþ­8h&m)|è¼êÈ
+kÃH¹¬5££šê4ævÀu2Ǫ„THð±&ST.¤JtÒaý§
+:åÉÎLaþþˆÑíú6rbÒuA]Œ7ð²hE¸[É?ÖF}+njäÐý¾5ÝIñ¹ÑY¶.êGd ör½ ôߪ 2n\{ñM–/…ƒ(Ø£Ç–Ó ’CA©U5äæ鞄Üp{à¹PÞGW!w)º´dÀw»ð¼Üϐ»a"/ôˆð:Ç5Á ¹–Ï6qÑ;Yz%»U0îùPiµ%Ú ‘|_¹F§6÷üæ2&ÛÁ;åL:·ÿ—i°òÿð™Ê89/Yïáå7àpÁAà^è`erDߤR ©"ž!Ub[Ö-q
+øR©1j]ˆž÷SÉY>ÔUÀíÀsãU3Їlº—yº'×°a)®„¹™ýQèæÅØr²ÆNס³…©æ€
+stream
+H‰œ—Ar$-…÷>E "SÎñÁÛªíDÌí‡÷$Òm÷ï˜Mw}†|! ôqŽóÙô¡‡>G{¼>ÀW  ËºÑãóãŸ9Χ裌ú¬úx“ÏN†Ô}T* J›Rrȳȣôóyt
+lêÉe' ܯæþŸL÷Ÿ×ôĔê>§uXvÏ)ՏçѦRŸ–kŒÍçq•Þ0eс™S/‘ßaK“ë*'ÚØ4¥ã+iaøï7B/`ØÜÍÀAp»ûŒ>שíѺ„áÜëÉ8ç‘]ð7çÕú~3iÁü-Ì£S…vØçafLÇɗƒšÎÄJÄÈ/£</Äa…‡ßddMãìY{0¨Ø¨J¦æRÍ?u®\ŒÖ(±›.ä'!f6µ›pÇÜwæ‘×8!,¤Ó„iþxÚnõ‰ðžY%R '– ×æÎCŸ&„sKB͕8Õ³Üdg¹s²g3 Õ¤ÈIÊù|ü7£ZØïÉ­Í¢Aƒ>?ô`Q»º-
+DÉ»†-ºøÂèq øæ·pŸ“)™§[(ã+”ª .ÓE·LU'ålJ-Ó£‚Ó\ÅîÛ–Û¸g’#àLâf^ü"DÇàx»¼ùiX˜ºIKô²«ÒiR§òpCÆØ<Rä8òáᾨH
+püH¾*scð^zçOG΍Éöm³ÉͼÑ䮤psÅ&Å£G¼›RmÄm2—d*¿S
+4W8¹QAÝ¥œ=!+a¬Ý8̀(‚st~KðëË8¨ÜÀöfaXO%锪ã^¦Sª²üªð2×ZOz^Ô
+¤Ï™v¤(ýˆRdlD3©3uJ-î˜;÷% ¹Êˆ¢ePF—oæ¶ º‡]7µÐê»
+›¦(€‰|ªæò·¹øªºËŸ=ú£üý©TsÍÚìohkÁ¼ümê²/nR>þUªØ×{v&¹k¹Íûbíký3Þß»n^mيà|d·x3©Œ¬(‚Ö0ìúµùt¡¶Ÿ4!ku0È áwJ7¡¾ê`LµB˜H²P‰Æ¤G%\¿­€…Q 7כ¼gô­X-܋¸VE+³K˜»iC÷¡CWöjåК¿¤5Ò;û]gÔC?w¯‡›¬&^á÷Öªš+âæšBÑ+â¦~3á.%E—"J(‘y¬½ž¬P2¢aZê²úÈŽÃ/b]ƒ–îq’: Ö¤ÔLyòí¤Ù­gª?H½K•èŸ~„–•xp4x2¨¥fJú|§·ÝO‘w;Èp’~E¸T8¢Âw«ÂÔ£í&HúÊÓ9{ĸ«Zøo¨ú ϸõ«­ŸÃ­ˆôµŸÌëøy¦Gçë[ãÄB²¬Vs]© +ïvÂÞ4…£ˆ¡ÈŠà=“‡ÝR9W9l~⺊kœª•áD%¢•ði­ª»gJü'¯KÖïœï¬ô׋þŒd›ì7a"iǂwÈ{3}Ž´.X@»Ë\ièÊóx¡ó–žK¾þßd¿Šj‰ÌîªÐœ™_¥ØØ\w.ÃöH’—ùÀGÕ¶,ðWí˺~±ìGOëÅ"zìǎÌÔ×ãçm¼>œBWYß]n‹'Ô&{`%•ÿ1^6ÉqÄ Þû^gÕB¿}We5¾ÿ6¼H´ãT¼›o$=BˆÞ­™Òuúì1S§“˜Wç Î÷ˆ³ÿ[i¥ö$1Û—Š¬;´2œ@|‘šã[©j«ÏìLòԢ͒®#è\F;xd»ÓIlûÛ½qÍE›ä¥2þêÍIâ*§…¦U§ ks¾S*#)mDAŒÉV)I–²ú+Yw°=ÙFx«“¸?Â`µ>ܱgàlãZɇe±0)_öÞÜÍ]à»6QÀCY_.9àÎ7R¯<8¡3YäAú
+ï¾ÞCD„¦/ Òy­ÙþŒÎ'Ù?<…[‚÷b…io°,ÒXñZ[ ;­ºUB«Æý”BâxO4V&Ƴh`µulóR‚ÓWfE¦•I¶q̓z
+³KÑ¢ÂÈZAf•ÇÊ*±&—¾RÚɵqû3 f†¼¾Œ´ŒƒP¿Íá:ÎzO@zÛA¶° ý°™¯Šã²á×Îbœè`×Ù¡4~–Î+ŒçÒ°ö/qqj[nXÈ´è ŒH´ÞÓÒ %ÝgÚõSB_D¼Þ@µb–ô“¡d
+stream
+Ü¿S¼µNèŸÊsÌ
+]®E`r ÍK!k;×®Q:«AQdAk͊M§¬JA`Ö©V
+F»•rõÊb՟çjf¥?÷µÃJhÞíܼFDè¬Y‘‰XϨV|:µ¢R`%ë+ýé­V×dűŠjW +ô3YÙ4¯[Ùûj¥À¬(+¤V4£[Ñé”U)øY§Xi½iå‘Ç_i‘Ó¯ŸÅiëõêêõ´wkÿRôõjm_s{_cy !IËcÏkóX\×iÐHR(ƒ¨Cꇙ:N3-{i7/TàÉËÚ§aU-ÃK;­Ì­¬•½¬u˜a2Üp`Öúÿ¹2mKӎ•iyaÊÊ+³ö¹2=/LkyaZ;F /LÏë"IӺȔ¾0-¯KËËÒç}î}ÂÇÞ7Œ]<WÚûs{ö´÷gK{_í}…²…-»Û2Ú޷锽ÓÞ?tª•‚ÑfeÐg+†!jìk»•!eâVÍëVƌ˜™l-62-—™°‰”UÌ
+¸•â—½A¬e4+6²3.ûS§ï÷Ê£é—nwYp‚K7¼ÖËÍ{¬\t“}ޜsŽ§Âu–ÊØHVìø*2æxk+\͒*â/Skryˆ;unøX| Ʊpóaì¸ó°z?WÇE3lÎðõª÷â³Ê8:/#
+’†Ìh¬ªA`–z¸ñúÒ!^_†µRº½,F¸±úR7à ×Ây…)^îÅJLSz‰é|ʪ–õ>e¢ËoÔµÐeE'<5/œæ‡üüן¯¿¨¾æuóÖ.²Ò,·¸ôw§Šß²ƒvlû–Ï®ïcÁ~ÛÈÅóm¬²ßÍKï>ÿÖ.÷é|¿ÒuÁ…þÉRiðÅEWDᖈ1_„+öéFy3àø?¼Ê¨:¢£¹á‰ilå#]ãð7§äq@üÿˆ ;ˆÖÏò}½l6cUH{qe™‰y=+›X\*ÉÅä«ÁÓU³)\—J5
+`¡>Ɉ<7=å­w–ͧ¬k{ÚûT
+qV7Ã͎G 2Ó³
+p+Ê©D%èŠ†|87"؍9cLô*"u yG¹®âåF¸Š·q„iŠ$ ±–UØ”ÊA ¢’ÎlÄ ¼Àt<ÊÄÒ¢„lN+0¤¬ŠÕH /ÇR'©%¤y½ÀtVg¡Y,¶>Ÿòÿy¿ï(Vñð)ôË1×+CZ¦.RA+]ùXAvzÁ³ÓÀN¾æ‚èdC8 ì´Ü(‰6šúӚ\vúæ3ÑÀNëj8­Ùè.ë4°Ó•øD;]2WNbÊ>TbÑ~])cÀÁC@ðÀÁCðÀÁÃ~ðÀÁãëì¼~|珵 8xYù ‹ª 8x]ðÀÆ[Ío8x”|ðÀÁcÇlü¯N½È@4¹eØy€ãFmGŸ…o8]€v“ÛÇñ ÍdŠv´¶’OÉÈ·5èäÄ¿@=¥ jó)«RxŽDKÛÊÀdÅ1«jܦš%¬4*¡áÔârµ :§cQda"ÖSªŸOY•¢Y¨X‘›ƒNÀÙë5))Ý~÷ܤ÷.²À?Oê{‡4F¢áÚèJ×X¿áŽ’¶áŸpn.Ÿë7lÃUë'öÙþxÕ7ÿû÷×?eeŸ‘ª®pÎTuŽ›TÅÄRí‘ËN®^. í¤V“„ùßZvp;*É«®5­ºÙ2»ýp
+ÕªÛr zÕm<`½ê7©ŠáVRÙ¡¢ºƒD5!ÌþÖ²3ø€»£’¼êĊÏçìϝC(î]zylôCKNxÆo©‡Ü±ÐþŒkBe¢ù¾¥÷1ö–ÎÚ"ÝCÇ
+‚XËhVl>gﰒ…žV&×k²²xû&/S./Ë=¹m±‰':
+( ëíkÄÕ Ë#ïU¼uÍ™‰R d½}13=ó\¡hígÊ@3®š±Ú $½}-uËòñpЌçn‰^²J ëð…LxƹBQågJ@í=g¨½ç Yo_Ky†Ú<ghé2CK•²J ë틙é™çE|ë n¨÷s†z?gÈzûê½ÌPïç õVg¨·:CV d½}13=ó\¡¨‚e†· 4ò  ‘{W@Ö1
+stream
+%¹¡`×™®9ê†!,ÊàNC‡ZêÖÒP/Äßʦ«Ûäɗ%4tÕqG¨Œ;I0tÕq'2¡ù:Ç,Š`¯ãΡöh
+×У”MA¹6áƦàeâð:eSȨûH$Ú„Ÿl
+‘›BHöۆühGԏ}$’Fm
+¡ ™ÐŒº4ä‹2¸‹¡ªöhÛ4„FHCɍm’Ñ^iÍ7¢Þ˜#‘4jۆ®ÈtÍQ7 aQ©ç9( õ-'ÎÿëÒ¹ÇØ°‹ ÙðóÓ7›€<\%´€©µ”[gôy}'{fV•Ÿ&ÞëÃÄ¡›e¼¬-Šh¨»+ôð²¿ïáeÛá /çß¼ì8ÿæeÇ釗ç»ÓËöÏÄÈ|¢‹vüô.^µ(K/X”Ñ7Sª{y÷Ñ۔ko+,¯¿Oö6…Ú۔³·õw•ÞVÈvDayêÌ´½ÄºØh±(‚»ô¶S­ŸœvŸ·ðqû$ëÊÛ§Íóö.·P¹}’üä$ëˆL?Q7NEð®·Ï¡öxC1„ç˜
+/¾!ïùñ$c>ˆçÑUFÒBo}C~Í3ÓFÖÅ|‹"¸ËHzª=ÞxæÀ“¼ø†0ÒàIràÁsÎhùhHzëÂÜ™>ÓDÝx°(‚wýh8Ԛ¡K•ün¾·–ü5–›MyêG]a Ô»ÐÔætéI^A~”ïì™0'~èè!MZ"šþüp5QÈþœ*#ÞO҈֨Ft‰4â)Öu¢‘ öÌs°¢4¢K‡kR,¨F£°õ9Uº‘{~õšn„_Ãg:ë+,'KIÞ۔ÛBºº’œo¬{=ýŒÊÁ\™IZ¿5¾ôdG¦Ð˜¬ëôç'Vͨ)BfÕ{8Úz±G[DŽâèù>‹Ž„ÊÂ
+é1FȊ;6å0ѦV5*v…¼yЅkçZ͝¶–§ÜiÁ¾c„Vî4¡^wڒ1%ƒrf3Ï!vq}"ÉvSÄN‹Õ"ör§*#<ûø Ï~rK#8ÞX—gß5EÐÄF^À,Fü#ÉÎwÄُÕ"öòì*ë“ÿ¹ËþR\e 灡;÷—Sn°ˆúB"á^eƒ ¿Läöžerƒezރ¬®Ø™Ò¦uFk[»õ¯³á­ç%Q†R½ÎÚ£O@[ÿü‘N›´›vsEÉöaáí¿µÄW˱ªÑŸ.É蛉E©{¹ m6Ñ(î™Ma}`B“C‹ÒÕs¤™×ғÎè*³P!›=
+«V¸iêŒçFy—sC¶ tãlèßWž›k£‹Zl£‰zV6xaÙpL´£Áª87±"ƒ›çæ”êN÷^Ù.œîýFØ/œàn7¡ÞnB²b_vñÈM'82”)+ªÙo Ô ~>ÌJ”¸5cD©iÄ[Sƛ~˜h>ÓØÉ°µiâòí&.ÛØíoIr#DU„$ÃJ¬+T6¢½ª•«{W +ÁPÕõ0ôڎL+—}ixH÷“h%Ьx¬  ­`5Fßò ªN~¤íjEø©V‚]•Ð¤•†–+͛§‡¦^r‘äVˆÓ?ÑŠ‚a%VcôI+‡N^þ«XQ¾‹r«‡½²wZQ¼K¨g’È¡,pú€s‡X1’a5D©l”V®ãÀ+ÃÊU¼RK+­xő¡LiÕFK--<KÑÄU|Ñ4¢‰û>M&‚]‘Pš¸çaBpd(Sʶ
+P-ø¹ËŒRa"ÖAô®&…nbî£k)×®EvEóÉ®¥Pº–âÅÐú–¤U»V¢*B’‹‚a%VCt—®uꄕëèZc¶£k‘¡ªe×R(]kŒ—]Kÿf×
+ù¸¬]K¹v-2TìZ
+ŧžùƒ@*a´p‡tÜÃ)övÁìwÙ@œŒã2ýŸîÂ{4tÖ{ëÑøø Êýž|¤]6m«„è8~¿7£xÔWÊÈìf£Kz-ÏB©UŽ²ÜG9Ê*Œ þL½²±°}®jÂäù¦Iî£eL¹é(S5¨jÒÈd~IN-óNšÊÀ[(3¢©´RH€1KfS›â»Ë:|N
+`´û/­´“‰jx2ñ ž Ù6ØCÇÞǺ<™Èê°^<RìãÁóCGl?£úÉäŠfªÜæ§'ê*ûчÁçÙ.Ó?C™Œ7DüÚK¤_ƒ°#:Üé—A*Œ§rZ‡”§“ÇõßkøôTړqþüÊUÓÊ W#‹ËŠÖ#UŽ‚·gò‚h=.àáªA¬æ°¡c€x#=xÞ:
+stream
+‚dó $$<M4ò¡ËCäÃ"¢‘ oh B‹Š”~„"U±–—Z´ß‡X‘½]Bï|÷ޙ93gfþ3g@B°Ysû'V:ˁÚk¬PTîªl´‰ÀÒó.Z0O«=µ€×¾,¦W––Ÿ¨Îo¬Á,Ï*Y=½ÓÑjx Hºê.q·mŒY¬HfŸÁnVtÔÕä€5,÷q—Ï«
+8@I4FØÕ)f¦ÙŠ£Šw݄=ØÇԂCøŠ‚Õó]³‘ˆÇ3\O3Úè°ôÞ]âɈ©ŒR? ã•
+ÕÑ봉Zé$]£DžxQܔn9[RF3å*s•eê
+láÊö£g˜Îá"©D¡LÙi½Â´ÖÐo¨‘vR3G9Ié
+ý›nÑ&‹ˆvћIsÄKbƒØ,ڙNŠkâ?2\ö–q2I&Ë|YÁYÕÉuL{åŦ´+&㜨֫o«ê.õcµÃl]€€?m»{÷¬ޕÞzïo³yÝù mŒB/$sö.¦|ÞõÜqâ3
+–›â æ£] ÄYù[ξ]얙J‡šCn¾¯bf›KP­:•ST
+IÏ"Z9ÏÓ­F&*vþ/â©2…gÚ>¾ÝxŒ’™¬‰àÎÏ}1‰'DÓFž
+ï؈ïð©Öû
+*ñߜ³4^Ííj†™ <âŒÈõž/£M¸Ê´›…õð(_ #ÍÕæ߸»ûò„Ý„Büßr•78ÂXyƒ¼D“™!+¹ÞsÈ6w˜½(ns&&â ¶[U¸¬q©i“òF¥ŽLùEòˆáÆIzzPâÀýŸJˆ‹í×÷ɘè>zo»Öë‰Ç{FÙ"#Â{tïöX×.aCC‚ƒ;X-ª"!Þ¡ghFL¡ÄècÇ&ødÝÅ
+×CŠCcUÆ£6†Và7ÓµLeËéÿg™zÏ2õ%…iÉHNˆ×ºf´¦ëZ MÎv2¿&]Ï׌ë~>Óϯóó!ÌÛíì 9"ÜéšAšÃÈXàö8
+Òy»¦ À4=­$0!MAÌ1g„ë•MžB~F„;†7 „pR†MOw‘zº/CF;\ÅFV¶Ó‘e·ç'Ä”V¤ÐGãü&Hó‡1,i†ÕF+óUƒUZSüaÏê–0ÄëÅ®)NCºò}1ºÄqÜt#üåo#þ'òæ]Ӝu¯FI#¢Ló‰Of¼“í|xÕîûæçóì+¢3
+<z5ƒ8.Wãh¢6ßiP-‡Ô|•øªºW_‰îði
+…Qÿå¾êƒ£ª®øyïÝ÷vA( a©A“ð! ŸE²4$›l"-ᣖºR©©ÖvP6 a!Ö&¤IŠ…&tØ`¬IÆÖÀŒ¦ØQ¦Nƒm¥~d¦šN«Ú$¯¿sß{Ëî c¨mÿifùÝsî×¹çžsï}§)0gfyL­äš§Æ䚈Sï^™Hî ~ÊúcÞ©ñß߄”UۗƔ ŸRý«¾°8£°¨"”¶*Ziû¶°$I²êÇëìR,%/¤¥ªvIMÕd-‚rc¼1 ¡Q1‘…Ÿ!ƒz[§Ç‹¨”%-?æ«\cý/™ž~ƒ:Í÷¸—¤kÝl3cKg&Ë_H’“ÌÕ`0®Á’ŠhtdRB͚p­Mˆx* ¥§åÅ(ˆÌ̯ÓìYÌ(Oà²<n€ø³T¶˜Ô0Õ.—㏣3{V>ºh4?#-?ZÝÜiF¶d¤ù2¢]êYõltçªJ'p:Íîý©±üåðÕve)’B¥íJ]Q{@©+®uùðPW:­*j^åŠòöLԅºÒˆR«²–•,¤±@…
+yZõÊö©]ø‰ÈZ!RÞÚ©ÔyB[;UKçst*tÂÒ¤ŽÿøŒÉ+ %FLÉòl¾Êðå´|p=åùèò©Á©>©Iü3¢†­âw†˜ú}YT‘Xë™LßÒK)¤ì¥
+D€Û¼3•oXéôÉg]îZªh‘èÁþøqÎ# êoÐóZ=í}æï•EÔ>ªõøi3¾ŸÆð\êªaðøà q”sîXr؉W7ó™oÇÔ°ü{ÅÆÛ6>>DýX±æXÄç³¼pFµV¼š—ãñyŽžïwâÓ§aW|ŽrÇ¥›å݂óÝÉSرÏY?Ÿ|ÆñÉçŸ3N{7'ôª­ˆc>‡_¦
+àb§1ÛwÃdßgöw7ð%éß¿“ߊ!úœrÁ¼.U.O{1@ΆœâøÓÙ'è õ®ýC¬Fæ?Ýz·ìÞ×ádõiڔ'âñð8-gˆ\´ܲ÷-g/ î…¡²8> *è6­‘mB N*wÒ4†š ['qä—Ï㌸­ì?šV3dîj¾×€xýZÅHðëBö«ÖhÕ;ûãì‹{`_@¼BkÁSÁKÀÅà‡ãñmŸI1_dÅ{\泤ßÕæZN\ˍó|×\Ìÿ' w^zÿ×s)„X|€qï\¼#ûð>¹›jˆ®â,ùdðœC%à× Ãí=8òXè¾
+³³ŸÃ°û[ÃÙÿáX·¿%†²å|3½‰w_,ñÛçÓ¾qþÅzÕÆFqœá™Ù³om°oï
+¶‹Ï·ë¯|“ÃäƒoÏÜՐSd†ú\ƒÍ‡%
+ËY`B8)/ _N ¶!¶õ6ÛeR!’€DTØj hº ›ØÒ%ہ½À pMÔèRaìð|=zIP|ëó^nH…mëDÿr$ÅÏ­LqpEJ¶8%{º&U<·>Å3ç¤ØQé58çæy‡R90²–²ßcç§D%ǤéĘ”.Ñ%G¼Âíí”,„JL¢d3Q“CåÙ½\–d£Ä3ÿcv5UîÆóíޞÀ³ìCò0HìC\°ðu¹›ëz€Aà0
+øv F+{VaïòïMa¹ï{Vaïàg½kc—à]b—0´·c¾EÞ~áxªÓŽZ™v
+‹ÓŽ£À›`‰Ýž­&Ø?âšG=˜Ç.`èì¿@4  èvÙð.»H àp 0l܃/G@c#À[ÀE2Ё&@fçcè&ÁÎÅÜõj €e$…˜Ô3ìO‚ßboþ3ûƒà7Á.ð{#æRI`
+ê îQÀ
+¸õYìwñ
+‡š ØÙ ¦G…­ü@#ÐtÙl•Å6«42@Fäª,F>ü r\&úVUw/ÃÓ¸q/^
+c,Ō–bY—ⵄ=$E¤C¤•¥Ä_tq.‹WùSñÜÅÞíål7ã1 “Ë€hËh £¬h†€Q dC]†w kƒ­ü@;°²ÅpFF¶§‡øšXuzЍ<bøÊp•²R½Dq*e¹Ôí¤6mt%]ÌG
+
+zƒè‹ˆ5ÞÔÒ+“úȲ¶Çٔ\¬×ŽâÒH}²£N,ÞÚÒ¢=ŧü’LñDÌ©åõfÀ«ž
+<àUx§xU>Šm骢=µ¥ÅÈÖÓU
+ŠíåõÄÓµ3º“…¾LýGñ‡¢®|ÂSÖ}ÜêB¦¾!í"$lV­›þ•­-½V+J;øO2gʦL %’C©Â¹(\Ì %i\È˖𲜜´ðáç¿3ÍËø[`°8Õ]´‹D#’é
+‡ÍF*ö,;±ŸvNøHCò?]!¤å†á]èÍðz2ºG"9órëv\zqá»é¯à[ø—zî{ñ·GoÞKÿ-m/{!TM( ñœnh$Žl$^…6 Ft±Çàþ1¶õi1–Rsçzz“É$`*Æ>dUî
+ìp®8GȳK—6¿Îrn]–3¬Ýc™»¡ÃG·cU‘D¯ ¯$Á(Ñk(¶’„! ëS ™çøÿ^iVâéJw!.æäžáEž.©Ð+H‘$:ÒkSK~ºf'ô)t ŠïŒÝB^8œp8 D~å›Èqãš³
+Õ4`j7…(>
+×$&&>~‰3dG7‰9rG8ŸØ‹ãø;H‹,RnC0 .9_â G㨬,#†ÕJD²C*Ï ÅQÈHò°ó™¡¥oþ)»íéú¬3_¬¢{‹#Ä
+°7Lpɪ*²ærñ2¥’ªš“{†UQ`¦»9R4ƒ> ëô®°Ã]¢žëݤϐˆ-##˜¥¨„³Tg,ÿz’ŽI”Ÿ¢ž–ѱ¿€’—L”œNb4¬•LÚ¹eˆN©ÐÝô]»–¦©"Š¤"ƒæ»Åÿeò™Ú£ÖLcFô)î)¾»Ì÷ –káKR¥´Ô^-­¶×9ë\{—œwüw2ïû¥ËâEɄ¦{š¢+ü;c÷‘ä·ÀÙ
+AÔ(“ƒÛ…Ú°©MaŒÂJ˜€Ç#épË,­—vø†p/üB°qñSµšÙ¿nR°L©fDãº5z›’3¥˜xŽÃ ©
+B¶âšJW‰—j– œP25Ä‚(Ð…rÂË:³T7ž=ÞPXîvŠµÝ»×½ÜìîÌ>³e°zÍê-énü| [;Üôӝõ­î·É–†U;wí
+¼Ô±ºêèlýgß½’þÇ]pÚ p½ o2Qçri­tDj“®I\9S.ÿ€eœÀq$ñŒÀÙDF@$û ú†edD$™˜>҇,Ðt3lˆeá4hc»Éš‹g3¦eÙ&•Ð6^˜ÌÉ=³BÙºq‰! FN¨H؞],´8¥“(»‹QH0„þ˜þ&·/Ðߐ.{7n6#ý1¨Ÿ)„#T^âÊ]ÅÔAe$þ ®Æhc±¦ÙRÆáp@¸Í>MûC‡3’sÝ cLάÃN›§KTðŒá– 1&m_“ŒpLÊ ÀyVÌTÛJh¤Šq¡Zè ©ŒŠÉÁÑ]ä­7®^íL㪓̅G N¦[!©ŒVñVB|½Ü)$£†½_Æ,|ˆ…µBì¨@Ì!˜µJr-ÃJ¸Å¦$0Äï°ÔZÿ‚ã*\E˜28mÀP¬|ö Š-RF5ñ…#©Eʪþ
+£éªÖ=öÀl-4Z(-_3háÒTSÿU³Š©š:3"ÎÐi¶ØÎØín´cS"d*fõ€œC’¦D$Q9‘H˜HrÓnDI^O*¿ÿÕT•x̉a³S¢ã S~T‰ŠÊÿ±úŸ¶>c*ÿqCFѓþr¯úª÷…Ðf½÷ÿK¡:ƒÞì]?âmó_ò{ï]ó¼o{۽̓y«y’Û µ!Š£eùà }±½
+zO{€šÄCKh@ÖvR'²zq ‰ ûªfê
+lGS4¢µÌ„uM¯U§ZÕP‰Úx\I¨Pí(K™Û0¥ƒ
+NTNˆÇÓ¤¸(—‡Î4éšíP›BâqSQÙØî­_ù|Ò(Žö½rá®îOm«ûëñÓ7ɯOnÚÒÑVßЊŸWê¾QÞøÞFI[V-ï}€•#é?C'üaúü™ËLÑ/ôm>{–r¦JÛn6lþÏ(5‚,‡xÁJø8ËÄ1ÏB—œÊ¡ÝP«Å쐁·”« ô&ð™;ÇÍ2G4ÌLe2ùè4νúoª«¶‰óŽ;ߝïáó+ŽíØ9ãWÀBHÝfãTh:F)UC0d‹(¨…ŽŽNŒTk Uã1!› Ûª¥bPBš„nd V´Á¶ºµhƒnhCeADÀÙÿûÎn™Ÿ÷°Ï÷ü~¿?~]xXpñß~ÜΊ.,H
+}ˆöë§õóèJìfÌkøbÞXŒNrÕx'UYՏëm…Á¶ð
+ñ¹Øw}[}{écoUþéóþÙ𣊘3"@üí­š<'µÚš¼éAXˆúãÆÅÌx¾Š2°O¤:”±d,kìßÈáx÷bÎÛ¹Â<ÆÚ°Þr|—û26Õärx5¹„ä„4±/ÕP/„¤ k_ øX ý'¿TüÍÕëŋûáY'?“9Ñprç›ÿX¼ò“?ý;!Ó>û5þæ¯Â¬yùlí?)~ºýxñږwXäVBä† riì·#Ñ@4Hº²x‰ìÇ>šJ¡„/DÒ(Nø­Y¬®1v…âMÄ]
+ƙl:eQ
+>)ÛŅù
+§cÞ#%…þk?«SÞ#Qö}²º'‹³±ŒåÆn.îp¦{Ñ灘gøS »ßÌü 3ñÍ|ÛqJy&i³ÖÙ³…d´*R®¢.-c¦ƒ™êŒœ2Ét¥K 
+“>°ÜÓÞ-yO³Ýšâ¶lmƒŠÕa¸I«p„ ™+Œ,Ï*ÌÙö¶%v‰="IßQï#•¹0pö­Bsåýf‡¯G>߸Rö†0˜<#ÀéŒÅ{×s‡$¿ ë_"m| jðâÎÕskp¬Ž1ç<zÄp³½%#ýþ@"oLNp3=Д7ê›8<V {K†9×lž/0ŸÒàMàŠÐŒ&œð&½8‰½»q
+Žß±#¼œ –Š-µUíRW©=ª¨ÊŠ6Ž¹W¸ûV©“n—;é¶ÓIÐoN×"¡¤Cwú˵i»yqÜ,aæíR%ř ¶ÎèÂ(Y›Z@Ož!§ý†¿ü¶æm”-X ‚;¦Õ1
+.;Xô¥ò”"±´$8õDzb8æÉ°º ŽpUY—a.”Ò\Š€:˜.ƒ8ûM”¨|Áá
+õYý9ã™À²ÊuêKúKžõæ·SkÒéu³¾Åóšùjêûéú.Ï®`¼¤µ‰Œ/š‰(™‰8ƒÐĈO¨Ÿ–AË HôÚuÑÍQMWèµñl§Å
+‘¹ÇSÇk•x¼‚ò ä@ÿ Ž`ÌH}êuçù?¦«¶©ë ßsîÓ¾_;öuìÜÄNp'&MB ‰!g¼a ¡
+«CŸ×o ~Ëòyqþ‹D—Ñ—¸e}ï‚Öe“²OÏïXõÂW??to§xÎu´çøÁd=¹ºxÛó;üò÷Ù¯_#Ÿ™ë~úÄ·6N›¾jŒ¿=^whåúß®èøÃvã•ÝۗΫ­]›tjÓ³—7þà*ÈjŽα)©+¥‹´ÎAÜEÁq–n<ÎÍg¤0¡U<áÁ>E†!Zeà© #çW¬iÁøÛ„>ÌlŽÎñ‰Êéׁfº Xٗ¾‰\¢0´¦št¾b7ÍË
+¹C¤Á}V q¶&=Ù'~FÞ ˆ_Þ÷rdè¯Ùh‰Ác
+I#Gƒ"¦6aqõ™7¹ªfà8Ú'$ôd;^||ÎP¿` S¸WG+Scº£" +ÊõŠ
+Â¾º‚‰³+ÒzºbÞQÑVý²¾³üuk_°G÷՝±¦Ë°ßh ôÆNލ] \Ž}ì»S¦Y¤ñԍ%ïñ0Àg°?;k!Z!(?>¶"‘’cg ³Æ.R–Ä¿¯tÄ7i?Ñ>Òîé÷âA³*’ð+öæ//__NËí*£ÑØcì7† q¿q̸mð††­g c3¸±Ï4¥…††}fH.¼6ï?K{OçïõÚ¶Ìᢠƒ¢éeÎq6¯–·›íœÄPª´8‚È0L¼_æ!"`7Ã}žß°(€qQ,¶Qdã"géҔQ–â¢f4­Ž‹ŠI¨uÆ(@ÈWN3£&ɤgјDuò|’H’¤}kÂ'úKóKª"ïK—%’%*xRIC¤|ôGÒЉMJ’Ç•LÜ\ª©¤B3PIq¡q䦁Q¸iŒñ¢L_¼q`°Z¶jd}&GÆIFÄHUŒ£2ðÆeJ‘~9Õ±¿ñ‰2¤'¹l
+=)u®«œ¼$“Ÿyenª}Îc›ï<Ø1¹žÜˆÙf¬¹jVÛÒy“ýÖ:ÔÏ@Eɓ×0¶ºˆK%)®•ë„î<¶*çۂJ Ÿ¬`øeJYcÒÒÄPÊ,—>ù ÇßÓãðB(œéÐHȞš7Õ¿ o¿-¯Í¿îã_×›‡ƒš¢œkh¿F|VëÔ·éG´SŽÓÎSšfÁèùwÊ%Ë]ë][]¼‹@¦ž«æЩ6p ±àsî@´Ë¥r|´Áõˆ¡°
+.)€óEÔx°ƒb¶I
+Fêq´
+m|-ó\ï{ï…ÏÄ@Ýäi6Ùó=ˏÛížg‚íöfi³ï.½›orqé~«…,Î[¶«Û<`RÓ
+l§Ì£½xzÖðL>š5"½72áOÁ¼{ÑºžH$4þɺ\ÇõŽ²ŠÄqèÁܝ,&ð=ՄM"!«ÖŒÈ©HE3Oæå0+4Ö¿²Í
+Íæ`C‹9}崛®±y ñdWkl×¾wޏ}ÌìsÆëõŽw×kã5쵝uÜx£æQ  Âx7¥È¤Áà›WSŠ
+ `ÚTQU$R¥@‚ m~Œ‹H•¨V‘ˆjš4•ZA©(¥²TäB©ížs׫µ¼sÏܝ;3{¾{¾ó}mw A<Kû44ô
+H¬/¹>ÅðgC‹QÕ'ÇÉÒlv/-´sÆt— É<08ñb²)ÑÜ4ØðÔÑ%­+Wîïz÷äˆPxpìÂò.ìü áïA^tî›nLbï(K«¥µ*ï÷þS“xՃ[MÂÂ$ât N<¶V>ÇïÔ¸€ä+s ”FϪspÕè Œ‘MT² wÌH‚
+R³ÚPH³µ5ÚN~»ö'þº$Ÿ”hJÊÈUJ^z\mó®ôvÒ¹CÝ-¼$¾¡~(ý^ø\º!ݒÿ%ÝWÂMy^à$IVUNTE©’¥,K<XVQ ‰¢¦©p‚rO%YQthà ü®*
+¬ß'<«t±¦$—†"Ñ«WEéaJe%pXw"Nâ„!N4DœqÂè‹0*$¶Çûeeû 3±fP3ïÒ½WušTO`ºP@ (EЁ>d€]iåÙqÊÆz—©4¡îã9Õòš97EÑ· °ÆÕÔºx^UâñVìÚ@<ÃgÎTæÙ+tIo‘ö’lV¼G¤É¡Ê<€84Ááڀ‘—J;ó°áŒ^Zœí€Í† ÝÀU*¡<-jeX56`á⿟‰å§¬bG©£iÌ6À¾DE˜¢²ypþòÖD7ý͵‰ã?3ð>==±c¼‹K|o¢÷å+phfõzýœØ„ ‘¯šϱ1×XçÎ+É*6ºUáhÎ/&Ä7ÅQX ‡Q‘Oˆ[Ä=â¤(€ÎÕ8¾
+ã\E+,õ‡êñïC1ƒV‘éô¾Ò4fæ•Añ×%5Þ5y:M„îvƒ"/¹Ÿçëü_ƒ£üXP°„Zuoî%ƒ¾n [_X“–à(!_((e*E¼š×çñ¥-‚å2BªÁX1ºB¡h2Êb?JO²+PÊ錶BŒ¶ÎOÞG9 ‘†bÎÇ\¶½u·¡)7©Sø×WX˜Ä²\Sî´5jq[¬cÖikÈ,žkGX®ÇM³”ÉG)þ_J™õdߙø4±
+ÍÕÖi{4Áa: NèÃ7]Ô¬©óO7è0,Y§F5Ük)L¶¶¸†@!CÐÕè1zšŽR!AÛèJNÈ[Œë(ën”u7Êve®b13)—FðæÔÃD}€‰z;ÑÞlÑGJ°Dx(nîÞ0ÆMŠmLã0 HŠH„¤7ˆåÆê-âзU›ü ôúO´yñàp÷ö‘]k_›cžÜñÝwNmÛzfb£øÁž~úǓ¯¿=ñàÕ¯µŒ?àO|ráÒ.}üGäÒýPŠ†&ùÈ}â± 5šrÂa•ð‚°MTSQÕ4U/᪳äM­9¬P%éiKš¥–áÿKA3ºÄ=לAiÛò¤Á©q·”-"͐+íf6 ­Öqp0wûn@~0;y3_’€Äø¨ß·û檏¦–Í,PÒþ·žÜØÖùü“óç?ñ|¨BÈï]Ürªº½m]ßøg˜…6ð›g sù¨»KH†’-êRuazurCòûê!u_údðºßò^5ZfEç.«û<*Ƹç8Ψ§šUP
+jA+èOÁÛ­t«ÝZ·Þíéöf«ýՙtuzVSz­Ö¡weºj¶¥¶¥÷¤¢ýÌs¤æhÝOçžÐ~áy»úDÍÙÌÅL¤·$þöätšÒÓAMIWN]ƒAj:HOqP$n "¿V©®òhB™“ úœxÚÕ¤]‡ÉOØmöJûö»öïlÉo'ìïØ#¶°_³9ûÀ& û‚9)7„—Ô¥œA‡A"Rƒrè¬Î†"¹’Ãò™9Jçâ›ã\¼<, ø¸‚› ` Ü ,”ÏÑe´,m»A+WËÃ"µ­Òëʎà±\i;¸Êf’ÓfnÊ>ÏuÈéZXú«òüp-­Å§àŠZlxà
+^JzQkägá"§•¾TŒ$S^2 LQMµªIY!FF;zÕué€Ú5[›Ý»w/™AP´Ø×[ü/ûeGÅñÿ|dgf?º³Ùug;ù0Mv7énHÚìn¶Ñ¤i´mI²ùÀ´„`MKc )mSH%H•T«}ЊÐX_D£M…bJAZ„‚ú …ú$¤T”¸ž;³I›6%í‹øpïò›=s¹;³÷œ{Ïù_:h§šòhy•˜JÖ¦íTD{̪úƒT€Q,Úe%Úø¥÷cS¯¤"g.ŸÍ4툽Ósü›>ß¼ûÈÈÔh0X]0óí{½#—_ùIh(|qbpwCY(RÓz¢£ùՊÇã-džCÝýÝé²Â"¿3œhšêï;·ï3¶OÃÙ[b,ï, ü¸'­Á²(;1-íj"cz³Áíq
+‚º÷:©HH.¯^ŠRÁ“q YEÝ£íy^W¦•ÓŠ ªÑsʼ²¤\U
+aÉŒÓ:I0lþnŠãæœ9ofMÙtG´Õ¡ ÐJ´«ÚuMÖV
+‡¶Z84ë͚“½UcÏ·ê…f©`MdïÖ:6¯9LÐæºy¿Ü¥
+ÂüÞXoWk™²¾ÉãõˆEu¨y*I^Ù]ê+¼±Ø *ÁôÛ-)+4圄<۵̖§®=÷qFw-¸|‡»ºÞzráŖ—2©#â»ËNmoîêyû¤X÷÷ÏXi±GàS
+»(î“*{Ì÷ª[z?çUŠÅ•ýK¯ðÖÿ¡¨Öèó7Ê­]±xmáÏ¿>_Ö¡²0?[OþwÛán{
+stream
+[€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤ 
+@8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ
+Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)뫔ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW=
+߁Þô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð
+»—½‡}Ž}ŸCâ¸qâ9
+N'çÎ)Î].ÂuæJ¸rî
+î÷ wšGä xR^¯‡÷[ÞoƜchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö
+nßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾
+æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû
+stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d' bytes='981'?><rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'><rdf:Description about='' xmlns='http://ns.adobe.com/pdf/1.3/' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:CreationDate='2007-10-09T10:34:05Z' pdf:ModDate='2007-10-09T10:34:05Z' pdf:Producer='Acrobat Distiller 5.0.5 (Windows)' pdf:Author='mija' pdf:Creator='PScript5.dll Version 5.2' pdf:Title='V1'/>
+<rdf:Description about='' xmlns='http://ns.adobe.com/xap/1.0/' xmlns:xap='http://ns.adobe.com/xap/1.0/' xap:CreateDate='2007-10-09T10:34:05Z' xap:ModifyDate='2007-10-09T10:34:05Z' xap:Author='mija' xap:MetadataDate='2007-10-09T10:34:05Z'><xap:Title><rdf:Alt><rdf:li xml:lang='x-default'>V1</rdf:li></rdf:Alt></xap:Title></rdf:Description>
+<rdf:Description about='' xmlns='http://purl.org/dc/elements/1.1/' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:creator='mija' dc:title='V1'/>
+</rdf:RDF><?xpacket end='r'?>
+0000000000 65535 f
+0000053194 00000 n
+0000053224 00000 n
+0000053266 00000 n
+0000053330 00000 n
+0000053539 00000 n
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/V2_POWER.PHO
0,0 → 1,1797
*
*
G04 PADS Layout (Build Number 2007.42.1) generated Gerber (RS-274-X) file*
G04 PC Version=2.1*
*
%IN "GMC01A-POWER.pcb"*%
*
%MOIN*%
*
%FSLAX35Y35*%
*
*
*
*
G04 PC Standard Apertures*
*
*
G04 Thermal Relief Aperture macro.*
%AMTER*
1,1,$1,0,0*
1,0,$1-$2,0,0*
21,0,$3,$4,0,0,45*
21,0,$3,$4,0,0,135*
%
*
*
G04 Annular Aperture macro.*
%AMANN*
1,1,$1,0,0*
1,0,$2,0,0*
%
*
*
G04 Odd Aperture macro.*
%AMODD*
1,1,$1,0,0*
1,0,$1-0.005,0,0*
%
*
*
G04 PC Custom Aperture Macros*
*
*
*
*
*
*
G04 PC Aperture Table*
*
%ADD010R,0.039X0.039*%
%ADD011C,0.06*%
%ADD013C,0.23622*%
%ADD014C,0.05*%
%ADD017C,0.02*%
%ADD020C,0.012*%
%ADD022C,0.055*%
%ADD025C,0.01*%
%ADD035C,0.065*%
%ADD040R,0.06X0.06*%
%ADD043R,0.055X0.055*%
%ADD044R,0.04X0.04*%
%ADD045C,0.085*%
%ADD046R,0.075X0.075*%
%ADD047C,0.075*%
%ADD048R,0.2X0.2*%
%ADD049C,0.025*%
*
*
*
*
G04 PC Copper Outlines (0)*
G04 Layer Name GMC01A-POWER.pcb - dark (0)*
%LPD*%
*
*
G04 PC Area=DRW76140462*
G75*
G36*
G01*
X345860Y183754D02*
X298870D01*
Y124231D01*
X345860D01*
Y183754D01*
G37*
G74*
*
*
G04 PC Copper Outlines (1)*
G04 Layer Name GMC01A-POWER.pcb - dark (1)*
%LPD*%
*
*
G04 PC Area=DRW86969585*
G75*
G36*
G01*
X339669Y226251D02*
X330293D01*
Y198104D01*
X339669D01*
Y226251D01*
G37*
G74*
*
*
G04 PC Copper Outlines (2)*
G04 Layer Name GMC01A-POWER.pcb - dark (2)*
%LPD*%
*
*
G04 PC Area=DRW58176572*
G75*
G36*
G01*
X326524Y222835D02*
X322535D01*
Y214943D01*
X326524D01*
Y222835D01*
G37*
G74*
*
*
G04 PC Copper Outlines (3)*
G04 Layer Name GMC01A-POWER.pcb - dark (3)*
%LPD*%
*
*
G04 PC Area=ANP000033*
G75*
G36*
G01*
X496978Y139985D02*
X496832Y140338D01*
X496478Y140485D01*
X459461D01*
X459108Y140338D01*
X458961Y139985D01*
Y120726D01*
X345811D01*
X345739Y120731D01*
X298316D01*
X297261Y121074D01*
X296364Y121726D01*
X295713Y122623D01*
X295370Y123677D01*
Y162333D01*
X295225Y162685D01*
X294873Y162833D01*
X282529Y162915D01*
X282173Y162770D01*
X282026Y162415D01*
Y105750D01*
X282172Y105396D01*
X282526Y105250D01*
X496478D01*
X496832Y105396D01*
X496978Y105750D01*
Y139985D01*
G37*
G74*
*
*
G04 PC Copper Outlines (4)*
G04 Layer Name GMC01A-POWER.pcb - dark (4)*
%LPD*%
*
*
G04 PC Area=ANP000039*
G75*
G36*
G01*
X578608Y374250D02*
X578462Y374604D01*
X578108Y374750D01*
X463004D01*
Y363871D01*
X463459Y364660D01*
X464248Y365115D01*
X489796D01*
X490585Y364660D01*
X491040Y363871D01*
Y351960D01*
X490585Y351171D01*
X489796Y350715D01*
X464248D01*
X463459Y351171D01*
X463004Y351960D01*
Y374750D01*
X335992D01*
X335638Y374604D01*
X313269Y352235D01*
X313123Y351881D01*
Y344844D01*
X313220Y344547D01*
X313474Y344366D01*
X314026Y344195D01*
X315044Y343647D01*
X315939Y342915D01*
X316308Y342471D01*
X316693Y342290D01*
X317078Y342471D01*
X317587Y343084D01*
X318890Y344002D01*
X320388Y344547D01*
X321976Y344683D01*
X323544Y344400D01*
X324984Y343717D01*
X325590Y343199D01*
X325866Y343081D01*
X326159Y343142D01*
X327549Y343918D01*
X327780Y344196D01*
X327763Y344556D01*
X327508Y344812D01*
X326872Y345093D01*
X325763Y345933D01*
X324875Y347003D01*
X324256Y348249D01*
X323937Y349603D01*
Y351095D01*
X324354Y352634D01*
X325157Y354010D01*
X326292Y355130D01*
X327679Y355914D01*
X329223Y356309D01*
X330817Y356287D01*
X332350Y355849D01*
X333715Y355027D01*
X334267Y354452D01*
X334628Y354298D01*
X336275D01*
X336542Y354376D01*
X336727Y354584D01*
X337295Y355398D01*
X337437Y355748D01*
Y357901D01*
X337264Y358280D01*
X336609Y358845D01*
X335671Y360299D01*
X335183Y361958D01*
Y363663D01*
X335643Y365277D01*
X336529Y366703D01*
X337773Y367831D01*
X339278Y368575D01*
X340929Y368876D01*
X342600Y368714D01*
X344162Y368099D01*
X345495Y367078D01*
X346497Y365732D01*
X347092Y364161D01*
X347232Y362489D01*
X346908Y360841D01*
X346144Y359346D01*
X345572Y358732D01*
X345437Y358391D01*
Y355748D01*
X345580Y355398D01*
X346037Y354796D01*
X346337Y354563D01*
X346714Y354609D01*
X351459Y357256D01*
X372715Y357525D01*
X372720Y340119D01*
X372867Y339766D01*
X373220Y339619D01*
X560872D01*
X561165Y339326D01*
Y140778D01*
X560872Y140485D01*
X500978D01*
X500625Y140338D01*
X500478Y139985D01*
Y105750D01*
X500625Y105396D01*
X500978Y105250D01*
X578108D01*
X578462Y105396D01*
X578608Y105750D01*
Y374250D01*
G37*
G74*
*
*
G04 PC Copper Outlines (5)*
G04 Layer Name GMC01A-POWER.pcb - dark (5)*
%LPD*%
*
*
G04 PC Area=ANP000016*
G75*
G36*
G01*
X455461Y139985D02*
X455315Y140338D01*
X454961Y140485D01*
X362295D01*
X362002Y140778D01*
Y339326D01*
X362295Y339619D01*
X368720D01*
X369074Y339766D01*
X369220Y340119D01*
X369216Y353474D01*
X369067Y353830D01*
X368710Y353974D01*
X358931Y353850D01*
X358581Y353701D01*
X358437Y353350D01*
Y353298D01*
Y346701D01*
X357981Y345599D01*
X357137Y344755D01*
X356034Y344298D01*
X350841D01*
X349738Y344755D01*
X348894Y345599D01*
X348437Y346701D01*
Y350711D01*
X348322Y351030D01*
X348029Y351202D01*
X347694Y351147D01*
X346694Y350590D01*
X346506Y350406D01*
X346437Y350153D01*
Y346795D01*
X346109Y345844D01*
X345799Y345448D01*
X345693Y345140D01*
Y343327D01*
X345847Y342967D01*
X346438Y342400D01*
X347272Y340991D01*
X347699Y339411D01*
X347687Y337773D01*
X347236Y336199D01*
X346380Y334803D01*
X345182Y333688D01*
X343729Y332934D01*
X342126Y332597D01*
X340492Y332702D01*
X338946Y333240D01*
X337601Y334173D01*
X337078Y334803D01*
X336693Y334984D01*
X336308Y334803D01*
X335880Y334339D01*
X335729Y333981D01*
Y326868D01*
X335869Y326521D01*
X336386Y325984D01*
X337113Y324681D01*
X337484Y323235D01*
X337473Y321743D01*
X337278Y321023D01*
X337363Y320589D01*
X337760Y320392D01*
X339736D01*
X340070Y320520D01*
X340483Y320891D01*
X341519Y321288D01*
X348270D01*
X349373Y320831D01*
X350217Y319987D01*
X350673Y318884D01*
Y313967D01*
X350442Y313159D01*
X350220Y312802D01*
X350145Y312538D01*
X350220Y312273D01*
X350442Y311916D01*
X350673Y311108D01*
Y306191D01*
X350217Y305088D01*
X349373Y304244D01*
X348270Y303788D01*
X342749D01*
X342395Y303641D01*
X342249Y303288D01*
X342263Y302978D01*
Y298481D01*
X341806Y297378D01*
X340962Y296534D01*
X339859Y296078D01*
X333328D01*
X332676Y296225D01*
X332374Y296369D01*
X332082Y296411D01*
X331816Y296281D01*
X330696Y295521D01*
X330434Y295230D01*
X330203Y294690D01*
X328904Y292179D01*
X328869Y291806D01*
X329108Y291004D01*
Y289329D01*
X328631Y287723D01*
X327716Y286321D01*
X326438Y285238D01*
X324905Y284564D01*
X323243Y284355D01*
X321591Y284629D01*
X320086Y285363D01*
X318852Y286496D01*
X317993Y287933D01*
X317579Y289556D01*
X317646Y291230D01*
X318187Y292815D01*
X319158Y294180D01*
X320477Y295211D01*
X321257Y295517D01*
X321564Y295883D01*
X321424Y296339D01*
X321020Y296736D01*
X320447Y297713D01*
X320151Y298807D01*
Y299373D01*
X320177Y299873D01*
X320031Y300227D01*
X319677Y300373D01*
X318807D01*
X318556Y300306D01*
X310302Y295520D01*
X309281Y295246D01*
X308574D01*
X307501Y295123D01*
X304093D01*
X303740Y294977D01*
X303593Y294623D01*
Y289333D01*
X303138Y288544D01*
X302349Y288089D01*
X298392D01*
X297603Y288544D01*
X297148Y289333D01*
Y301192D01*
X297510Y301912D01*
X298157Y302394D01*
X298554Y302463D01*
X298894Y302696D01*
X298944Y303105D01*
X298762Y303688D01*
X298741Y304911D01*
X299065Y306090D01*
X299387Y306610D01*
X299462Y306873D01*
X299387Y307136D01*
X299049Y307683D01*
X298725Y308928D01*
X298785Y310212D01*
X299003Y310817D01*
X298993Y311183D01*
X298735Y311444D01*
X298369Y311459D01*
X297584Y311186D01*
X295922Y311108D01*
X294307Y311503D01*
X293589Y311922D01*
X293251Y311982D01*
X292954Y311811D01*
X292837Y311489D01*
X292842Y311310D01*
Y300714D01*
X292385Y299611D01*
X291541Y298767D01*
X290438Y298310D01*
X283745D01*
X282642Y298767D01*
X281798Y299611D01*
X281342Y300714D01*
Y310699D01*
X281195Y311052D01*
X280842Y311199D01*
X280342D01*
X279988Y311052D01*
X279842Y310699D01*
Y300714D01*
X279385Y299611D01*
X278541Y298767D01*
X277438Y298310D01*
X270745D01*
X269642Y298767D01*
X268798Y299611D01*
X268342Y300714D01*
Y311854D01*
X268724Y312873D01*
X269439Y313693D01*
X269918Y313951D01*
X270171Y314292D01*
X270288Y314870D01*
X270846Y315910D01*
X274763Y319827D01*
X275243Y320236D01*
X275434Y320521D01*
X275530Y320908D01*
X275919Y321606D01*
X276197Y321892D01*
X276339Y322241D01*
Y327810D01*
X276612Y328827D01*
X277138Y329739D01*
X284736Y337337D01*
X284882Y337690D01*
X284736Y338044D01*
X284382Y338190D01*
X274382D01*
X274028Y338044D01*
X220273Y284289D01*
Y278785D01*
X220729Y279574D01*
X221518Y280030D01*
X247065D01*
X247854Y279574D01*
X248310Y278785D01*
Y266874D01*
X247854Y266085D01*
X247065Y265630D01*
X221518D01*
X220729Y266085D01*
X220273Y266874D01*
Y284289D01*
X188567Y252583D01*
X188421Y252230D01*
X188567Y251876D01*
X188921Y251730D01*
X258657D01*
X259010Y251876D01*
X259157Y252230D01*
Y255310D01*
X259613Y256413D01*
X260457Y257257D01*
X261560Y257713D01*
X263440D01*
X263793Y257860D01*
X263940Y258213D01*
Y270910D01*
X264212Y271927D01*
X264739Y272840D01*
X268984Y277084D01*
X269896Y277611D01*
X270913Y277883D01*
X290360D01*
X290714Y278030D01*
X290860Y278383D01*
X290787Y279339D01*
Y280185D01*
X291274Y281806D01*
X292208Y283217D01*
X293509Y284300D01*
X295066Y284962D01*
X296749Y285147D01*
X298413Y284840D01*
X299918Y284066D01*
X300527Y283479D01*
X300874Y283339D01*
X339425D01*
X340311Y283135D01*
X344141Y281273D01*
X344979Y280521D01*
X345576Y279567D01*
X345886Y278485D01*
Y234948D01*
X345495Y233743D01*
X344750Y232718D01*
X343725Y231973D01*
X342520Y231582D01*
X334041D01*
X333680Y231428D01*
X333128Y230853D01*
X331763Y230031D01*
X330230Y229593D01*
X328636Y229571D01*
X327092Y229966D01*
X325705Y230750D01*
X324570Y231869D01*
X323767Y233246D01*
X323350Y234785D01*
Y236379D01*
X323767Y237917D01*
X324570Y239294D01*
X325705Y240413D01*
X327092Y241197D01*
X328636Y241592D01*
X330230Y241570D01*
X331763Y241133D01*
X333128Y240311D01*
X333680Y239736D01*
X334041Y239582D01*
X337386D01*
X337740Y239728D01*
X337886Y240082D01*
Y271141D01*
X337699Y271531D01*
X337277Y271629D01*
X336937Y271360D01*
X336586Y270641D01*
X335517Y269449D01*
X334841Y269022D01*
X334625Y268729D01*
X334665Y268367D01*
X335066Y267602D01*
X335404Y265908D01*
X335250Y264187D01*
X334617Y262580D01*
X333556Y261216D01*
X332154Y260207D01*
X330524Y259634D01*
X328798Y259545D01*
X327118Y259946D01*
X325619Y260804D01*
X325021Y261428D01*
X324660Y261582D01*
X323122D01*
X322768Y261435D01*
X321904Y260571D01*
X321758Y260218D01*
Y227165D01*
X321904Y226811D01*
X322234Y226481D01*
X322588Y226335D01*
X327079D01*
X328133Y225992D01*
X329030Y225340D01*
X329682Y224443D01*
X330024Y223389D01*
Y220940D01*
X330171Y220586D01*
X330524Y220440D01*
X334473D01*
X335576Y219983D01*
X336419Y219139D01*
X336876Y218036D01*
Y211960D01*
X336687Y211225D01*
X336504Y210893D01*
X336443Y210628D01*
X336529Y210370D01*
X336784Y209996D01*
X337051Y209131D01*
Y202982D01*
X336595Y201879D01*
X335751Y201035D01*
X334648Y200578D01*
X330447D01*
X330093Y200432D01*
X329947Y200078D01*
Y197781D01*
X330093Y197428D01*
X330447Y197281D01*
X331645D01*
X332748Y196825D01*
X333592Y195981D01*
X334048Y194878D01*
Y188281D01*
X334009Y187755D01*
X334155Y187401D01*
X334509Y187255D01*
X346414D01*
X347469Y186912D01*
X348366Y186260D01*
X349017Y185363D01*
X349360Y184309D01*
Y124726D01*
X349506Y124373D01*
X349860Y124226D01*
X454961D01*
X455315Y124373D01*
X455461Y124726D01*
Y139985D01*
G37*
G74*
*
*
G04 PC Copper Outlines (6)*
G04 Layer Name GMC01A-POWER.pcb - dark (6)*
%LPD*%
*
*
G04 PC Area=Custom_Thermal*
*
G04 PC Custom Flashes*
G04 Layer Name GMC01A-POWER.pcb - flashes*
%LPD*%
*
*
G04 PC Circuitry*
G04 Layer Name GMC01A-POWER.pcb - circuitry*
%LPD*%
*
G54D10*
G01X287896Y316149D02*
Y317849D01*
X280296Y316149D02*
Y317849D01*
X288882Y326435D02*
Y324735D01*
X296482Y326435D02*
Y324735D01*
X337313Y308628D02*
X335613D01*
X337313Y301028D02*
X335613D01*
X331926Y214290D02*
Y215490D01*
X324326Y214290D02*
Y215490D01*
X332101Y205529D02*
Y206729D01*
X324501Y205529D02*
Y206729D01*
X344023Y308738D02*
X345723D01*
X344023Y316338D02*
X345723D01*
X264107Y252763D02*
Y251063D01*
X271707Y252763D02*
Y251063D01*
G54D11*
X411688Y114810D03*
Y128610D03*
X451113Y114810D03*
Y128610D03*
X371059Y114845D03*
Y128645D03*
X182526Y224265D03*
Y116065D03*
X270373Y139457D03*
Y174457D03*
X282011Y349938D03*
X317011D03*
X301693Y338637D03*
X311693D03*
X321693D03*
X331693D03*
X341693D03*
X351693D03*
X270373Y222325D03*
Y187325D03*
X364937Y350298D03*
X329937D03*
X206217Y236913D03*
X241217D03*
X286333D03*
X251333D03*
X250783Y250943D03*
X285783D03*
X241790Y362453D03*
Y327453D03*
X261696Y362823D03*
X296696D03*
X341183D03*
X306183D03*
X287041Y157142D03*
X343041D03*
X287041Y213142D03*
X343041D03*
X299350Y255582D03*
Y245582D03*
Y235582D03*
X329350D03*
Y245582D03*
Y255582D03*
Y265582D03*
G54D13*
X163490Y348270D03*
Y131730D03*
X596510Y348270D03*
Y131730D03*
G54D14*
X328048Y191281D02*
X324447Y194883D01*
Y206074*
X324501Y206129D02*
Y214714D01*
G54D17*
X182526Y116065D02*
Y139457D01*
X270373*
X182526Y116065D02*
Y151193D01*
X155089Y178630*
X182526Y116065D02*
Y139457D01*
X250566*
Y177653*
X260206Y187293*
X270373*
Y187325*
X371059Y128645D02*
X355413Y144291D01*
Y178630*
X371059Y114845D02*
X287041D01*
X287041D02*
Y157142D01*
X451113Y128610D02*
X411688D01*
X411653Y128645*
X371059*
X411688Y114810D02*
X371094D01*
X371059Y114845*
X451113Y114810D02*
X411688D01*
X487498Y114772D02*
X451150D01*
X451113Y114810*
X507498Y114772D02*
X567040D01*
Y230723*
X292207Y157133D02*
X287041D01*
X287041D02*
Y157142D01*
X292207Y157133D02*
X292230Y188856D01*
X307145Y203699*
X307179Y255582*
X299350*
X343041Y157142D02*
X318948D01*
Y161281*
X135089Y178630D02*
Y194650D01*
X164911Y224472*
Y250366*
X241790Y327245*
Y327453*
X270373Y174457D02*
X277799D01*
X281299Y177957*
Y209642*
X284799Y213142*
X287041*
X309848Y191281D02*
X312971Y196651D01*
Y262082*
X309471Y265582*
X299350*
X355413Y178630D02*
Y284433D01*
X287092*
Y306310*
X355413Y178630D02*
Y304818D01*
X351494Y308738*
X351693*
Y338637*
X355413Y178630D02*
Y284433D01*
X287092*
X355413Y178630D02*
Y213142D01*
X343041*
X355413Y178630D02*
Y304818D01*
X351494Y308738*
X344873*
X324447Y206074D02*
X324501Y206129D01*
X332101D02*
X331926Y206304D01*
Y213142*
X343041*
X182526Y224265D02*
Y245570D01*
X188003Y251048*
X250783*
X280168Y225578D02*
X289347D01*
X299350Y235582*
X280168Y225578D02*
X267940Y237743D01*
Y270383*
X271440Y273883*
X331770*
X270373Y222325D02*
X220805D01*
X206217Y236913*
X333674Y213142D02*
X331926Y214890D01*
X324326D02*
X324501Y214714D01*
X324450Y214766*
Y221801*
X321258*
X317758Y225301*
Y262082*
X321258Y265582*
X329350*
X343041Y213142D02*
X331926D01*
Y214890*
X331757Y215058*
Y224156*
X323522Y232392*
Y239753*
X329350Y245582*
X567040Y230723D02*
Y371927D01*
X241217Y236913D02*
X251333D01*
X250805Y251913D02*
Y264983D01*
X270254Y284433*
X287092*
X250805Y251913D02*
X264107D01*
X250783Y250943D02*
X250805D01*
Y251913*
X250783Y250943D02*
Y251048D01*
X271707Y251913D02*
Y251807D01*
X279514Y259614*
X289097*
X286333Y236913D02*
Y250393D01*
X285783Y250943*
X286333Y236913D02*
Y245582D01*
X299350*
X329350D02*
Y255582D01*
Y235582D02*
X341886D01*
Y277922*
X338971Y279339*
X296537*
X299350Y255582D02*
X293130D01*
X289097Y259614*
X323358Y290165D02*
X326651Y296528D01*
Y299373*
X274092Y306310D02*
Y313499D01*
X277592Y316999*
X280296*
X287092Y306310D02*
X287896Y307115D01*
Y316999*
X287092Y306310D02*
Y309373D01*
X305251*
X308753Y299246D02*
X305378D01*
X305251Y299373*
X308753Y299246D02*
X317597Y304373D01*
X326651*
X305251Y299373D02*
Y304373D01*
X326651D02*
X317597D01*
Y308964*
X312188Y314373*
X310344*
Y337288*
X311693Y338637*
X326651Y304373D02*
X317597D01*
Y308964*
X312188Y314373*
X305251*
X336463Y301028D02*
X335642Y301849D01*
X334782*
X332257Y304373*
X326651*
X336463Y308628D02*
X336573Y308738D01*
X344873*
X336463Y308628D02*
X335717Y309373D01*
X326651*
X280296Y316999D02*
X280339Y317042D01*
Y327283*
X291693Y338637*
X296482Y316891D02*
Y325585D01*
X301693Y338637*
X287896Y316999D02*
X288882Y317985D01*
Y325585*
X323310Y329827D02*
X322500Y337830D01*
X321693Y338637*
X331728Y322530D02*
Y337830D01*
X331693Y338637*
X326651Y314373D02*
X317025Y323999D01*
Y333407*
X326651Y314373D02*
X331907D01*
X333926Y316392*
X344819*
X344873Y316338*
X291693Y338637D02*
Y340256D01*
X282011Y349938*
X317025Y343861D02*
X317011Y349938D01*
X339000Y371927*
X567040*
X329937Y350298D02*
X341437D01*
X341693Y338637D02*
Y350043D01*
X341437Y350298*
Y362569*
X341183Y362823*
X351693Y338637D02*
X353437Y340381D01*
Y350298*
X364937*
X241790Y362453D02*
X261326D01*
X261696Y362823*
X296696D02*
X306183D01*
G54D20*
X317025Y333407D02*
Y343861D01*
G54D22*
X296537Y279339D03*
X323358Y290165D03*
X331770Y273883D03*
X296482Y316891D03*
X323310Y329827D03*
X331728Y322530D03*
G54D25*
X591816Y267040D02*
X591191Y267267D01*
X590566Y267722*
X590254Y268177*
Y269086*
X590566Y269540*
X591191Y269995*
X591816Y270222*
X592754Y270449*
X594316*
X595254Y270222*
X595879Y269995*
X596504Y269540*
X596816Y269086*
Y268177*
X596504Y267722*
X595879Y267267*
X595254Y267040*
X594316*
Y268177D02*
Y267040D01*
X590254Y264995D02*
X596816D01*
X590254D02*
X596816Y263177D01*
X590254Y261358D02*
X596816Y263177D01*
X590254Y261358D02*
X596816D01*
X591816Y255904D02*
X591191Y256131D01*
X590566Y256586*
X590254Y257040*
Y257949*
X590566Y258404*
X591191Y258858*
X591816Y259086*
X592754Y259313*
X594316*
X595254Y259086*
X595879Y258858*
X596504Y258404*
X596816Y257949*
Y257040*
X596504Y256586*
X595879Y256131*
X595254Y255904*
X590254Y252495D02*
X590566Y253177D01*
X591504Y253631*
X593066Y253858*
X594004*
X595566Y253631*
X596504Y253177*
X596816Y252495*
Y252040*
X596504Y251358*
X595566Y250904*
X594004Y250677*
X593066*
X591504Y250904*
X590566Y251358*
X590254Y252040*
Y252495*
X591504Y248631D02*
X591191Y248177D01*
X590254Y247495*
X596816*
X590254Y243631D02*
X596816Y245449D01*
X590254Y243631D02*
X596816Y241813D01*
X594629Y244767D02*
Y242495D01*
X598066Y239767D02*
Y234995D01*
X590254Y233631D02*
X596816D01*
X590254D02*
Y231586D01*
X590566Y230904*
X590879Y230677*
X591504Y230449*
X592441*
X593066Y230677*
X593379Y230904*
X593691Y231586*
Y233631*
X590254Y227040D02*
X590566Y227495D01*
X591191Y227949*
X591816Y228177*
X592754Y228404*
X594316*
X595254Y228177*
X595879Y227949*
X596504Y227495*
X596816Y227040*
Y226131*
X596504Y225677*
X595879Y225222*
X595254Y224995*
X594316Y224767*
X592754*
X591816Y224995*
X591191Y225222*
X590566Y225677*
X590254Y226131*
Y227040*
Y222722D02*
X596816Y221586D01*
X590254Y220449D02*
X596816Y221586D01*
X590254Y220449D02*
X596816Y219313D01*
X590254Y218177D02*
X596816Y219313D01*
X590254Y216131D02*
X596816D01*
X590254D02*
Y213177D01*
X593379Y216131D02*
Y214313D01*
X596816Y216131D02*
Y213177D01*
X590254Y211131D02*
X596816D01*
X590254D02*
Y209086D01*
X590566Y208404*
X590879Y208177*
X591504Y207949*
X592129*
X592754Y208177*
X593066Y208404*
X593379Y209086*
Y211131*
Y209540D02*
X596816Y207949D01*
X486795Y360728D02*
Y355103D01*
X488840Y357915D02*
X484749D01*
X477476Y361665D02*
Y355103D01*
Y358540D02*
X477022Y359165D01*
X476567Y359478*
X475885*
X475431Y359165*
X474976Y358540*
X474749Y357603*
Y356978*
X474976Y356040*
X475431Y355415*
X475885Y355103*
X476567*
X477022Y355415*
X477476Y356040*
X469976Y359478D02*
Y355103D01*
Y358540D02*
X470431Y359165D01*
X470885Y359478*
X471567*
X472022Y359165*
X472476Y358540*
X472704Y357603*
Y356978*
X472476Y356040*
X472022Y355415*
X471567Y355103*
X470885*
X470431Y355415*
X469976Y356040*
X467249Y361665D02*
Y356353D01*
X467022Y355415*
X466567Y355103*
X466113*
X467931Y359478D02*
X466340D01*
X295448Y267709D02*
X294994Y268022D01*
X294312Y268959*
Y262397*
X301393Y297789D02*
X300939Y298101D01*
X300257Y299039*
Y292476*
X246110Y272830D02*
X242019D01*
X234746Y276580D02*
Y270017D01*
Y273455D02*
X234291Y274080D01*
X233837Y274392*
X233155*
X232700Y274080*
X232246Y273455*
X232019Y272517*
Y271892*
X232246Y270955*
X232700Y270330*
X233155Y270017*
X233837*
X234291Y270330*
X234746Y270955*
X227246Y274392D02*
Y270017D01*
Y273455D02*
X227700Y274080D01*
X228155Y274392*
X228837*
X229291Y274080*
X229746Y273455*
X229973Y272517*
Y271892*
X229746Y270955*
X229291Y270330*
X228837Y270017*
X228155*
X227700Y270330*
X227246Y270955*
X224519Y276580D02*
Y271267D01*
X224291Y270330*
X223837Y270017*
X223382*
X225200Y274392D02*
X223610D01*
X185325Y180623D02*
Y174998D01*
X187370Y177811D02*
X183280D01*
X177825Y179998D02*
X178052Y180623D01*
X178507Y181248*
X178961Y181561*
X179870*
X180325Y181248*
X180780Y180623*
X181007Y179998*
X181234Y179061*
Y177498*
X181007Y176561*
X180780Y175936*
X180325Y175311*
X179870Y174998*
X178961*
X178507Y175311*
X178052Y175936*
X177825Y176561*
Y177498*
X178961D02*
X177825D01*
X175780Y181561D02*
Y174998D01*
Y181561D02*
X173961Y174998D01*
X172143Y181561D02*
X173961Y174998D01*
X172143Y181561D02*
Y174998D01*
X168507Y181561D02*
Y174998D01*
X170098Y181561D02*
X166916D01*
X298870Y124231D02*
X345860D01*
Y183754*
X298870*
Y124231*
X330293Y226251D02*
X339669D01*
Y198104*
X330293*
Y226251*
X326524Y214943D02*
X322535D01*
Y222835*
X326524*
Y214943*
X496978Y105750D02*
Y139985D01*
G75*
G03X496478Y140485I-500J-0D01*
G01X459461*
G03X458961Y139985I0J-500*
G01Y120726*
X345811*
G03X345739Y120731I-72J-495*
G01X298870*
X295370Y124231D02*
G03X298870Y120731I3500J0D01*
G01X295370Y124231D02*
Y162333D01*
G03X294873Y162833I-500J-0*
G01X282529Y162915*
G03X282026Y162415I-3J-500*
G01Y105750*
G03X282526Y105250I500J0*
G01X496478*
G03X496978Y105750I0J500*
G01X578608D02*
Y374250D01*
G03X578108Y374750I-500J-0*
G01X335992*
G03X335638Y374604I-0J-500*
G01X313269Y352235*
G03X313123Y351881I354J-354*
G01Y344844*
G03X313474Y344366I500J-0*
G01X316308Y342471D02*
G03X313474Y344366I-4615J-3834D01*
G01X316308Y342471D02*
G03X317078I385J319D01*
G01X325590Y343199D02*
G03X317078Y342471I-3897J-4562D01*
G01X325590Y343199D02*
G03X326159Y343142I325J380D01*
G01X327549Y343918*
G03X327508Y344812I-243J437*
G01X334267Y354452D02*
G03X327508Y344812I-4330J-4154D01*
G01X334267Y354452D02*
G03X334628Y354298I361J346D01*
G01X336275*
G03X336727Y354584I0J500*
G01X337295Y355398D02*
G03X336727Y354584I2142J-2100D01*
G01X337295Y355398D02*
G03X337437Y355748I-358J350D01*
G01Y357901*
G03X337264Y358280I-500J0*
G01X345572Y358732D02*
G03X337264Y358280I-4389J4091D01*
G01X345572Y358732D02*
G03X345437Y358391I365J-341D01*
G01Y355748*
G03X345580Y355398I500J-0*
G01X346037Y354796D02*
G03X345580Y355398I-2600J-1498D01*
G01X346037Y354796D02*
G03X346714Y354609I433J249D01*
G01X351459Y357256*
X372715Y357525*
X372720Y340119*
G03X373220Y339619I500J0*
G01X560665*
X561165Y339119D02*
G03X560665Y339619I-500J0D01*
G01X561165Y339119D02*
Y140985D01*
X560665Y140485D02*
G03X561165Y140985I-0J500D01*
G01X560665Y140485D02*
X500978D01*
G03X500478Y139985I0J-500*
G01Y105750*
G03X500978Y105250I500J0*
G01X578108*
G03X578608Y105750I0J500*
G01X455461Y124726D02*
Y139985D01*
G03X454961Y140485I-500J-0*
G01X362502*
X362002Y140985D02*
G03X362502Y140485I500J-0D01*
G01X362002Y140985D02*
Y339119D01*
X362502Y339619D02*
G03X362002Y339119I0J-500D01*
G01X362502Y339619D02*
X368720D01*
G03X369220Y340119I0J500*
G01X369220*
X369216Y353474*
G03X368710Y353974I-500J0*
G01X358931Y353850*
G03X358437Y353343I6J-500*
G01Y353298D02*
G03Y353343I-3000J0D01*
G01Y353298D02*
Y347298D01*
X355437Y344298D02*
G03X358437Y347298I0J3000D01*
G01X355437Y344298D02*
X351437D01*
X348437Y347298D02*
G03X351437Y344298I3000J0D01*
G01X348437Y347298D02*
Y350711D01*
G03X347694Y351147I-500J-0*
G01X346694Y350590*
G03X346437Y350153I243J-437*
G01Y347298*
X345799Y345448D02*
G03X346437Y347298I-2362J1850D01*
G01X345799Y345448D02*
G03X345693Y345140I394J-308D01*
G01Y343327*
G03X345847Y342967I500J0*
G01X337078Y334803D02*
G03X345847Y342967I4615J3834D01*
G01X337078Y334803D02*
G03X336308I-385J-319D01*
G01X335880Y334339D02*
G03X336308Y334803I-4187J4298D01*
G01X335880Y334339D02*
G03X335729Y333981I349J-358D01*
G01Y326868*
G03X335869Y326521I500J-0*
G01X337278Y321023D02*
G03X335869Y326521I-5550J1507D01*
G01X337278Y321023D02*
G03X337760Y320392I482J-131D01*
G01X339736*
G03X340070Y320520I-0J500*
G01X342073Y321288D02*
G03X340070Y320520I0J-3000D01*
G01X342073Y321288D02*
X347673D01*
X350673Y318288D02*
G03X347673Y321288I-3000J-0D01*
G01X350673Y318288D02*
Y314388D01*
X350220Y312802D02*
G03X350673Y314388I-2547J1586D01*
G01X350220Y312802D02*
G03Y312273I425J-264D01*
G01X350673Y310688D02*
G03X350220Y312273I-3000J-0D01*
G01X350673Y310688D02*
Y306788D01*
X347673Y303788D02*
G03X350673Y306788I0J3000D01*
G01X347673Y303788D02*
X342749D01*
G03X342251Y303243I0J-500*
G01X342263Y302978D02*
G03X342251Y303243I-3000J-0D01*
G01X342263Y302978D02*
Y299078D01*
X339263Y296078D02*
G03X342263Y299078I-0J3000D01*
G01X339263Y296078D02*
X333663D01*
X332374Y296369D02*
G03X333663Y296078I1289J2709D01*
G01X332374Y296369D02*
G03X331816Y296281I-215J-452D01*
G01X330696Y295521D02*
G03X331816Y296281I-1795J3852D01*
G01X330696Y295521D02*
G03X330434Y295230I211J-453D01*
G01X330203Y294690D02*
G03X330434Y295230I-3552J1838D01*
G01X330203Y294690D02*
X328904Y292179D01*
G03X328869Y291806I444J-230*
G01X321257Y295517D02*
G03X328869Y291806I2101J-5352D01*
G01X321257Y295517D02*
G03X321424Y296339I-183J465D01*
G01X320174Y299820D02*
G03X321424Y296339I4227J-447D01*
G01X320174Y299820D02*
G03X319677Y300373I-497J53D01*
G01X318807*
G03X318556Y300306I0J-500*
G01X310759Y295785*
X308753Y295246D02*
G03X310759Y295785I-0J4000D01*
G01X308753Y295246D02*
X308574D01*
G03X308461Y295233I-0J-500*
G01X307501Y295123D02*
G03X308461Y295233I-0J4250D01*
G01X307501Y295123D02*
X304093D01*
G03X303593Y294623I0J-500*
G01Y289789*
X301893Y288089D02*
G03X303593Y289789I0J1700D01*
G01X301893Y288089D02*
X298848D01*
X297148Y289789D02*
G03X298848Y288089I1700J-0D01*
G01X297148Y289789D02*
Y300789D01*
X298554Y302463D02*
G03X297148Y300789I294J-1674D01*
G01X298554Y302463D02*
G03X298944Y303105I-87J493D01*
G01X299387Y306610D02*
G03X298944Y303105I3614J-2237D01*
G01X299387Y306610D02*
G03Y307136I-425J263D01*
G01X299003Y310817D02*
G03X299387Y307136I3998J-1444D01*
G01X299003Y310817D02*
G03X298369Y311459I-470J170D01*
G01X293589Y311922D02*
G03X298369Y311459I2893J4969D01*
G01X293589Y311922D02*
G03X292838Y311464I-252J-433D01*
G01X292842Y311310D02*
G03X292838Y311464I-3000J0D01*
G01X292842Y311310D02*
Y301310D01*
X289842Y298310D02*
G03X292842Y301310I-0J3000D01*
G01X289842Y298310D02*
X284342D01*
X281342Y301310D02*
G03X284342Y298310I3000J0D01*
G01X281342Y301310D02*
Y310699D01*
G03X280842Y311199I-500J-0*
G01X280342*
G03X279842Y310699I-0J-500*
G01Y301310*
X276842Y298310D02*
G03X279842Y301310I-0J3000D01*
G01X276842Y298310D02*
X271342D01*
X268342Y301310D02*
G03X271342Y298310I3000J0D01*
G01X268342Y301310D02*
Y311310D01*
X269918Y313951D02*
G03X268342Y311310I1424J-2641D01*
G01X269918Y313951D02*
G03X270171Y314292I-237J440D01*
G01X271263Y316327D02*
G03X270171Y314292I2829J-2828D01*
G01X271263Y316327D02*
X274763Y319827D01*
X275243Y320236D02*
G03X274763Y319827I2349J-3237D01*
G01X275243Y320236D02*
G03X275434Y320521I-294J405D01*
G01X276197Y321892D02*
G03X275434Y320521I2149J-2093D01*
G01X276197Y321892D02*
G03X276339Y322241I-358J349D01*
G01Y327283*
X277511Y330111D02*
G03X276339Y327283I2828J-2828D01*
G01X277511Y330111D02*
X284736Y337337D01*
G03X284382Y338190I-354J353*
G01X274382*
G03X274028Y338044I-0J-500*
G01X188567Y252583*
G03X188921Y251730I354J-353*
G01X258657*
G03X259157Y252230I-0J500*
G01Y254713*
X262157Y257713D02*
G03X259157Y254713I-0J-3000D01*
G01X262157Y257713D02*
X263440D01*
G03X263940Y258213I-0J500*
G01Y270383*
X265111Y273212D02*
G03X263940Y270383I2829J-2829D01*
G01X265111Y273212D02*
X268611Y276712D01*
X271440Y277883D02*
G03X268611Y276712I-0J-4000D01*
G01X271440Y277883D02*
X290360D01*
G03X290854Y278460I0J500*
G01X300527Y283479D02*
G03X290854Y278460I-3990J-4140D01*
G01X300527Y283479D02*
G03X300874Y283339I347J360D01*
G01X338971*
X340719Y282937D02*
G03X338971Y283339I-1748J-3598D01*
G01X340719Y282937D02*
X343635Y281519D01*
X345886Y277922D02*
G03X343635Y281519I-4000J-0D01*
G01X345886Y277922D02*
Y235582D01*
X341886Y231582D02*
G03X345886Y235582I0J4000D01*
G01X341886Y231582D02*
X334041D01*
G03X333680Y231428I-0J-500*
G01Y239736D02*
G03Y231428I-4330J-4154D01*
G01Y239736D02*
G03X334041Y239582I361J346D01*
G01X337386*
G03X337886Y240082I0J500*
G01Y271141*
G03X336937Y271360I-500J-0*
G01X334841Y269022D02*
G03X336937Y271360I-3071J4861D01*
G01X334841Y269022D02*
G03X334665Y268367I267J-423D01*
G01X325021Y261428D02*
G03X334665Y268367I4329J4154D01*
G01X325021Y261428D02*
G03X324660Y261582I-361J-346D01*
G01X323122*
G03X322768Y261435I-0J-500*
G01X321904Y260571*
G03X321758Y260218I354J-353*
G01Y227165*
G03X321904Y226811I500J-0*
G01X322234Y226481*
G03X322588Y226335I354J354*
G01X326524*
X330024Y222835D02*
G03X326524Y226335I-3500J-0D01*
G01X330024Y222835D02*
Y220940D01*
G03X330524Y220440I500J-0*
G01X333876*
X336876Y217440D02*
G03X333876Y220440I-3000J-0D01*
G01X336876Y217440D02*
Y212340D01*
X336504Y210893D02*
G03X336876Y212340I-2628J1447D01*
G01X336504Y210893D02*
G03X336529Y210370I438J-241D01*
G01X337051Y208679D02*
G03X336529Y210370I-3000J-0D01*
G01X337051Y208679D02*
Y203579D01*
X334051Y200578D02*
G03X337051Y203579I0J3001D01*
G01X334051Y200578D02*
X330447D01*
G03X329947Y200078I-0J-500*
G01Y197781*
G03X330447Y197281I500J0*
G01X331048*
X334048Y194281D02*
G03X331048Y197281I-3000J0D01*
G01X334048Y194281D02*
Y188281D01*
X334014Y187830D02*
G03X334048Y188281I-2966J451D01*
G01X334014Y187830D02*
G03X334509Y187255I495J-75D01*
G01X345860*
X349360Y183754D02*
G03X345860Y187255I-3500J0D01*
G01X349360Y183754D02*
Y124726D01*
G03X349860Y124226I500J0*
G01X454961*
G03X455461Y124726I0J500*
G01X491040Y363415D02*
Y352415D01*
X489340Y350715D02*
G03X491040Y352415I0J1700D01*
G01X489340Y350715D02*
X464704D01*
X463004Y352415D02*
G03X464704Y350715I1700J0D01*
G01X463004Y352415D02*
Y363415D01*
X464704Y365115D02*
G03X463004Y363415I-0J-1700D01*
G01X464704Y365115D02*
X489340D01*
X491040Y363415D02*
G03X489340Y365115I-1700J0D01*
G01X248310Y278330D02*
Y267330D01*
X246610Y265630D02*
G03X248310Y267330I-0J1700D01*
G01X246610Y265630D02*
X221973D01*
X220273Y267330D02*
G03X221973Y265630I1700J-0D01*
G01X220273Y267330D02*
Y278330D01*
X221973Y280030D02*
G03X220273Y278330I0J-1700D01*
G01X221973Y280030D02*
X246610D01*
X248310Y278330D02*
G03X246610Y280030I-1700J-0D01*
G01X336173Y210800D02*
X333480Y208107D01*
X336173Y201457D02*
X333480Y204150D01*
X260035Y256835D02*
X262728Y254142D01*
X349795Y304666D02*
X347102Y307359D01*
X349795Y312809D02*
X347102Y310116D01*
X335998Y219561D02*
X333305Y216868D01*
X282220Y299189D02*
X285147Y302116D01*
X291963Y299189D02*
X289036Y302116D01*
X349316Y345177D02*
X352023Y347884D01*
X357559Y345177D02*
X354852Y347884D01*
G54D35*
X567040Y230723D03*
X355413Y178630D03*
G54D40*
X291693Y338637D03*
X309848Y191281D03*
X328048D03*
X299350Y265582D03*
G54D43*
X274092Y308560D02*
Y304060D01*
X287092Y308560D02*
Y304060D01*
G54D44*
X341437Y351298D02*
Y349298D01*
X353437Y351298D02*
Y349298D01*
G54D45*
X487498Y114772D03*
X507498D03*
G54D46*
X155089Y178630D03*
G54D47*
X135089D03*
G54D48*
X318948Y161281D03*
G54D49*
X303001Y299373D02*
X307501D01*
X303001Y304373D02*
X307501D01*
X303001Y309373D02*
X307501D01*
X303001Y314373D02*
X307501D01*
X324401D02*
X328901D01*
X324401Y309373D02*
X328901D01*
X324401Y304373D02*
X328901D01*
X324401Y299373D02*
X328901D01*
G74*
X0Y0D02*
M02*
/Designs/Data_loggers/GMCOUNT/CAM_GMC01A/V2_POWER.pdf
0,0 → 1,555
+%âãÏÓ
+0000000016 00000 n
+0000000904 00000 n
+0000001199 00000 n
+0000001403 00000 n
+0000001537 00000 n
+0000001744 00000 n
+0000002183 00000 n
+0000002222 00000 n
+0000002244 00000 n
+0000005113 00000 n
+0000005135 00000 n
+0000007768 00000 n
+0000007790 00000 n
+0000010291 00000 n
+0000010313 00000 n
+0000012543 00000 n
+0000012565 00000 n
+0000014992 00000 n
+0000015014 00000 n
+0000017631 00000 n
+0000017653 00000 n
+0000020285 00000 n
+0000020307 00000 n
+0000022638 00000 n
+0000041637 00000 n
+0000044314 00000 n
+0000000993 00000 n
+0000001179 00000 n
+stream
+H‰b``b``~È+v2`PZˆ% ˜AŒŸ1‡ñë )&Öþ‘4ß
+stream
+ÜÃOŒQ6®×ï8·qÉ
+FÅ°¯™­·5†¶JêtÖM+,Þݚû]ãÄ<_¶ê/†úIJ†vȒ0ÖÖ4cwÇ&ξZV}tr+‚IU¨ ,ÈÃΛîzÒë¹/)íܳjÛ`¤é¢©¡%¬[KãM¶y(Š¡Î²VXmbŽ¸M]ÖHÇښÝèÞØÄG¾ZJC~f½nêĕŒr
+÷í¸¢•ú¨ ʛŒbUí›cÙkü¤V›µ†Ýê³Ù§«’´N&•Y‹M¬i¦ÜÇVmu½ÃéæìÎÁKWÕ/'nŠ­it/š}WOšÙ/£æôÙÂU«UHék˜N±Ï†ÖŸÆl½øžü9«f¬(ö-PŽ¤1²ò‚‹Ô­MŸ6øèóR¿b†ÕJ„OÛ×I`ůÓp¤±énú—ëSaìÛw–±1GӐejaÔÉ6µ0æóe`ä;؟ :–lf»|ÙY!}»’qó̑À´€˜ªväyüÎHS¨°-OÚ´‰paþ_È\…·ÊOÜf[Uù\*l<Ëù!¥Lˆ¬úvϜŮ ©‘ªMLØå[muþ7®Æ†,ŽŽ 0ÿ¦PÇaáKÚ«f@æ™a$›ía­¼¤èk‹¹×}=©oUV³Pp³AiÚzÉÙ¶6YQó“U5ɅåQÇ붊æ ‚E£& %<F=‚Ý´Œ­D]fÖ´¡™lÌEÑlã¡Ê,¬=! yèbë³ÚmD,3ðµ¦ç_šÕ½ö©Øù.¦O»]áõwèÅ.Š$K eޔ‰ñØ&K!¥ÜH¸¶FçSЇ^ƒá 8ŽÑrãA[éʱ ®‡‰¥…"bDï3ûÕ,}2a27á°óHvdÕDøL3R-u¾û…Çä†Ëž(u)g\= i
+PƜ`.”`¸ùlGÐ9ð~)áR I$ho“Vðo21©nhZ‘L±+¦zÁ'B¼üWbIÆÜV˜ ™nÐWÐ#ÝðeB…B^d\0’¹’æäR¡‹+‰Í-67ñŸé•Ç¹kÎ–3…Yn^v( Ž_ìi+ ô7Âÿ/Órf(ÌF¾¤ªBL^©täÆç:£ õÅÓل´·'„ØGdûd¸C¯x¹c_% œ‚€±á)I¶³‹(‡n¿l“5[ºž§F“V³wtðޅÈAÁþêψ_LJ4’ïH¤?N /Ä*ÓÄ}Ò3èW\¦­)ü˜<ö¦äGA$äáЩo>uHô±=Ê¡MÛÓÙf[ÿݕ­´ÛÓµvÿPéswÄxù„'ÒÑÿ{r¶sñɎ¸ •]>h'ø&îîÆl*3øîÚ8v(ӂøJ™¼-XÉSûÁ #ãDÃ0ñÓv
+ñ‹´ËñÈü9Å1Ö¤òl,îO™I’u66—§H|,Š†uvæ!
+stream
+Dçµ
+=PðOÞuôᑴÿ©‘™/U]Õ.{ôtx“?Lþ(Wyöñè)?ûãóƒèô&åXjY×Iåñ²–õ¹Ê£]ë9
+µ÷éuÒI­q¯£iG N•ñG¯Ûû!Vg–‚
+Ó+Ê{œ˜Ê)¨ðŠ¼Ï“ ODGÔ¢¸µ€×ÎévžèÒuEuŽ=“¿O¨%¹G‹BqÃ8IY\QÖ>'¯/)«¸©]@3\™©’B1¨ý™›PU©@¬m¿Ñšò*·­%îÒÂ%a„‹7„ýÔ݇ÕGCԖÏÞ àð}Œ°¶nµ“®€ë^>‚5”ÚM¸;Ñ´ãªÃ:ùµÔqMãZ*›÷Ç<M›¸j¦…ƒZŽUÕ1¾W5Ø¿¾pÊBØnÀ¡t¡TNžÅ•œm«UzK¬F¸ÂE‚#fÉB¿æ %š2gP¹•ևR¾Ðráèh¥<œ|¡!i§jAEŠ^?þ²–UÇ×.dêÜÈ}¾y`D•õÓGÒ¨¶ ÛZ›5°g’ªÎË¥bq’¦w¥Ch]ÈRç7‚˜´3¨êñ;cvm^T™sks±Þ1·ƒa™¿qÍL§0‰Bíð°é”‚3åŸ̱Eobù ¶¦A¥Í¹¸”s}„®æŠLjð³ëŠ%|Ÿl *±ö€´IRðÚHIyÎÌáR]×3â ÕW+ì¹ÝR`—^Ü;ËÐkgcM*"éøégÎjHÒÁ 3EÐÃÁ˖8JššF±lەÁÈA?œþaWÓWªKËÈSÕNd{ã¿Õ-¬DË*]¼:š{Áÿ.åì×à–®’rú†˜™åíóÅ_RUîvSì^kxÁ\ܾ9Örx°fÑîÍʂß:NTÀ6•Î Ïdp!õÄ=µ»æ@„áӃGÔ¶µÆwþ{Üö¹²¿¶î=mq÷ú¤Fùõ<<\†ÛPîS}ÞV±ñ:h;Úæ ÿÙαy8yImáWøvH;_e vƺ}5^·eòDúߥ¦¯?ÂÃ5=tdÚ¥*!e8Âob^÷·¬q º¦z¿×ré>á»ôCÌò3X§rmIÊ£\NÒ.ÚuÐäsk#ï±r™ñàÌ­X”ëÒ©Î~$•qM%V©r|¾ÿ4¶Þ88¿)+ Tå0ê8©4—ªÛ¨üˆ>
+Y3}5äùŠª@±›mÒ6¯ÁD‡Y¾‰F¹
+33Æ,öO-*wˆPìrïÿ—=r3ùMî2òèÑPFÇ  ¡²Î ëþ.‡¦µ\KëÆÄüÓˆíy“i3mCÌôvüÏu*eæÓBS«®ô¸‰«¸0×ÏÉ£¹’3ø&$~ü\~¦‘˽á 3}è܎÷ïøã¹FЋ®eì¦r5c·–«Ùa·8ÞïA“RæNËá
+ÇÜEœ†«­8¹$ÈR@Ý9˜Ìdy$CgòY+|m¬Â2Y†vèbÍÉqOÏԃiƀæàڈñ­]™þ7~ûû-tÜCßßQ8ÛíøhÎ?ÅavëíõnÙÞ;´n;š{¶2ŧõ„¬ËûâUt?rg¼T§^•×Úï|ùy¸Ø´P3RÒé̄šÜSñ¸6òŽI[ñ¿x.¬·ÆrsƒâÔp ì÷ ''n¶[ˆ´Pî¨îÈ;<übh|ϵ™¼JtšÃ6V؈†lk5ù2±Ö´Z~ŠO߬ˆûA,fßít5rή¥yZš¥Õä¡q^cz«ñ¤?ÿl¥é/©«m?’B’L="—ž†Í–anF¼«Î_Ì0¹0–õhl“âœ]‹ˆ¨. µþl6)-7s™
+ªN·Q†QòwÇbÁ\n;€uE
+$ÞV^¯…›Ç8íQ6}5‰MF³–¬ VYJqÜ[°âHÌöɘÝ-
+stream
+H‰ŒW;²,¹
+ô{mQQBÿuÜ%œˆgUíß ABçŽñ¬®ìL!@Bêt¥ö-£^íK=]s((¤hŸÏÿþùPí×À_¹}ߏ(ªÃçó‡õ…ÿ)Wža€"Ü
+h–árMmº×+"K
+éò.IHŠá)6$è¤{¯ß’Nð‰3_x%[—^C¢>iٔBòj 9$FÃby^½|+©þU=û[Z— ˜—¡|‡gS6¾aáé"†¬šgy!¥SÁj¶${¾ÒmTÏ&rÌH?yúçÔR Ê5 ]T¾nMê$ol-lí°éÓa¤û±Ä
+4m¨Ã¶ÈtëBäÓÈFgœ`¶) åç¢Œ„ 1{ÌÁ£[¢÷«6 ûUX‚"â¯jÿúÖÍÌXJÎg¸!–9ÀЛ6Ù$ÝûÛÒîЦp¨i^FF 3 w.¤…ÔGŒÉ¯=7E¶gßj ¬iJó
+”ýìô-¶ÁJCW©ÍÑÆ9gÃYÛg’[Ïg+©Î"!E~“qþØ©2³]FÀõ–I¦Ôü”I2óë+j˜ùqk_5»õMŽ3Ê,|îz ùâåÒhXhéWM²ô(Ã1Ó3ÉìâLU _y:˜¨m³,žõ¬³nˆ¯U¶Ýqõ…y ©çU€æÔ ˆ3ÊX_,Õ5r¡âZÃ,& ¤áR‚ôFHkÚ{˜‹æ”œãí0·#g8º˜™ aBþPÿ¶ym.òÝdƒK‹ä;óžhűðC¯œ;cüÂ|i /K¢…ÖÃjXørÔþ…zÇüé¤]fïzßUµn³˂Ê|w Š{*°Ø8w[.٦ȯ\9‚K‹¬]Ö6ÒP#Óß0{§`vºÔ&Uv®QsÛÓ5ªÞvXq %TgªhඌӐôÕ¬úƯÊð£XüÎH¯ ¾f‹a oÂ`Vß‚Ó&õœ¯ ™Ù…1gŠÞl_‘'£Wá•fáÈ6ÉÇxá*–lW
+?À
+ i“—e6YåôY{H‹­E3iV+ÆÑ8[5|—eÕ<qYb´O•¿° Øýº0rƒ7
+Vsî1سě-—ž1%¦Õ¥ñvʚíSBªhìyÈH‹U4}+=-&£ÅeXV—2,ár)ŠÃXñD½ð]ŠÄŸ•.—#!¹n–hÜ°­QÑ3ÁGcèIúZ1ü(æ“&•]YÁ´0xq–ñ4ºt‘R_†õ±‡<ÐåÂäQ-t“~qoÒ
+stream
+ÛÚ1äd³ ö|Ï þœôž°@ìl»:žÅÎÖ]¯ÒeKè›j oÌ|f!™ i`ÏÅNkéôÊם VµýËí’È6W®f_³Ð%#Ïr¥ï)ð®F»œùy¾×{^zåóDõÌNøG½ò=„‡zå˄ݡhÙíå?Ð;{;9†)Ù3ð´‰
+ÁµÑWÇO#qãʯmØ 
+stream
+H‰¤W;Ž$¹ôûe¯‘Hý•çØ#°V·ý®¿$#HI53ÀÖêŠR
+<ÞÖ>¥.¶k£
+úÄÙP6”3M‰Û¹vÀNl[*­ )™UV¨3ô^q[òÚ5Р)á¤é\‘4í!fëýõÏ__%5mËvÍ£d\Ž‚T‚X
+’¦¤®Ý•õ<̝®©èÉù9­ƒýc3üÎù“}n=ÖRéþè¡ü“ïb%_}
+8?V‰_ƒÞÍÿcЇP×ÝîÆké?D•gÓ¶^W9O~ÜÕ‡5®òÃ~ñ¹ë™ýù°ÇúbXsvÿÝ^#Æ{=)>¹xmá®íÿóa¾x‰®Øò‡½òÙºS:p֍‡}\ˋÞͅ.vÚZ¾ùš8֊§)Sµ{¬í܍;Ói¹Ö½ÕvkaÛ£íQsÓöý9­íU;ÍõœÛåXž wâªw[_ø'O¬e)vÇI¶ó^vàŗdâOs}/²¶^•W eÙ̓^»ævåö©wȲØ0œÀ¿¢®èÑi‹Hï½­eêNJ…c :iJ,W½;ZGƪ†Þ_±'ÙÐcŽ»Z»ó~ Ùú8ò]õÁ|•>ÐG€µé d–’„RJ91râ‚ÞðcÞÒ#¿§?Ý;ÿmêÉ ÷¿¿ŠÝ`úãóÔ÷@a³ËEq6,ϧ"zk´Ž4 h Ú¢@¨eGoÛrìäœ@¯RnûÕ´²4݊-‹Šo,j]²ñÅ\éԗh!.Ä$XÜph7‡6CÐVêΦÎì(¸AÕηîHçy·¹Òkü«èñÚXƒßá,pFmËÊlXû£;tÜ)äç´öW¡Ì3ÏñH|Ÿ:Nã¸4墻'‡QÀd²ªÔvþŽ¶i.WܲU¨¸›_äÝ°qí´iñ“'^|Ÿ¼9ûÅ?2¯(=lŠ‰Èÿänæ¿Ù݂û¿7—Ã&=þ¿×ú²àPúù¥áXîû¾Óëd©²ÎnñªîæºM»oí×y£¼
+ ±&Ññ°ÉVGJùì…‘¯-M'Ðû«J¦ì´w“~XTM‹½9¾Iàjã<šÓ¦[n$¾Ð¨êôèÁ1Ð&¢köâ3ZÇï…1åÛºM.X¹P¸)QÄæ,ÂqGG¶lÛ8®6ÚúJò•Y#‡D\`»R)
+ÐõVÎÈ{4l’¤ô­– IŠ4;¶š¤i#˕&îK/f6¹;«Ü¿=Ç­î¾&˜.Ü 
+ÅðEÞL°CÏC,¿ä½‰aÚ0†éæ_¢†›>©µž)¹Š~U=Ö;@o;âyc‡¶#=uÄx¨°ð´Ìƺ¬W슮rEæyê=BòAÑMº=’+$}tWHòʤÐ
+™Œª|¤ÊÐ
+ 8ôÍ®÷©U4üì!µ‚23¤¬/o„dh ‰,DÃ3­»Bj5¤çÐÇ(Ö5´BE}³ëÅ@=m ˆ o!†°ñØ3NÑ:"í!ICoË!+$G’c„äžÉ×eH±+XWÏCï’7ž›xãFûøâh-ßÚυ‘…h÷$òÆsŒÆ£'ëzãù®d]<½gHþé&¼ãûâ¸|k¿\YŠ¦'‘_ļèÉëëúõ໒¥"zzq–R² ¥Lmàlؾ9}!ӍïގËô±Ó¤?õÛ!Øa§ŽtQµ¬òñC'ydžXр˜q;p¢>»D~Ž&_߂018R%yاEêWÂ]W¹ÛÇF°]û‹Ž°©C‘ãN&ÓWd¾8èP—Mß^~ÎD oe(¾Ò˜"ƒUɞ5¢¨C°–k÷tdëF%Š\^}F1äêR1¬Ð*YWÏCï^“ 1GDMÓDÉÌaÄk™wOGÜ8°ÉòÒ@²×Æò␥ 8îbyôu†ÕIV½Ýr»{⦠Ë2+?˜±ôÄÙ% [΄™
+Ü­{…‘-úþ
+<ôè‡ãÔ£«NLº±%YÊ¡ç.–Ý&G4ŠÒM`“¥]\±¶Ë³¢)w_Á•»éÓnDÜ5°i
+GÓ«2šØ¬Ëç!–&ïð
+Gaê[q#Ër[fÏÿè«02xF]†ds9xU‘Z:!붚„ې¡:íú¼Í÷A³ï܁cj¡¿Ý×ÖZõ¹<ž,p ð!†NÐÉõ<†¶"pp:ô!¹Ê´YsRý
+‹˜ tšzÕÚ4B´=g»]§îIÔ8±9ÆxãžSç§XאÚrW°Ĺh‹p$iGñ!Diæ—àš7ùz’Ž ÁÞöV¸'‘‡ãªÜ‚}]Çw% AtÜÄF8:Ì´¦ë#ûŽ†S1¯ §Å$_‹f@7ͺ²s6_Ð ¿NÑЎ¤ËŒµ\}ã›Ҥס+újìÊ¿x¨Ü¡‰
+stream
+H‰t—;r%¹D}­âÚ/b*Hð¿Ō5rfÿÆC"’ÕíH÷ 0‚¿¯þ÷%e>Ò?µµgÖÏÙp}þÝTŸñ‘2©
+7À'z:N„fÁñ øþÚC Œn BÆSî À'' B:ô¹Ì"í
+IG”rJu:pЍ¦'ÌLhøô b@¶Q ŽFP[Vÿ’`ÿC6”)¯´i™'ˆNjÚ¤ÙeýíÖjnfüiþÐÏ1?èF#L—{4@GçmÔD££ï@µìíë  Vý>kÁ¿tBˆV
+uCø<AԎê 3dtûôš‹ÙF%4:YJY«S>M––؏áèĎZ
+ð‘C}:Úó äûˈ6ŽF·2.€Õ9ځùÒ¾Ù5W,+2/K¼ždeÝ¡wWÂÖnHnB…æ)´ûѱÃèVFís=éÒ>'F>ڃ)hºÊõ¯ÃÍX2q`í®„ÐNtó*t÷µÕÏ•F·2מï5 /íùZ³2Säx¬½feDýËgÍ„z¢ W™»¯£>]³âã‡þü뚍9Äú1<i„eãÜq¿ÀäiG”žåK×OÀ·ÍaÙmš§:·YÐØé%ë?´ºábu¸W#ÖÛ¸Z]-_bMO?Ñ(µ;š`Êêý ½ù:l¯O>mzœh‚"š`j
+¯M é­.Ç-o±¯C÷ª}¨)®s¨é7ö¡Æ›Y@¤s¨E+.7ôC:ñjˆKÎ>ÎϹœïS9ï3Ù»u·ü‚•väǖ_tM¶_fA
+|0§-·šÄ0t€Ï-¿èr^Ÿm¦‡êñ Ø!D•Ðèh´ ²nWº7•>9Yw6ìþʘ„z~ôWG’ó*êÙá[» ®`іqsþž–4§¡·°›Œ¾F¶Í¿q\ïziºUãž1ä¨6žG6îZpŠ;ŽžÝË!tï6¨Û6sÊqÇYóVš²¹=0€Ýâ"Üè–ÈóX÷0ÍWѝoá<Vì“hçqpǦVt‹ÓXËhH–îp-áù”Ó6pʇY9ýþÚl[dꖚúöJÒ¾>¤·†Z¾Ä¾Âщ_õŠ§Ï+˜Ž“(wV°K:ÑD+Ó0`^¡t+éH
+Ø1&8At¬AÅ´¬BªKÅÚîÆô$ ÙØOÝĨ5›B2Ë oŽ3V²ìƒ¨rëïv¡9gAÙê³ù$'/ï蟎=&] Çí›U”rÚòçõ»û”)b¥(—h.lOÁ Ü3¬@n†”Üc(&
+ޑ‡í¨0vœìÞoLOԄöºVLòÀ¨uÍ(Š¢³Þu‹aÖy:«Û¢8<PŽ¶ýTtó†Bz±•νü 눗¥>llYvªúžpï«¥êßÙn…ÎݸY(ÓëWÔñzµ ÖØ^ê¯ ýתsé6|ëΩ›¼ŒãvùâVU‘Ý»X*R÷Áq!P!fX"“ÜÚ&ç<9-=¸Mã%·»¹Ûwt<7Ι‡‰Ç
+stream
+͸ù²¨ŽÍºp¹û5æÉ㪪ž`®¤û‚ú¸F7œÄœ‰ ?ZëÆÕ1nõª†ˆ¼_~_]ԛ$€ò[b&#¸Ú¸Ó¯UèÉë4Γ\5ˆÄœ´™ßH5˜ûæ%–ëɃûÚò¼ºî•4ら^éq­v5Ɛ2Ìó@/ [Û}µ4®–Ï}äÄN7¦ü{8©e18Zˆº820-u– ±´”õïÆ"9¹Ís½ ­¥¼qJºŽÅ‚£geׅߓg ®zYn«¨»\K<—BÌÎUÔ¥P—sédó-¸:w°$+»=Á®wˆ‚m/§z½Š×¼E“ŽD6ȳÞ'äYÎœ³CRyò3RôژjíöFÁÆd'®Ü­îy`U_cuå£!8ߺY¯WÞé½^¸ùzø^§õá®ë-ØÆyu¨ë4*ªB¸hw¿·îÞ½*Œ#³7àûÌdåyëIäz²,TywîÊ·ó‚{vÎe¸?Ú…Kè«<哻µ¢ðps™XýÈå,-ª”ô"‡îíURQÍ5[“ö*îûO¾•›u$‚'N`èÇÊqÕÓÐÐÃ{ÿDä$w÷C«;ÛÓã?˕­'û]e¥«Ý=B>ŽKðö^Ž—d³T廦e§‘
+‹HìRs­>èG Qh¶$
+ߨ¹=}KDÒÜÖq(æO{øªé‹@,·[˜v
+stream
+ÖZî²áÔ7}ûï¿ÏSÏ]ÚÕëÃüˆ÷}¦ð¹þ2öß·BÝ­;ÑÀuÝ{‡uÝc‡#èا‚ýnó‚c¿ÇŒ°Bߏ ã™á˜r55…U÷‡æJՈ`æ-j€]gŽfŠ‰'EçÑHæ1L<õðrЯ”h²ç¥.çî3¢ ¡*nõ<Ô-'©2J‘9'æ'LsÊ|:ë¦ilTê݄Z¢!Œ¾æF~§Ë‡Šã~.w4õÈ ñd4F$ÂNï,_Bfc…!„¸f!³Þ+„õ¢!n”dÝO¡é.„~ïØdž1cJl\ï,ßBÎÝ^B¨Ì/!´"“ZºIˆP1£&k~
+ kðŒ) n”4ÝÏa$ „֝2$Œ)‘s½³´M>ïg_£q¸ŸbSœ²Éyä§n ¼w+/Zn-ƒgFY·îg AùSðh%kztn0¤‘Ýx‘„•²5ŒY³dÅÝ&Ôõ¤†°„š²¸ºŸ« æ¤ÜQ¶¨®Æ‡4#²/r5ítޑ®F0©oُ{¤%ÜNÒÒÎsϦ‡W±{Ø ‰G»àxte&%ÎMžÙxQÔ¥ò–Œº¾êb¬ó[ùtÂÔ×»åº>Za,¼ÝÏuÝ;ÕE£¢.6$Œ'Õ%çªuÙrâ¢.Œ¹.Î2Ã5ê²ç½Se{ÏƊÊ8xe‚yŠÝQ§ß¢zm|H3"»ñ¢XeUJùp»ø)*é"SԞSdß>Ò>˜xt§Â§¢[÷‘iSG Ê‚¥k›ãâ"¬†•AÍêÙÍ mF[^jXWž*mLëÊÓ¥2¨²Ý¥…š´Ý­‡š8³¶m~ †ŸámG‚æ¸ýþ a·Þ|LÁ”Íyрm}š¾ ©Gí3¼oûÐ í’ݦ¤Š¦+Y¹mš#`x33>jÇ¥ùZØåblP³z:'ÃÀžyd‹™ÁÐÈKô‘•®Ù¶Ý¤ºæÞ²µ68´0ÁG­ZÖ´`P³z:'´Ðù)Φ…±%1ÁäMÀ»Ëò]3I¡†P"™Mõ¨”à£ÖÉJL×áùÉ39/
+#nú»ÚNò=Μ*Ï)"
+}?ϬH­¿¨øK†$Ò¹:XœžšI”ÊëäóÛð™z뒅oÄgÜàšÃÚå9kŽËoÙ`¹W›ã⥁°BV5«g73´ù.
+ 'kGÐ 9¿³æÇÓíQVCšÑÒ1ǔ«¨émë–¾Ó˜û–wZb®"Qà÷S[ÜmŒ¾f¾‡µìpÉÃ
+stream
+ZPTú E«b)›Z‚ŸHÚï¬È¼žBßùî»çœ{ö{îˆÀbHäŒÏOI-ôº*€u›˜;®¨Âã½yôäL`õ2€Î-˜§Õ%žYÀgçKßéÞҊ“5õ€5œéÙ¥³j¦˜tH啶®¬ÄSܲ)aÛkc§Ê˜Ñ¹g“Ö2Ý«¬b^u䓮t¦ßl½gUyhõnjW¹˜NªðT{ÃFSëW³¼6ÛSQ²´m°
+WSÕtõyóStA?Lähw²æ?é–XÈ°H~¤d™#Éuy%Pm|ˆKd£O“DQ)¶Ê9aýŠQÎõÞÄÖϓƒö‹pÑ*·+»•Û–GýÍH¾‘¼†×q”"8SæÒKô}%2Ä4ñš¸,7*»”3Vgý,*°»q‹:Ó Ê¥_QÕÒJz…6Ó):Mmb„˜ fŠë²LVÉÃÊH†|e®²T]¡®¶´ù]þcþ¿úo™©æ
+ênõ}µÝn})!'Ú~'ñÎy?ü«üuþ½þ&óºòÚ¸
++¥X‡þT‹+x›_Eu¶%Ñҕþ"ÊŸx„š ”]œÝ`êERí‚e4UÖ[®‹³˜V%çåï8úV±Gf+íj•ñ x+Pe.AêRÎP)$MB¼r‘§[­LUì¼/â©2…gÚ~~ÝyŒÙ̉áÎË}1‘'D=Ã&ž
+b1þ
+ÀV e´íâ¾c#¹ŠÊ¼Óè~½Ø¼Šùé½tp åñ4VÐNÈÇÑïyA´ŒÛ Ï!£•¡?ŠúíЇ 7£¼ý2ìò(O¾ÕÀ€ýŒsÀ^ï,í,-UæXK)ÆÌj0Ç]à m’Àk€Z¥—ê”^³õ`ªÆüµ¬Öڜ‹qö¡~5úM‡\òØa€Ç©Àlõ­P'ÒsàX‰µn —vðšck‚ý¶MÃa٘Ìù M]aöƒGÅÙæFµ ëµÅWÉ@ú2í_$þzBï'á%b?ý ¸]TÐFÈ
+ì,Ô;è0ËÀ‰*óª8JMÚeZŽºï‡°Ž
+ÌKèY`/ÊóÀ¿N[2ÞnKèu`Æ> ~š¿ êZÊ Ý1 øµSžëzúxèÉfw‚ü î@¹Œ5\N¬“sîÅ»| p»ÙÍ@,æ1Œ=4ÑóMÔfA ú¹d=ùô Mɞ‘ \  éC ø5:ûžt¸Ç)ÌöÝðÙ÷Y€ýÝ|Iú÷ïä·bˆ>§\4/‹•‹äÓD Ó!'9þtö úH½kÿ+¤‘ùO·Þ-»÷u$Y}š¶ÄɃX<<N«b5ÚnÙ{žV1ŒP÷ÂpYœet›v˜mB Î.wÒ,†:¶Ná>È9 &_Àp[Ù,­cÈÜÔ|¯±ú%”͈óëRö«vتwöÇÙ÷þÀ¾€x…Öƒg‚W€ ÁyÇâÛ>/b¾ÀŠ÷˜ÌgI¿«Íµœ¸–ø®¹þ˜ÿO@î¼ô/þ¯çR±
+6ž¡td`Úiáè4ÓÒÌÐ)mé4f˜N§Ó”ÉY"®ŒéØ·i㆏i(’HšÍbÈ@}v%00.iuzÞç}wŸÛ]­övßKÝAN9™çÑ<—åù³È3,ÞßD‹~ ™’eŒ'ç¯<wæù+˜·ÿ½Ü1žÕW‡Wæܸo¥ÿ&/
+Àº?+ê/¤¹|qøzöLËî­í±œiÿïøIÏÈÏq¦ú2h‡Ç•g1?ƒåãÏâ'ÅDg÷ç>ËsFßNÿ¯qöœÏb¢¼ô¡<`‚x¢öž4Ÿw<q<./ÉÆãñPýøµ—Íg¦‘ic÷Ü=)ø»…åµ{¹v ãŸã±ç-ûŽ°‡„ïö™3ôö‹9@€3*ue»åÛÄ''>į87ï^oâuຟv#uñw+–ÓBےÁ¦‰ÖóøuËós‘bÎÄ>xŸÔu€è¾–ý¯ù;$úþéËßs-­©ë–3À¸pBžG¾GlClëm¶Ë¥b2
+êsØï•5´³AL
+:¬˜kB'»ˆÆuD“]iݑ´®
+zƒè‹ˆ5ÞÔÒ+“úèÒ¶4'ؤ|¬×ŽRw´¾HÙ¾D,Þ:wÉîғHH~E&y£æäŠz³àUOŸ
+1l’ö ÿ½YtíÈx™yèÊpú.ÜËNÇ؇Ïߧ°_åàÂáb%ÄmwÛ«`°§‘Ûš4t[Ï!ŸÍ2Ä7µoÝ]Á:rÞ"
+Y¬çO·aÇsXeEIÒ¹ ÒS(ƒu»µ§p‘I“$é7öŸ¿TâUn¬½sãŠrã
+ ,
+,zz]K=Ì^ëÆ?7׊kªB饝y®õÔÞoL_\á¥Þ»+Nћ´ðã‹w>;ýÁáßÝUïjôß©OžÁf(,/_¡Ä‘ÇGß#Qð $ëë
+“©«'…­†só„Í&œOü‡îjŽª:Ã眽»w÷Þ=÷îëîf¹ÙdeCX$‘GBj4—
+ÌP¦ØÊÐ.Ò6¥b6ýÿ›„‡µÙÜ»gïÙ9ÿãû¾ÿÿW–­Å_M¯ÛÍ*¼J¶Â”Ãڐ˜’oùé‹uB^^メ`€³þ×h2™ûHފ×:çÎø,ó#z‰~ÕybGãÜ/n÷Ÿ¿‘ù{Æ ^v@ªHäs¤©³Râf¥U¤–Ô“£DØû{„½;-‹)°”~¨püÄñŽžžÀ‚T üYPí§ Â´âcÍzÚtG Áî7d9äj¸fEƒ 3Œá¸T"á”$¸KøŒ@(=pëóÑBÖ1ÇÿžÔ'9𤫐kqà {<<’ãÂ% ïøìΑwÏlqÄÂ<
+./´ÈgGÛàÙà=­Ø]¢GgS}ÓO„˚囘~*«F¬ñ,ð-ԄŸÉZÎ^v,ó¬ð68vŠ;øiý<;ç8ç¹àÜq·ÎeæÄ'º(qqsmÍVëÈÌTàiŒ˜¸­F÷ƒ0‚©%Éô›4µ„¤È$ü£pUVú¸V4~\0¨œŽxn^ÂǃãÇ©<Ï5½{–5/ýþ¢Þ½g—o;qpÕªƒ׬z"Åz©@9\u<3p>“É|Ü´³¾yóë›ôyºèÆ ëQovnrԌÙLYP#Ô³-l—S8,PqؙÍe§£gܖ÷nŒ‰Pd6Œ_aqÝT-@£ Š(dÙ #\ØXøD$»){'؇3Qh§1»igö°§ƒ–Ò׉žœÉ/C2 /Cš‡¥3úKIYY¨„ª%˜’JæÄU‡CœXŠd·[&÷ÎzóOK…•®Ê>òƒ3U[)!‚±´{ˆK.•ËºÏ稐‘Jªj-n˜.ÎaeøíR4„_0 Ü5¢
+ó¦Ì¸*)IZ9œ'¬›˜=J(R5)ÁšwË^Ék¸Ýù#*ùQ{¾—%= =Ƒü11(â×X}z
+½|Rfàgí­B A”®aŸaò›dj¤ud·€„©C?…(n¶aÇä[Ǹ9ƒ–˜Á²PU¨6TBAÜ Ñ\¨=p<98D@ŸLßqH‘–!Æ!Ä°E¡+©ó!Žŧaç•£©ÿHm·ëc¯™=¹âY6¹ó¹–þ—¿î«Ìå·7^kºØ_\¾yæ‹û÷­\qHø±²¨pFá£7þ°à™Ì¿¾hL¯¡Óè*zðÃw?úæbêPeû;;…̇ž´ 2ù©©tÉT€æ\6™ 
+ \’\g³1LI¹ÕBl,âuÖ¹þBÊû*f+ƒ·ZZÃMXbñLޗZR:£/=“ßÂiC°»”¨%ƒ­Èꛘp›CŒiZñ|[ë¦LzZ‘÷„mí?6
+h´Z‹÷°L÷¾Ï)“dÌJRœ¤DI2&'!}v“³„
+ë.Ï’˜'›æJu•«É|Ž¶™’Nɽæ5SS¥\GjÍUÚ!óº~ÝsÝp1y˜A5·Kb *UVlUÖŒ ‹p¼¢«°=—¥ü\?Gm¦àW®˜$©1™Ê]¤Ùq!UÿÜ!˜¬!Œ5ǧÛè‡
+]PËβKŒ¶1̺0v´Z½W¹¤Ó6ë|mz•³
+Ù¨´(DyÙ{áƒ|tŠ`À§v-\dê
+?
+ °0à ðÏ#åAjË3¦añÇt‰1—™ò>€R6°O¸$”²U¬êüߨE±Ko§çqֆyTµ,Q7‚œ5®6/×âÌãJ!‰}¥ÕU,¤¤xú’‚€'0ë8yw\Í}°ë ž}òxÂÌÕ'_Þ÷ñÒÕW6ÿæ_„T~1øüØ_?Á¾|fâk/íÍ}±õXîóçóÛ zô`\C¿v
+d)¦ªŠ‚(‹|Ü®˜†T…{5}5Ê÷è¶ÛöwØÃ\6æ9lƒ\ó-¾)hXœ…Á¸Õ!0›7D®9nž.¨QŸ¹$ïx¾¹å­­ðÿF:ßÁJ˚ÃÙʊj
+ªÑ±—•½JÓCïÓMRρܬý9ÏîÃjˆ~7D?‰ýN8ˆ¦2¼Lõc--Eq_ˆ$QŒˆðØüÏ`,‡bÇdÆ©²d©M)ôeM ´]#ý‘çÜ0>¾ˆ<ðߓµ-e¸,š²ÝØ-DÎ]”Z±äv0癍7G=x2Vl¥³bï2\–gÿ̹—%"Åáâ¢b*ë)3Y*I©I–J$ =Ñ8
+Œo(¾Ñ2&ЕÞ^óܹ^ދ¥Ó"«Ò(’/eœÅæ™(‹™Š™‰Y³
+£B"I"*Ôs’
+k=ँ5¸Bº@\^ào³‰Í.R÷¶-5I-•ºHûQkfCaºtú°Âál^sÀß^ô7‚Á6˜w¼Ã K\‰Z7!‚CeúFp~ô‘AÀàõ BoæÒáZ9\ëFž‘Ã†›Ÿ½T,ßëŒgŒ ñŒ§ Ìi£jš0ߚg'fò[ފ…Ö4òZ (
+CS§á¸•°p[Ûq)^R,šuºt,Ww0W/õ ~µõ»µ»èЭ9ìÌàvyó'”ÙR dŠ o8ìÓ8A¹ý5j¡mçÊç–
+•œÂ ª3'î÷vÎɨNUÞ¬Ê(ãŠ2\j;‹À¬Ê›ülB˜Ž–È(F†Ÿ¯otúÁŒæÍ(˜Ü8\0¿4¾#u „Õت¶ v¯œ¦¤çôPö,ÛÁjláuí
+X°AÚ1%å!b£j¡hKÙÆCjYÚۘZÂ#
+Þ«Eê`½Ó[š®Séû’t’_åü
+çÿÐ[båÎÃõJ~¥çí©¤ӊ§Åçú;ŠW?-l
+tËÛ};åÒq¹O¾¸.+0í⪬«ª¬Ê¢ EI"ôyÀGJ"g
+B0 ÇB”JÂ4é¡J”ºõ4MYð1+ðŠ‡B›–ÊS(ŸÚ¥ô9<úĞl<¹6¹-É$KÍÿ·ÆžÿÊGeR—9y™o€ð  evF¾Ö•p®©±*Õý|`l%†–¿rô‹’DˆÉöñ¶Ü(+ªÚ£”6p—;1À>‘p£
+ü¤Á°‹•R¶1°ã‚AC÷xƒ¡`¨¨ŒKNe.´(¶ÊGÈ® ïn~ûw3ËçÏþj`þšöªÄôÏð‘íûg8êÔpý³/v¿òaI*9kƒÓ…kŸÛÓà÷m`2º§|{UÂÃ×Ù[ „kˆa§—1ËØuÌz–M¥Ç3Å1S½3J&iI¶¦ç2 ½%íå=E2*ti¾“… U¬B.en)rç‚T!°
+\üw»•F咕$I&ª—ëÊZR“«Å/›ŸZåÿŽ´2ð„Þivû7K›å­Ê†äºÔf—¿GÚ%¿ lO>›Ú'í—÷±¼R«JXZԊV¶ªˆhì¸Z uBsIUÝў(‰¦‚RU,Â).ÈQîp•«b± ãr^%(îlN|Ó%‹©Œª¾û‹ÚU©d@òs‰â’X”÷zX†xp*Y
+w<M°P® ùôÖ$ú¹ŠÈ8x&lit|ÓSZäŲìvù<Ú áÚ¼µÈÎÝV¨Yt©<o•¡lå Ý}EŸ`¬Òq ! T”ízˆbàü¢ 1’É¡-m%Ӗ5¾®¾>¨Ì{JCِ R̫㬴äâÖ§~:·­c¢³jΊ'¿ûåŽþs×/Ÿ8þú‘Æüтm›wÜõ-çî!|EYóBû7ÖµL~²,ôÍÊ G;Ÿúõòï>Øýâ3‹gg2+Ë'žÞ¸áòºõ7)Rk`6ô+zQ-q$ ¯éáX¡¬ë³˜íÃø¬'ŽI5ƒˆOc—¨(ò»ôÀç¹á˂Óü¼@
+ŸoX¸Ðe ;&p&ç'2˜LºøÞ:vLiÞóÛ¡P¥W¶­Ý´‰­¸×JsFÈ»‘j ü±mU K­Ð,³Õ«Z½9MQ§jS̨]] µ›ÊAþ œO¤Qp$\iÔqub ×"N7æqóÄÅÆrn¹¸ÒXÏ­·2gPçªñÐjÄ­cs³[µËž4ù1†èñBò}€DA
+zÄ7!œ™ÜúÊ+ÈÍONÝá ROZ¸9^ƒb(é2#žžm¤Ó9£9ÒR¾0½"]0
+‹vB¾­šºËÀŽŽÓõÓÒ5÷ø©_£YEv@vAG“mGШ‘}è~™¹RÖѕ²…®”™þúá{%ú»R˜ÿXH—):M8KBKbkBkb›B›bǹãüëÆ)ëT\÷ej·•ï_Ðw/§õw”óê;ºÕêw8Þ¬~Ú¿Ý¿ÇÏû)lBo÷<‚‹ÚËB-ø˜ŒB÷û5òh,=iúØ®.‡÷Kj™h譇ѦMã8®p"É«2MÈ­2'›8IVq’ÌPn,w¯LS„¸´=
+½+×Ô¬d*IQ%GzdFzÙ»ÃväæZ…aøc¬ ´‹Æ0ú$àlg¸ƒÌçÏUÜÿýÉÏ{ïyëf¢¿lÏúÃ}§ö÷üŒˆýá*­ êï(··ÿòmßûóß®ÿ‰©ÐJP¡Y³© k¼X‚8®“/ˆ¥S{†ß&nWžÑ|Ì9|ÁÞShU8x¬ þ]üox,.4–5:‹ƒmñÅÎêàƲ§œîàsñng—´+2ƍÙ‰R¿‹­Š"òQÇÔ:iq–%”;ªL.q}øö,áYóa¡×,ðô±D"æã
+X
+U躑RÕ£Mh­Z‡ÆkHÝ-˜šš…žÑÍkLå´Yè%MÇàh>ô•Æ^+ …ߪZ¶ÊÎdÚ‘x1ßfMäÛ-D"imimst<²ÙC–}ÉnÏôYþZŸ¥–SÅ”Ë ÉÐLf/-„š²ڂ>cÔ.ƒ3Nn©nN´4fÿr…pïý÷Çøš¹âÂÆ/O^iیÜx˜þ ð‹Æu{å[£,­•Ö+¼ßø8&ñŠŽ[MÂÂŒ‡†òÐà±´Zxc'¿Så‚Re¨ÊÎ};Xç¬ÑAƒ"»PÅ.xûáŠ$¢ µ(Ë Òuº“A½ÁߑäÓ­‘jå”/'-PZ£Kè’ÖÉ]ÊKÂnñ5å=éáº4,ݓ?—Æ}‘ ªŠ</p’$  à`J–²,ñ‚Õ°(ªª'Ø,""ª¦ºJ¿§ˆ«÷Õ><«ªdjĊ’?
+€FÒkĈqÂ"NTŒ8 bÄ “/¤”éÆ?«–=ûx¬Y¨¡g€ôËÚ ÀÌ0gk>Ë!@ ØDˆ€”&2„Ý—çÙqšØ•
+ç´Ò͙.Ølx£¼%P_8
+¸/÷Á¡…åëób3:XD½jYà²Ñm*óKcuŠ^*sýbB<!þC:à0*ò q‡ø²8%
+*œŸ|Á$–`ŽW°ˆ Å:ÌbíÃìÆ=ÁdŒ)&³`|å©Ìj0Õgèãߋ0“‡Šuy½¥Ëè™}ƒâ¥R/wrò_Pi¢ô%/$òRˆûuÁºÃÿ;4ʏ…$S(¯în‹þʺflOÙB¥/l†£AG”©5TÃÔͤíá+ؤz´µ0“+œ,öRZ5›(§1Ù
+3Ùº05Ž8 –Š°çcÛޚ—mv§4
+Z»NŒ»ÍîY{ÔævØ'í³ö-Ø<—D™¯Ç’'¹4ö.˜Kñ³>ṕ´g‡¼ <s[•‡!jYc…âŒgÑ«òŒ¿
+?#]؜€¦b3Ç44*Õ§Ê*/YµÉ,§~5XN™–¦AL‹˜U•Hó4'jn ÿc¿êc›8ÏøóžÏ>ßùlŸ?âóÙqblÇ6v‰>lhÒ¤P’´0‚CMÚ&$, Ðu$˜ iW
+ 4ÑJHå#*Z;­|„ªLC‹&@£P5[×îKV±þ1Ą*4MCIö>ï%¶HÕþ™ö‡-ýîŸß×w÷<ïûûýž¡ã[¯¯?¶R‘F7Ÿä£‡ß«ï_‘Ú1¾™{ySߒƒ×Ɖ~¡Žú…­¢4²ñý/¾‰ û ìHš›1ÒØNAÒäS£y•iùyS·Ù\¥Ô:k=io½²Ü¹ÜSïÍsb«Òáìð´zûŒ}b§Òçìótz¿O
+Àl?0Y«p–þe1ÐF*|h#hQVŽšˆŽvt̨%³{të PCیmâã‘G®Á!.¥š
+Õ^òРꄇææÞ-eüá%ZÅ ó8ÌB! ¸p»±ýVàæ°o‹9 3ª74\{ð…WÆz¶ÞØÖ¾¿Ìñö‹/½{rËæÓÝÆ ?jiÙ;ùƉ‰û¯=Y;~ß0üÑÅ«Ÿ^ýðÈ¥{èV¼Lkè€+Ùs]DáI˜¯âãÛøçø-¼It˜E³hu9D+ÌÄ’’?`&æPÐE\\È¡KFVù:ÍP‰e3(ÍĖ<MÒȔDÜÓ³¦ö ÉÙpq¦8PÚZ8N;˜{ƒ·h~0;5ŽÝ‚reȶã"æjtTN%Š¶4ØÌRJÚs|qwfíºÅK—.Xç.â£ÇkOÆ2ëǏYÈÐ~ó4ÍB¹AÍnãCîP­¸L¬‹¬
+u…¶‹ûÄݑ·]ï–þÚ`UŸW-_^ú™jôsOsœ’"’7gΉ9)gÉÉ9k¹Gì‘z,=ru$:³Ç¢‘Xdö¼H»´ÆÒíŒo o‰ìŒ’ŽÈã‡KR>,ýT>ŽŸ^Šzâ¸$ñÝCÓAx:ˆLqÝWNÁ <D¦ƒu$YgQM»9V"K¼/-à-e¶«!­“_¬e´fíí=ícÍd׊µïi74¾XÛ¯qÚZ›º.X'•uãp…d §1j‰B8ì¬Îº=Uz‡esTR– ô¸@aÀãcà$|Á
+±V1Õúu ¬˜Úôw(zlbbŒ—’ètpø %qzÎÜ í î‰(=°]ìÖö¨ºNgcsŠÂFwiÔ¡8—b0…¬A?ˆqÁOŒsè¡ÈM¿Î²…ý
+†£Ø1f—Ð`§F€ÈV‰À£ˆI»DEÂ`±+!«³D&“‚¹^¬_/ô ;…T£
+`á]€ÅûòÈ#<òÈ#<òÈ#<òÈ#<òÈ#<òÈ#<þ?À … ¾õc˜:[d<:Àå.ð€WóAa H/E
+°VCžï³Ð½Ð[''ß?NG—CjfŒ^­3F÷À&œüÏþÿL,„Æñ€™ 
+†4¨©Ì  xd„úœ!l6 K”2X8"ÀX…°™øl lf ¸”Íd'AÙl@v•Ÿ‡[€‡«¶cQfb.6ƒ0%¸CÓNÚÀð*bȆR0¼RÒJ¬D .U¤Š}ÆÖÅJ†e ì@Ÿ0è3„½Í Œ;f è Æ ¬ ,@ˆ£Ҙ„€èÁi ÀØ/ås†ƒ‡y4TqÑ;gK<¿ÍWi°êEÕÁ¹cçÕ-ß~­ÿ›.ÀÀŠP8ƒM¯Ï¯
+stream
+[€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤ 
+@8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ
+Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)뫔ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW=
+߁Þô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð
+»—½‡}Ž}ŸCâ¸qâ9
+N'çÎ)Î].ÂuæJ¸rî
+î÷ wšGä xR^¯‡÷[ÞoƜchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö
+nßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾
+æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû
+stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d' bytes='981'?><rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'><rdf:Description about='' xmlns='http://ns.adobe.com/pdf/1.3/' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:CreationDate='2007-10-09T14:50:40Z' pdf:ModDate='2007-10-09T14:50:40Z' pdf:Producer='Acrobat Distiller 5.0.5 (Windows)' pdf:Author='mija' pdf:Creator='PScript5.dll Version 5.2' pdf:Title='V2'/>
+<rdf:Description about='' xmlns='http://ns.adobe.com/xap/1.0/' xmlns:xap='http://ns.adobe.com/xap/1.0/' xap:CreateDate='2007-10-09T14:50:40Z' xap:ModifyDate='2007-10-09T14:50:40Z' xap:Author='mija' xap:MetadataDate='2007-10-09T14:50:40Z'><xap:Title><rdf:Alt><rdf:li xml:lang='x-default'>V2</rdf:li></rdf:Alt></xap:Title></rdf:Description>
+<rdf:Description about='' xmlns='http://purl.org/dc/elements/1.1/' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:creator='mija' dc:title='V2'/>
+</rdf:RDF><?xpacket end='r'?>
+0000000000 65535 f
+0000044392 00000 n
+0000044422 00000 n
+0000044464 00000 n
+0000044528 00000 n
+0000044737 00000 n
/Designs/Data_loggers/GMCOUNT/PCB/GMC01A-POWER.pcb
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GMCOUNT/PCB/GMC01A.pcb
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/gpslr_Small.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/PrjInfo.txt
0,0 → 1,23
//
// Toto je popisný soubor pro popis obsahu adresáře (příklad)
//
 
[InfoShortDescription.en]
Ionisation Radiation Logger
 
[InfoShortDescription.cs]
Zapisovač intenzity kosmického záření
[InfoLongDescription.en]
Logger is an application developed during the "Physics' Day"
organised for secondary school students at the Faculty of
Nuclear Sciences and Physical Engineering in Prague.
It can log intensity of ionising radiation with GPS coordinates.
 
[InfoLongDescription.cs]
Zapisovač intensity ionizačního záření umožňuje systematický sběr
dat vázaný na zeměpisné souřadnice. Například během letu v letadle.
Jedná se o experiment z Fyzikálního týdne pro středoškoláky na
FJFI ČVUT.
 
[End]
/Designs/Data_loggers/GPSRL01A/DOC/HTML/GPSRL01A.cs.html
0,0 → 1,164
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> GPSRL01A </title>
<meta name="keywords" content="stavebnice MLAB zapisovač kosmické záření GPS ">
<meta name="description" content="Projekt MLAB, Zapisovač intenzity kosmického záření využívající GPS">
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
<link rel="StyleSheet" href="../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
<link rel="StyleSheet" href="../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
<link rel="shortcut icon" type="image/x-icon" href="../../../../Web/PIC/MLAB.ico">
<script type="text/javascript" src="../../../../Web/JS/MLAB_Menu.js"></script>
<!-- AUTOINCLUDE END -->
</head>
 
<body lang="cs">
 
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
<!-- ============== HLAVICKA ============== -->
<div class="Header">
<script type="text/javascript">
<!--
SetRelativePath("../../../../");
DrawHeader();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
<!-- ============== MENU ============== -->
<div class="Menu">
<script type="text/javascript">
<!--
SetRelativePath("../../../../");
DrawMenu();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- ============== TEXT ============== -->
<div class="Text">
<p class="Title">
Zapisovač intenzity kosmického záření
</p>
<p class=Autor>
Jakub Kákona
</p>
<p class="Subtitle">
Zapisovač intensity ionisačního záření umožňuje systematický sběr dat vázaný na zeměpisné souřadnice. Například během letu v letadle.
</p>
<p class="Subtitle">
<img width=291 height=218 src="pictures/image001_small.jpg"
alt="Obrázek radiačního záznamníku">
</p>
 
<h1> Technické parametry </h1>
 
<table>
<tr>
<th> Parametr </th>
<th> Hodnota </th>
<th> Poznámka </th>
</tr>
<tr>
<td> Napájení </td>
<td> 5V </td>
<td> 4x 1,2V Ni-MH acu.</td>
</tr>
<tr>
<td> Spotřeba v klidu </td>
<td> cca 20mA </td>
<td> bez Palmtopu </td>
</tr>
<tr>
<td> Komunikace </td>
<td> 2x sériová linka RS-232 </td>
<td> </td>
</tr>
<tr>
<td> Komunikace s GPS </td>
<td> NMEA </td>
<td> sériová linka RS-232</td>
</tr>
</table>
 
<h1> Popis konstrukce </h1>
 
<h2> Důvod vzniku </h2>
 
<p>
Tento zapisovač byl vyvinut během Fyzikálního Týdne na FJFI ČVUT v Praze. Za účelem použití v miniprojektu Stanovení radiační zátěže od kosmického záření na palubě letadla.
</p>
 
<p>
Zařízení je z části postaveno z modulů stavebnice (kromě Palmtopu, do kterého se ukládají data a samotného detektoru radiace.) Celý zapisovač funguje vlastně jako komprimátor dvou datových toků, jednak z GPS geko 201 a potom ze scintilačního detektoru NB 3201 a případně z intezimetru IT-65.
</p>
 
 
<h2> Zapojení modulů zapisovače </h2>
 
<p>
<img src="../../SCH/GPSRL.png" width="680" height="271">
</p>
<p>
Modul PIC16F84SO1801A je osazen procesorem PIC16F88, protože je potřeba A/D převodník pro zpracování logaritmického analogového signálu ze scintilátoru NB 3201. Připojení intenzimetru IT-65 je provedeno tak, že pulsy se z konektoru přivádí přímo na komparátor v procesoru a z něj do čítače odkud se programově čtou.
</p>
<h3>Snímací prvky</h3>
<p>
<a href="http://www.mlab.cz/WebSVN/filedetails.php?repname=MLAB&path=%2FDesigns%2FGPSRL01A%2FDOC%2Fdokumentace_NB_3201.zip">Dokumentace ke scintilačnímu detektoru NB 3201</a></p>
<p>Intensimetr IT-65:</p>
<a href="pictures/P5290002.JPG"><img src="pictures/P5290002_small.JPG" alt="" width="267" height="200"></a>
<a href="pictures/P5290003.JPG"><img src="pictures/P5290003_small.JPG" alt="" width="267" height="200"></a>
<h2> Program </h2>
 
<p>
Původní zdrojový kód od celého zařízení se mi někam záhadně ztratil Doufám, že ho ale ještě někde objevím, protože i přes jeho jednoduchost byl docela pracný.
</p>
<p>Program pracoval tak, že periodicky četl textový výstup z GPS přijímače a do něj doplňoval naměřenou hodnotu z čítače, nebo A/D převodníku.</p>
<p>
Výsledný datový soubor ukládaný v palmtopu pak vypadal takto: <br>
[datum a čas]N[souřadnice]E[souřadnice]G[intenzita]+[nadmořská výška]E0000N0000U0001*[číslo packetu]
</p>
<p>
060613081217N4943072E01405835G008+00465E0000N0000D0000*0019<br>
060613081222N4943072E01405835G008+00462E0000N0000U0000*0033<br>
060613081227N4943072E01405835G008+00461E0000N0000U0000*0030<br>
060613081232N4943072E01405835G008+00462E0000N0000U0001*0025<br>
060613081237N4943072E01405835G008+00461E0000N0000U0001*0024<br>
060613081242N4943072E01405835G008+00462E0000N0000U0001*0028<br>
060613081247N4943072E01405835G008+00462E0000N0000U0001*0029<br>
060613081252N4943072E01405835G008+00461E0000N0000U0001*0034<br>
</p>
<p>
</p>
 
</div>
 
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
<!-- ============== PATIČKA ============== -->
<div class="Footer">
<script type="text/javascript">
<!--
SetRelativePath("../../../../");
DrawFooter();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
</body>
</html>
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/P5290002.JPG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/P5290002_small.JPG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/P5290003.JPG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/P5290003_small.JPG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/image001.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/HTML/pictures/image001_small.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/DOC/dokumentace_NB_3201.zip
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/SCH/GPSRL.dia
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/SCH/GPSRL.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL01A/SCH/GPSRL.svg
0,0 → 1,51
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created by diasvg.py -->
<svg width="34.000cm" height="13.550cm" viewBox="12.600 6.800 46.600 20.350"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="17.450" y="10.850" width="7.450" height="4.500" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="17.450" y="10.850" width="7.450" height="4.500" fill="none" stroke="#000000" stroke-width="0.100" />
<rect x="12.650" y="11.800" width="2.700" height="2.700" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="12.650" y="11.800" width="2.700" height="2.700" fill="none" stroke="#000000" stroke-width="0.100" />
<rect x="29.500" y="11.000" width="7.150" height="4.350" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="29.500" y="11.000" width="7.150" height="4.350" fill="none" stroke="#000000" stroke-width="0.100" />
<rect x="31.950" y="18.150" width="2.150" height="2.150" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="31.950" y="18.150" width="2.150" height="2.150" fill="none" stroke="#000000" stroke-width="0.100" />
<rect x="40.650" y="10.250" width="5.900" height="5.900" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="40.650" y="10.250" width="5.900" height="5.900" fill="none" stroke="#000000" stroke-width="0.100" />
<line x1="15.350" y1="13.150" x2="17.226" y2="13.105" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="16.844,13.364 17.338,13.103 16.832,12.865 "/>
<line x1="33.075" y1="13.175" x2="33.075" y2="13.175" stroke="#000000" stroke-width="0.100" />
<line x1="24.950" y1="12.000" x2="29.177" y2="11.953" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="28.791,12.207 29.288,11.951 28.786,11.707 "/>
<line x1="25.159" y1="13.998" x2="29.386" y2="13.951" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="25.545,13.744 25.047,13.999 25.550,14.244 "/>
<line x1="33.071" y1="15.574" x2="33.025" y2="18.150" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="33.314,15.966 33.073,15.462 32.814,15.957 "/>
<line x1="36.650" y1="13.175" x2="40.426" y2="13.199" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="40.037,13.446 40.538,13.199 40.040,12.946 "/>
<text x="33.075" y="13.250" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
RS232SINGLE01A</text>
<text x="33.025" y="19.291" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
GPS</text>
<text x="43.600" y="13.200" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
Palmtop</text>
<text x="37.500" y="12.750" fill="#000000" text-anchor="start" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
RS232</text>
<text x="33.500" y="17.150" fill="#000000" text-anchor="start" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
RS232</text>
<text x="26.700" y="11.500" fill="#000000" text-anchor="start" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
TXD</text>
<text x="26.800" y="13.600" fill="#000000" text-anchor="start" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
RXD</text>
<text x="21.175" y="13.166" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
PIC16F84SO1801A</text>
<text x="14.000" y="13.216" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
IT-65</text>
<rect x="19.235" y="6.850" width="3.965" height="1.850" fill="#FFFFFF" stroke="none" stroke-width="0"/>
<rect x="19.235" y="6.850" width="3.965" height="1.850" fill="none" stroke="#000000" stroke-width="0.100" />
<line x1="21.218" y1="8.700" x2="21.179" y2="10.626" stroke="#000000" stroke-width="0.100" />
<polyline fill="none" stroke="#000000" stroke-width="0.100" points="20.937,10.233 21.177,10.738 21.437,10.243 "/>
<text x="21.218" y="7.850" fill="#000000" text-anchor="middle" font-size="0.80" font-family="sans" font-style="normal" font-weight="400">
NB 3201</text>
</svg>
/Designs/Data_loggers/GPSRL01B/SW/gpsrl.c
0,0 → 1,139
/**** GPS skrysohledac ****/
#define ID "$Id: gps.c 984 2008-01-06 23:41:31Z kakl $"
 
#include "gpsrl.h"
 
#include <math.h>
#include <stdlib.h>
#include <stdlibm.h>
 
#define SCINTILAK 1 //kanal adc pro scintilacni detektor NB3201
#define RANGE PIN_A4 // vystup detektoru urcujici rozsah mereni.
 
 
#define LCD_RS PIN_B1 // LCD control
#define LCD_E PIN_B2 // LCD enable
#define LCD_DATA_LSB PIN_B4 // LSB data bit LCD
#include "MYLCD.C"
 
#define TL1 PIN_C0
#define TL2 PIN_C1
#define TL3 PIN_C2
 
//$GPRMC,105815.503,V,4915.5877,N,01442.3896,E,0.0,0.00,060108,,,N*44
//$GPGGA,000415.000,4915.6225,N,01442.3608,E,1,03,50.0,409.6,M,45.2,M,0.0,0000*48
void main()
{
 
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(VREF_LOW|-2);
lcd_init();
 
delay_ms(100);
lcd_gotoxy(5,1);
printf(lcd_putc,"GPSRL01B \n");
printf(lcd_putc,"(c) Kaklik 2008");
delay_ms(300);
printf(lcd_putc,"\f");
 
set_adc_channel(SCINTILAK);
 
while(TRUE)
{
 
 
char tab1[20];
char tab2[20];
char tab3[20];
char tab4[20];
char tab5[20];
 
int8 n;
int16 intensity;
char c;
 
tab1[19]=0;
tab2[19]=0;
tab3[19]=0;
tab4[19]=0;
tab5[19]=0;
 
while(fgetc(NMEA)!='$'); // Waiting for start character
 
intensity=read_adc();
tab1[0]='$';
for(n=1;n<(19);n++)
{
tab1[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
tab2[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
tab3[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
c=fgetc(NMEA);
if(c=='*')
{
tab4[n]=0;
tab5[0]=c;
tab5[1]=fgetc(NMEA);
tab5[2]=fgetc(NMEA);
tab5[3]=0;
goto tisk;
};
tab4[n]=c;
};
 
for(n=0;n<(19);n++) // Read line up to checksum
{
c=fgetc(NMEA);
if(c=='*')
{
tab5[n]=c;
tab5[n+1]=fgetc(NMEA);
tab5[n+2]=fgetc(NMEA);
tab5[n+3]=0;
break;
};
tab5[n]=c;
};
 
tisk:
 
printf(lcd_putc,"\f");
 
if(!input(TL1))
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%s\n",tab1);
printf(lcd_putc,"%s",tab2);
}
else
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%s\n",tab3);
printf(lcd_putc,"%s",tab4);
}
 
puts(strcat(tab1,strcat(tab2,tab3)),PC);
puts(strcat(tab4,tab5),PC);
printf(" /%u/%Lu\n\r",input(RANGE), intensity);
 
}
}
 
/Designs/Data_loggers/GPSRL01B/SW/gpsrl.hex
0,0 → 1,151
:1000000000308A00642A00000A108A100A11820750
:1000100028340C34013406340A108A100A1182077D
:1000200047345034533452344C3430343134423405
:1000300020340A3400340A108A100A118207283446
:100040006334293420344B3461346B346C34693478
:100050006B342034323430343034383400340A10C5
:100060008A100A1182070C340034CE308400000854
:10007000031949280130F800F701F70B3D28F80B68
:100080003C284A30F700F70B432800000000800BA3
:100090003A28003406080F398316D500540EF700AD
:1000A000F030F7057708F0395504831286000615FD
:1000B000831606112130F700F70B5C288312061116
:1000C00083160611831200348316D208031D6C2890
:1000D000831286106E288316831286148316861068
:1000E000D30E5308D40083124A208316D30E53082C
:1000F000D40083124A204230F700F70B7D2800001D
:10010000003414308316CE00831235200F3083164E
:1001100086058312861083168610831206118316B5
:100120000611CC014C08023C031CA2280230CE0070
:100130008312352003308316D40083124A2083169D
:10014000CC0A92280D30F700F70BA4280230D40017
:1001500083124A200D30F700F70BAC288316CC0130
:100160004C08023C031CC6284C088312042083164A
:10017000CD00D2014D08D3008312642002308316D3
:10018000CE00831235208316CC0AB02883128A1140
:100190000A12C72A013083164F02FC3E0318E328D7
:1001A000043E8312EF288316D001E32840308316E3
:1001B000D000E32814308316D000E328543083168F
:1001C000D000E328831601304E02D0075008803853
:1001D000D100D2015108D3008312642000340A10E8
:1001E0008A100A118207D328D628DA28DE28831637
:1001F0004D080C3A831203190729063A03191329EB
:10020000073A03191B29053A0319222929298316BC
:10021000D2010130D3008312642002308316CE0055
:1002200083123520372901308316CE000230CF00EB
:100230008312CA20372901308316CE00CF008312E3
:10024000CA2037298316D2011030D30083126420CC
:10025000372983164D081F3C031C30290730CD0574
:100260000130D2004D08D3008312642037290034B6
:100270000830F70020172008831687008312071F15
:10028000432983163E298316CF01F7175729F71301
:10029000572903108312071B03148316CF0C7717FB
:1002A00057297713F70B49294F08F80062293F3087
:1002B000F71B1130F800F80B5B29F71B4729771B58
:1002C000512949298312003483164D08CF004F0865
:1002D0008400800803196E29CF0A67294E0884001C
:1002E000800803197E294E0884000008D1004F08B9
:1002F000840051088000CF0ACE0A6E294F0884007E
:1003000080014D08F80083120034A01320088316E2
:100310008700831287130830F800000000000000F7
:10032000F817A329F8138316D50C8312031887171F
:10033000031C87137817A3297813F80B932900005F
:100340000000000087171C308400840BA5290000E2
:100350000000F81B9229781B9C2900348316500852
:10036000F8014F020318B7294F08F700C329F70116
:100370000830D100CF0DF70D500877020318F700B1
:10038000F80DD10BBA2983120034780883164D0872
:10039000CF006430D0008312AE2177088316CD00E1
:1003A00078083030031DDB29CE1CE429CE19E4295E
:1003B0004E1A2030DE29CE114E124E14F80778085E
:1003C000D5008312852183164D08CF000A30D00056
:1003D0008312AE2177088316CD0078083030031DD4
:1003E000F729CE19FD294E1CFD294E1A2030F80799
:1003F0007808D5008312852183163030CD074D084B
:10040000D500831285218A110A12822C04088316D2
:10041000D4004E0EF038D000D007E23ED100323E7C
:10042000D3004E080F39D107D107D307E93ED200D8
:10043000D207D2074D0E0F39D207D307D20DD30DF5
:10044000D309D30D4D080F39D307D00D0730CF0096
:100450000A30D307D203031C292AD207D103031C75
:100460002D2AD107D003031C312AD007CF03031C48
:10047000352ACF3084000730540554138407D33015
:100480000402031954170008F700031D4F2A541BD8
:100490004F2A541A5D2AD4194F2A2030522AD415D3
:1004A00054123030F707CE010408CD007708D5008C
:1004B0008312852183164D088400840A541F3F2A25
:1004C00083128A110A12922CA701D730A600163087
:1004D0008316D700D901D801831284011F30830508
:1004E0008316051083120514A013200883168700B5
:1004F0008312871783161F149F141F159F1107302F
:100500009C00FF308312A000A1010130A200A301D2
:10051000A401A50183161F109F141F159F151F13FB
:1005200083121F179F1783169F1783121F1494128D
:10053000A012200883168700831220162008831635
:1005400087008312A01120088316870000308312D1
:100550009400831694000108C7390838810083127B
:1005600090010030F80092000030831692000730AE
:100570009C0005080330F700F70BBC2A1C08831207
:100580000D13FE3083169D000515831281286430FB
:100590008316CE008312352005308316CE0001303D
:1005A000CF008312CA20E80168080C200038031924
:1005B000DF2AE80A8316CD008312F720D42AE80147
:1005C00068081B2000380319EB2AE80A8316CD00BF
:1005D0008312F720E02A0230E80096308316CE001E
:1005E00083123520E80BED2AE80168082F20003837
:1005F0000319002BE80A8316CD008312F720F52A91
:100600000830F8001F08C73978049F00BB01CF01EC
:10061000E3018316B301C701831238217808243C13
:100620000319142B83160C2B1F151F19152B83165A
:100630001E088312E5001E08E6002430A8000130E1
:10064000E4006408123C031C302B2830640784004B
:10065000E90038216908840078088000E40A212B29
:10066000E4016408123C031C402B3C306407840006
:10067000E90038216908840078088000E40A312BF9
:10068000E4016408123C031C502B503064078400C2
:10069000E90038216908840078088000E40A412BC9
:1006A000E4016408123C031C772B38217808E7002A
:1006B00067082A3C031D702BA0306407840080016A
:1006C00067088316B4008312382178088316B500B2
:1006D0008312382178088316B600B701AA2B83123B
:1006E000A0306407840067088000E40A512BE4010D
:1006F0006408123C031CA92B38217808E70067081E
:100700002A3C031DA22BB4306407840067088000D4
:1007100001306407B43E8400EA0038216A0884008E
:100720007808800002306407B43E8400EA00382173
:100730006A0884007808800003306407B43E8400AF
:100740008001A92BB4306407840067088000E40AA4
:10075000782B83168312E80168082F2000380319CC
:10076000B72BE80A8316CD008312F720AC2B201498
:1007700020088316870083120718EC2B013083169C
:10078000CE00CF008312CA2028308400003000043D
:100790000319D52B0408E80000088316CD00831246
:1007A000F72068088400840AC62B0A308316CD001F
:1007B0008312F7203C308400003000040319EB2B37
:1007C0000408E80000088316CD008312F7206808AB
:1007D0008400840ADC2B192C01308316CE00CF0054
:1007E0008312CA2050308400003000040319032C07
:1007F0000408E80000088316CD008312F72068087B
:100800008400840AF42B0A308316CD008312F7206B
:10081000A0308400003000040319192C0408E800FB
:1008200000088316CD008312F72068088400840A2C
:100830000A2C3C308316CD005030CE008312642148
:100840007808E80028308316CD00831278088316D4
:10085000CE00831264217808E9008400003000048F
:1008600003193D2C0408EA0000088316D500831202
:1008700085216A088400840A2E2C0D308316D50049
:10088000831285210A308316D50083128521A0307A
:100890008316CD00B430CE00831264217808E800BE
:1008A0008400003000040319602C0408E9000008EB
:1008B0008316D5008312852169088400840A512C8F
:1008C0000D308316D500831285210A308316D5009A
:1008D000831285218316051600308312051A013014
:1008E000E80020308316D500831285212F3083162F
:1008F000D5008312852168088316CD001B30CE00F9
:100900008312C5292F308316D5008312852110301C
:10091000840066088316CE00831265088316CD0016
:100920008312062A0A308316D500831285210D30E2
:0C0930008316D50083128521062B63007E
:02400E00393F38
:00000001FF
;PIC16F876A
/Designs/Data_loggers/GPSRL01B/SW/gpsrl.h
0,0 → 1,16
#include <16F876A.h>
#device adc=10
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Osc (= 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
 
#use delay(clock=4000000)
#use rs232(stream=NMEA,baud=4800,parity=N,rcv=PIN_C6,bits=8)
#use rs232(stream=PC,baud=9600,parity=N,xmit=PIN_C7,bits=8)
/Designs/Data_loggers/GPSRL01B/SW/MYLCD.C
0,0 → 1,278
// LCD modul pro ovladani dvouradkoveho LCD modulu se standardnim Hitachi radicem
// (c)miho 2002
//
// Historie:
//
// 0.0 Uvodni verze se snadnou definici portu LCD displeje
//
//
// Funkce:
//
// lcd_init() inicializuje LCD displej a porty, nutno volat jako prvni
//
// lcd_putc(c) zapis snaku do lcd displeje, zpracovava nasledujici ridici znaky
// \f = \x0C - nova stranka - smazani displeje
// \n = \x0A - odradkovani (prechod na druhou radku)
// \b = \x08 - backspace - posunuti kurzoru o 1 pozici zpet
// \r = \x0D - goto home to position 1,1
// \0 .. \7 - definovatelne znaky v pozicich 0 az 7 v CGRAM
// \20 .. \27 - alternativne zapsane znaky (oktalove) v pozicich 0 az 7 CGRAM
// Pozor na to, ze funkce printf konci tisk pokud narazi na \0 (konec retezce)
//
// lcd_gotoxy(x,y) presune kurzor na uvedenou adresu
// nekontroluje parametry
//
// lcd_cursor_on zapne kurzor
// lcd_cursor_off vypne kurzor
//
// lcd_define_char(Index, Def) Makro, ktere definuje znaky od pozice Index obsahem definicniho
// retezce Def. Kazdych 8 znaku retezce Def definuje dalsi znak v CGRAM.
// Kapacita CGRAM je celkem 8 znaku s indexem 0 az 7.
// Na konci se provede lcd_gotoxy(1,1).
// Na konci teto knihovny je priklad pouziti definovanych znaku
//
// Definice portu:
//
// #DEFINE LCD_RS PIN_B2 // rizeni registru LCD displeje
// #DEFINE LCD_E PIN_B1 // enable LCD displeje
// #DEFINE LCD_DATA_LSB PIN_C2 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
 
 
 
 
// Privatni sekce, cist jen v pripade, ze neco nefunguje
 
 
 
 
// Generovane defince portu pro ucely teto knihovny aby kod generoval spravne IO operace a soucasne
// bylo mozne jednoduse deklarovat pripojene piny LCD displeje pri pouziti teto knihovny. Problem spociva
// v tom, ze se musi spravne ridit smery portu a soucasne datovy port zabira jen 4 bity ze zadaneho portu
//
#DEFINE LCD_SHIFT (LCD_DATA_LSB&7) // pocet bitu posuvu dataoveho kanalu v datovem portu
#DEFINE LCD_PORT (LCD_DATA_LSB>>3) // adresa LCD datoveho portu
#DEFINE LCD_TRIS (LCD_PORT+0x80) // adresa prislusneho TRIS registru
#DEFINE LCD_MASK (0xF<<LCD_SHIFT) // maska platnych bitu
//
#IF LCD_SHIFT>4 // kontrola mezi
#ERROR LCD data port LSB bit not in range 0..4
#ENDIF
 
 
// Definice konstant pro LCD display
//
#define LCD_CURSOR_ON_ 0x0E // kurzor jako blikajici radka pod znakem
#define LCD_CURSOR_OFF_ 0x0C // zadny kurzor
#define LCD_LINE_2 0x40 // adresa 1. znaku 2. radky
 
 
// Definice rezimu LCD displeje
//
BYTE const LCD_INIT_STRING[4] =
{
0x28, // intrfejs 4 bity, 2 radky, font 5x7
LCD_CURSOR_OFF_, // display on, kurzor off,
0x01, // clear displeje
0x06 // inkrement pozice kurzoru (posun kurzoru doprava)
};
 
 
// Odesle nibble do displeje (posle data a klikne signalem e)
//
void lcd_send_nibble( BYTE n )
{
*LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK); // nastav datove bity portu a ostatni zachovej
output_bit(LCD_E,1); // vzestupna hrana
delay_us(100); // pockej alespon 450ns od e nebo alespon 195ns od dat
output_bit(LCD_E,0); // sestupna hrana (minimalni perioda e je 1us)
}
 
 
// Odesle bajt do registru LCD
//
// Pokud je Adr=0 .. instrukcni registr
// Pokud je Adr=1 .. datovy registr
//
void lcd_send_byte( BOOLEAN Adr, BYTE n )
{
output_bit(LCD_RS,Adr); // vyber registr
swap(n);
lcd_send_nibble(n); // posli horni pulku bajtu
swap(n);
lcd_send_nibble(n); // posli spodni pulku bajtu
delay_us(200); // minimalni doba na provedeni prikazu
}
 
 
// Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje
//
// Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur
//
void lcd_init()
{
 
int i; // pocitadlo cyklu
 
delay_ms(20); // spozdeni pro provedeni startu displeje po zapnuti napajeni
 
*LCD_TRIS = *LCD_TRIS & ~LCD_MASK; // nuluj odpovidajici bity tris registru datoveho portu LCD
 
output_bit(LCD_RS,0); // nastav jako vystup a nastav klidovy stav
output_bit(LCD_E,0); // nastav jako vystup a nastav klidovy stav
 
for (i=0; i<3; i++) // nastav lcd do rezimu 8 bitu sbernice
{
delay_ms(2); // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel
lcd_send_nibble(3); // rezim 8 bitu
}
 
delay_us(40); // cas na zpracovani
lcd_send_nibble(2); // nastav rezim 4 bitu (plati od nasledujiciho prenosu)
delay_us(40); // cas na zpracovani
 
for (i=0;i<3;i++) // proved inicializaci (nastaveni modu, smazani apod)
{
lcd_send_byte(0,LCD_INIT_STRING[i]);
delay_ms(2);
}
}
 
 
// Proved presun kurzoru
//
// Pozice 1.1 je domu
//
#separate
void lcd_gotoxy( BYTE x, BYTE y)
{
 
BYTE Adr;
 
switch(y)
{
case 1: Adr=0; break;
case 2: Adr=0x40; break;
case 3: Adr=0x14; break;
case 4: Adr=0x54; break;
}
Adr+=x-1;
 
lcd_send_byte(0,0x80|Adr);
}
 
 
// Zapis znaku na displej, zpracovani ridicich znaku
//
#separate
void lcd_putc( char c)
{
 
switch (c)
{
case '\f' : lcd_send_byte(0,1); // smaz displej
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2); break; // presun se na 1. znak 2. radky
case '\r' : lcd_gotoxy(1,1); break; // presun home
case '\b' : lcd_send_byte(0,0x10); break; // posun kurzor o 1 zpet
default : if (c<0x20) c&=0x7; // preklopeni definovatelnych znaku na rozsah 0 az 0x1F
lcd_send_byte(1,c); break; // zapis znak
}
}
 
 
// Zapni kurzor
//
void lcd_cursor_on()
{
lcd_send_byte(0,LCD_CURSOR_ON_);
}
 
 
// Vypni kurzor
//
void lcd_cursor_off()
{
lcd_send_byte(0,LCD_CURSOR_OFF_);
}
 
 
// Definice vlastnich fontu
//
// Vlastnich definic muze byt jen 8 do pozic 0 az 7 pameti CGRAM radice lcd displeje
// Pro snadne definovani jsou pripraveny nasledujici definice a na konci souboru je uveden
// priklad pouziti definovanych znaku.
 
 
// Pomocna procedura pro posilani ridicich dat do radice displeje
//
void lcd_putc2(int Data)
{
lcd_send_byte(1,Data);
}
 
 
// Pomocne definice pro programovani obsahu CGRAM
//
#DEFINE lcd_define_start(Code) lcd_send_byte(0,0x40+(Code<<3)); delay_ms(2)
#DEFINE lcd_define_def(String) printf(lcd_putc2,String);
#DEFINE lcd_define_end() lcd_send_byte(0,3); delay_ms(2)
 
 
// Vlastni vykonne makro pro definovani fontu do pozice Index CGRAM s definicnim retezcem Def
//
#DEFINE lcd_define_char(Index, Def) lcd_define_start(Index); lcd_define_def(Def); lcd_define_end();
 
 
// Pripravene definice fontu vybranych znaku
// V tabulce nesmi byt 00 (konec retezce v printf()), misto toho davame 80
//
#DEFINE LCD_CHAR_BAT100 "\x0E\x1F\x1F\x1F\x1F\x1F\x1F\x1F" /* symbol plne baterie */
#DEFINE LCD_CHAR_BAT50 "\x0E\x1F\x11\x11\x13\x17\x1F\x1F" /* symbol polovicni baterie */
#DEFINE LCD_CHAR_BAT0 "\x0E\x1F\x11\x11\x11\x11\x11\x1F" /* symbol vybite baterie */
#DEFINE LCD_CHAR_LUA "\x04\x0E\x11\x11\x1F\x11\x11\x80" /* A s carkou */
#DEFINE LCD_CHAR_LLA "\x01\x02\x0E\x01\x1F\x11\x0F\x80" /* a s carkou */
#DEFINE LCD_CHAR_HUC "\x0A\x0E\x11\x10\x10\x11\x0E\x80" /* C s hackem */
#DEFINE LCD_CHAR_HLC "\x0A\x04\x0E\x10\x10\x11\x0E\x80" /* c s hackem */
#DEFINE LCD_CHAR_HUD "\x0A\x1C\x12\x11\x11\x12\x1C\x80" /* D s hackem */
#DEFINE LCD_CHAR_HLD "\x05\x03\x0D\x13\x11\x11\x0F\x80" /* d s hackem */
#DEFINE LCD_CHAR_LUE "\x04\x1F\x10\x10\x1E\x10\x1F\x80" /* E s carkou */
#DEFINE LCD_CHAR_LLE "\x01\x02\x0E\x11\x1F\x10\x0E\x80" /* e s carkou */
#DEFINE LCD_CHAR_HUE "\x0A\x1F\x10\x1E\x10\x10\x1F\x80" /* E s hackem */
#DEFINE LCD_CHAR_HLE "\x0A\x04\x0E\x11\x1F\x10\x0E\x80" /* e s hackem */
#DEFINE LCD_CHAR_LUI "\x04\x0E\x04\x04\x04\x04\x0E\x80" /* I s carkou */
#DEFINE LCD_CHAR_LLI "\x02\x04\x80\x0C\x04\x04\x0E\x80" /* i s carkou */
#DEFINE LCD_CHAR_HUN "\x0A\x15\x11\x19\x15\x13\x11\x80" /* N s hackem */
#DEFINE LCD_CHAR_HLN "\x0A\x04\x16\x19\x11\x11\x11\x80" /* n s hackem */
#DEFINE LCD_CHAR_LUO "\x04\x0E\x11\x11\x11\x11\x0E\x80" /* O s carkou */
#DEFINE LCD_CHAR_LLO "\x02\x04\x0E\x11\x11\x11\x0E\x80" /* o s carkou */
#DEFINE LCD_CHAR_HUR "\x0A\x1E\x11\x1E\x14\x12\x11\x80" /* R s hackem */
#DEFINE LCD_CHAR_HLR "\x0A\x04\x16\x19\x10\x10\x10\x80" /* r s hackem */
#DEFINE LCD_CHAR_HUS "\x0A\x0F\x10\x0E\x01\x01\x1E\x80" /* S s hackem */
#DEFINE LCD_CHAR_HLS "\x0A\x04\x0E\x10\x0E\x01\x1E\x80" /* s s hackem */
#DEFINE LCD_CHAR_HUT "\x0A\x1F\x04\x04\x04\x04\x04\x80" /* T s hackem */
#DEFINE LCD_CHAR_HLT "\x0A\x0C\x1C\x08\x08\x09\x06\x80" /* t s hackem */
#DEFINE LCD_CHAR_LUU "\x02\x15\x11\x11\x11\x11\x0E\x80" /* U s carkou */
#DEFINE LCD_CHAR_LLU "\x02\x04\x11\x11\x11\x13\x0D\x80" /* u s carkou */
#DEFINE LCD_CHAR_CUU "\x06\x17\x11\x11\x11\x11\x0E\x80" /* U s krouzkem */
#DEFINE LCD_CHAR_CLU "\x06\x06\x11\x11\x11\x11\x0E\x80" /* u s krouzkem */
#DEFINE LCD_CHAR_LUY "\x02\x15\x11\x0A\x04\x04\x04\x80" /* Y s carkou */
#DEFINE LCD_CHAR_LLY "\x02\x04\x11\x11\x0F\x01\x0E\x80" /* y s carkou */
#DEFINE LCD_CHAR_HUZ "\x0A\x1F\x01\x02\x04\x08\x1F\x80" /* Z s hackem */
#DEFINE LCD_CHAR_HLZ "\x0A\x04\x1F\x02\x04\x08\x1F\x80" /* z s hackem */
 
 
// Priklad pouziti definovanych znaku
//
//
//void lcd_sample()
//{
// lcd_define_char(0,LCD_CHAR_BAT50); // Priklad definice znaku baterie do pozice 0
// lcd_define_char(2,LCD_CHAR_HLE LCD_CHAR_LUI); // Priklad definice znaku e s hackem a I s carkou od pozice 2
// // vsimnete si, ze neni carka mezi retezci s definici (oba retezce definuji
// // jediny definicni retezec)
// printf(lcd_putc,"\fZnaky:\20\22\23"); // priklad vypisu znaku z pozice 0, 2 a 3
// delay_ms(1000);
// lcd_define_char(0,LCD_CHAR_BAT0); // Predefinovani tvaru znaku v pozici 0
// delay_ms(1000);
//}
/Designs/Data_loggers/GPSRL01B/SW
Property changes:
Added: svn:ignore
+*.lst
+*.sta
+*.tre
+*.sym
+*.BAK
+*.err
/Designs/Data_loggers/GPSRL02A/PrjInfo.txt
0,0 → 1,14
 
[InfoShortDescription.en]
Ionisation Radiation Logger
 
[InfoShortDescription.cs]
Zapisovač intenzity kosmického záření
[InfoLongDescription.en]
It can log intensity of ionising radiation with GPS coordinates on an SD card.
 
[InfoLongDescription.cs]
Zaznamená intenzitu společně s polohou na SD kartu.
 
[End]
/Designs/Data_loggers/GPSRL02A/DOC/SRC/GPSRL02A_Big.JPG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/GPSRL02A_Small.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/a2dtest.c
0,0 → 1,118
//*****************************************************************************
// File Name : a2dtest.c
//
// Title : example usage of some avr library functions
// Revision : 1.0
// Notes :
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// Revision History:
// When Who Description of change
// ----------- ----------- -----------------------
// 20-Oct-2002 pstang Created the program
//*****************************************************************************
//----- Include Files ---------------------------------------------------------
#include <avr/io.h> // include I/O definitions (port names, pin names, etc)
#include <avr/interrupt.h> // include interrupt support
#include <string.h>
 
#include "global.h" // include our global settings
#include "uart.h" // include uart function library
#include "rprintf.h" // include printf function library
#include "timer.h" // include timer function library (timing, PWM, etc)
#include "a2d.h" // include A/D converter function library
#include "vt100.h" // include VT100 terminal support
 
//----- Begin Code ------------------------------------------------------------
int main(void)
{
u16 a=0;
u08 i=0;
 
// initialize our libraries
// initialize the UART (serial port)
uartInit();
// make all rprintf statements use uart for output
rprintfInit(uartSendByte);
// initialize the timer system
timerInit();
// turn on and initialize A/D converter
a2dInit();
 
// print a little intro message so we know things are working
/* vt100ClearScreen();
vt100SetCursorPos(1,1);
rprintf("Welcome to the a2d test!\r\n");*/
// configure a2d port (PORTA) as input
// so we can receive analog signals
DDRC = 0x00;
// make sure pull-up resistors are turned off
PORTC = 0x00;
 
// set the a2d prescaler (clock division ratio)
// - a lower prescale setting will make the a2d converter go faster
// - a higher setting will make it go slower but the measurements
// will be more accurate
// - other allowed prescale values can be found in a2d.h
a2dSetPrescaler(ADC_PRESCALE_DIV32);
 
// set the a2d reference
// - the reference is the voltage against which a2d measurements are made
// - other allowed reference values can be found in a2d.h
a2dSetReference(ADC_REFERENCE_AVCC);
 
// use a2dConvert8bit(channel#) to get an 8bit a2d reading
// use a2dConvert10bit(channel#) to get a 10bit a2d reading
 
while(1)
{
u08 c=0;
u08 n,i;
char radiace[10];
char radka[201];
 
for(n=0;n<=100;n++) radka[n]=0; // vynuluj bufferovaci pole
for(n=0;n<10;n++) radiace[n]=0; // vynuluj bufferovaci pole
 
n=0;
while(1) // pockej na $ kterym zacina NMEA radka
{
uartReceiveByte(&c);
if(c == '$') break;
}
 
for(i=0;i<100;i++) // nacti maximalne 100 znaku do bufferu
{
radka[n]=c;
if(c == '\n') break; // kdyz narazis na konec radku zastav nacitani
uartReceiveByte(&c);
n++;
}
 
radka[n]=0; // naztav na konec retezce pro zpracovani pomoci strcat
 
 
itoa(a2dConvert10bit(2),&radiace,10); //a2dConvert8bit(1)
if(n != 0)
{
strcat(radka, radiace);
strcat(radka,"\r");
}
n=0;
uartFlushReceiveBuffer();
 
while (0!=radka[n])
{
uartSendByte(radka[n]);
n++;
timerPause(35);
}
 
}
return 0;
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/gpsrl.hex
0,0 → 1,279
:100000003BC055C054C03EC676C50FC6B4C5E0C59A
:1000100045C5F1C44CC0C6C64AC008C783C047C066
:1000200046C045C044C030313233343536373839B4
:1000300041424344454600000001000800400000E2
:1000400001000400000100080020004000800000C2
:100050000100041B5B25643B256448001B5B3F32A9
:10006000356C001B5B3F323568001B5B25646D00FF
:100070001B5B324A001B630011241FBECFE5D4E096
:10008000DEBFCDBF10E0A0E6B0E0E4E4F1E102C0E5
:1000900005900D92A236B107D9F711E0A2E6B0E0C3
:1000A00001C01D92A43DB107E1F759D04AC8A8CFBD
:1000B00033983798089596B1987F982B96B90895FC
:1000C00097B18295880F880F807C9F73982B97B982
:1000D000089597B18F71907E892B87B90895349ACE
:1000E000369A089586B19927807490700895109279
:1000F000B30197B18F71907E892B87B9349A369A64
:100100003699FECF24B185B19927982F88273327B8
:10011000822B932B0895EBDF96958795969587957F
:10012000992708951F920F920FB60F9211248F9363
:100130008FEF8093B3018F910F900FBE0F901F90A0
:100140001895379A359886B1887F866086B981E0A0
:10015000B7DF3D98339A1092B30178940895CBE8B5
:10016000D3E0DEBFCDBFDFD688EB96E00FD1B7D5A9
:10017000E8DF14BA15BA85E09EDF81E0A1DF3CE03C
:10018000C32ED12CCC0EDD1E21E7422E512C4C0E5D
:100190005D1E92E0A92EB12CAC0EBD1E4E0108943E
:1001A000811C911C80E6682E80E0782EF601119269
:1001B000E415F505E1F7F5011192EC15FD05E1F700
:1001C0001982C40169D689818432D9F700E010E030
:1001D000F02E8981F601E00FF11F80838A3041F013
:1001E000C4015AD6F3940F5F1F4F0436110581F7EF
:1001F000F601EF0DF11D108282E079DF4AE050E058
:10020000B50100D7FF2031F0B501C601F0D6B3012A
:10021000C601EDD6B6D500E010E004C0A9D583E252
:1002200090E000D3F601E00FF11D80810F5F1F4FBA
:100230008823A1F7BBCFFC018FB7F894718360834B
:100240005383428317821682158214828FBF0895CA
:10025000CF93DF93DC014FB7F894EC018C819D8143
:10026000892B11F4E0E01CC0FD0186819781ED919E
:10027000FC911197E80FF91FE0810196ED019F8332
:100280008E832A813B818217930720F0821B930B78
:100290009F838E83ED018C819D8101979D838C834B
:1002A0004FBF8E2F9927DF91CF910895FC014FB753
:1002B000F8948481958168177907B0F486819781D5
:1002C000860F971F97838683228133818217930736
:1002D00020F0821B930B9783868384819581861BF4
:1002E000970B9583848302C0158214824FBF0895B3
:1002F000FC01CB014FB7F89426813781628173816D
:10030000820F931FCDD60190F081E02DE80FF91FE9
:1003100080814FBF992708951F93CF93DF93EC01FE
:10032000162F4FB7F8942C813D816A817B81261767
:10033000370798F48E819F81820F931FB1D6E88191
:10034000F981E80FF91F10838C819D8101969D83AF
:100350008C834FBF8FEF90E003C04FBF80E090E0F1
:10036000DF91CF911F910895FC018FB7F8948FBF53
:100370008281938124813581821B930B0895FC0136
:100380008FB7F894158214828FBF089590936300FD
:100390008093620008951F93182F8A3031F4E09102
:1003A0006200F09163008DE00995E0916200F091A8
:1003B0006300812F09951F910895CF93DF93EC017E
:1003C000892B19F405C02196E6DF88818823D9F7A7
:1003D000DF91CF910895EF92FF920F931F93CF93E8
:1003E000DF937A010097C1F0EC01680F791FC617FF
:1003F000D70719F089918823D1F700E010E009C0F0
:100400008881882311F0219601C080E2C4DF0F5F4C
:100410001F4F0E151F05A1F7DF91CF911F910F916F
:10042000FF90EF900895CF93DF93EC01892B11F4A7
:1004300006C0B1DFFE01219684918823D1F7DF91B8
:10044000CF9108958AE0A7DF0895E82FFF27EF7086
:10045000F070EA5DFF4FE4918E2F9DDF08951F93AA
:10046000182F82958F70F1DF812FEFDF1F91089594
:100470000F931F938C01812F9927F1DF802FEFDFDE
:100480001F910F910895EF92FF920F931F937B019D
:100490008C01C801AA27BB27EBDFC701E9DF1F9149
:1004A0000F91FF90EF9008952F923F924F925F929D
:1004B0006F927F928F929F92AF92BF92CF92DF9274
:1004C000EF92FF920F931F93CF93DF93CDB7DEB7D9
:1004D000A4970FB6F894DEBF0FBECDBF4BA32CA3DD
:1004E00027013801442351F017FF08C0EE24FF24F0
:1004F0008701E418F5080609170902C08301720193
:1005000069A390E02BA1211191E0E9A1E91BE15041
:10051000EAA318A2882E992487FC9094A92CB92CC0
:10052000C801B701A5019401CFD5FB01EF70F070B0
:10053000EA5DFF4F64916F8FC801B701A501940177
:10054000C3D569017A012EE1222E312C2C0E3D1EDD
:1005500020C0C114D104E104F104A9F0C701B6011F
:10056000A5019401B1D5FB01EF70F070EA5DFF4F7A
:100570006491F1016083C701B601A5019401A4D57E
:1005800069017A0103C02CA1F1012083089421089C
:10059000310881010F5F1F4F8AA181508AA38F3FCD
:1005A000C1F69BA19923B1F077FE03C081018DE2D2
:1005B0000AC0411451046104710419F081018BE2F5
:1005C00002C0810180E2F801808304C0F8018191BA
:1005D0008F01E1DEF9A1F150F9A3FF3FB9F7A4962D
:1005E0000FB6F894DEBF0FBECDBFDF91CF911F9144
:1005F0000F91FF90EF90DF90CF90BF90AF909F90C2
:100600008F907F906F905F904F903F902F900895C4
:100610009F92AF92BF92CF92DF92EF92FF920F9391
:100620001F93CF93DF93CDB7DEB722970FB6F89421
:10063000DEBF0FBECDBF9888C988DA88CE01439649
:100640009A83898304C0882309F465C0A4DE9601D7
:100650002F5F3F4F992021F0F6016901849103C07B
:10066000F60180816901853271F72F5F3F4F992034
:1006700021F0F6016901849103C0F60180816901CE
:100680008436A1F0883719F0833601F707C0E12CD2
:1006900060E1F62E50E1A52EB12C0FC0E981FA8160
:1006A0003296FA83E98332978081D0CF40E1E42EFD
:1006B00047E2F42E3AE0A32EB12CE981FA8132967A
:1006C000FA83E983129102918436A1F417FF0BC0DB
:1006D000109501951F4F8DE25EDE05C0C7016AE0EF
:1006E00070E0DED47B01F2E0EF16F10418F00E1595
:1006F0001F05A0F3C801B701D3D4CB01A6DEC80102
:10070000B701CED48C01C701B501CAD47B01672BD8
:1007100009F49DCFEFCF80E090E022960FB6F894D9
:10072000DEBF0FBECDBFDF91CF911F910F91FF9024
:10073000EF90DF90CF90BF90AF909F900895089575
:1007400083B7887F826083BF12BE89B7816089BF0B
:100750001092B4011092B5011092B6011092B70137
:1007600008958EB5887F83608EBD1DBC1CBC89B783
:10077000846089BF089585B5887F846085BD14BC79
:1007800089B7806489BF1092BC011092BD0110929C
:10079000BE011092BF01089593B7987F982B93BF25
:1007A00008959EB5987F982B9EBD089595B5987F26
:1007B000982B95BD0895E3B7FF27E770F070EE0F13
:1007C000FF1FE95CFF4F859194910895EEB5FF27D7
:1007D000E770F070EE0FFF1FE95CFF4F8591949179
:1007E0000895E5B5FF27E770F070EE0FFF1FED5B92
:1007F000FF4F859194910895873040F4E82FFF27AB
:10080000EE0FFF1FEC59FF4F71836083089587300F
:1008100040F4E82FFF27EE0FFF1FEC59FF4F118226
:1008200010820895EF92FF920F931F93CF93DF935F
:10083000EC0112B71092B8011092B9011092BA01EE
:100840001092BB01B8DF9C014427552760E072E19C
:100850008AE790E05BD4CA01B901693B2DE87207D1
:1008600026E0820720E0920770F427E2C131D20728
:1008700050F49E0144275527F4D328EE33E040E09E
:1008800050E022D421C028EE33E040E050E01CD4F8
:10089000CA01B9019E0144275527E3D39B01AC014E
:1008A00013C08091B8019091B901A091BA01B091A3
:1008B000BB0185B78F7885BF85B7806885BF889570
:1008C00085B78F7785BF06C0210F311D411D511D92
:1008D00079018A012091B8013091B9014091BA01A2
:1008E0005091BB0182B79927AA27BB27542F432FCA
:1008F000322F2227822B932BA42BB52B8E159F05ED
:10090000A007B10770F2DF91CF911F910F91FF9077
:10091000EF9008951092B4011092B5011092B601B3
:100920001092B70108956091B4017091B501809162
:10093000B6019091B70108951092BC011092BD01CB
:100940001092BE011092BF0108956091BC01709198
:10095000BD018091BE019091BF010895893031F4AD
:100960008FB582608FBD8FB58E7F0AC08A3019F433
:100970008FB5826002C08FB58D7F8FBD8FB58160CE
:100980008FBD1BBC1ABC19BC18BC08952FB52E7F97
:100990002FBD2FB522602FBD2EB528602EBD2EB5E0
:1009A00020612EBD97BD86BD1BBC1ABC19BC18BCEE
:1009B00008958FB580688FBD8FB58F7B8FBD0895EB
:1009C0008FB580628FBD8FB58F7E8FBD08958FB537
:1009D0008F778FBD8FB58F7B8FBD08958FB58F7D3E
:1009E0008FBD8FB58F7E8FBD08959BBD8ABD089545
:1009F00099BD88BD08951F920F920FB60F921124D2
:100A00002F933F934F935F936F937F938F939F9316
:100A1000AF93BF93EF93FF938091B4019091B50191
:100A2000A091B601B091B7010196A11DB11D8093AF
:100A3000B4019093B501A093B601B093B701809132
:100A4000B8019091B901A091BA01B091BB01019692
:100A5000A11DB11D8093B8019093B901A093BA0173
:100A6000B093BB018091640090916500892B29F0BF
:100A7000E0916400F09165000995FF91EF91BF91BD
:100A8000AF919F918F917F916F915F914F913F9126
:100A90002F910F900FBE0F901F9018951F920F92DD
:100AA0000FB60F9211242F933F934F935F936F9341
:100AB0007F938F939F93AF93BF93EF93FF93809117
:100AC000660090916700892B29F0E0916600F09113
:100AD00067000995FF91EF91BF91AF919F918F9121
:100AE0007F916F915F914F913F912F910F900FBE2A
:100AF0000F901F9018951F920F920FB60F9211240E
:100B00002F933F934F935F936F937F938F939F9315
:100B1000AF93BF93EF93FF938091BC019091BD0180
:100B2000A091BE01B091BF010196A11DB11D80939E
:100B3000BC019093BD01A093BE01B093BF01809111
:100B40006E0090916F00892B29F0E0916E00F0917A
:100B50006F000995FF91EF91BF91AF919F918F9198
:100B60007F916F915F914F913F912F910F900FBEA9
:100B70000F901F9018951F920F920FB60F9211248D
:100B80002F933F934F935F936F937F938F939F9395
:100B9000AF93BF93EF93FF938091680090916900AA
:100BA000892B29F0E0916800F09169000995FF9187
:100BB000EF91BF91AF919F918F917F916F915F91D5
:100BC0004F913F912F910F900FBE0F901F9018954E
:100BD0001F920F920FB60F9211242F933F934F93B2
:100BE0005F936F937F938F939F93AF93BF93EF9395
:100BF000FF9380916A0090916B00892B29F0E0911E
:100C00006A00F0916B000995FF91EF91BF91AF9150
:100C10009F918F917F916F915F914F913F912F9114
:100C20000F900FBE0F901F9018951F920F920FB646
:100C30000F9211242F933F934F935F936F937F9362
:100C40008F939F93AF93BF93EF93FF9380916C002B
:100C500090916D00892B29F0E0916C00F0916D006E
:100C60000995FF91EF91BF91AF919F918F917F91E6
:100C70006F915F914F913F912F910F900FBE0F9009
:100C80001F9018951F920F920FB60F9211242F9359
:100C90003F934F935F936F937F938F939F93AF9304
:100CA000BF93EF93FF938091700090917100892B17
:100CB00029F0E0917000F09171000995FF91EF919A
:100CC000BF91AF919F918F917F916F915F914F9164
:100CD0003F912F910F900FBE0F901F90189580E0BD
:100CE00090E0FC01EE0FFF1FEC59FF4F11821082C4
:100CF000019687309105A9F723DD33DD3CDD78943B
:100D000008958FB58D7F8FBD8FB58E7F8FBD8FB5C9
:100D10008F778FBD8FB58F7B8FBD8FB58F7D8FBD4B
:100D20008FB58F7E8FBD08959093B2018093B101EE
:100D30000895F3E0660F771F881F991FFA95D1F782
:100D40009B01AC01220F331F441F551F60507E4E84
:100D500085489F4FB9D12150304029B9232F3327DF
:100D600020BD089581EC91E008958AEC91E008950A
:100D7000982F8091C0018823E1F39CB91092C001A3
:100D800008951092C6011092C50108958091C50181
:100D90009091C601892B19F48FEF90E0089580E0BF
:100DA00090E008951F920F920FB60F9211242F9387
:100DB0003F934F935F936F937F938F939F93AF93E3
:100DC000BF93EF93FF936CB18091B1019091B20109
:100DD000892B39F0E091B101F091B201862F09958C
:100DE0000EC081EC91E098DA882349F48091D20119
:100DF0009091D30101969093D3018093D201FF91FA
:100E0000EF91BF91AF919F918F917F916F915F9182
:100E10004F913F912F910F900FBE0F901F901895FB
:100E2000682F8AEC91E078DA992708951F920F9243
:100E30000FB60F9211242F933F934F935F936F93AD
:100E40007F938F939F93AF93BF93EF93FF93809183
:100E5000C901882369F08091CE019091CF01892B3F
:100E600029F08AEC91E0F4D98CB905C01092C9013F
:100E70008FEF8093C001FF91EF91BF91AF919F9150
:100E80008F917F916F915F914F913F912F910F9033
:100E90000FBE0F901F901895CF93DF93EC018091B8
:100EA000C3019091C401892B69F08091C501909193
:100EB000C601892B39F081EC91E0CAD988838FEF84
:100EC00090E002C080E090E0DF91CF910895CF9351
:100ED000DF93CDB7DEB721970FB6F894DEBF0FBE14
:100EE000CDBFCE010196D8DF882319F48FEF9FEF95
:100EF00002C08981992721960FB6F894DEBF0FBEF4
:100F0000CDBFDF91CF9108954FEF50E062E770E0E1
:100F100081EC91E090D940E450E061E771E08AEC27
:100F200091E089D90895F0DF1092B2011092B101D9
:100F300088ED8AB960E875E280E090E0FADE8FEF34
:100F40008093C0011092C9011092D3011092D20176
:100F5000789408958FEF8093C9018AEC91E078D955
:100F6000982F8091C0018823E1F39CB91092C001B1
:100F7000089577277F936F9399279F938F9383E5A6
:100F800090E09F938F9381E08F9342DB8DB79EB764
:100F900007960FB6F8949EBF0FBE8DBF08958823A5
:100FA00019F083E690E002C08CE590E09F938F9368
:100FB00081E08F932DDB0F900F900F90089599276C
:100FC0009F938F938AE690E09F938F9381E08F9316
:100FD0001FDB0F900F900F900F900F90089580E7F8
:100FE00090E021DA089585E790E01DDA0895FB018D
:100FF000DC010D900020E9F7119701900D9200207F
:10100000E1F70895FB019F01E8944230BCF04532BE
:10101000ACF44A3029F497FB1EF4909581959F4FCC
:10102000642F77273DD0805D8A330CF0895D8193F2
:10103000CB010097A9F716F45DE251931082C90124
:1010400000C0DC01FC01672F71917723E1F7329733
:1010500004C07C916D9370836291AE17BF07C8F393
:101060000895629FD001739FF001829FE00DF11DF2
:10107000649FE00DF11D929FF00D839FF00D749F12
:10108000F00D659FF00D9927729FB00DE11DF91FBE
:10109000639FB00DE11DF91FBD01CF01112408951B
:1010A000AA1BBB1B51E107C0AA1FBB1FA617B7078E
:1010B00010F0A61BB70B881F991F5A95A9F78095AA
:1010C0009095BC01CD010895A1E21A2EAA1BBB1B6D
:1010D000FD010DC0AA1FBB1FEE1FFF1FA217B30704
:1010E000E407F50720F0A21BB30BE40BF50B661F1A
:1010F000771F881F991F1A9469F7609570958095DE
:1011000090959B01AC01BD01CF01089597FB092E7D
:1011100005260ED057FD04D0D7DF0AD0001C38F4C6
:1011200050954095309521953F4F4F4F5F4F089513
:10113000F6F790958095709561957F4F8F4F9F4FF3
:041140000895FFCF40
:021144000D009C
:00000001FF
/Designs/Data_loggers/GPSRL02A/SW/buffer/gpsrl.map
0,0 → 1,540
Archive member included because of file (symbol)
 
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_mulsi3.o)
timer.o (__mulsi3)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodhi4.o)
buffer.o (__udivmodhi4)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodsi4.o)
rprintf.o (__udivmodsi4)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_divmodsi4.o)
timer.o (__divmodsi4)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o (exit)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
a2d.o (__do_copy_data)
/usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
a2d.o (__do_clear_bss)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strcat.o)
a2dtest.o (strcat)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o)
a2dtest.o (itoa)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strrev.o)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o) (strrev)
 
Allocating common symbols
Common symbol size file
 
uartReadyTx 0x1 uart.o
Timer0Reg0 0x4 timer.o
uartRxBuffer 0x8 uart.o
TimerPauseReg 0x4 timer.o
Timer2Reg0 0x4 timer.o
uartBufferedTx 0x1 uart.o
a2dCompleteFlag 0x1 a2d.o
uartTxBuffer 0x8 uart.o
uartRxOverflow 0x2 uart.o
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
LOAD /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
LOAD a2d.o
LOAD a2dtest.o
LOAD buffer.o
LOAD rprintf.o
LOAD timer.o
LOAD uart.o
LOAD vt100.o
LOAD /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a
LOAD /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x1144
*(.vectors)
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
.progmem.data 0x00000026 0x11 rprintf.o
.progmem.data 0x00000037 0x1c timer.o
0x00000043 TimerRTCPrescaleFactor
0x00000037 TimerPrescaleFactor
.progmem.data 0x00000053 0x25 vt100.o
0x00000078 . = ALIGN (0x2)
0x00000078 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000078 0x0 linker stubs
*(.trampolines*)
0x00000078 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000078 __ctors_start = .
*(.ctors)
0x00000078 __ctors_end = .
0x00000078 __dtors_start = .
*(.dtors)
0x00000078 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000078 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
0x00000078 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000078 0xc /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000084 0x16 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
0x00000084 __do_copy_data
.init4 0x0000009a 0x10 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
0x0000009a __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000aa 0x4 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
*(.init9)
*(.text)
.text 0x000000ae 0x2 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
0x000000ae __vector_1
0x000000ae __vector_12
0x000000ae __bad_interrupt
0x000000ae __vector_17
0x000000ae __vector_2
0x000000ae __vector_15
0x000000ae __vector_10
0x000000ae __vector_16
0x000000ae __vector_18
.text 0x000000b0 0xae a2d.o
0x000000e4 a2dIsComplete
0x00000116 a2dConvert8bit
0x000000b0 a2dOff
0x000000b6 a2dSetPrescaler
0x000000ee a2dConvert10bit
0x00000142 a2dInit
0x000000c0 a2dSetReference
0x00000124 __vector_14
0x000000d2 a2dSetChannel
0x000000de a2dStartConvert
.text 0x0000015e 0xd8 a2dtest.o
0x0000015e main
.text 0x00000236 0x156 buffer.o
0x00000368 bufferIsNotFull
0x00000250 bufferGetFromFront
0x000002f0 bufferGetAtIndex
0x000002ac bufferDumpFromFront
0x00000236 bufferInit
0x00000318 bufferAddToEnd
0x0000037e bufferFlush
.text 0x0000038c 0x3b2 rprintf.o
0x00000610 rprintf1RamRom
0x0000045e rprintfu08
0x00000486 rprintfu32
0x000003ba rprintfStr
0x000003d6 rprintfStrLen
0x00000426 rprintfProgStr
0x00000470 rprintfu16
0x0000038c rprintfInit
0x00000396 rprintfChar
0x00000444 rprintfCRLF
0x0000044a rprintfu04
0x000004a8 rprintfNum
.text 0x0000073e 0x5ea timer.o
0x0000094a timer2GetOverflowCount
0x0000080e timerDetach
0x000007a2 timer1SetPrescaler
0x000009dc timer1PWMBOff
0x000007e2 timer2GetPrescaler
0x00000b76 __vector_6
0x00000740 timer0Init
0x000009ce timer1PWMAOff
0x000009f0 timer1PWMBSet
0x00000c84 __vector_3
0x0000098c timer1PWMInitICR
0x000007b6 timer0GetPrescaler
0x00000bd0 __vector_7
0x00000926 timer0GetOverflowCount
0x00000c2a __vector_5
0x00000cde timerInit
0x000007ac timer2SetPrescaler
0x000009b2 timer1PWMAOn
0x00000798 timer0SetPrescaler
0x0000073e delay_us
0x00000af6 __vector_4
0x00000914 timer0ClearOverflowCount
0x000009f6 __vector_9
0x00000762 timer1Init
0x0000095c timer1PWMInit
0x000009c0 timer1PWMBOn
0x00000776 timer2Init
0x00000a9c __vector_8
0x000009ea timer1PWMASet
0x000007f8 timerAttach
0x00000d02 timer1PWMOff
0x000007cc timer1GetPrescaler
0x00000938 timer2ClearOverflowCount
0x00000824 timerPause
.text 0x00000d28 0x24a uart.o
0x00000f54 uartSendTxBuffer
0x00000d70 uartSendByte
0x00000f08 uartInitBuffers
0x00000e98 uartReceiveByte
0x00000e20 uartAddToTxBuffer
0x00000da4 __vector_11
0x00000d28 uartSetRxHandler
0x00000e2c __vector_13
0x00000d82 uartFlushReceiveBuffer
0x00000f26 uartInit
0x00000d8c uartReceiveBufferIsEmpty
0x00000d32 uartSetBaudRate
0x00000d6a uartGetTxBuffer
0x00000ece uartGetByte
0x00000d64 uartGetRxBuffer
.text 0x00000f72 0x7c vt100.o
0x00000fe6 vt100Init
0x00000fbe vt100SetAttr
0x00000f9e vt100SetCursorMode
0x00000f72 vt100SetCursorPos
0x00000fde vt100ClearScreen
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_mulsi3.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodhi4.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodsi4.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_divmodsi4.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
.text 0x00000fee 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
.text 0x00000fee 0x16 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strcat.o)
0x00000fee strcat
.text 0x00001004 0x3e /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o)
0x00001004 itoa
.text 0x00001042 0x20 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strrev.o)
0x00001042 strrev
0x00001062 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x00001062 0x3e /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_mulsi3.o)
0x00001062 __mulsi3
.text.libgcc 0x000010a0 0x28 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodhi4.o)
0x000010a0 __udivmodhi4
.text.libgcc 0x000010c8 0x44 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodsi4.o)
0x000010c8 __udivmodsi4
.text.libgcc 0x0000110c 0x36 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_divmodsi4.o)
0x0000110c __divmodsi4
.text.libgcc 0x00001142 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
.text.libgcc 0x00001142 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
.text.libgcc 0x00001142 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
0x00001142 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00001142 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
0x00001142 exit
0x00001142 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00001142 0x2 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
*(.fini0)
0x00001144 _etext = .
 
.data 0x00800060 0x2 load address 0x00001144
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
.data 0x00800060 0x0 a2d.o
.data 0x00800060 0x2 a2dtest.o
.data 0x00800062 0x0 buffer.o
.data 0x00800062 0x0 rprintf.o
.data 0x00800062 0x0 timer.o
.data 0x00800062 0x0 uart.o
.data 0x00800062 0x0 vt100.o
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_mulsi3.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodhi4.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodsi4.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_divmodsi4.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strcat.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o)
.data 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strrev.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800062 . = ALIGN (0x2)
0x00800062 _edata = .
0x00800062 PROVIDE (__data_end, .)
 
.bss 0x00800062 0x172 load address 0x00001146
0x00800062 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800062 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
.bss 0x00800062 0x0 a2d.o
.bss 0x00800062 0x0 a2dtest.o
.bss 0x00800062 0x0 buffer.o
.bss 0x00800062 0x2 rprintf.o
.bss 0x00800064 0xe timer.o
.bss 0x00800072 0x141 uart.o
.bss 0x008001b3 0x0 vt100.o
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_mulsi3.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodhi4.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_udivmodsi4.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_divmodsi4.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_exit.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_copy_data.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/avr4/libgcc.a(_clear_bss.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strcat.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o)
.bss 0x008001b3 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strrev.o)
*(.bss*)
*(COMMON)
COMMON 0x008001b3 0x1 a2d.o
0x008001b3 a2dCompleteFlag
COMMON 0x008001b4 0xc timer.o
0x008001b4 Timer0Reg0
0x008001b8 TimerPauseReg
0x008001bc Timer2Reg0
COMMON 0x008001c0 0x14 uart.o
0x008001c0 uartReadyTx
0x008001c1 uartRxBuffer
0x008001c9 uartBufferedTx
0x008001ca uartTxBuffer
0x008001d2 uartRxOverflow
0x008001d4 PROVIDE (__bss_end, .)
0x00001144 __data_load_start = LOADADDR (.data)
0x00001146 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x008001d4 0x0
0x008001d4 PROVIDE (__noinit_start, .)
*(.noinit*)
0x008001d4 PROVIDE (__noinit_end, .)
0x008001d4 _end = .
0x008001d4 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.stab 0x00000000 0x3db0
*(.stab)
.stab 0x00000000 0x378 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
.stab 0x00000378 0x7a4 a2d.o
0x7b0 (size before relaxing)
.stab 0x00000b1c 0x48c a2dtest.o
0x72c (size before relaxing)
.stab 0x00000fa8 0x660 buffer.o
0x924 (size before relaxing)
.stab 0x00001608 0x9c0 rprintf.o
0xcf0 (size before relaxing)
.stab 0x00001fc8 0xf54 timer.o
0x129c (size before relaxing)
.stab 0x00002f1c 0x834 uart.o
0xb04 (size before relaxing)
.stab 0x00003750 0x33c vt100.o
0x684 (size before relaxing)
.stab 0x00003a8c 0x9c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strcat.o)
0xa8 (size before relaxing)
.stab 0x00003b28 0x1b0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(itoa.o)
0x1bc (size before relaxing)
.stab 0x00003cd8 0xd8 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/libc.a(strrev.o)
0xe4 (size before relaxing)
 
.stabstr 0x00000000 0x1b97
*(.stabstr)
.stabstr 0x00000000 0x1b97 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(gpsrl.out elf32-avr)
LOAD linker stubs
/Designs/Data_loggers/GPSRL02A/SW/buffer/gpsrl.out
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/Makefile
0,0 → 1,51
 
NAME := gpsrl
HEX := $(NAME).hex
OUT := $(NAME).out
MAP := $(NAME).map
SOURCES := $(wildcard *.c)
HEADERS := $(wildcard *.h)
OBJECTS := $(patsubst %.c,%.o,$(SOURCES))
 
MCU := atmega8
MCU_AVRDUDE := m8
 
CC := avr-gcc
OBJCOPY := avr-objcopy
SIZE := avr-size -A
DOXYGEN := doxygen
 
CFLAGS := -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -Os
 
all: $(HEX)
 
clean:
rm -f $(HEX) $(OUT) $(MAP) $(OBJECTS)
rm -rf doc/html
 
flash: $(HEX)
avrdude -y -p $(MCU_AVRDUDE) -P /dev/ttyUSB0 -c stk500v2 -U flash:w:$(HEX)
 
$(HEX): $(OUT)
$(OBJCOPY) -R .eeprom -O ihex $< $@
 
$(OUT): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ -Wl,-Map,$(MAP) $^
@echo
@$(SIZE) $@
@echo
 
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c -o $@ $<
 
%.pp: %.c
$(CC) $(CFLAGS) -E -o $@ $<
 
%.ppo: %.c
$(CC) $(CFLAGS) -E $<
 
doc: $(HEADERS) $(SOURCES) Doxyfile
$(DOXYGEN) Doxyfile
 
.PHONY: all clean flash doc
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/a2d.c
0,0 → 1,115
/*! \file a2d.c \brief Analog-to-Digital converter function library. */
//*****************************************************************************
//
// File Name : 'a2d.c'
// Title : Analog-to-digital converter functions
// Author : Pascal Stang - Copyright (C) 2002
// Created : 2002-04-08
// Revised : 2002-09-30
// Version : 1.1
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#include <avr/io.h>
#include <avr/interrupt.h>
 
#include "global.h"
#include "a2d.h"
 
// global variables
 
//! Software flag used to indicate when
/// the a2d conversion is complete.
volatile unsigned char a2dCompleteFlag;
 
// functions
 
// initialize a2d converter
void a2dInit(void)
{
sbi(ADCSR, ADEN); // enable ADC (turn on ADC power)
cbi(ADCSR, ADFR); // default to single sample convert mode
a2dSetPrescaler(ADC_PRESCALE); // set default prescaler
a2dSetReference(ADC_REFERENCE); // set default reference
cbi(ADMUX, ADLAR); // set to right-adjusted result
 
sbi(ADCSR, ADIE); // enable ADC interrupts
 
a2dCompleteFlag = FALSE; // clear conversion complete flag
sei(); // turn on interrupts (if not already on)
}
 
// turn off a2d converter
void a2dOff(void)
{
cbi(ADCSR, ADIE); // disable ADC interrupts
cbi(ADCSR, ADEN); // disable ADC (turn off ADC power)
}
 
// configure A2D converter clock division (prescaling)
void a2dSetPrescaler(unsigned char prescale)
{
outb(ADCSR, ((inb(ADCSR) & ~ADC_PRESCALE_MASK) | prescale));
}
 
// configure A2D converter voltage reference
void a2dSetReference(unsigned char ref)
{
outb(ADMUX, ((inb(ADMUX) & ~ADC_REFERENCE_MASK) | (ref<<6)));
}
 
// sets the a2d input channel
void a2dSetChannel(unsigned char ch)
{
outb(ADMUX, (inb(ADMUX) & ~ADC_MUX_MASK) | (ch & ADC_MUX_MASK)); // set channel
}
 
// start a conversion on the current a2d input channel
void a2dStartConvert(void)
{
sbi(ADCSR, ADIF); // clear hardware "conversion complete" flag
sbi(ADCSR, ADSC); // start conversion
}
 
// return TRUE if conversion is complete
u08 a2dIsComplete(void)
{
return bit_is_set(ADCSR, ADSC);
}
 
// Perform a 10-bit conversion
// starts conversion, waits until conversion is done, and returns result
unsigned short a2dConvert10bit(unsigned char ch)
{
a2dCompleteFlag = FALSE; // clear conversion complete flag
outb(ADMUX, (inb(ADMUX) & ~ADC_MUX_MASK) | (ch & ADC_MUX_MASK)); // set channel
sbi(ADCSR, ADIF); // clear hardware "conversion complete" flag
sbi(ADCSR, ADSC); // start conversion
//while(!a2dCompleteFlag); // wait until conversion complete
//while( bit_is_clear(ADCSR, ADIF) ); // wait until conversion complete
while( bit_is_set(ADCSR, ADSC) ); // wait until conversion complete
 
// CAUTION: MUST READ ADCL BEFORE ADCH!!!
return (inb(ADCL) | (inb(ADCH)<<8)); // read ADC (full 10 bits);
}
 
// Perform a 8-bit conversion.
// starts conversion, waits until conversion is done, and returns result
unsigned char a2dConvert8bit(unsigned char ch)
{
// do 10-bit conversion and return highest 8 bits
return a2dConvert10bit(ch)>>2; // return ADC MSB byte
}
 
//! Interrupt handler for ADC complete interrupt.
SIGNAL(SIG_ADC)
{
// set the a2d conversion flag to indicate "complete"
a2dCompleteFlag = TRUE;
}
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/a2d.h
0,0 → 1,151
/*! \file a2d.h \brief Analog-to-Digital converter function library. */
//*****************************************************************************
//
// File Name : 'a2d.h'
// Title : Analog-to-digital converter functions
// Author : Pascal Stang - Copyright (C) 2002
// Created : 4/08/2002
// Revised : 4/30/2002
// Version : 1.1
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
/// \ingroup driver_avr
/// \defgroup a2d A/D Converter Function Library (a2d.c)
/// \code #include "a2d.h" \endcode
/// \par Overview
/// This library provides an easy interface to the analog-to-digital
/// converter available on many AVR processors. Updated to support
/// the ATmega128.
//
//****************************************************************************
//@{
 
#ifndef A2D_H
#define A2D_H
 
// defines
 
// A2D clock prescaler select
// *selects how much the CPU clock frequency is divided
// to create the A2D clock frequency
// *lower division ratios make conversion go faster
// *higher division ratios make conversions more accurate
#define ADC_PRESCALE_DIV2 0x00 ///< 0x01,0x00 -> CPU clk/2
#define ADC_PRESCALE_DIV4 0x02 ///< 0x02 -> CPU clk/4
#define ADC_PRESCALE_DIV8 0x03 ///< 0x03 -> CPU clk/8
#define ADC_PRESCALE_DIV16 0x04 ///< 0x04 -> CPU clk/16
#define ADC_PRESCALE_DIV32 0x05 ///< 0x05 -> CPU clk/32
#define ADC_PRESCALE_DIV64 0x06 ///< 0x06 -> CPU clk/64
#define ADC_PRESCALE_DIV128 0x07 ///< 0x07 -> CPU clk/128
// default value
#define ADC_PRESCALE ADC_PRESCALE_DIV64
// do not change the mask value
#define ADC_PRESCALE_MASK 0x07
 
// A2D voltage reference select
// *this determines what is used as the
// full-scale voltage point for A2D conversions
#define ADC_REFERENCE_AREF 0x00 ///< 0x00 -> AREF pin, internal VREF turned off
#define ADC_REFERENCE_AVCC 0x01 ///< 0x01 -> AVCC pin, internal VREF turned off
#define ADC_REFERENCE_RSVD 0x02 ///< 0x02 -> Reserved
#define ADC_REFERENCE_256V 0x03 ///< 0x03 -> Internal 2.56V VREF
// default value
#define ADC_REFERENCE ADC_REFERENCE_AVCC
// do not change the mask value
#define ADC_REFERENCE_MASK 0xC0
 
// bit mask for A2D channel multiplexer
#define ADC_MUX_MASK 0x1F
 
// channel defines (for reference and use in code)
// these channels supported by all AVRs with A2D
#define ADC_CH_ADC0 0x00
#define ADC_CH_ADC1 0x01
#define ADC_CH_ADC2 0x02
#define ADC_CH_ADC3 0x03
#define ADC_CH_ADC4 0x04
#define ADC_CH_ADC5 0x05
#define ADC_CH_ADC6 0x06
#define ADC_CH_ADC7 0x07
#define ADC_CH_122V 0x1E ///< 1.22V voltage reference
#define ADC_CH_AGND 0x1F ///< AGND
// these channels supported only in ATmega128
// differential with gain
#define ADC_CH_0_0_DIFF10X 0x08
#define ADC_CH_1_0_DIFF10X 0x09
#define ADC_CH_0_0_DIFF200X 0x0A
#define ADC_CH_1_0_DIFF200X 0x0B
#define ADC_CH_2_2_DIFF10X 0x0C
#define ADC_CH_3_2_DIFF10X 0x0D
#define ADC_CH_2_2_DIFF200X 0x0E
#define ADC_CH_3_2_DIFF200X 0x0F
// differential
#define ADC_CH_0_1_DIFF1X 0x10
#define ADC_CH_1_1_DIFF1X 0x11
#define ADC_CH_2_1_DIFF1X 0x12
#define ADC_CH_3_1_DIFF1X 0x13
#define ADC_CH_4_1_DIFF1X 0x14
#define ADC_CH_5_1_DIFF1X 0x15
#define ADC_CH_6_1_DIFF1X 0x16
#define ADC_CH_7_1_DIFF1X 0x17
 
#define ADC_CH_0_2_DIFF1X 0x18
#define ADC_CH_1_2_DIFF1X 0x19
#define ADC_CH_2_2_DIFF1X 0x1A
#define ADC_CH_3_2_DIFF1X 0x1B
#define ADC_CH_4_2_DIFF1X 0x1C
#define ADC_CH_5_2_DIFF1X 0x1D
 
// compatibility for new Mega processors
// ADCSR hack apparently no longer necessary in new AVR-GCC
#ifdef ADCSRA
#ifndef ADCSR
#define ADCSR ADCSRA
#endif
#endif
#ifdef ADATE
#define ADFR ADATE
#endif
 
// function prototypes
 
//! Initializes the A/D converter.
/// Turns ADC on and prepares it for use.
void a2dInit(void);
 
//! Turn off A/D converter
void a2dOff(void);
 
//! Sets the division ratio of the A/D converter clock.
/// This function is automatically called from a2dInit()
/// with a default value.
void a2dSetPrescaler(unsigned char prescale);
 
//! Configures which voltage reference the A/D converter uses.
/// This function is automatically called from a2dInit()
/// with a default value.
void a2dSetReference(unsigned char ref);
 
//! sets the a2d input channel
void a2dSetChannel(unsigned char ch);
 
//! start a conversion on the current a2d input channel
void a2dStartConvert(void);
 
//! return TRUE if conversion is complete
u08 a2dIsComplete(void);
 
//! Starts a conversion on A/D channel# ch,
/// returns the 10-bit value of the conversion when it is finished.
unsigned short a2dConvert10bit(unsigned char ch);
 
//! Starts a conversion on A/D channel# ch,
/// returns the 8-bit value of the conversion when it is finished.
unsigned char a2dConvert8bit(unsigned char ch);
 
#endif
//@}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/avrlibdefs.h
0,0 → 1,83
/*! \file avrlibdefs.h \brief AVRlib global defines and macros. */
//*****************************************************************************
//
// File Name : 'avrlibdefs.h'
// Title : AVRlib global defines and macros include file
// Author : Pascal Stang
// Created : 7/12/2001
// Revised : 9/30/2002
// Version : 1.1
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// Description : This include file is designed to contain items useful to all
// code files and projects, regardless of specific implementation.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
 
#ifndef AVRLIBDEFS_H
#define AVRLIBDEFS_H
 
// Code compatibility to new AVR-libc
// outb(), inb(), inw(), outw(), BV(), sbi(), cbi(), sei(), cli()
#ifndef outb
#define outb(addr, data) addr = (data)
#endif
#ifndef inb
#define inb(addr) (addr)
#endif
#ifndef outw
#define outw(addr, data) addr = (data)
#endif
#ifndef inw
#define inw(addr) (addr)
#endif
#ifndef BV
#define BV(bit) (1<<(bit))
#endif
#ifndef cbi
#define cbi(reg,bit) reg &= ~(BV(bit))
#endif
#ifndef sbi
#define sbi(reg,bit) reg |= (BV(bit))
#endif
#ifndef cli
#define cli() __asm__ __volatile__ ("cli" ::)
#endif
#ifndef sei
#define sei() __asm__ __volatile__ ("sei" ::)
#endif
 
// support for individual port pin naming in the mega128
// see port128.h for details
#ifdef __AVR_ATmega128__
// not currently necessary due to inclusion
// of these defines in newest AVR-GCC
// do a quick test to see if include is needed
#ifndef PD0
#include "port128.h"
#endif
#endif
 
// use this for packed structures
// (this is seldom necessary on an 8-bit architecture like AVR,
// but can assist in code portability to AVR)
#define GNUC_PACKED __attribute__((packed))
 
// port address helpers
#define DDR(x) ((x)-1) // address of data direction register of port x
#define PIN(x) ((x)-2) // address of input register of port x
 
// MIN/MAX/ABS macros
#define MIN(a,b) ((a<b)?(a):(b))
#define MAX(a,b) ((a>b)?(a):(b))
#define ABS(x) ((x>0)?(x):(-x))
 
// constants
#define PI 3.14159265359
 
#endif
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/avrlibtypes.h
0,0 → 1,84
/*! \file avrlibtypes.h \brief AVRlib global types and typedefines. */
//*****************************************************************************
//
// File Name : 'avrlibtypes.h'
// Title : AVRlib global types and typedefines include file
// Author : Pascal Stang
// Created : 7/12/2001
// Revised : 9/30/2002
// Version : 1.0
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// Description : Type-defines required and used by AVRlib. Most types are also
// generally useful.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
 
#ifndef AVRLIBTYPES_H
#define AVRLIBTYPES_H
 
#ifndef WIN32
// true/false defines
#define FALSE 0
#define TRUE -1
#endif
 
// datatype definitions macros
typedef unsigned char u08;
typedef signed char s08;
typedef unsigned short u16;
typedef signed short s16;
typedef unsigned long u32;
typedef signed long s32;
typedef unsigned long long u64;
typedef signed long long s64;
 
/* use inttypes.h instead
// C99 standard integer type definitions
typedef unsigned char uint8_t;
typedef signed char int8_t;
typedef unsigned short uint16_t;
typedef signed short int16_t;
typedef unsigned long uint32_t;
typedef signed long int32_t;
typedef unsigned long uint64_t;
typedef signed long int64_t;
*/
// maximum value that can be held
// by unsigned data types (8,16,32bits)
#define MAX_U08 255
#define MAX_U16 65535
#define MAX_U32 4294967295
 
// maximum values that can be held
// by signed data types (8,16,32bits)
#define MIN_S08 -128
#define MAX_S08 127
#define MIN_S16 -32768
#define MAX_S16 32767
#define MIN_S32 -2147483648
#define MAX_S32 2147483647
 
#ifndef WIN32
// more type redefinitions
typedef unsigned char BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
 
typedef unsigned char UCHAR;
typedef unsigned int UINT;
typedef unsigned short USHORT;
typedef unsigned long ULONG;
 
typedef char CHAR;
typedef int INT;
typedef long LONG;
#endif
 
#endif
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/buffer.c
0,0 → 1,149
/*! \file buffer.c \brief Multipurpose byte buffer structure and methods. */
//*****************************************************************************
//
// File Name : 'buffer.c'
// Title : Multipurpose byte buffer structure and methods
// Author : Pascal Stang - Copyright (C) 2001-2002
// Created : 9/23/2001
// Revised : 9/23/2001
// Version : 1.0
// Target MCU : any
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#include "buffer.h"
#include "global.h"
#include "avr/io.h"
 
#ifndef CRITICAL_SECTION_START
#define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli()
#define CRITICAL_SECTION_END SREG = _sreg
#endif
 
// global variables
 
// initialization
 
void bufferInit(cBuffer* buffer, unsigned char *start, unsigned short size)
{
// begin critical section
CRITICAL_SECTION_START;
// set start pointer of the buffer
buffer->dataptr = start;
buffer->size = size;
// initialize index and length
buffer->dataindex = 0;
buffer->datalength = 0;
// end critical section
CRITICAL_SECTION_END;
}
 
// access routines
unsigned char bufferGetFromFront(cBuffer* buffer)
{
unsigned char data = 0;
// begin critical section
CRITICAL_SECTION_START;
// check to see if there's data in the buffer
if(buffer->datalength)
{
// get the first character from buffer
data = buffer->dataptr[buffer->dataindex];
// move index down and decrement length
buffer->dataindex++;
if(buffer->dataindex >= buffer->size)
{
buffer->dataindex -= buffer->size;
}
buffer->datalength--;
}
// end critical section
CRITICAL_SECTION_END;
// return
return data;
}
 
void bufferDumpFromFront(cBuffer* buffer, unsigned short numbytes)
{
// begin critical section
CRITICAL_SECTION_START;
// dump numbytes from the front of the buffer
// are we dumping less than the entire buffer?
if(numbytes < buffer->datalength)
{
// move index down by numbytes and decrement length by numbytes
buffer->dataindex += numbytes;
if(buffer->dataindex >= buffer->size)
{
buffer->dataindex -= buffer->size;
}
buffer->datalength -= numbytes;
}
else
{
// flush the whole buffer
buffer->datalength = 0;
}
// end critical section
CRITICAL_SECTION_END;
}
 
unsigned char bufferGetAtIndex(cBuffer* buffer, unsigned short index)
{
// begin critical section
CRITICAL_SECTION_START;
// return character at index in buffer
unsigned char data = buffer->dataptr[(buffer->dataindex+index)%(buffer->size)];
// end critical section
CRITICAL_SECTION_END;
return data;
}
 
unsigned char bufferAddToEnd(cBuffer* buffer, unsigned char data)
{
// begin critical section
CRITICAL_SECTION_START;
// make sure the buffer has room
if(buffer->datalength < buffer->size)
{
// save data byte at end of buffer
buffer->dataptr[(buffer->dataindex + buffer->datalength) % buffer->size] = data;
// increment the length
buffer->datalength++;
// end critical section
CRITICAL_SECTION_END;
// return success
return -1;
}
// end critical section
CRITICAL_SECTION_END;
// return failure
return 0;
}
 
unsigned short bufferIsNotFull(cBuffer* buffer)
{
// begin critical section
CRITICAL_SECTION_START;
// check to see if the buffer has room
// return true if there is room
unsigned short bytesleft = (buffer->size - buffer->datalength);
// end critical section
CRITICAL_SECTION_END;
return bytesleft;
}
 
void bufferFlush(cBuffer* buffer)
{
// begin critical section
CRITICAL_SECTION_START;
// flush contents of the buffer
buffer->datalength = 0;
// end critical section
CRITICAL_SECTION_END;
}
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/buffer.h
0,0 → 1,74
/*! \file buffer.h \brief Multipurpose byte buffer structure and methods. */
//*****************************************************************************
//
// File Name : 'buffer.h'
// Title : Multipurpose byte buffer structure and methods
// Author : Pascal Stang - Copyright (C) 2001-2002
// Created : 9/23/2001
// Revised : 11/16/2002
// Version : 1.1
// Target MCU : any
// Editor Tabs : 4
//
/// \ingroup general
/// \defgroup buffer Circular Byte-Buffer Structure and Function Library (buffer.c)
/// \code #include "buffer.h" \endcode
/// \par Overview
/// This byte-buffer structure provides an easy and efficient way to store
/// and process a stream of bytes.  You can create as many buffers as you
/// like (within memory limits), and then use this common set of functions to
/// access each buffer.  The buffers are designed for FIFO operation (first
/// in, first out).  This means that the first byte you put in the buffer
/// will be the first one you get when you read out the buffer.  Supported
/// functions include buffer initialize, get byte from front of buffer, add
/// byte to end of buffer, check if buffer is full, and flush buffer.  The
/// buffer uses a circular design so no copying of data is ever necessary.
/// This buffer is not dynamically allocated, it has a user-defined fixed
/// maximum size.  This buffer is used in many places in the avrlib code.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
//@{
 
#ifndef BUFFER_H
#define BUFFER_H
 
// structure/typdefs
 
//! cBuffer structure
typedef struct struct_cBuffer
{
unsigned char *dataptr; ///< the physical memory address where the buffer is stored
unsigned short size; ///< the allocated size of the buffer
unsigned short datalength; ///< the length of the data currently in the buffer
unsigned short dataindex; ///< the index into the buffer where the data starts
} cBuffer;
 
// function prototypes
 
//! initialize a buffer to start at a given address and have given size
void bufferInit(cBuffer* buffer, unsigned char *start, unsigned short size);
 
//! get the first byte from the front of the buffer
unsigned char bufferGetFromFront(cBuffer* buffer);
 
//! dump (discard) the first numbytes from the front of the buffer
void bufferDumpFromFront(cBuffer* buffer, unsigned short numbytes);
 
//! get a byte at the specified index in the buffer (kind of like array access)
// ** note: this does not remove the byte that was read from the buffer
unsigned char bufferGetAtIndex(cBuffer* buffer, unsigned short index);
 
//! add a byte to the end of the buffer
unsigned char bufferAddToEnd(cBuffer* buffer, unsigned char data);
 
//! check if the buffer is full/not full (returns zero value if full)
unsigned short bufferIsNotFull(cBuffer* buffer);
 
//! flush (clear) the contents of the buffer
void bufferFlush(cBuffer* buffer);
 
#endif
//@}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/global.h
0,0 → 1,42
 
//*****************************************************************************
//
// File Name : 'global.h'
// Title : AVR project global include
// Author : Pascal Stang
// Created : 7/12/2001
// Revised : 9/30/2002
// Version : 1.1
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// Description : This include file is designed to contain items useful to all
// code files and projects.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#ifndef GLOBAL_H
#define GLOBAL_H
 
// global AVRLIB defines
#include "avrlibdefs.h"
// global AVRLIB types definitions
#include "avrlibtypes.h"
 
// project/system dependent defines
 
#define UART_RX_BUFFER_SIZE 0x00FF
 
// CPU clock speed
//#define F_CPU 16000000 // 16MHz processor
//#define F_CPU 14745000 // 14.745MHz processor
#define F_CPU 8000000 // 8MHz processor
//#define F_CPU 7372800 // 7.37MHz processor
//#define F_CPU 4000000 // 4MHz processor
//#define F_CPU 3686400 // 3.69MHz processor
#define CYCLES_PER_US ((F_CPU+500000)/1000000) // cpu cycles per microsecond
 
#endif
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/rprintf.c
0,0 → 1,782
/*! \file rprintf.c \brief printf routine and associated routines. */
//*****************************************************************************
//
// File Name : 'rprintf.c'
// Title : printf routine and associated routines
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 2000.12.26
// Revised : 2003.5.1
// Version : 1.0
// Target MCU : Atmel AVR series and other targets
// Editor Tabs : 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested. Nonetheless, you can expect most functions to work.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#include <avr/pgmspace.h>
//#include <string-avr.h>
//#include <stdlib.h>
#include <stdarg.h>
#include "global.h"
#include "rprintf.h"
 
#ifndef TRUE
#define TRUE -1
#define FALSE 0
#endif
 
#define INF 32766 // maximum field size to print
#define READMEMBYTE(a,char_ptr) ((a)?(pgm_read_byte(char_ptr)):(*char_ptr))
 
#ifdef RPRINTF_COMPLEX
static unsigned char buf[128];
#endif
 
// use this to store hex conversion in RAM
//static char HexChars[] = "0123456789ABCDEF";
// use this to store hex conversion in program memory
//static prog_char HexChars[] = "0123456789ABCDEF";
static char __attribute__ ((progmem)) HexChars[] = "0123456789ABCDEF";
 
#define hexchar(x) pgm_read_byte( HexChars+((x)&0x0f) )
//#define hexchar(x) ((((x)&0x0F)>9)?((x)+'A'-10):((x)+'0'))
 
// function pointer to single character output routine
static void (*rputchar)(unsigned char c);
 
// *** rprintf initialization ***
// you must call this function once and supply the character output
// routine before using other functions in this library
void rprintfInit(void (*putchar_func)(unsigned char c))
{
rputchar = putchar_func;
}
 
// *** rprintfChar ***
// send a character/byte to the current output device
void rprintfChar(unsigned char c)
{
// do LF -> CR/LF translation
if(c == '\n')
rputchar('\r');
// send character
rputchar(c);
}
 
// *** rprintfStr ***
// prints a null-terminated string stored in RAM
void rprintfStr(char str[])
{
// send a string stored in RAM
// check to make sure we have a good pointer
if (!str) return;
 
// print the string until a null-terminator
while (*str)
rprintfChar(*str++);
}
 
// *** rprintfStrLen ***
// prints a section of a string stored in RAM
// begins printing at position indicated by <start>
// prints number of characters indicated by <len>
void rprintfStrLen(char str[], unsigned int start, unsigned int len)
{
register int i=0;
 
// check to make sure we have a good pointer
if (!str) return;
// spin through characters up to requested start
// keep going as long as there's no null
while((i++<start) && (*str++));
// for(i=0; i<start; i++)
// {
// // keep steping through string as long as there's no null
// if(*str) str++;
// }
 
// then print exactly len characters
for(i=0; i<len; i++)
{
// print data out of the string as long as we haven't reached a null yet
// at the null, start printing spaces
if(*str)
rprintfChar(*str++);
else
rprintfChar(' ');
}
 
}
 
// *** rprintfProgStr ***
// prints a null-terminated string stored in program ROM
void rprintfProgStr(const prog_char str[])
{
// print a string stored in program memory
register char c;
 
// check to make sure we have a good pointer
if (!str) return;
// print the string until the null-terminator
while((c = pgm_read_byte(str++)))
rprintfChar(c);
}
 
// *** rprintfCRLF ***
// prints carriage return and line feed
void rprintfCRLF(void)
{
// print CR/LF
//rprintfChar('\r');
// LF -> CR/LF translation built-in to rprintfChar()
rprintfChar('\n');
}
 
// *** rprintfu04 ***
// prints an unsigned 4-bit number in hex (1 digit)
void rprintfu04(unsigned char data)
{
// print 4-bit hex value
// char Character = data&0x0f;
// if (Character>9)
// Character+='A'-10;
// else
// Character+='0';
rprintfChar(hexchar(data));
}
 
// *** rprintfu08 ***
// prints an unsigned 8-bit number in hex (2 digits)
void rprintfu08(unsigned char data)
{
// print 8-bit hex value
rprintfu04(data>>4);
rprintfu04(data);
}
 
// *** rprintfu16 ***
// prints an unsigned 16-bit number in hex (4 digits)
void rprintfu16(unsigned short data)
{
// print 16-bit hex value
rprintfu08(data>>8);
rprintfu08(data);
}
 
// *** rprintfu32 ***
// prints an unsigned 32-bit number in hex (8 digits)
void rprintfu32(unsigned long data)
{
// print 32-bit hex value
rprintfu16(data>>16);
rprintfu16(data);
}
 
// *** rprintfNum ***
// special printf for numbers only
// see formatting information below
// Print the number "n" in the given "base"
// using exactly "numDigits"
// print +/- if signed flag "isSigned" is TRUE
// use the character specified in "padchar" to pad extra characters
//
// Examples:
// uartPrintfNum(10, 6, TRUE, ' ', 1234); --> " +1234"
// uartPrintfNum(10, 6, FALSE, '0', 1234); --> "001234"
// uartPrintfNum(16, 6, FALSE, '.', 0x5AA5); --> "..5AA5"
void rprintfNum(char base, char numDigits, char isSigned, char padchar, long n)
{
// define a global HexChars or use line below
//static char HexChars[16] = "0123456789ABCDEF";
char *p, buf[32];
unsigned long x;
unsigned char count;
 
// prepare negative number
if( isSigned && (n < 0) )
{
x = -n;
}
else
{
x = n;
}
 
// setup little string buffer
count = (numDigits-1)-(isSigned?1:0);
p = buf + sizeof (buf);
*--p = '\0';
// force calculation of first digit
// (to prevent zero from not printing at all!!!)
*--p = hexchar(x%base); x /= base;
// calculate remaining digits
while(count--)
{
if(x != 0)
{
// calculate next digit
*--p = hexchar(x%base); x /= base;
}
else
{
// no more digits left, pad out to desired length
*--p = padchar;
}
}
 
// apply signed notation if requested
if( isSigned )
{
if(n < 0)
{
*--p = '-';
}
else if(n > 0)
{
*--p = '+';
}
else
{
*--p = ' ';
}
}
 
// print the string right-justified
count = numDigits;
while(count--)
{
rprintfChar(*p++);
}
}
 
#ifdef RPRINTF_FLOAT
// *** rprintfFloat ***
// floating-point print
void rprintfFloat(char numDigits, double x)
{
unsigned char firstplace = FALSE;
unsigned char negative;
unsigned char i, digit;
double place = 1.0;
// save sign
negative = (x<0);
// convert to absolute value
x = (x>0)?(x):(-x);
// find starting digit place
for(i=0; i<15; i++)
{
if((x/place) < 10.0)
break;
else
place *= 10.0;
}
// print polarity character
if(negative)
rprintfChar('-');
else
rprintfChar('+');
 
// print digits
for(i=0; i<numDigits; i++)
{
digit = (x/place);
 
if(digit | firstplace | (place == 1.0))
{
firstplace = TRUE;
rprintfChar(digit+0x30);
}
else
rprintfChar(' ');
if(place == 1.0)
{
rprintfChar('.');
}
x -= (digit*place);
place /= 10.0;
}
}
#endif
 
#ifdef RPRINTF_SIMPLE
// *** rprintf1RamRom ***
// called by rprintf() - does a simple printf (supports %d, %x, %c)
// Supports:
// %d - decimal
// %x - hex
// %c - character
int rprintf1RamRom(unsigned char stringInRom, const char *format, ...)
{
// simple printf routine
// define a global HexChars or use line below
//static char HexChars[16] = "0123456789ABCDEF";
char format_flag;
unsigned int u_val, div_val, base;
va_list ap;
 
va_start(ap, format);
for (;;)
{
while ((format_flag = READMEMBYTE(stringInRom,format++) ) != '%')
{ // Until '%' or '\0'
if (!format_flag)
{
va_end(ap);
return(0);
}
rprintfChar(format_flag);
}
 
switch (format_flag = READMEMBYTE(stringInRom,format++) )
{
case 'c': format_flag = va_arg(ap,int);
default: rprintfChar(format_flag); continue;
case 'd': base = 10; div_val = 10000; goto CONVERSION_LOOP;
// case 'x': base = 16; div_val = 0x10;
case 'x': base = 16; div_val = 0x1000;
 
CONVERSION_LOOP:
u_val = va_arg(ap,int);
if (format_flag == 'd')
{
if (((int)u_val) < 0)
{
u_val = - u_val;
rprintfChar('-');
}
while (div_val > 1 && div_val > u_val) div_val /= 10;
}
do
{
//rprintfChar(pgm_read_byte(HexChars+(u_val/div_val)));
rprintfu04(u_val/div_val);
u_val %= div_val;
div_val /= base;
} while (div_val);
}
}
va_end(ap);
}
#endif
 
 
#ifdef RPRINTF_COMPLEX
// *** rprintf2RamRom ***
// called by rprintf() - does a more powerful printf (supports %d, %u, %o, %x, %c, %s)
// Supports:
// %d - decimal
// %u - unsigned decimal
// %o - octal
// %x - hex
// %c - character
// %s - strings
// and the width,precision,padding modifiers
// **this printf does not support floating point numbers
int rprintf2RamRom(unsigned char stringInRom, const char *sfmt, ...)
{
register unsigned char *f, *bp;
register long l;
register unsigned long u;
register int i;
register int fmt;
register unsigned char pad = ' ';
int flush_left = 0, f_width = 0, prec = INF, hash = 0, do_long = 0;
int sign = 0;
 
va_list ap;
va_start(ap, sfmt);
 
f = (unsigned char *) sfmt;
 
for (; READMEMBYTE(stringInRom,f); f++)
{
if (READMEMBYTE(stringInRom,f) != '%')
{ // not a format character
// then just output the char
rprintfChar(READMEMBYTE(stringInRom,f));
}
else
{
f++; // if we have a "%" then skip it
if (READMEMBYTE(stringInRom,f) == '-')
{
flush_left = 1; // minus: flush left
f++;
}
if (READMEMBYTE(stringInRom,f) == '0'
|| READMEMBYTE(stringInRom,f) == '.')
{
// padding with 0 rather than blank
pad = '0';
f++;
}
if (READMEMBYTE(stringInRom,f) == '*')
{ // field width
f_width = va_arg(ap, int);
f++;
}
else if (Isdigit(READMEMBYTE(stringInRom,f)))
{
f_width = atoiRamRom(stringInRom, (char *) f);
while (Isdigit(READMEMBYTE(stringInRom,f)))
f++; // skip the digits
}
if (READMEMBYTE(stringInRom,f) == '.')
{ // precision
f++;
if (READMEMBYTE(stringInRom,f) == '*')
{
prec = va_arg(ap, int);
f++;
}
else if (Isdigit(READMEMBYTE(stringInRom,f)))
{
prec = atoiRamRom(stringInRom, (char *) f);
while (Isdigit(READMEMBYTE(stringInRom,f)))
f++; // skip the digits
}
}
if (READMEMBYTE(stringInRom,f) == '#')
{ // alternate form
hash = 1;
f++;
}
if (READMEMBYTE(stringInRom,f) == 'l')
{ // long format
do_long = 1;
f++;
}
 
fmt = READMEMBYTE(stringInRom,f);
bp = buf;
switch (fmt) { // do the formatting
case 'd': // 'd' signed decimal
if (do_long)
l = va_arg(ap, long);
else
l = (long) (va_arg(ap, int));
if (l < 0)
{
sign = 1;
l = -l;
}
do {
*bp++ = l % 10 + '0';
} while ((l /= 10) > 0);
if (sign)
*bp++ = '-';
f_width = f_width - (bp - buf);
if (!flush_left)
while (f_width-- > 0)
rprintfChar(pad);
for (bp--; bp >= buf; bp--)
rprintfChar(*bp);
if (flush_left)
while (f_width-- > 0)
rprintfChar(' ');
break;
case 'o': // 'o' octal number
case 'x': // 'x' hex number
case 'u': // 'u' unsigned decimal
if (do_long)
u = va_arg(ap, unsigned long);
else
u = (unsigned long) (va_arg(ap, unsigned));
if (fmt == 'u')
{ // unsigned decimal
do {
*bp++ = u % 10 + '0';
} while ((u /= 10) > 0);
}
else if (fmt == 'o')
{ // octal
do {
*bp++ = u % 8 + '0';
} while ((u /= 8) > 0);
if (hash)
*bp++ = '0';
}
else if (fmt == 'x')
{ // hex
do {
i = u % 16;
if (i < 10)
*bp++ = i + '0';
else
*bp++ = i - 10 + 'a';
} while ((u /= 16) > 0);
if (hash)
{
*bp++ = 'x';
*bp++ = '0';
}
}
i = f_width - (bp - buf);
if (!flush_left)
while (i-- > 0)
rprintfChar(pad);
for (bp--; bp >= buf; bp--)
rprintfChar((int) (*bp));
if (flush_left)
while (i-- > 0)
rprintfChar(' ');
break;
case 'c': // 'c' character
i = va_arg(ap, int);
rprintfChar((int) (i));
break;
case 's': // 's' string
bp = va_arg(ap, unsigned char *);
if (!bp)
bp = (unsigned char *) "(nil)";
f_width = f_width - strlen((char *) bp);
if (!flush_left)
while (f_width-- > 0)
rprintfChar(pad);
for (i = 0; *bp && i < prec; i++)
{
rprintfChar(*bp);
bp++;
}
if (flush_left)
while (f_width-- > 0)
rprintfChar(' ');
break;
case '%': // '%' character
rprintfChar('%');
break;
}
flush_left = 0, f_width = 0, prec = INF, hash = 0, do_long = 0;
sign = 0;
pad = ' ';
}
}
 
va_end(ap);
return 0;
}
 
unsigned char Isdigit(char c)
{
if((c >= 0x30) && (c <= 0x39))
return TRUE;
else
return FALSE;
}
 
int atoiRamRom(unsigned char stringInRom, char *str)
{
int num = 0;;
 
while(Isdigit(READMEMBYTE(stringInRom,str)))
{
num *= 10;
num += ((READMEMBYTE(stringInRom,str++)) - 0x30);
}
return num;
}
 
#endif
 
//******************************************************************************
// code below this line is commented out and can be ignored
//******************************************************************************
/*
char* sprintf(const char *sfmt, ...)
{
register unsigned char *f, *bp, *str;
register long l;
register unsigned long u;
register int i;
register int fmt;
register unsigned char pad = ' ';
int flush_left = 0, f_width = 0, prec = INF, hash = 0, do_long = 0;
int sign = 0;
 
va_list ap;
va_start(ap, sfmt);
 
str = bufstring;
f = (unsigned char *) sfmt;
 
for (; *f; f++)
{
if (*f != '%')
{ // not a format character
*str++ = (*f); // then just output the char
}
else
{
f++; // if we have a "%" then skip it
if (*f == '-')
{
flush_left = 1; // minus: flush left
f++;
}
if (*f == '0' || *f == '.')
{
// padding with 0 rather than blank
pad = '0';
f++;
}
if (*f == '*')
{ // field width
f_width = va_arg(ap, int);
f++;
}
else if (Isdigit(*f))
{
f_width = atoi((char *) f);
while (Isdigit(*f))
f++; // skip the digits
}
if (*f == '.')
{ // precision
f++;
if (*f == '*')
{
prec = va_arg(ap, int);
f++;
}
else if (Isdigit(*f))
{
prec = atoi((char *) f);
while (Isdigit(*f))
f++; // skip the digits
}
}
if (*f == '#')
{ // alternate form
hash = 1;
f++;
}
if (*f == 'l')
{ // long format
do_long = 1;
f++;
}
 
fmt = *f;
bp = buf;
switch (fmt) { // do the formatting
case 'd': // 'd' signed decimal
if (do_long)
l = va_arg(ap, long);
else
l = (long) (va_arg(ap, int));
if (l < 0)
{
sign = 1;
l = -l;
}
do {
*bp++ = l % 10 + '0';
} while ((l /= 10) > 0);
if (sign)
*bp++ = '-';
f_width = f_width - (bp - buf);
if (!flush_left)
while (f_width-- > 0)
*str++ = (pad);
for (bp--; bp >= buf; bp--)
*str++ = (*bp);
if (flush_left)
while (f_width-- > 0)
*str++ = (' ');
break;
case 'o': // 'o' octal number
case 'x': // 'x' hex number
case 'u': // 'u' unsigned decimal
if (do_long)
u = va_arg(ap, unsigned long);
else
u = (unsigned long) (va_arg(ap, unsigned));
if (fmt == 'u')
{ // unsigned decimal
do {
*bp++ = u % 10 + '0';
} while ((u /= 10) > 0);
}
else if (fmt == 'o')
{ // octal
do {
*bp++ = u % 8 + '0';
} while ((u /= 8) > 0);
if (hash)
*bp++ = '0';
}
else if (fmt == 'x')
{ // hex
do {
i = u % 16;
if (i < 10)
*bp++ = i + '0';
else
*bp++ = i - 10 + 'a';
} while ((u /= 16) > 0);
if (hash)
{
*bp++ = 'x';
*bp++ = '0';
}
}
i = f_width - (bp - buf);
if (!flush_left)
while (i-- > 0)
*str++ = (pad);
for (bp--; bp >= buf; bp--)
*str++ = ((int) (*bp));
if (flush_left)
while (i-- > 0)
*str++ = (' ');
break;
case 'c': // 'c' character
i = va_arg(ap, int);
*str++ = ((int) (i));
break;
case 's': // 's' string
bp = va_arg(ap, unsigned char *);
if (!bp)
bp = (unsigned char *) "(nil)";
f_width = f_width - strlen((char *) bp);
if (!flush_left)
while (f_width-- > 0)
*str++ = (pad);
for (i = 0; *bp && i < prec; i++)
{
*str++ = (*bp);
bp++;
}
if (flush_left)
while (f_width-- > 0)
*str++ = (' ');
break;
case '%': // '%' character
*str++ = ('%');
break;
}
flush_left = 0, f_width = 0, prec = INF, hash = 0, do_long = 0;
sign = 0;
pad = ' ';
}
}
 
va_end(ap);
// terminate string with null
*str++ = '\0';
return bufstring;
}
 
*/
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/rprintf.h
0,0 → 1,191
/*! \file rprintf.h \brief printf routine and associated routines. */
//****************************************************************************
//
// File Name : 'rprintf.h'
// Title : printf routine and associated routines
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 2000.12.26
// Revised : 2003.5.1
// Version : 1.0
// Target MCU : Atmel AVR series and other targets
// Editor Tabs : 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested. Nonetheless, you can expect most functions to work.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
/// \ingroup general
/// \defgroup rprintf printf() Function Library (rprintf.c)
/// \code #include "rprintf.h" \endcode
/// \par Overview
/// The rprintf function library provides a simplified (reduced) version of
/// the common C printf() function.  See the code files for details about
/// which printf features are supported.  Also in this library are a
/// variety of functions for fast printing of certain common data types
/// (variable types).  Functions include print string from RAM, print
/// string from ROM, print string snippet, print hex byte/short/long, and
/// a custom-formatted number print, as well as an optional floating-point
/// print routine.
///
/// \note All output from the rprintf library can be directed to any device
/// or software which accepts characters.  This means that rprintf output
/// can be sent to the UART (serial port) or can be used with the LCD
/// display libraries to print formatted text on the screen.
//
//****************************************************************************
//@{
 
#ifndef RPRINTF_H
#define RPRINTF_H
 
// needed for use of PSTR below
#include <avr/pgmspace.h>
 
// configuration
// defining RPRINTF_SIMPLE will compile a smaller, simpler, and faster printf() function
// defining RPRINTF_COMPLEX will compile a larger, more capable, and slower printf() function
#ifndef RPRINTF_COMPLEX
#define RPRINTF_SIMPLE
#endif
 
// Define RPRINTF_FLOAT to enable the floating-point printf function: rprintfFloat()
// (adds +4600bytes or 2.2Kwords of code)
 
// defines/constants
#define STRING_IN_RAM 0
#define STRING_IN_ROM 1
 
// make a putchar for those that are used to using it
//#define putchar(c) rprintfChar(c);
 
// functions
 
//! Initializes the rprintf library for an output stream.
/// You must call this initializer once before using any other rprintf function.
/// The argument must be a character stream output function.
void rprintfInit(void (*putchar_func)(unsigned char c));
 
//! prints a single character to the current output device
void rprintfChar(unsigned char c);
 
//! prints a null-terminated string stored in RAM
void rprintfStr(char str[]);
 
//! Prints a section of a string stored in RAM.
/// Begins printing at position indicated by <start>,
/// and prints number of characters indicated by <len>.
void rprintfStrLen(char str[], unsigned int start, unsigned int len);
 
//! prints a string stored in program rom
/// \note This function does not actually store your string in
/// program rom, but merely reads it assuming you stored it properly.
void rprintfProgStr(const prog_char str[]);
 
//! Using the function rprintfProgStrM(...) automatically causes
/// your string to be stored in ROM, thereby not wasting precious RAM.
/// Example usage:
/// \code
/// rprintfProgStrM("Hello, this string is stored in program rom");
/// \endcode
#define rprintfProgStrM(string) (rprintfProgStr(PSTR(string)))
 
//! Prints a carriage-return and line-feed.
/// Useful when printing to serial ports/terminals.
void rprintfCRLF(void);
 
// Prints the number contained in "data" in hex format
// u04,u08,u16,and u32 functions handle 4,8,16,or 32 bits respectively
void rprintfu04(unsigned char data); ///< Print 4-bit hex number. Outputs a single hex character.
void rprintfu08(unsigned char data); ///< Print 8-bit hex number. Outputs two hex characters.
void rprintfu16(unsigned short data); ///< Print 16-bit hex number. Outputs four hex characters.
void rprintfu32(unsigned long data); ///< Print 32-bit hex number. Outputs eight hex characters.
 
//! A flexible integer-number printing routine.
/// Print the number "n" in the given "base", using exactly "numDigits".
/// Print +/- if signed flag "isSigned" is TRUE.
/// The character specified in "padchar" will be used to pad extra characters.
///
/// Examples:
/// \code
/// uartPrintfNum(10, 6, TRUE, ' ', 1234); --> " +1234"
/// uartPrintfNum(10, 6, FALSE, '0', 1234); --> "001234"
/// uartPrintfNum(16, 6, FALSE, '.', 0x5AA5); --> "..5AA5"
/// \endcode
void rprintfNum(char base, char numDigits, char isSigned, char padchar, long n);
 
#ifdef RPRINTF_FLOAT
//! floating-point print routine
void rprintfFloat(char numDigits, double x);
#endif
 
// NOTE: Below you'll see the function prototypes of rprintf1RamRom and
// rprintf2RamRom. rprintf1RamRom and rprintf2RamRom are both reduced versions
// of the regular C printf() command. However, they are modified to be able
// to read their text/format strings from RAM or ROM in the Atmel microprocessors.
// Unless you really intend to, do not use the "RamRom" versions of the functions
// directly. Instead use the #defined function versions:
//
// printfx("text/format",args) ...to keep your text/format string stored in RAM
// - or -
// printfxROM("text/format",args) ...to keep your text/format string stored in ROM
//
// where x is either 1 or 2 for the simple or more powerful version of printf()
//
// Since there is much more ROM than RAM available in the Atmel microprocessors,
// and nearly all text/format strings are constant (never change in the course
// of the program), you should try to use the ROM printf version exclusively.
// This will ensure you leave as much RAM as possible for program variables and
// data.
 
//! \fn int rprintf(const char *format, ...);
/// A reduced substitute for the usual C printf() function.
/// This function actually points to either rprintf1RamRom or rprintf2RamRom
/// depending on the user's selection. Rprintf1 is a simple small fast print
/// routine while rprintf2 is larger and slower but more capable. To choose
/// the routine you would like to use, define either RPRINTF_SIMPLE or
/// RPRINTF_COMPLEX in global.h.
 
#ifdef RPRINTF_SIMPLE
//! A simple printf routine.
/// Called by rprintf() - does a simple printf (supports %d, %x, %c).
/// Supports:
/// - %d - decimal
/// - %x - hex
/// - %c - character
int rprintf1RamRom(unsigned char stringInRom, const char *format, ...);
// #defines for RAM or ROM operation
#define rprintf1(format, args...) rprintf1RamRom(STRING_IN_ROM, PSTR(format), ## args)
#define rprintf1RAM(format, args...) rprintf1RamRom(STRING_IN_RAM, format, ## args)
 
// *** Default rprintf(...) ***
// this next line determines what the the basic rprintf() defaults to:
#define rprintf(format, args...) rprintf1RamRom(STRING_IN_ROM, PSTR(format), ## args)
#endif
 
#ifdef RPRINTF_COMPLEX
//! A more powerful printf routine.
/// Called by rprintf() - does a more powerful printf (supports %d, %u, %o, %x, %c, %s).
/// Supports:
/// - %d - decimal
/// - %u - unsigned decimal
/// - %o - octal
/// - %x - hex
/// - %c - character
/// - %s - strings
/// - and the width,precision,padding modifiers
/// \note This printf does not support floating point numbers.
int rprintf2RamRom(unsigned char stringInRom, const char *sfmt, ...);
// #defines for RAM or ROM operation
#define rprintf2(format, args...) rprintf2RamRom(STRING_IN_ROM, format, ## args)
#define rprintf2RAM(format, args...) rprintf2RamRom(STRING_IN_RAM, format, ## args)
 
// *** Default rprintf(...) ***
// this next line determines what the the basic rprintf() defaults to:
#define rprintf(format, args...) rprintf2RamRom(STRING_IN_ROM, PSTR(format), ## args)
#endif
 
#endif
//@}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/timer.c
0,0 → 1,469
/*! \file timer.c \brief System Timer function library. */
//*****************************************************************************
//
// File Name : 'timer.c'
// Title : System Timer function library
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 11/22/2000
// Revised : 07/09/2003
// Version : 1.1
// Target MCU : Atmel AVR Series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
 
#include "global.h"
#include "timer.h"
 
#include "rprintf.h"
 
// Program ROM constants
// the prescale division values stored in order of timer control register index
// STOP, CLK, CLK/8, CLK/64, CLK/256, CLK/1024
unsigned short __attribute__ ((progmem)) TimerPrescaleFactor[] = {0,1,8,64,256,1024};
// the prescale division values stored in order of timer control register index
// STOP, CLK, CLK/8, CLK/32, CLK/64, CLK/128, CLK/256, CLK/1024
unsigned short __attribute__ ((progmem)) TimerRTCPrescaleFactor[] = {0,1,8,32,64,128,256,1024};
 
// Global variables
// time registers
volatile unsigned long TimerPauseReg;
volatile unsigned long Timer0Reg0;
volatile unsigned long Timer2Reg0;
 
typedef void (*voidFuncPtr)(void);
volatile static voidFuncPtr TimerIntFunc[TIMER_NUM_INTERRUPTS];
 
// delay for a minimum of <us> microseconds
// the time resolution is dependent on the time the loop takes
// e.g. with 4Mhz and 5 cycles per loop, the resolution is 1.25 us
void delay_us(unsigned short time_us)
{
unsigned short delay_loops;
register unsigned short i;
 
delay_loops = (time_us+3)/5*CYCLES_PER_US; // +3 for rounding up (dirty)
 
// one loop takes 5 cpu cycles
for (i=0; i < delay_loops; i++) {};
}
/*
void delay_ms(unsigned char time_ms)
{
unsigned short delay_count = F_CPU / 4000;
 
unsigned short cnt;
asm volatile ("\n"
"L_dl1%=:\n\t"
"mov %A0, %A2\n\t"
"mov %B0, %B2\n"
"L_dl2%=:\n\t"
"sbiw %A0, 1\n\t"
"brne L_dl2%=\n\t"
"dec %1\n\t" "brne L_dl1%=\n\t":"=&w" (cnt)
:"r"(time_ms), "r"((unsigned short) (delay_count))
);
}
*/
void timerInit(void)
{
u08 intNum;
// detach all user functions from interrupts
for(intNum=0; intNum<TIMER_NUM_INTERRUPTS; intNum++)
timerDetach(intNum);
 
// initialize all timers
timer0Init();
timer1Init();
#ifdef TCNT2 // support timer2 only if it exists
timer2Init();
#endif
// enable interrupts
sei();
}
 
void timer0Init()
{
// initialize timer 0
timer0SetPrescaler( TIMER0PRESCALE ); // set prescaler
outb(TCNT0, 0); // reset TCNT0
sbi(TIMSK, TOIE0); // enable TCNT0 overflow interrupt
 
timer0ClearOverflowCount(); // initialize time registers
}
 
void timer1Init(void)
{
// initialize timer 1
timer1SetPrescaler( TIMER1PRESCALE ); // set prescaler
outb(TCNT1H, 0); // reset TCNT1
outb(TCNT1L, 0);
sbi(TIMSK, TOIE1); // enable TCNT1 overflow
}
 
#ifdef TCNT2 // support timer2 only if it exists
void timer2Init(void)
{
// initialize timer 2
timer2SetPrescaler( TIMER2PRESCALE ); // set prescaler
outb(TCNT2, 0); // reset TCNT2
sbi(TIMSK, TOIE2); // enable TCNT2 overflow
 
timer2ClearOverflowCount(); // initialize time registers
}
#endif
 
void timer0SetPrescaler(u08 prescale)
{
// set prescaler on timer 0
outb(TCCR0, (inb(TCCR0) & ~TIMER_PRESCALE_MASK) | prescale);
}
 
void timer1SetPrescaler(u08 prescale)
{
// set prescaler on timer 1
outb(TCCR1B, (inb(TCCR1B) & ~TIMER_PRESCALE_MASK) | prescale);
}
 
#ifdef TCNT2 // support timer2 only if it exists
void timer2SetPrescaler(u08 prescale)
{
// set prescaler on timer 2
outb(TCCR2, (inb(TCCR2) & ~TIMER_PRESCALE_MASK) | prescale);
}
#endif
 
u16 timer0GetPrescaler(void)
{
// get the current prescaler setting
return (pgm_read_word(TimerPrescaleFactor+(inb(TCCR0) & TIMER_PRESCALE_MASK)));
}
 
u16 timer1GetPrescaler(void)
{
// get the current prescaler setting
return (pgm_read_word(TimerPrescaleFactor+(inb(TCCR1B) & TIMER_PRESCALE_MASK)));
}
 
#ifdef TCNT2 // support timer2 only if it exists
u16 timer2GetPrescaler(void)
{
//TODO: can we assume for all 3-timer AVR processors,
// that timer2 is the RTC timer?
 
// get the current prescaler setting
return (pgm_read_word(TimerRTCPrescaleFactor+(inb(TCCR2) & TIMER_PRESCALE_MASK)));
}
#endif
 
void timerAttach(u08 interruptNum, void (*userFunc)(void) )
{
// make sure the interrupt number is within bounds
if(interruptNum < TIMER_NUM_INTERRUPTS)
{
// set the interrupt function to run
// the supplied user's function
TimerIntFunc[interruptNum] = userFunc;
}
}
 
void timerDetach(u08 interruptNum)
{
// make sure the interrupt number is within bounds
if(interruptNum < TIMER_NUM_INTERRUPTS)
{
// set the interrupt function to run nothing
TimerIntFunc[interruptNum] = 0;
}
}
/*
u32 timerMsToTics(u16 ms)
{
// calculate the prescaler division rate
u16 prescaleDiv = 1<<(pgm_read_byte(TimerPrescaleFactor+inb(TCCR0)));
// calculate the number of timer tics in x milliseconds
return (ms*(F_CPU/(prescaleDiv*256)))/1000;
}
 
u16 timerTicsToMs(u32 tics)
{
// calculate the prescaler division rate
u16 prescaleDiv = 1<<(pgm_read_byte(TimerPrescaleFactor+inb(TCCR0)));
// calculate the number of milliseconds in x timer tics
return (tics*1000*(prescaleDiv*256))/F_CPU;
}
*/
void timerPause(unsigned short pause_ms)
{
// pauses for exactly <pause_ms> number of milliseconds
u08 timerThres;
u32 ticRateHz;
u32 pause;
 
// capture current pause timer value
timerThres = inb(TCNT0);
// reset pause timer overflow count
TimerPauseReg = 0;
// calculate delay for [pause_ms] milliseconds
// prescaler division = 1<<(pgm_read_byte(TimerPrescaleFactor+inb(TCCR0)))
ticRateHz = F_CPU/timer0GetPrescaler();
// precision management
// prevent overflow and precision underflow
// -could add more conditions to improve accuracy
if( ((ticRateHz < 429497) && (pause_ms <= 10000)) )
pause = (pause_ms*ticRateHz)/1000;
else
pause = pause_ms*(ticRateHz/1000);
 
// loop until time expires
while( ((TimerPauseReg<<8) | inb(TCNT0)) < (pause+timerThres) )
{
if( TimerPauseReg < (pause>>8));
{
// save power by idling the processor
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_mode();
}
}
 
/* old inaccurate code, for reference
// calculate delay for [pause_ms] milliseconds
u16 prescaleDiv = 1<<(pgm_read_byte(TimerPrescaleFactor+inb(TCCR0)));
u32 pause = (pause_ms*(F_CPU/(prescaleDiv*256)))/1000;
TimerPauseReg = 0;
while(TimerPauseReg < pause);
 
*/
}
 
void timer0ClearOverflowCount(void)
{
// clear the timer overflow counter registers
Timer0Reg0 = 0; // initialize time registers
}
 
long timer0GetOverflowCount(void)
{
// return the current timer overflow count
// (this is since the last timer0ClearOverflowCount() command was called)
return Timer0Reg0;
}
 
#ifdef TCNT2 // support timer2 only if it exists
void timer2ClearOverflowCount(void)
{
// clear the timer overflow counter registers
Timer2Reg0 = 0; // initialize time registers
}
 
long timer2GetOverflowCount(void)
{
// return the current timer overflow count
// (this is since the last timer2ClearOverflowCount() command was called)
return Timer2Reg0;
}
#endif
 
void timer1PWMInit(u08 bitRes)
{
// configures timer1 for use with PWM output
// on OC1A and OC1B pins
 
// enable timer1 as 8,9,10bit PWM
if(bitRes == 9)
{ // 9bit mode
sbi(TCCR1A,PWM11);
cbi(TCCR1A,PWM10);
}
else if( bitRes == 10 )
{ // 10bit mode
sbi(TCCR1A,PWM11);
sbi(TCCR1A,PWM10);
}
else
{ // default 8bit mode
cbi(TCCR1A,PWM11);
sbi(TCCR1A,PWM10);
}
 
// clear output compare value A
outb(OCR1AH, 0);
outb(OCR1AL, 0);
// clear output compare value B
outb(OCR1BH, 0);
outb(OCR1BL, 0);
}
 
#ifdef WGM10
// include support for arbitrary top-count PWM
// on new AVR processors that support it
void timer1PWMInitICR(u16 topcount)
{
// set PWM mode with ICR top-count
cbi(TCCR1A,WGM10);
sbi(TCCR1A,WGM11);
sbi(TCCR1B,WGM12);
sbi(TCCR1B,WGM13);
// set top count value
ICR1 = topcount;
// clear output compare value A
OCR1A = 0;
// clear output compare value B
OCR1B = 0;
 
}
#endif
 
void timer1PWMOff(void)
{
// turn off timer1 PWM mode
cbi(TCCR1A,PWM11);
cbi(TCCR1A,PWM10);
// set PWM1A/B (OutputCompare action) to none
timer1PWMAOff();
timer1PWMBOff();
}
 
void timer1PWMAOn(void)
{
// turn on channel A (OC1A) PWM output
// set OC1A as non-inverted PWM
sbi(TCCR1A,COM1A1);
cbi(TCCR1A,COM1A0);
}
 
void timer1PWMBOn(void)
{
// turn on channel B (OC1B) PWM output
// set OC1B as non-inverted PWM
sbi(TCCR1A,COM1B1);
cbi(TCCR1A,COM1B0);
}
 
void timer1PWMAOff(void)
{
// turn off channel A (OC1A) PWM output
// set OC1A (OutputCompare action) to none
cbi(TCCR1A,COM1A1);
cbi(TCCR1A,COM1A0);
}
 
void timer1PWMBOff(void)
{
// turn off channel B (OC1B) PWM output
// set OC1B (OutputCompare action) to none
cbi(TCCR1A,COM1B1);
cbi(TCCR1A,COM1B0);
}
 
void timer1PWMASet(u16 pwmDuty)
{
// set PWM (output compare) duty for channel A
// this PWM output is generated on OC1A pin
// NOTE: pwmDuty should be in the range 0-255 for 8bit PWM
// pwmDuty should be in the range 0-511 for 9bit PWM
// pwmDuty should be in the range 0-1023 for 10bit PWM
//outp( (pwmDuty>>8), OCR1AH); // set the high 8bits of OCR1A
//outp( (pwmDuty&0x00FF), OCR1AL); // set the low 8bits of OCR1A
OCR1A = pwmDuty;
}
 
void timer1PWMBSet(u16 pwmDuty)
{
// set PWM (output compare) duty for channel B
// this PWM output is generated on OC1B pin
// NOTE: pwmDuty should be in the range 0-255 for 8bit PWM
// pwmDuty should be in the range 0-511 for 9bit PWM
// pwmDuty should be in the range 0-1023 for 10bit PWM
//outp( (pwmDuty>>8), OCR1BH); // set the high 8bits of OCR1B
//outp( (pwmDuty&0x00FF), OCR1BL); // set the low 8bits of OCR1B
OCR1B = pwmDuty;
}
 
//! Interrupt handler for tcnt0 overflow interrupt
TIMER_INTERRUPT_HANDLER(SIG_OVERFLOW0)
{
Timer0Reg0++; // increment low-order counter
 
// increment pause counter
TimerPauseReg++;
 
// if a user function is defined, execute it too
if(TimerIntFunc[TIMER0OVERFLOW_INT])
TimerIntFunc[TIMER0OVERFLOW_INT]();
}
 
//! Interrupt handler for tcnt1 overflow interrupt
TIMER_INTERRUPT_HANDLER(SIG_OVERFLOW1)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER1OVERFLOW_INT])
TimerIntFunc[TIMER1OVERFLOW_INT]();
}
 
#ifdef TCNT2 // support timer2 only if it exists
//! Interrupt handler for tcnt2 overflow interrupt
TIMER_INTERRUPT_HANDLER(SIG_OVERFLOW2)
{
Timer2Reg0++; // increment low-order counter
 
// if a user function is defined, execute it
if(TimerIntFunc[TIMER2OVERFLOW_INT])
TimerIntFunc[TIMER2OVERFLOW_INT]();
}
#endif
 
#ifdef OCR0
// include support for Output Compare 0 for new AVR processors that support it
//! Interrupt handler for OutputCompare0 match (OC0) interrupt
TIMER_INTERRUPT_HANDLER(SIG_OUTPUT_COMPARE0)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER0OUTCOMPARE_INT])
TimerIntFunc[TIMER0OUTCOMPARE_INT]();
}
#endif
 
//! Interrupt handler for CutputCompare1A match (OC1A) interrupt
TIMER_INTERRUPT_HANDLER(SIG_OUTPUT_COMPARE1A)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER1OUTCOMPAREA_INT])
TimerIntFunc[TIMER1OUTCOMPAREA_INT]();
}
 
//! Interrupt handler for OutputCompare1B match (OC1B) interrupt
TIMER_INTERRUPT_HANDLER(SIG_OUTPUT_COMPARE1B)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER1OUTCOMPAREB_INT])
TimerIntFunc[TIMER1OUTCOMPAREB_INT]();
}
 
//! Interrupt handler for InputCapture1 (IC1) interrupt
TIMER_INTERRUPT_HANDLER(SIG_INPUT_CAPTURE1)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER1INPUTCAPTURE_INT])
TimerIntFunc[TIMER1INPUTCAPTURE_INT]();
}
 
//! Interrupt handler for OutputCompare2 match (OC2) interrupt
TIMER_INTERRUPT_HANDLER(SIG_OUTPUT_COMPARE2)
{
// if a user function is defined, execute it
if(TimerIntFunc[TIMER2OUTCOMPARE_INT])
TimerIntFunc[TIMER2OUTCOMPARE_INT]();
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/timer.h
0,0 → 1,314
/*! \file timer.h \brief System Timer function library. */
//*****************************************************************************
//
// File Name : 'timer.h'
// Title : System Timer function library
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 11/22/2000
// Revised : 02/10/2003
// Version : 1.1
// Target MCU : Atmel AVR Series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
/// \ingroup driver_avr
/// \defgroup timer Timer Function Library (timer.c)
/// \code #include "timer.h" \endcode
/// \par Overview
/// This library provides functions for use with the timers internal
/// to the AVR processors. Functions include initialization, set prescaler,
/// calibrated pause function (in milliseconds), attaching and detaching of
/// user functions to interrupts, overflow counters, PWM. Arbitrary
/// frequency generation has been moved to the Pulse Library.
///
/// \par About Timers
/// The Atmel AVR-series processors each contain at least one
/// hardware timer/counter. Many of the processors contain 2 or 3
/// timers. Generally speaking, a timer is a hardware counter inside
/// the processor which counts at a rate related to the main CPU clock
/// frequency. Because the counter value increasing (counting up) at
/// a precise rate, we can use it as a timer to create or measure
/// precise delays, schedule events, or generate signals of a certain
/// frequency or pulse-width.
/// \par
/// As an example, the ATmega163 processor has 3 timer/counters.
/// Timer0, Timer1, and Timer2 are 8, 16, and 8 bits wide respectively.
/// This means that they overflow, or roll over back to zero, at a
/// count value of 256 for 8bits or 65536 for 16bits. A prescaler is
/// avaiable for each timer, and the prescaler allows you to pre-divide
/// the main CPU clock rate down to a slower speed before feeding it to
/// the counting input of a timer. For example, if the CPU clock
/// frequency is 3.69MHz, and Timer0's prescaler is set to divide-by-8,
/// then Timer0 will "tic" at 3690000/8 = 461250Hz. Because Timer0 is
/// an 8bit timer, it will count to 256 in just 256/461250Hz = 0.555ms.
/// In fact, when it hits 255, it will overflow and start again at
/// zero. In this case, Timer0 will overflow 461250/256 = 1801.76
/// times per second.
/// \par
/// Timer0 can be used a number of ways simultaneously. First, the
/// value of the timer can be read by accessing the CPU register \c TCNT0.
/// We could, for example, figure out how long it takes to execute a
/// C command by recording the value of \c TCNT0 before and after
/// execution, then subtract (after-before) = time elapsed. Or we can
/// enable the overflow interrupt which goes off every time T0
/// overflows and count out longer delays (multiple overflows), or
/// execute a special periodic function at every overflow.
/// \par
/// The other timers (Timer1 and Timer2) offer all the abilities of
/// Timer0 and many more features. Both T1 and T2 can operate as
/// general-purpose timers, but T1 has special hardware allowing it to
/// generate PWM signals, while T2 is specially designed to help count
/// out real time (like hours, minutes, seconds). See the
/// Timer/Counter section of the processor datasheet for more info.
///
//*****************************************************************************
//@{
 
#ifndef TIMER_H
#define TIMER_H
 
#include "global.h"
 
// constants/macros/typdefs
 
// processor compatibility fixes
#ifdef __AVR_ATmega323__
// redefinition for the Mega323
#define CTC1 CTC10
#endif
#ifndef PWM10
// mega128 PWM bits
#define PWM10 WGM10
#define PWM11 WGM11
#endif
 
 
// Timer/clock prescaler values and timer overflow rates
// tics = rate at which the timer counts up
// 8bitoverflow = rate at which the timer overflows 8bits (or reaches 256)
// 16bit [overflow] = rate at which the timer overflows 16bits (65536)
//
// overflows can be used to generate periodic interrupts
//
// for 8MHz crystal
// 0 = STOP (Timer not counting)
// 1 = CLOCK tics= 8MHz 8bitoverflow= 31250Hz 16bit= 122.070Hz
// 2 = CLOCK/8 tics= 1MHz 8bitoverflow= 3906.25Hz 16bit= 15.259Hz
// 3 = CLOCK/64 tics= 125kHz 8bitoverflow= 488.28Hz 16bit= 1.907Hz
// 4 = CLOCK/256 tics= 31250Hz 8bitoverflow= 122.07Hz 16bit= 0.477Hz
// 5 = CLOCK/1024 tics= 7812.5Hz 8bitoverflow= 30.52Hz 16bit= 0.119Hz
// 6 = External Clock on T(x) pin (falling edge)
// 7 = External Clock on T(x) pin (rising edge)
 
// for 4MHz crystal
// 0 = STOP (Timer not counting)
// 1 = CLOCK tics= 4MHz 8bitoverflow= 15625Hz 16bit= 61.035Hz
// 2 = CLOCK/8 tics= 500kHz 8bitoverflow= 1953.125Hz 16bit= 7.629Hz
// 3 = CLOCK/64 tics= 62500Hz 8bitoverflow= 244.141Hz 16bit= 0.954Hz
// 4 = CLOCK/256 tics= 15625Hz 8bitoverflow= 61.035Hz 16bit= 0.238Hz
// 5 = CLOCK/1024 tics= 3906.25Hz 8bitoverflow= 15.259Hz 16bit= 0.060Hz
// 6 = External Clock on T(x) pin (falling edge)
// 7 = External Clock on T(x) pin (rising edge)
 
// for 3.69MHz crystal
// 0 = STOP (Timer not counting)
// 1 = CLOCK tics= 3.69MHz 8bitoverflow= 14414Hz 16bit= 56.304Hz
// 2 = CLOCK/8 tics= 461250Hz 8bitoverflow= 1801.758Hz 16bit= 7.038Hz
// 3 = CLOCK/64 tics= 57625.25Hz 8bitoverflow= 225.220Hz 16bit= 0.880Hz
// 4 = CLOCK/256 tics= 14414.063Hz 8bitoverflow= 56.305Hz 16bit= 0.220Hz
// 5 = CLOCK/1024 tics= 3603.516Hz 8bitoverflow= 14.076Hz 16bit= 0.055Hz
// 6 = External Clock on T(x) pin (falling edge)
// 7 = External Clock on T(x) pin (rising edge)
 
// for 32.768KHz crystal on timer 2 (use for real-time clock)
// 0 = STOP
// 1 = CLOCK tics= 32.768kHz 8bitoverflow= 128Hz
// 2 = CLOCK/8 tics= 4096kHz 8bitoverflow= 16Hz
// 3 = CLOCK/32 tics= 1024kHz 8bitoverflow= 4Hz
// 4 = CLOCK/64 tics= 512Hz 8bitoverflow= 2Hz
// 5 = CLOCK/128 tics= 256Hz 8bitoverflow= 1Hz
// 6 = CLOCK/256 tics= 128Hz 8bitoverflow= 0.5Hz
// 7 = CLOCK/1024 tics= 32Hz 8bitoverflow= 0.125Hz
 
#define TIMER_CLK_STOP 0x00 ///< Timer Stopped
#define TIMER_CLK_DIV1 0x01 ///< Timer clocked at F_CPU
#define TIMER_CLK_DIV8 0x02 ///< Timer clocked at F_CPU/8
#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
#define TIMER_CLK_DIV256 0x04 ///< Timer clocked at F_CPU/256
#define TIMER_CLK_DIV1024 0x05 ///< Timer clocked at F_CPU/1024
#define TIMER_CLK_T_FALL 0x06 ///< Timer clocked at T falling edge
#define TIMER_CLK_T_RISE 0x07 ///< Timer clocked at T rising edge
#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
 
#define TIMERRTC_CLK_STOP 0x00 ///< RTC Timer Stopped
#define TIMERRTC_CLK_DIV1 0x01 ///< RTC Timer clocked at F_CPU
#define TIMERRTC_CLK_DIV8 0x02 ///< RTC Timer clocked at F_CPU/8
#define TIMERRTC_CLK_DIV32 0x03 ///< RTC Timer clocked at F_CPU/32
#define TIMERRTC_CLK_DIV64 0x04 ///< RTC Timer clocked at F_CPU/64
#define TIMERRTC_CLK_DIV128 0x05 ///< RTC Timer clocked at F_CPU/128
#define TIMERRTC_CLK_DIV256 0x06 ///< RTC Timer clocked at F_CPU/256
#define TIMERRTC_CLK_DIV1024 0x07 ///< RTC Timer clocked at F_CPU/1024
#define TIMERRTC_PRESCALE_MASK 0x07 ///< RTC Timer Prescaler Bit-Mask
 
// default prescale settings for the timers
// these settings are applied when you call
// timerInit or any of the timer<x>Init
#define TIMER0PRESCALE TIMER_CLK_DIV8 ///< timer 0 prescaler default
#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
#define TIMER2PRESCALE TIMERRTC_CLK_DIV64 ///< timer 2 prescaler default
 
// interrupt macros for attaching user functions to timer interrupts
// use these with timerAttach( intNum, function )
#define TIMER0OVERFLOW_INT 0
#define TIMER1OVERFLOW_INT 1
#define TIMER1OUTCOMPAREA_INT 2
#define TIMER1OUTCOMPAREB_INT 3
#define TIMER1INPUTCAPTURE_INT 4
#define TIMER2OVERFLOW_INT 5
#define TIMER2OUTCOMPARE_INT 6
#ifdef OCR0 // for processors that support output compare on Timer0
#define TIMER0OUTCOMPARE_INT 7
#define TIMER_NUM_INTERRUPTS 8
#else
#define TIMER_NUM_INTERRUPTS 7
#endif
 
// default type of interrupt handler to use for timers
// *do not change unless you know what you're doing
// Value may be SIGNAL or INTERRUPT
#ifndef TIMER_INTERRUPT_HANDLER
#define TIMER_INTERRUPT_HANDLER SIGNAL
#endif
 
// functions
#define delay delay_us
#define delay_ms timerPause
void delay_us(unsigned short time_us);
 
//! initializes timing system (all timers)
// runs all timer init functions
// sets all timers to default prescale values #defined in systimer.c
void timerInit(void);
 
// default initialization routines for each timer
void timer0Init(void); ///< initialize timer0
void timer1Init(void); ///< initialize timer1
#ifdef TCNT2 // support timer2 only if it exists
void timer2Init(void); ///< initialize timer2
#endif
 
// Clock prescaler set/get commands for each timer/counter
// For setting the prescaler, you should use one of the #defines
// above like TIMER_CLK_DIVx, where [x] is the division rate
// you want.
// When getting the current prescaler setting, the return value
// will be the [x] division value currently set.
void timer0SetPrescaler(u08 prescale); ///< set timer0 prescaler
u16 timer0GetPrescaler(void); ///< get timer0 prescaler
void timer1SetPrescaler(u08 prescale); ///< set timer1 prescaler
u16 timer1GetPrescaler(void); ///< get timer0 prescaler
#ifdef TCNT2 // support timer2 only if it exists
void timer2SetPrescaler(u08 prescale); ///< set timer2 prescaler
u16 timer2GetPrescaler(void); ///< get timer2 prescaler
#endif
 
 
// TimerAttach and Detach commands
// These functions allow the attachment (or detachment) of any user function
// to a timer interrupt. "Attaching" one of your own functions to a timer
// interrupt means that it will be called whenever that interrupt happens.
// Using attach is better than rewriting the actual INTERRUPT() function
// because your code will still work and be compatible if the timer library
// is updated. Also, using Attach allows your code and any predefined timer
// code to work together and at the same time. (ie. "attaching" your own
// function to the timer0 overflow doesn't prevent timerPause from working,
// but rather allows you to share the interrupt.)
//
// timerAttach(TIMER1OVERFLOW_INT, myOverflowFunction);
// timerDetach(TIMER1OVERFLOW_INT)
//
// timerAttach causes the myOverflowFunction() to be attached, and therefore
// execute, whenever an overflow on timer1 occurs. timerDetach removes the
// association and executes no user function when the interrupt occurs.
// myOverflowFunction must be defined with no return value and no arguments:
//
// void myOverflowFunction(void) { ... }
 
//! Attach a user function to a timer interrupt
void timerAttach(u08 interruptNum, void (*userFunc)(void) );
//! Detach a user function from a timer interrupt
void timerDetach(u08 interruptNum);
 
 
// timing commands
/// A timer-based delay/pause function
/// @param pause_ms Number of integer milliseconds to wait.
void timerPause(unsigned short pause_ms);
 
// overflow counters
void timer0ClearOverflowCount(void); ///< Clear timer0's overflow counter.
long timer0GetOverflowCount(void); ///< read timer0's overflow counter
#ifdef TCNT2 // support timer2 only if it exists
void timer2ClearOverflowCount(void); ///< clear timer2's overflow counter
long timer2GetOverflowCount(void); ///< read timer0's overflow counter
#endif
 
/// @defgroup timerpwm Timer PWM Commands
/// @ingroup timer
/// These commands control PWM functionality on timer1
// PWM initialization and set commands for timer1
// timer1PWMInit()
// configures the timer1 hardware for PWM mode on pins OC1A and OC1B.
// bitRes should be 8,9,or 10 for 8,9,or 10bit PWM resolution
//
// timer1PWMOff()
// turns off all timer1 PWM output and set timer mode to normal state
//
// timer1PWMAOn() and timer1PWMBOn()
// turn on output of PWM signals to OC1A or OC1B pins
// NOTE: Until you define the OC1A and OC1B pins as outputs, and run
// this "on" command, no PWM output will be output
//
// timer1PWMAOff() and timer1PWMBOff()
// turn off output of PWM signals to OC1A or OC1B pins
//
// timer1PWMASet() and timer1PWMBSet()
// sets the PWM duty cycle for each channel
// NOTE: <pwmDuty> should be in the range 0-255 for 8bit PWM
// <pwmDuty> should be in the range 0-511 for 9bit PWM
// <pwmDuty> should be in the range 0-1023 for 10bit PWM
// NOTE: the PWM frequency can be controlled in increments by setting the
// prescaler for timer1
//@{
 
 
/// Enter standard PWM Mode on timer1.
/// \param bitRes indicates the period/resolution to use for PWM output in timer bits.
/// Must be either 8, 9, or 10 bits corresponding to PWM periods of 256, 512, or 1024 timer tics.
void timer1PWMInit(u08 bitRes);
 
/// Enter PWM Mode on timer1 with a specific top-count value.
/// \param topcount indicates the desired PWM period in timer tics.
/// Can be a number between 1 and 65535 (16-bit).
void timer1PWMInitICR(u16 topcount);
 
/// Turn off all timer1 PWM output and set timer mode to normal.
void timer1PWMOff(void);
 
/// Turn on/off Timer1 PWM outputs.
void timer1PWMAOn(void); ///< Turn on timer1 Channel A (OC1A) PWM output.
void timer1PWMBOn(void); ///< Turn on timer1 Channel B (OC1B) PWM output.
void timer1PWMAOff(void); ///< turn off timer1 Channel A (OC1A) PWM output
void timer1PWMBOff(void); ///< turn off timer1 Channel B (OC1B) PWM output
 
void timer1PWMASet(u16 pwmDuty); ///< set duty of timer1 Channel A (OC1A) PWM output
void timer1PWMBSet(u16 pwmDuty); ///< set duty of timer1 Channel B (OC1B) PWM output
 
//@}
//@}
 
// Pulse generation commands have been moved to the pulse.c library
 
#endif
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/uart.c
0,0 → 1,283
/*! \file uart.c \brief UART driver with buffer support. */
// *****************************************************************************
//
// File Name : 'uart.c'
// Title : UART driver with buffer support
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 11/22/2000
// Revised : 06/09/2003
// Version : 1.3
// Target MCU : ATMEL AVR Series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
// *****************************************************************************
 
#include <avr/io.h>
#include <avr/interrupt.h>
 
#include "buffer.h"
#include "uart.h"
 
// UART global variables
// flag variables
volatile u08 uartReadyTx; ///< uartReadyTx flag
volatile u08 uartBufferedTx; ///< uartBufferedTx flag
// receive and transmit buffers
cBuffer uartRxBuffer; ///< uart receive buffer
cBuffer uartTxBuffer; ///< uart transmit buffer
unsigned short uartRxOverflow; ///< receive overflow counter
 
#ifndef UART_BUFFERS_EXTERNAL_RAM
// using internal ram,
// automatically allocate space in ram for each buffer
static char uartRxData[UART_RX_BUFFER_SIZE];
static char uartTxData[UART_TX_BUFFER_SIZE];
#endif
 
typedef void (*voidFuncPtru08)(unsigned char);
volatile static voidFuncPtru08 UartRxFunc;
 
// enable and initialize the uart
void uartInit(void)
{
// initialize the buffers
uartInitBuffers();
// initialize user receive handler
UartRxFunc = 0;
 
// enable RxD/TxD and interrupts
outb(UCR, BV(RXCIE)|BV(TXCIE)|BV(RXEN)|BV(TXEN));
 
// set default baud rate
uartSetBaudRate(UART_DEFAULT_BAUD_RATE);
// initialize states
uartReadyTx = TRUE;
uartBufferedTx = FALSE;
// clear overflow count
uartRxOverflow = 0;
// enable interrupts
sei();
}
 
// create and initialize the uart transmit and receive buffers
void uartInitBuffers(void)
{
#ifndef UART_BUFFERS_EXTERNAL_RAM
// initialize the UART receive buffer
bufferInit(&uartRxBuffer, uartRxData, UART_RX_BUFFER_SIZE);
// initialize the UART transmit buffer
bufferInit(&uartTxBuffer, uartTxData, UART_TX_BUFFER_SIZE);
#else
// initialize the UART receive buffer
bufferInit(&uartRxBuffer, (u08*) UART_RX_BUFFER_ADDR, UART_RX_BUFFER_SIZE);
// initialize the UART transmit buffer
bufferInit(&uartTxBuffer, (u08*) UART_TX_BUFFER_ADDR, UART_TX_BUFFER_SIZE);
#endif
}
 
// redirects received data to a user function
void uartSetRxHandler(void (*rx_func)(unsigned char c))
{
// set the receive interrupt to run the supplied user function
UartRxFunc = rx_func;
}
 
// set the uart baud rate
void uartSetBaudRate(u32 baudrate)
{
// calculate division factor for requested baud rate, and set it
u16 bauddiv = ((F_CPU+(baudrate*8L))/(baudrate*16L)-1);
outb(UBRRL, bauddiv);
#ifdef UBRRH
outb(UBRRH, bauddiv>>8);
#endif
}
 
// returns the receive buffer structure
cBuffer* uartGetRxBuffer(void)
{
// return rx buffer pointer
return &uartRxBuffer;
}
 
// returns the transmit buffer structure
cBuffer* uartGetTxBuffer(void)
{
// return tx buffer pointer
return &uartTxBuffer;
}
 
// transmits a byte over the uart
void uartSendByte(u08 txData)
{
// wait for the transmitter to be ready
while(!uartReadyTx);
// send byte
outb(UDR, txData);
// set ready state to FALSE
uartReadyTx = FALSE;
}
 
// gets a single byte from the uart receive buffer (getchar-style)
int uartGetByte(void)
{
u08 c;
if(uartReceiveByte(&c))
return c;
else
return -1;
}
 
// gets a byte (if available) from the uart receive buffer
u08 uartReceiveByte(u08* rxData)
{
// make sure we have a receive buffer
if(uartRxBuffer.size)
{
// make sure we have data
if(uartRxBuffer.datalength)
{
// get byte from beginning of buffer
*rxData = bufferGetFromFront(&uartRxBuffer);
return TRUE;
}
else
{
// no data
return FALSE;
}
}
else
{
// no buffer
return FALSE;
}
}
 
// flush all data out of the receive buffer
void uartFlushReceiveBuffer(void)
{
// flush all data from receive buffer
//bufferFlush(&uartRxBuffer);
// same effect as above
uartRxBuffer.datalength = 0;
}
 
// return true if uart receive buffer is empty
u08 uartReceiveBufferIsEmpty(void)
{
if(uartRxBuffer.datalength == 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
 
// add byte to end of uart Tx buffer
u08 uartAddToTxBuffer(u08 data)
{
// add data byte to the end of the tx buffer
return bufferAddToEnd(&uartTxBuffer, data);
}
 
// start transmission of the current uart Tx buffer contents
void uartSendTxBuffer(void)
{
// turn on buffered transmit
uartBufferedTx = TRUE;
// send the first byte to get things going by interrupts
uartSendByte(bufferGetFromFront(&uartTxBuffer));
}
/*
// transmit nBytes from buffer out the uart
u08 uartSendBuffer(char *buffer, u16 nBytes)
{
register u08 first;
register u16 i;
 
// check if there's space (and that we have any bytes to send at all)
if((uartTxBuffer.datalength + nBytes < uartTxBuffer.size) && nBytes)
{
// grab first character
first = *buffer++;
// copy user buffer to uart transmit buffer
for(i = 0; i < nBytes-1; i++)
{
// put data bytes at end of buffer
bufferAddToEnd(&uartTxBuffer, *buffer++);
}
 
// send the first byte to get things going by interrupts
uartBufferedTx = TRUE;
uartSendByte(first);
// return success
return TRUE;
}
else
{
// return failure
return FALSE;
}
}
*/
// UART Transmit Complete Interrupt Handler
UART_INTERRUPT_HANDLER(SIG_UART_TRANS)
{
// check if buffered tx is enabled
if(uartBufferedTx)
{
// check if there's data left in the buffer
if(uartTxBuffer.datalength)
{
// send byte from top of buffer
outb(UDR, bufferGetFromFront(&uartTxBuffer));
}
else
{
// no data left
uartBufferedTx = FALSE;
// return to ready state
uartReadyTx = TRUE;
}
}
else
{
// we're using single-byte tx mode
// indicate transmit complete, back to ready
uartReadyTx = TRUE;
}
}
 
// UART Receive Complete Interrupt Handler
UART_INTERRUPT_HANDLER(SIG_UART_RECV)
{
u08 c;
// get received char
c = inb(UDR);
 
// if there's a user function to handle this receive event
if(UartRxFunc)
{
// call it and pass the received data
UartRxFunc(c);
}
else
{
// otherwise do default processing
// put received char in buffer
// check if there's space
if( !bufferAddToEnd(&uartRxBuffer, c) )
{
// no space in buffer
// count overflow
uartRxOverflow++;
}
}
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/uart.h
0,0 → 1,232
/*! \file uart.h \brief UART driver with buffer support. */
//*****************************************************************************
//
// File Name : 'uart.h'
// Title : UART driver with buffer support
// Author : Pascal Stang - Copyright (C) 2000-2002
// Created : 11/22/2000
// Revised : 02/01/2004
// Version : 1.3
// Target MCU : ATMEL AVR Series
// Editor Tabs : 4
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
/// \ingroup driver_avr
/// \defgroup uart UART Driver/Function Library (uart.c)
/// \code #include "uart.h" \endcode
/// \par Overview
/// This library provides both buffered and unbuffered transmit and receive
/// functions for the AVR processor UART.  Buffered access means that the
/// UART can transmit and receive data in the "background", while your code
/// continues executing.  Also included are functions to initialize the
/// UART, set the baud rate, flush the buffers, and check buffer status.
///
/// \note For full text output functionality, you may wish to use the rprintf
/// functions along with this driver.
///
/// \par About UART operations
/// Most Atmel AVR-series processors contain one or more hardware UARTs
/// (aka, serial ports). UART serial ports can communicate with other
/// serial ports of the same type, like those used on PCs. In general,
/// UARTs are used to communicate with devices that are RS-232 compatible
/// (RS-232 is a certain kind of serial port).
/// \par
/// By far, the most common use for serial communications on AVR processors
/// is for sending information and data to a PC running a terminal program.
/// Here is an exmaple:
/// \code
/// uartInit(); // initialize UART (serial port)
/// uartSetBaudRate(9600); // set UART speed to 9600 baud
/// rprintfInit(uartSendByte); // configure rprintf to use UART for output
/// rprintf("Hello World\r\n"); // send "hello world" message via serial port
/// \endcode
///
/// \warning The CPU frequency (F_CPU) must be set correctly in \c global.h
/// for the UART library to calculate correct baud rates. Furthermore,
/// certain CPU frequencies will not produce exact baud rates due to
/// integer frequency division round-off. See your AVR processor's
/// datasheet for full details.
//
//*****************************************************************************
//@{
 
#ifndef UART_H
#define UART_H
 
#include "global.h"
#include "buffer.h"
 
//! Default uart baud rate.
/// This is the default speed after a uartInit() command,
/// and can be changed by using uartSetBaudRate().
#define UART_DEFAULT_BAUD_RATE 9600
 
// buffer memory allocation defines
// buffer sizes
#ifndef UART_TX_BUFFER_SIZE
//! Number of bytes for uart transmit buffer.
/// Do not change this value in uart.h, but rather override
/// it with the desired value defined in your project's global.h
#define UART_TX_BUFFER_SIZE 0x0040
#endif
#ifndef UART_RX_BUFFER_SIZE
//! Number of bytes for uart receive buffer.
/// Do not change this value in uart.h, but rather override
/// it with the desired value defined in your project's global.h
#define UART_RX_BUFFER_SIZE 0x0040
#endif
 
// define this key if you wish to use
// external RAM for the UART buffers
//#define UART_BUFFER_EXTERNAL_RAM
#ifdef UART_BUFFER_EXTERNAL_RAM
// absolute address of uart buffers
#define UART_TX_BUFFER_ADDR 0x1000
#define UART_RX_BUFFER_ADDR 0x1100
#endif
 
//! Type of interrupt handler to use for uart interrupts.
/// Value may be SIGNAL or INTERRUPT.
/// \warning Do not change unless you know what you're doing.
#ifndef UART_INTERRUPT_HANDLER
#define UART_INTERRUPT_HANDLER SIGNAL
#endif
 
// compatibility with most newer processors
#ifdef UCSRB
#define UCR UCSRB
#endif
// compatibility with old Mega processors
#if defined(UBRR) && !defined(UBRRL)
#define UBRRL UBRR
#endif
// compatibility with megaXX8 processors
#if defined(__AVR_ATmega88__) || \
defined(__AVR_ATmega168__) || \
defined(__AVR_ATmega644__)
#define UDR UDR0
#define UCR UCSR0B
#define RXCIE RXCIE0
#define TXCIE TXCIE0
#define RXC RXC0
#define TXC TXC0
#define RXEN RXEN0
#define TXEN TXEN0
#define UBRRL UBRR0L
#define UBRRH UBRR0H
#define SIG_UART_TRANS SIG_USART_TRANS
#define SIG_UART_RECV SIG_USART_RECV
#define SIG_UART_DATA SIG_USART_DATA
#endif
// compatibility with mega169 processors
#if defined(__AVR_ATmega169__)
#define SIG_UART_TRANS SIG_USART_TRANS
#define SIG_UART_RECV SIG_USART_RECV
#define SIG_UART_DATA SIG_USART_DATA
#endif
// compatibility with dual-uart processors
// (if you need to use both uarts, please use the uart2 library)
#if defined(__AVR_ATmega161__)
#define UDR UDR0
#define UCR UCSR0B
#define UBRRL UBRR0
#define SIG_UART_TRANS SIG_UART0_TRANS
#define SIG_UART_RECV SIG_UART0_RECV
#define SIG_UART_DATA SIG_UART0_DATA
#endif
#if defined(__AVR_ATmega128__)
#ifdef UART_USE_UART1
#define UDR UDR1
#define UCR UCSR1B
#define UBRRL UBRR1L
#define UBRRH UBRR1H
#define SIG_UART_TRANS SIG_UART1_TRANS
#define SIG_UART_RECV SIG_UART1_RECV
#define SIG_UART_DATA SIG_UART1_DATA
#else
#define UDR UDR0
#define UCR UCSR0B
#define UBRRL UBRR0L
#define UBRRH UBRR0H
#define SIG_UART_TRANS SIG_UART0_TRANS
#define SIG_UART_RECV SIG_UART0_RECV
#define SIG_UART_DATA SIG_UART0_DATA
#endif
#endif
 
// functions
 
//! Initializes uart.
/// \note After running this init function, the processor
/// I/O pins that used for uart communications (RXD, TXD)
/// are no long available for general purpose I/O.
void uartInit(void);
 
//! Initializes transmit and receive buffers.
/// Automatically called from uartInit()
void uartInitBuffers(void);
 
//! Redirects received data to a user function.
///
void uartSetRxHandler(void (*rx_func)(unsigned char c));
 
//! Sets the uart baud rate.
/// Argument should be in bits-per-second, like \c uartSetBaudRate(9600);
void uartSetBaudRate(u32 baudrate);
 
//! Returns pointer to the receive buffer structure.
///
cBuffer* uartGetRxBuffer(void);
 
//! Returns pointer to the transmit buffer structure.
///
cBuffer* uartGetTxBuffer(void);
 
//! Sends a single byte over the uart.
/// \note This function waits for the uart to be ready,
/// therefore, consecutive calls to uartSendByte() will
/// go only as fast as the data can be sent over the
/// serial port.
void uartSendByte(u08 data);
 
//! Gets a single byte from the uart receive buffer.
/// Returns the byte, or -1 if no byte is available (getchar-style).
int uartGetByte(void);
 
//! Gets a single byte from the uart receive buffer.
/// Function returns TRUE if data was available, FALSE if not.
/// Actual data is returned in variable pointed to by "data".
/// Example usage:
/// \code
/// char myReceivedByte;
/// uartReceiveByte( &myReceivedByte );
/// \endcode
u08 uartReceiveByte(u08* data);
 
//! Returns TRUE/FALSE if receive buffer is empty/not-empty.
///
u08 uartReceiveBufferIsEmpty(void);
 
//! Flushes (deletes) all data from receive buffer.
///
void uartFlushReceiveBuffer(void);
 
//! Add byte to end of uart Tx buffer.
/// Returns TRUE if successful, FALSE if failed (no room left in buffer).
u08 uartAddToTxBuffer(u08 data);
 
//! Begins transmission of the transmit buffer under interrupt control.
///
void uartSendTxBuffer(void);
 
//! Sends a block of data via the uart using interrupt control.
/// \param buffer pointer to data to be sent
/// \param nBytes length of data (number of bytes to sent)
u08 uartSendBuffer(char *buffer, u16 nBytes);
 
#endif
//@}
 
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/vt100.c
0,0 → 1,69
/*! \file vt100.c \brief VT100 terminal function library. */
//*****************************************************************************
//
// File Name : 'vt100.c'
// Title : VT100 terminal function library
// Author : Pascal Stang - Copyright (C) 2002
// Created : 2002.08.27
// Revised : 2002.08.27
// Version : 0.1
// Target MCU : Atmel AVR Series
// Editor Tabs : 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested. Nonetheless, you can expect most functions to work.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
 
#include "global.h"
#include "rprintf.h"
#include "vt100.h"
 
// Program ROM constants
 
// Global variables
 
// Functions
void vt100Init(void)
{
// initializes terminal to "power-on" settings
// ESC c
rprintfProgStrM("\x1B\x63");
}
 
void vt100ClearScreen(void)
{
// ESC [ 2 J
rprintfProgStrM("\x1B[2J");
}
 
void vt100SetAttr(u08 attr)
{
// ESC [ Ps m
rprintf("\x1B[%dm",attr);
}
 
void vt100SetCursorMode(u08 visible)
{
if(visible)
// ESC [ ? 25 h
rprintf("\x1B[?25h");
else
// ESC [ ? 25 l
rprintf("\x1B[?25l");
}
 
void vt100SetCursorPos(u08 line, u08 col)
{
// ESC [ Pl ; Pc H
rprintf("\x1B[%d;%dH",line,col);
}
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/buffer/vt100.h
0,0 → 1,72
/*! \file vt100.h \brief VT100 terminal function library. */
//*****************************************************************************
//
// File Name : 'vt100.h'
// Title : VT100 terminal function library
// Author : Pascal Stang - Copyright (C) 2002
// Created : 2002.08.27
// Revised : 2002.08.27
// Version : 0.1
// Target MCU : Atmel AVR Series
// Editor Tabs : 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested. Nonetheless, you can expect most functions to work.
//
/// \ingroup general
/// \defgroup vt100 VT100 Terminal Function Library (vt100.c)
/// \code #include "vt100.h" \endcode
/// \par Overview
/// This library provides functions for sending VT100 escape codes to
/// control a connected VT100 or ANSI terminal.  Commonly useful functions
/// include setting the cursor position, clearing the screen, setting the text
/// attributes (bold, inverse, blink, etc), and setting the text color.  This
/// library will slowly be expanded to include support for codes as needed and
/// may eventually receive VT100 escape codes too.
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
 
#ifndef VT100_H
#define VT100_H
 
#include "global.h"
 
// constants/macros/typdefs
// text attributes
#define VT100_ATTR_OFF 0
#define VT100_BOLD 1
#define VT100_USCORE 4
#define VT100_BLINK 5
#define VT100_REVERSE 7
#define VT100_BOLD_OFF 21
#define VT100_USCORE_OFF 24
#define VT100_BLINK_OFF 25
#define VT100_REVERSE_OFF 27
 
// functions
 
//! vt100Init() initializes terminal and vt100 library
/// Run this init routine once before using any other vt100 function.
void vt100Init(void);
 
//! vt100ClearScreen() clears the terminal screen
void vt100ClearScreen(void);
 
//! vt100SetAttr() sets the text attributes like BOLD or REVERSE
/// Text written to the terminal after this function is called will have
/// the desired attribuutes.
void vt100SetAttr(u08 attr);
 
//! vt100SetCursorMode() sets the cursor to visible or invisible
void vt100SetCursorMode(u08 visible);
 
//! vt100SetCursorPos() sets the cursor position
/// All text which is written to the terminal after a SetCursorPos command
/// will begin at the new location of the cursor.
void vt100SetCursorPos(u08 line, u08 col);
 
#endif
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/logger/ChangeLog
0,0 → 1,68
 
2007-12-13 sd-reader
* dual-license the major implementation modules under GPL and LGPL
 
2007-06-03 sd-reader
* Fix reading beyond cached block (by Benjamin Meier).
* Implement support for reading and writing file modification dates/times.
(Thanks to Torsten Seeboth for testing.)
 
2007-03-01 sd-reader
* Avoid LFN directory entries for the "." and ".." directory references.
This prevented Windows from deleting directories.
* Handle special case where the 8.3 filename begins with 0xe5.
* Fix return value of fat16_delete_file() when deleting empty files.
* Fix fat16_clear_cluster() which was zeroing only 16 of every 32 bytes.
 
2007-01-20 sd-reader
* fix directory creation
- correctly create "." and ".." directory entries (8.3 <-> lfn versions)
- correctly clear cluster containing the directory entries for new directory
 
2006-11-01 sd-reader
* Implement creation and deletion of directories.
* Clear the directory entries of new directory clusters.
* Prevent linkage against printf().
* Make the use of malloc()/free() optional.
 
2006-09-01 sd-reader
* Fix shortening files.
* Fix free disk space calculation.
 
2006-08-24 sd-reader
* Improve sleep handling.
* Display extended card information on boot and
when executing the "disk" shell command.
* Correctly determine FAT type by cluster count.
* Fix cluster allocation beyond card capacity.
 
2006-08-16 sd-reader
* Provide FAT16 capacity and usage information.
* Implement the backspace key in the mini shell.
* Enter idle mode when waiting for uart activity.
* Make the Card Select pin MCU dependent as well.
* Add mini shell commands to documentation.
 
2006-08-08 sd-reader
* Thanks go to Torsten Seeboth for his ongoing efforts
to test changes, fix regressions and give suggestions.
Many of the changes below were initiated by him.
* Much more reliable card initialization.
* Highly improved performance
- optional write buffering
- better cluster handling
- remove unneeded SPI access when reading from buffered block
- use highest spi frequency after card initialization
* Add superfloppy support.
* Better checks when opening a FAT16 filesystem.
* Provide SPI pin mappings for commonly used ATmegas.
* Fix resizing files, hangs could occur.
* Fix overflow when creating files with names longer than 31 characters.
* Fix numerous other small things.
 
2006-03-19 sd-reader
* Fix speed regressions.
 
2006-03-16 sd-reader
* Initial release.
 
/Designs/Data_loggers/GPSRL02A/SW/logger/Doxyfile
0,0 → 1,1311
# Doxyfile 1.5.3-20071008
 
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
 
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
 
# This tag specifies the encoding used for all characters in the config file that
# follow. The default is UTF-8 which is also the encoding used for all text before
# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
# possible encodings.
 
DOXYFILE_ENCODING = UTF-8
 
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
 
PROJECT_NAME = sd-reader
 
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
 
PROJECT_NUMBER =
 
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
 
OUTPUT_DIRECTORY = doc
 
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
# format and will distribute the generated files over these directories.
# Enabling this option can be useful when feeding doxygen a huge amount of
# source files, where putting all generated files in the same directory would
# otherwise cause performance problems for the file system.
 
CREATE_SUBDIRS = NO
 
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
 
OUTPUT_LANGUAGE = English
 
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
 
BRIEF_MEMBER_DESC = YES
 
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
 
REPEAT_BRIEF = YES
 
# This tag implements a quasi-intelligent brief description abbreviator
# that is used to form the text in various listings. Each string
# in this list, if found as the leading text of the brief description, will be
# stripped from the text and the result after processing the whole list, is
# used as the annotated text. Otherwise, the brief description is used as-is.
# If left blank, the following values are used ("$name" is automatically
# replaced with the name of the entity): "The $name class" "The $name widget"
# "The $name file" "is" "provides" "specifies" "contains"
# "represents" "a" "an" "the"
 
ABBREVIATE_BRIEF = "The $name class " \
"The $name widget " \
"The $name file " \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
 
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
 
ALWAYS_DETAILED_SEC = NO
 
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
 
INLINE_INHERITED_MEMB = NO
 
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
 
FULL_PATH_NAMES = NO
 
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the
# path to strip.
 
STRIP_FROM_PATH =
 
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
# the reader which header file to include in order to use a class.
# If left blank only the name of the header file containing the class
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.
 
STRIP_FROM_INC_PATH =
 
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful is your file systems
# doesn't support long names like on DOS, Mac, or CD-ROM.
 
SHORT_NAMES = NO
 
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like regular Qt-style comments
# (thus requiring an explicit @brief command for a brief description.)
 
JAVADOC_AUTOBRIEF = YES
 
# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
# interpret the first line (until the first dot) of a Qt-style
# comment as the brief description. If set to NO, the comments
# will behave just like regular Qt-style comments (thus requiring
# an explicit \brief command for a brief description.)
 
QT_AUTOBRIEF = NO
 
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
# The new default is to treat a multi-line C++ comment block as a detailed
# description. Set this tag to YES if you prefer the old behaviour instead.
 
MULTILINE_CPP_IS_BRIEF = NO
 
# If the DETAILS_AT_TOP tag is set to YES then Doxygen
# will output the detailed description near the top, like JavaDoc.
# If set to NO, the detailed description appears after the member
# documentation.
 
DETAILS_AT_TOP = YES
 
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
 
INHERIT_DOCS = YES
 
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.
 
SEPARATE_MEMBER_PAGES = NO
 
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
 
TAB_SIZE = 4
 
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user-defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
 
ALIASES =
 
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
# sources only. Doxygen will then generate output that is more tailored for C.
# For instance, some of the names that are used will be different. The list
# of all members will be omitted, etc.
 
OPTIMIZE_OUTPUT_FOR_C = YES
 
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
# sources only. Doxygen will then generate output that is more tailored for Java.
# For instance, namespaces will be presented as packages, qualified scopes
# will look different, etc.
 
OPTIMIZE_OUTPUT_JAVA = NO
 
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
# include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
# func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
 
BUILTIN_STL_SUPPORT = NO
 
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
 
CPP_CLI_SUPPORT = NO
 
# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
# Doxygen will parse them like normal C++ but will assume all classes use public
# instead of private inheritance when no explicit protection keyword is present.
 
SIP_SUPPORT = NO
 
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
 
DISTRIBUTE_GROUP_DOC = NO
 
# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a
# subgroup of that type (e.g. under the Public Functions section). Set it to
# NO to prevent subgrouping. Alternatively, this can be done per class using
# the \nosubgrouping command.
 
SUBGROUPING = YES
 
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
 
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
 
EXTRACT_ALL = NO
 
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
 
EXTRACT_PRIVATE = NO
 
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
 
EXTRACT_STATIC = NO
 
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.
 
EXTRACT_LOCAL_CLASSES = YES
 
# This flag is only useful for Objective-C code. When set to YES local
# methods, which are defined in the implementation section but not in
# the interface are included in the documentation.
# If set to NO (the default) only methods in the interface are included.
 
EXTRACT_LOCAL_METHODS = NO
 
# If this flag is set to YES, the members of anonymous namespaces will be extracted
# and appear in the documentation as a namespace called 'anonymous_namespace{file}',
# where file will be replaced with the base name of the file that contains the anonymous
# namespace. By default anonymous namespace are hidden.
 
EXTRACT_ANON_NSPACES = NO
 
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
 
HIDE_UNDOC_MEMBERS = YES
 
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these classes will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
 
HIDE_UNDOC_CLASSES = YES
 
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
# friend (class|struct|union) declarations.
# If set to NO (the default) these declarations will be included in the
# documentation.
 
HIDE_FRIEND_COMPOUNDS = NO
 
# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
# documentation blocks found inside the body of a function.
# If set to NO (the default) these blocks will be appended to the
# function's detailed documentation block.
 
HIDE_IN_BODY_DOCS = NO
 
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
 
INTERNAL_DOCS = NO
 
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower-case letters. If set to YES upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
 
CASE_SENSE_NAMES = YES
 
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
 
HIDE_SCOPE_NAMES = NO
 
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put a list of the files that are included by a file in the documentation
# of that file.
 
SHOW_INCLUDE_FILES = NO
 
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
 
INLINE_INFO = YES
 
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
 
SORT_MEMBER_DOCS = YES
 
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
# brief documentation of file, namespace and class members alphabetically
# by member name. If set to NO (the default) the members will appear in
# declaration order.
 
SORT_BRIEF_DOCS = NO
 
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
# NO (the default), the class list will be sorted only by class name,
# not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the
# alphabetical list.
 
SORT_BY_SCOPE_NAME = NO
 
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
 
GENERATE_TODOLIST = YES
 
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
 
GENERATE_TESTLIST = YES
 
# The GENERATE_BUGLIST tag can be used to enable (YES) or
# disable (NO) the bug list. This list is created by putting \bug
# commands in the documentation.
 
GENERATE_BUGLIST = YES
 
# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
# disable (NO) the deprecated list. This list is created by putting
# \deprecated commands in the documentation.
 
GENERATE_DEPRECATEDLIST= YES
 
# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
 
ENABLED_SECTIONS =
 
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
# the initial value of a variable or define consists of for it to appear in
# the documentation. If the initializer consists of more lines than specified
# here it will be hidden. Use a value of 0 to hide initializers completely.
# The appearance of the initializer of individual variables and defines in the
# documentation can be controlled using \showinitializer or \hideinitializer
# command in the documentation regardless of this setting.
 
MAX_INITIALIZER_LINES = 0
 
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
# at the bottom of the documentation of classes and structs. If set to YES the
# list will mention the files that were used to generate the documentation.
 
SHOW_USED_FILES = NO
 
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
 
SHOW_DIRECTORIES = NO
 
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from the
# version control system). Doxygen will invoke the program by executing (via
# popen()) the command <command> <input-file>, where <command> is the value of
# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
# provided by doxygen. Whatever the program writes to standard output
# is used as the file version. See the manual for examples.
 
FILE_VERSION_FILTER =
 
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
 
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
 
QUIET = NO
 
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
 
WARNINGS = YES
 
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
 
WARN_IF_UNDOCUMENTED = NO
 
# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some
# parameters in a documented function, or documenting parameters that
# don't exist or using markup commands wrongly.
 
WARN_IF_DOC_ERROR = YES
 
# This WARN_NO_PARAMDOC option can be abled to get warnings for
# functions that are documented, but have no documentation for their parameters
# or return value. If set to NO (the default) doxygen will only warn about
# wrong or incomplete parameter documentation, but not about the absence of
# documentation.
 
WARN_NO_PARAMDOC = NO
 
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text. Optionally the format may contain
# $version, which will be replaced by the version of the file (if it could
# be obtained via FILE_VERSION_FILTER)
 
WARN_FORMAT = "$file:$line: $text "
 
# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.
 
WARN_LOGFILE =
 
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
 
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
 
INPUT = .
 
# This tag can be used to specify the character encoding of the source files that
# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
# See http://www.gnu.org/software/libiconv for the list of possible encodings.
 
INPUT_ENCODING = UTF-8
 
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
 
FILE_PATTERNS = *.c \
*.h
 
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
 
RECURSIVE = NO
 
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
 
EXCLUDE =
 
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded
# from the input.
 
EXCLUDE_SYMLINKS = NO
 
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories. Note that the wildcards are matched
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
 
EXCLUDE_PATTERNS =
 
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the output.
# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
 
EXCLUDE_SYMBOLS =
 
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
 
EXAMPLE_PATH =
 
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
 
EXAMPLE_PATTERNS = *
 
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
# commands irrespective of the value of the RECURSIVE tag.
# Possible values are YES and NO. If left blank NO is used.
 
EXAMPLE_RECURSIVE = NO
 
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
 
IMAGE_PATH = doc
 
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output. If FILTER_PATTERNS is specified, this tag will be
# ignored.
 
INPUT_FILTER =
 
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis. Doxygen will compare the file name with each pattern and apply the
# filter if there is a match. The filters are a list of the form:
# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
# is applied to all files.
 
FILTER_PATTERNS =
 
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse (i.e. when SOURCE_BROWSER is set to YES).
 
FILTER_SOURCE_FILES = NO
 
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
 
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
# Note: To get rid of all source code in the generated output, make sure also
# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH
# then you must also enable this option. If you don't then doxygen will produce
# a warning and turn it on anyway
 
SOURCE_BROWSER = NO
 
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
 
INLINE_SOURCES = NO
 
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
 
STRIP_CODE_COMMENTS = YES
 
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
# then for each documented function all documented
# functions referencing it will be listed.
 
REFERENCED_BY_RELATION = NO
 
# If the REFERENCES_RELATION tag is set to YES (the default)
# then for each documented function all documented entities
# called/used by that function will be listed.
 
REFERENCES_RELATION = NO
 
# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
# link to the source code. Otherwise they will link to the documentstion.
 
REFERENCES_LINK_SOURCE = YES
 
# If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source
# tagging system (see http://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher.
 
USE_HTAGS = NO
 
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
 
VERBATIM_HEADERS = NO
 
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
 
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
 
ALPHABETICAL_INDEX = NO
 
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
 
COLS_IN_ALPHA_INDEX = 5
 
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
 
IGNORE_PREFIX =
 
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
 
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
 
GENERATE_HTML = YES
 
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
 
HTML_OUTPUT = html
 
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
# doxygen will generate files with .html extension.
 
HTML_FILE_EXTENSION = .html
 
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
 
HTML_HEADER =
 
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
 
HTML_FOOTER =
 
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet. Note that doxygen will try to copy
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
 
HTML_STYLESHEET =
 
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
 
HTML_ALIGN_MEMBERS = YES
 
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
 
GENERATE_HTMLHELP = NO
 
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports
# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
 
HTML_DYNAMIC_SECTIONS = NO
 
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
# can add a path in front of the file if the result should not be
# written to the html output directory.
 
CHM_FILE =
 
# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
# be used to specify the location (absolute path including file name) of
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
# the HTML help compiler on the generated index.hhp.
 
HHC_LOCATION =
 
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
# it should be included in the master .chm file (NO).
 
GENERATE_CHI = NO
 
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.
 
BINARY_TOC = NO
 
# The TOC_EXPAND flag can be set to YES to add extra items for group members
# to the contents of the HTML help documentation and to the tree view.
 
TOC_EXPAND = NO
 
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
 
DISABLE_INDEX = NO
 
# This tag can be used to set the number of enum values (range [1..20])
# that doxygen will group on one line in the generated HTML documentation.
 
ENUM_VALUES_PER_LINE = 4
 
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
# generated containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
# probably better off using the HTML help feature.
 
GENERATE_TREEVIEW = NO
 
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
 
TREEVIEW_WIDTH = 250
 
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
 
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
 
GENERATE_LATEX = NO
 
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
 
LATEX_OUTPUT = latex
 
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked. If left blank `latex' will be used as the default command name.
 
LATEX_CMD_NAME = latex
 
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
# generate index for LaTeX. If left blank `makeindex' will be used as the
# default command name.
 
MAKEINDEX_CMD_NAME = makeindex
 
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
 
COMPACT_LATEX = NO
 
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
 
PAPER_TYPE = a4wide
 
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
 
EXTRA_PACKAGES =
 
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
 
LATEX_HEADER =
 
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
 
PDF_HYPERLINKS = NO
 
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
 
USE_PDFLATEX = NO
 
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
 
LATEX_BATCHMODE = NO
 
# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
# in the output.
 
LATEX_HIDE_INDICES = NO
 
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
 
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimized for Word 97 and may not look very pretty with
# other RTF readers or editors.
 
GENERATE_RTF = NO
 
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
 
RTF_OUTPUT = rtf
 
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
 
COMPACT_RTF = NO
 
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using WORD or other
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
 
RTF_HYPERLINKS = NO
 
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.
 
RTF_STYLESHEET_FILE =
 
# Set optional variables used in the generation of an rtf document.
# Syntax is similar to doxygen's config file.
 
RTF_EXTENSIONS_FILE =
 
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
 
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
 
GENERATE_MAN = NO
 
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
 
MAN_OUTPUT = man
 
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
 
MAN_EXTENSION = .3
 
# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
# then it will generate one additional man file for each entity
# documented in the real man page(s). These additional files
# only source the real man page, but without them the man command
# would be unable to find the correct page. The default is NO.
 
MAN_LINKS = NO
 
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
 
# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation.
 
GENERATE_XML = NO
 
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
 
XML_OUTPUT = xml
 
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
 
XML_SCHEMA =
 
# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
 
XML_DTD =
 
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
# and cross-referencing information) to the XML output. Note that
# enabling this will significantly increase the size of the XML output.
 
XML_PROGRAMLISTING = YES
 
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
 
# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
# generate an AutoGen Definitions (see autogen.sf.net) file
# that captures the structure of the code including all
# documentation. Note that this feature is still experimental
# and incomplete at the moment.
 
GENERATE_AUTOGEN_DEF = NO
 
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
 
# If the GENERATE_PERLMOD tag is set to YES Doxygen will
# generate a Perl module file that captures the structure of
# the code including all documentation. Note that this
# feature is still experimental and incomplete at the
# moment.
 
GENERATE_PERLMOD = NO
 
# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
# the necessary Makefile rules, Perl scripts and LaTeX code to be able
# to generate PDF and DVI output from the Perl module output.
 
PERLMOD_LATEX = NO
 
# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
# nicely formatted so it can be parsed by a human reader. This is useful
# if you want to understand what is going on. On the other hand, if this
# tag is set to NO the size of the Perl module output will be much smaller
# and Perl will parse it just the same.
 
PERLMOD_PRETTY = YES
 
# The names of the make variables in the generated doxyrules.make file
# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
# This is useful so different doxyrules.make files included by the same
# Makefile don't overwrite each other's variables.
 
PERLMOD_MAKEVAR_PREFIX =
 
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
 
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
 
ENABLE_PREPROCESSING = YES
 
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
 
MACRO_EXPANSION = NO
 
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_DEFINED tags.
 
EXPAND_ONLY_PREDEF = NO
 
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found.
 
SEARCH_INCLUDES = YES
 
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
 
INCLUDE_PATH =
 
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
 
INCLUDE_FILE_PATTERNS =
 
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed. To prevent a macro definition from being
# undefined via #undef or recursively expanded use the := operator
# instead of the = operator.
 
PREDEFINED = DOXYGEN=1
 
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
 
EXPAND_AS_DEFINED =
 
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all function-like macros that are alone
# on a line, have an all uppercase name, and do not end with a semicolon. Such
# function macros are typically used for boiler-plate code, and will confuse
# the parser if not removed.
 
SKIP_FUNCTION_MACROS = YES
 
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
 
# The TAGFILES option can be used to specify one or more tagfiles.
# Optionally an initial location of the external documentation
# can be added for each tagfile. The format of a tag file without
# this location is as follows:
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where "loc1" and "loc2" can be relative or absolute paths or
# URLs. If a location is present for each tag, the installdox tool
# does not have to be run to correct the links.
# Note that each tag file must have a unique name
# (where the name does NOT include the path)
# If a tag file is not located in the directory in which doxygen
# is run, you must also specify the path to the tagfile here.
 
TAGFILES =
 
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
 
GENERATE_TAGFILE =
 
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
 
ALLEXTERNALS = NO
 
# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will
# be listed.
 
EXTERNAL_GROUPS = YES
 
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
 
PERL_PATH = /usr/bin/perl
 
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
 
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
# or super classes. Setting the tag to NO turns the diagrams off. Note that
# this option is superseded by the HAVE_DOT option below. This is only a
# fallback. It is recommended to install and use dot, since it yields more
# powerful graphs.
 
CLASS_DIAGRAMS = YES
 
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
# be found in the default search path.
 
MSCGEN_PATH =
 
# If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented
# or is not a class.
 
HIDE_UNDOC_RELATIONS = YES
 
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
 
HAVE_DOT = NO
 
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
 
CLASS_GRAPH = YES
 
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
 
COLLABORATION_GRAPH = YES
 
# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for groups, showing the direct groups dependencies
 
GROUP_GRAPHS = YES
 
# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
 
UML_LOOK = NO
 
# If set to YES, the inheritance and collaboration graphs will show the
# relations between templates and their instances.
 
TEMPLATE_RELATIONS = NO
 
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
# tags are set to YES then doxygen will generate a graph for each documented
# file showing the direct and indirect include dependencies of the file with
# other documented files.
 
INCLUDE_GRAPH = YES
 
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
# documented header file showing the documented files that directly or
# indirectly include this file.
 
INCLUDED_BY_GRAPH = YES
 
# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
# generate a call dependency graph for every global function or class method.
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command.
 
CALL_GRAPH = NO
 
# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
# generate a caller dependency graph for every global function or class method.
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command.
 
CALLER_GRAPH = NO
 
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will graphical hierarchy of all classes instead of a textual one.
 
GRAPHICAL_HIERARCHY = YES
 
# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
# then doxygen will show the dependencies a directory has on other directories
# in a graphical way. The dependency relations are determined by the #include
# relations between the files in the directories.
 
DIRECTORY_GRAPH = YES
 
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. Possible values are png, jpg, or gif
# If left blank png will be used.
 
DOT_IMAGE_FORMAT = png
 
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
 
DOT_PATH =
 
# The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the
# \dotfile command).
 
DOTFILE_DIRS =
 
# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
# nodes that will be shown in the graph. If the number of nodes in a graph
# becomes larger than this value, doxygen will truncate the graph, which is
# visualized by representing a node as a red box. Note that doxygen if the number
# of direct children of the root node in a graph is already larger than
# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 
DOT_GRAPH_MAX_NODES = 50
 
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
# code bases. Also note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 
MAX_DOT_GRAPH_DEPTH = 1000
 
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, which results in a white background.
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
 
DOT_TRANSPARENT = NO
 
# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10)
# support this, this feature is disabled by default.
 
DOT_MULTI_TARGETS = NO
 
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
# arrows in the dot generated graphs.
 
GENERATE_LEGEND = YES
 
# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
# remove the intermediate dot files that are used to generate
# the various graphs.
 
DOT_CLEANUP = YES
 
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
 
# The SEARCHENGINE tag specifies whether or not a search engine should be
# used. If set to NO the values of all tags below this one will be ignored.
 
SEARCHENGINE = NO
/Designs/Data_loggers/GPSRL02A/SW/logger/Makefile
0,0 → 1,52
 
NAME := sd-reader
HEX := $(NAME).hex
OUT := $(NAME).out
MAP := $(NAME).map
SOURCES := $(wildcard *.c)
HEADERS := $(wildcard *.h)
OBJECTS := $(patsubst %.c,%.o,$(SOURCES))
 
MCU := atmega168
MCU_AVRDUDE := m168
MCU_FREQ := 16000000UL
 
CC := avr-gcc
OBJCOPY := avr-objcopy
SIZE := avr-size -A
DOXYGEN := doxygen
 
CFLAGS := -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -Os -DF_CPU=$(MCU_FREQ)
 
all: $(HEX)
 
clean:
rm -f $(HEX) $(OUT) $(MAP) $(OBJECTS)
rm -rf doc/html
 
flash: $(HEX)
avrdude -y -p $(MCU_AVRDUDE) -P /dev/ttyUSB0 -c stk500v2 -U flash:w:$(HEX)
 
$(HEX): $(OUT)
$(OBJCOPY) -R .eeprom -O ihex $< $@
 
$(OUT): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ -Wl,-Map,$(MAP) $^
@echo
@$(SIZE) $@
@echo
 
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c -o $@ $<
 
%.pp: %.c
$(CC) $(CFLAGS) -E -o $@ $<
 
%.ppo: %.c
$(CC) $(CFLAGS) -E $<
 
doc: $(HEADERS) $(SOURCES) Doxyfile
$(DOXYGEN) Doxyfile
 
.PHONY: all clean flash doc
 
/Designs/Data_loggers/GPSRL02A/SW/logger/doc/pic01.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/logger/doc/pic02.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/logger/fat16.c
0,0 → 1,2233
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#include "partition.h"
#include "fat16.h"
#include "fat16_config.h"
#include "sd-reader_config.h"
 
#include <string.h>
 
#if USE_DYNAMIC_MEMORY
#include <stdlib.h>
#endif
 
/**
* \addtogroup fat16 FAT16 support
*
* This module implements FAT16 read and write access.
*
* The following features are supported:
* - File names up to 31 characters long.
* - Unlimited depth of subdirectories.
* - Short 8.3 and long filenames.
* - Creating and deleting files.
* - Reading and writing from and to files.
* - File resizing.
* - File sizes of up to 4 gigabytes.
*
* @{
*/
/**
* \file
* FAT16 implementation (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* \addtogroup fat16_config FAT16 configuration
* Preprocessor defines to configure the FAT16 implementation.
*/
 
/**
* \addtogroup fat16_fs FAT16 access
* Basic functions for handling a FAT16 filesystem.
*/
 
/**
* \addtogroup fat16_file FAT16 file functions
* Functions for managing files.
*/
 
/**
* \addtogroup fat16_dir FAT16 directory functions
* Functions for managing directories.
*/
 
/**
* @}
*/
 
#define FAT16_CLUSTER_FREE 0x0000
#define FAT16_CLUSTER_RESERVED_MIN 0xfff0
#define FAT16_CLUSTER_RESERVED_MAX 0xfff6
#define FAT16_CLUSTER_BAD 0xfff7
#define FAT16_CLUSTER_LAST_MIN 0xfff8
#define FAT16_CLUSTER_LAST_MAX 0xffff
 
#define FAT16_DIRENTRY_DELETED 0xe5
#define FAT16_DIRENTRY_LFNLAST (1 << 6)
#define FAT16_DIRENTRY_LFNSEQMASK ((1 << 6) - 1)
 
/* Each entry within the directory table has a size of 32 bytes
* and either contains a 8.3 DOS-style file name or a part of a
* long file name, which may consist of several directory table
* entries at once.
*
* multi-byte integer values are stored little-endian!
*
* 8.3 file name entry:
* ====================
* offset length description
* 0 8 name (space padded)
* 8 3 extension (space padded)
* 11 1 attributes (FAT16_ATTRIB_*)
*
* long file name (lfn) entry ordering for a single file name:
* ===========================================================
* LFN entry n
* ...
* LFN entry 2
* LFN entry 1
* 8.3 entry (see above)
*
* lfn entry:
* ==========
* offset length description
* 0 1 ordinal field
* 1 2 unicode character 1
* 3 3 unicode character 2
* 5 3 unicode character 3
* 7 3 unicode character 4
* 9 3 unicode character 5
* 11 1 attribute (always 0x0f)
* 12 1 type (reserved, always 0)
* 13 1 checksum
* 14 2 unicode character 6
* 16 2 unicode character 7
* 18 2 unicode character 8
* 20 2 unicode character 9
* 22 2 unicode character 10
* 24 2 unicode character 11
* 26 2 cluster (unused, always 0)
* 28 2 unicode character 12
* 30 2 unicode character 13
*
* The ordinal field contains a descending number, from n to 1.
* For the n'th lfn entry the ordinal field is or'ed with 0x40.
* For deleted lfn entries, the ordinal field is set to 0xe5.
*/
 
struct fat16_header_struct
{
uint32_t size;
 
uint32_t fat_offset;
uint32_t fat_size;
 
uint16_t sector_size;
uint16_t cluster_size;
 
uint32_t root_dir_offset;
 
uint32_t cluster_zero_offset;
};
 
struct fat16_fs_struct
{
struct partition_struct* partition;
struct fat16_header_struct header;
};
 
struct fat16_file_struct
{
struct fat16_fs_struct* fs;
struct fat16_dir_entry_struct dir_entry;
uint32_t pos;
uint16_t pos_cluster;
};
 
struct fat16_dir_struct
{
struct fat16_fs_struct* fs;
struct fat16_dir_entry_struct dir_entry;
uint16_t entry_next;
};
 
struct fat16_read_callback_arg
{
uint16_t entry_cur;
uint16_t entry_num;
uint32_t entry_offset;
uint8_t byte_count;
};
 
struct fat16_usage_count_callback_arg
{
uint16_t cluster_count;
uint8_t buffer_size;
};
 
#if !USE_DYNAMIC_MEMORY
static struct fat16_fs_struct fat16_fs_handlers[FAT16_FS_COUNT];
static struct fat16_file_struct fat16_file_handlers[FAT16_FILE_COUNT];
static struct fat16_dir_struct fat16_dir_handlers[FAT16_DIR_COUNT];
#endif
 
static uint8_t fat16_read_header(struct fat16_fs_struct* fs);
static uint8_t fat16_read_root_dir_entry(const struct fat16_fs_struct* fs, uint16_t entry_num, struct fat16_dir_entry_struct* dir_entry);
static uint8_t fat16_read_sub_dir_entry(const struct fat16_fs_struct* fs, uint16_t entry_num, const struct fat16_dir_entry_struct* parent, struct fat16_dir_entry_struct* dir_entry);
static uint8_t fat16_dir_entry_seek_callback(uint8_t* buffer, uint32_t offset, void* p);
static uint8_t fat16_dir_entry_read_callback(uint8_t* buffer, uint32_t offset, void* p);
static uint8_t fat16_interpret_dir_entry(struct fat16_dir_entry_struct* dir_entry, const uint8_t* raw_entry);
static uint16_t fat16_get_next_cluster(const struct fat16_fs_struct* fs, uint16_t cluster_num);
static uint16_t fat16_append_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num, uint16_t count);
static uint8_t fat16_free_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num);
static uint8_t fat16_terminate_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num);
static uint8_t fat16_clear_cluster(const struct fat16_fs_struct* fs, uint16_t cluster_num);
static uint16_t fat16_clear_cluster_callback(uint8_t* buffer, uint32_t offset, void* p);
static uint32_t fat16_find_offset_for_dir_entry(const struct fat16_fs_struct* fs, const struct fat16_dir_struct* parent, const struct fat16_dir_entry_struct* dir_entry);
static uint8_t fat16_write_dir_entry(const struct fat16_fs_struct* fs, struct fat16_dir_entry_struct* dir_entry);
 
static uint8_t fat16_get_fs_free_callback(uint8_t* buffer, uint32_t offset, void* p);
 
static void fat16_set_file_modification_date(struct fat16_dir_entry_struct* dir_entry, uint16_t year, uint8_t month, uint8_t day);
static void fat16_set_file_modification_time(struct fat16_dir_entry_struct* dir_entry, uint8_t hour, uint8_t min, uint8_t sec);
 
/**
* \ingroup fat16_fs
* Opens a FAT16 filesystem.
*
* \param[in] partition Discriptor of partition on which the filesystem resides.
* \returns 0 on error, a FAT16 filesystem descriptor on success.
* \see fat16_open
*/
struct fat16_fs_struct* fat16_open(struct partition_struct* partition)
{
if(!partition ||
#if FAT16_WRITE_SUPPORT
!partition->device_write ||
!partition->device_write_interval
#else
0
#endif
)
return 0;
 
#if USE_DYNAMIC_MEMORY
struct fat16_fs_struct* fs = malloc(sizeof(*fs));
if(!fs)
return 0;
#else
struct fat16_fs_struct* fs = fat16_fs_handlers;
uint8_t i;
for(i = 0; i < FAT16_FS_COUNT; ++i)
{
if(!fs->partition)
break;
 
++fs;
}
if(i >= FAT16_FS_COUNT)
return 0;
#endif
 
memset(fs, 0, sizeof(*fs));
 
fs->partition = partition;
if(!fat16_read_header(fs))
{
#if USE_DYNAMIC_MEMORY
free(fs);
#else
fs->partition = 0;
#endif
return 0;
}
return fs;
}
 
/**
* \ingroup fat16_fs
* Closes a FAT16 filesystem.
*
* When this function returns, the given filesystem descriptor
* will be invalid.
*
* \param[in] fs The filesystem to close.
* \see fat16_open
*/
void fat16_close(struct fat16_fs_struct* fs)
{
if(!fs)
return;
 
#if USE_DYNAMIC_MEMORY
free(fs);
#else
fs->partition = 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Reads and parses the header of a FAT16 filesystem.
*
* \param[inout] fs The filesystem for which to parse the header.
* \returns 0 on failure, 1 on success.
*/
uint8_t fat16_read_header(struct fat16_fs_struct* fs)
{
if(!fs)
return 0;
 
struct partition_struct* partition = fs->partition;
if(!partition)
return 0;
 
/* read fat parameters */
uint8_t buffer[25];
uint32_t partition_offset = partition->offset * 512;
if(!partition->device_read(partition_offset + 0x0b, buffer, sizeof(buffer)))
return 0;
 
uint16_t bytes_per_sector = ((uint16_t) buffer[0x00]) |
((uint16_t) buffer[0x01] << 8);
uint8_t sectors_per_cluster = buffer[0x02];
uint16_t reserved_sectors = ((uint16_t) buffer[0x03]) |
((uint16_t) buffer[0x04] << 8);
uint8_t fat_copies = buffer[0x05];
uint16_t max_root_entries = ((uint16_t) buffer[0x06]) |
((uint16_t) buffer[0x07] << 8);
uint16_t sector_count_16 = ((uint16_t) buffer[0x08]) |
((uint16_t) buffer[0x09] << 8);
uint16_t sectors_per_fat = ((uint16_t) buffer[0x0b]) |
((uint16_t) buffer[0x0c] << 8);
uint32_t sector_count = ((uint32_t) buffer[0x15]) |
((uint32_t) buffer[0x16] << 8) |
((uint32_t) buffer[0x17] << 16) |
((uint32_t) buffer[0x18] << 24);
if(sectors_per_fat == 0)
/* this is not a FAT16 */
return 0;
 
if(sector_count == 0)
{
if(sector_count_16 == 0)
/* illegal volume size */
return 0;
else
sector_count = sector_count_16;
}
 
/* ensure we really have a FAT16 fs here */
uint32_t data_sector_count = sector_count
- reserved_sectors
- (uint32_t) sectors_per_fat * fat_copies
- ((max_root_entries * 32 + bytes_per_sector - 1) / bytes_per_sector);
uint32_t data_cluster_count = data_sector_count / sectors_per_cluster;
if(data_cluster_count < 4085 || data_cluster_count >= 65525)
/* this is not a FAT16 */
return 0;
 
partition->type = PARTITION_TYPE_FAT16;
 
/* fill header information */
struct fat16_header_struct* header = &fs->header;
memset(header, 0, sizeof(*header));
header->size = sector_count * bytes_per_sector;
 
header->fat_offset = /* jump to partition */
partition_offset +
/* jump to fat */
(uint32_t) reserved_sectors * bytes_per_sector;
header->fat_size = (data_cluster_count + 2) * 2;
 
header->sector_size = bytes_per_sector;
header->cluster_size = (uint32_t) bytes_per_sector * sectors_per_cluster;
 
header->root_dir_offset = /* jump to fats */
header->fat_offset +
/* jump to root directory entries */
(uint32_t) fat_copies * sectors_per_fat * bytes_per_sector;
 
header->cluster_zero_offset = /* jump to root directory entries */
header->root_dir_offset +
/* skip root directory entries */
(uint32_t) max_root_entries * 32;
 
return 1;
}
 
/**
* \ingroup fat16_fs
* Reads a directory entry of the root directory.
*
* \param[in] fs Descriptor of file system to use.
* \param[in] entry_num The index of the directory entry to read.
* \param[out] dir_entry Directory entry descriptor which will get filled.
* \returns 0 on failure, 1 on success
* \see fat16_read_sub_dir_entry, fat16_read_dir_entry_by_path
*/
uint8_t fat16_read_root_dir_entry(const struct fat16_fs_struct* fs, uint16_t entry_num, struct fat16_dir_entry_struct* dir_entry)
{
if(!fs || !dir_entry)
return 0;
 
/* we read from the root directory entry */
const struct fat16_header_struct* header = &fs->header;
device_read_interval_t device_read_interval = fs->partition->device_read_interval;
uint8_t buffer[32];
 
/* seek to the n-th entry */
struct fat16_read_callback_arg arg;
memset(&arg, 0, sizeof(arg));
arg.entry_num = entry_num;
if(!device_read_interval(header->root_dir_offset,
buffer,
sizeof(buffer),
header->cluster_zero_offset - header->root_dir_offset,
fat16_dir_entry_seek_callback,
&arg) ||
arg.entry_offset == 0
)
return 0;
 
/* read entry */
memset(dir_entry, 0, sizeof(*dir_entry));
if(!device_read_interval(arg.entry_offset,
buffer,
sizeof(buffer),
arg.byte_count,
fat16_dir_entry_read_callback,
dir_entry))
return 0;
 
return dir_entry->long_name[0] != '\0' ? 1 : 0;
}
 
/**
* \ingroup fat16_fs
* Reads a directory entry of a given parent directory.
*
* \param[in] fs Descriptor of file system to use.
* \param[in] entry_num The index of the directory entry to read.
* \param[in] parent Directory entry descriptor in which to read directory entry.
* \param[out] dir_entry Directory entry descriptor which will get filled.
* \returns 0 on failure, 1 on success
* \see fat16_read_root_dir_entry, fat16_read_dir_entry_by_path
*/
uint8_t fat16_read_sub_dir_entry(const struct fat16_fs_struct* fs, uint16_t entry_num, const struct fat16_dir_entry_struct* parent, struct fat16_dir_entry_struct* dir_entry)
{
if(!fs || !parent || !dir_entry)
return 0;
 
/* we are in a parent directory and want to search within its directory entry table */
if(!(parent->attributes & FAT16_ATTRIB_DIR))
return 0;
 
/* loop through all clusters of the directory */
uint8_t buffer[32];
uint32_t cluster_offset;
uint16_t cluster_size = fs->header.cluster_size;
uint16_t cluster_num = parent->cluster;
struct fat16_read_callback_arg arg;
 
while(1)
{
/* calculate new cluster offset */
cluster_offset = fs->header.cluster_zero_offset + (uint32_t) (cluster_num - 2) * cluster_size;
 
/* seek to the n-th entry */
memset(&arg, 0, sizeof(arg));
arg.entry_num = entry_num;
if(!fs->partition->device_read_interval(cluster_offset,
buffer,
sizeof(buffer),
cluster_size,
fat16_dir_entry_seek_callback,
&arg)
)
return 0;
 
/* check if we found the entry */
if(arg.entry_offset)
break;
 
/* get number of next cluster */
if(!(cluster_num = fat16_get_next_cluster(fs, cluster_num)))
return 0; /* directory entry not found */
}
 
memset(dir_entry, 0, sizeof(*dir_entry));
 
/* read entry */
if(!fs->partition->device_read_interval(arg.entry_offset,
buffer,
sizeof(buffer),
arg.byte_count,
fat16_dir_entry_read_callback,
dir_entry))
return 0;
 
return dir_entry->long_name[0] != '\0' ? 1 : 0;
}
 
/**
* \ingroup fat16_fs
* Callback function for seeking through subdirectory entries.
*/
uint8_t fat16_dir_entry_seek_callback(uint8_t* buffer, uint32_t offset, void* p)
{
struct fat16_read_callback_arg* arg = p;
 
/* skip deleted or empty entries */
if(buffer[0] == FAT16_DIRENTRY_DELETED || !buffer[0])
return 1;
 
if(arg->entry_cur == arg->entry_num)
{
arg->entry_offset = offset;
arg->byte_count = buffer[11] == 0x0f ?
((buffer[0] & FAT16_DIRENTRY_LFNSEQMASK) + 1) * 32 :
32;
return 0;
}
 
/* if we read a 8.3 entry, we reached a new directory entry */
if(buffer[11] != 0x0f)
++arg->entry_cur;
 
return 1;
}
 
/**
* \ingroup fat16_fs
* Callback function for reading a directory entry.
*/
uint8_t fat16_dir_entry_read_callback(uint8_t* buffer, uint32_t offset, void* p)
{
struct fat16_dir_entry_struct* dir_entry = p;
 
/* there should not be any deleted or empty entries */
if(buffer[0] == FAT16_DIRENTRY_DELETED || !buffer[0])
return 0;
 
if(!dir_entry->entry_offset)
dir_entry->entry_offset = offset;
switch(fat16_interpret_dir_entry(dir_entry, buffer))
{
case 0: /* failure */
return 0;
case 1: /* buffer successfully parsed, continue */
return 1;
case 2: /* directory entry complete, finish */
return 0;
}
 
return 0;
}
 
/**
* \ingroup fat16_fs
* Interprets a raw directory entry and puts the contained
* information into the directory entry.
*
* For a single file there may exist multiple directory
* entries. All except the last one are lfn entries, which
* contain parts of the long filename. The last directory
* entry is a traditional 8.3 style one. It contains all
* other information like size, cluster, date and time.
*
* \param[in,out] dir_entry The directory entry to fill.
* \param[in] raw_entry A pointer to 32 bytes of raw data.
* \returns 0 on failure, 1 on success and 2 if the
* directory entry is complete.
*/
uint8_t fat16_interpret_dir_entry(struct fat16_dir_entry_struct* dir_entry, const uint8_t* raw_entry)
{
if(!dir_entry || !raw_entry || !raw_entry[0])
return 0;
 
char* long_name = dir_entry->long_name;
if(raw_entry[11] == 0x0f)
{
uint16_t char_offset = ((raw_entry[0] & 0x3f) - 1) * 13;
 
if(char_offset + 12 < sizeof(dir_entry->long_name))
{
/* Lfn supports unicode, but we do not, for now.
* So we assume pure ascii and read only every
* second byte.
*/
long_name[char_offset + 0] = raw_entry[1];
long_name[char_offset + 1] = raw_entry[3];
long_name[char_offset + 2] = raw_entry[5];
long_name[char_offset + 3] = raw_entry[7];
long_name[char_offset + 4] = raw_entry[9];
long_name[char_offset + 5] = raw_entry[14];
long_name[char_offset + 6] = raw_entry[16];
long_name[char_offset + 7] = raw_entry[18];
long_name[char_offset + 8] = raw_entry[20];
long_name[char_offset + 9] = raw_entry[22];
long_name[char_offset + 10] = raw_entry[24];
long_name[char_offset + 11] = raw_entry[28];
long_name[char_offset + 12] = raw_entry[30];
}
 
return 1;
}
else
{
/* if we do not have a long name, take the short one */
if(long_name[0] == '\0')
{
uint8_t i;
for(i = 0; i < 8; ++i)
{
if(raw_entry[i] == ' ')
break;
long_name[i] = raw_entry[i];
}
if(long_name[0] == 0x05)
long_name[0] = (char) FAT16_DIRENTRY_DELETED;
 
if(raw_entry[8] != ' ')
{
long_name[i++] = '.';
 
uint8_t j = 8;
for(; j < 11; ++j)
{
if(raw_entry[j] != ' ')
{
long_name[i++] = raw_entry[j];
}
else
{
break;
}
}
}
 
long_name[i] = '\0';
}
/* extract properties of file and store them within the structure */
dir_entry->attributes = raw_entry[11];
dir_entry->cluster = ((uint16_t) raw_entry[26]) |
((uint16_t) raw_entry[27] << 8);
dir_entry->file_size = ((uint32_t) raw_entry[28]) |
((uint32_t) raw_entry[29] << 8) |
((uint32_t) raw_entry[30] << 16) |
((uint32_t) raw_entry[31] << 24);
 
#if FAT16_DATETIME_SUPPORT
dir_entry->modification_time = ((uint16_t) raw_entry[22]) |
((uint16_t) raw_entry[23] << 8);
dir_entry->modification_date = ((uint16_t) raw_entry[24]) |
((uint16_t) raw_entry[25] << 8);
#endif
 
return 2;
}
}
 
/**
* \ingroup fat16_file
* Retrieves the directory entry of a path.
*
* The given path may both describe a file or a directory.
*
* \param[in] fs The FAT16 filesystem on which to search.
* \param[in] path The path of which to read the directory entry.
* \param[out] dir_entry The directory entry to fill.
* \returns 0 on failure, 1 on success.
* \see fat16_read_dir
*/
uint8_t fat16_get_dir_entry_of_path(struct fat16_fs_struct* fs, const char* path, struct fat16_dir_entry_struct* dir_entry)
{
if(!fs || !path || path[0] == '\0' || !dir_entry)
return 0;
 
if(path[0] == '/')
++path;
 
/* begin with the root directory */
memset(dir_entry, 0, sizeof(*dir_entry));
dir_entry->attributes = FAT16_ATTRIB_DIR;
 
if(path[0] == '\0')
return 1;
 
while(1)
{
struct fat16_dir_struct* dd = fat16_open_dir(fs, dir_entry);
if(!dd)
break;
 
/* extract the next hierarchy we will search for */
const char* sep_pos = strchr(path, '/');
if(!sep_pos)
sep_pos = path + strlen(path);
uint8_t length_to_sep = sep_pos - path;
/* read directory entries */
while(fat16_read_dir(dd, dir_entry))
{
/* check if we have found the next hierarchy */
if((strlen(dir_entry->long_name) != length_to_sep ||
strncmp(path, dir_entry->long_name, length_to_sep) != 0))
continue;
 
fat16_close_dir(dd);
dd = 0;
 
if(path[length_to_sep] == '\0')
/* we iterated through the whole path and have found the file */
return 1;
 
if(dir_entry->attributes & FAT16_ATTRIB_DIR)
{
/* we found a parent directory of the file we are searching for */
path = sep_pos + 1;
break;
}
 
/* a parent of the file exists, but not the file itself */
return 0;
}
 
fat16_close_dir(dd);
}
return 0;
}
 
/**
* \ingroup fat16_fs
* Retrieves the next following cluster of a given cluster.
*
* Using the filesystem file allocation table, this function returns
* the number of the cluster containing the data directly following
* the data within the cluster with the given number.
*
* \param[in] fs The filesystem for which to determine the next cluster.
* \param[in] cluster_num The number of the cluster for which to determine its successor.
* \returns The wanted cluster number, or 0 on error.
*/
uint16_t fat16_get_next_cluster(const struct fat16_fs_struct* fs, uint16_t cluster_num)
{
if(!fs || cluster_num < 2)
return 0;
 
/* read appropriate fat entry */
uint8_t fat_entry[2];
if(!fs->partition->device_read(fs->header.fat_offset + 2 * cluster_num, fat_entry, 2))
return 0;
 
/* determine next cluster from fat */
cluster_num = ((uint16_t) fat_entry[0]) |
((uint16_t) fat_entry[1] << 8);
if(cluster_num == FAT16_CLUSTER_FREE ||
cluster_num == FAT16_CLUSTER_BAD ||
(cluster_num >= FAT16_CLUSTER_RESERVED_MIN && cluster_num <= FAT16_CLUSTER_RESERVED_MAX) ||
(cluster_num >= FAT16_CLUSTER_LAST_MIN && cluster_num <= FAT16_CLUSTER_LAST_MAX))
return 0;
return cluster_num;
}
 
/**
* \ingroup fat16_fs
* Appends a new cluster chain to an existing one.
*
* Set cluster_num to zero to create a completely new one.
*
* \param[in] fs The file system on which to operate.
* \param[in] cluster_num The cluster to which to append the new chain.
* \param[in] count The number of clusters to allocate.
* \returns 0 on failure, the number of the first new cluster on success.
*/
uint16_t fat16_append_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num, uint16_t count)
{
#if FAT16_WRITE_SUPPORT
if(!fs)
return 0;
 
device_read_t device_read = fs->partition->device_read;
device_write_t device_write = fs->partition->device_write;
uint32_t fat_offset = fs->header.fat_offset;
uint16_t cluster_max = fs->header.fat_size / 2;
uint16_t cluster_next = 0;
uint16_t count_left = count;
uint8_t buffer[2];
 
for(uint16_t cluster_new = 0; cluster_new < cluster_max; ++cluster_new)
{
if(!device_read(fat_offset + 2 * cluster_new, buffer, sizeof(buffer)))
return 0;
 
/* check if this is a free cluster */
if(buffer[0] == (FAT16_CLUSTER_FREE & 0xff) &&
buffer[1] == ((FAT16_CLUSTER_FREE >> 8) & 0xff))
{
/* allocate cluster */
if(count_left == count)
{
buffer[0] = FAT16_CLUSTER_LAST_MAX & 0xff;
buffer[1] = (FAT16_CLUSTER_LAST_MAX >> 8) & 0xff;
}
else
{
buffer[0] = cluster_next & 0xff;
buffer[1] = (cluster_next >> 8) & 0xff;
}
 
if(!device_write(fat_offset + 2 * cluster_new, buffer, sizeof(buffer)))
break;
 
cluster_next = cluster_new;
if(--count_left == 0)
break;
}
}
 
do
{
if(count_left > 0)
break;
 
/* We allocated a new cluster chain. Now join
* it with the existing one.
*/
if(cluster_num >= 2)
{
buffer[0] = cluster_next & 0xff;
buffer[1] = (cluster_next >> 8) & 0xff;
if(!device_write(fat_offset + 2 * cluster_num, buffer, sizeof(buffer)))
break;
}
 
return cluster_next;
 
} while(0);
 
/* No space left on device or writing error.
* Free up all clusters already allocated.
*/
fat16_free_clusters(fs, cluster_next);
 
return 0;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Frees a cluster chain, or a part thereof.
*
* Marks the specified cluster and all clusters which are sequentially
* referenced by it as free. They may then be used again for future
* file allocations.
*
* \note If this function is used for freeing just a part of a cluster
* chain, the new end of the chain is not correctly terminated
* within the FAT. Use fat16_terminate_clusters() instead.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] cluster_num The starting cluster of the chain which to free.
* \returns 0 on failure, 1 on success.
* \see fat16_terminate_clusters
*/
uint8_t fat16_free_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num)
{
#if FAT16_WRITE_SUPPORT
if(!fs || cluster_num < 2)
return 0;
 
uint32_t fat_offset = fs->header.fat_offset;
uint8_t buffer[2];
while(cluster_num)
{
if(!fs->partition->device_read(fat_offset + 2 * cluster_num, buffer, 2))
return 0;
 
/* get next cluster of current cluster before freeing current cluster */
uint16_t cluster_num_next = ((uint16_t) buffer[0]) |
((uint16_t) buffer[1] << 8);
 
if(cluster_num_next == FAT16_CLUSTER_FREE)
return 1;
if(cluster_num_next == FAT16_CLUSTER_BAD ||
(cluster_num_next >= FAT16_CLUSTER_RESERVED_MIN &&
cluster_num_next <= FAT16_CLUSTER_RESERVED_MAX
)
)
return 0;
if(cluster_num_next >= FAT16_CLUSTER_LAST_MIN && cluster_num_next <= FAT16_CLUSTER_LAST_MAX)
cluster_num_next = 0;
 
/* free cluster */
buffer[0] = FAT16_CLUSTER_FREE & 0xff;
buffer[1] = (FAT16_CLUSTER_FREE >> 8) & 0xff;
fs->partition->device_write(fat_offset + 2 * cluster_num, buffer, 2);
 
/* We continue in any case here, even if freeing the cluster failed.
* The cluster is lost, but maybe we can still free up some later ones.
*/
 
cluster_num = cluster_num_next;
}
 
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Frees a part of a cluster chain and correctly terminates the rest.
*
* Marks the specified cluster as the new end of a cluster chain and
* frees all following clusters.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] cluster_num The new end of the cluster chain.
* \returns 0 on failure, 1 on success.
* \see fat16_free_clusters
*/
uint8_t fat16_terminate_clusters(const struct fat16_fs_struct* fs, uint16_t cluster_num)
{
#if FAT16_WRITE_SUPPORT
if(!fs || cluster_num < 2)
return 0;
 
/* fetch next cluster before overwriting the cluster entry */
uint16_t cluster_num_next = fat16_get_next_cluster(fs, cluster_num);
 
/* mark cluster as the last one */
uint8_t buffer[2];
buffer[0] = FAT16_CLUSTER_LAST_MAX & 0xff;
buffer[1] = (FAT16_CLUSTER_LAST_MAX >> 8) & 0xff;
if(!fs->partition->device_write(fs->header.fat_offset + 2 * cluster_num, buffer, 2))
return 0;
 
/* free remaining clusters */
if(cluster_num_next)
return fat16_free_clusters(fs, cluster_num_next);
else
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Clears a single cluster.
*
* The complete cluster is filled with zeros.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] cluster_num The cluster to clear.
* \returns 0 on failure, 1 on success.
*/
uint8_t fat16_clear_cluster(const struct fat16_fs_struct* fs, uint16_t cluster_num)
{
#if FAT16_WRITE_SUPPORT
if(cluster_num < 2)
return 0;
 
uint32_t cluster_offset = fs->header.cluster_zero_offset +
(uint32_t) (cluster_num - 2) * fs->header.cluster_size;
uint8_t zero[16];
return fs->partition->device_write_interval(cluster_offset,
zero,
fs->header.cluster_size,
fat16_clear_cluster_callback,
0
);
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Callback function for clearing a cluster.
*/
uint16_t fat16_clear_cluster_callback(uint8_t* buffer, uint32_t offset, void* p)
{
#if FAT16_WRITE_SUPPORT
memset(buffer, 0, 16);
return 16;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_file
* Opens a file on a FAT16 filesystem.
*
* \param[in] fs The filesystem on which the file to open lies.
* \param[in] dir_entry The directory entry of the file to open.
* \returns The file handle, or 0 on failure.
* \see fat16_close_file
*/
struct fat16_file_struct* fat16_open_file(struct fat16_fs_struct* fs, const struct fat16_dir_entry_struct* dir_entry)
{
if(!fs || !dir_entry || (dir_entry->attributes & FAT16_ATTRIB_DIR))
return 0;
 
#if USE_DYNAMIC_MEMORY
struct fat16_file_struct* fd = malloc(sizeof(*fd));
if(!fd)
return 0;
#else
struct fat16_file_struct* fd = fat16_file_handlers;
uint8_t i;
for(i = 0; i < FAT16_FILE_COUNT; ++i)
{
if(!fd->fs)
break;
 
++fd;
}
if(i >= FAT16_FILE_COUNT)
return 0;
#endif
memcpy(&fd->dir_entry, dir_entry, sizeof(*dir_entry));
fd->fs = fs;
fd->pos = 0;
fd->pos_cluster = dir_entry->cluster;
 
return fd;
}
 
/**
* \ingroup fat16_file
* Closes a file.
*
* \param[in] fd The file handle of the file to close.
* \see fat16_open_file
*/
void fat16_close_file(struct fat16_file_struct* fd)
{
if(fd)
#if USE_DYNAMIC_MEMORY
free(fd);
#else
fd->fs = 0;
#endif
}
 
/**
* \ingroup fat16_file
* Reads data from a file.
*
* The data requested is read from the current file location.
*
* \param[in] fd The file handle of the file from which to read.
* \param[out] buffer The buffer into which to write.
* \param[in] buffer_len The amount of data to read.
* \returns The number of bytes read, 0 on end of file, or -1 on failure.
* \see fat16_write_file
*/
int16_t fat16_read_file(struct fat16_file_struct* fd, uint8_t* buffer, uint16_t buffer_len)
{
/* check arguments */
if(!fd || !buffer || buffer_len < 1)
return -1;
 
/* determine number of bytes to read */
if(fd->pos + buffer_len > fd->dir_entry.file_size)
buffer_len = fd->dir_entry.file_size - fd->pos;
if(buffer_len == 0)
return 0;
uint16_t cluster_size = fd->fs->header.cluster_size;
uint16_t cluster_num = fd->pos_cluster;
uint16_t buffer_left = buffer_len;
uint16_t first_cluster_offset = fd->pos % cluster_size;
 
/* find cluster in which to start reading */
if(!cluster_num)
{
cluster_num = fd->dir_entry.cluster;
if(!cluster_num)
{
if(!fd->pos)
return 0;
else
return -1;
}
 
if(fd->pos)
{
uint32_t pos = fd->pos;
while(pos >= cluster_size)
{
pos -= cluster_size;
cluster_num = fat16_get_next_cluster(fd->fs, cluster_num);
if(!cluster_num)
return -1;
}
}
}
/* read data */
do
{
/* calculate data size to copy from cluster */
uint32_t cluster_offset = fd->fs->header.cluster_zero_offset +
(uint32_t) (cluster_num - 2) * cluster_size + first_cluster_offset;
uint16_t copy_length = cluster_size - first_cluster_offset;
if(copy_length > buffer_left)
copy_length = buffer_left;
 
/* read data */
if(!fd->fs->partition->device_read(cluster_offset, buffer, copy_length))
return buffer_len - buffer_left;
 
/* calculate new file position */
buffer += copy_length;
buffer_left -= copy_length;
fd->pos += copy_length;
 
if(first_cluster_offset + copy_length >= cluster_size)
{
/* we are on a cluster boundary, so get the next cluster */
if((cluster_num = fat16_get_next_cluster(fd->fs, cluster_num)))
{
first_cluster_offset = 0;
}
else
{
fd->pos_cluster = 0;
return buffer_len - buffer_left;
}
}
 
fd->pos_cluster = cluster_num;
 
} while(buffer_left > 0); /* check if we are done */
 
return buffer_len;
}
 
/**
* \ingroup fat16_file
* Writes data to a file.
*
* The data is written to the current file location.
*
* \param[in] fd The file handle of the file to which to write.
* \param[in] buffer The buffer from which to read the data to be written.
* \param[in] buffer_len The amount of data to write.
* \returns The number of bytes written, 0 on disk full, or -1 on failure.
* \see fat16_read_file
*/
int16_t fat16_write_file(struct fat16_file_struct* fd, const uint8_t* buffer, uint16_t buffer_len)
{
#if FAT16_WRITE_SUPPORT
/* check arguments */
if(!fd || !buffer || buffer_len < 1)
return -1;
if(fd->pos > fd->dir_entry.file_size)
return -1;
 
uint16_t cluster_size = fd->fs->header.cluster_size;
uint16_t cluster_num = fd->pos_cluster;
uint16_t buffer_left = buffer_len;
uint16_t first_cluster_offset = fd->pos % cluster_size;
 
/* find cluster in which to start writing */
if(!cluster_num)
{
cluster_num = fd->dir_entry.cluster;
if(!cluster_num)
{
if(!fd->pos)
{
/* empty file */
fd->dir_entry.cluster = cluster_num = fat16_append_clusters(fd->fs, 0, 1);
if(!cluster_num)
return -1;
}
else
{
return -1;
}
}
 
if(fd->pos)
{
uint32_t pos = fd->pos;
uint16_t cluster_num_next;
while(pos >= cluster_size)
{
pos -= cluster_size;
cluster_num_next = fat16_get_next_cluster(fd->fs, cluster_num);
if(!cluster_num_next && pos == 0)
/* the file exactly ends on a cluster boundary, and we append to it */
cluster_num_next = fat16_append_clusters(fd->fs, cluster_num, 1);
if(!cluster_num_next)
return -1;
 
cluster_num = cluster_num_next;
}
}
}
/* write data */
do
{
/* calculate data size to write to cluster */
uint32_t cluster_offset = fd->fs->header.cluster_zero_offset +
(uint32_t) (cluster_num - 2) * cluster_size + first_cluster_offset;
uint16_t write_length = cluster_size - first_cluster_offset;
if(write_length > buffer_left)
write_length = buffer_left;
 
/* write data which fits into the current cluster */
if(!fd->fs->partition->device_write(cluster_offset, buffer, write_length))
break;
 
/* calculate new file position */
buffer += write_length;
buffer_left -= write_length;
fd->pos += write_length;
 
if(first_cluster_offset + write_length >= cluster_size)
{
/* we are on a cluster boundary, so get the next cluster */
uint16_t cluster_num_next = fat16_get_next_cluster(fd->fs, cluster_num);
if(!cluster_num_next && buffer_left > 0)
/* we reached the last cluster, append a new one */
cluster_num_next = fat16_append_clusters(fd->fs, cluster_num, 1);
if(!cluster_num_next)
{
fd->pos_cluster = 0;
break;
}
 
cluster_num = cluster_num_next;
first_cluster_offset = 0;
}
 
fd->pos_cluster = cluster_num;
 
} while(buffer_left > 0); /* check if we are done */
 
/* update directory entry */
if(fd->pos > fd->dir_entry.file_size)
{
uint32_t size_old = fd->dir_entry.file_size;
 
/* update file size */
fd->dir_entry.file_size = fd->pos;
/* write directory entry */
if(!fat16_write_dir_entry(fd->fs, &fd->dir_entry))
{
/* We do not return an error here since we actually wrote
* some data to disk. So we calculate the amount of data
* we wrote to disk and which lies within the old file size.
*/
buffer_left = fd->pos - size_old;
fd->pos = size_old;
}
}
 
return buffer_len - buffer_left;
 
#else
return -1;
#endif
}
 
/**
* \ingroup fat16_file
* Repositions the read/write file offset.
*
* Changes the file offset where the next call to fat16_read_file()
* or fat16_write_file() starts reading/writing.
*
* If the new offset is beyond the end of the file, fat16_resize_file()
* is implicitly called, i.e. the file is expanded.
*
* The new offset can be given in different ways determined by
* the \c whence parameter:
* - \b FAT16_SEEK_SET: \c *offset is relative to the beginning of the file.
* - \b FAT16_SEEK_CUR: \c *offset is relative to the current file position.
* - \b FAT16_SEEK_END: \c *offset is relative to the end of the file.
*
* The resulting absolute offset is written to the location the \c offset
* parameter points to.
*
* \param[in] fd The file decriptor of the file on which to seek.
* \param[in,out] offset A pointer to the new offset, as affected by the \c whence
* parameter. The function writes the new absolute offset
* to this location before it returns.
* \param[in] whence Affects the way \c offset is interpreted, see above.
* \returns 0 on failure, 1 on success.
*/
uint8_t fat16_seek_file(struct fat16_file_struct* fd, int32_t* offset, uint8_t whence)
{
if(!fd || !offset)
return 0;
 
uint32_t new_pos = fd->pos;
switch(whence)
{
case FAT16_SEEK_SET:
new_pos = *offset;
break;
case FAT16_SEEK_CUR:
new_pos += *offset;
break;
case FAT16_SEEK_END:
new_pos = fd->dir_entry.file_size + *offset;
break;
default:
return 0;
}
 
if(new_pos > fd->dir_entry.file_size && !fat16_resize_file(fd, new_pos))
return 0;
 
fd->pos = new_pos;
fd->pos_cluster = 0;
 
*offset = new_pos;
return 1;
}
 
/**
* \ingroup fat16_file
* Resizes a file to have a specific size.
*
* Enlarges or shrinks the file pointed to by the file descriptor to have
* exactly the specified size.
*
* If the file is truncated, all bytes having an equal or larger offset
* than the given size are lost. If the file is expanded, the additional
* bytes are allocated.
*
* \note Please be aware that this function just allocates or deallocates disk
* space, it does not explicitely clear it. To avoid data leakage, this
* must be done manually.
*
* \param[in] fd The file decriptor of the file which to resize.
* \param[in] size The new size of the file.
* \returns 0 on failure, 1 on success.
*/
uint8_t fat16_resize_file(struct fat16_file_struct* fd, uint32_t size)
{
#if FAT16_WRITE_SUPPORT
if(!fd)
return 0;
 
uint16_t cluster_num = fd->dir_entry.cluster;
uint16_t cluster_size = fd->fs->header.cluster_size;
uint32_t size_new = size;
 
do
{
if(cluster_num == 0 && size_new == 0)
/* the file stays empty */
break;
 
/* seek to the next cluster as long as we need the space */
while(size_new > cluster_size)
{
/* get next cluster of file */
uint16_t cluster_num_next = fat16_get_next_cluster(fd->fs, cluster_num);
if(cluster_num_next)
{
cluster_num = cluster_num_next;
size_new -= cluster_size;
}
else
{
break;
}
}
 
if(size_new > cluster_size || cluster_num == 0)
{
/* Allocate new cluster chain and append
* it to the existing one, if available.
*/
uint16_t cluster_count = size_new / cluster_size;
if((uint32_t) cluster_count * cluster_size < size_new)
++cluster_count;
uint16_t cluster_new_chain = fat16_append_clusters(fd->fs, cluster_num, cluster_count);
if(!cluster_new_chain)
return 0;
 
if(!cluster_num)
{
cluster_num = cluster_new_chain;
fd->dir_entry.cluster = cluster_num;
}
}
 
/* write new directory entry */
fd->dir_entry.file_size = size;
if(size == 0)
fd->dir_entry.cluster = 0;
if(!fat16_write_dir_entry(fd->fs, &fd->dir_entry))
return 0;
 
if(size == 0)
{
/* free all clusters of file */
fat16_free_clusters(fd->fs, cluster_num);
}
else if(size_new <= cluster_size)
{
/* free all clusters no longer needed */
fat16_terminate_clusters(fd->fs, cluster_num);
}
 
} while(0);
 
/* correct file position */
if(size < fd->pos)
{
fd->pos = size;
fd->pos_cluster = 0;
}
 
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_dir
* Opens a directory.
*
* \param[in] fs The filesystem on which the directory to open resides.
* \param[in] dir_entry The directory entry which stands for the directory to open.
* \returns An opaque directory descriptor on success, 0 on failure.
* \see fat16_close_dir
*/
struct fat16_dir_struct* fat16_open_dir(struct fat16_fs_struct* fs, const struct fat16_dir_entry_struct* dir_entry)
{
if(!fs || !dir_entry || !(dir_entry->attributes & FAT16_ATTRIB_DIR))
return 0;
 
#if USE_DYNAMIC_MEMORY
struct fat16_dir_struct* dd = malloc(sizeof(*dd));
if(!dd)
return 0;
#else
struct fat16_dir_struct* dd = fat16_dir_handlers;
uint8_t i;
for(i = 0; i < FAT16_DIR_COUNT; ++i)
{
if(!dd->fs)
break;
 
++dd;
}
if(i >= FAT16_DIR_COUNT)
return 0;
#endif
memcpy(&dd->dir_entry, dir_entry, sizeof(*dir_entry));
dd->fs = fs;
dd->entry_next = 0;
 
return dd;
}
 
/**
* \ingroup fat16_dir
* Closes a directory descriptor.
*
* This function destroys a directory descriptor which was
* previously obtained by calling fat16_open_dir(). When this
* function returns, the given descriptor will be invalid.
*
* \param[in] dd The directory descriptor to close.
* \see fat16_open_dir
*/
void fat16_close_dir(struct fat16_dir_struct* dd)
{
if(dd)
#if USE_DYNAMIC_MEMORY
free(dd);
#else
dd->fs = 0;
#endif
}
 
/**
* \ingroup fat16_dir
* Reads the next directory entry contained within a parent directory.
*
* \param[in] dd The descriptor of the parent directory from which to read the entry.
* \param[out] dir_entry Pointer to a buffer into which to write the directory entry information.
* \returns 0 on failure, 1 on success.
* \see fat16_reset_dir
*/
uint8_t fat16_read_dir(struct fat16_dir_struct* dd, struct fat16_dir_entry_struct* dir_entry)
{
if(!dd || !dir_entry)
return 0;
 
if(dd->dir_entry.cluster == 0)
{
/* read entry from root directory */
if(fat16_read_root_dir_entry(dd->fs, dd->entry_next, dir_entry))
{
++dd->entry_next;
return 1;
}
}
else
{
/* read entry from a subdirectory */
if(fat16_read_sub_dir_entry(dd->fs, dd->entry_next, &dd->dir_entry, dir_entry))
{
++dd->entry_next;
return 1;
}
}
 
/* restart reading */
dd->entry_next = 0;
 
return 0;
}
 
/**
* \ingroup fat16_dir
* Resets a directory handle.
*
* Resets the directory handle such that reading restarts
* with the first directory entry.
*
* \param[in] dd The directory handle to reset.
* \returns 0 on failure, 1 on success.
* \see fat16_read_dir
*/
uint8_t fat16_reset_dir(struct fat16_dir_struct* dd)
{
if(!dd)
return 0;
 
dd->entry_next = 0;
return 1;
}
 
/**
* \ingroup fat16_fs
* Searches for space where to store a directory entry.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] dir_entry The directory entry for which to search space.
* \returns 0 on failure, a device offset on success.
*/
uint32_t fat16_find_offset_for_dir_entry(const struct fat16_fs_struct* fs, const struct fat16_dir_struct* parent, const struct fat16_dir_entry_struct* dir_entry)
{
#if FAT16_WRITE_SUPPORT
if(!fs || !dir_entry)
return 0;
 
/* search for a place where to write the directory entry to disk */
uint8_t free_dir_entries_needed = (strlen(dir_entry->long_name) + 12) / 13 + 1;
uint8_t free_dir_entries_found = 0;
uint16_t cluster_num = parent->dir_entry.cluster;
uint32_t dir_entry_offset = 0;
uint32_t offset = 0;
uint32_t offset_to = 0;
 
if(cluster_num == 0)
{
/* we read/write from the root directory entry */
offset = fs->header.root_dir_offset;
offset_to = fs->header.cluster_zero_offset;
dir_entry_offset = offset;
}
while(1)
{
if(offset == offset_to)
{
if(cluster_num == 0)
/* We iterated through the whole root directory entry
* and could not find enough space for the directory entry.
*/
return 0;
 
if(offset)
{
/* We reached a cluster boundary and have to
* switch to the next cluster.
*/
 
uint16_t cluster_next = fat16_get_next_cluster(fs, cluster_num);
if(!cluster_next)
{
cluster_next = fat16_append_clusters(fs, cluster_num, 1);
if(!cluster_next)
return 0;
 
/* we appended a new cluster and know it is free */
dir_entry_offset = fs->header.cluster_zero_offset +
(uint32_t) (cluster_next - 2) * fs->header.cluster_size;
 
/* clear cluster to avoid garbage directory entries */
fat16_clear_cluster(fs, cluster_next);
 
break;
}
cluster_num = cluster_next;
}
 
offset = fs->header.cluster_zero_offset +
(uint32_t) (cluster_num - 2) * fs->header.cluster_size;
offset_to = offset + fs->header.cluster_size;
dir_entry_offset = offset;
free_dir_entries_found = 0;
}
/* read next lfn or 8.3 entry */
uint8_t first_char;
if(!fs->partition->device_read(offset, &first_char, sizeof(first_char)))
return 0;
 
/* check if we found a free directory entry */
if(first_char == FAT16_DIRENTRY_DELETED || !first_char)
{
/* check if we have the needed number of available entries */
++free_dir_entries_found;
if(free_dir_entries_found >= free_dir_entries_needed)
break;
 
offset += 32;
}
else
{
offset += 32;
dir_entry_offset = offset;
free_dir_entries_found = 0;
}
}
 
return dir_entry_offset;
 
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_fs
* Writes a directory entry to disk.
*
* \note The file name is not checked for invalid characters.
*
* \note The generation of the short 8.3 file name is quite
* simple. The first eight characters are used for the filename.
* The extension, if any, is made up of the first three characters
* following the last dot within the long filename. If the
* filename (without the extension) is longer than eight characters,
* the lower byte of the cluster number replaces the last two
* characters to avoid name clashes. In any other case, it is your
* responsibility to avoid name clashes.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] dir_entry The directory entry to write.
* \returns 0 on failure, 1 on success.
*/
uint8_t fat16_write_dir_entry(const struct fat16_fs_struct* fs, struct fat16_dir_entry_struct* dir_entry)
{
#if FAT16_WRITE_SUPPORT
if(!fs || !dir_entry)
return 0;
#if FAT16_DATETIME_SUPPORT
{
uint16_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t min;
uint8_t sec;
 
fat16_get_datetime(&year, &month, &day, &hour, &min, &sec);
fat16_set_file_modification_date(dir_entry, year, month, day);
fat16_set_file_modification_time(dir_entry, hour, min, sec);
}
#endif
 
device_write_t device_write = fs->partition->device_write;
uint32_t offset = dir_entry->entry_offset;
const char* name = dir_entry->long_name;
uint8_t name_len = strlen(name);
uint8_t lfn_entry_count = (name_len + 12) / 13;
uint8_t buffer[32];
 
/* write 8.3 entry */
 
/* generate 8.3 file name */
memset(&buffer[0], ' ', 11);
char* name_ext = strrchr(name, '.');
if(name_ext && *++name_ext)
{
uint8_t name_ext_len = strlen(name_ext);
name_len -= name_ext_len + 1;
 
if(name_ext_len > 3)
name_ext_len = 3;
memcpy(&buffer[8], name_ext, name_ext_len);
}
if(name_len <= 8)
{
memcpy(buffer, name, name_len);
 
/* For now, we create lfn entries for all files,
* except the "." and ".." directory references.
* This is to avoid difficulties with capitalization,
* as 8.3 filenames allow uppercase letters only.
*
* Theoretically it would be possible to leave
* the 8.3 entry alone if the basename and the
* extension have no mixed capitalization.
*/
if(name[0] == '.' &&
((name[1] == '.' && name[2] == '\0') ||
name[1] == '\0')
)
lfn_entry_count = 0;
}
else
{
memcpy(buffer, name, 8);
 
/* Minimize 8.3 name clashes by appending
* the lower byte of the cluster number.
*/
uint8_t num = dir_entry->cluster & 0xff;
 
buffer[6] = (num < 0xa0) ? ('0' + (num >> 4)) : ('a' + (num >> 4));
num &= 0x0f;
buffer[7] = (num < 0x0a) ? ('0' + num) : ('a' + num);
}
if(buffer[0] == FAT16_DIRENTRY_DELETED)
buffer[0] = 0x05;
 
/* fill directory entry buffer */
memset(&buffer[11], 0, sizeof(buffer) - 11);
buffer[0x0b] = dir_entry->attributes;
#if FAT16_DATETIME_SUPPORT
buffer[0x16] = (dir_entry->modification_time >> 0) & 0xff;
buffer[0x17] = (dir_entry->modification_time >> 8) & 0xff;
buffer[0x18] = (dir_entry->modification_date >> 0) & 0xff;
buffer[0x19] = (dir_entry->modification_date >> 8) & 0xff;
#endif
buffer[0x1a] = (dir_entry->cluster >> 0) & 0xff;
buffer[0x1b] = (dir_entry->cluster >> 8) & 0xff;
buffer[0x1c] = (dir_entry->file_size >> 0) & 0xff;
buffer[0x1d] = (dir_entry->file_size >> 8) & 0xff;
buffer[0x1e] = (dir_entry->file_size >> 16) & 0xff;
buffer[0x1f] = (dir_entry->file_size >> 24) & 0xff;
 
/* write to disk */
if(!device_write(offset + (uint32_t) lfn_entry_count * 32, buffer, sizeof(buffer)))
return 0;
/* calculate checksum of 8.3 name */
uint8_t checksum = buffer[0];
for(uint8_t i = 1; i < 11; ++i)
checksum = ((checksum >> 1) | (checksum << 7)) + buffer[i];
/* write lfn entries */
for(uint8_t lfn_entry = lfn_entry_count; lfn_entry > 0; --lfn_entry)
{
memset(buffer, 0xff, sizeof(buffer));
/* set file name */
const char* long_name_curr = name + (lfn_entry - 1) * 13;
uint8_t i = 1;
while(i < 0x1f)
{
buffer[i++] = *long_name_curr;
buffer[i++] = 0;
 
switch(i)
{
case 0x0b:
i = 0x0e;
break;
case 0x1a:
i = 0x1c;
break;
}
 
if(!*long_name_curr++)
break;
}
/* set index of lfn entry */
buffer[0x00] = lfn_entry;
if(lfn_entry == lfn_entry_count)
buffer[0x00] |= FAT16_DIRENTRY_LFNLAST;
 
/* mark as lfn entry */
buffer[0x0b] = 0x0f;
 
/* set 8.3 checksum */
buffer[0x0d] = checksum;
 
/* clear reserved bytes */
buffer[0x0c] = 0;
buffer[0x1a] = 0;
buffer[0x1b] = 0;
 
/* write entry */
device_write(offset, buffer, sizeof(buffer));
offset += sizeof(buffer);
}
return 1;
 
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_file
* Creates a file.
*
* Creates a file and obtains the directory entry of the
* new file. If the file to create already exists, the
* directory entry of the existing file will be returned
* within the dir_entry parameter.
*
* \note The file name is not checked for invalid characters.
*
* \note The generation of the short 8.3 file name is quite
* simple. The first eight characters are used for the filename.
* The extension, if any, is made up of the first three characters
* following the last dot within the long filename. If the
* filename (without the extension) is longer than eight characters,
* the lower byte of the cluster number replaces the last two
* characters to avoid name clashes. In any other case, it is your
* responsibility to avoid name clashes.
*
* \param[in] parent The handle of the directory in which to create the file.
* \param[in] file The name of the file to create.
* \param[out] dir_entry The directory entry to fill for the new file.
* \returns 0 on failure, 1 on success.
* \see fat16_delete_file
*/
uint8_t fat16_create_file(struct fat16_dir_struct* parent, const char* file, struct fat16_dir_entry_struct* dir_entry)
{
#if FAT16_WRITE_SUPPORT
if(!parent || !file || !file[0] || !dir_entry)
return 0;
 
/* check if the file already exists */
while(1)
{
if(!fat16_read_dir(parent, dir_entry))
break;
 
if(strcmp(file, dir_entry->long_name) == 0)
{
fat16_reset_dir(parent);
return 0;
}
}
 
struct fat16_fs_struct* fs = parent->fs;
 
/* prepare directory entry with values already known */
memset(dir_entry, 0, sizeof(*dir_entry));
strncpy(dir_entry->long_name, file, sizeof(dir_entry->long_name) - 1);
 
/* find place where to store directory entry */
if(!(dir_entry->entry_offset = fat16_find_offset_for_dir_entry(fs, parent, dir_entry)))
return 0;
/* write directory entry to disk */
if(!fat16_write_dir_entry(fs, dir_entry))
return 0;
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_file
* Deletes a file or directory.
*
* If a directory is deleted without first deleting its
* subdirectories and files, disk space occupied by these
* files will get wasted as there is no chance to release
* it and mark it as free.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] dir_entry The directory entry of the file to delete.
* \returns 0 on failure, 1 on success.
* \see fat16_create_file
*/
uint8_t fat16_delete_file(struct fat16_fs_struct* fs, struct fat16_dir_entry_struct* dir_entry)
{
#if FAT16_WRITE_SUPPORT
if(!fs || !dir_entry)
return 0;
 
/* get offset of the file's directory entry */
uint32_t dir_entry_offset = dir_entry->entry_offset;
if(!dir_entry_offset)
return 0;
 
uint8_t buffer[12];
while(1)
{
/* read directory entry */
if(!fs->partition->device_read(dir_entry_offset, buffer, sizeof(buffer)))
return 0;
/* mark the directory entry as deleted */
buffer[0] = FAT16_DIRENTRY_DELETED;
/* write back entry */
if(!fs->partition->device_write(dir_entry_offset, buffer, sizeof(buffer)))
return 0;
 
/* check if we deleted the whole entry */
if(buffer[11] != 0x0f)
break;
 
dir_entry_offset += 32;
}
 
/* We deleted the directory entry. The next thing to do is
* marking all occupied clusters as free.
*/
return (dir_entry->cluster == 0 || fat16_free_clusters(fs, dir_entry->cluster));
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_dir
* Creates a directory.
*
* Creates a directory and obtains its directory entry.
* If the directory to create already exists, its
* directory entry will be returned within the dir_entry
* parameter.
*
* \note The notes which apply to fat16_create_file also
* apply to this function.
*
* \param[in] parent The handle of the parent directory of the new directory.
* \param[in] dir The name of the directory to create.
* \param[out] dir_entry The directory entry to fill for the new directory.
* \returns 0 on failure, 1 on success.
* \see fat16_delete_dir
*/
uint8_t fat16_create_dir(struct fat16_dir_struct* parent, const char* dir, struct fat16_dir_entry_struct* dir_entry)
{
#if FAT16_WRITE_SUPPORT
if(!parent || !dir || !dir[0] || !dir_entry)
return 0;
 
/* check if the file or directory already exists */
while(1)
{
if(!fat16_read_dir(parent, dir_entry))
break;
 
if(strcmp(dir, dir_entry->long_name) == 0)
{
fat16_reset_dir(parent);
return 0;
}
}
 
struct fat16_fs_struct* fs = parent->fs;
 
/* allocate cluster which will hold directory entries */
uint16_t dir_cluster = fat16_append_clusters(fs, 0, 1);
if(!dir_cluster)
return 0;
 
/* clear cluster to prevent bogus directory entries */
fat16_clear_cluster(fs, dir_cluster);
memset(dir_entry, 0, sizeof(*dir_entry));
dir_entry->attributes = FAT16_ATTRIB_DIR;
 
/* create "." directory self reference */
dir_entry->entry_offset = fs->header.cluster_zero_offset +
(uint32_t) (dir_cluster - 2) * fs->header.cluster_size;
dir_entry->long_name[0] = '.';
dir_entry->cluster = dir_cluster;
if(!fat16_write_dir_entry(fs, dir_entry))
{
fat16_free_clusters(fs, dir_cluster);
return 0;
}
 
/* create ".." parent directory reference */
dir_entry->entry_offset += 32;
dir_entry->long_name[1] = '.';
dir_entry->cluster = parent->dir_entry.cluster;
if(!fat16_write_dir_entry(fs, dir_entry))
{
fat16_free_clusters(fs, dir_cluster);
return 0;
}
 
/* fill directory entry */
strncpy(dir_entry->long_name, dir, sizeof(dir_entry->long_name) - 1);
dir_entry->cluster = dir_cluster;
 
/* find place where to store directory entry */
if(!(dir_entry->entry_offset = fat16_find_offset_for_dir_entry(fs, parent, dir_entry)))
{
fat16_free_clusters(fs, dir_cluster);
return 0;
}
 
/* write directory to disk */
if(!fat16_write_dir_entry(fs, dir_entry))
{
fat16_free_clusters(fs, dir_cluster);
return 0;
}
 
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup fat16_dir
* Deletes a directory.
*
* This is just a synonym for fat16_delete_file().
* If a directory is deleted without first deleting its
* subdirectories and files, disk space occupied by these
* files will get wasted as there is no chance to release
* it and mark it as free.
*
* \param[in] fs The filesystem on which to operate.
* \param[in] dir_entry The directory entry of the directory to delete.
* \returns 0 on failure, 1 on success.
* \see fat16_create_dir
*/
#ifdef DOXYGEN
uint8_t fat16_delete_dir(struct fat16_fs_struct* fs, struct fat16_dir_entry_struct* dir_entry);
#endif
 
/**
* \ingroup fat16_file
* Returns the modification date of a file.
*
* \param[in] dir_entry The directory entry of which to return the modification date.
* \param[out] year The year the file was last modified.
* \param[out] month The month the file was last modified.
* \param[out] day The day the file was last modified.
*/
void fat16_get_file_modification_date(const struct fat16_dir_entry_struct* dir_entry, uint16_t* year, uint8_t* month, uint8_t* day)
{
#if FAT16_DATETIME_SUPPORT
if(!dir_entry)
return;
 
*year = 1980 + ((dir_entry->modification_date >> 9) & 0x7f);
*month = (dir_entry->modification_date >> 5) & 0x0f;
*day = (dir_entry->modification_date >> 0) & 0x1f;
#endif
}
 
/**
* \ingroup fat16_file
* Returns the modification time of a file.
*
* \param[in] dir_entry The directory entry of which to return the modification time.
* \param[out] hour The hour the file was last modified.
* \param[out] min The min the file was last modified.
* \param[out] sec The sec the file was last modified.
*/
void fat16_get_file_modification_time(const struct fat16_dir_entry_struct* dir_entry, uint8_t* hour, uint8_t* min, uint8_t* sec)
{
#if FAT16_DATETIME_SUPPORT
if(!dir_entry)
return;
 
*hour = (dir_entry->modification_time >> 11) & 0x1f;
*min = (dir_entry->modification_time >> 5) & 0x3f;
*sec = ((dir_entry->modification_time >> 0) & 0x1f) * 2;
#endif
}
 
/**
* \ingroup fat16_file
* Sets the modification time of a date.
*
* \param[in] dir_entry The directory entry for which to set the modification date.
* \param[in] year The year the file was last modified.
* \param[in] month The month the file was last modified.
* \param[in] day The day the file was last modified.
*/
void fat16_set_file_modification_date(struct fat16_dir_entry_struct* dir_entry, uint16_t year, uint8_t month, uint8_t day)
{
#if FAT16_WRITE_SUPPORT
#if FAT16_DATETIME_SUPPORT
if(!dir_entry)
return;
 
dir_entry->modification_date =
((year - 1980) << 9) |
((uint16_t) month << 5) |
((uint16_t) day << 0);
#endif
#endif
}
 
/**
* \ingroup fat16_file
* Sets the modification time of a file.
*
* \param[in] dir_entry The directory entry for which to set the modification time.
* \param[in] hour The year the file was last modified.
* \param[in] min The month the file was last modified.
* \param[in] sec The day the file was last modified.
*/
void fat16_set_file_modification_time(struct fat16_dir_entry_struct* dir_entry, uint8_t hour, uint8_t min, uint8_t sec)
{
#if FAT16_WRITE_SUPPORT
#if FAT16_DATETIME_SUPPORT
if(!dir_entry)
return;
 
dir_entry->modification_time =
((uint16_t) hour << 11) |
((uint16_t) min << 5) |
((uint16_t) sec >> 1) ;
#endif
#endif
}
 
/**
* \ingroup fat16_fs
* Returns the amount of total storage capacity of the filesystem in bytes.
*
* \param[in] fs The filesystem on which to operate.
* \returns 0 on failure, the filesystem size in bytes otherwise.
*/
uint32_t fat16_get_fs_size(const struct fat16_fs_struct* fs)
{
if(!fs)
return 0;
 
return (fs->header.fat_size / 2 - 2) * fs->header.cluster_size;
}
 
/**
* \ingroup fat16_fs
* Returns the amount of free storage capacity on the filesystem in bytes.
*
* \note As the FAT16 filesystem is cluster based, this function does not
* return continuous values but multiples of the cluster size.
*
* \param[in] fs The filesystem on which to operate.
* \returns 0 on failure, the free filesystem space in bytes otherwise.
*/
uint32_t fat16_get_fs_free(const struct fat16_fs_struct* fs)
{
if(!fs)
return 0;
 
uint8_t fat[32];
struct fat16_usage_count_callback_arg count_arg;
count_arg.cluster_count = 0;
count_arg.buffer_size = sizeof(fat);
 
uint32_t fat_offset = fs->header.fat_offset;
uint32_t fat_size = fs->header.fat_size;
while(fat_size > 0)
{
uint16_t length = UINT16_MAX - 1;
if(fat_size < length)
length = fat_size;
 
if(!fs->partition->device_read_interval(fat_offset,
fat,
sizeof(fat),
length,
fat16_get_fs_free_callback,
&count_arg
)
)
return 0;
 
fat_offset += length;
fat_size -= length;
}
 
return (uint32_t) count_arg.cluster_count * fs->header.cluster_size;
}
 
/**
* \ingroup fat16_fs
* Callback function used for counting free clusters.
*/
uint8_t fat16_get_fs_free_callback(uint8_t* buffer, uint32_t offset, void* p)
{
struct fat16_usage_count_callback_arg* count_arg = (struct fat16_usage_count_callback_arg*) p;
uint8_t buffer_size = count_arg->buffer_size;
 
for(uint8_t i = 0; i < buffer_size; i += 2)
{
if((((uint16_t) buffer[1] << 8) | ((uint16_t) buffer[0] << 0)) == FAT16_CLUSTER_FREE)
++(count_arg->cluster_count);
 
buffer += 2;
}
 
return 1;
}
 
/Designs/Data_loggers/GPSRL02A/SW/logger/fat16.h
0,0 → 1,121
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef FAT16_H
#define FAT16_H
 
#include "fat16_config.h"
 
#include <stdint.h>
 
/**
* \addtogroup fat16
*
* @{
*/
/**
* \file
* FAT16 header (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* \addtogroup fat16_file
* @{
*/
 
/** The file is read-only. */
#define FAT16_ATTRIB_READONLY (1 << 0)
/** The file is hidden. */
#define FAT16_ATTRIB_HIDDEN (1 << 1)
/** The file is a system file. */
#define FAT16_ATTRIB_SYSTEM (1 << 2)
/** The file is empty and has the volume label as its name. */
#define FAT16_ATTRIB_VOLUME (1 << 3)
/** The file is a directory. */
#define FAT16_ATTRIB_DIR (1 << 4)
/** The file has to be archived. */
#define FAT16_ATTRIB_ARCHIVE (1 << 5)
 
/** The given offset is relative to the beginning of the file. */
#define FAT16_SEEK_SET 0
/** The given offset is relative to the current read/write position. */
#define FAT16_SEEK_CUR 1
/** The given offset is relative to the end of the file. */
#define FAT16_SEEK_END 2
 
/**
* @}
*/
 
struct partition_struct;
struct fat16_fs_struct;
struct fat16_file_struct;
struct fat16_dir_struct;
 
/**
* \ingroup fat16_file
* Describes a directory entry.
*/
struct fat16_dir_entry_struct
{
/** The file's name, truncated to 31 characters. */
char long_name[32];
/** The file's attributes. Mask of the FAT16_ATTRIB_* constants. */
uint8_t attributes;
#if FAT16_DATETIME_SUPPORT
/** Compressed representation of modification time. */
uint16_t modification_time;
/** Compressed representation of modification date. */
uint16_t modification_date;
#endif
/** The cluster in which the file's first byte resides. */
uint16_t cluster;
/** The file's size. */
uint32_t file_size;
/** The total disk offset of this directory entry. */
uint32_t entry_offset;
};
 
struct fat16_fs_struct* fat16_open(struct partition_struct* partition);
void fat16_close(struct fat16_fs_struct* fs);
 
struct fat16_file_struct* fat16_open_file(struct fat16_fs_struct* fs, const struct fat16_dir_entry_struct* dir_entry);
void fat16_close_file(struct fat16_file_struct* fd);
int16_t fat16_read_file(struct fat16_file_struct* fd, uint8_t* buffer, uint16_t buffer_len);
int16_t fat16_write_file(struct fat16_file_struct* fd, const uint8_t* buffer, uint16_t buffer_len);
uint8_t fat16_seek_file(struct fat16_file_struct* fd, int32_t* offset, uint8_t whence);
uint8_t fat16_resize_file(struct fat16_file_struct* fd, uint32_t size);
 
struct fat16_dir_struct* fat16_open_dir(struct fat16_fs_struct* fs, const struct fat16_dir_entry_struct* dir_entry);
void fat16_close_dir(struct fat16_dir_struct* dd);
uint8_t fat16_read_dir(struct fat16_dir_struct* dd, struct fat16_dir_entry_struct* dir_entry);
uint8_t fat16_reset_dir(struct fat16_dir_struct* dd);
 
uint8_t fat16_create_file(struct fat16_dir_struct* parent, const char* file, struct fat16_dir_entry_struct* dir_entry);
uint8_t fat16_delete_file(struct fat16_fs_struct* fs, struct fat16_dir_entry_struct* dir_entry);
uint8_t fat16_create_dir(struct fat16_dir_struct* parent, const char* dir, struct fat16_dir_entry_struct* dir_entry);
#define fat16_delete_dir fat16_delete_file
 
void fat16_get_file_modification_date(const struct fat16_dir_entry_struct* dir_entry, uint16_t* year, uint8_t* month, uint8_t* day);
void fat16_get_file_modification_time(const struct fat16_dir_entry_struct* dir_entry, uint8_t* hour, uint8_t* min, uint8_t* sec);
 
uint8_t fat16_get_dir_entry_of_path(struct fat16_fs_struct* fs, const char* path, struct fat16_dir_entry_struct* dir_entry);
 
uint32_t fat16_get_fs_size(const struct fat16_fs_struct* fs);
uint32_t fat16_get_fs_free(const struct fat16_fs_struct* fs);
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/fat16_config.h
0,0 → 1,84
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef FAT16_CONFIG_H
#define FAT16_CONFIG_G
 
/**
* \addtogroup fat16
*
* @{
*/
/**
* \file
* FAT16 configuration (license: GPLv2 or LGPLv2.1)
*/
 
/**
* \ingroup fat16_config
* Controls FAT16 write support.
*
* Set to 1 to enable FAT16 write support, set to 0 to disable it.
*/
#define FAT16_WRITE_SUPPORT 1
 
/**
* \ingroup fat16_config
* Controls FAT16 date and time support.
*
* Set to 1 to enable FAT16 date and time stamping support.
*/
#define FAT16_DATETIME_SUPPORT 0
 
/**
* \ingroup fat16_config
* Determines the function used for retrieving current date and time.
*
* Define this to the function call which shall be used to retrieve
* current date and time.
*
* \note Used only when FAT16_DATETIME_SUPPORT is 1.
*
* \param[out] year Pointer to a \c uint16_t which receives the current year.
* \param[out] month Pointer to a \c uint8_t which receives the current month.
* \param[out] day Pointer to a \c uint8_t which receives the current day.
* \param[out] hour Pointer to a \c uint8_t which receives the current hour.
* \param[out] min Pointer to a \c uint8_t which receives the current minute.
* \param[out] sec Pointer to a \c uint8_t which receives the current sec.
*/
#define fat16_get_datetime(year, month, day, hour, min, sec) \
get_datetime(year, month, day, hour, min, sec)
/* forward declaration for the above */
void get_datetime(uint16_t* year, uint8_t* month, uint8_t* day, uint8_t* hour, uint8_t* min, uint8_t* sec);
 
/**
* \ingroup fat16_config
* Maximum number of filesystem handles.
*/
#define FAT16_FS_COUNT 1
 
/**
* \ingroup fat16_config
* Maximum number of file handles.
*/
#define FAT16_FILE_COUNT 1
 
/**
* \ingroup fat16_config
* Maximum number of directory handles.
*/
#define FAT16_DIR_COUNT 2
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/main.c
0,0 → 1,475
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
 
#include <string.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include "fat16.h"
#include "fat16_config.h"
#include "partition.h"
#include "sd_raw.h"
#include "sd_raw_config.h"
#include "uart.h"
 
#define DEBUG 1
 
 
static uint8_t read_line(char* buffer, uint8_t buffer_length);
static uint32_t strtolong(const char* str);
static uint8_t find_file_in_dir(struct fat16_fs_struct* fs, struct fat16_dir_struct* dd, const char* name, struct fat16_dir_entry_struct* dir_entry);
static struct fat16_file_struct* open_file_in_dir(struct fat16_fs_struct* fs, struct fat16_dir_struct* dd, const char* name);
static uint8_t print_disk_info(const struct fat16_fs_struct* fs);
 
int main()
{
/* we will just use ordinary idle mode */
set_sleep_mode(SLEEP_MODE_IDLE);
 
/* setup uart */
uart_init();
 
/* setup sd card slot */
if(!sd_raw_init())
{
#if DEBUG
uart_puts_p(PSTR("MMC/SD initialization failed\n"));
#endif
return 1;
}
 
/* open first partition */
struct partition_struct* partition = partition_open(sd_raw_read,
sd_raw_read_interval,
sd_raw_write,
sd_raw_write_interval,
0
);
 
if(!partition)
{
/* If the partition did not open, assume the storage device
* is a "superfloppy", i.e. has no MBR.
*/
partition = partition_open(sd_raw_read,
sd_raw_read_interval,
sd_raw_write,
sd_raw_write_interval,
-1
);
if(!partition)
{
#if DEBUG
uart_puts_p(PSTR("opening partition failed\n"));
#endif
return 1;
}
}
 
/* open file system */
struct fat16_fs_struct* fs = fat16_open(partition);
if(!fs)
{
#if DEBUG
uart_puts_p(PSTR("opening filesystem failed\n"));
#endif
return 1;
}
 
/* open root directory */
struct fat16_dir_entry_struct directory;
fat16_get_dir_entry_of_path(fs, "/", &directory);
 
struct fat16_dir_struct* dd = fat16_open_dir(fs, &directory);
if(!dd)
{
#if DEBUG
uart_puts_p(PSTR("opening root directory failed\n"));
#endif
return 1;
}
/* print some card information as a boot message */
print_disk_info(fs);
 
/* provide a simple shell */
char buffer[20];
char* command = buffer;
 
//!!!KAKL
{
uint8_t n;
while(uart_getc()!='$');
while(uart_getc()!=',');
for(n=0; n<6; n++)
{
buffer[n]=uart_getc();
};
buffer[6]='\0';
}
 
{
struct fat16_dir_entry_struct file_entry;
fat16_create_file(dd, command, &file_entry);
}
 
{
int32_t offset;
 
offset = 0;
while(1)
{
uint8_t znak;
 
struct fat16_file_struct* fd = open_file_in_dir(fs, dd, command);
fat16_seek_file(fd, &offset, FAT16_SEEK_SET);
do
{
znak=uart_getc();
fat16_write_file(fd, (uint8_t*) &znak, 1);
uart_putc(znak);
offset++;
} while ((znak!='\n')&&(znak!='@'));
 
fat16_close_file(fd);
 
if(znak=='@') break;
}
}
 
while(1)
{
/* print prompt */
uart_putc('>');
uart_putc(' ');
 
/* read command */
if(read_line(command, sizeof(buffer)) < 1)
continue;
 
/* execute command */
if(strncmp_P(command, PSTR("cd "), 3) == 0)
{
command += 3;
if(command[0] == '\0')
continue;
 
/* change directory */
struct fat16_dir_entry_struct subdir_entry;
if(find_file_in_dir(fs, dd, command, &subdir_entry))
{
struct fat16_dir_struct* dd_new = fat16_open_dir(fs, &subdir_entry);
if(dd_new)
{
fat16_close_dir(dd);
dd = dd_new;
continue;
}
}
 
uart_puts_p(PSTR("directory not found: "));
uart_puts(command);
uart_putc('\n');
}
else if(strcmp_P(command, PSTR("ls")) == 0)
{
/* print directory listing */
struct fat16_dir_entry_struct dir_entry;
while(fat16_read_dir(dd, &dir_entry))
{
uint8_t spaces = sizeof(dir_entry.long_name) - strlen(dir_entry.long_name) + 4;
 
uart_puts(dir_entry.long_name);
uart_putc(dir_entry.attributes & FAT16_ATTRIB_DIR ? '/' : ' ');
while(spaces--)
uart_putc(' ');
uart_putdw_dec(dir_entry.file_size);
uart_putc('\n');
}
}
else if(strncmp_P(command, PSTR("cat "), 4) == 0)
{
command += 4;
if(command[0] == '\0')
continue;
/* search file in current directory and open it */
struct fat16_file_struct* fd = open_file_in_dir(fs, dd, command);
if(!fd)
{
uart_puts_p(PSTR("error opening "));
uart_puts(command);
uart_putc('\n');
continue;
}
 
/* print file contents */
uint8_t buffer[8];
uint32_t offset = 0;
while(fat16_read_file(fd, buffer, sizeof(buffer)) > 0)
{
uart_putdw_hex(offset);
uart_putc(':');
for(uint8_t i = 0; i < 8; ++i)
{
uart_putc(' ');
uart_putc_hex(buffer[i]);
}
uart_putc('\n');
offset += 8;
}
 
fat16_close_file(fd);
}
else if(strcmp_P(command, PSTR("disk")) == 0)
{
if(!print_disk_info(fs))
uart_puts_p(PSTR("error reading disk info\n"));
}
#if FAT16_WRITE_SUPPORT
else if(strncmp_P(command, PSTR("rm "), 3) == 0)
{
command += 3;
if(command[0] == '\0')
continue;
struct fat16_dir_entry_struct file_entry;
if(find_file_in_dir(fs, dd, command, &file_entry))
{
if(fat16_delete_file(fs, &file_entry))
continue;
}
 
uart_puts_p(PSTR("error deleting file: "));
uart_puts(command);
uart_putc('\n');
}
else if(strncmp_P(command, PSTR("touch "), 6) == 0)
{
command += 6;
if(command[0] == '\0')
continue;
 
struct fat16_dir_entry_struct file_entry;
if(!fat16_create_file(dd, command, &file_entry))
{
uart_puts_p(PSTR("error creating file: "));
uart_puts(command);
uart_putc('\n');
}
}
else if(strncmp_P(command, PSTR("write "), 6) == 0)
{
command += 6;
if(command[0] == '\0')
continue;
 
char* offset_value = command;
while(*offset_value != ' ' && *offset_value != '\0')
++offset_value;
 
if(*offset_value == ' ')
*offset_value++ = '\0';
else
continue;
 
/* search file in current directory and open it */
struct fat16_file_struct* fd = open_file_in_dir(fs, dd, command);
if(!fd)
{
uart_puts_p(PSTR("error opening "));
uart_puts(command);
uart_putc('\n');
continue;
}
 
int32_t offset = strtolong(offset_value);
if(!fat16_seek_file(fd, &offset, FAT16_SEEK_SET))
{
uart_puts_p(PSTR("error seeking on "));
uart_puts(command);
uart_putc('\n');
 
fat16_close_file(fd);
continue;
}
 
/* read text from the shell and write it to the file */
uint8_t data_len;
while(1)
{
/* give a different prompt */
uart_putc('<');
uart_putc(' ');
 
/* read one line of text */
data_len = read_line(buffer, sizeof(buffer));
if(!data_len)
break;
 
/* write text to file */
if(fat16_write_file(fd, (uint8_t*) buffer, data_len) != data_len)
{
uart_puts_p(PSTR("error writing to file\n"));
break;
}
}
 
fat16_close_file(fd);
}
else if(strncmp_P(command, PSTR("mkdir "), 6) == 0)
{
command += 6;
if(command[0] == '\0')
continue;
 
struct fat16_dir_entry_struct dir_entry;
if(!fat16_create_dir(dd, command, &dir_entry))
{
uart_puts_p(PSTR("error creating directory: "));
uart_puts(command);
uart_putc('\n');
}
}
#endif
#if SD_RAW_WRITE_BUFFERING
else if(strcmp_P(command, PSTR("sync")) == 0)
{
if(!sd_raw_sync())
uart_puts_p(PSTR("error syncing disk\n"));
}
#endif
else
{
uart_puts_p(PSTR("unknown command: "));
uart_puts(command);
uart_putc('\n');
}
}
 
/* close file system */
fat16_close(fs);
 
/* close partition */
partition_close(partition);
return 0;
}
 
uint8_t read_line(char* buffer, uint8_t buffer_length)
{
memset(buffer, 0, buffer_length);
 
uint8_t read_length = 0;
while(read_length < buffer_length - 1)
{
uint8_t c = uart_getc();
 
if(c == 0x08 || c == 0x7f)
{
if(read_length < 1)
continue;
 
--read_length;
buffer[read_length] = '\0';
 
uart_putc(0x08);
uart_putc(' ');
uart_putc(0x08);
 
continue;
}
 
uart_putc(c);
 
if(c == '\n')
{
buffer[read_length] = '\0';
break;
}
else
{
buffer[read_length] = c;
++read_length;
}
}
 
return read_length;
}
 
uint32_t strtolong(const char* str)
{
uint32_t l = 0;
while(*str >= '0' && *str <= '9')
l = l * 10 + (*str++ - '0');
 
return l;
}
 
uint8_t find_file_in_dir(struct fat16_fs_struct* fs, struct fat16_dir_struct* dd, const char* name, struct fat16_dir_entry_struct* dir_entry)
{
while(fat16_read_dir(dd, dir_entry))
{
if(strcmp(dir_entry->long_name, name) == 0)
{
fat16_reset_dir(dd);
return 1;
}
}
 
return 0;
}
 
struct fat16_file_struct* open_file_in_dir(struct fat16_fs_struct* fs, struct fat16_dir_struct* dd, const char* name)
{
struct fat16_dir_entry_struct file_entry;
if(!find_file_in_dir(fs, dd, name, &file_entry))
return 0;
 
return fat16_open_file(fs, &file_entry);
}
 
uint8_t print_disk_info(const struct fat16_fs_struct* fs)
{
if(!fs)
return 0;
 
struct sd_raw_info disk_info;
if(!sd_raw_get_info(&disk_info))
return 0;
 
uart_puts_p(PSTR("manuf: 0x")); uart_putc_hex(disk_info.manufacturer); uart_putc('\n');
uart_puts_p(PSTR("oem: ")); uart_puts((char*) disk_info.oem); uart_putc('\n');
uart_puts_p(PSTR("prod: ")); uart_puts((char*) disk_info.product); uart_putc('\n');
uart_puts_p(PSTR("rev: ")); uart_putc_hex(disk_info.revision); uart_putc('\n');
uart_puts_p(PSTR("serial: 0x")); uart_putdw_hex(disk_info.serial); uart_putc('\n');
uart_puts_p(PSTR("date: ")); uart_putw_dec(disk_info.manufacturing_month); uart_putc('/');
uart_putw_dec(disk_info.manufacturing_year); uart_putc('\n');
uart_puts_p(PSTR("size: ")); uart_putdw_dec(disk_info.capacity); uart_putc('\n');
uart_puts_p(PSTR("copy: ")); uart_putw_dec(disk_info.flag_copy); uart_putc('\n');
uart_puts_p(PSTR("wr.pr.: ")); uart_putw_dec(disk_info.flag_write_protect_temp); uart_putc('/');
uart_putw_dec(disk_info.flag_write_protect); uart_putc('\n');
uart_puts_p(PSTR("format: ")); uart_putw_dec(disk_info.format); uart_putc('\n');
uart_puts_p(PSTR("free: ")); uart_putdw_dec(fat16_get_fs_free(fs)); uart_putc('/');
uart_putdw_dec(fat16_get_fs_size(fs)); uart_putc('\n');
 
return 1;
}
 
void get_datetime(uint16_t* year, uint8_t* month, uint8_t* day, uint8_t* hour, uint8_t* min, uint8_t* sec)
{
*year = 2007;
*month = 1;
*day = 1;
*hour = 0;
*min = 0;
*sec = 0;
}
 
 
/Designs/Data_loggers/GPSRL02A/SW/logger/partition.c
0,0 → 1,159
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#include "partition.h"
#include "partition_config.h"
#include "sd-reader_config.h"
 
#include <string.h>
 
#if USE_DYNAMIC_MEMORY
#include <stdlib.h>
#endif
 
/**
* \addtogroup partition Partition table support
*
* Support for reading partition tables and access to partitions.
*
* @{
*/
/**
* \file
* Partition table implementation (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* \addtogroup partition_config Configuration of partition table support
* Preprocessor defines to configure the partition support.
*/
 
#if !USE_DYNAMIC_MEMORY
static struct partition_struct partition_handles[PARTITION_COUNT];
#endif
 
/**
* Opens a partition.
*
* Opens a partition by its index number and returns a partition
* handle which describes the opened partition.
*
* \note This function does not support extended partitions.
*
* \param[in] device_read A function pointer which is used to read from the disk.
* \param[in] device_read_interval A function pointer which is used to read in constant intervals from the disk.
* \param[in] device_write A function pointer which is used to write to the disk.
* \param[in] device_write_interval A function pointer which is used to write a data stream to disk.
* \param[in] index The index of the partition which should be opened, range 0 to 3.
* A negative value is allowed as well. In this case, the partition opened is
* not checked for existance, begins at offset zero, has a length of zero
* and is of an unknown type.
* \returns 0 on failure, a partition descriptor on success.
* \see partition_close
*/
struct partition_struct* partition_open(device_read_t device_read, device_read_interval_t device_read_interval, device_write_t device_write, device_write_interval_t device_write_interval, int8_t index)
{
struct partition_struct* new_partition = 0;
uint8_t buffer[0x10];
 
if(!device_read || !device_read_interval || index >= 4)
return 0;
 
if(index >= 0)
{
/* read specified partition table index */
if(!device_read(0x01be + index * 0x10, buffer, sizeof(buffer)))
return 0;
 
/* abort on empty partition entry */
if(buffer[4] == 0x00)
return 0;
}
 
/* allocate partition descriptor */
#if USE_DYNAMIC_MEMORY
new_partition = malloc(sizeof(*new_partition));
if(!new_partition)
return 0;
#else
new_partition = partition_handles;
uint8_t i;
for(i = 0; i < PARTITION_COUNT; ++i)
{
if(new_partition->type == PARTITION_TYPE_FREE)
break;
 
++new_partition;
}
if(i >= PARTITION_COUNT)
return 0;
#endif
 
memset(new_partition, 0, sizeof(*new_partition));
 
/* fill partition descriptor */
new_partition->device_read = device_read;
new_partition->device_read_interval = device_read_interval;
new_partition->device_write = device_write;
new_partition->device_write_interval = device_write_interval;
 
if(index >= 0)
{
new_partition->type = buffer[4];
new_partition->offset = ((uint32_t) buffer[8]) |
((uint32_t) buffer[9] << 8) |
((uint32_t) buffer[10] << 16) |
((uint32_t) buffer[11] << 24);
new_partition->length = ((uint32_t) buffer[12]) |
((uint32_t) buffer[13] << 8) |
((uint32_t) buffer[14] << 16) |
((uint32_t) buffer[15] << 24);
}
else
{
new_partition->type = 0xff;
}
 
return new_partition;
}
 
/**
* Closes a partition.
*
* This function destroys a partition descriptor which was
* previously obtained from a call to partition_open().
* When this function returns, the given descriptor will be
* invalid.
*
* \param[in] partition The partition descriptor to destroy.
* \returns 0 on failure, 1 on success.
* \see partition_open
*/
uint8_t partition_close(struct partition_struct* partition)
{
if(!partition)
return 0;
 
/* destroy partition descriptor */
#if USE_DYNAMIC_MEMORY
free(partition);
#else
partition->type = PARTITION_TYPE_FREE;
#endif
 
return 1;
}
 
/**
* @}
*/
 
/Designs/Data_loggers/GPSRL02A/SW/logger/partition.h
0,0 → 1,201
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef PARTITION_H
#define PARTITION_H
 
#include <stdint.h>
 
/**
* \addtogroup partition
*
* @{
*/
/**
* \file
* Partition table header (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* The partition table entry is not used.
*/
#define PARTITION_TYPE_FREE 0x00
/**
* The partition contains a FAT12 filesystem.
*/
#define PARTITION_TYPE_FAT12 0x01
/**
* The partition contains a FAT16 filesystem with 32MB maximum.
*/
#define PARTITION_TYPE_FAT16_32MB 0x04
/**
* The partition is an extended partition with its own partition table.
*/
#define PARTITION_TYPE_EXTENDED 0x05
/**
* The partition contains a FAT16 filesystem.
*/
#define PARTITION_TYPE_FAT16 0x06
/**
* The partition contains a FAT32 filesystem.
*/
#define PARTITION_TYPE_FAT32 0x0b
/**
* The partition contains a FAT32 filesystem with LBA.
*/
#define PARTITION_TYPE_FAT32_LBA 0x0c
/**
* The partition contains a FAT16 filesystem with LBA.
*/
#define PARTITION_TYPE_FAT16_LBA 0x0e
/**
* The partition is an extended partition with LBA.
*/
#define PARTITION_TYPE_EXTENDED_LBA 0x0f
/**
* The partition has an unknown type.
*/
#define PARTITION_TYPE_UNKNOWN 0xff
 
/**
* A function pointer used to read from the partition.
*
* \param[in] offset The offset on the device where to start reading.
* \param[out] buffer The buffer into which to place the data.
* \param[in] length The count of bytes to read.
*/
typedef uint8_t (*device_read_t)(uint32_t offset, uint8_t* buffer, uint16_t length);
/**
* A function pointer passed to a \c device_read_interval_t.
*
* \param[in] buffer The buffer which contains the data just read.
* \param[in] offset The offset from which the data in \c buffer was read.
* \param[in] p An opaque pointer.
* \see device_read_interval_t
*/
typedef uint8_t (*device_read_callback_t)(uint8_t* buffer, uint32_t offset, void* p);
/**
* A function pointer used to continuously read units of \c interval bytes
* and call a callback function.
*
* This function starts reading at the specified offset. Every \c interval bytes,
* it calls the callback function with the associated data buffer.
*
* By returning zero, the callback may stop reading.
*
* \param[in] offset Offset from which to start reading.
* \param[in] buffer Pointer to a buffer which is at least interval bytes in size.
* \param[in] interval Number of bytes to read before calling the callback function.
* \param[in] length Number of bytes to read altogether.
* \param[in] callback The function to call every interval bytes.
* \param[in] p An opaque pointer directly passed to the callback function.
* \returns 0 on failure, 1 on success
* \see device_read_t
*/
typedef uint8_t (*device_read_interval_t)(uint32_t offset, uint8_t* buffer, uint16_t interval, uint16_t length, device_read_callback_t callback, void* p);
/**
* A function pointer used to write to the partition.
*
* \param[in] offset The offset on the device where to start writing.
* \param[in] buffer The buffer which to write.
* \param[in] length The count of bytes to write.
*/
typedef uint8_t (*device_write_t)(uint32_t offset, const uint8_t* buffer, uint16_t length);
/**
* A function pointer passed to a \c device_write_interval_t.
*
* \param[in] buffer The buffer which receives the data to write.
* \param[in] offset The offset to which the data in \c buffer will be written.
* \param[in] p An opaque pointer.
* \returns The number of bytes put into \c buffer
* \see device_write_interval_t
*/
typedef uint16_t (*device_write_callback_t)(uint8_t* buffer, uint32_t offset, void* p);
/**
* A function pointer used to continuously write a data stream obtained from
* a callback function.
*
* This function starts writing at the specified offset. To obtain the
* next bytes to write, it calls the callback function. The callback fills the
* provided data buffer and returns the number of bytes it has put into the buffer.
*
* By returning zero, the callback may stop writing.
*
* \param[in] offset Offset where to start writing.
* \param[in] buffer Pointer to a buffer which is used for the callback function.
* \param[in] length Number of bytes to write in total. May be zero for endless writes.
* \param[in] callback The function used to obtain the bytes to write.
* \param[in] p An opaque pointer directly passed to the callback function.
* \returns 0 on failure, 1 on success
* \see device_write_t
*/
typedef uint8_t (*device_write_interval_t)(uint32_t offset, uint8_t* buffer, uint16_t length, device_write_callback_t callback, void* p);
 
/**
* Describes a partition.
*/
struct partition_struct
{
/**
* The function which reads data from the partition.
*
* \note The offset given to this function is relative to the whole disk,
* not to the start of the partition.
*/
device_read_t device_read;
/**
* The function which repeatedly reads a constant amount of data from the partition.
*
* \note The offset given to this function is relative to the whole disk,
* not to the start of the partition.
*/
device_read_interval_t device_read_interval;
/**
* The function which writes data to the partition.
*
* \note The offset given to this function is relative to the whole disk,
* not to the start of the partition.
*/
device_write_t device_write;
/**
* The function which repeatedly writes data to the partition.
*
* \note The offset given to this function is relative to the whole disk,
* not to the start of the partition.
*/
device_write_interval_t device_write_interval;
 
/**
* The type of the partition.
*
* Compare this value to the PARTITION_TYPE_* constants.
*/
uint8_t type;
/**
* The offset in bytes on the disk where this partition starts.
*/
uint32_t offset;
/**
* The length in bytes of this partition.
*/
uint32_t length;
};
 
struct partition_struct* partition_open(device_read_t device_read, device_read_interval_t device_read_interval, device_write_t device_write, device_write_interval_t device_write_interval, int8_t index);
uint8_t partition_close(struct partition_struct* partition);
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/partition_config.h
0,0 → 1,35
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef PARTITION_CONFIG_H
#define PARTITION_CONFIG_G
 
/**
* \addtogroup partition
*
* @{
*/
/**
* \file
* Partition configuration (license: GPLv2 or LGPLv2.1)
*/
 
/**
* \ingroup partition_config
* Maximum number of partition handles.
*/
#define PARTITION_COUNT 1
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/sd-reader.hex
0,0 → 1,899
:100000000C941D010C943A010C943A010C943A01A1
:100010000C943A010C943A010C943A010C943A0174
:100020000C943A010C943A010C943A010C943A0164
:100030000C943A010C943A010C943A010C943A0154
:100040000C943A010C943A010C94341B0C943A0130
:100050000C943A010C943A010C943A010C943A0134
:100060000C943A010C943A01756E6B6E6F776E20AA
:10007000636F6D6D616E643A20006572726F7220FD
:100080006372656174696E67206469726563746F19
:1000900072793A20006D6B64697220006572726F2C
:1000A000722077726974696E6720746F2066696C5C
:1000B000650A006572726F72207365656B696E67A1
:1000C000206F6E20006572726F72206F70656E69AE
:1000D0006E672000777269746520006572726F72B6
:1000E000206372656174696E672066696C653A2089
:1000F00000746F75636820006572726F72206465AA
:100100006C6574696E672066696C653A2000726D73
:1001100020006572726F722072656164696E67207B
:100120006469736B20696E666F0A006469736B00A3
:100130006572726F72206F70656E696E6720006302
:10014000617420006C73006469726563746F727906
:10015000206E6F7420666F756E643A2000636420B1
:10016000006F70656E696E6720726F6F74206469CE
:10017000726563746F7279206661696C65640A00E8
:100180006F70656E696E672066696C6573797374EC
:10019000656D206661696C65640A006F70656E69E3
:1001A0006E6720706172746974696F6E2066616930
:1001B0006C65640A004D4D432F534420696E697489
:1001C00069616C697A6174696F6E206661696C65DA
:1001D000640A00667265653A20202000666F726DC1
:1001E00061743A200077722E70722E3A2000636F8D
:1001F00070793A2020200073697A653A2020200027
:10020000646174653A2020200073657269616C3AFC
:10021000203078007265763A202020200070726FBE
:10022000643A202020006F656D3A20202020006D68
:10023000616E75663A202030780011241FBECFEF22
:10024000D4E0DEBFCDBF11E0A0E0B1E0E2E0F8E332
:1002500002C005900D92A230B107D9F713E0A2E0D9
:10026000B1E001C01D92A23CB107E1F70E94B512B6
:100270000C94001C0C940000FC01892B11F01182DD
:1002800010820895CF93DF93FC01D9018081853ED0
:1002900029F1882319F12D913C911197ED018A8163
:1002A0009B812817390799F44C835D836E837F8384
:1002B00083858F3011F080E205C080818295880FA0
:1002C000807E805EFD01808780E090E009C08385AC
:1002D0008F3021F02F5F3F4F2D933C9381E090E0D2
:1002E000DF91CF910895EF92FF920F931F93CF93D9
:1002F000DF93EC017A018B01B9018881853E09F415
:10030000CCC0882309F4C9C0F90187A190A5A1A593
:10031000B2A50097A105B10521F4E7A2F0A601A7B7
:1003200012A76115710509F4B8C0209709F4B5C08A
:100330009881992309F4B1C0AE01455F5F4F8B8569
:100340008F3099F5892F99278F7390702DE030E0C9
:10035000AC01429FC001439F900D529F900D11240C
:100360009C012D5030400197809708F093C0FB010D
:10037000E20FF31F898180838B8181838D8182834A
:100380008F818383898584838E858583888986830D
:100390008A8987838C8980878E898187888D8287E7
:1003A0008C8D83878E8D848775C0FB018081882327
:1003B000B9F580E090E0382FFE01E80FF91F2081A9
:1003C000203249F0FB01E80FF91F20833F5F0196BF
:1003D0008830910581F7FB018081853011F485EE2D
:1003E00080838885803211F4832F16C0FB01E30FD0
:1003F000F11D8EE28083832F8F5FDE01232F2C5F20
:10040000FD019085903241F0FB01E80FF11D9083D2
:100410008F5F11968217A1F7FB01E80FF11D108283
:10042000FA018081FB0180A38B8D9927982F882763
:100430002A8D3327822B932B92A381A32D8D3327D3
:1004400044275527542F432F322F22278E8D99274B
:10045000AA27BB27DC0199278827282B392B4A2B71
:100460005B2B8C8D9927AA27BB27282B392B4A2B4E
:100470005B2B8F8D9927AA27BB27B82FAA279927EF
:100480008827282B392B4A2B5B2B23A334A345A386
:1004900056A303C081E090E002C080E090E0DF91CD
:1004A000CF911F910F91FF90EF9008950F931F939D
:1004B000CF93DF93CDB7DEB722970FB6F894DEBFA8
:1004C0000FBECDBFDC01892BA9F16230710590F11F
:1004D0000D911C911197660F771F88279927FD01B1
:1004E0002681378140855185620F731F841F951FB8
:1004F000D801ED91FC9122E030E0AE014F5F5F4FFB
:1005000009958823B9F08A819927382F2227898174
:100510009927282B392B2115310571F0BFEF273F83
:100520003B0741F0C9014096079720F0EFEF283FC5
:100530003E0710F020E030E0C90122960FB6F89493
:10054000DEBF0FBECDBFDF91CF911F910F910895F8
:100550004F925F926F927F928F929F92AF92BF92D3
:10056000CF92DF92EF92FF920F931F93CF93DF937F
:10057000CDB7DEB722970FB6F894DEBF0FBECDBF62
:100580005C01009709F44BC06230710508F447C064
:10059000FC0166807780808491842E010894411C40
:1005A000511C660F771F6B01EE24FF24C60CD71C6D
:1005B000E81CF91CD501ED91FC910190F081E02D32
:1005C00022E030E0A201C701B6010995882339F184
:1005D0008A819927182F002789819927082B192BA1
:1005E00001151105F9F0C80140960897C0F0BFEF5A
:1005F000083F1B0710F000E010E019821A82D501B5
:10060000ED91FC910480F581E02D22E030E0A20123
:10061000C701B6010995B801012B21F0C2CF80E0D6
:1006200090E002C081E090E022960FB6F894DEBF21
:100630000FBECDBFDF91CF911F910F91FF90EF9033
:10064000DF90CF90BF90AF909F908F907F906F90F2
:100650005F904F9008952F923F924F925F926F92CA
:100660007F928F929F92AF92BF92CF92DF92EF9242
:10067000FF920F931F93CF93DF93CDB7DEB72C97E5
:100680000FB6F894DEBF0FBECDBF3C012B011A019F
:10069000009709F495C0DC01ED91FC912081318136
:1006A0003C872B870480F581E02DFA87E987FC01E0
:1006B00086819781A085B1858D839E83AF83B8871E
:1006C00082859385A485B585B695A79597958795D9
:1006D0009C838B836A01AA24BB248824992444C068
:1006E000C401880F991F7C01002711272D813E81AD
:1006F0004F815885E20EF31E041F151F22E030E0E3
:10070000AE014F5F5F4FC801B701AB85BC85FD01EE
:100710000995882309F454C08981882311F58A81B9
:100720008823F9F4C214D30419F48FEF898303C02A
:10073000A9828B2D99278A8322E030E0AE014F5F9A
:100740005F4FC801B701E985FA850995882391F0C3
:100750000894C108D108C114D10411F454010CC08B
:1007600054010894811C911C2B813C8182169306B4
:1007700009F0B6CFCD2801F532E04316510410F14F
:10078000A9828B2D99278A83440C551CB201882796
:1007900099272D813E814F815885620F731F841FD9
:1007A000951F22E030E0AE014F5F5F4FA985BA850B
:1007B000FD010995882331F4B501C3010E94A80207
:1007C000AA24BB24C5012C960FB6F894DEBF0FBE39
:1007D000CDBFDF91CF911F910F91FF90EF90DF90F0
:1007E000CF90BF90AF909F908F907F906F905F90D1
:1007F0004F903F902F900895CF92DF92EF92FF920B
:100800000F931F93CF93DF93CDB7DEB760970FB6EB
:10081000F894DEBF0FBECDBF7C016230710518F4C5
:1008200080E090E027C0FC01C088D1880081118160
:1008300062507040882799279601442755270E94C7
:10084000981B9B01AC01F70166897789808D918D9A
:10085000620F731F841F951FF801A681B781EE24D4
:10086000FF240AEE16E09601AE014F5F5F4FFD01D7
:100870000995992760960FB6F894DEBF0FBECDBFDD
:10088000DF91CF911F910F91FF90EF90DF90CF906C
:100890000895FC01892B11F01182108208952F9286
:1008A0003F924F925F926F927F928F929F92AF9200
:1008B000BF92CF92DF92EF92FF920F931F93CF934D
:1008C000DF93CDB7DEB72C970FB6F894DEBF0FBE1F
:1008D000CDBF3C0178876F835A874987009709F419
:1008E000FCC0672B09F4F9C0452B09F4F6C0FC01E4
:1008F000A5A4B6A4C7A4D0A825A136A147A150A5F8
:1009000069857A85CB01AA27BB278A0D9B1DAC1D63
:10091000BD1D281739074A075B0738F42A193B0918
:100920003A872987232B09F4DBC0D3018D919C9151
:10093000FC01808991899A838983F30101A8F2A936
:10094000E02DFC87EB87BC01882799276B837C838C
:100950008D839E83EF2BE1F5F30103A0F4A1E02D3D
:10096000FC87EB87EF2B39F4A114B104C104D10447
:1009700009F4B6C0B2C0A114B104C104D10441F15C
:10098000860175012B803C804D805E8050944094A0
:1009900030942094211C311C411C511C10C06B85CB
:1009A0007C85D3018D919C910E9456029C878B87F8
:1009B000892B09F492C0E20CF31C041D151D6B81F8
:1009C0007C818D819E81E616F7060807190738F7A6
:1009D000C601B5012B813C814D815E810E94DE1BE9
:1009E0002B0189849A84D3018D919C91A980BA802E
:1009F000A418B5088A149B0408F45401FC01C080B3
:100A0000D18072010027112786899789A08DB18D29
:100A1000E80EF91E0A1F1B1F2B853C852250304013
:100A2000B901882799272E5F3F4F3C872B872B8161
:100A30003C814D815E810E94981BE60EF71E081FC7
:100A4000191FD601CD90DC9095014F815885C801C2
:100A5000B701F6010995882339F18A189B08C50169
:100A6000AA27BB27F30125A536A547A550A9280F1E
:100A7000391F4A1F5B1F25A736A747A750ABC501E3
:100A8000840D951D29813A8182179307A0F06B850B
:100A90007C85808191810E9456029C878B87892B5F
:100AA00041F4F30112AA11AA49855A854819590936
:100AB00019C0442455242B853C85F30132AB21AB6E
:100AC0008114910439F06F8178856A0D7B1D7887D8
:100AD0006F8389CF49855A8505C04FEF5FEF02C00C
:100AE00040E050E0CA012C960FB6F894DEBF0FBE6E
:100AF000CDBFDF91CF911F910F91FF90EF90DF90CD
:100B0000CF90BF90AF909F908F907F906F905F90AD
:100B10004F903F902F900895FC01892B11F0118286
:100B200010820895FC01892B19F480E090E008956B
:100B300016A615A681E090E008958F929F92AF923D
:100B4000BF92CF92DF92EF92FF920F931F93CF93BA
:100B5000DF93CDB7DEB72C970FB6F894DEBF0FBE8C
:100B6000CDBF6C015B01892B09F452C06115710581
:100B700009F44EC0FB01E7A0F0A401A512A5E11401
:100B8000F1040105110509F443C04E010894811CCC
:100B9000911CD601ED91FC910190F081E02D2CE0AB
:100BA00030E0A401C801B7010995882389F185EED9
:100BB0008983D601ED91FC910480F581E02D2CE034
:100BC00030E0A401C801B7010995882309F18C859B
:100BD0008F3049F480E290E0A0E0B0E0E80EF91E2A
:100BE0000A1F1B1FD6CFF50161A172A16115710506
:100BF00019F481E090E00AC0C6010E94A80220E03A
:100C000030E0882311F021E030E0C901992702C0CB
:100C100080E090E02C960FB6F894DEBF0FBECDBFFB
:100C2000DF91CF911F910F91FF90EF90DF90CF90C8
:100C3000BF90AF909F908F90089508950895FC0104
:100C4000892B29F460E070E080E090E008956285EF
:100C50007385848595859695879577956795625078
:100C600070408040904020893189442755270E9458
:100C7000981B08952F923F924F925F926F927F92AE
:100C80008F929F92AF92BF92CF92DF92EF92FF929C
:100C90000F931F93CF93DF93CDB7DEB7A5970FB612
:100CA000F894DEBF0FBECDBF1C01892B09F456C0DE
:100CB0001A82198280E28B83F1014680578060841A
:100CC000718482849384A484B58437C0FEEF8F1628
:100CD000FFEF9F06F0E0AF06F0E0BF0628F02EEF32
:100CE0003FEF3DA32CA302C09DA28CA2D101ED91A8
:100CF000FC910280F381E02D6E010894C11CD11C8F
:100D0000BBECEB2EB6E0FB2E0CA11DA120E230E0E7
:100D1000AE014C5F5F4FC301B20109958823F1F02A
:100D20000CA11DA1C801AA27BB27480E591E6A1E87
:100D30007B1E881A990AAA0ABB0A81149104A1048D
:100D4000B10421F6F10160897189882799272981E9
:100D50003A81442755270E94981B04C060E070E048
:100D600080E090E0A5960FB6F894DEBF0FBECDBF31
:100D7000DF91CF911F910F91FF90EF90DF90CF9077
:100D8000BF90AF909F908F907F906F905F904F90AB
:100D90003F902F900895AC01D901F9016281FC01C7
:100DA00012C081819927982F882720813327822B91
:100DB000932B892B39F48D919C9111970196119663
:100DC0009C938E9332968E2F841B861750F381E06E
:100DD00090E0089520E1FC0111922A95E9F780E165
:100DE00090E008952F923F924F925F926F927F9280
:100DF0008F929F92AF92BF92CF92DF92EF92FF922B
:100E00000F931F93CF93DF93CDB7DEB7E5970FB660
:100E1000F894DEBF0FBECDBF1C017DA76CA7009765
:100E200009F4F7C0672B09F4F4C0FC0163A074A0B7
:100E300025A536A53FA72EA74080518061147104D7
:100E400009F050C04114510409F4E0C0D201ED9101
:100E5000FC91A280B3809E012F5F3F4F89E0F90192
:100E600011928A95E9F78EA59FA59C838B83F20149
:100E7000628973898489958906891789061B170BEE
:100E8000FAE08F2E912C8C0E9D1E6901E2E4EE2E6D
:100E9000E1E0FE2E20E230E0A401F501099588236F
:100EA00009F4B4C04D805E806F8078844114510491
:100EB0006104710409F4AAC08BE2ACA5BDA51D9222
:100EC0008A95E9F709851127CCA4DDA473E7E72EFD
:100ED00071E0F72E20E230E0A401C301B201F50178
:100EE000099584C04114510409F490C0FC0182A109
:100EF00084FF8CC0F2010088F189E02DFBA7EAA7EE
:100F0000CF01AA27BB2788AB99ABAAABBBABDE014D
:100F10001196BDABACABEEEFFFEF6E0E7F1EB301D3
:100F20008827992722E030E0620E731E28A939A98C
:100F30004AA95BA90E94981BF20186889788A08C19
:100F4000B18C860E971EA81EB91E89E0ACA9BDA95A
:100F50001D928A95E9F7EEA5FFA5FC83EB83D201EC
:100F6000ED91FC91AE01465F5F4F0280F381E02D71
:100F70006E010894C11CD11C62E4E62E61E0F62EDD
:100F80000AA51BA520E230E0C501B401099588231C
:100F9000E9F18D809E80AF80B88481149104A10412
:100FA000B10441F4B301C2010E9456023C01892BF5
:100FB00069F1B1CF8BE2ECA5FDA511928A95E9F715
:100FC000D201ED91FC91098511270280F381E02D7A
:100FD000CCA4DDA433E7E32E31E0F32E20E230E0B1
:100FE000AE01465F5F4FC501B4010995882371F0DA
:100FF000ECA5FDA58081882349F0F10185A596A582
:10100000019696A785A781E090E005C0F10116A69C
:1010100015A680E090E0E5960FB6F894DEBF0FBE0F
:10102000CDBFDF91CF911F910F91FF90EF90DF9097
:10103000CF90BF90AF909F908F907F906F905F9078
:101040004F903F902F9008952F923F924F925F9232
:101050006F927F928F929F92AF92BF92CF92DF92C8
:10106000EF92FF920F931F93CF93DF93CDB7DEB72D
:10107000AC970FB6F894DEBF0FBECDBF6C010097E2
:1010800009F4A2C1FC0184819581892B09F49CC1DA
:1010900086819781892B09F497C102E011E01CA792
:1010A0000BA78091020190910301892B09F08CC15B
:1010B0008AE1D8011D928A95E9F7D0920301C09286
:1010C0000201018512852385348589E0000F111FF7
:1010D000221F331F8A95D1F70AA31BA32CA33DA37C
:1010E000C901B801655F7F4F8F4F9F4F0190F0811D
:1010F000E02D29E130E0AE014F5F5F4F0995882375
:1011000009F45EC129813A80FB81F8A74C813D81B9
:101110005E812F8048845984AA848D859927F82F71
:10112000EE278C859927E82BF92BEE888F89688D1F
:10113000798D309709F444C19927AA27BB276624E3
:10114000782E892E9A2E862F9927AA27BB27DC0175
:1011500099278827682A792A8A2A9B2A8E2D9927F7
:10116000AA27BB27682A792A8A2A9B2A872F9927A8
:10117000AA27BB27B82FAA2799278827682A792A60
:101180008A2A9B2A611471048104910479F48A2DBE
:101190009927782F6627852D9927682B792B61153C
:1011A000710509F40DC13B0188249924832D9927E9
:1011B000982F88279FA38EA3822F99270EA11FA166
:1011C000082B192B1FA30EA3842D9927982F88274E
:1011D0009AA789A7822D992769A57AA5682B792BCB
:1011E0007AA769A7832F9927982F8827242F332739
:1011F000822B932B8C01222733270A8F1B8F2C8F56
:101200003D8FBF0188279927252F3327442755274E
:101210000E94981B6E8F7F8F88A399A3840173010E
:101220002A8D3B8D4C8D5D8DE21AF30A040B150B54
:10123000E61AF70A080B190B8EA19FA1019729A5A1
:101240003AA545E0220F331F4A95E1F7820F931F1D
:101250006EA17FA10E94B71B88279927E61AF70A7B
:10126000080B190B68A5262F332744275527C801DB
:10127000B7010E94DE1B19012A01DA01C901855F4D
:101280009F40A040B0408050904FA040B04008F038
:1012900097C086E0F60180870BA51CA50E5F1F4F47
:1012A00088E1D8011D928A95E9F7025010401CA7E9
:1012B0000BA7EEA1FFA15F01CC24DD24C401B30183
:1012C000A60195010E94981B60930401709305018B
:1012D0008093060190930701C601B5012A8D3B8DCD
:1012E0004C8D5D8D0E94981B7B018C012AA13BA136
:1012F0004CA15DA1E20EF31E041F151FE092080130
:10130000F092090100930A0110930B01220C331C87
:10131000441C551C44E050E060E070E0240E351E93
:10132000461E571E20920C0130920D0140920E0174
:1013300050920F016EA17FA1709311016093100173
:1013400078A5872F9927AEA1BFA1FC01AE9FC00150
:10135000AF9F900DBE9F900D112490931301809329
:1013600012016E8D7F8D88A199A1A60195010E9421
:10137000981B6E0D7F1D801F911F60931401709349
:101380001501809316019093170109A51AA59801DC
:1013900044275527A5E0220F331F441F551FAA9548
:1013A000D1F7620F731F841F951F6093180170930C
:1013B000190180931A0190931B018BA59CA506C06F
:1013C000109203011092020180E090E0AC960FB6FB
:1013D000F894DEBF0FBECDBFDF91CF911F910F916B
:1013E000FF90EF90DF90CF90BF90AF909F908F9045
:1013F0007F906F905F904F903F902F9008952F9225
:101400003F924F925F926F927F928F929F92AF9294
:10141000BF92CF92DF92EF92FF920F931F93CF93E1
:10142000DF93CDB7DEB723970FB6F894DEBF0FBEBC
:10143000CDBF1C019B01892B09F4C2C04115510588
:1014400009F4BEC0FA0101900020E9F7E41BF50B96
:10145000CF010B966DE070E00E94B71B6F5F6B834E
:10146000F90143A054A04114510451F0662477249B
:101470004301AA24BB246501EE24FF2487010BC08D
:10148000F101A288B388C488D588E688F788008DE2
:10149000118D350146011A82AE14BF04C006D10673
:1014A00009F05EC04114510409F48AC0A114B104CA
:1014B000C104D10479F1B201C1010E945602009722
:1014C00041F541E050E0B201C1010E942B038C01C3
:1014D000892B09F475C002501040B801882799275C
:1014E0000E5F1F4FF10120893189442755270E9443
:1014F000981B3B014C01F10186899789A08DB18D24
:10150000680E791E8A1E9B1EB801C1010E94FC0351
:101510005AC02C01F101E088F188002711272EEF35
:101520003FEF420E531EB20188279927A2E0B0E098
:101530004A0E5B1EA80197010E94981B5B016C017B
:10154000F10186899789A08DB18DA80EB91ECA1E9A
:10155000DB1EEA0CFB1C0C1D1D1D350146011A8209
:10156000D101ED91FC910190F081E02D21E030E07E
:10157000AE014F5F5F4FC601B5010995882301F1A8
:101580008981853E11F0882379F4BA81BF5FBA83DF
:10159000EB81BE17C0F480E290E0A0E0B0E0A80EBE
:1015A000B91ECA1EDB1E78CF90E2692E712C812CE9
:1015B000912C6A0C7B1C8C1C9D1C640153016BCF0D
:1015C000662477244301C401B30123960FB6F8942F
:1015D000DEBF0FBECDBFDF91CF911F910F91FF9066
:1015E000EF90DF90CF90BF90AF909F908F907F90C3
:1015F0006F905F904F903F902F9008954F925F9221
:101600007F928F929F92AF92BF92CF92DF92EF9292
:10161000FF920F931F93CF93DF93CDB7DEB7A097C1
:101620000FB6F894DEBF0FBECDBFFC018B01892B36
:1016300009F41AC16115710509F416C10190F08110
:10164000E02D44805580FB01A7A0B0A4C1A4D2A482
:1016500001900020E9F73197FE2EF61A8F2D992779
:101660000C966DE070E00E94CB1B762E4BE050E0B4
:1016700060E270E0CE0101960E94551B6EE270E0C0
:10168000C8010E948D1BFC010097C1F0DC0111967E
:101690008181882399F0FD0101900020E9F73197BD
:1016A000EA1BFB0BFE1AFA944E2FE43008F043E0DD
:1016B0005527BD01CE0109960E944C1BCE01019613
:1016C000F8E0FF1588F04F2D5527B8010E944C1BFC
:1016D000D8018C918E3219F5F80181818E3209F48E
:1016E00082818823D9F01BC0DC01F80188E00190D9
:1016F0000D928150E1F7F80181A1982F92959F708A
:10170000803A10F4905D01C09F598F708A3010F4B8
:10171000805D01C08F599F83888701C077248981AC
:10172000853E11F485E089837CE0872E912C8C0E18
:101730009D1E85E1D4011D928A95E9F7F80180A1EB
:101740008C8781A192A18B8F892F99278C8F83A160
:1017500094A1A5A1B6A18D8F292F3A2F4B2F5527E4
:101760002E8F9D01442755272F8F8B2F9927AA272E
:10177000BB2788A3672D77278827992725E0660F41
:10178000771F881F991F2A95D1F76A0D7B1D8C1D25
:101790009D1D20E230E0AE014F5F5F4FF2010995E1
:1017A000882309F461C0E980FE01329694018E2DF0
:1017B0008695E794EE24E794E82A8191E80EE217F3
:1017C000F307A9F7F72C4E010894811C911C0D50CA
:1017D000104044C040E250E06FEF70E0C4010E944E
:1017E000551B8DE0F89ED0011124A00FB11F91E090
:1017F000F401E90FF11D8C918083892F8F5FF40133
:10180000E80FF11D10829E5F9B3021F09A3119F490
:101810009CE101C09EE08C91882321F09F3110F45F
:101820001196E6CFF982F71419F48F2D806489831D
:101830008FE08C87EE861D861B8E1C8E20E230E0AA
:10184000A401C601B501F201099580E290E0A0E093
:10185000B0E0A80EB91ECA1EDB1EFA94FF2009F0E4
:10186000B9CF81E090E002C080E090E0A0960FB692
:10187000F894DEBF0FBECDBFDF91CF911F910F91C6
:10188000FF90EF90DF90CF90BF90AF909F908F90A0
:101890007F905F904F9008952F923F924F925F926A
:1018A0006F927F928F929F92AF92BF92CF92DF9270
:1018B000EF92FF920F931F93CF93DF93CDB7DEB7D5
:1018C0002E970FB6F894DEBF0FBECDBF6C011A0184
:1018D0002B01009709F4E2C0FC01E3A0F4A0019001
:1018E000F081E02D80899189E114F10431F44115F2
:1018F00051056105710509F4BDC0420131019C012A
:10190000442755272F83388749875A875095409514
:10191000309521953F4F4F4F5F4F2B873C874D8729
:101920005E8711C0B701D6018D919C910E9456022D
:101930000097B9F02B853C854D855E85620E731E40
:10194000841E951E7C018F819885A985BA858B831D
:101950009C83AD83BE8386159705A805B90510F352
:10196000A0C05701C401B3012B813C814D815E8130
:101970000E94DE1B8901B901882799272B813C81B0
:101980004D815E810E94981B661577058805990533
:1019900010F40F5F1F4FA801B701D6018D919C91E4
:1019A0000E942B03009709F479C0EF2821F4F60177
:1019B00094A383A35C01F60125A236A247A250A6F8
:1019C000211431044104510411F414A213A2B601EC
:1019D0006E5F7F4FD6018D919C910E94FE0A8823F5
:1019E00009F45CC0211431044104510429F4B50107
:1019F000F601808191813CC02B813C814D815E81CB
:101A00002615370548055905A8F1D6010D911C91F9
:101A10000115110579F1B2E0AB16B10458F1B50129
:101A2000C8010E9456027C018FEF89838A83F801E6
:101A300080809180AA0CBB1CB5018827992726813C
:101A4000378140855185620F731F841F951FF401F4
:101A5000A481B58122E030E0AE014F5F5F4FFD0110
:101A60000995882339F0E114F10421F0B701C80188
:101A70000E94A802F60185A596A5A7A5B0A92816DB
:101A800039064A065B0638F4F60125A636A647A6AF
:101A900050AA12AA11AA81E090E009C080E090E06B
:101AA00006C05701E114F10409F45CCF84CF2E96EF
:101AB0000FB6F894DEBF0FBECDBFDF91CF911F915F
:101AC0000F91FF90EF90DF90CF90BF90AF909F90DD
:101AD0008F907F906F905F904F903F902F900895E0
:101AE000CF92DF92EF92FF920F931F93CF93DF93EA
:101AF000EC016B01892B09F446C06115710509F4ED
:101B000042C08DA59EA5AFA5B8A9413059F041307E
:101B100018F04230C1F50CC0FB01E080F180028179
:101B2000138113C0FB01E080F1800281138109C0A1
:101B3000FB01E080F180028113818DA19EA1AFA104
:101B4000B8A5E80EF91E0A1F1B1F8DA19EA1AFA10B
:101B5000B8A58E159F05A007B10738F4B801A701F5
:101B6000CE010E944C0C882371F0EDA6FEA60FA7B3
:101B700018AB1AAA19AAF601E082F1820283138334
:101B800081E090E002C080E090E0DF91CF911F9172
:101B90000F91FF90EF90DF90CF9008952F923F929A
:101BA0004F925F926F927F928F929F92AF92BF926D
:101BB000CF92DF92EF92FF920F931F93CF93DF9319
:101BC000CDB7DEB72A970FB6F894DEBF0FBECDBFF4
:101BD0005C011B0158874F83009709F43BC1672BB9
:101BE00009F438C1452B09F435C1FC0165A476A47C
:101BF00087A490A885A196A1A7A1B0A58615970551
:101C0000A805B90508F426C120813181F9010088B1
:101C1000F189E02DFA83E983F50101A8F2A9E02D0D
:101C2000FA87E98789819A81AA27BB278B839C83BE
:101C3000AD83BE83EF2B09F059C0F50103A0F4A1D9
:101C4000E02DFA87E987EF2BA9F461147104810470
:101C5000910409F0FFC041E050E060E070E0C9018C
:101C60000E942B039A878987F50194A383A3892B6C
:101C700009F4F0C0F501E5A4F6A407A510A9E11444
:101C8000F1040105110549F531C08B819C81AD81BD
:101C9000BE81E81AF90A0A0B1B0B69857A85D50102
:101CA0008D919C910E945602009719F09A8789871E
:101CB00014C0E114F1040105110509F0CBC041E0A5
:101CC00050E069857A85F501808191810E942B031E
:101CD000009709F4BFC09A8789878B819C81AD8169
:101CE000BE81E816F9060A071B0778F6C401B3019E
:101CF0002B813C814D815E810E94DE1B2B016F8018
:101D00007884D5018D919C9189809A80841895085A
:101D10006814790408F44301FC01C080D180720189
:101D20000027112786899789A08DB18DE80EF91EAD
:101D30000A1F1B1F29853A8522503040B901882788
:101D400099272E5F3F4F3A8729872B813C814D8110
:101D50005E810E94981BE60EF71E081F191FF601F0
:101D6000A481B5819401A101C801B701FD010995C4
:101D7000882309F446C068187908C401AA27BB273C
:101D8000F50125A536A547A550A9280F391F4A1FDB
:101D90005B1F25A736A747A750ABC401840D951D2F
:101DA00029813A818217930708F169857A858081B4
:101DB00091810E945602009719F09A87898714C072
:101DC0006114710459F041E050E069857A85D501CC
:101DD0008D919C910E942B03009721F4F50112AA8A
:101DE00011AA0FC09A8789874424552429853A85EA
:101DF000F50132AB21AB6114710419F0280C391CC8
:101E000080CFF50185A596A5A7A5B0A9E5A0F6A068
:101E100007A110A5E816F9060A071B07B0F485A369
:101E200096A3A7A3B0A7B5016E5F7F4F8081918174
:101E30000E94FE0A882349F4F50165A476A46E1871
:101E40007F08E5A6F6A607A710AB8F8198858619AF
:101E5000970902C08FEF9FEF2A960FB6F894DEBF66
:101E60000FBECDBFDF91CF911F910F91FF90EF90EB
:101E7000DF90CF90BF90AF909F908F907F906F90AA
:101E80005F904F903F902F900895CF93DF939C01E8
:101E9000FB01892B21F1672B11F180A184FF1FC069
:101EA00080914F0190915001892B19F4AFE4B1E07A
:101EB00008C080917E0190917F01892B81F4AEE76B
:101EC000B1E0ED0122968BE2019009928150E1F799
:101ED00011963C932E93FD0116A615A602C0A0E014
:101EE000B0E0CD01DF91CF910895CF93DF939C01B6
:101EF000FB01892B49F16115710531F180A184FD48
:101F000023C080911C0190911D01892BE9F4CEE141
:101F1000D1E0DB018BE20D9009928150E1F7309323
:101F20001D0120931C011092490110924A01109248
:101F30004B0110924C0181A192A190934E0180938C
:101F40004D018CE191E002C080E090E0DF91CF9103
:101F50000895CF92DF92EF92FF920F931F93CF934A
:101F6000DF937C018B01EA01892B09F443C06115E1
:101F7000710509F43FC0FB0180818823D9F1452B0D
:101F8000C9F1BE01C7010E94F206882351F0BE01CB
:101F9000C8010E94671B892BA1F7F70116A615A699
:101FA00029C0F701C080D1808BE2FE0111928A9591
:101FB000E9F74FE150E0B801CE010E947E1BAE016F
:101FC000B701C6010E94FF096FA378A789A79AA746
:101FD000611571058105910569F0BE01C6010E9478
:101FE000FE0A90E0882309F491E081E09827892F88
:101FF000992702C080E090E0DF91CF911F910F916F
:10200000FF90EF90DF90CF9008956F927F928F9224
:102010009F92AF92BF92CF92DF92EF92FF920F9377
:102020001F93CF93DF933C018B017A01892B09F435
:1020300061C06115710509F45DC0FB0180818823D1
:1020400009F458C0452B09F455C08F3211F40F5FC5
:102050001F4F8BE2F70111928A95E9F780E1F701B2
:1020600080A3F8018081882309F447C0B701C30128
:102070000E94450F5C01892BE9F16FE270E0C80115
:102080000E945C1B6C01892B41F4F8010190002037
:10209000E9F76F010894C108D1088C2D801B882EA8
:1020A000992421C0E70109900020E9F72197CE1972
:1020B000DF09C815D905B9F4AE01B701C8010E94FE
:1020C000701B892B81F4F50111821082C00FD11F82
:1020D0008881882391F0F70180A184FF0BC08601DD
:1020E0000F5F1F4FC3CFB701C5010E94F2068823BF
:1020F000C9F606C080E090E007C081E090E004C02F
:10210000F50111821082B2CFDF91CF911F910F9113
:10211000FF90EF90DF90CF90BF90AF909F908F9007
:102120007F906F9008959F92AF92BF92CF92DF926F
:10213000EF92FF920F931F93CF93DF936C015B019C
:10214000EA01892B09F495C06115710509F491C064
:10215000FB018081882309F48CC0452B09F489C0D8
:10216000BE01C6010E94F206882351F0BE01C501DE
:102170000E94671B892BA1F7F60116A615A679C048
:10218000F601E080F18041E050E060E070E0C701DE
:102190000E942B038C01009709F46BC0BC01C7019E
:1021A0000E94FC038BE2FE0111928A95E9F780E11F
:1021B00088A302501040B801882799270E5F1F4F4F
:1021C000F70120893189442755270E94981BF70180
:1021D00026893789408D518D260F371F481F591F7B
:1021E0002FA338A749A75AA7BEE29B2E98821AA30D
:1021F00009A3BE01C7010E94FE0A8823B1F18FA185
:1022000098A5A9A5BAA58096A11DB11D8FA398A7D1
:10221000A9A7BAA79982F60183A194A19AA389A339
:10222000BE01C7010E94FE0A8823F9F04FE150E089
:10223000B501CE010E947E1B1AA309A3AE01B6010F
:10224000C7010E94FF096FA378A789A79AA7611504
:1022500071058105910549F0BE01C7010E94FE0A82
:10226000882319F081E090E006C0B801C7010E9400
:10227000A80280E090E0DF91CF911F910F91FF9035
:10228000EF90DF90CF90BF90AF909F900895EF9226
:10229000FF920F931F93FC01DB01B80187ED97E0DC
:1022A0009183808381E08C93FA018083F90110820D
:1022B000FB011082F70110821F910F91FF90EF90A8
:1022C00008950F931F93CF93DF93CDB7DEB7699730
:1022D0000FB6F894DEBF0FBECDBF8C01892B09F479
:1022E0009CC0CE0101960E940319882309F495C071
:1022F0008FE292E00E94101B89810E94261A8AE0D8
:102300000E94171A86E292E00E94101BCE010296EC
:102310000E94031B8AE00E94171A8DE192E00E943E
:10232000101BCE0105960E94031B8AE00E94171A1B
:1023300084E192E00E94101B8B850E94261A8AE09D
:102340000E94171A89E092E00E94101B6C857D851F
:102350008E859F850E944F1A8AE00E94171A80E09E
:1023600092E00E94101B898999270E94621A8FE2CD
:102370000E94171A888999270E94621A8AE00E948F
:10238000171A87EF91E00E94101B6A897B898C895C
:102390009D890E94A21A8AE00E94171A8EEE91E08F
:1023A0000E94101B8E8999270E94621A8AE00E945F
:1023B000171A85EE91E00E94101B888D99270E94C4
:1023C000621A8FE20E94171A8F8999270E94621A57
:1023D0008AE00E94171A8CED91E00E94101B898DF3
:1023E00099270E94621A8AE00E94171A83ED91E0F1
:1023F0000E94101BC8010E943A060E94A21A8FE296
:102400000E94171AC8010E941F060E94A21A8AE0A1
:102410000E94171A81E090E002C080E090E0699687
:102420000FB6F894DEBF0FBECDBFDF91CF911F91E5
:102430000F910895EF92FF920F931F93CF93DF9325
:102440008B017A01E9010CC0B701CE010E94671B24
:10245000892B31F4C8010E94920581E090E008C008
:10246000BE01C8010E94F206882371F780E090E067
:10247000DF91CF911F910F91FF90EF900895EF9210
:10248000FF920F931F93CF93DF93CDB7DEB7AB9738
:102490000FB6F894DEBF0FBECDBF8C017E0108944D
:1024A000E11CF11C97010E941A12882319F480E0A4
:1024B00090E004C0B701C8010E94750FAB960FB63B
:1024C000F894DEBF0FBECDBFDF91CF911F910F916A
:1024D000FF90EF900895AF92BF92DF92EF92FF923C
:1024E0000F931F93CF93DF937C01062F1127A80131
:1024F00060E070E00E94551BDD2458010894A1089B
:10250000B10823C00E941E1B182F883011F08F378E
:1025100089F4DD20D1F0DA94F701ED0DF11D108280
:1025200088E00E94171A80E20E94171A88E00E9431
:10253000171A0BC00E94171AF701EC0FFD1F1A3073
:1025400011F4108207C01083D394CD2DDD27CA1556
:10255000DB05C4F2CE01DF91CF911F910F91FF9067
:10256000EF90DF90BF90AF900895C6E8D4E0DEBF53
:10257000CDBF83B7817F83BF0E940B1A0E94901842
:10258000882319F485EB91E068C200E020EC37E184
:102590004DE057E16AE178E186E796E10E943D155A
:1025A000009781F40FEF20EC37E14DE057E16AE14D
:1025B00078E186E796E10E943D15009719F48BE9D2
:1025C00091E04BC20E9424082C01009719F480E886
:1025D00091E043C28E010E5D1F4FA80160E071E0E3
:1025E0000E940510B801C2010E94450F3C01892BD1
:1025F00019F481E691E031C2C2010E9461110E948A
:102600001E1B8432E1F70E941E1B8C32E1F78E0103
:10261000025F1F4F680164E1E62EF12CEC0EFD1EF7
:102620000E941E1BD8018D938D01AE15BF05C1F709
:102630001C8AAE01435B5F4FB601C3010E94A90F24
:102640001A821B821C821D825EE0A52EB12CAC0E6C
:10265000BD1E42E0C42ED12CCC0EDD1E7E0108949E
:10266000E11CF11CA501B301C2010E943F128C01C3
:1026700040E0B6010E94700D0E941E1B898341E05C
:1026800050E0B701C8010E94CE0D89810E94171A3F
:102690008A819B81AC81BD810196A11DB11D8A8378
:1026A0009B83AC83BD8389818A3011F0803421F70C
:1026B000C8010E94490489818034A1F63EE0A32E1E
:1026C000B12CAC0EBD1E2DE4222E312C2C0E3D1E45
:1026D000EA96BFAEAEAEEA978EE30E94171A80E28A
:1026E0000E94171A64E1C5010E946B128823A1F3AE
:1026F00043E050E06DE571E0C5010E943E1B892B6F
:10270000F9F4E3E0F0E0AE0EBF1ED5018C91882312
:1027100019F39101A501B301C2010E941A12882385
:1027200061F0B101C2010E94450F8C01892B29F093
:10273000C3010E948C053801CFCF87E491E084C1AA
:1027400064E471E0C5010E94351B892B81F528C026
:10275000F10101900020E9F78F01015010400219AA
:102760001309C1010E94031BF10180A184FF02C073
:102770008FE201C080E294E2F92EF01A01C080E2FB
:102780000E94171AFA94FFEFFF16C9F7F10163A12F
:1027900074A185A196A10E94A21A8AE00E94171A2C
:1027A000B101C3010E94F206882391F695CF44E05F
:1027B00050E06FE371E0C5010E943E1B892B09F0D8
:1027C00049C084E090E0A80EB91ED5018C91882301
:1027D00009F482CFA501B301C2010E943F124C014E
:1027E000892B21F0CC24DD24760127C080E391E001
:1027F0002BC1C701B6010E944F1A8AE30E94171A23
:102800008E010A5F1F4F80E20E94171AF801819122
:102810008F010E94261AEA968EAD9FADEA9708179F
:10282000190789F78AE00E94171A88E090E0A0E073
:10283000B0E0C80ED91EEA1EFB1E48E050E0BE0103
:102840006A5F7F4FC4010E944F04181619068CF26C
:10285000C401BAC06BE271E0C5010E94351B892B2F
:1028600059F4C2010E946111882309F035CF82E139
:1028700091E00E94101B30CF43E050E06EE071E029
:10288000C5010E943E1B892BD9F4A3E0B0E0AA0E3B
:10289000BB1EF5018081882309F41ECF9101A5019B
:1028A000B301C2010E941A12882339F0B101C2019A
:1028B0000E949D05882309F00FCF88EF90E0C4C0E7
:1028C00046E050E061EF70E0C5010E943E1B892B9D
:1028D000A1F486E090E0A80EB91ED5018C91882362
:1028E00009F4FACEA101B501C3010E94A90F882302
:1028F00009F0F2CE8BED90E0A7C046E050E064ED29
:1029000070E0C5010E943E1B892B09F07EC0E6E005
:10291000F0E0AE0EBF1ED5018C91882309F4DCCE09
:10292000850102C00F5F1F4FF8018081803219F0CE
:102930008823C1F7D1CED8011C92A501B301C201F1
:102940000E943F127C01892B19F485EC90E07CC039
:1029500020E030E040E050E017C0CA01B9012AE0B1
:1029600030E040E050E00E94981B9B01AC018D2DAF
:10297000992787FD9095C097AA2797FDA095BA2F14
:10298000280F391F4A1F5B1FF801D1800F5F1F4FAF
:102990008D2D80538A3008F32A833B834C835D83DB
:1029A00040E0BE016E5F7F4FC7010E94700D88231B
:1029B00071F483EB90E00E94101BC5010E94031B81
:1029C0008AE00E94171AC7010E94490485CE8CE351
:1029D0000E94171A80E20E94171A64E1CE010E9637
:1029E0000E946B12882379F3082F1127A801BE01DA
:1029F000625F7F4FC7010E94CE0D8017910739F3A8
:102A00008CE990E00E94101BDECF46E050E065E9C3
:102A100070E0C5010E943E1B892BA1F486E090E086
:102A2000A80EB91ED5018C91882309F455CEA101B9
:102A3000B501C3010E949310882309F04DCE8AE7A7
:102A400090E002C088E690E00E94101BC5010E9441
:102A5000031B8AE00E94171A3FCE0E94101B81E0E0
:102A600090E00C94001CFC01892B19F480E090E0AC
:102A70000895108681E090E008958F929F92AF9222
:102A8000BF92CF92DF92EF92FF920F93CF93DF939B
:102A9000CDB7DEB760970FB6F894DEBF0FBECDBFDF
:102AA0007C016B015A014901892B09F4AAC0672BEB
:102AB00009F4A7C004300CF0A4C007FD1DC0602FAE
:102AC000772767FD7095E4E0660F771FEA95E1F7D9
:102AD00062547E4F882777FD8095982F20E130E063
:102AE000AE014F5F5F4FF7010995882309F489C054
:102AF0008D81882309F485C08091B501882309F070
:102B000080C0EDEAF1E081E1DF011D928A95E9F7ED
:102B1000F092AE01E092AD01D092B001C092AF014F
:102B2000B092B201A092B1019092B4018092B3012F
:102B300007FD62C08D818093B5012A853327442724
:102B40005527542F432F322F22278B859927AA27C9
:102B5000BB27DC0199278827282B392B4A2B5B2B95
:102B600089859927AA27BB27282B392B4A2B5B2B32
:102B70008C859927AA27BB27B82FAA2799278827AA
:102B8000282B392B4A2B5B2B2093B6013093B701AE
:102B90004093B8015093B9012E8533274427552718
:102BA000542F432F322F22278F859927AA27BB27FF
:102BB000DC0199278827282B392B4A2B5B2B8D8505
:102BC0009927AA27BB27282B392B4A2B5B2B8889CF
:102BD0009927AA27BB27B82FAA2799278827282B08
:102BE000392B4A2B5B2B2093BA013093BB014093C6
:102BF000BC015093BD0103C08FEF8093B501CF019D
:102C000002C080E090E060960FB6F894DEBF0FBE81
:102C1000CDBFDF91CF910F91FF90EF90DF90CF90DC
:102C2000BF90AF909F908F90089586B182958F70DE
:102C300099278095909581709070089586B18295BE
:102C400086958770992780959095817090700895EA
:102C50008EBD0DB407FEFDCF8DB58F778DBD089568
:102C60008FEF8EBD0DB407FEFDCF8DB58F778DBD77
:102C70008EB599270895DF92EF92FF920F931F93DD
:102C8000D82E7A018B010E9430168D2D80640E940F
:102C90002816812F9927AA27BB270E942816C8012A
:102CA000AA27BB270E942816BB27A12F902F8F2D64
:102CB0000E9428168E2D0E942816DD2011F485E929
:102CC00001C08FEF0E94281610E00E9430168F3F3F
:102CD00019F41F5F1A30C9F799271F910F91FF90C0
:102CE000EF90DF90089581E090E008952F923F9259
:102CF0004F925F926F927F928F929F92AF92BF920C
:102D0000CF92DF92EF92FF920F931F93CF93DF93B7
:102D10003B014C012A01190167C0C12C4EEFD42E92
:102D20004FEFE42E4FEFF42EC620D720E820F920F5
:102D300083011170A12C32E0B32EA01AB10A2A141B
:102D40003B0408F451018091BE039091BF03A09110
:102D5000C003B091C103C816D906EA06FB0691F17B
:102D60002A98B701A60181E10E943B16882321F031
:102D70002A9A80E090E03EC00E9430168E3FE1F734
:102D8000CEEBD1E00E943016899383E0CE3BD8078A
:102D9000C9F7C092BE03D092BF03E092C003F09285
:102DA000C10302541E4FA501B801C2010E944C1B71
:102DB0004A0C5B1C0E9430160E9430162A9A0E9410
:102DC000301609C002541E4FA501B801C2010E946D
:102DD0004C1B4A0C5B1C2A183B08C501AA27BB27C1
:102DE000680E791E8A1E9B1E2114310409F095CFAE
:102DF00081E090E0DF91CF911F910F91FF90EF90D4
:102E0000DF90CF90BF90AF909F908F907F906F900A
:102E10005F904F903F902F9008952F923F924F9246
:102E20005F926F927F928F929F92AF92BF92CF925A
:102E3000DF92EF92FF920F931F93CF93DF935B018B
:102E40006C012A01390186B182958695877080FFD1
:102E500077C081C0E12C7EEFF72E7FEF072F7FEF49
:102E6000172FEA20FB200C211D21E501D170812CB8
:102E700062E0962E8C1A9D0A6814790408F44301C6
:102E80008091BE039091BF03A091C003B091C10394
:102E9000E816F9060A071B07C9F0209729F480E015
:102EA000881682E0980650F420E032E0A101C801C3
:102EB000B7010E947616882309F44DC0E092BE0344
:102EC000F092BF030093C0031093C1038EEB48162A
:102ED00081E0580639F0A401B201CE0182549E4F20
:102EE0000E944C1B2A98B801A70188E10E943B165A
:102EF000882311F02A9A2FC08EEF0E942816E10134
:102F000089910E94281683E0CE3BD807C9F78FEF3E
:102F10000E9428168FEF0E9428160E9430168F3FBD
:102F2000E1F7480C591C0E9430162A9A6818790853
:102F3000C401AA27BB27A80EB91ECA1EDB1E04C0E7
:102F40005EEB252E51E0352E6114710409F082CF1D
:102F500081E090E002C080E090E0DF91CF911F918E
:102F60000F91FF90EF90DF90CF90BF90AF909F9028
:102F70008F907F906F905F904F903F902F9008952B
:102F80004F925F926F927F928F929F92AF92BF9279
:102F9000CF92DF92EF92FF920F931F93CF93DF9325
:102FA0005B016C014A01E90138012701452B61F100
:102FB000012B51F1FF24232B11F5FF24F3941FC0A3
:102FC0009201B601A501C401F30109958C01009796
:102FD000F1F0FF2019F4C817D907B0F09801A40147
:102FE000C601B5010E940D17882371F0C801AA27F8
:102FF000BB27A80EB91ECA1EDB1EC01BD10BFF20AB
:10300000F9F62097E9F603C080E090E002C081E085
:1030100090E0DF91CF911F910F91FF90EF90DF90A3
:10302000CF90BF90AF909F908F907F906F905F9068
:103030004F9008952F923F924F925F926F927F929E
:103040008F929F92AF92BF92CF92DF92EF92FF92B8
:103050000F931F93CF93DF93CDB7DEB724970FB6AF
:10306000F894DEBF0FBECDBF4B015C013A013C833B
:103070002B832701DA82C982452BA1F12115310565
:1030800089F10217130770F1EF2861F119013094EB
:10309000219431083394021B130B6901EE24FF24A1
:1030A0002B813C81A301C501B4010E9476168823BF
:1030B000C9F029813A81B501A401C301F201099542
:1030C000882399F0020D131D8B819C81800F911F25
:1030D0002B813C818217930740F08C0C9D1CAE1C09
:1030E000BF1CDECF80E090E002C081E090E024963B
:1030F0000FB6F894DEBF0FBECDBFDF91CF911F9109
:103100000F91FF90EF90DF90CF90BF90AF909F9086
:103110008F907F906F905F904F903F902F90089589
:103120001F93CF93DF933C983D98239A259A229A38
:1031300024982A9A83E58CBD8DB58E7F8DBD86B18E
:1031400082958F7080FD17C010E00E9430161F5FBF
:103150001A30D9F72A98C0E0D0E040E050E060E0B3
:1031600070E080E00E943B16813051F081E0CF3F5B
:10317000D80721F42A9A80E090E041C02196EDCF53
:10318000C0E0D0E040E050E060E070E081E00E940C
:103190003B1680FF06C08FE7CF3FD80759F3219633
:1031A000F1CF40E052E060E070E080E10E943B1629
:1031B000882301F72A9A8CB58C7F8CBD8DB58160F0
:1031C0008DBD8FEF9FEFAFEFBFEF8093BE03909366
:1031D000BF03A093C003B093C10320E032E04EEBE5
:1031E00051E060E070E080E090E00E94761690E0B0
:1031F000882309F491E081E09827892F9927DF91AE
:10320000CF911F910895CF92DF92EF92FF920F938B
:103210001F93CF93DF93EC01892B09F4F1C086B1A2
:1032200082958F7080FDECC089E1FE0111928A9534
:10323000E9F72A9840E050E060E070E08AE00E9400
:103240003B16882309F061C00E9430168E3FE1F7DB
:103250008E0120E6E22EF12C0E943016282F802FBE
:103260008C1B883028F4833090F4882359F00CC0EC
:103270008D3018F4893080F40DC08D3029F18E30F6
:1032800079F526C028832CC0F801208329C0F801D5
:10329000218326C02A8724C03327442755270E2C94
:1032A00004C0220F331F441F551F0A94D2F78B8589
:1032B0009C85AD85BE85822B932BA42BB52B8B874C
:1032C0009C87AD87BE870CC02295207F2F8708C0C2
:1032D000922F92959F708F85892B8F872F70288BC7
:1032E0000F5F1F4F88EF9FEFE80EF91E90EDE91674
:1032F0009FEFF90609F0B0CF40E050E060E070E0E9
:1033000089E00E943B16882311F02A9A79C00E9416
:1033100030168E3FE1F7CC24DD24EE24FF2400E0BC
:1033200010E00E943016083021F1093040F40630D8
:1033300091F00730B0F4053009F058C008C00A30E9
:1033400041F10A3008F10E3009F050C03AC09FE058
:10335000C92EC8224BC0992783709070F82EEE2496
:1033600045C09927E82AF92AEE0CFF1CEE0CFF1C39
:103370003DC082958695869583709927E82AF92A1B
:103380000894E11CF11C32C0F3E0DF2ED822DD0CE2
:103390002DC0881F8827881FD82A970144275527C2
:1033A0008C2D992702968D0D911D04C0220F331F7D
:1033B000441F551F8A95D2F7298B3A8B4B8B5C8B18
:1033C00015C0282F332726FF02C081E08D8B25FFF3
:1033D00002C081E08E8B24FF02C081E08F8B2C70B5
:1033E00030703595279535952795288F0F5F1F4F9E
:1033F0000231110509F095CF2A9A81E090E002C0D0
:1034000080E090E0DF91CF911F910F91FF90EF90BE
:10341000DF90CF9008951092C50087E68093C40096
:1034200086E08093C20088E98093C10008951F93CD
:10343000182F8A3019F48DE00E94171A8091C0006D
:1034400085FFFCCF1093C6001F9108951F93182F7E
:1034500082958F708A3010F4805D01C0895A0E9475
:10346000171A812F99278F709070212F2F700A972C
:103470001CF4822F805D02C0822F895A0E94171A85
:103480001F9108950F931F938C01812F99270E94FC
:10349000261A802F0E94261A1F910F910895EF92ED
:1034A000FF920F931F937B018C01C801AA27BB27B2
:1034B0000E94421AC7010E94421A1F910F91FF9069
:1034C000EF900895DF92EF92FF920F931F93CF93A7
:1034D000DF93EC0100E117E220E0EE24FF24CE01AF
:1034E000B8010E94B71BD62E662329F4222319F4B3
:1034F0000130110529F48D2D805D0E94171A21E0FD
:10350000C8016AE070E00E94B71B0894E11CF11C3E
:1035100045E0E416F10471F08D2D9927AC01409F30
:10352000C001419F900D509F900D1124C81BD90BD5
:103530008B01D5CFDF91CF911F910F91FF90EF902D
:10354000DF9008954F925F926F927F928F929F9239
:10355000AF92BF92CF92DF92EF92FF920F931F93A1
:10356000CF93DF937B018C01A12C2AECB22E2AE9A8
:10357000C22E2BE3D22E4424C0E0D0E0C801B70114
:10358000A60195010E94DE1B522E222341F4442005
:1035900031F481E0A816B104C104D10431F4852DC1
:1035A000805D0E94171A44244394C601B5012AE0A5
:1035B00030E040E050E00E94DE1B39014A012196D4
:1035C000CA30D10579F0652D772788279927A6017C
:1035D00095010E94981BE61AF70A080B190B640163
:1035E0005301CCCFDF91CF911F910F91FF90EF90BE
:1035F000DF90CF90BF90AF909F908F907F906F9013
:103600005F904F900895CF93DF93EC0103C0219614
:103610000E94171A88818823D1F7DF91CF910895EE
:10362000CF93DF93EC01FE0121968491882319F05A
:103630000E94171AF8CFDF91CF9108959FB7789421
:1036400007C083B7816083BF889583B78E7F83BFB0
:103650008091C00087FFF5CF9FBF8091C6008D305D
:1036600009F48AE0992708951895FB01DC018D91F2
:10367000059080190110D9F3990B0895FB01DC0125
:103680004150504030F08D910590801919F4002080
:10369000B9F7881B990B0895FB01DC0102C001906A
:1036A0000D9241505040D8F70895DC0101C06D9350
:1036B00041505040E0F70895FC018191861721F0B8
:1036C0008823D9F7992708953197CF010895FB01F1
:1036D000DC018D91019080190110D9F3990B0895A7
:1036E000FB01DC014150504030F08D910190801978
:1036F00019F40020B9F7881B990B0895FB01DC0130
:103700004150504048F001900D920020C9F701C08F
:103710001D9241505040E0F70895FC0181E090E097
:103720000190061609F4CF010020D1F70197089502
:10373000629FD001739FF001829FE00DF11D649F95
:10374000E00DF11D929FF00D839FF00D749FF00D21
:10375000659FF00D9927729FB00DE11DF91F639FC2
:10376000B00DE11DF91FBD01CF0111240895AA1B61
:10377000BB1B51E107C0AA1FBB1FA617B70710F05C
:10378000A61BB70B881F991F5A95A9F7809590958E
:10379000BC01CD01089597FB092E07260AD077FDBD
:1037A00004D0E5DF06D000201AF4709561957F4FB4
:1037B0000895F6F7909581959F4F0895A1E21A2EEE
:1037C000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FC5
:1037D000A217B307E407F50720F0A21BB30BE40B15
:1037E000F50B661F771F881F991F1A9469F760955C
:1037F0007095809590959B01AC01BD01CF01089516
:02380000FFCFF8
:023802002F0095
:00000001FF
/Designs/Data_loggers/GPSRL02A/SW/logger/sd-reader.map
0,0 → 1,525
Archive member included because of file (symbol)
 
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_mulsi3.o)
fat16.o (__mulsi3)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodhi4.o)
fat16.o (__udivmodhi4)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_divmodhi4.o)
fat16.o (__divmodhi4)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodsi4.o)
fat16.o (__udivmodsi4)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o (exit)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
fat16.o (__do_copy_data)
/usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
fat16.o (__do_clear_bss)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp_P.o)
main.o (strcmp_P)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp_P.o)
main.o (strncmp_P)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memcpy.o)
fat16.o (memcpy)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memset.o)
fat16.o (memset)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strchr.o)
fat16.o (strchr)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp.o)
fat16.o (strcmp)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp.o)
fat16.o (strncmp)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncpy.o)
fat16.o (strncpy)
/usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strrchr.o)
fat16.o (strrchr)
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
LOAD fat16.o
LOAD main.o
LOAD partition.o
LOAD sd_raw.o
LOAD uart.o
LOAD /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a
LOAD /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a
LOAD /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x3802
*(.vectors)
.vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
.progmem.data 0x00000068 0x1d2 main.o
0x0000023a . = ALIGN (0x2)
0x0000023a __trampolines_start = .
*(.trampolines)
.trampolines 0x0000023a 0x0 linker stubs
*(.trampolines*)
0x0000023a __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000023a __ctors_start = .
*(.ctors)
0x0000023a __ctors_end = .
0x0000023a __dtors_start = .
*(.dtors)
0x0000023a __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000023a 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
0x0000023a __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000023a 0xc /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000246 0x16 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
0x00000246 __do_copy_data
.init4 0x0000025c 0x10 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
0x0000025c __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000026c 0x8 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
*(.init9)
*(.text)
.text 0x00000274 0x4 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
0x00000274 __vector_22
0x00000274 __vector_1
0x00000274 __vector_24
0x00000274 __vector_12
0x00000274 __bad_interrupt
0x00000274 __vector_6
0x00000274 __vector_3
0x00000274 __vector_23
0x00000274 __vector_25
0x00000274 __vector_11
0x00000274 __vector_13
0x00000274 __vector_17
0x00000274 __vector_19
0x00000274 __vector_7
0x00000274 __vector_5
0x00000274 __vector_4
0x00000274 __vector_9
0x00000274 __vector_2
0x00000274 __vector_21
0x00000274 __vector_15
0x00000274 __vector_8
0x00000274 __vector_14
0x00000274 __vector_10
0x00000274 __vector_16
0x00000274 __vector_20
.text 0x00000278 0x2016 fat16.o
0x00001898 fat16_resize_file
0x00000278 fat16_close
0x00000b24 fat16_reset_dir
0x00000b3a fat16_delete_file
0x00000c74 fat16_get_fs_free
0x00000c3a fat16_get_file_modification_date
0x00000de4 fat16_read_dir
0x00000c3c fat16_get_file_modification_time
0x00001ae0 fat16_seek_file
0x00000c3e fat16_get_fs_size
0x00000892 fat16_close_file
0x00001eea fat16_open_file
0x0000089e fat16_read_file
0x00001048 fat16_open
0x00001f52 fat16_create_file
0x00002126 fat16_create_dir
0x0000200a fat16_get_dir_entry_of_path
0x00001b9c fat16_write_file
0x00001e8a fat16_open_dir
0x00000b18 fat16_close_dir
.text 0x0000228e 0x7d8 main.o
0x0000228e get_datetime
0x0000256a main
.text 0x00002a66 0x1c4 partition.o
0x00002a66 partition_close
0x00002a7a partition_open
.text 0x00002c2a 0x7ec sd_raw.o
0x00002c2a sd_raw_available
0x00002f80 sd_raw_write_interval
0x00002cec sd_raw_read
0x00003120 sd_raw_init
0x00003034 sd_raw_read_interval
0x00003206 sd_raw_get_info
0x00002ce6 sd_raw_sync
0x00002c3c sd_raw_locked
0x00002e1a sd_raw_write
.text 0x00003416 0x254 uart.o
0x00003544 uart_putdw_dec
0x0000344c uart_putc_hex
0x00003606 uart_puts
0x00003620 uart_puts_p
0x00003416 uart_init
0x000034c4 uart_putw_dec
0x0000363c uart_getc
0x0000349e uart_putdw_hex
0x0000342e uart_putc
0x00003668 __vector_18
0x00003484 uart_putw_hex
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_mulsi3.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodhi4.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_divmodhi4.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodsi4.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
.text 0x0000366a 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
.text 0x0000366a 0x12 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp_P.o)
0x0000366a strcmp_P
.text 0x0000367c 0x1c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp_P.o)
0x0000367c strncmp_P
.text 0x00003698 0x12 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memcpy.o)
0x00003698 memcpy
.text 0x000036aa 0xe /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memset.o)
0x000036aa memset
.text 0x000036b8 0x16 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strchr.o)
0x000036b8 strchr
.text 0x000036ce 0x12 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp.o)
0x000036ce strcmp
.text 0x000036e0 0x1c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp.o)
0x000036e0 strncmp
.text 0x000036fc 0x1e /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncpy.o)
0x000036fc strncpy
.text 0x0000371a 0x16 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strrchr.o)
0x0000371a strrchr
0x00003730 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x00003730 0x3e /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_mulsi3.o)
0x00003730 __mulsi3
.text.libgcc 0x0000376e 0x28 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodhi4.o)
0x0000376e __udivmodhi4
.text.libgcc 0x00003796 0x26 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_divmodhi4.o)
0x00003796 __divmodhi4
0x00003796 _div
.text.libgcc 0x000037bc 0x44 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodsi4.o)
0x000037bc __udivmodsi4
.text.libgcc 0x00003800 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
.text.libgcc 0x00003800 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x00003800 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
0x00003800 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00003800 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
0x00003800 exit
0x00003800 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00003800 0x2 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
*(.fini0)
0x00003802 _etext = .
 
.data 0x00800100 0x2 load address 0x00003802
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
.data 0x00800100 0x0 fat16.o
.data 0x00800100 0x2 main.o
.data 0x00800102 0x0 partition.o
.data 0x00800102 0x0 sd_raw.o
.data 0x00800102 0x0 uart.o
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_mulsi3.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodhi4.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_divmodhi4.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodsi4.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp_P.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp_P.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memcpy.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memset.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strchr.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncpy.o)
.data 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strrchr.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800102 . = ALIGN (0x2)
0x00800102 _edata = .
0x00800102 PROVIDE (__data_end, .)
 
.bss 0x00800102 0x2c0 load address 0x00003804
0x00800102 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800102 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
.bss 0x00800102 0xab fat16.o
.bss 0x008001ad 0x0 main.o
.bss 0x008001ad 0x11 partition.o
.bss 0x008001be 0x204 sd_raw.o
.bss 0x008003c2 0x0 uart.o
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_mulsi3.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodhi4.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_divmodhi4.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_udivmodsi4.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_exit.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_copy_data.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/avr5/libgcc.a(_clear_bss.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp_P.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp_P.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memcpy.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memset.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strchr.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncpy.o)
.bss 0x008003c2 0x0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strrchr.o)
*(.bss*)
*(COMMON)
0x008003c2 PROVIDE (__bss_end, .)
0x00003802 __data_load_start = LOADADDR (.data)
0x00003804 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x008003c2 0x0
0x008003c2 PROVIDE (__noinit_start, .)
*(.noinit*)
0x008003c2 PROVIDE (__noinit_end, .)
0x008003c2 _end = .
0x008003c2 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.stab 0x00000000 0x6228
*(.stab)
.stab 0x00000000 0x378 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
.stab 0x00000378 0x2e14 fat16.o
0x2e20 (size before relaxing)
.stab 0x0000318c 0x1158 main.o
0x135c (size before relaxing)
.stab 0x000042e4 0x300 partition.o
0x4ec (size before relaxing)
.stab 0x000045e4 0xf24 sd_raw.o
0x10d4 (size before relaxing)
.stab 0x00005508 0x7a4 uart.o
0x9d8 (size before relaxing)
.stab 0x00005cac 0x84 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp_P.o)
0x90 (size before relaxing)
.stab 0x00005d30 0xc0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp_P.o)
0xcc (size before relaxing)
.stab 0x00005df0 0x84 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memcpy.o)
0x90 (size before relaxing)
.stab 0x00005e74 0x6c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(memset.o)
0x78 (size before relaxing)
.stab 0x00005ee0 0x9c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strchr.o)
0xa8 (size before relaxing)
.stab 0x00005f7c 0x84 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strcmp.o)
0x90 (size before relaxing)
.stab 0x00006000 0xc0 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncmp.o)
0xcc (size before relaxing)
.stab 0x000060c0 0xcc /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strncpy.o)
0xd8 (size before relaxing)
.stab 0x0000618c 0x9c /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/libc.a(strrchr.o)
0xa8 (size before relaxing)
 
.stabstr 0x00000000 0x2db7
*(.stabstr)
.stabstr 0x00000000 0x2db7 /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm168.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(sd-reader.out elf32-avr)
LOAD linker stubs
/Designs/Data_loggers/GPSRL02A/SW/logger/sd-reader.out
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL02A/SW/logger/sd-reader_config.h
0,0 → 1,44
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef SD_READER_CONFIG_H
#define SD_READER_CONFIG_H
 
/**
* \addtogroup config Sd-reader configuration
*
* @{
*/
 
/**
* \file
* Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1)
*
* \note This file contains only configuration items relevant to
* all sd-reader implementation files. For module specific configuration
* options, please see the files fat16_config.h, partition_config.h
* and sd_raw_config.h.
*/
 
/**
* Controls allocation of memory.
*
* Set to 1 to use malloc()/free() for allocation of structures
* like file and directory handles, set to 0 to use pre-allocated
* fixed-size handle arrays.
*/
#define USE_DYNAMIC_MEMORY 0
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/sd_raw.c
0,0 → 1,912
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#include <string.h>
#include <avr/io.h>
#include "sd_raw.h"
 
/**
* \addtogroup sd_raw MMC/SD card raw access
*
* This module implements read and write access to MMC and
* SD cards. It serves as a low-level driver for the higher
* level modules such as partition and file system access.
*
* @{
*/
/**
* \file
* MMC/SD raw access implementation (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* \addtogroup sd_raw_config MMC/SD configuration
* Preprocessor defines to configure the MMC/SD support.
*/
 
/**
* @}
*/
 
/* commands available in SPI mode */
 
/* CMD0: response R1 */
#define CMD_GO_IDLE_STATE 0x00
/* CMD1: response R1 */
#define CMD_SEND_OP_COND 0x01
/* CMD9: response R1 */
#define CMD_SEND_CSD 0x09
/* CMD10: response R1 */
#define CMD_SEND_CID 0x0a
/* CMD12: response R1 */
#define CMD_STOP_TRANSMISSION 0x0c
/* CMD13: response R2 */
#define CMD_SEND_STATUS 0x0d
/* CMD16: arg0[31:0]: block length, response R1 */
#define CMD_SET_BLOCKLEN 0x10
/* CMD17: arg0[31:0]: data address, response R1 */
#define CMD_READ_SINGLE_BLOCK 0x11
/* CMD18: arg0[31:0]: data address, response R1 */
#define CMD_READ_MULTIPLE_BLOCK 0x12
/* CMD24: arg0[31:0]: data address, response R1 */
#define CMD_WRITE_SINGLE_BLOCK 0x18
/* CMD25: arg0[31:0]: data address, response R1 */
#define CMD_WRITE_MULTIPLE_BLOCK 0x19
/* CMD27: response R1 */
#define CMD_PROGRAM_CSD 0x1b
/* CMD28: arg0[31:0]: data address, response R1b */
#define CMD_SET_WRITE_PROT 0x1c
/* CMD29: arg0[31:0]: data address, response R1b */
#define CMD_CLR_WRITE_PROT 0x1d
/* CMD30: arg0[31:0]: write protect data address, response R1 */
#define CMD_SEND_WRITE_PROT 0x1e
/* CMD32: arg0[31:0]: data address, response R1 */
#define CMD_TAG_SECTOR_START 0x20
/* CMD33: arg0[31:0]: data address, response R1 */
#define CMD_TAG_SECTOR_END 0x21
/* CMD34: arg0[31:0]: data address, response R1 */
#define CMD_UNTAG_SECTOR 0x22
/* CMD35: arg0[31:0]: data address, response R1 */
#define CMD_TAG_ERASE_GROUP_START 0x23
/* CMD36: arg0[31:0]: data address, response R1 */
#define CMD_TAG_ERASE_GROUP_END 0x24
/* CMD37: arg0[31:0]: data address, response R1 */
#define CMD_UNTAG_ERASE_GROUP 0x25
/* CMD38: arg0[31:0]: stuff bits, response R1b */
#define CMD_ERASE 0x26
/* CMD42: arg0[31:0]: stuff bits, response R1b */
#define CMD_LOCK_UNLOCK 0x2a
/* CMD58: response R3 */
#define CMD_READ_OCR 0x3a
/* CMD59: arg0[31:1]: stuff bits, arg0[0:0]: crc option, response R1 */
#define CMD_CRC_ON_OFF 0x3b
 
/* command responses */
/* R1: size 1 byte */
#define R1_IDLE_STATE 0
#define R1_ERASE_RESET 1
#define R1_ILL_COMMAND 2
#define R1_COM_CRC_ERR 3
#define R1_ERASE_SEQ_ERR 4
#define R1_ADDR_ERR 5
#define R1_PARAM_ERR 6
/* R1b: equals R1, additional busy bytes */
/* R2: size 2 bytes */
#define R2_CARD_LOCKED 0
#define R2_WP_ERASE_SKIP 1
#define R2_ERR 2
#define R2_CARD_ERR 3
#define R2_CARD_ECC_FAIL 4
#define R2_WP_VIOLATION 5
#define R2_INVAL_ERASE 6
#define R2_OUT_OF_RANGE 7
#define R2_CSD_OVERWRITE 7
#define R2_IDLE_STATE (R1_IDLE_STATE + 8)
#define R2_ERASE_RESET (R1_ERASE_RESET + 8)
#define R2_ILL_COMMAND (R1_ILL_COMMAND + 8)
#define R2_COM_CRC_ERR (R1_COM_CRC_ERR + 8)
#define R2_ERASE_SEQ_ERR (R1_ERASE_SEQ_ERR + 8)
#define R2_ADDR_ERR (R1_ADDR_ERR + 8)
#define R2_PARAM_ERR (R1_PARAM_ERR + 8)
/* R3: size 5 bytes */
#define R3_OCR_MASK (0xffffffffUL)
#define R3_IDLE_STATE (R1_IDLE_STATE + 32)
#define R3_ERASE_RESET (R1_ERASE_RESET + 32)
#define R3_ILL_COMMAND (R1_ILL_COMMAND + 32)
#define R3_COM_CRC_ERR (R1_COM_CRC_ERR + 32)
#define R3_ERASE_SEQ_ERR (R1_ERASE_SEQ_ERR + 32)
#define R3_ADDR_ERR (R1_ADDR_ERR + 32)
#define R3_PARAM_ERR (R1_PARAM_ERR + 32)
/* Data Response: size 1 byte */
#define DR_STATUS_MASK 0x0e
#define DR_STATUS_ACCEPTED 0x05
#define DR_STATUS_CRC_ERR 0x0a
#define DR_STATUS_WRITE_ERR 0x0c
 
#if !SD_RAW_SAVE_RAM
 
/* static data buffer for acceleration */
static uint8_t raw_block[512];
/* offset where the data within raw_block lies on the card */
static uint32_t raw_block_address;
#if SD_RAW_WRITE_BUFFERING
/* flag to remember if raw_block was written to the card */
static uint8_t raw_block_written;
#endif
 
#endif
 
/* private helper functions */
static void sd_raw_send_byte(uint8_t b);
static uint8_t sd_raw_rec_byte();
static uint8_t sd_raw_send_command_r1(uint8_t command, uint32_t arg);
static uint16_t sd_raw_send_command_r2(uint8_t command, uint32_t arg);
 
/**
* \ingroup sd_raw
* Initializes memory card communication.
*
* \returns 0 on failure, 1 on success.
*/
uint8_t sd_raw_init()
{
/* enable inputs for reading card status */
configure_pin_available();
configure_pin_locked();
 
/* enable outputs for MOSI, SCK, SS, input for MISO */
configure_pin_mosi();
configure_pin_sck();
configure_pin_ss();
configure_pin_miso();
 
unselect_card();
 
/* initialize SPI with lowest frequency; max. 400kHz during identification mode of card */
SPCR = (0 << SPIE) | /* SPI Interrupt Enable */
(1 << SPE) | /* SPI Enable */
(0 << DORD) | /* Data Order: MSB first */
(1 << MSTR) | /* Master mode */
(0 << CPOL) | /* Clock Polarity: SCK low when idle */
(0 << CPHA) | /* Clock Phase: sample on rising SCK edge */
(1 << SPR1) | /* Clock Frequency: f_OSC / 128 */
(1 << SPR0);
SPSR &= ~(1 << SPI2X); /* No doubled clock frequency */
 
/* initialization procedure */
if(!sd_raw_available())
return 0;
 
/* card needs 74 cycles minimum to start up */
for(uint8_t i = 0; i < 10; ++i)
{
/* wait 8 clock cycles */
sd_raw_rec_byte();
}
 
/* address card */
select_card();
 
/* reset card */
uint8_t response;
for(uint16_t i = 0; ; ++i)
{
response = sd_raw_send_command_r1(CMD_GO_IDLE_STATE, 0);
if(response == (1 << R1_IDLE_STATE))
break;
 
if(i == 0x1ff)
{
unselect_card();
return 0;
}
}
/* wait for card to get ready */
for(uint16_t i = 0; ; ++i)
{
response = sd_raw_send_command_r1(CMD_SEND_OP_COND, 0);
if(!(response & (1 << R1_IDLE_STATE)))
break;
 
if(i == 0x7fff)
{
unselect_card();
return 0;
}
}
 
/* set block size to 512 bytes */
if(sd_raw_send_command_r1(CMD_SET_BLOCKLEN, 512))
{
unselect_card();
return 0;
}
 
/* deaddress card */
unselect_card();
 
/* switch to highest SPI frequency possible */
SPCR &= ~((1 << SPR1) | (1 << SPR0)); /* Clock Frequency: f_OSC / 4 */
SPSR |= (1 << SPI2X); /* Doubled Clock Frequency: f_OSC / 2 */
 
#if !SD_RAW_SAVE_RAM
/* the first block is likely to be accessed first, so precache it here */
raw_block_address = 0xffffffff;
#if SD_RAW_WRITE_BUFFERING
raw_block_written = 1;
#endif
if(!sd_raw_read(0, raw_block, sizeof(raw_block)))
return 0;
#endif
 
return 1;
}
 
/**
* \ingroup sd_raw
* Checks wether a memory card is located in the slot.
*
* \returns 1 if the card is available, 0 if it is not.
*/
uint8_t sd_raw_available()
{
return get_pin_available() == 0x00;
}
 
/**
* \ingroup sd_raw
* Checks wether the memory card is locked for write access.
*
* \returns 1 if the card is locked, 0 if it is not.
*/
uint8_t sd_raw_locked()
{
return get_pin_locked() == 0x00;
}
 
/**
* \ingroup sd_raw
* Sends a raw byte to the memory card.
*
* \param[in] b The byte to sent.
* \see sd_raw_rec_byte
*/
void sd_raw_send_byte(uint8_t b)
{
SPDR = b;
/* wait for byte to be shifted out */
while(!(SPSR & (1 << SPIF)));
SPSR &= ~(1 << SPIF);
}
 
/**
* \ingroup sd_raw
* Receives a raw byte from the memory card.
*
* \returns The byte which should be read.
* \see sd_raw_send_byte
*/
uint8_t sd_raw_rec_byte()
{
/* send dummy data for receiving some */
SPDR = 0xff;
while(!(SPSR & (1 << SPIF)));
SPSR &= ~(1 << SPIF);
 
return SPDR;
}
 
/**
* \ingroup sd_raw
* Send a command to the memory card which responses with a R1 response.
*
* \param[in] command The command to send.
* \param[in] arg The argument for command.
* \returns The command answer.
*/
uint8_t sd_raw_send_command_r1(uint8_t command, uint32_t arg)
{
uint8_t response;
 
/* wait some clock cycles */
sd_raw_rec_byte();
 
/* send command via SPI */
sd_raw_send_byte(0x40 | command);
sd_raw_send_byte((arg >> 24) & 0xff);
sd_raw_send_byte((arg >> 16) & 0xff);
sd_raw_send_byte((arg >> 8) & 0xff);
sd_raw_send_byte((arg >> 0) & 0xff);
sd_raw_send_byte(command == CMD_GO_IDLE_STATE ? 0x95 : 0xff);
/* receive response */
for(uint8_t i = 0; i < 10; ++i)
{
response = sd_raw_rec_byte();
if(response != 0xff)
break;
}
 
return response;
}
 
/**
* \ingroup sd_raw
* Send a command to the memory card which responses with a R2 response.
*
* \param[in] command The command to send.
* \param[in] arg The argument for command.
* \returns The command answer.
*/
uint16_t sd_raw_send_command_r2(uint8_t command, uint32_t arg)
{
uint16_t response;
/* wait some clock cycles */
sd_raw_rec_byte();
 
/* send command via SPI */
sd_raw_send_byte(0x40 | command);
sd_raw_send_byte((arg >> 24) & 0xff);
sd_raw_send_byte((arg >> 16) & 0xff);
sd_raw_send_byte((arg >> 8) & 0xff);
sd_raw_send_byte((arg >> 0) & 0xff);
sd_raw_send_byte(command == CMD_GO_IDLE_STATE ? 0x95 : 0xff);
/* receive response */
for(uint8_t i = 0; i < 10; ++i)
{
response = sd_raw_rec_byte();
if(response != 0xff)
break;
}
response <<= 8;
response |= sd_raw_rec_byte();
 
return response;
}
 
/**
* \ingroup sd_raw
* Reads raw data from the card.
*
* \param[in] offset The offset from which to read.
* \param[out] buffer The buffer into which to write the data.
* \param[in] length The number of bytes to read.
* \returns 0 on failure, 1 on success.
* \see sd_raw_read_interval, sd_raw_write, sd_raw_write_interval
*/
uint8_t sd_raw_read(uint32_t offset, uint8_t* buffer, uint16_t length)
{
uint32_t block_address;
uint16_t block_offset;
uint16_t read_length;
while(length > 0)
{
/* determine byte count to read at once */
block_address = offset & 0xfffffe00;
block_offset = offset & 0x01ff;
read_length = 512 - block_offset; /* read up to block border */
if(read_length > length)
read_length = length;
#if !SD_RAW_SAVE_RAM
/* check if the requested data is cached */
if(block_address != raw_block_address)
#endif
{
#if SD_RAW_WRITE_BUFFERING
if(!raw_block_written)
{
if(!sd_raw_write(raw_block_address, raw_block, sizeof(raw_block)))
return 0;
}
#endif
 
/* address card */
select_card();
 
/* send single block request */
if(sd_raw_send_command_r1(CMD_READ_SINGLE_BLOCK, block_address))
{
unselect_card();
return 0;
}
 
/* wait for data block (start byte 0xfe) */
while(sd_raw_rec_byte() != 0xfe);
 
#if SD_RAW_SAVE_RAM
/* read byte block */
uint16_t read_to = block_offset + read_length;
for(uint16_t i = 0; i < 512; ++i)
{
uint8_t b = sd_raw_rec_byte();
if(i >= block_offset && i < read_to)
*buffer++ = b;
}
#else
/* read byte block */
uint8_t* cache = raw_block;
for(uint16_t i = 0; i < 512; ++i)
*cache++ = sd_raw_rec_byte();
raw_block_address = block_address;
 
memcpy(buffer, raw_block + block_offset, read_length);
buffer += read_length;
#endif
/* read crc16 */
sd_raw_rec_byte();
sd_raw_rec_byte();
/* deaddress card */
unselect_card();
 
/* let card some time to finish */
sd_raw_rec_byte();
}
#if !SD_RAW_SAVE_RAM
else
{
/* use cached data */
memcpy(buffer, raw_block + block_offset, read_length);
buffer += read_length;
}
#endif
 
length -= read_length;
offset += read_length;
}
 
return 1;
}
 
/**
* \ingroup sd_raw
* Continuously reads units of \c interval bytes and calls a callback function.
*
* This function starts reading at the specified offset. Every \c interval bytes,
* it calls the callback function with the associated data buffer.
*
* By returning zero, the callback may stop reading.
*
* \note Within the callback function, you can not start another read or
* write operation.
* \note This function only works if the following conditions are met:
* - (offset - (offset % 512)) % interval == 0
* - length % interval == 0
*
* \param[in] offset Offset from which to start reading.
* \param[in] buffer Pointer to a buffer which is at least interval bytes in size.
* \param[in] interval Number of bytes to read before calling the callback function.
* \param[in] length Number of bytes to read altogether.
* \param[in] callback The function to call every interval bytes.
* \param[in] p An opaque pointer directly passed to the callback function.
* \returns 0 on failure, 1 on success
* \see sd_raw_write_interval, sd_raw_read, sd_raw_write
*/
uint8_t sd_raw_read_interval(uint32_t offset, uint8_t* buffer, uint16_t interval, uint16_t length, sd_raw_read_interval_handler_t callback, void* p)
{
if(!buffer || interval == 0 || length < interval || !callback)
return 0;
 
#if !SD_RAW_SAVE_RAM
while(length >= interval)
{
/* as reading is now buffered, we directly
* hand over the request to sd_raw_read()
*/
if(!sd_raw_read(offset, buffer, interval))
return 0;
if(!callback(buffer, offset, p))
break;
offset += interval;
length -= interval;
}
 
return 1;
#else
/* address card */
select_card();
 
uint16_t block_offset;
uint16_t read_length;
uint8_t* buffer_cur;
uint8_t finished = 0;
do
{
/* determine byte count to read at once */
block_offset = offset & 0x01ff;
read_length = 512 - block_offset;
/* send single block request */
if(sd_raw_send_command_r1(CMD_READ_SINGLE_BLOCK, offset & 0xfffffe00))
{
unselect_card();
return 0;
}
 
/* wait for data block (start byte 0xfe) */
while(sd_raw_rec_byte() != 0xfe);
 
/* read up to the data of interest */
for(uint16_t i = 0; i < block_offset; ++i)
sd_raw_rec_byte();
 
/* read interval bytes of data and execute the callback */
do
{
if(read_length < interval || length < interval)
break;
 
buffer_cur = buffer;
for(uint16_t i = 0; i < interval; ++i)
*buffer_cur++ = sd_raw_rec_byte();
 
if(!callback(buffer, offset + (512 - read_length), p))
{
finished = 1;
break;
}
 
read_length -= interval;
length -= interval;
 
} while(read_length > 0 && length > 0);
/* read rest of data block */
while(read_length-- > 0)
sd_raw_rec_byte();
/* read crc16 */
sd_raw_rec_byte();
sd_raw_rec_byte();
 
if(length < interval)
break;
 
offset = (offset & 0xfffffe00) + 512;
 
} while(!finished);
/* deaddress card */
unselect_card();
 
/* let card some time to finish */
sd_raw_rec_byte();
 
return 1;
#endif
}
 
/**
* \ingroup sd_raw
* Writes raw data to the card.
*
* \note If write buffering is enabled, you might have to
* call sd_raw_sync() before disconnecting the card
* to ensure all remaining data has been written.
*
* \param[in] offset The offset where to start writing.
* \param[in] buffer The buffer containing the data to be written.
* \param[in] length The number of bytes to write.
* \returns 0 on failure, 1 on success.
* \see sd_raw_write_interval, sd_raw_read, sd_raw_read_interval
*/
uint8_t sd_raw_write(uint32_t offset, const uint8_t* buffer, uint16_t length)
{
#if SD_RAW_WRITE_SUPPORT
 
if(get_pin_locked())
return 0;
 
uint32_t block_address;
uint16_t block_offset;
uint16_t write_length;
while(length > 0)
{
/* determine byte count to write at once */
block_address = offset & 0xfffffe00;
block_offset = offset & 0x01ff;
write_length = 512 - block_offset; /* write up to block border */
if(write_length > length)
write_length = length;
/* Merge the data to write with the content of the block.
* Use the cached block if available.
*/
if(block_address != raw_block_address)
{
#if SD_RAW_WRITE_BUFFERING
if(!raw_block_written)
{
if(!sd_raw_write(raw_block_address, raw_block, sizeof(raw_block)))
return 0;
}
#endif
 
if(block_offset || write_length < 512)
{
if(!sd_raw_read(block_address, raw_block, sizeof(raw_block)))
return 0;
}
raw_block_address = block_address;
}
 
if(buffer != raw_block)
{
memcpy(raw_block + block_offset, buffer, write_length);
 
#if SD_RAW_WRITE_BUFFERING
raw_block_written = 0;
 
if(length == write_length)
return 1;
#endif
}
 
buffer += write_length;
 
/* address card */
select_card();
 
/* send single block request */
if(sd_raw_send_command_r1(CMD_WRITE_SINGLE_BLOCK, block_address))
{
unselect_card();
return 0;
}
 
/* send start byte */
sd_raw_send_byte(0xfe);
 
/* write byte block */
uint8_t* cache = raw_block;
for(uint16_t i = 0; i < 512; ++i)
sd_raw_send_byte(*cache++);
 
/* write dummy crc16 */
sd_raw_send_byte(0xff);
sd_raw_send_byte(0xff);
 
/* wait while card is busy */
while(sd_raw_rec_byte() != 0xff);
sd_raw_rec_byte();
 
/* deaddress card */
unselect_card();
 
length -= write_length;
offset += write_length;
 
#if SD_RAW_WRITE_BUFFERING
raw_block_written = 1;
#endif
}
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup sd_raw
* Writes a continuous data stream obtained from a callback function.
*
* This function starts writing at the specified offset. To obtain the
* next bytes to write, it calls the callback function. The callback fills the
* provided data buffer and returns the number of bytes it has put into the buffer.
*
* By returning zero, the callback may stop writing.
*
* \param[in] offset Offset where to start writing.
* \param[in] buffer Pointer to a buffer which is used for the callback function.
* \param[in] length Number of bytes to write in total. May be zero for endless writes.
* \param[in] callback The function used to obtain the bytes to write.
* \param[in] p An opaque pointer directly passed to the callback function.
* \returns 0 on failure, 1 on success
* \see sd_raw_read_interval, sd_raw_write, sd_raw_read
*/
uint8_t sd_raw_write_interval(uint32_t offset, uint8_t* buffer, uint16_t length, sd_raw_write_interval_handler_t callback, void* p)
{
#if SD_RAW_WRITE_SUPPORT
 
#if SD_RAW_SAVE_RAM
#error "SD_RAW_WRITE_SUPPORT is not supported together with SD_RAW_SAVE_RAM"
#endif
 
if(!buffer || !callback)
return 0;
 
uint8_t endless = (length == 0);
while(endless || length > 0)
{
uint16_t bytes_to_write = callback(buffer, offset, p);
if(!bytes_to_write)
break;
if(!endless && bytes_to_write > length)
return 0;
 
/* as writing is always buffered, we directly
* hand over the request to sd_raw_write()
*/
if(!sd_raw_write(offset, buffer, bytes_to_write))
return 0;
 
offset += bytes_to_write;
length -= bytes_to_write;
}
 
return 1;
 
#else
return 0;
#endif
}
 
/**
* \ingroup sd_raw
* Writes the write buffer's content to the card.
*
* \note When write buffering is enabled, you should
* call this function before disconnecting the
* card to ensure all remaining data has been
* written.
*
* \returns 0 on failure, 1 on success.
* \see sd_raw_write
*/
uint8_t sd_raw_sync()
{
#if SD_RAW_WRITE_SUPPORT
#if SD_RAW_WRITE_BUFFERING
if(raw_block_written)
return 1;
if(!sd_raw_write(raw_block_address, raw_block, sizeof(raw_block)))
return 0;
#endif
return 1;
#else
return 0;
#endif
}
 
/**
* \ingroup sd_raw
* Reads informational data from the card.
*
* This function reads and returns the card's registers
* containing manufacturing and status information.
*
* \note: The information retrieved by this function is
* not required in any way to operate on the card,
* but it might be nice to display some of the data
* to the user.
*
* \param[in] info A pointer to the structure into which to save the information.
* \returns 0 on failure, 1 on success.
*/
uint8_t sd_raw_get_info(struct sd_raw_info* info)
{
if(!info || !sd_raw_available())
return 0;
 
memset(info, 0, sizeof(*info));
 
select_card();
 
/* read cid register */
if(sd_raw_send_command_r1(CMD_SEND_CID, 0))
{
unselect_card();
return 0;
}
while(sd_raw_rec_byte() != 0xfe);
for(uint8_t i = 0; i < 18; ++i)
{
uint8_t b = sd_raw_rec_byte();
 
switch(i)
{
case 0:
info->manufacturer = b;
break;
case 1:
case 2:
info->oem[i - 1] = b;
break;
case 3:
case 4:
case 5:
case 6:
case 7:
info->product[i - 3] = b;
break;
case 8:
info->revision = b;
break;
case 9:
case 10:
case 11:
case 12:
info->serial |= (uint32_t) b << ((12 - i) * 8);
break;
case 13:
info->manufacturing_year = b << 4;
break;
case 14:
info->manufacturing_year |= b >> 4;
info->manufacturing_month = b & 0x0f;
break;
}
}
 
/* read csd register */
uint8_t csd_read_bl_len = 0;
uint8_t csd_c_size_mult = 0;
uint16_t csd_c_size = 0;
if(sd_raw_send_command_r1(CMD_SEND_CSD, 0))
{
unselect_card();
return 0;
}
while(sd_raw_rec_byte() != 0xfe);
for(uint8_t i = 0; i < 18; ++i)
{
uint8_t b = sd_raw_rec_byte();
 
switch(i)
{
case 5:
csd_read_bl_len = b & 0x0f;
break;
case 6:
csd_c_size = (uint16_t) (b & 0x03) << 8;
break;
case 7:
csd_c_size |= b;
csd_c_size <<= 2;
break;
case 8:
csd_c_size |= b >> 6;
++csd_c_size;
break;
case 9:
csd_c_size_mult = (b & 0x03) << 1;
break;
case 10:
csd_c_size_mult |= b >> 7;
 
info->capacity = (uint32_t) csd_c_size << (csd_c_size_mult + csd_read_bl_len + 2);
 
break;
case 14:
if(b & 0x40)
info->flag_copy = 1;
if(b & 0x20)
info->flag_write_protect = 1;
if(b & 0x10)
info->flag_write_protect_temp = 1;
info->format = (b & 0x0c) >> 2;
break;
}
}
 
unselect_card();
 
return 1;
}
 
/Designs/Data_loggers/GPSRL02A/SW/logger/sd_raw.h
0,0 → 1,139
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef SD_RAW_H
#define SD_RAW_H
 
#include <stdint.h>
#include "sd_raw_config.h"
 
/**
* \addtogroup sd_raw
*
* @{
*/
/**
* \file
* MMC/SD raw access header (license: GPLv2 or LGPLv2.1)
*
* \author Roland Riegel
*/
 
/**
* The card's layout is harddisk-like, which means it contains
* a master boot record with a partition table.
*/
#define SD_RAW_FORMAT_HARDDISK 0
/**
* The card contains a single filesystem and no partition table.
*/
#define SD_RAW_FORMAT_SUPERFLOPPY 1
/**
* The card's layout follows the Universal File Format.
*/
#define SD_RAW_FORMAT_UNIVERSAL 2
/**
* The card's layout is unknown.
*/
#define SD_RAW_FORMAT_UNKNOWN 3
 
/**
* This struct is used by sd_raw_get_info() to return
* manufacturing and status information of the card.
*/
struct sd_raw_info
{
/**
* A manufacturer code globally assigned by the SD card organization.
*/
uint8_t manufacturer;
/**
* A string describing the card's OEM or content, globally assigned by the SD card organization.
*/
uint8_t oem[3];
/**
* A product name.
*/
uint8_t product[6];
/**
* The card's revision, coded in packed BCD.
*
* For example, the revision value \c 0x32 means "3.2".
*/
uint8_t revision;
/**
* A serial number assigned by the manufacturer.
*/
uint32_t serial;
/**
* The year of manufacturing.
*
* A value of zero means year 2000.
*/
uint8_t manufacturing_year;
/**
* The month of manufacturing.
*/
uint8_t manufacturing_month;
/**
* The card's total capacity in bytes.
*/
uint32_t capacity;
/**
* Defines wether the card's content is original or copied.
*
* A value of \c 0 means original, \c 1 means copied.
*/
uint8_t flag_copy;
/**
* Defines wether the card's content is write-protected.
*
* \note This is an internal flag and does not represent the
* state of the card's mechanical write-protect switch.
*/
uint8_t flag_write_protect;
/**
* Defines wether the card's content is temporarily write-protected.
*
* \note This is an internal flag and does not represent the
* state of the card's mechanical write-protect switch.
*/
uint8_t flag_write_protect_temp;
/**
* The card's data layout.
*
* See the \c SD_RAW_FORMAT_* constants for details.
*
* \note This value is not guaranteed to match reality.
*/
uint8_t format;
};
 
typedef uint8_t (*sd_raw_read_interval_handler_t)(uint8_t* buffer, uint32_t offset, void* p);
typedef uint16_t (*sd_raw_write_interval_handler_t)(uint8_t* buffer, uint32_t offset, void* p);
 
uint8_t sd_raw_init();
uint8_t sd_raw_available();
uint8_t sd_raw_locked();
 
uint8_t sd_raw_read(uint32_t offset, uint8_t* buffer, uint16_t length);
uint8_t sd_raw_read_interval(uint32_t offset, uint8_t* buffer, uint16_t interval, uint16_t length, sd_raw_read_interval_handler_t callback, void* p);
uint8_t sd_raw_write(uint32_t offset, const uint8_t* buffer, uint16_t length);
uint8_t sd_raw_write_interval(uint32_t offset, uint8_t* buffer, uint16_t length, sd_raw_write_interval_handler_t callback, void* p);
uint8_t sd_raw_sync();
 
uint8_t sd_raw_get_info(struct sd_raw_info* info);
 
/**
* @}
*/
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/sd_raw_config.h
0,0 → 1,109
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of either the GNU General Public License version 2
* or the GNU Lesser General Public License version 2.1, both as
* published by the Free Software Foundation.
*/
 
#ifndef SD_RAW_CONFIG_H
#define SD_RAW_CONFIG_H
 
/**
* \addtogroup sd_raw
*
* @{
*/
/**
* \file
* MMC/SD support configuration (license: GPLv2 or LGPLv2.1)
*/
 
/**
* \ingroup sd_raw_config
* Controls MMC/SD write support.
*
* Set to 1 to enable MMC/SD write support, set to 0 to disable it.
*/
#define SD_RAW_WRITE_SUPPORT 1
 
/**
* \ingroup sd_raw_config
* Controls MMC/SD write buffering.
*
* Set to 1 to buffer write accesses, set to 0 to disable it.
*
* \note This option has no effect when SD_RAW_WRITE_SUPPORT is 0.
*/
#define SD_RAW_WRITE_BUFFERING 0
 
/**
* \ingroup sd_raw_config
* Controls MMC/SD access buffering.
*
* Set to 1 to save static RAM, but be aware that you will
* lose performance.
*
* \note When SD_RAW_WRITE_SUPPORT is 1, SD_RAW_SAVE_RAM will
* be reset to 0.
*/
#define SD_RAW_SAVE_RAM 1
 
/* defines for customisation of sd/mmc port access */
#if defined(__AVR_ATmega8__) || \
defined(__AVR_ATmega48__) || \
defined(__AVR_ATmega88__) || \
defined(__AVR_ATmega168__)
#define configure_pin_mosi() DDRB |= (1 << DDB3)
#define configure_pin_sck() DDRB |= (1 << DDB5)
#define configure_pin_ss() DDRB |= (1 << DDB2)
#define configure_pin_miso() DDRB &= ~(1 << DDB4)
 
#define select_card() PORTB &= ~(1 << PB2)
#define unselect_card() PORTB |= (1 << PB2)
#elif defined(__AVR_ATmega16__) || \
defined(__AVR_ATmega32__)
#define configure_pin_mosi() DDRB |= (1 << DDB5)
#define configure_pin_sck() DDRB |= (1 << DDB7)
#define configure_pin_ss() DDRB |= (1 << DDB4)
#define configure_pin_miso() DDRB &= ~(1 << DDB6)
 
#define select_card() PORTB &= ~(1 << PB4)
#define unselect_card() PORTB |= (1 << PB4)
#elif defined(__AVR_ATmega64__) || \
defined(__AVR_ATmega128__) || \
defined(__AVR_ATmega169__)
#define configure_pin_mosi() DDRB |= (1 << DDB2)
#define configure_pin_sck() DDRB |= (1 << DDB1)
#define configure_pin_ss() DDRB |= (1 << DDB0)
#define configure_pin_miso() DDRB &= ~(1 << DDB3)
 
#define select_card() PORTB &= ~(1 << PB0)
#define unselect_card() PORTB |= (1 << PB0)
#else
#error "no sd/mmc pin mapping available!"
#endif
 
#define configure_pin_available() DDRC &= ~(1 << DDC4)
#define configure_pin_locked() DDRC &= ~(1 << DDC5)
 
#define get_pin_available() ((PINC >> PC4) & 0x01)
#define get_pin_locked() ((PINC >> PC5) & 0x01)
 
/**
* @}
*/
 
/* configuration checks */
#if SD_RAW_WRITE_SUPPORT
#undef SD_RAW_SAVE_RAM
#define SD_RAW_SAVE_RAM 0
#else
#undef SD_RAW_WRITE_BUFFERING
#define SD_RAW_WRITE_BUFFERING 0
#endif
 
#endif
 
/Designs/Data_loggers/GPSRL02A/SW/logger/uart.c
0,0 → 1,198
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
 
#include <stdio.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/sfr_defs.h>
#include <avr/sleep.h>
 
#include "uart.h"
 
/* some mcus have multiple uarts */
#ifdef UDR0
#define UBRRH UBRR0H
#define UBRRL UBRR0L
#define UDR UDR0
 
#define UCSRA UCSR0A
#define UDRE UDRE0
#define RXC RXC0
 
#define UCSRB UCSR0B
#define RXEN RXEN0
#define TXEN TXEN0
#define RXCIE RXCIE0
 
#define UCSRC UCSR0C
#define URSEL
#define UCSZ0 UCSZ00
#define UCSZ1 UCSZ01
#define UCSRC_SELECT 0
#else
#define UCSRC_SELECT (1 << URSEL)
#endif
 
#ifndef USART_RXC_vect
#if defined(UART0_RX_vect)
#define USART_RXC_vect UART0_RX_vect
#elif defined(UART_RX_vect)
#define USART_RXC_vect UART_RX_vect
#elif defined(USART0_RX_vect)
#define USART_RXC_vect USART0_RX_vect
#elif defined(USART_RX_vect)
#define USART_RXC_vect USART_RX_vect
#elif defined(USART0_RXC_vect)
#define USART_RXC_vect USART0_RXC_vect
#elif defined(USART_RXC_vect)
#define USART_RXC_vect USART_RXC_vect
#else
#error "Uart receive complete interrupt not defined!"
#endif
#endif
 
#define BAUD 9600UL
#define UBRRVAL (F_CPU/(BAUD*16)-1)
#define USE_SLEEP 1
 
void uart_init()
{
/* set baud rate */
UBRRH = UBRRVAL >> 8;
UBRRL = UBRRVAL & 0xff;
/* set frame format: 8 bit, no parity, 1 bit */
UCSRC = UCSRC_SELECT | (1 << UCSZ1) | (1 << UCSZ0);
/* enable serial receiver and transmitter */
#if !USE_SLEEP
UCSRB = (1 << RXEN) | (1 << TXEN);
#else
UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE);
#endif
}
 
void uart_putc(uint8_t c)
{
if(c == '\n')
uart_putc('\r');
 
/* wait until transmit buffer is empty */
while(!(UCSRA & (1 << UDRE)));
 
/* send next byte */
UDR = c;
}
 
void uart_putc_hex(uint8_t b)
{
/* upper nibble */
if((b >> 4) < 0x0a)
uart_putc((b >> 4) + '0');
else
uart_putc((b >> 4) - 0x0a + 'a');
 
/* lower nibble */
if((b & 0x0f) < 0x0a)
uart_putc((b & 0x0f) + '0');
else
uart_putc((b & 0x0f) - 0x0a + 'a');
}
 
void uart_putw_hex(uint16_t w)
{
uart_putc_hex((uint8_t) (w >> 8));
uart_putc_hex((uint8_t) (w & 0xff));
}
 
void uart_putdw_hex(uint32_t dw)
{
uart_putw_hex((uint16_t) (dw >> 16));
uart_putw_hex((uint16_t) (dw & 0xffff));
}
 
void uart_putw_dec(uint16_t w)
{
uint16_t num = 10000;
uint8_t started = 0;
 
while(num > 0)
{
uint8_t b = w / num;
if(b > 0 || started || num == 1)
{
uart_putc('0' + b);
started = 1;
}
w -= b * num;
 
num /= 10;
}
}
 
void uart_putdw_dec(uint32_t dw)
{
uint32_t num = 1000000000;
uint8_t started = 0;
 
while(num > 0)
{
uint8_t b = dw / num;
if(b > 0 || started || num == 1)
{
uart_putc('0' + b);
started = 1;
}
dw -= b * num;
 
num /= 10;
}
}
 
void uart_puts(const char* str)
{
while(*str)
uart_putc(*str++);
}
 
void uart_puts_p(PGM_P str)
{
while(1)
{
uint8_t b = pgm_read_byte_near(str++);
if(!b)
break;
 
uart_putc(b);
}
}
 
uint8_t uart_getc()
{
/* wait until receive buffer is full */
#if USE_SLEEP
uint8_t sreg = SREG;
sei();
 
while(!(UCSRA & (1 << RXC)))
sleep_mode();
 
SREG = sreg;
#else
while(!(UCSRA & (1 << RXC)));
#endif
 
uint8_t b = UDR;
if(b == '\r')
b = '\n';
 
return b;
}
 
EMPTY_INTERRUPT(USART_RXC_vect)
 
/Designs/Data_loggers/GPSRL02A/SW/logger/uart.h
0,0 → 1,33
 
/*
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
 
#ifndef UART_H
#define UART_H
 
#include <stdint.h>
#include <avr/pgmspace.h>
 
void uart_init();
 
void uart_putc(uint8_t c);
 
void uart_putc_hex(uint8_t b);
void uart_putw_hex(uint16_t w);
void uart_putdw_hex(uint32_t dw);
 
void uart_putw_dec(uint16_t w);
void uart_putdw_dec(uint32_t dw);
 
void uart_puts(const char* str);
void uart_puts_p(PGM_P str);
 
uint8_t uart_getc();
 
#endif
 
/Designs/Data_loggers/GPSRL03A/glg.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL03A/glg.hex
0,0 → 1,677
:100000000C9441000C945E000C945E000C945E0015
:100010000C945E000C945E000C945E000C945E00E8
:100020000C945E000C945E000C945E000C9418031B
:100030000C945E000C945E000C945E000C945E00C8
:100040000C945E000C945E000C94B5000C945E0061
:100050000C945E000C9460000C945E000C945E00A6
:100060000C945E000C945E00244750524D430024D3
:100070004750474741002E6C6F6700244750524D50
:10008000430011241FBECFEFD4E0DEBFCDBF11E08F
:10009000A0E0B1E0E8E2FAE202C005900D92AC30D7
:1000A000B107D9F714E0ACE0B1E001C01D92AD3466
:1000B000B107E1F70E9435010C9412150C94000071
:1000C0001F920F920FB60F9211242F933F938F938D
:1000D000209178003091790080917C00203D31059D
:1000E00070F480910F018F3030F080916F0181604A
:1000F00080936F0106C08F5F80930F0102C0109242
:100100000F0181E02C32380770F080910E018F30A2
:1001100030F080916F018E7F80936F0106C08F5FFA
:1001200080930E0102C010920E013093750120934E
:10013000740182E480937C0080917C0030931002F3
:1001400020930F0281E480937C008FED80937A00EE
:100150008F913F912F910F900FBE0F901F90189588
:1001600060E070E081EA96E308951F920F920FB667
:100170000F9211248F939F93EF93FF939091C6005A
:1001800080917801863988F48F5F8093780180911F
:100190007601E82FF0E0EA58FE4F93838F5F8639AF
:1001A00008F080E08093760105C080916F01826045
:1001B00080936F01FF91EF919F918F910F900FBEF0
:1001C0000F901F90189590E052E848E901C090E028
:1001D00080916F0180FD46C0309177018091780158
:1001E000882311F420E013C0E32FF0E0EA58FE4F1B
:1001F0002381E32FEF5FF894809178018150809301
:1002000078017894E63908F0E0E0E0937701809196
:100210006F0181FF14C0F8941092C1001092770111
:1002200010927601109278015093C4004093C1005F
:1002300080916F018D7F80936F017894C8CF2223C6
:1002400039F2992319F4243209F0C2CFE92FF0E0F2
:10025000E35EFE4F20839F5F2A3029F0923508F03D
:10026000B6CFB6CF90E0892F0895A2E0B0E0EBE3DF
:10027000F1E00C94C7148DE085B98EE284B98FE368
:1002800088B917B88EEA8BB982E58AB980E58CBD4A
:1002900081E08DBD83ED90E3909389008093880089
:1002A0008AE08093810082E080936F0082E187BDC5
:1002B00082E484BD81E480937C008FED80937A009A
:1002C00078946DE272E080E00E947F09EE24FF24C2
:1002D00053E0A52E45E0B42E3DE1C32E31E0D32EF0
:1002E0004E010894811C911C28E1222E21E0322E1F
:1002F00090E7692E91E0792E80E0482E81E0582E1B
:100300001092C100299884E680931C0194E68091A4
:100310006F0180FF02C090931C0180911C01882313
:10032000B1F7299A8FEF80931C011FEF80916F0125
:1003300080FD05C080E00E94950F81FF02C01093F0
:100340001C0180911C01882389F791E00EC0A5BC97
:10035000B0921C0180911C018823E1F715BCB0927A
:100360001C0180911C018823E1F7915080F7F894DB
:100370001092C100109277011092760110927801CC
:1003800082E88093C40088E98093C10080916F0166
:100390008D7F80936F01789402C0EE24FF240E9429
:1003A000E300882309F4ACCF2BE730E0ADE1B1E006
:1003B000F9012F5F3F4F9491992329F08C91981761
:1003C00071F41196F5CFEDE1F1E082E09081913288
:1003D00020F331969C32D1F78150C1F77F01E114AF
:1003E000F104E9F2F70180818134C9F6EDE1F1E031
:1003F00089E09081913208F4F0C031969C32C9F7BF
:100400008150B9F77F01309709F4E7C08481958165
:1004100090931E0180931D0182819381909320010E
:1004200080931F018081918190932201809321010B
:1004300066E770E083E291E00E948F1142E16DE196
:1004400071E081E192E00E94D709892B09F0C7C0D1
:1004500040911B0250911C0260911D0270911E027E
:1004600081E192E00E943C05892B09F0B8C092E03E
:100470000EC0A5BCB0921C0180911C018823E1F73D
:1004800015BCB0921C0180911C018823E1F79150AA
:1004900080F785C02FE630E0ADE1B1E0F9012F5FD4
:1004A0003F4F9491992389F08C91981709F0AEC031
:1004B0001196F4CF1196F9012F5F3F4F9491992334
:1004C00021F08C919817B1F357C0042F10E09401DC
:1004D000A8016DE171E081E192E00E940E07892B95
:1004E00009F064C089819A810817190709F05EC074
:1004F0004AE050E068E171E08091740190917501EB
:100500000E94B3114AE050E060E771E080910F0271
:10051000909110020E94B3117F926F923F922F929E
:100520005F924F92DF92CF920E94D411F601019018
:100530000020E9F73197EC19FD099401AF016DE155
:1005400071E081E192E00E940E072DB73EB7285F6F
:100550003F4F0FB6F8943EBF0FBE2DBF892B41F51C
:10056000D6010D900020E9F71197AC19BD098981DA
:100570009A81A817B907E1F480916F0182FF0FC03B
:1005800081E192E00E94A906892B11F096E028C033
:10059000F89480916F018B7F80936F0178940E9413
:1005A000E300482F882309F075CF35C095E018C0C7
:1005B00098E016C0A5BC32E330931C0180911C0169
:1005C0008823E1F715BC82E380931C0180911C0114
:1005D0008823E1F7915070F793CE93E001C094E047
:1005E0001092C100299833E029E135BD20931C0108
:1005F00080911C018823E1F715BC20931C01809198
:100600001C018823E1F7915081F7FFCF28E630E005
:10061000ADE1B1E050CF1092C100299881E192E0A4
:100620000E940007892B11F097E0DACF91E0D2CF3A
:100630001F920F920FB60F9211242F938F939F93B7
:1006400080911C01882319F0815080931C018091B6
:100650000C0190910D01019690930D0180930C0176
:100660008055964448F010920D0110920C01809133
:100670006F01846080936F010E946F119F918F9131
:100680002F910F900FBE0F901F901895FC010097AF
:1006900069F0808191818617970741F480E00E947C
:1006A000950F282F30E02170307002C02CE030E030
:1006B000C9010895A0E0B0E0E0E6F3E00C94CB14AB
:1006C0004B015C01C0911001D0911101CC80DD8003
:1006D000EE80FF80C616D706E806F90609F44EC07C
:1006E0008F8D8823A1F180E2682E712C6C0E7D1E07
:1006F00001E0A7019601B30180E00E94FB0F892B66
:10070000D9F51F8E8C899D89A0E0B0E028853985B8
:100710004A855B85820F931FA41FB51FC816D90693
:10072000EA06FB06A0F41E8D10C08C899D89A0E00E
:10073000B0E0C80ED91EEA1EFB1E01E0A70196011B
:10074000B30180E00E94FB0F1150123070F781144A
:100750009104A104B10491F0BE01605E7F4F01E0FD
:10076000A501940180E00E949C0F892B29F48C82C2
:100770009D82AE82BF8202C080E001C081E0CDB721
:10078000DEB7EEE00C94E714A0E0B0E0EAECF3E0B2
:100790000C94CB14EC014B01E0901001F09011018E
:1007A000F701A084B184C284D384848D813021F088
:1007B000823009F072C05AC08E01000F111F0C0F59
:1007C0001D1F16950795B801672F7727669580E05E
:1007D00090E06A0D7B1D8C1D9D1D0E945A0388238D
:1007E00009F45BC0D801B17051E0652E712C6C2208
:1007F0007D22C0FF0AC0F701EA0FFB1F80A18F70A6
:10080000982D9295907F982B01C0982DAE0DBF1D0D
:10081000FD0190A3E801219681E0F701878FBE01D9
:10082000672F7727669580E090E06A0D7B1D8C1D11
:100830009D1D0E945A03882381F1DE01B17061146D
:10084000710439F034E0969487943A95E1F7982D45
:1008500008C0F701EA0FFB1F90A1907F892D8F70D0
:10086000982BAE0DBF1DFD0190A313C06D2F7727F0
:1008700080E090E06A0D7B1D8C1D9D1D0E945A0337
:10088000882359F0CC0FDD1FD170CE0DDF1D99A24A
:1008900088A281E0F701878F01C080E0CDB7DEB785
:1008A000EEE00C94E714A0E0B0E0E9E5F4E00C948D
:1008B000CE148C01E0901001F0901101823091056E
:1008C00008F467C0E7018E899F890817190708F0A7
:1008D00060C0A884B984CA84DB848C8D813021F007
:1008E000823009F056C040C0E801CC0FDD1FC00FB8
:1008F000D11FD695C795BE01672F7727669580E0F3
:1009000090E06A0D7B1D8C1D9D1D0E945A0388235B
:1009100009F43FC0FE01F170EE0DFF1D90A021967D
:10092000BE01672F7727669580E090E06A0D7B1DFA
:100930008C1D9D1D0E945A03882359F1292D30E0FA
:10094000D170EC0EFD1EF70190A180E0282B392B11
:1009500000FF07C0F90194E0F695E7959A95E1F755
:100960001AC0F901FF7017C0612F772780E090E06F
:100970006A0D7B1D8C1D9D1D0E945A03882349F022
:10098000000F111F1170E00EF11EE701E8A1F9A19F
:1009900002C0E1E0F0E0CF01CDB7DEB7EBE00C94B0
:1009A000EA14A0E0B0E0E7EDF4E00C94CF147C0191
:1009B000C0901001D0901101F601A688B788009769
:1009C00049F4008D118D0230110588F00A151B05C0
:1009D00070F40FC00E9453049C018230910508F40A
:1009E00040C08A159B0508F441C0870102C001E0A0
:1009F00010E0E8012196CA15DB0528F00230110548
:100A000098F1C2E0D0E0CE010E9453049C0100970F
:100A100039F08130910551F1C017D10759F724C041
:100A20001C2F0D2F6FEF7FEFCE010E94C403882390
:100A3000C1F0E114F10431F0BE01C7010E94C4030A
:100A4000882379F0F601108F018F828D938DFFEF4F
:100A50008F3F9F0721F00197F601938F828F9E01B0
:100A600005C021E030E002C020E030E0C901CDB790
:100A7000DEB7EAE00C94EB14A0E0B0E0E2E4F5E0CD
:100A80000C94CB14EC017A018B016C807D80688121
:100A90007981C3010E9446034C01009709F0D6C03A
:100AA0008A8187FDD0C0AA84BB84CC84DD84AE1447
:100AB000BF04C006D10610F481FF02C057016801CF
:100AC0001E821F821886198681E08B83A114B104CF
:100AD000C104D10409F49DC06E857F85611571053F
:100AE00071F480E090E00E94D104BC018130910556
:100AF00009F4A6C09F878E87009709F48AC0F30186
:100B0000858DE82EFF2400E010E0F9E0EE0CFF1CDC
:100B1000001F111FFA95D1F7798B688BEA14FB043B
:100B20000C051D0558F58A8181FF04C0CB010E9488
:100B3000D10403C0CB010E945304BC010097E1F033
:100B40008130910509F47CC0F30186899789681783
:100B5000790708F075C08E819F81A885B9858E0DB3
:100B60009F1DA01FB11F8E839F83A887B987AE18D2
:100B7000BF08C00AD10AD0CF57016801D601C5010C
:100B80000197A109B109E9E0B695A79597958795D1
:100B9000EA95D1F7F82E00911001109111016250E1
:100BA0007040F8018689978902976817790728F0BD
:100BB00020E030E040E050E014C080E090E0F80138
:100BC000258D30E040E050E00E9486149B01AC018E
:100BD000F80180899189A289B389280F391F4A1F9A
:100BE0005B1F2F0D311D411D511D2A8B3B8B4C8BE3
:100BF0005D8BF301858D8F198B838E819F81A885F5
:100C0000B9858A0D9B1DAC1DBD1D8E839F83A88752
:100C1000B9876A8161FF1AC02E813F814885598555
:100C20008A859B85AC85BD8582179307A407B50788
:100C300068F42A873B874C875D8760626A8306C0B9
:100C40008A8180688A8368E0862E912CC401CDB7A2
:100C5000DEB7EEE00C94E714EF92FF920F931F9330
:100C6000CF93DF938C01C0911001D0911101FC0151
:100C7000E280F3800894E11CF11CC7018F70907032
:100C8000892B09F05BC082859385A485B585019683
:100C9000A11DB11D82879387A487B58740855185A3
:100CA0004115510539F48A819B81E816F90608F44B
:100CB00045C049C08D8D90E001979701A4E036951D
:100CC0002795AA95E1F782239323892BB9F5CA01C9
:100CD0000E945304BC0182309105A8F18E899F893E
:100CE0006817790780F5F80171876087C091100156
:100CF000D0911101625070408E899F8902976817C8
:100D0000790728F020E030E040E050E012C080E0B9
:100D100090E02D8D30E040E050E00E9486149B0171
:100D2000AC0188899989AA89BB89280F391F4A1F74
:100D30005B1FF8012287338744875587F801F382C8
:100D4000E28281E001C080E0CDB7DEB7E6E00C943E
:100D5000EF14EF92FF920F931F93CF93DF93EC0169
:100D6000688179818C819D810E9446037C01009776
:100D700009F040C08A8185FF3DC06E897F89888DDA
:100D8000998D0E945A03882391F10A8D1B8DF801D9
:100D90008385806283878A859B85AC85BD85848FAA
:100DA000958FA68FB78F8E859F85938F828F0E9498
:100DB000B000F801668B778B808F918F8A818F7D51
:100DC0008A83E0911001F091110181E0878F60E04A
:100DD00070E080E090E00E945A03882341F040E0F8
:100DE00050E063E080E00E947710892B19F0B8E0B2
:100DF000EB2EF12CC701CDB7DEB7E6E00C94EF1473
:100E0000CF93DF93EC010E94A9069C01009711F497
:100E10001D821C82C901DF91CF910895A0E0B0E04E
:100E2000E4E1F7E00C94C814EC01162F072F7A01C7
:100E30003901AC80BD80F90111821082688179810D
:100E4000C5010E9446034C01009709F03BC18A810D
:100E500087FD35C181FD04C036E0832E912C32C15F
:100E60002A853B854C855D85C701A0E0B0E0820FF7
:100E7000931FA41FB51F82179307A407B50708F493
:100E800021C1812F902F9C016901412C22E0522E1B
:100E900033243394F8C02E813F8148855985DA0187
:100EA000C9019170A070B0700097A105B10509F05B
:100EB000B1C08B8181508B83882349F02A893B897B
:100EC0004C895D892F5F3F4F4F4F5F4F51C02115B8
:100ED00031054105510569F46E857F856115710500
:100EE00089F480E090E00E94D104BC019F878E8746
:100EF00005C0888999890E94D104BC0161157105DA
:100F000009F4C5C06130710509F4D6C0F5018689C0
:100F100097896817790708F0CFC0798B688B0091A3
:100F200010011091110162507040F8018689978973
:100F300002976817790728F020E030E040E050E0A1
:100F400014C080E090E0F801258D30E040E050E0F2
:100F50000E9486149B01AC01F80180899189A289C5
:100F6000B389280F391F4A1F5B1FF501858D8B83BD
:100F70002A8B3B8B4C8B5D8B0F2D069561F16B8122
:100F8000102F601708F4162F012FB60180E00E9481
:100F9000FB0F892B09F090C08B818F5F811B8B83A6
:100FA000812F90E001979C01442737FD4095542FF5
:100FB0008C010F5F1F4F8A899B89AC89BD89820F85
:100FC000931FA41FB51F8A8B9B8BAC8BBD8B102FDF
:100FD0000027110F3EC02E813F81488559858A85A3
:100FE0009B85AC85BD85281739074A075B0790F0BC
:100FF00060E070E080E090E00E945A03882309F4EA
:101000005BC08A899B89AC89BD89F50184839583FE
:10101000A683B7836A897B898C899D890E945A033C
:10102000882309F449C02E813F813170C201821B9F
:10103000930B87018E159F0508F48C01205E3F4FAE
:101040002A0D3B1DA801B601C9010E94A311F5019B
:10105000378EC00ED11EC801A0E0B0E02E813F81C6
:1010600048855985280F391F4A1F5B1F2E833F83F0
:1010700048875987F30180819181800F911F918367
:101080008083E01AF10AE114F10409F004CF2E8103
:101090003F81488559858A859B85AC85BD858217AA
:1010A0009307A407B50720F42A873B874C875D8701
:1010B0008A8180628A8306C08A8180688A8388E008
:1010C000882E912CC401CDB7DEB7E1E10C94E41475
:1010D000A0E0B0E0EEE6F8E00C94C914EC01162FA5
:1010E000072F7A0139018C809D80F90111821082CD
:1010F00068817981C4010E9446035C01009709F070
:10110000F8C08A8187FDF2C080FD04C076E0A72E7A
:10111000B12CEFC02A853B854C855D858E819F81F2
:10112000A885B985281B390B4A0B5B0BC701A0E0CA
:10113000B0E0281739074A075B0708F47901812FC7
:10114000902F9C016901412C62E0562EC7C02E8170
:101150003F8148855985DA01C9019170A070B0704E
:101160000097A105B10509F084C08B8181508B8364
:10117000882349F02A893B894C895D892F5F3F4F3D
:101180004F4F5F4F43C0211531054105510519F4FB
:101190006E857F8505C0888999890E945304BC01AA
:1011A0006230710508F49FC0F40186899789681739
:1011B000790708F098C0798B688B00911001109125
:1011C000110162507040F80186899789029768176B
:1011D000790728F020E030E040E050E014C080E0E3
:1011E00090E0F801258D30E040E050E00E94861448
:1011F0009B01AC01F80180899189A289B389280FEC
:10120000391F4A1F5B1FF401858D8B832A8B3B8B13
:101210004C8B5D8B0F2D069561F16B81102F601744
:1012200008F4162F012FB60180E00E949C0F892B35
:1012300009F059C08B818F5F811B8B83812F90E0D8
:1012400001979C01442737FD4095542F8C010F5F77
:101250001F4F8A899B89AC89BD89820F931FA41F68
:10126000B51F8A8B9B8BAC8BBD8B102F0027110F6A
:101270001BC06A897B898C899D890E945A038823B7
:1012800091F18E819F8191709201281B390B87010A
:101290002E153F0508F489018096880D991DA80137
:1012A000BC01C6010E94A311C00ED11EC801A0E05E
:1012B000B0E02E813F8148855985280F391F4A1F8C
:1012C0005B1F2E833F8348875987F301808191817B
:1012D000800F911F91838083E01AF10AE114F104D9
:1012E00009F035CF06C08A8180688A8348E0A42E41
:1012F000B12CC501CDB7DEB7E0E10C94E514CF9376
:10130000DF93FB01882319F025E030E01DC0A09198
:101310001001B091110170931101609310011097A9
:1013200041F080E292E0ED019C01199221503040A1
:10133000E1F7309739F080E292E0DF01EC011D9295
:101340002197E9F720E030E0C901DF91CF910895BE
:101350000F93CF93DF939B01AC01C0911001D0910B
:101360001101BE01605E7F4F01E080E00E949C0F92
:10137000892BC1F4C25EDD4F88819981CE51D24064
:1013800085559A4A79F443E050E067E071E0CE0178
:101390008A5A9F4F0E9496119C0180E0232B19F0DE
:1013A00081E001C082E0DF91CF910F910895ADE11E
:1013B000B0E0EDEDF9E00C94C7149D8F8C8F3B01EC
:1013C0008090100190901101FC011582148203C0DD
:1013D0000894611C711CF30180818032C9F38F3243
:1013E00019F40894611C711C8114910409F417C14B
:1013F000F42FFF71FB8F142F1E71F401848D88234D
:1014000059F080E00E94950F80FD06C0112309F479
:10141000ABC382FD07C1A8C380E292E0F4019C0146
:10142000119221503040E1F780E00E94B80E80FF19
:1014300003C021E030E08BC3112311F082FDF2C024
:1014400060E070E080E090E00E94A809813021F027
:10145000EE24FF2487011EC082EE91E0880E991EC3
:10146000F40180812EE13EEF820E931E882309F461
:10147000DCC086EE91E0880E991EF401E080F180D8
:10148000028113812AE13EEF820E931EC801B7014B
:101490000E94A809882309F0C8C0F40183A594A577
:1014A0008050924009F0C1C0F40186A997A9BC01FF
:1014B00080E090E0611571058105910569F424E4EF
:1014C00030E0820E931EF4016081718182819381EC
:1014D0002CEB3FEF820E931EF401758B648B20A9D9
:1014E000268F30E040E050E00E9486145B016C01E2
:1014F000F40186A597A5A0E0B0E0E80EF91E0A1F4A
:101500001B1FE086F1860287138785A5858F21A999
:1015100032A93383228383A994A97C0100E010E0DF
:10152000E114F1040105110569F480E490E0880EEE
:10153000991EF401E080F1800281138180EC9FEF1D
:10154000880E991EF40186A597A5A0E0B0E0E81AE0
:10155000F90A0A0B1B0BEA18FB080C091D09A4E089
:1015600036952795AA95E1F7C901A0E0B0E0E81A01
:10157000F90A0A0B1B0B258D30E040E050E0C80152
:10158000B7010E94A5142E5F3F4F4F4F5F4FF401EC
:10159000378B268B283FFFE03F07F0E04F07F0E056
:1015A0005F0710F461E006C0285F3F4F40405040A5
:1015B000E0F562E0F4012085318542855385D6014E
:1015C000C501820F931FA41FB51F84879587A68727
:1015D000B7878281938174E0969587957A95E1F734
:1015E000A0E0B0E0820F931FA41FB51F8A0D9B1DC2
:1015F000AC1DBD1D808B918BA28BB38B648F8FEF45
:101600009FEF938F828F8091120190911301019629
:10161000909313018093120191838083A5C22AE0E5
:1016200030E095C229E030E092C22BE030E08FC27A
:101630002E010894411C511C92E0292E312C4BE0C4
:1016400050E060E270E0C2010E94AC1120E048E08E
:1016500090E038E102C028E04BE0F30111913F0136
:10166000112311F01F3249F4222309F4C7C0392392
:101670003C87113009F044C0C1C0113208F4BEC02B
:101680001F3709F4BBC01E3241F490FDB7C02223BE
:1016900009F4B4C02930F8F2B1C0123209F4AEC076
:1016A0001A3220F11D3208F4A9C01A33F8F01034B0
:1016B00008F4A4C090FD1AC01C3709F49FC0812F04
:1016C0008B55833008F49AC0865E8A3128F44830FE
:1016D00011F4377F01C03F7E812F81568A3130F46B
:1016E0001052483011F4986001C09061241708F03E
:1016F00085C09E7FF201E20FF11D10832F5FADCFF9
:101700006F89788D898D9A8D0E945A03882331F4D0
:1017100090E09C01590128E030E084C02F85388991
:101720002F70307085E0220F331F8A95E1F7F601A4
:10173000E20FF31F80A18823E1F0853EA1F000E2D3
:10174000A02EB12CA20EB31EAC0CBD1CF5018385DE
:10175000082F83FD08C04BE050E0B201C5010E9494
:101760009611009751F0CE010D960E942C06882309
:1017700039F6112309F049C04FC0112319F420E0B4
:1017800030E050C004FF41C0F501E28CF38CFE8ACA
:10179000ED8A0091100110911101B7016250704063
:1017A000F8018689978902976817790728F020E061
:1017B00030E040E050E014C080E090E0F801258D7A
:1017C00030E040E050E00E9486149B01AC01F8013B
:1017D00080899189A289B389280F391F4A1F5B1F0D
:1017E000FC8AEB8A2F8B388F498F5A8F388A2F8645
:1017F00026CF20E030E0AA24BB2414C080E090E093
:101800009C01590124E030E00DC080E090E09C0193
:10181000590123E030E006C080E090E09C015901CE
:1018200022E030E0FB8D4F2F50E0CA018C719070A8
:10183000892B09F441C12115310509F4D6C02230A4
:10184000310509F084C160901001709011010B897D
:101850001C890115110551F11E8B0D8BB8016250C9
:101860007040F3018689978902976817790728F0F5
:1018700020E030E040E050E014C080E090E0F30170
:10188000258D30E040E050E00E9486149B01AC01C1
:10189000F30180899189A289B389280F391F4A1FD2
:1018A0005B1F2F8B388F498F5A8F09C0F3018485B6
:1018B0009585A685B7858F8B988FA98FBA8F188A43
:1018C0001F86BDE0EB2EF12CEC0EFD1E6F89788D8E
:1018D000898D9A8D0E945A03882309F433C1EF85BC
:1018E000F889EF70F070A5E0EE0FFF1FAA95E1F701
:1018F000B0965301AE0EBF1EB097E60DF71D80A146
:10190000882309F44CC1853E09F449C1C7010E94EE
:101910002C068823D9F60115110509F410C18D890B
:101920009E890E94D1048C01009709F408C181307E
:10193000910509F407C160E070E080E090E00E944A
:101940005A03882309F4FEC0A0901001B090110141
:10195000B80162507040F50186899789029768172F
:10196000790720F0CC24DD24760114C080E090E0DB
:10197000F501258D30E040E050E00E9486146B01B7
:101980007C01F50180899189A289B389C80ED91E8D
:10199000EA1EFB1EF301C482D582E682F782E0E2F2
:1019A000AE2EB12CA60CB71C80E092E0F5019C0194
:1019B000119221503040E1F7F301158D10C001E084
:1019C000A7019601B50180E00E94FB0F892B09F069
:1019D000B9C00894C11CD11CE11CF11C1150112389
:1019E00071F781E0F301878FDAC0F2FF03C027E0CF
:1019F00030E0ADC0A114B10409F4A1C0F5018385A4
:101A0000817109F09CC043FF42C0C28CD38C138EFD
:101A1000128E148E158E168E178E81E0F401878F2C
:101A20002480358046805780E0901001F0901101AD
:101A300086011CC0C8010E9453043C0181309105FD
:101A400009F480C060E070E0C8010E94C4038823EC
:101A500009F478C0F701828D938DFFEF8F3F9F07C8
:101A600021F00196F701938F828F830102301105D7
:101A700008F472C0F7018689978908171907D0F210
:101A80006BC00894C108D108F401D18EC08EFB8DC3
:101A9000F3FF22C080E2F50183870E94B000F501C8
:101AA000668B778B808F918F66877787808B918B02
:101AB00081E0F401878F10C02115310509F047C07E
:101AC000A114B10409F441C0F501838584FD3DC032
:101AD00041FF02C080FD33C0F40184819581A6815D
:101AE000B781EC8DFD8D868B978BA08FB18FB38ED8
:101AF000A28E2B8D2283F501828D938DEC8DFD8D31
:101B000097878687F501848D958DA68DB78DEC8D91
:101B1000FD8D82879387A487B587168217821086EA
:101B2000118681E0838395828482F4018081918192
:101B3000EC8DFD8D9183808320E030E008C026E0AD
:101B400030E005C028E030E002C022E030E0C9010A
:101B50006D96E2E10C94E314C201B1010E945A03B4
:101B6000882309F08ECFEECFC0901001D0901101E4
:101B7000F601848595851C8A1B8A1E8A1D8AA0E031
:101B8000B0E08F8B988FA98FBA8F188A1F86DA8A58
:101B9000C98AF3018081882309F04ACD2ACE80E2E8
:101BA000F50111928A95E9F7D501FE0131968BE096
:101BB00001900D928150E1F78C85F5018487FB8DB2
:101BC000F860FB8F64CFFC018AE0809315019FEFE2
:101BD0009EBD0DB407FEFDCF8EB58F3F29F48091D9
:101BE00015018823A9F722C08E3F01F59FEF9EBD06
:101BF0000DB407FEFDCF8EB580839EBD0DB407FEEC
:101C0000FDCF8EB581836250704011F03296EFCFD8
:101C10008FEF8EBD0DB407FEFDCF8EB58FEF8EBD5D
:101C20000DB407FEFDCF8EB581E0089580E00895E4
:101C3000FC0182E3809316018FEF8EBD0DB407FE89
:101C4000FDCF8EB59FEF9EBD0DB407FEFDCF8EB5C7
:101C50008F3F31F0809116018823A9F790E02EC0C4
:101C60006EBD0DB407FEFDCF6D3F11F491E026C0AF
:101C700090E080818EBD0DB407FEFDCF81818EBDC9
:101C80000DB407FEFDCF915011F03296F2CF8FEFD9
:101C90008EBD0DB407FEFDCF8FEF8EBD0DB407FED8
:101CA000FDCF8FEF8EBD0DB407FEFDCF8EB590E05A
:101CB0008F71853009F091E081E09827892F089590
:101CC000282F82E3809316018FEF8EBD0DB407FE9F
:101CD000FDCF8EB59FEF9EBD0DB407FEFDCF8EB537
:101CE0008F3F31F0809116018823A9F78FEF089577
:101CF0002EBD0DB407FEFDCF872F9927AA27BB273E
:101D00008EBD0DB407FEFDCFCB01AA27BB278EBD2C
:101D10000DB407FEFDCFBB27A72F962F852F8EBDB5
:101D20000DB407FEFDCF4EBD0DB407FEFDCF203430
:101D300011F485E905C0283411F487E801C080E07A
:101D40008EBD0DB407FEFDCF2C3431F48FEF8EBD68
:101D50000DB407FEFDCF8EB59AE02FEF2EBD0DB46A
:101D600007FEFDCF8EB587FF02C09150B9F70895E9
:101D7000A4E0B0E0EEEBFEE00C94D314882311F065
:101D800081E0CFC080910B0181FDC9C08AE09FEF47
:101D90009EBD0DB407FEFDCF2EB58150C9F72A9820
:101DA00040E050E060E070E080E40E94600E81302E
:101DB00009F0A0C084E6809315014AEA51E060E092
:101DC00070E088E40E94600E813009F054C07E010A
:101DD0000894E11CF11C87019FEF9E012B5F3F4F90
:101DE0009EBD0DB407FEFDCF8EB5F80181938F0126
:101DF000E217F307A9F78B81813009F07BC08C8152
:101E00008A3A09F077C040E050E060E070E087E790
:101E10000E94600E823048F440E050E060E070E4E0
:101E200089E60E94600E882321F0809115018823A5
:101E300051F780911501882309F45CC040E050E01F
:101E400060E070E08AE70E94600E882309F052C0CB
:101E50009FEF9EBD0DB407FEFDCF8EB5F7018193B8
:101E60007F01E017F107A9F7898186FD02C012E022
:101E700042C016E040C040E050E060E070E087E71C
:101E80000E94600E823058F440E050E060E070E064
:101E900089E60E94600E823010F412E001C011E069
:101EA000123079F440E050E060E070E087E70E9493
:101EB000600E823078F440E050E060E070E089E647
:101EC00005C040E050E060E070E081E40E94600EF8
:101ED000882321F080911501882311F78091150145
:101EE000882341F040E052E060E070E080E50E942D
:101EF000600E811110E0109317012A9A8FEF8EBDAA
:101F00000DB407FEFDCF8EB5112321F080910B019A
:101F10008E7F03C080910B01816080930B018091C3
:101F20000B012496E6E00C94EF14882311F081E075
:101F3000089580910B0108950F93CF93DF93EB01E8
:101F4000882309F051C0002309F44EC080910B0191
:101F500080FF03C023E030E049C08091170182FD7B
:101F600007C069E0220F331F441F551F6A95D1F740
:101F70002A98013089F4BA01A90181E50E94600E16
:101F8000882321F560E072E0CE010E94E30D00E0BD
:101F90008823E1F401E01AC0BA01A90182E50E9498
:101FA000600E882399F460E072E0CE010E94E30D98
:101FB000882329F0015019F0C050DE4FF4CF40E0E3
:101FC00050E060E070E08CE40E94600E2A9A8FEF8F
:101FD0008EBD0DB407FEFDCF8EB520E030E00023AE
:101FE00029F021E030E002C024E030E0C901DF91B7
:101FF000CF910F910895CF92DF92EF92FF920F93BE
:10200000CF93DF93EB0169017A01882309F064C063
:10201000002309F461C080910B0180FF03C023E01D
:1020200030E05CC080910B0182FF03C022E030E011
:1020300055C08091170182FD07C079E0CC0CDD1CF2
:10204000EE1CFF1C7A95D1F72A98013069F4B7018C
:10205000A60188E50E94600E882381F56EEFCE010F
:102060000E94180E00E027C081FF0EC040E050E043
:1020700060E070E087E70E94600E402F50E060E073
:1020800070E087E50E94600EB701A60189E50E9415
:10209000600E882399F46CEFCE010E94180E8823FD
:1020A00029F0015019F0C050DE4FF5CF6DEF80E000
:1020B00090E00E94180E882309F401E02A9A8FEF1D
:1020C0008EBD0DB407FEFDCF8EB520E030E00023BD
:1020D00029F021E030E002C024E030E0C901DF91C6
:1020E000CF910F91FF90EF90DF90CF900895A0E1F6
:1020F000B0E0EDE7F0E10C94D5148A01882319F0E3
:1021000024E030E0E7C02A98633009F47FC06430EF
:1021100028F4613079F0623051F472C06B3009F408
:1021200096C06C3009F4AAC06A3009F486C024E075
:1021300030E0C6C040E050E060E070E089E40E941A
:10214000600E882309F0B7C060E170E0CE0101960F
:102150000E94E30D882309F4AEC08981829586959B
:10216000869583707A8549858130B1F4872F90E018
:102170000196342F20E0820F931FA0E0B0E02AE008
:10218000880F991FAA1FBB1F2A95D1F7F8018083DA
:102190009183A283B38392C042954695469543703E
:1021A000288530E0220F331F220F331F240F311DEB
:1021B0002F5F3F4F8F8190E083709070982F88271A
:1021C000990F990F280F391F40E050E08E818F70D2
:1021D0006B85661F6627661F860F8E5F7370770F8D
:1021E000870F90E0099704C0220F331F441F551F2B
:1021F0008A95D2F7F80120833183428353835EC0EE
:1022000080E092E0FA019183808358C082E380935A
:1022100016018FEF8EBD0DB407FEFDCF8EB59FEF7B
:102220009EBD0DB407FEFDCF8EB58F3F09F446C0AD
:10223000809116018823A1F73EC080910B0180FD9B
:1022400047C040E050E060E070E089E409C0809160
:102250000B0180FD3DC040E050E060E070E08AE4AA
:102260000E94600E882339F560E170E0C8010E9489
:10227000E30D20E030E0882319F51DC080910B01AB
:1022800080FD26C040E050E060E070E08AE70E94F8
:10229000600E882381F4F8019FEF98012D5F3F4F76
:1022A0009EBD0DB407FEFDCF8EB58083E217F30708
:1022B00029F03196F5CF21E030E002C020E030E097
:1022C0002A9A8FEF8EBD0DB407FEFDCF8EB502C0EA
:1022D00023E030E0C9016096E4E00C94F1148091B1
:1022E0001501882319F08150809315018091160102
:1022F000882319F08150809316019091140183B1C5
:10230000817080931401981749F480910B0190FF1C
:1023100002C0836001C08D7F80930B010895FB0193
:10232000DC0105900D920020E1F70895FB01DC012E
:1023300004C08D910190801921F441505040C8F79C
:10234000881B990B0895FB01DC0102C001900D92DE
:1023500041505040D8F70895DC0101C06D934150C1
:102360005040E0F70895FB019F01E8944230C4F02B
:102370004532B4F44A3029F497FB1EF490958195C8
:102380009F4F642F77270E94FE14805D8A330CF0E4
:10239000895D8193CB010097A1F716F45DE251931B
:1023A0001082C9010C94EC13AEE0B0E0EAEDF1E16B
:1023B0000C94D5140D891E8986E08C831A830983B9
:1023C0008FEF9FE79E838D83CE014996AC016F8985
:1023D000788DCE0101960E94F7112F813885020F6A
:1023E000131FF80110822E96E4E00C94F114ABE078
:1023F000B0E0EDEFF1E10C94C7143C012B015A0160
:10240000FC0117821682838181FD03C06FEF7FEF8D
:10241000C8C19AE0892E1E010894211C311CF301C9
:102420002381F20123FD859123FF81912F018823D0
:1024300009F4B4C1853239F423FD859123FF8191DC
:102440002F01853229F4B30190E00E94FC13E7CFFD
:10245000982FDD24CC249924FFE1FD15D0F09B3288
:1024600069F09C3228F4903259F0933291F40EC006
:102470009D3249F0903369F441E024C052E0D52AFE
:1024800084E0D82A28C098E0D92A25C0E0E1DE2AD5
:1024900022C0D7FC29C0892F80538A3070F4D6FE21
:1024A00005C0989C902C1124980E15C0C89CC02C77
:1024B0001124C80EF0E2DF2A0EC09E3229F4D6FCA9
:1024C0006DC140E4D42A07C09C3619F450E8D52ADF
:1024D00002C0983649F4F20123FD959123FF9191B2
:1024E0002F01992309F0B8CF892F8554833018F034
:1024F0008052833038F444E050E0A40EB51E5FE310
:1025000059830FC0933631F0933779F0933509F042
:1025100056C020C0F5018081898342E050E0A40EBE
:10252000B51E710101E010E012C0F501E080F180FC
:10253000D6FC03C06FEF7FEF02C0692D70E042E070
:1025400050E0A40EB51EC7010E94E1138C015FE7A5
:10255000D52214C0F501E080F180D6FC03C06FEFF6
:102560007FEF02C0692D70E042E050E0A40EB51E7E
:10257000C7010E94D6138C0150E8D52AD3FE07C0AC
:102580001AC0B30180E290E00E94FC13CA948C2D23
:1025900090E008171907A8F30EC0F701D7FC859142
:1025A000D7FE81917F01B30190E00E94FC13C1101E
:1025B000CA94015010400115110579F7ECC094360A
:1025C00011F0993671F5D7FE08C0F501E080F18071
:1025D0000281138144E050E00AC0F50180819181BD
:1025E0007C010027F7FC0095102F42E050E0A40E7C
:1025F000B51E5FE6D52217FF0AC010950095F0942E
:10260000E094E11CF11C011D111D80E8D82A2AE08C
:1026100030E0A101C801B7010E942814F82EF21879
:1026200040C0953729F41D2D1F7E2AE030E01DC0E3
:102630001D2D197F9F3661F0903720F4983509F0F1
:10264000ADC00FC0903739F0983709F0A7C004C06B
:1026500028E030E00AC0106114FD146020E130E091
:1026600004C014FD166020E132E017FF08C0F50138
:10267000608171818281938144E050E008C0F5015E
:1026800080819181BC0180E090E042E050E0A40EA6
:10269000B51EA1010E942814F82EF2188FE7D82E3B
:1026A000D122D6FE0BC05EEFD522F91438F4D4FE49
:1026B00007C0D2FC05C08FEED82202C01F2D01C07A
:1026C000192DD4FE0DC0FE01EF0DF11D8081803368
:1026D00019F499EED92208C01F5FD2FE05C003C0CD
:1026E0008D2D867809F01F5F0D2DD3FC14C0D0FE10
:1026F0000FC01C1510F09F2C0BC09F2C9C0C911A26
:102700001C2D06C0B30180E290E00E94FC131F5F05
:102710001C15C0F304C01C1510F4C11A01C0CC2450
:1027200004FF10C0B30180E390E00E94FC1302FF9D
:102730001EC001FD03C088E790E002C088E590E07C
:10274000B3010CC0802F867891F001FF02C08BE2AC
:1027500001C080E2D7FC8DE2B30190E00E94FC133F
:1027600006C0B30180E390E00E94FC139A94F91430
:10277000C0F3FA94F101EF0DF11DB301808190E0F7
:102780000E94FC13FF20A9F706C0B30180E290E08D
:102790000E94FC13CA94CC20C1F741CEF30166819C
:1027A0007781CB012B96E2E10C94E314FC010590B8
:1027B000615070400110D8F7809590958E0F9F1F43
:1027C0000895FC016150704001900110D8F7809588
:1027D00090958E0F9F1F0895DC01FC01672F71916A
:1027E0007723E1F7329704C07C916D9370836291F7
:1027F000AE17BF07C8F308950F931F93CF93DF93CE
:102800008C01EB018B8181FF1BC082FF0DC02E81EB
:102810003F818C819D812817390764F4E881F98113
:102820000193F983E88306C0E885F985802F09952F
:10283000892B31F48E819F8101969F838E8302C004
:102840000FEF1FEFC801DF91CF911F910F910895F6
:10285000FA01AA27283051F1203181F1E8946F93D1
:102860006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED077
:10287000B4E03CD0670F781F891F9A1FA11D680F15
:10288000791F8A1F911DA11D6A0F711D811D911D48
:10289000A11D20D009F468943F912AE0269F1124BD
:1028A0003019305D3193DEF6CF010895462F477021
:1028B000405D4193B3E00FD0C9F7F6CF462F4F707C
:1028C000405D4A3318F0495D31FD4052419302D0DA
:1028D000A9F7EACFB4E0A695979587957795679580
:1028E000BA95C9F700976105710508959B01AC0180
:1028F0000A2E06945795479537952795BA95C9F7A7
:10290000620F731F841F951FA01D0895629FD00141
:10291000739FF001829FE00DF11D649FE00DF11D9A
:10292000929FF00D839FF00D749FF00D659FF00D49
:102930009927729FB00DE11DF91F639FB00DE11D36
:10294000F91FBD01CF0111240895A1E21A2EAA1B7F
:10295000BB1BFD010DC0AA1FBB1FEE1FFF1FA2174F
:10296000B307E407F50720F0A21BB30BE40BF50B4C
:10297000661F771F881F991F1A9469F760957095D5
:10298000809590959B01AC01BD01CF0108952F92D8
:102990003F924F925F926F927F928F929F92AF92EF
:1029A000BF92CF92DF92EF92FF920F931F93CF933C
:1029B000DF93CDB7DEB7CA1BDB0B0FB6F894DEBFD3
:1029C0000FBECDBF09942A88398848885F846E84F9
:1029D0007D848C849B84AA84B984C884DF80EE8043
:1029E000FD800C811B81AA81B981CE0FD11D0FB64C
:1029F000F894DEBF0FBECDBFED010895AA1BBB1B2F
:102A000051E107C0AA1FBB1FA617B70710F0A61BEE
:102A1000B70B881F991F5A95A9F780959095BC010F
:082A2000CD010895F894FFCFE9
:0C2A280025642C25640A0046415400017E
:00000001FF
/Designs/Data_loggers/GPSRL03A/glg.lst
0,0 → 1,7338
 
glg.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000c 00800100 00002a28 00002a9c 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00002a28 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000341 0080010c 00002a34 00002aa8 2**0
ALLOC
3 .stab 00002040 00000000 00000000 00002aa8 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000db4 00000000 00000000 00004ae8 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000060 00000000 00000000 0000589c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 0000019e 00000000 00000000 000058fc 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 00001f60 00000000 00000000 00005a9a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000007b9 00000000 00000000 000079fa 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00001b85 00000000 00000000 000081b3 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 00000200 00000000 00000000 00009d38 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_str 000005cc 00000000 00000000 00009f38 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00002af1 00000000 00000000 0000a504 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_ranges 000001d0 00000000 00000000 0000cff5 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 0c 94 41 00 jmp 0x82 ; 0x82 <__ctors_end>
4: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
8: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
c: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
10: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
14: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
18: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
1c: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
20: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
24: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
28: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
2c: 0c 94 18 03 jmp 0x630 ; 0x630 <__vector_11>
30: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
34: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
38: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
3c: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
40: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
44: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
48: 0c 94 b5 00 jmp 0x16a ; 0x16a <__vector_18>
4c: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
50: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
54: 0c 94 60 00 jmp 0xc0 ; 0xc0 <__vector_21>
58: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
5c: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
60: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
64: 0c 94 5e 00 jmp 0xbc ; 0xbc <__bad_interrupt>
 
00000068 <__c.1757>:
68: 24 47 50 52 4d 43 00 $GPRMC.
 
0000006f <__c.1755>:
6f: 24 47 50 47 47 41 00 $GPGGA.
 
00000076 <__c.1753>:
76: 2e 6c 6f 67 00 .log.
 
0000007b <__c.1747>:
7b: 24 47 50 52 4d 43 00 $GPRMC.
 
00000082 <__ctors_end>:
82: 11 24 eor r1, r1
84: 1f be out 0x3f, r1 ; 63
86: cf ef ldi r28, 0xFF ; 255
88: d4 e0 ldi r29, 0x04 ; 4
8a: de bf out 0x3e, r29 ; 62
8c: cd bf out 0x3d, r28 ; 61
 
0000008e <__do_copy_data>:
8e: 11 e0 ldi r17, 0x01 ; 1
90: a0 e0 ldi r26, 0x00 ; 0
92: b1 e0 ldi r27, 0x01 ; 1
94: e8 e2 ldi r30, 0x28 ; 40
96: fa e2 ldi r31, 0x2A ; 42
98: 02 c0 rjmp .+4 ; 0x9e <.do_copy_data_start>
 
0000009a <.do_copy_data_loop>:
9a: 05 90 lpm r0, Z+
9c: 0d 92 st X+, r0
 
0000009e <.do_copy_data_start>:
9e: ac 30 cpi r26, 0x0C ; 12
a0: b1 07 cpc r27, r17
a2: d9 f7 brne .-10 ; 0x9a <.do_copy_data_loop>
 
000000a4 <__do_clear_bss>:
a4: 14 e0 ldi r17, 0x04 ; 4
a6: ac e0 ldi r26, 0x0C ; 12
a8: b1 e0 ldi r27, 0x01 ; 1
aa: 01 c0 rjmp .+2 ; 0xae <.do_clear_bss_start>
 
000000ac <.do_clear_bss_loop>:
ac: 1d 92 st X+, r1
 
000000ae <.do_clear_bss_start>:
ae: ad 34 cpi r26, 0x4D ; 77
b0: b1 07 cpc r27, r17
b2: e1 f7 brne .-8 ; 0xac <.do_clear_bss_loop>
b4: 0e 94 35 01 call 0x26a ; 0x26a <main>
b8: 0c 94 12 15 jmp 0x2a24 ; 0x2a24 <_exit>
 
000000bc <__bad_interrupt>:
bc: 0c 94 00 00 jmp 0 ; 0x0 <__heap_end>
 
000000c0 <__vector_21>:
/*---------------------------------------------------------*/
/* ADC interrupt */
/*---------------------------------------------------------*/
 
ISR(ADC_vect)
{
c0: 1f 92 push r1
c2: 0f 92 push r0
c4: 0f b6 in r0, 0x3f ; 63
c6: 0f 92 push r0
c8: 11 24 eor r1, r1
ca: 2f 93 push r18
cc: 3f 93 push r19
ce: 8f 93 push r24
WORD n;
static BYTE l, h;
 
n = ADC;
d0: 20 91 78 00 lds r18, 0x0078
d4: 30 91 79 00 lds r19, 0x0079
 
if(ADMUX == POWER_check)
d8: 80 91 7c 00 lds r24, 0x007C
{
if (n < VTH_LOW) {
dc: 20 3d cpi r18, 0xD0 ; 208
de: 31 05 cpc r19, r1
e0: 70 f4 brcc .+28 ; 0xfe <__vector_21+0x3e>
if (l >= 15) {
e2: 80 91 0f 01 lds r24, 0x010F
e6: 8f 30 cpi r24, 0x0F ; 15
e8: 30 f0 brcs .+12 ; 0xf6 <__vector_21+0x36>
Stat |= 0x01;
ea: 80 91 6f 01 lds r24, 0x016F
ee: 81 60 ori r24, 0x01 ; 1
f0: 80 93 6f 01 sts 0x016F, r24
f4: 06 c0 rjmp .+12 ; 0x102 <__vector_21+0x42>
}
else {l++;}
f6: 8f 5f subi r24, 0xFF ; 255
f8: 80 93 0f 01 sts 0x010F, r24
fc: 02 c0 rjmp .+4 ; 0x102 <__vector_21+0x42>
}
else {l = 0;}
fe: 10 92 0f 01 sts 0x010F, r1
 
if (n > VTH_HIGH) {
102: 81 e0 ldi r24, 0x01 ; 1
104: 2c 32 cpi r18, 0x2C ; 44
106: 38 07 cpc r19, r24
108: 70 f0 brcs .+28 ; 0x126 <__vector_21+0x66>
if (h >= 15) {
10a: 80 91 0e 01 lds r24, 0x010E
10e: 8f 30 cpi r24, 0x0F ; 15
110: 30 f0 brcs .+12 ; 0x11e <__vector_21+0x5e>
Stat &= 0xFE;
112: 80 91 6f 01 lds r24, 0x016F
116: 8e 7f andi r24, 0xFE ; 254
118: 80 93 6f 01 sts 0x016F, r24
11c: 06 c0 rjmp .+12 ; 0x12a <__vector_21+0x6a>
}
else {h++;}
11e: 8f 5f subi r24, 0xFF ; 255
120: 80 93 0e 01 sts 0x010E, r24
124: 02 c0 rjmp .+4 ; 0x12a <__vector_21+0x6a>
}
else {h = 0;}
126: 10 92 0e 01 sts 0x010E, r1
 
battery = n;
12a: 30 93 75 01 sts 0x0175, r19
12e: 20 93 74 01 sts 0x0174, r18
ADMUX = ANALOG_IN1;
132: 82 e4 ldi r24, 0x42 ; 66
134: 80 93 7c 00 sts 0x007C, r24
}
 
if(ADMUX == ANALOG_IN1)
138: 80 91 7c 00 lds r24, 0x007C
{
intensity = n;
13c: 30 93 10 02 sts 0x0210, r19
140: 20 93 0f 02 sts 0x020F, r18
ADMUX = POWER_check;
144: 81 e4 ldi r24, 0x41 ; 65
146: 80 93 7c 00 sts 0x007C, r24
}
 
//!!!!
//Stat &= 0xFE;
 
ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
14a: 8f ed ldi r24, 0xDF ; 223
14c: 80 93 7a 00 sts 0x007A, r24
}
150: 8f 91 pop r24
152: 3f 91 pop r19
154: 2f 91 pop r18
156: 0f 90 pop r0
158: 0f be out 0x3f, r0 ; 63
15a: 0f 90 pop r0
15c: 1f 90 pop r1
15e: 18 95 reti
 
00000160 <get_fattime>:
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
 
 
DWORD get_fattime ()
{
160: 60 e0 ldi r22, 0x00 ; 0
162: 70 e0 ldi r23, 0x00 ; 0
164: 81 ea ldi r24, 0xA1 ; 161
166: 96 e3 ldi r25, 0x36 ; 54
168: 08 95 ret
 
0000016a <__vector_18>:
return d;
}
 
/* USART0 RXC interrupt */
ISR(USART_RX_vect)
{
16a: 1f 92 push r1
16c: 0f 92 push r0
16e: 0f b6 in r0, 0x3f ; 63
170: 0f 92 push r0
172: 11 24 eor r1, r1
174: 8f 93 push r24
176: 9f 93 push r25
178: ef 93 push r30
17a: ff 93 push r31
uint8_t d, n, i;
 
 
d = UDR0;
17c: 90 91 c6 00 lds r25, 0x00C6
n = rxfifo.count;
180: 80 91 78 01 lds r24, 0x0178
if(n < sizeof(rxfifo.buff)) {
184: 86 39 cpi r24, 0x96 ; 150
186: 88 f4 brcc .+34 ; 0x1aa <__vector_18+0x40>
rxfifo.count = ++n;
188: 8f 5f subi r24, 0xFF ; 255
18a: 80 93 78 01 sts 0x0178, r24
i = rxfifo.idx_w;
18e: 80 91 76 01 lds r24, 0x0176
rxfifo.buff[i++] = d;
192: e8 2f mov r30, r24
194: f0 e0 ldi r31, 0x00 ; 0
196: ea 58 subi r30, 0x8A ; 138
198: fe 4f sbci r31, 0xFE ; 254
19a: 93 83 std Z+3, r25 ; 0x03
19c: 8f 5f subi r24, 0xFF ; 255
if(i >= sizeof(rxfifo.buff))
19e: 86 39 cpi r24, 0x96 ; 150
1a0: 08 f0 brcs .+2 ; 0x1a4 <__vector_18+0x3a>
1a2: 80 e0 ldi r24, 0x00 ; 0
i = 0;
rxfifo.idx_w = i;
1a4: 80 93 76 01 sts 0x0176, r24
1a8: 05 c0 rjmp .+10 ; 0x1b4 <__vector_18+0x4a>
} else {
Stat |= 2;
1aa: 80 91 6f 01 lds r24, 0x016F
1ae: 82 60 ori r24, 0x02 ; 2
1b0: 80 93 6f 01 sts 0x016F, r24
}
}
1b4: ff 91 pop r31
1b6: ef 91 pop r30
1b8: 9f 91 pop r25
1ba: 8f 91 pop r24
1bc: 0f 90 pop r0
1be: 0f be out 0x3f, r0 ; 63
1c0: 0f 90 pop r0
1c2: 1f 90 pop r1
1c4: 18 95 reti
 
000001c6 <get_line>:
/* Get a line received from GPS module */
/*----------------------------------------------------*/
 
static
BYTE get_line (void) // 0: Power fail occured, >0: Number of bytes received.
{
1c6: 90 e0 ldi r25, 0x00 ; 0
cli();
UCSR0B = 0;
rxfifo.idx_r = 0;
rxfifo.idx_w = 0;
rxfifo.count = 0;
UBRR0L = SYSCLK/16/GPS_BAUDRATE;
1c8: 52 e8 ldi r21, 0x82 ; 130
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
1ca: 48 e9 ldi r20, 0x98 ; 152
1cc: 01 c0 rjmp .+2 ; 0x1d0 <get_line+0xa>
/* Get a line received from GPS module */
/*----------------------------------------------------*/
 
static
BYTE get_line (void) // 0: Power fail occured, >0: Number of bytes received.
{
1ce: 90 e0 ldi r25, 0x00 ; 0
BYTE c, i = 0;
 
 
for (;;) {
if (Stat & 1) return 0; // When power fail is detected, return with zero.
1d0: 80 91 6f 01 lds r24, 0x016F
1d4: 80 fd sbrc r24, 0
1d6: 46 c0 rjmp .+140 ; 0x264 <get_line+0x9e>
uint8_t uart_get ()
{
uint8_t d, i;
 
 
i = rxfifo.idx_r;
1d8: 30 91 77 01 lds r19, 0x0177
if (rxfifo.count == 0) return 0;
1dc: 80 91 78 01 lds r24, 0x0178
1e0: 88 23 and r24, r24
1e2: 11 f4 brne .+4 ; 0x1e8 <get_line+0x22>
1e4: 20 e0 ldi r18, 0x00 ; 0
1e6: 13 c0 rjmp .+38 ; 0x20e <get_line+0x48>
d = rxfifo.buff[i++];
1e8: e3 2f mov r30, r19
1ea: f0 e0 ldi r31, 0x00 ; 0
1ec: ea 58 subi r30, 0x8A ; 138
1ee: fe 4f sbci r31, 0xFE ; 254
1f0: 23 81 ldd r18, Z+3 ; 0x03
1f2: e3 2f mov r30, r19
1f4: ef 5f subi r30, 0xFF ; 255
cli();
1f6: f8 94 cli
rxfifo.count--;
1f8: 80 91 78 01 lds r24, 0x0178
1fc: 81 50 subi r24, 0x01 ; 1
1fe: 80 93 78 01 sts 0x0178, r24
sei();
202: 78 94 sei
if(i >= sizeof(rxfifo.buff))
204: e6 39 cpi r30, 0x96 ; 150
206: 08 f0 brcs .+2 ; 0x20a <get_line+0x44>
208: e0 e0 ldi r30, 0x00 ; 0
i = 0;
rxfifo.idx_r = i;
20a: e0 93 77 01 sts 0x0177, r30
 
 
for (;;) {
if (Stat & 1) return 0; // When power fail is detected, return with zero.
c = uart_get();
if (Stat & 2) { // When buffer overflow has occured, restart to receive line.
20e: 80 91 6f 01 lds r24, 0x016F
212: 81 ff sbrs r24, 1
214: 14 c0 rjmp .+40 ; 0x23e <get_line+0x78>
 
 
static
void uart_init (void)
{
cli();
216: f8 94 cli
UCSR0B = 0;
218: 10 92 c1 00 sts 0x00C1, r1
rxfifo.idx_r = 0;
21c: 10 92 77 01 sts 0x0177, r1
rxfifo.idx_w = 0;
220: 10 92 76 01 sts 0x0176, r1
rxfifo.count = 0;
224: 10 92 78 01 sts 0x0178, r1
UBRR0L = SYSCLK/16/GPS_BAUDRATE;
228: 50 93 c4 00 sts 0x00C4, r21
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
22c: 40 93 c1 00 sts 0x00C1, r20
Stat &= 0xFD; // Clear overflow flag
230: 80 91 6f 01 lds r24, 0x016F
234: 8d 7f andi r24, 0xFD ; 253
236: 80 93 6f 01 sts 0x016F, r24
sei();
23a: 78 94 sei
23c: c8 cf rjmp .-112 ; 0x1ce <get_line+0x8>
c = uart_get();
if (Stat & 2) { // When buffer overflow has occured, restart to receive line.
uart_init();
i = 0; c = 0;
}
if (!c || (i == 0 && c != '$')) continue;
23e: 22 23 and r18, r18
240: 39 f2 breq .-114 ; 0x1d0 <get_line+0xa>
242: 99 23 and r25, r25
244: 19 f4 brne .+6 ; 0x24c <get_line+0x86>
246: 24 32 cpi r18, 0x24 ; 36
248: 09 f0 breq .+2 ; 0x24c <get_line+0x86>
24a: c2 cf rjmp .-124 ; 0x1d0 <get_line+0xa>
Buff[i++] = c;
24c: e9 2f mov r30, r25
24e: f0 e0 ldi r31, 0x00 ; 0
250: e3 5e subi r30, 0xE3 ; 227
252: fe 4f sbci r31, 0xFE ; 254
254: 20 83 st Z, r18
256: 9f 5f subi r25, 0xFF ; 255
if (c == '\n') break;
258: 2a 30 cpi r18, 0x0A ; 10
25a: 29 f0 breq .+10 ; 0x266 <get_line+0xa0>
if (i >= sizeof(Buff)) i = 0;
25c: 92 35 cpi r25, 0x52 ; 82
25e: 08 f0 brcs .+2 ; 0x262 <get_line+0x9c>
260: b6 cf rjmp .-148 ; 0x1ce <get_line+0x8>
262: b6 cf rjmp .-148 ; 0x1d0 <get_line+0xa>
264: 90 e0 ldi r25, 0x00 ; 0
}
return i;
}
266: 89 2f mov r24, r25
268: 08 95 ret
 
0000026a <main>:
/*-----------------------------------------------------------------------*/
/* Main */
 
 
int main ()
{
26a: a2 e0 ldi r26, 0x02 ; 2
26c: b0 e0 ldi r27, 0x00 ; 0
26e: eb e3 ldi r30, 0x3B ; 59
270: f1 e0 ldi r31, 0x01 ; 1
272: 0c 94 c7 14 jmp 0x298e ; 0x298e <__prologue_saves__>
 
 
static
void ioinit (void)
{
PORTB = 0b00001101; // Port B
276: 8d e0 ldi r24, 0x0D ; 13
278: 85 b9 out 0x05, r24 ; 5
DDRB = 0b00101110;
27a: 8e e2 ldi r24, 0x2E ; 46
27c: 84 b9 out 0x04, r24 ; 4
PORTC = 0b00111111; // Port C
27e: 8f e3 ldi r24, 0x3F ; 63
280: 88 b9 out 0x08, r24 ; 8
DDRC = 0b00000000;
282: 17 b8 out 0x07, r1 ; 7
PORTD = 0b10101110; // Port D
284: 8e ea ldi r24, 0xAE ; 174
286: 8b b9 out 0x0b, r24 ; 11
DDRD = 0b01010010;
288: 82 e5 ldi r24, 0x52 ; 82
28a: 8a b9 out 0x0a, r24 ; 10
 
SPCR = 0b01010000; /* Initialize SPI port (Mode 0) */
28c: 80 e5 ldi r24, 0x50 ; 80
28e: 8c bd out 0x2c, r24 ; 44
SPSR = 0b00000001;
290: 81 e0 ldi r24, 0x01 ; 1
292: 8d bd out 0x2d, r24 ; 45
 
OCR1A = SYSCLK/8/100-1; // Timer1: 100Hz interval (OC1A)
294: 83 ed ldi r24, 0xD3 ; 211
296: 90 e3 ldi r25, 0x30 ; 48
298: 90 93 89 00 sts 0x0089, r25
29c: 80 93 88 00 sts 0x0088, r24
TCCR1B = 0b00001010;
2a0: 8a e0 ldi r24, 0x0A ; 10
2a2: 80 93 81 00 sts 0x0081, r24
TIMSK1 = _BV(OCIE1A); // Enable TC1.oca interrupt
2a6: 82 e0 ldi r24, 0x02 ; 2
2a8: 80 93 6f 00 sts 0x006F, r24
 
OCR0A = SYSCLK/64/4000/2-1; // Timer0: 4kHz sound (OC0A)
2ac: 82 e1 ldi r24, 0x12 ; 18
2ae: 87 bd out 0x27, r24 ; 39
TCCR0A = 0b01000010;
2b0: 82 e4 ldi r24, 0x42 ; 66
2b2: 84 bd out 0x24, r24 ; 36
 
ADMUX = POWER_check; // Select ADC input
2b4: 81 e4 ldi r24, 0x41 ; 65
2b6: 80 93 7c 00 sts 0x007C, r24
ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
2ba: 8f ed ldi r24, 0xDF ; 223
2bc: 80 93 7a 00 sts 0x007A, r24
 
sei();
2c0: 78 94 sei
BYTE b, err, *p = NULL;
WORD s;
 
 
ioinit();
f_mount(0, &fatfs); /* Enable file I/O layer */
2c2: 6d e2 ldi r22, 0x2D ; 45
2c4: 72 e0 ldi r23, 0x02 ; 2
2c6: 80 e0 ldi r24, 0x00 ; 0
2c8: 0e 94 7f 09 call 0x12fe ; 0x12fe <f_mount>
2cc: ee 24 eor r14, r14
2ce: ff 24 eor r15, r15
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
2d0: 53 e0 ldi r21, 0x03 ; 3
2d2: a5 2e mov r10, r21
DELAY(len);
2d4: 45 e0 ldi r20, 0x05 ; 5
2d6: b4 2e mov r11, r20
beep(5, 1); // Single beep. Start to get current time.
uart_init();
do { // Wait for valid RMC sentence.
b = get_line();
if (!b) break;
if (gp_comp(Buff, PSTR("$GPRMC"))) continue;
2d8: 3d e1 ldi r19, 0x1D ; 29
2da: c3 2e mov r12, r19
2dc: 31 e0 ldi r19, 0x01 ; 1
2de: d3 2e mov r13, r19
// || !gp_comp(Buff, PSTR("$GPGSV"))
// || !gp_comp(Buff, PSTR("$GPZDA"))
// || !gp_comp(Buff, PSTR("$GPVTG"))
)
{
if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; };
2e0: 4e 01 movw r8, r28
2e2: 08 94 sec
2e4: 81 1c adc r8, r1
2e6: 91 1c adc r9, r1
itoa(battery,&Value1,10); // convert number to character
2e8: 28 e1 ldi r18, 0x18 ; 24
2ea: 22 2e mov r2, r18
2ec: 21 e0 ldi r18, 0x01 ; 1
2ee: 32 2e mov r3, r18
itoa(intensity,&Value2,10);
2f0: 90 e7 ldi r25, 0x70 ; 112
2f2: 69 2e mov r6, r25
2f4: 91 e0 ldi r25, 0x01 ; 1
2f6: 79 2e mov r7, r25
sprintf(Buff,"%d,%d\n",Value1,Value2);
2f8: 80 e0 ldi r24, 0x00 ; 0
2fa: 48 2e mov r4, r24
2fc: 81 e0 ldi r24, 0x01 ; 1
2fe: 58 2e mov r5, r24
 
 
static
void uart_stop (void)
{
UCSR0B = 0;
300: 10 92 c1 00 sts 0x00C1, r1
ioinit();
f_mount(0, &fatfs); /* Enable file I/O layer */
 
for (;;) {
uart_stop();
GPS_OFF();
304: 29 98 cbi 0x05, 1 ; 5
Timer = 100;
306: 84 e6 ldi r24, 0x64 ; 100
308: 80 93 1c 01 sts 0x011C, r24
do {
if (Stat & 1) Timer = 100;
30c: 94 e6 ldi r25, 0x64 ; 100
30e: 80 91 6f 01 lds r24, 0x016F
312: 80 ff sbrs r24, 0
314: 02 c0 rjmp .+4 ; 0x31a <main+0xb0>
316: 90 93 1c 01 sts 0x011C, r25
} while (Timer);
31a: 80 91 1c 01 lds r24, 0x011C
31e: 88 23 and r24, r24
320: b1 f7 brne .-20 ; 0x30e <main+0xa4>
 
GPS_ON();
322: 29 9a sbi 0x05, 1 ; 5
Timer = 255;
324: 8f ef ldi r24, 0xFF ; 255
326: 80 93 1c 01 sts 0x011C, r24
do {
if ((Stat & 1) || (disk_status(0) & STA_NODISK)) Timer = 255;
32a: 1f ef ldi r17, 0xFF ; 255
32c: 80 91 6f 01 lds r24, 0x016F
330: 80 fd sbrc r24, 0
332: 05 c0 rjmp .+10 ; 0x33e <main+0xd4>
334: 80 e0 ldi r24, 0x00 ; 0
336: 0e 94 95 0f call 0x1f2a ; 0x1f2a <disk_status>
33a: 81 ff sbrs r24, 1
33c: 02 c0 rjmp .+4 ; 0x342 <main+0xd8>
33e: 10 93 1c 01 sts 0x011C, r17
} while (Timer);
342: 80 91 1c 01 lds r24, 0x011C
346: 88 23 and r24, r24
348: 89 f7 brne .-30 ; 0x32c <main+0xc2>
34a: 91 e0 ldi r25, 0x01 ; 1
34c: 0e c0 rjmp .+28 ; 0x36a <main+0x100>
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
34e: a5 bc out 0x25, r10 ; 37
DELAY(len);
350: b0 92 1c 01 sts 0x011C, r11
354: 80 91 1c 01 lds r24, 0x011C
358: 88 23 and r24, r24
35a: e1 f7 brne .-8 ; 0x354 <main+0xea>
BEEP_OFF();
35c: 15 bc out 0x25, r1 ; 37
DELAY(len);
35e: b0 92 1c 01 sts 0x011C, r11
362: 80 91 1c 01 lds r24, 0x011C
366: 88 23 and r24, r24
368: e1 f7 brne .-8 ; 0x362 <main+0xf8>
/* Controls */
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
36a: 91 50 subi r25, 0x01 ; 1
36c: 80 f7 brcc .-32 ; 0x34e <main+0xe4>
 
 
static
void uart_init (void)
{
cli();
36e: f8 94 cli
UCSR0B = 0;
370: 10 92 c1 00 sts 0x00C1, r1
rxfifo.idx_r = 0;
374: 10 92 77 01 sts 0x0177, r1
rxfifo.idx_w = 0;
378: 10 92 76 01 sts 0x0176, r1
rxfifo.count = 0;
37c: 10 92 78 01 sts 0x0178, r1
UBRR0L = SYSCLK/16/GPS_BAUDRATE;
380: 82 e8 ldi r24, 0x82 ; 130
382: 80 93 c4 00 sts 0x00C4, r24
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
386: 88 e9 ldi r24, 0x98 ; 152
388: 80 93 c1 00 sts 0x00C1, r24
Stat &= 0xFD; // Clear overflow flag
38c: 80 91 6f 01 lds r24, 0x016F
390: 8d 7f andi r24, 0xFD ; 253
392: 80 93 6f 01 sts 0x016F, r24
sei();
396: 78 94 sei
398: 02 c0 rjmp .+4 ; 0x39e <main+0x134>
39a: ee 24 eor r14, r14
39c: ff 24 eor r15, r15
} while (Timer);
 
beep(5, 1); // Single beep. Start to get current time.
uart_init();
do { // Wait for valid RMC sentence.
b = get_line();
39e: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <get_line>
if (!b) break;
3a2: 88 23 and r24, r24
3a4: 09 f4 brne .+2 ; 0x3a8 <main+0x13e>
3a6: ac cf rjmp .-168 ; 0x300 <main+0x96>
if (gp_comp(Buff, PSTR("$GPRMC"))) continue;
3a8: 2b e7 ldi r18, 0x7B ; 123
3aa: 30 e0 ldi r19, 0x00 ; 0
3ac: ad e1 ldi r26, 0x1D ; 29
3ae: b1 e0 ldi r27, 0x01 ; 1
3b0: f9 01 movw r30, r18
BYTE gp_comp (BYTE *str1, const prog_uint8_t *str2)
{
BYTE c;
 
do {
c = pgm_read_byte(str2++);
3b2: 2f 5f subi r18, 0xFF ; 255
3b4: 3f 4f sbci r19, 0xFF ; 255
3b6: 94 91 lpm r25, Z
} while (c && c == *str1++);
3b8: 99 23 and r25, r25
3ba: 29 f0 breq .+10 ; 0x3c6 <main+0x15c>
3bc: 8c 91 ld r24, X
3be: 98 17 cp r25, r24
3c0: 71 f4 brne .+28 ; 0x3de <main+0x174>
3c2: 11 96 adiw r26, 0x01 ; 1
3c4: f5 cf rjmp .-22 ; 0x3b0 <main+0x146>
3c6: ed e1 ldi r30, 0x1D ; 29
3c8: f1 e0 ldi r31, 0x01 ; 1
3ca: 82 e0 ldi r24, 0x02 ; 2
BYTE c;
 
 
while (col) {
do {
c = *buf++;
3cc: 90 81 ld r25, Z
if (c <= ' ') return NULL;
3ce: 91 32 cpi r25, 0x21 ; 33
3d0: 20 f3 brcs .-56 ; 0x39a <main+0x130>
BYTE c;
 
 
while (col) {
do {
c = *buf++;
3d2: 31 96 adiw r30, 0x01 ; 1
if (c <= ' ') return NULL;
} while (c != ',');
3d4: 9c 32 cpi r25, 0x2C ; 44
3d6: d1 f7 brne .-12 ; 0x3cc <main+0x162>
col--;
3d8: 81 50 subi r24, 0x01 ; 1
BYTE col /* Column number (0 is the 1st item) */
) {
BYTE c;
 
 
while (col) {
3da: c1 f7 brne .-16 ; 0x3cc <main+0x162>
c = *buf++;
if (c <= ' ') return NULL;
} while (c != ',');
col--;
}
return (BYTE*)buf;
3dc: 7f 01 movw r14, r30
do { // Wait for valid RMC sentence.
b = get_line();
if (!b) break;
if (gp_comp(Buff, PSTR("$GPRMC"))) continue;
p = gp_col(Buff,2);
} while (!p || *p != 'A');
3de: e1 14 cp r14, r1
3e0: f1 04 cpc r15, r1
3e2: e9 f2 breq .-70 ; 0x39e <main+0x134>
3e4: f7 01 movw r30, r14
3e6: 80 81 ld r24, Z
3e8: 81 34 cpi r24, 0x41 ; 65
3ea: c9 f6 brne .-78 ; 0x39e <main+0x134>
3ec: ed e1 ldi r30, 0x1D ; 29
3ee: f1 e0 ldi r31, 0x01 ; 1
3f0: 89 e0 ldi r24, 0x09 ; 9
BYTE c;
 
 
while (col) {
do {
c = *buf++;
3f2: 90 81 ld r25, Z
if (c <= ' ') return NULL;
3f4: 91 32 cpi r25, 0x21 ; 33
3f6: 08 f4 brcc .+2 ; 0x3fa <main+0x190>
3f8: f0 c0 rjmp .+480 ; 0x5da <__stack+0xdb>
BYTE c;
 
 
while (col) {
do {
c = *buf++;
3fa: 31 96 adiw r30, 0x01 ; 1
if (c <= ' ') return NULL;
} while (c != ',');
3fc: 9c 32 cpi r25, 0x2C ; 44
3fe: c9 f7 brne .-14 ; 0x3f2 <main+0x188>
col--;
400: 81 50 subi r24, 0x01 ; 1
BYTE col /* Column number (0 is the 1st item) */
) {
BYTE c;
 
 
while (col) {
402: b9 f7 brne .-18 ; 0x3f2 <main+0x188>
c = *buf++;
if (c <= ' ') return NULL;
} while (c != ',');
col--;
}
return (BYTE*)buf;
404: 7f 01 movw r14, r30
p = gp_col(Buff,2);
} while (!p || *p != 'A');
if (!b) continue;
p = gp_col(Buff,9); // Open log file with the name of current date (YYMMDD.log in UTC).
if (!p) {err = 3; break;}
406: 30 97 sbiw r30, 0x00 ; 0
408: 09 f4 brne .+2 ; 0x40c <main+0x1a2>
40a: e7 c0 rjmp .+462 ; 0x5da <__stack+0xdb>
 
memcpy(&Buff[0], p+4, 2);
40c: 84 81 ldd r24, Z+4 ; 0x04
40e: 95 81 ldd r25, Z+5 ; 0x05
410: 90 93 1e 01 sts 0x011E, r25
414: 80 93 1d 01 sts 0x011D, r24
memcpy(&Buff[2], p+2, 2);
418: 82 81 ldd r24, Z+2 ; 0x02
41a: 93 81 ldd r25, Z+3 ; 0x03
41c: 90 93 20 01 sts 0x0120, r25
420: 80 93 1f 01 sts 0x011F, r24
memcpy(&Buff[4], p+0, 2);
424: 80 81 ld r24, Z
426: 91 81 ldd r25, Z+1 ; 0x01
428: 90 93 22 01 sts 0x0122, r25
42c: 80 93 21 01 sts 0x0121, r24
strcpy_P(&Buff[6], PSTR(".log"));
430: 66 e7 ldi r22, 0x76 ; 118
432: 70 e0 ldi r23, 0x00 ; 0
434: 83 e2 ldi r24, 0x23 ; 35
436: 91 e0 ldi r25, 0x01 ; 1
438: 0e 94 8f 11 call 0x231e ; 0x231e <strcpy_P>
if (f_open(&file1, Buff, FA_OPEN_ALWAYS | FA_WRITE) || f_lseek(&file1, file1.fsize)) { err = 4; break; }
43c: 42 e1 ldi r20, 0x12 ; 18
43e: 6d e1 ldi r22, 0x1D ; 29
440: 71 e0 ldi r23, 0x01 ; 1
442: 81 e1 ldi r24, 0x11 ; 17
444: 92 e0 ldi r25, 0x02 ; 2
446: 0e 94 d7 09 call 0x13ae ; 0x13ae <f_open>
44a: 89 2b or r24, r25
44c: 09 f0 breq .+2 ; 0x450 <main+0x1e6>
44e: c7 c0 rjmp .+398 ; 0x5de <__stack+0xdf>
450: 40 91 1b 02 lds r20, 0x021B
454: 50 91 1c 02 lds r21, 0x021C
458: 60 91 1d 02 lds r22, 0x021D
45c: 70 91 1e 02 lds r23, 0x021E
460: 81 e1 ldi r24, 0x11 ; 17
462: 92 e0 ldi r25, 0x02 ; 2
464: 0e 94 3c 05 call 0xa78 ; 0xa78 <f_lseek>
468: 89 2b or r24, r25
46a: 09 f0 breq .+2 ; 0x46e <main+0x204>
46c: b8 c0 rjmp .+368 ; 0x5de <__stack+0xdf>
46e: 92 e0 ldi r25, 0x02 ; 2
470: 0e c0 rjmp .+28 ; 0x48e <main+0x224>
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
472: a5 bc out 0x25, r10 ; 37
DELAY(len);
474: b0 92 1c 01 sts 0x011C, r11
478: 80 91 1c 01 lds r24, 0x011C
47c: 88 23 and r24, r24
47e: e1 f7 brne .-8 ; 0x478 <main+0x20e>
BEEP_OFF();
480: 15 bc out 0x25, r1 ; 37
DELAY(len);
482: b0 92 1c 01 sts 0x011C, r11
486: 80 91 1c 01 lds r24, 0x011C
48a: 88 23 and r24, r24
48c: e1 f7 brne .-8 ; 0x486 <main+0x21c>
/* Controls */
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
48e: 91 50 subi r25, 0x01 ; 1
490: 80 f7 brcc .-32 ; 0x472 <main+0x208>
492: 85 c0 rjmp .+266 ; 0x59e <__stack+0x9f>
if (f_open(&file1, Buff, FA_OPEN_ALWAYS | FA_WRITE) || f_lseek(&file1, file1.fsize)) { err = 4; break; }
 
beep(5, 2); // Two beeps. Start logging.
err = 0;
while ((b = get_line()) > 0) {
if ( !gp_comp(Buff, PSTR("$GPGGA")) // Which sentence is logged?
494: 2f e6 ldi r18, 0x6F ; 111
496: 30 e0 ldi r19, 0x00 ; 0
498: ad e1 ldi r26, 0x1D ; 29
49a: b1 e0 ldi r27, 0x01 ; 1
49c: f9 01 movw r30, r18
BYTE gp_comp (BYTE *str1, const prog_uint8_t *str2)
{
BYTE c;
 
do {
c = pgm_read_byte(str2++);
49e: 2f 5f subi r18, 0xFF ; 255
4a0: 3f 4f sbci r19, 0xFF ; 255
4a2: 94 91 lpm r25, Z
} while (c && c == *str1++);
4a4: 99 23 and r25, r25
4a6: 89 f0 breq .+34 ; 0x4ca <main+0x260>
4a8: 8c 91 ld r24, X
4aa: 98 17 cp r25, r24
4ac: 09 f0 breq .+2 ; 0x4b0 <main+0x246>
4ae: ae c0 rjmp .+348 ; 0x60c <__stack+0x10d>
4b0: 11 96 adiw r26, 0x01 ; 1
4b2: f4 cf rjmp .-24 ; 0x49c <main+0x232>
BYTE gp_comp (BYTE *str1, const prog_uint8_t *str2)
{
BYTE c;
 
do {
c = pgm_read_byte(str2++);
4b4: 11 96 adiw r26, 0x01 ; 1
4b6: f9 01 movw r30, r18
4b8: 2f 5f subi r18, 0xFF ; 255
4ba: 3f 4f sbci r19, 0xFF ; 255
4bc: 94 91 lpm r25, Z
} while (c && c == *str1++);
4be: 99 23 and r25, r25
4c0: 21 f0 breq .+8 ; 0x4ca <main+0x260>
4c2: 8c 91 ld r24, X
4c4: 98 17 cp r25, r24
4c6: b1 f3 breq .-20 ; 0x4b4 <main+0x24a>
4c8: 57 c0 rjmp .+174 ; 0x578 <__stack+0x79>
// || !gp_comp(Buff, PSTR("$GPGSV"))
// || !gp_comp(Buff, PSTR("$GPZDA"))
// || !gp_comp(Buff, PSTR("$GPVTG"))
)
{
if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; };
4ca: 04 2f mov r16, r20
4cc: 10 e0 ldi r17, 0x00 ; 0
4ce: 94 01 movw r18, r8
4d0: a8 01 movw r20, r16
4d2: 6d e1 ldi r22, 0x1D ; 29
4d4: 71 e0 ldi r23, 0x01 ; 1
4d6: 81 e1 ldi r24, 0x11 ; 17
4d8: 92 e0 ldi r25, 0x02 ; 2
4da: 0e 94 0e 07 call 0xe1c ; 0xe1c <f_write>
4de: 89 2b or r24, r25
4e0: 09 f0 breq .+2 ; 0x4e4 <main+0x27a>
4e2: 64 c0 rjmp .+200 ; 0x5ac <__stack+0xad>
4e4: 89 81 ldd r24, Y+1 ; 0x01
4e6: 9a 81 ldd r25, Y+2 ; 0x02
4e8: 08 17 cp r16, r24
4ea: 19 07 cpc r17, r25
4ec: 09 f0 breq .+2 ; 0x4f0 <main+0x286>
4ee: 5e c0 rjmp .+188 ; 0x5ac <__stack+0xad>
itoa(battery,&Value1,10); // convert number to character
4f0: 4a e0 ldi r20, 0x0A ; 10
4f2: 50 e0 ldi r21, 0x00 ; 0
4f4: 68 e1 ldi r22, 0x18 ; 24
4f6: 71 e0 ldi r23, 0x01 ; 1
4f8: 80 91 74 01 lds r24, 0x0174
4fc: 90 91 75 01 lds r25, 0x0175
500: 0e 94 b3 11 call 0x2366 ; 0x2366 <itoa>
itoa(intensity,&Value2,10);
504: 4a e0 ldi r20, 0x0A ; 10
506: 50 e0 ldi r21, 0x00 ; 0
508: 60 e7 ldi r22, 0x70 ; 112
50a: 71 e0 ldi r23, 0x01 ; 1
50c: 80 91 0f 02 lds r24, 0x020F
510: 90 91 10 02 lds r25, 0x0210
514: 0e 94 b3 11 call 0x2366 ; 0x2366 <itoa>
sprintf(Buff,"%d,%d\n",Value1,Value2);
518: 7f 92 push r7
51a: 6f 92 push r6
51c: 3f 92 push r3
51e: 2f 92 push r2
520: 5f 92 push r5
522: 4f 92 push r4
524: df 92 push r13
526: cf 92 push r12
528: 0e 94 d4 11 call 0x23a8 ; 0x23a8 <sprintf>
if (f_write(&file1, Buff,strlen(Buff), &s) || (strlen(Buff) != s)) { err = 8; break; };
52c: f6 01 movw r30, r12
52e: 01 90 ld r0, Z+
530: 00 20 and r0, r0
532: e9 f7 brne .-6 ; 0x52e <__stack+0x2f>
534: 31 97 sbiw r30, 0x01 ; 1
536: ec 19 sub r30, r12
538: fd 09 sbc r31, r13
53a: 94 01 movw r18, r8
53c: af 01 movw r20, r30
53e: 6d e1 ldi r22, 0x1D ; 29
540: 71 e0 ldi r23, 0x01 ; 1
542: 81 e1 ldi r24, 0x11 ; 17
544: 92 e0 ldi r25, 0x02 ; 2
546: 0e 94 0e 07 call 0xe1c ; 0xe1c <f_write>
54a: 2d b7 in r18, 0x3d ; 61
54c: 3e b7 in r19, 0x3e ; 62
54e: 28 5f subi r18, 0xF8 ; 248
550: 3f 4f sbci r19, 0xFF ; 255
552: 0f b6 in r0, 0x3f ; 63
554: f8 94 cli
556: 3e bf out 0x3e, r19 ; 62
558: 0f be out 0x3f, r0 ; 63
55a: 2d bf out 0x3d, r18 ; 61
55c: 89 2b or r24, r25
55e: 41 f5 brne .+80 ; 0x5b0 <__stack+0xb1>
560: d6 01 movw r26, r12
562: 0d 90 ld r0, X+
564: 00 20 and r0, r0
566: e9 f7 brne .-6 ; 0x562 <__stack+0x63>
568: 11 97 sbiw r26, 0x01 ; 1
56a: ac 19 sub r26, r12
56c: bd 09 sbc r27, r13
56e: 89 81 ldd r24, Y+1 ; 0x01
570: 9a 81 ldd r25, Y+2 ; 0x02
572: a8 17 cp r26, r24
574: b9 07 cpc r27, r25
576: e1 f4 brne .+56 ; 0x5b0 <__stack+0xb1>
}
if ((Stat & 4) == 0) continue;
578: 80 91 6f 01 lds r24, 0x016F
57c: 82 ff sbrs r24, 2
57e: 0f c0 rjmp .+30 ; 0x59e <__stack+0x9f>
if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec.
580: 81 e1 ldi r24, 0x11 ; 17
582: 92 e0 ldi r25, 0x02 ; 2
584: 0e 94 a9 06 call 0xd52 ; 0xd52 <f_sync>
588: 89 2b or r24, r25
58a: 11 f0 breq .+4 ; 0x590 <__stack+0x91>
58c: 96 e0 ldi r25, 0x06 ; 6
58e: 28 c0 rjmp .+80 ; 0x5e0 <__stack+0xe1>
cli(); Stat &= 0xFB; sei(); // Clear sync request
590: f8 94 cli
592: 80 91 6f 01 lds r24, 0x016F
596: 8b 7f andi r24, 0xFB ; 251
598: 80 93 6f 01 sts 0x016F, r24
59c: 78 94 sei
strcpy_P(&Buff[6], PSTR(".log"));
if (f_open(&file1, Buff, FA_OPEN_ALWAYS | FA_WRITE) || f_lseek(&file1, file1.fsize)) { err = 4; break; }
 
beep(5, 2); // Two beeps. Start logging.
err = 0;
while ((b = get_line()) > 0) {
59e: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <get_line>
5a2: 48 2f mov r20, r24
5a4: 88 23 and r24, r24
5a6: 09 f0 breq .+2 ; 0x5aa <__stack+0xab>
5a8: 75 cf rjmp .-278 ; 0x494 <main+0x22a>
5aa: 35 c0 rjmp .+106 ; 0x616 <__stack+0x117>
5ac: 95 e0 ldi r25, 0x05 ; 5
5ae: 18 c0 rjmp .+48 ; 0x5e0 <__stack+0xe1>
5b0: 98 e0 ldi r25, 0x08 ; 8
5b2: 16 c0 rjmp .+44 ; 0x5e0 <__stack+0xe1>
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
5b4: a5 bc out 0x25, r10 ; 37
DELAY(len);
5b6: 32 e3 ldi r19, 0x32 ; 50
5b8: 30 93 1c 01 sts 0x011C, r19
5bc: 80 91 1c 01 lds r24, 0x011C
5c0: 88 23 and r24, r24
5c2: e1 f7 brne .-8 ; 0x5bc <__stack+0xbd>
BEEP_OFF();
5c4: 15 bc out 0x25, r1 ; 37
DELAY(len);
5c6: 82 e3 ldi r24, 0x32 ; 50
5c8: 80 93 1c 01 sts 0x011C, r24
5cc: 80 91 1c 01 lds r24, 0x011C
5d0: 88 23 and r24, r24
5d2: e1 f7 brne .-8 ; 0x5cc <__stack+0xcd>
/* Controls */
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
5d4: 91 50 subi r25, 0x01 ; 1
5d6: 70 f7 brcc .-36 ; 0x5b4 <__stack+0xb5>
5d8: 93 ce rjmp .-730 ; 0x300 <main+0x96>
5da: 93 e0 ldi r25, 0x03 ; 3
5dc: 01 c0 rjmp .+2 ; 0x5e0 <__stack+0xe1>
5de: 94 e0 ldi r25, 0x04 ; 4
 
 
static
void uart_stop (void)
{
UCSR0B = 0;
5e0: 10 92 c1 00 sts 0x00C1, r1
beep(50, 1);
}
 
// Unrecoverble error. Enter shutdown state.
uart_stop();
GPS_OFF();
5e4: 29 98 cbi 0x05, 1 ; 5
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
5e6: 33 e0 ldi r19, 0x03 ; 3
DELAY(len);
5e8: 29 e1 ldi r18, 0x19 ; 25
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
BEEP_ON();
5ea: 35 bd out 0x25, r19 ; 37
DELAY(len);
5ec: 20 93 1c 01 sts 0x011C, r18
5f0: 80 91 1c 01 lds r24, 0x011C
5f4: 88 23 and r24, r24
5f6: e1 f7 brne .-8 ; 0x5f0 <__stack+0xf1>
BEEP_OFF();
5f8: 15 bc out 0x25, r1 ; 37
DELAY(len);
5fa: 20 93 1c 01 sts 0x011C, r18
5fe: 80 91 1c 01 lds r24, 0x011C
602: 88 23 and r24, r24
604: e1 f7 brne .-8 ; 0x5fe <__stack+0xff>
606: 91 50 subi r25, 0x01 ; 1
/* Controls */
 
static
void beep (BYTE len, BYTE cnt)
{
while (cnt--) {
608: 81 f7 brne .-32 ; 0x5ea <__stack+0xeb>
60a: ff cf rjmp .-2 ; 0x60a <__stack+0x10b>
 
beep(5, 2); // Two beeps. Start logging.
err = 0;
while ((b = get_line()) > 0) {
if ( !gp_comp(Buff, PSTR("$GPGGA")) // Which sentence is logged?
|| !gp_comp(Buff, PSTR("$GPRMC"))
60c: 28 e6 ldi r18, 0x68 ; 104
60e: 30 e0 ldi r19, 0x00 ; 0
610: ad e1 ldi r26, 0x1D ; 29
612: b1 e0 ldi r27, 0x01 ; 1
614: 50 cf rjmp .-352 ; 0x4b6 <main+0x24c>
 
 
static
void uart_stop (void)
{
UCSR0B = 0;
616: 10 92 c1 00 sts 0x00C1, r1
}
if (err) break;
 
// Turn-off GPS power and close the log file by power supply is discharged.
uart_stop();
GPS_OFF();
61a: 29 98 cbi 0x05, 1 ; 5
if (f_close(&file1)) { err = 7; break; };
61c: 81 e1 ldi r24, 0x11 ; 17
61e: 92 e0 ldi r25, 0x02 ; 2
620: 0e 94 00 07 call 0xe00 ; 0xe00 <f_close>
624: 89 2b or r24, r25
626: 11 f0 breq .+4 ; 0x62c <__stack+0x12d>
628: 97 e0 ldi r25, 0x07 ; 7
62a: da cf rjmp .-76 ; 0x5e0 <__stack+0xe1>
62c: 91 e0 ldi r25, 0x01 ; 1
62e: d2 cf rjmp .-92 ; 0x5d4 <__stack+0xd5>
 
00000630 <__vector_11>:
/* 100Hz timer interrupt generated by OC1A */
/*---------------------------------------------------------*/
 
 
ISR(TIMER1_COMPA_vect)
{
630: 1f 92 push r1
632: 0f 92 push r0
634: 0f b6 in r0, 0x3f ; 63
636: 0f 92 push r0
638: 11 24 eor r1, r1
63a: 2f 93 push r18
63c: 8f 93 push r24
63e: 9f 93 push r25
BYTE n;
static WORD ivt_sync;
 
 
n = Timer;
640: 80 91 1c 01 lds r24, 0x011C
if (n) Timer = n - 1;
644: 88 23 and r24, r24
646: 19 f0 breq .+6 ; 0x64e <__vector_11+0x1e>
648: 81 50 subi r24, 0x01 ; 1
64a: 80 93 1c 01 sts 0x011C, r24
 
if (++ivt_sync >= 180 * 100) {
64e: 80 91 0c 01 lds r24, 0x010C
652: 90 91 0d 01 lds r25, 0x010D
656: 01 96 adiw r24, 0x01 ; 1
658: 90 93 0d 01 sts 0x010D, r25
65c: 80 93 0c 01 sts 0x010C, r24
660: 80 55 subi r24, 0x50 ; 80
662: 96 44 sbci r25, 0x46 ; 70
664: 48 f0 brcs .+18 ; 0x678 <__vector_11+0x48>
ivt_sync = 0;
666: 10 92 0d 01 sts 0x010D, r1
66a: 10 92 0c 01 sts 0x010C, r1
Stat |= 4;
66e: 80 91 6f 01 lds r24, 0x016F
672: 84 60 ori r24, 0x04 ; 4
674: 80 93 6f 01 sts 0x016F, r24
}
 
disk_timerproc(); /* Drive timer procedure of low level disk I/O module */
678: 0e 94 6f 11 call 0x22de ; 0x22de <disk_timerproc>
 
}
67c: 9f 91 pop r25
67e: 8f 91 pop r24
680: 2f 91 pop r18
682: 0f 90 pop r0
684: 0f be out 0x3f, r0 ; 63
686: 0f 90 pop r0
688: 1f 90 pop r1
68a: 18 95 reti
 
0000068c <validate>:
static
FRESULT validate ( /* FR_OK(0): The id is valid, !=0: Not valid */
const FATFS *fs, /* Pointer to the file system object */
WORD id /* id member of the target object to be checked */
)
{
68c: fc 01 movw r30, r24
if (!fs || fs->id != id)
68e: 00 97 sbiw r24, 0x00 ; 0
690: 69 f0 breq .+26 ; 0x6ac <validate+0x20>
692: 80 81 ld r24, Z
694: 91 81 ldd r25, Z+1 ; 0x01
696: 86 17 cp r24, r22
698: 97 07 cpc r25, r23
69a: 41 f4 brne .+16 ; 0x6ac <validate+0x20>
return FR_INVALID_OBJECT;
if (disk_status(0) & STA_NOINIT)
69c: 80 e0 ldi r24, 0x00 ; 0
69e: 0e 94 95 0f call 0x1f2a ; 0x1f2a <disk_status>
6a2: 28 2f mov r18, r24
6a4: 30 e0 ldi r19, 0x00 ; 0
6a6: 21 70 andi r18, 0x01 ; 1
6a8: 30 70 andi r19, 0x00 ; 0
6aa: 02 c0 rjmp .+4 ; 0x6b0 <validate+0x24>
6ac: 2c e0 ldi r18, 0x0C ; 12
6ae: 30 e0 ldi r19, 0x00 ; 0
return FR_NOT_READY;
 
return FR_OK;
}
6b0: c9 01 movw r24, r18
6b2: 08 95 ret
 
000006b4 <move_window>:
 
static
BOOL move_window ( /* TRUE: successful, FALSE: failed */
DWORD sector /* Sector number to make apperance in the FatFs->win */
) /* Move to zero only writes back dirty window */
{
6b4: a0 e0 ldi r26, 0x00 ; 0
6b6: b0 e0 ldi r27, 0x00 ; 0
6b8: e0 e6 ldi r30, 0x60 ; 96
6ba: f3 e0 ldi r31, 0x03 ; 3
6bc: 0c 94 cb 14 jmp 0x2996 ; 0x2996 <__prologue_saves__+0x8>
6c0: 4b 01 movw r8, r22
6c2: 5c 01 movw r10, r24
DWORD wsect;
FATFS *fs = FatFs;
6c4: c0 91 10 01 lds r28, 0x0110
6c8: d0 91 11 01 lds r29, 0x0111
 
 
wsect = fs->winsect;
6cc: cc 80 ldd r12, Y+4 ; 0x04
6ce: dd 80 ldd r13, Y+5 ; 0x05
6d0: ee 80 ldd r14, Y+6 ; 0x06
6d2: ff 80 ldd r15, Y+7 ; 0x07
if (wsect != sector) { /* Changed current window */
6d4: c6 16 cp r12, r22
6d6: d7 06 cpc r13, r23
6d8: e8 06 cpc r14, r24
6da: f9 06 cpc r15, r25
6dc: 09 f4 brne .+2 ; 0x6e0 <move_window+0x2c>
6de: 4e c0 rjmp .+156 ; 0x77c <move_window+0xc8>
#if !_FS_READONLY
BYTE n;
if (fs->winflag) { /* Write back dirty window if needed */
6e0: 8f 8d ldd r24, Y+31 ; 0x1f
6e2: 88 23 and r24, r24
6e4: a1 f1 breq .+104 ; 0x74e <move_window+0x9a>
if (disk_write(0, fs->win, wsect, 1) != RES_OK)
6e6: 80 e2 ldi r24, 0x20 ; 32
6e8: 68 2e mov r6, r24
6ea: 71 2c mov r7, r1
6ec: 6c 0e add r6, r28
6ee: 7d 1e adc r7, r29
6f0: 01 e0 ldi r16, 0x01 ; 1
6f2: a7 01 movw r20, r14
6f4: 96 01 movw r18, r12
6f6: b3 01 movw r22, r6
6f8: 80 e0 ldi r24, 0x00 ; 0
6fa: 0e 94 fb 0f call 0x1ff6 ; 0x1ff6 <disk_write>
6fe: 89 2b or r24, r25
700: d9 f5 brne .+118 ; 0x778 <move_window+0xc4>
return FALSE;
fs->winflag = 0;
702: 1f 8e std Y+31, r1 ; 0x1f
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
704: 8c 89 ldd r24, Y+20 ; 0x14
706: 9d 89 ldd r25, Y+21 ; 0x15
708: a0 e0 ldi r26, 0x00 ; 0
70a: b0 e0 ldi r27, 0x00 ; 0
70c: 28 85 ldd r18, Y+8 ; 0x08
70e: 39 85 ldd r19, Y+9 ; 0x09
710: 4a 85 ldd r20, Y+10 ; 0x0a
712: 5b 85 ldd r21, Y+11 ; 0x0b
714: 82 0f add r24, r18
716: 93 1f adc r25, r19
718: a4 1f adc r26, r20
71a: b5 1f adc r27, r21
71c: c8 16 cp r12, r24
71e: d9 06 cpc r13, r25
720: ea 06 cpc r14, r26
722: fb 06 cpc r15, r27
724: a0 f4 brcc .+40 ; 0x74e <move_window+0x9a>
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to all FAT copies */
726: 1e 8d ldd r17, Y+30 ; 0x1e
728: 10 c0 rjmp .+32 ; 0x74a <move_window+0x96>
wsect += fs->sects_fat;
72a: 8c 89 ldd r24, Y+20 ; 0x14
72c: 9d 89 ldd r25, Y+21 ; 0x15
72e: a0 e0 ldi r26, 0x00 ; 0
730: b0 e0 ldi r27, 0x00 ; 0
732: c8 0e add r12, r24
734: d9 1e adc r13, r25
736: ea 1e adc r14, r26
738: fb 1e adc r15, r27
disk_write(0, fs->win, wsect, 1);
73a: 01 e0 ldi r16, 0x01 ; 1
73c: a7 01 movw r20, r14
73e: 96 01 movw r18, r12
740: b3 01 movw r22, r6
742: 80 e0 ldi r24, 0x00 ; 0
744: 0e 94 fb 0f call 0x1ff6 ; 0x1ff6 <disk_write>
if (fs->winflag) { /* Write back dirty window if needed */
if (disk_write(0, fs->win, wsect, 1) != RES_OK)
return FALSE;
fs->winflag = 0;
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to all FAT copies */
748: 11 50 subi r17, 0x01 ; 1
74a: 12 30 cpi r17, 0x02 ; 2
74c: 70 f7 brcc .-36 ; 0x72a <move_window+0x76>
disk_write(0, fs->win, wsect, 1);
}
}
}
#endif
if (sector) {
74e: 81 14 cp r8, r1
750: 91 04 cpc r9, r1
752: a1 04 cpc r10, r1
754: b1 04 cpc r11, r1
756: 91 f0 breq .+36 ; 0x77c <move_window+0xc8>
if (disk_read(0, fs->win, sector, 1) != RES_OK)
758: be 01 movw r22, r28
75a: 60 5e subi r22, 0xE0 ; 224
75c: 7f 4f sbci r23, 0xFF ; 255
75e: 01 e0 ldi r16, 0x01 ; 1
760: a5 01 movw r20, r10
762: 94 01 movw r18, r8
764: 80 e0 ldi r24, 0x00 ; 0
766: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <disk_read>
76a: 89 2b or r24, r25
76c: 29 f4 brne .+10 ; 0x778 <move_window+0xc4>
return FALSE;
fs->winsect = sector;
76e: 8c 82 std Y+4, r8 ; 0x04
770: 9d 82 std Y+5, r9 ; 0x05
772: ae 82 std Y+6, r10 ; 0x06
774: bf 82 std Y+7, r11 ; 0x07
776: 02 c0 rjmp .+4 ; 0x77c <move_window+0xc8>
778: 80 e0 ldi r24, 0x00 ; 0
77a: 01 c0 rjmp .+2 ; 0x77e <move_window+0xca>
77c: 81 e0 ldi r24, 0x01 ; 1
}
}
return TRUE;
}
77e: cd b7 in r28, 0x3d ; 61
780: de b7 in r29, 0x3e ; 62
782: ee e0 ldi r30, 0x0E ; 14
784: 0c 94 e7 14 jmp 0x29ce ; 0x29ce <__epilogue_restores__+0x8>
 
00000788 <put_cluster>:
static
BOOL put_cluster ( /* TRUE: successful, FALSE: failed */
CLUST clust, /* Cluster# to change */
CLUST val /* New value to mark the cluster */
)
{
788: a0 e0 ldi r26, 0x00 ; 0
78a: b0 e0 ldi r27, 0x00 ; 0
78c: ea ec ldi r30, 0xCA ; 202
78e: f3 e0 ldi r31, 0x03 ; 3
790: 0c 94 cb 14 jmp 0x2996 ; 0x2996 <__prologue_saves__+0x8>
794: ec 01 movw r28, r24
796: 4b 01 movw r8, r22
WORD bc;
BYTE *p;
DWORD fatsect;
FATFS *fs = FatFs;
798: e0 90 10 01 lds r14, 0x0110
79c: f0 90 11 01 lds r15, 0x0111
 
 
fatsect = fs->fatbase;
7a0: f7 01 movw r30, r14
7a2: a0 84 ldd r10, Z+8 ; 0x08
7a4: b1 84 ldd r11, Z+9 ; 0x09
7a6: c2 84 ldd r12, Z+10 ; 0x0a
7a8: d3 84 ldd r13, Z+11 ; 0x0b
switch (fs->fs_type) {
7aa: 84 8d ldd r24, Z+28 ; 0x1c
7ac: 81 30 cpi r24, 0x01 ; 1
7ae: 21 f0 breq .+8 ; 0x7b8 <put_cluster+0x30>
7b0: 82 30 cpi r24, 0x02 ; 2
7b2: 09 f0 breq .+2 ; 0x7b6 <put_cluster+0x2e>
7b4: 72 c0 rjmp .+228 ; 0x89a <put_cluster+0x112>
7b6: 5a c0 rjmp .+180 ; 0x86c <put_cluster+0xe4>
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
7b8: 8e 01 movw r16, r28
7ba: 00 0f add r16, r16
7bc: 11 1f adc r17, r17
7be: 0c 0f add r16, r28
7c0: 1d 1f adc r17, r29
7c2: 16 95 lsr r17
7c4: 07 95 ror r16
if (!move_window(fatsect + bc / 512)) return FALSE;
7c6: b8 01 movw r22, r16
7c8: 67 2f mov r22, r23
7ca: 77 27 eor r23, r23
7cc: 66 95 lsr r22
7ce: 80 e0 ldi r24, 0x00 ; 0
7d0: 90 e0 ldi r25, 0x00 ; 0
7d2: 6a 0d add r22, r10
7d4: 7b 1d adc r23, r11
7d6: 8c 1d adc r24, r12
7d8: 9d 1d adc r25, r13
7da: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
7de: 88 23 and r24, r24
7e0: 09 f4 brne .+2 ; 0x7e4 <put_cluster+0x5c>
7e2: 5b c0 rjmp .+182 ; 0x89a <put_cluster+0x112>
p = &fs->win[bc % 512];
7e4: d8 01 movw r26, r16
7e6: b1 70 andi r27, 0x01 ; 1
*p = (clust & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
7e8: 51 e0 ldi r21, 0x01 ; 1
7ea: 65 2e mov r6, r21
7ec: 71 2c mov r7, r1
7ee: 6c 22 and r6, r28
7f0: 7d 22 and r7, r29
7f2: c0 ff sbrs r28, 0
7f4: 0a c0 rjmp .+20 ; 0x80a <put_cluster+0x82>
7f6: f7 01 movw r30, r14
7f8: ea 0f add r30, r26
7fa: fb 1f adc r31, r27
7fc: 80 a1 ldd r24, Z+32 ; 0x20
7fe: 8f 70 andi r24, 0x0F ; 15
800: 98 2d mov r25, r8
802: 92 95 swap r25
804: 90 7f andi r25, 0xF0 ; 240
806: 98 2b or r25, r24
808: 01 c0 rjmp .+2 ; 0x80c <put_cluster+0x84>
80a: 98 2d mov r25, r8
80c: ae 0d add r26, r14
80e: bf 1d adc r27, r15
810: fd 01 movw r30, r26
812: 90 a3 std Z+32, r25 ; 0x20
bc++;
814: e8 01 movw r28, r16
816: 21 96 adiw r28, 0x01 ; 1
fs->winflag = 1;
818: 81 e0 ldi r24, 0x01 ; 1
81a: f7 01 movw r30, r14
81c: 87 8f std Z+31, r24 ; 0x1f
if (!move_window(fatsect + bc / 512)) return FALSE;
81e: be 01 movw r22, r28
820: 67 2f mov r22, r23
822: 77 27 eor r23, r23
824: 66 95 lsr r22
826: 80 e0 ldi r24, 0x00 ; 0
828: 90 e0 ldi r25, 0x00 ; 0
82a: 6a 0d add r22, r10
82c: 7b 1d adc r23, r11
82e: 8c 1d adc r24, r12
830: 9d 1d adc r25, r13
832: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
836: 88 23 and r24, r24
838: 81 f1 breq .+96 ; 0x89a <put_cluster+0x112>
p = &fs->win[bc % 512];
83a: de 01 movw r26, r28
83c: b1 70 andi r27, 0x01 ; 1
*p = (clust & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
83e: 61 14 cp r6, r1
840: 71 04 cpc r7, r1
842: 39 f0 breq .+14 ; 0x852 <put_cluster+0xca>
844: 34 e0 ldi r19, 0x04 ; 4
846: 96 94 lsr r9
848: 87 94 ror r8
84a: 3a 95 dec r19
84c: e1 f7 brne .-8 ; 0x846 <put_cluster+0xbe>
84e: 98 2d mov r25, r8
850: 08 c0 rjmp .+16 ; 0x862 <put_cluster+0xda>
852: f7 01 movw r30, r14
854: ea 0f add r30, r26
856: fb 1f adc r31, r27
858: 90 a1 ldd r25, Z+32 ; 0x20
85a: 90 7f andi r25, 0xF0 ; 240
85c: 89 2d mov r24, r9
85e: 8f 70 andi r24, 0x0F ; 15
860: 98 2b or r25, r24
862: ae 0d add r26, r14
864: bf 1d adc r27, r15
866: fd 01 movw r30, r26
868: 90 a3 std Z+32, r25 ; 0x20
86a: 13 c0 rjmp .+38 ; 0x892 <put_cluster+0x10a>
break;
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) return FALSE;
86c: 6d 2f mov r22, r29
86e: 77 27 eor r23, r23
870: 80 e0 ldi r24, 0x00 ; 0
872: 90 e0 ldi r25, 0x00 ; 0
874: 6a 0d add r22, r10
876: 7b 1d adc r23, r11
878: 8c 1d adc r24, r12
87a: 9d 1d adc r25, r13
87c: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
880: 88 23 and r24, r24
882: 59 f0 breq .+22 ; 0x89a <put_cluster+0x112>
ST_WORD(&fs->win[((WORD)clust * 2) % 512], (WORD)val);
884: cc 0f add r28, r28
886: dd 1f adc r29, r29
888: d1 70 andi r29, 0x01 ; 1
88a: ce 0d add r28, r14
88c: df 1d adc r29, r15
88e: 99 a2 std Y+33, r9 ; 0x21
890: 88 a2 std Y+32, r8 ; 0x20
break;
#endif
default :
return FALSE;
}
fs->winflag = 1;
892: 81 e0 ldi r24, 0x01 ; 1
894: f7 01 movw r30, r14
896: 87 8f std Z+31, r24 ; 0x1f
898: 01 c0 rjmp .+2 ; 0x89c <put_cluster+0x114>
return TRUE;
89a: 80 e0 ldi r24, 0x00 ; 0
}
89c: cd b7 in r28, 0x3d ; 61
89e: de b7 in r29, 0x3e ; 62
8a0: ee e0 ldi r30, 0x0E ; 14
8a2: 0c 94 e7 14 jmp 0x29ce ; 0x29ce <__epilogue_restores__+0x8>
 
000008a6 <get_cluster>:
 
static
CLUST get_cluster ( /* 0,>=2: successful, 1: failed */
CLUST clust /* Cluster# to get the link information */
)
{
8a6: a0 e0 ldi r26, 0x00 ; 0
8a8: b0 e0 ldi r27, 0x00 ; 0
8aa: e9 e5 ldi r30, 0x59 ; 89
8ac: f4 e0 ldi r31, 0x04 ; 4
8ae: 0c 94 ce 14 jmp 0x299c ; 0x299c <__prologue_saves__+0xe>
8b2: 8c 01 movw r16, r24
WORD wc, bc;
DWORD fatsect;
FATFS *fs = FatFs;
8b4: e0 90 10 01 lds r14, 0x0110
8b8: f0 90 11 01 lds r15, 0x0111
 
 
if (clust >= 2 && clust < fs->max_clust) { /* Valid cluster# */
8bc: 82 30 cpi r24, 0x02 ; 2
8be: 91 05 cpc r25, r1
8c0: 08 f4 brcc .+2 ; 0x8c4 <get_cluster+0x1e>
8c2: 67 c0 rjmp .+206 ; 0x992 <get_cluster+0xec>
8c4: e7 01 movw r28, r14
8c6: 8e 89 ldd r24, Y+22 ; 0x16
8c8: 9f 89 ldd r25, Y+23 ; 0x17
8ca: 08 17 cp r16, r24
8cc: 19 07 cpc r17, r25
8ce: 08 f0 brcs .+2 ; 0x8d2 <get_cluster+0x2c>
8d0: 60 c0 rjmp .+192 ; 0x992 <get_cluster+0xec>
fatsect = fs->fatbase;
8d2: a8 84 ldd r10, Y+8 ; 0x08
8d4: b9 84 ldd r11, Y+9 ; 0x09
8d6: ca 84 ldd r12, Y+10 ; 0x0a
8d8: db 84 ldd r13, Y+11 ; 0x0b
switch (fs->fs_type) {
8da: 8c 8d ldd r24, Y+28 ; 0x1c
8dc: 81 30 cpi r24, 0x01 ; 1
8de: 21 f0 breq .+8 ; 0x8e8 <get_cluster+0x42>
8e0: 82 30 cpi r24, 0x02 ; 2
8e2: 09 f0 breq .+2 ; 0x8e6 <get_cluster+0x40>
8e4: 56 c0 rjmp .+172 ; 0x992 <get_cluster+0xec>
8e6: 40 c0 rjmp .+128 ; 0x968 <get_cluster+0xc2>
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
8e8: e8 01 movw r28, r16
8ea: cc 0f add r28, r28
8ec: dd 1f adc r29, r29
8ee: c0 0f add r28, r16
8f0: d1 1f adc r29, r17
8f2: d6 95 lsr r29
8f4: c7 95 ror r28
if (!move_window(fatsect + bc / 512)) break;
8f6: be 01 movw r22, r28
8f8: 67 2f mov r22, r23
8fa: 77 27 eor r23, r23
8fc: 66 95 lsr r22
8fe: 80 e0 ldi r24, 0x00 ; 0
900: 90 e0 ldi r25, 0x00 ; 0
902: 6a 0d add r22, r10
904: 7b 1d adc r23, r11
906: 8c 1d adc r24, r12
908: 9d 1d adc r25, r13
90a: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
90e: 88 23 and r24, r24
910: 09 f4 brne .+2 ; 0x914 <get_cluster+0x6e>
912: 3f c0 rjmp .+126 ; 0x992 <get_cluster+0xec>
wc = fs->win[bc % 512]; bc++;
914: fe 01 movw r30, r28
916: f1 70 andi r31, 0x01 ; 1
918: ee 0d add r30, r14
91a: ff 1d adc r31, r15
91c: 90 a0 ldd r9, Z+32 ; 0x20
91e: 21 96 adiw r28, 0x01 ; 1
if (!move_window(fatsect + bc / 512)) break;
920: be 01 movw r22, r28
922: 67 2f mov r22, r23
924: 77 27 eor r23, r23
926: 66 95 lsr r22
928: 80 e0 ldi r24, 0x00 ; 0
92a: 90 e0 ldi r25, 0x00 ; 0
92c: 6a 0d add r22, r10
92e: 7b 1d adc r23, r11
930: 8c 1d adc r24, r12
932: 9d 1d adc r25, r13
934: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
938: 88 23 and r24, r24
93a: 59 f1 breq .+86 ; 0x992 <get_cluster+0xec>
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fatsect + bc / 512)) break;
wc = fs->win[bc % 512]; bc++;
93c: 29 2d mov r18, r9
93e: 30 e0 ldi r19, 0x00 ; 0
if (!move_window(fatsect + bc / 512)) break;
wc |= (WORD)fs->win[bc % 512] << 8;
940: d1 70 andi r29, 0x01 ; 1
942: ec 0e add r14, r28
944: fd 1e adc r15, r29
946: f7 01 movw r30, r14
948: 90 a1 ldd r25, Z+32 ; 0x20
94a: 80 e0 ldi r24, 0x00 ; 0
94c: 28 2b or r18, r24
94e: 39 2b or r19, r25
return (clust & 1) ? (wc >> 4) : (wc & 0xFFF);
950: 00 ff sbrs r16, 0
952: 07 c0 rjmp .+14 ; 0x962 <get_cluster+0xbc>
954: f9 01 movw r30, r18
956: 94 e0 ldi r25, 0x04 ; 4
958: f6 95 lsr r31
95a: e7 95 ror r30
95c: 9a 95 dec r25
95e: e1 f7 brne .-8 ; 0x958 <get_cluster+0xb2>
960: 1a c0 rjmp .+52 ; 0x996 <get_cluster+0xf0>
962: f9 01 movw r30, r18
964: ff 70 andi r31, 0x0F ; 15
966: 17 c0 rjmp .+46 ; 0x996 <get_cluster+0xf0>
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) break;
968: 61 2f mov r22, r17
96a: 77 27 eor r23, r23
96c: 80 e0 ldi r24, 0x00 ; 0
96e: 90 e0 ldi r25, 0x00 ; 0
970: 6a 0d add r22, r10
972: 7b 1d adc r23, r11
974: 8c 1d adc r24, r12
976: 9d 1d adc r25, r13
978: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
97c: 88 23 and r24, r24
97e: 49 f0 breq .+18 ; 0x992 <get_cluster+0xec>
return LD_WORD(&fs->win[((WORD)clust * 2) % 512]);
980: 00 0f add r16, r16
982: 11 1f adc r17, r17
984: 11 70 andi r17, 0x01 ; 1
986: e0 0e add r14, r16
988: f1 1e adc r15, r17
98a: e7 01 movw r28, r14
98c: e8 a1 ldd r30, Y+32 ; 0x20
98e: f9 a1 ldd r31, Y+33 ; 0x21
990: 02 c0 rjmp .+4 ; 0x996 <get_cluster+0xf0>
992: e1 e0 ldi r30, 0x01 ; 1
994: f0 e0 ldi r31, 0x00 ; 0
#endif
}
}
 
return 1; /* There is no cluster information, or an error occured */
}
996: cf 01 movw r24, r30
998: cd b7 in r28, 0x3d ; 61
99a: de b7 in r29, 0x3e ; 62
99c: eb e0 ldi r30, 0x0B ; 11
99e: 0c 94 ea 14 jmp 0x29d4 ; 0x29d4 <__epilogue_restores__+0xe>
 
000009a2 <create_chain>:
#if !_FS_READONLY
static
CLUST create_chain ( /* 0: no free cluster, 1: error, >=2: new cluster number */
CLUST clust /* Cluster# to stretch, 0 means create new */
)
{
9a2: a0 e0 ldi r26, 0x00 ; 0
9a4: b0 e0 ldi r27, 0x00 ; 0
9a6: e7 ed ldi r30, 0xD7 ; 215
9a8: f4 e0 ldi r31, 0x04 ; 4
9aa: 0c 94 cf 14 jmp 0x299e ; 0x299e <__prologue_saves__+0x10>
9ae: 7c 01 movw r14, r24
CLUST cstat, ncl, scl, mcl;
FATFS *fs = FatFs;
9b0: c0 90 10 01 lds r12, 0x0110
9b4: d0 90 11 01 lds r13, 0x0111
 
 
mcl = fs->max_clust;
9b8: f6 01 movw r30, r12
9ba: a6 88 ldd r10, Z+22 ; 0x16
9bc: b7 88 ldd r11, Z+23 ; 0x17
if (clust == 0) { /* Create new chain */
9be: 00 97 sbiw r24, 0x00 ; 0
9c0: 49 f4 brne .+18 ; 0x9d4 <create_chain+0x32>
scl = fs->last_clust; /* Get last allocated cluster */
9c2: 00 8d ldd r16, Z+24 ; 0x18
9c4: 11 8d ldd r17, Z+25 ; 0x19
if (scl < 2 || scl >= mcl) scl = 1;
9c6: 02 30 cpi r16, 0x02 ; 2
9c8: 11 05 cpc r17, r1
9ca: 88 f0 brcs .+34 ; 0x9ee <create_chain+0x4c>
9cc: 0a 15 cp r16, r10
9ce: 1b 05 cpc r17, r11
9d0: 70 f4 brcc .+28 ; 0x9ee <create_chain+0x4c>
9d2: 0f c0 rjmp .+30 ; 0x9f2 <create_chain+0x50>
}
else { /* Stretch existing chain */
cstat = get_cluster(clust); /* Check the cluster status */
9d4: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
9d8: 9c 01 movw r18, r24
if (cstat < 2) return 1; /* It is an invalid cluster */
9da: 82 30 cpi r24, 0x02 ; 2
9dc: 91 05 cpc r25, r1
9de: 08 f4 brcc .+2 ; 0x9e2 <create_chain+0x40>
9e0: 40 c0 rjmp .+128 ; 0xa62 <create_chain+0xc0>
if (cstat < mcl) return cstat; /* It is already followed by next cluster */
9e2: 8a 15 cp r24, r10
9e4: 9b 05 cpc r25, r11
9e6: 08 f4 brcc .+2 ; 0x9ea <create_chain+0x48>
9e8: 41 c0 rjmp .+130 ; 0xa6c <create_chain+0xca>
9ea: 87 01 movw r16, r14
9ec: 02 c0 rjmp .+4 ; 0x9f2 <create_chain+0x50>
9ee: 01 e0 ldi r16, 0x01 ; 1
9f0: 10 e0 ldi r17, 0x00 ; 0
9f2: e8 01 movw r28, r16
scl = clust;
}
 
ncl = scl; /* Start cluster */
for (;;) {
ncl++; /* Next cluster */
9f4: 21 96 adiw r28, 0x01 ; 1
if (ncl >= mcl) { /* Wrap around */
9f6: ca 15 cp r28, r10
9f8: db 05 cpc r29, r11
9fa: 28 f0 brcs .+10 ; 0xa06 <create_chain+0x64>
ncl = 2;
if (ncl > scl) return 0; /* No free custer */
9fc: 02 30 cpi r16, 0x02 ; 2
9fe: 11 05 cpc r17, r1
a00: 98 f1 brcs .+102 ; 0xa68 <create_chain+0xc6>
a02: c2 e0 ldi r28, 0x02 ; 2
a04: d0 e0 ldi r29, 0x00 ; 0
}
cstat = get_cluster(ncl); /* Get the cluster status */
a06: ce 01 movw r24, r28
a08: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
a0c: 9c 01 movw r18, r24
if (cstat == 0) break; /* Found a free cluster */
a0e: 00 97 sbiw r24, 0x00 ; 0
a10: 39 f0 breq .+14 ; 0xa20 <create_chain+0x7e>
if (cstat == 1) return 1; /* Any error occured */
a12: 81 30 cpi r24, 0x01 ; 1
a14: 91 05 cpc r25, r1
a16: 51 f1 breq .+84 ; 0xa6c <create_chain+0xca>
if (ncl == scl) return 0; /* No free custer */
a18: c0 17 cp r28, r16
a1a: d1 07 cpc r29, r17
a1c: 59 f7 brne .-42 ; 0x9f4 <create_chain+0x52>
a1e: 24 c0 rjmp .+72 ; 0xa68 <create_chain+0xc6>
a20: 1c 2f mov r17, r28
a22: 0d 2f mov r16, r29
}
 
if (!put_cluster(ncl, (CLUST)0x0FFFFFFF)) return 1; /* Mark the new cluster "in use" */
a24: 6f ef ldi r22, 0xFF ; 255
a26: 7f ef ldi r23, 0xFF ; 255
a28: ce 01 movw r24, r28
a2a: 0e 94 c4 03 call 0x788 ; 0x788 <put_cluster>
a2e: 88 23 and r24, r24
a30: c1 f0 breq .+48 ; 0xa62 <create_chain+0xc0>
if (clust && !put_cluster(clust, ncl)) return 1; /* Link it to previous one if needed */
a32: e1 14 cp r14, r1
a34: f1 04 cpc r15, r1
a36: 31 f0 breq .+12 ; 0xa44 <create_chain+0xa2>
a38: be 01 movw r22, r28
a3a: c7 01 movw r24, r14
a3c: 0e 94 c4 03 call 0x788 ; 0x788 <put_cluster>
a40: 88 23 and r24, r24
a42: 79 f0 breq .+30 ; 0xa62 <create_chain+0xc0>
 
fs->last_clust = ncl; /* Update fsinfo */
a44: f6 01 movw r30, r12
a46: 10 8f std Z+24, r17 ; 0x18
a48: 01 8f std Z+25, r16 ; 0x19
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
a4a: 82 8d ldd r24, Z+26 ; 0x1a
a4c: 93 8d ldd r25, Z+27 ; 0x1b
a4e: ff ef ldi r31, 0xFF ; 255
a50: 8f 3f cpi r24, 0xFF ; 255
a52: 9f 07 cpc r25, r31
a54: 21 f0 breq .+8 ; 0xa5e <create_chain+0xbc>
fs->free_clust--;
a56: 01 97 sbiw r24, 0x01 ; 1
a58: f6 01 movw r30, r12
a5a: 93 8f std Z+27, r25 ; 0x1b
a5c: 82 8f std Z+26, r24 ; 0x1a
a5e: 9e 01 movw r18, r28
a60: 05 c0 rjmp .+10 ; 0xa6c <create_chain+0xca>
a62: 21 e0 ldi r18, 0x01 ; 1
a64: 30 e0 ldi r19, 0x00 ; 0
a66: 02 c0 rjmp .+4 ; 0xa6c <create_chain+0xca>
a68: 20 e0 ldi r18, 0x00 ; 0
a6a: 30 e0 ldi r19, 0x00 ; 0
fs->fsi_flag = 1;
#endif
}
 
return ncl; /* Return new cluster number */
}
a6c: c9 01 movw r24, r18
a6e: cd b7 in r28, 0x3d ; 61
a70: de b7 in r29, 0x3e ; 62
a72: ea e0 ldi r30, 0x0A ; 10
a74: 0c 94 eb 14 jmp 0x29d6 ; 0x29d6 <__epilogue_restores__+0x10>
 
00000a78 <f_lseek>:
 
FRESULT f_lseek (
FIL *fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
{
a78: a0 e0 ldi r26, 0x00 ; 0
a7a: b0 e0 ldi r27, 0x00 ; 0
a7c: e2 e4 ldi r30, 0x42 ; 66
a7e: f5 e0 ldi r31, 0x05 ; 5
a80: 0c 94 cb 14 jmp 0x2996 ; 0x2996 <__prologue_saves__+0x8>
a84: ec 01 movw r28, r24
a86: 7a 01 movw r14, r20
a88: 8b 01 movw r16, r22
CLUST clust;
DWORD csize;
BYTE csect;
FRESULT res;
FATFS *fs = fp->fs;
a8a: 6c 80 ldd r6, Y+4 ; 0x04
a8c: 7d 80 ldd r7, Y+5 ; 0x05
 
 
res = validate(fs, fp->id); /* Check validity of the object */
a8e: 68 81 ld r22, Y
a90: 79 81 ldd r23, Y+1 ; 0x01
a92: c3 01 movw r24, r6
a94: 0e 94 46 03 call 0x68c ; 0x68c <validate>
a98: 4c 01 movw r8, r24
if (res) return res;
a9a: 00 97 sbiw r24, 0x00 ; 0
a9c: 09 f0 breq .+2 ; 0xaa0 <f_lseek+0x28>
a9e: d6 c0 rjmp .+428 ; 0xc4c <f_lseek+0x1d4>
 
if (fp->flag & FA__ERROR) return FR_RW_ERROR;
aa0: 8a 81 ldd r24, Y+2 ; 0x02
aa2: 87 fd sbrc r24, 7
aa4: d0 c0 rjmp .+416 ; 0xc46 <f_lseek+0x1ce>
#if !_FS_READONLY
if (ofs > fp->fsize && !(fp->flag & FA_WRITE))
aa6: aa 84 ldd r10, Y+10 ; 0x0a
aa8: bb 84 ldd r11, Y+11 ; 0x0b
aaa: cc 84 ldd r12, Y+12 ; 0x0c
aac: dd 84 ldd r13, Y+13 ; 0x0d
aae: ae 14 cp r10, r14
ab0: bf 04 cpc r11, r15
ab2: c0 06 cpc r12, r16
ab4: d1 06 cpc r13, r17
ab6: 10 f4 brcc .+4 ; 0xabc <f_lseek+0x44>
ab8: 81 ff sbrs r24, 1
aba: 02 c0 rjmp .+4 ; 0xac0 <f_lseek+0x48>
abc: 57 01 movw r10, r14
abe: 68 01 movw r12, r16
#else
if (ofs > fp->fsize)
#endif
ofs = fp->fsize;
fp->fptr = 0; fp->sect_clust = 1; /* Set file R/W pointer to top of the file */
ac0: 1e 82 std Y+6, r1 ; 0x06
ac2: 1f 82 std Y+7, r1 ; 0x07
ac4: 18 86 std Y+8, r1 ; 0x08
ac6: 19 86 std Y+9, r1 ; 0x09
ac8: 81 e0 ldi r24, 0x01 ; 1
aca: 8b 83 std Y+3, r24 ; 0x03
 
/* Move file R/W pointer if needed */
if (ofs) {
acc: a1 14 cp r10, r1
ace: b1 04 cpc r11, r1
ad0: c1 04 cpc r12, r1
ad2: d1 04 cpc r13, r1
ad4: 09 f4 brne .+2 ; 0xad8 <f_lseek+0x60>
ad6: 9d c0 rjmp .+314 ; 0xc12 <f_lseek+0x19a>
clust = fp->org_clust; /* Get start cluster */
ad8: 6e 85 ldd r22, Y+14 ; 0x0e
ada: 7f 85 ldd r23, Y+15 ; 0x0f
#if !_FS_READONLY
if (!clust) { /* If the file does not have a cluster chain, create new cluster chain */
adc: 61 15 cp r22, r1
ade: 71 05 cpc r23, r1
ae0: 71 f4 brne .+28 ; 0xafe <f_lseek+0x86>
clust = create_chain(0);
ae2: 80 e0 ldi r24, 0x00 ; 0
ae4: 90 e0 ldi r25, 0x00 ; 0
ae6: 0e 94 d1 04 call 0x9a2 ; 0x9a2 <create_chain>
aea: bc 01 movw r22, r24
if (clust == 1) goto fk_error;
aec: 81 30 cpi r24, 0x01 ; 1
aee: 91 05 cpc r25, r1
af0: 09 f4 brne .+2 ; 0xaf4 <f_lseek+0x7c>
af2: a6 c0 rjmp .+332 ; 0xc40 <f_lseek+0x1c8>
fp->org_clust = clust;
af4: 9f 87 std Y+15, r25 ; 0x0f
af6: 8e 87 std Y+14, r24 ; 0x0e
}
#endif
if (clust) { /* If the file has a cluster chain, it can be followed */
af8: 00 97 sbiw r24, 0x00 ; 0
afa: 09 f4 brne .+2 ; 0xafe <f_lseek+0x86>
afc: 8a c0 rjmp .+276 ; 0xc12 <f_lseek+0x19a>
csize = (DWORD)fs->sects_clust * 512; /* Cluster size in unit of byte */
afe: f3 01 movw r30, r6
b00: 85 8d ldd r24, Z+29 ; 0x1d
b02: e8 2e mov r14, r24
b04: ff 24 eor r15, r15
b06: 00 e0 ldi r16, 0x00 ; 0
b08: 10 e0 ldi r17, 0x00 ; 0
b0a: f9 e0 ldi r31, 0x09 ; 9
b0c: ee 0c add r14, r14
b0e: ff 1c adc r15, r15
b10: 00 1f adc r16, r16
b12: 11 1f adc r17, r17
b14: fa 95 dec r31
b16: d1 f7 brne .-12 ; 0xb0c <f_lseek+0x94>
for (;;) { /* Loop to skip leading clusters */
fp->curr_clust = clust; /* Update current cluster */
b18: 79 8b std Y+17, r23 ; 0x11
b1a: 68 8b std Y+16, r22 ; 0x10
if (ofs <= csize) break;
b1c: ea 14 cp r14, r10
b1e: fb 04 cpc r15, r11
b20: 0c 05 cpc r16, r12
b22: 1d 05 cpc r17, r13
b24: 58 f5 brcc .+86 ; 0xb7c <f_lseek+0x104>
#if !_FS_READONLY
if (fp->flag & FA_WRITE) /* Check if in write mode or not */
b26: 8a 81 ldd r24, Y+2 ; 0x02
b28: 81 ff sbrs r24, 1
b2a: 04 c0 rjmp .+8 ; 0xb34 <f_lseek+0xbc>
clust = create_chain(clust); /* Force streached if in write mode */
b2c: cb 01 movw r24, r22
b2e: 0e 94 d1 04 call 0x9a2 ; 0x9a2 <create_chain>
b32: 03 c0 rjmp .+6 ; 0xb3a <f_lseek+0xc2>
else
#endif
clust = get_cluster(clust); /* Only follow cluster chain if not in write mode */
b34: cb 01 movw r24, r22
b36: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
b3a: bc 01 movw r22, r24
if (clust == 0) { /* Stop if could not follow the cluster chain */
b3c: 00 97 sbiw r24, 0x00 ; 0
b3e: e1 f0 breq .+56 ; 0xb78 <f_lseek+0x100>
ofs = csize; break;
}
if (clust == 1 || clust >= fs->max_clust) goto fk_error;
b40: 81 30 cpi r24, 0x01 ; 1
b42: 91 05 cpc r25, r1
b44: 09 f4 brne .+2 ; 0xb48 <f_lseek+0xd0>
b46: 7c c0 rjmp .+248 ; 0xc40 <f_lseek+0x1c8>
b48: f3 01 movw r30, r6
b4a: 86 89 ldd r24, Z+22 ; 0x16
b4c: 97 89 ldd r25, Z+23 ; 0x17
b4e: 68 17 cp r22, r24
b50: 79 07 cpc r23, r25
b52: 08 f0 brcs .+2 ; 0xb56 <f_lseek+0xde>
b54: 75 c0 rjmp .+234 ; 0xc40 <f_lseek+0x1c8>
fp->fptr += csize; /* Update R/W pointer */
b56: 8e 81 ldd r24, Y+6 ; 0x06
b58: 9f 81 ldd r25, Y+7 ; 0x07
b5a: a8 85 ldd r26, Y+8 ; 0x08
b5c: b9 85 ldd r27, Y+9 ; 0x09
b5e: 8e 0d add r24, r14
b60: 9f 1d adc r25, r15
b62: a0 1f adc r26, r16
b64: b1 1f adc r27, r17
b66: 8e 83 std Y+6, r24 ; 0x06
b68: 9f 83 std Y+7, r25 ; 0x07
b6a: a8 87 std Y+8, r26 ; 0x08
b6c: b9 87 std Y+9, r27 ; 0x09
ofs -= csize;
b6e: ae 18 sub r10, r14
b70: bf 08 sbc r11, r15
b72: c0 0a sbc r12, r16
b74: d1 0a sbc r13, r17
b76: d0 cf rjmp .-96 ; 0xb18 <f_lseek+0xa0>
}
b78: 57 01 movw r10, r14
b7a: 68 01 movw r12, r16
csect = (BYTE)((ofs - 1) / 512); /* Sector offset in the cluster */
b7c: d6 01 movw r26, r12
b7e: c5 01 movw r24, r10
b80: 01 97 sbiw r24, 0x01 ; 1
b82: a1 09 sbc r26, r1
b84: b1 09 sbc r27, r1
b86: e9 e0 ldi r30, 0x09 ; 9
b88: b6 95 lsr r27
b8a: a7 95 ror r26
b8c: 97 95 ror r25
b8e: 87 95 ror r24
b90: ea 95 dec r30
b92: d1 f7 brne .-12 ; 0xb88 <f_lseek+0x110>
b94: f8 2e mov r15, r24
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
b96: 00 91 10 01 lds r16, 0x0110
b9a: 10 91 11 01 lds r17, 0x0111
 
 
clust -= 2;
b9e: 62 50 subi r22, 0x02 ; 2
ba0: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
ba2: f8 01 movw r30, r16
ba4: 86 89 ldd r24, Z+22 ; 0x16
ba6: 97 89 ldd r25, Z+23 ; 0x17
ba8: 02 97 sbiw r24, 0x02 ; 2
baa: 68 17 cp r22, r24
bac: 79 07 cpc r23, r25
bae: 28 f0 brcs .+10 ; 0xbba <f_lseek+0x142>
bb0: 20 e0 ldi r18, 0x00 ; 0
bb2: 30 e0 ldi r19, 0x00 ; 0
bb4: 40 e0 ldi r20, 0x00 ; 0
bb6: 50 e0 ldi r21, 0x00 ; 0
bb8: 14 c0 rjmp .+40 ; 0xbe2 <f_lseek+0x16a>
return (DWORD)clust * fs->sects_clust + fs->database;
bba: 80 e0 ldi r24, 0x00 ; 0
bbc: 90 e0 ldi r25, 0x00 ; 0
bbe: f8 01 movw r30, r16
bc0: 25 8d ldd r18, Z+29 ; 0x1d
bc2: 30 e0 ldi r19, 0x00 ; 0
bc4: 40 e0 ldi r20, 0x00 ; 0
bc6: 50 e0 ldi r21, 0x00 ; 0
bc8: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
bcc: 9b 01 movw r18, r22
bce: ac 01 movw r20, r24
bd0: f8 01 movw r30, r16
bd2: 80 89 ldd r24, Z+16 ; 0x10
bd4: 91 89 ldd r25, Z+17 ; 0x11
bd6: a2 89 ldd r26, Z+18 ; 0x12
bd8: b3 89 ldd r27, Z+19 ; 0x13
bda: 28 0f add r18, r24
bdc: 39 1f adc r19, r25
bde: 4a 1f adc r20, r26
be0: 5b 1f adc r21, r27
if (clust == 1 || clust >= fs->max_clust) goto fk_error;
fp->fptr += csize; /* Update R/W pointer */
ofs -= csize;
}
csect = (BYTE)((ofs - 1) / 512); /* Sector offset in the cluster */
fp->curr_sect = clust2sect(clust) + csect; /* Current sector */
be2: 2f 0d add r18, r15
be4: 31 1d adc r19, r1
be6: 41 1d adc r20, r1
be8: 51 1d adc r21, r1
bea: 2a 8b std Y+18, r18 ; 0x12
bec: 3b 8b std Y+19, r19 ; 0x13
bee: 4c 8b std Y+20, r20 ; 0x14
bf0: 5d 8b std Y+21, r21 ; 0x15
fp->sect_clust = fs->sects_clust - csect; /* Left sector counter in the cluster */
bf2: f3 01 movw r30, r6
bf4: 85 8d ldd r24, Z+29 ; 0x1d
bf6: 8f 19 sub r24, r15
bf8: 8b 83 std Y+3, r24 ; 0x03
fp->fptr += ofs; /* Update file R/W pointer */
bfa: 8e 81 ldd r24, Y+6 ; 0x06
bfc: 9f 81 ldd r25, Y+7 ; 0x07
bfe: a8 85 ldd r26, Y+8 ; 0x08
c00: b9 85 ldd r27, Y+9 ; 0x09
c02: 8a 0d add r24, r10
c04: 9b 1d adc r25, r11
c06: ac 1d adc r26, r12
c08: bd 1d adc r27, r13
c0a: 8e 83 std Y+6, r24 ; 0x06
c0c: 9f 83 std Y+7, r25 ; 0x07
c0e: a8 87 std Y+8, r26 ; 0x08
c10: b9 87 std Y+9, r27 ; 0x09
}
}
#if !_FS_READONLY
if ((fp->flag & FA_WRITE) && fp->fptr > fp->fsize) { /* Set updated flag if in write mode */
c12: 6a 81 ldd r22, Y+2 ; 0x02
c14: 61 ff sbrs r22, 1
c16: 1a c0 rjmp .+52 ; 0xc4c <f_lseek+0x1d4>
c18: 2e 81 ldd r18, Y+6 ; 0x06
c1a: 3f 81 ldd r19, Y+7 ; 0x07
c1c: 48 85 ldd r20, Y+8 ; 0x08
c1e: 59 85 ldd r21, Y+9 ; 0x09
c20: 8a 85 ldd r24, Y+10 ; 0x0a
c22: 9b 85 ldd r25, Y+11 ; 0x0b
c24: ac 85 ldd r26, Y+12 ; 0x0c
c26: bd 85 ldd r27, Y+13 ; 0x0d
c28: 82 17 cp r24, r18
c2a: 93 07 cpc r25, r19
c2c: a4 07 cpc r26, r20
c2e: b5 07 cpc r27, r21
c30: 68 f4 brcc .+26 ; 0xc4c <f_lseek+0x1d4>
fp->fsize = fp->fptr;
c32: 2a 87 std Y+10, r18 ; 0x0a
c34: 3b 87 std Y+11, r19 ; 0x0b
c36: 4c 87 std Y+12, r20 ; 0x0c
c38: 5d 87 std Y+13, r21 ; 0x0d
fp->flag |= FA__WRITTEN;
c3a: 60 62 ori r22, 0x20 ; 32
c3c: 6a 83 std Y+2, r22 ; 0x02
c3e: 06 c0 rjmp .+12 ; 0xc4c <f_lseek+0x1d4>
#endif
 
return FR_OK;
 
fk_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
c40: 8a 81 ldd r24, Y+2 ; 0x02
c42: 80 68 ori r24, 0x80 ; 128
c44: 8a 83 std Y+2, r24 ; 0x02
c46: 68 e0 ldi r22, 0x08 ; 8
c48: 86 2e mov r8, r22
c4a: 91 2c mov r9, r1
return FR_RW_ERROR;
}
c4c: c4 01 movw r24, r8
c4e: cd b7 in r28, 0x3d ; 61
c50: de b7 in r29, 0x3e ; 62
c52: ee e0 ldi r30, 0x0E ; 14
c54: 0c 94 e7 14 jmp 0x29ce ; 0x29ce <__epilogue_restores__+0x8>
 
00000c58 <next_dir_entry>:
 
static
BOOL next_dir_entry ( /* TRUE: successful, FALSE: could not move next */
DIR *dirobj /* Pointer to directory object */
)
{
c58: ef 92 push r14
c5a: ff 92 push r15
c5c: 0f 93 push r16
c5e: 1f 93 push r17
c60: cf 93 push r28
c62: df 93 push r29
c64: 8c 01 movw r16, r24
CLUST clust;
WORD idx;
FATFS *fs = FatFs;
c66: c0 91 10 01 lds r28, 0x0110
c6a: d0 91 11 01 lds r29, 0x0111
 
 
idx = dirobj->index + 1;
c6e: fc 01 movw r30, r24
c70: e2 80 ldd r14, Z+2 ; 0x02
c72: f3 80 ldd r15, Z+3 ; 0x03
c74: 08 94 sec
c76: e1 1c adc r14, r1
c78: f1 1c adc r15, r1
if ((idx & 15) == 0) { /* Table sector changed? */
c7a: c7 01 movw r24, r14
c7c: 8f 70 andi r24, 0x0F ; 15
c7e: 90 70 andi r25, 0x00 ; 0
c80: 89 2b or r24, r25
c82: 09 f0 breq .+2 ; 0xc86 <next_dir_entry+0x2e>
c84: 5b c0 rjmp .+182 ; 0xd3c <next_dir_entry+0xe4>
dirobj->sect++; /* Next sector */
c86: 82 85 ldd r24, Z+10 ; 0x0a
c88: 93 85 ldd r25, Z+11 ; 0x0b
c8a: a4 85 ldd r26, Z+12 ; 0x0c
c8c: b5 85 ldd r27, Z+13 ; 0x0d
c8e: 01 96 adiw r24, 0x01 ; 1
c90: a1 1d adc r26, r1
c92: b1 1d adc r27, r1
c94: 82 87 std Z+10, r24 ; 0x0a
c96: 93 87 std Z+11, r25 ; 0x0b
c98: a4 87 std Z+12, r26 ; 0x0c
c9a: b5 87 std Z+13, r27 ; 0x0d
if (!dirobj->clust) { /* In static table */
c9c: 40 85 ldd r20, Z+8 ; 0x08
c9e: 51 85 ldd r21, Z+9 ; 0x09
ca0: 41 15 cp r20, r1
ca2: 51 05 cpc r21, r1
ca4: 39 f4 brne .+14 ; 0xcb4 <next_dir_entry+0x5c>
if (idx >= fs->n_rootdir) return FALSE; /* Reached to end of table */
ca6: 8a 81 ldd r24, Y+2 ; 0x02
ca8: 9b 81 ldd r25, Y+3 ; 0x03
caa: e8 16 cp r14, r24
cac: f9 06 cpc r15, r25
cae: 08 f4 brcc .+2 ; 0xcb2 <next_dir_entry+0x5a>
cb0: 45 c0 rjmp .+138 ; 0xd3c <next_dir_entry+0xe4>
cb2: 49 c0 rjmp .+146 ; 0xd46 <next_dir_entry+0xee>
} else { /* In dynamic table */
if (((idx / 16) & (fs->sects_clust - 1)) == 0) { /* Cluster changed? */
cb4: 8d 8d ldd r24, Y+29 ; 0x1d
cb6: 90 e0 ldi r25, 0x00 ; 0
cb8: 01 97 sbiw r24, 0x01 ; 1
cba: 97 01 movw r18, r14
cbc: a4 e0 ldi r26, 0x04 ; 4
cbe: 36 95 lsr r19
cc0: 27 95 ror r18
cc2: aa 95 dec r26
cc4: e1 f7 brne .-8 ; 0xcbe <next_dir_entry+0x66>
cc6: 82 23 and r24, r18
cc8: 93 23 and r25, r19
cca: 89 2b or r24, r25
ccc: b9 f5 brne .+110 ; 0xd3c <next_dir_entry+0xe4>
clust = get_cluster(dirobj->clust); /* Get next cluster */
cce: ca 01 movw r24, r20
cd0: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
cd4: bc 01 movw r22, r24
if (clust < 2 || clust >= fs->max_clust) /* Reached to end of table */
cd6: 82 30 cpi r24, 0x02 ; 2
cd8: 91 05 cpc r25, r1
cda: a8 f1 brcs .+106 ; 0xd46 <next_dir_entry+0xee>
cdc: 8e 89 ldd r24, Y+22 ; 0x16
cde: 9f 89 ldd r25, Y+23 ; 0x17
ce0: 68 17 cp r22, r24
ce2: 79 07 cpc r23, r25
ce4: 80 f5 brcc .+96 ; 0xd46 <next_dir_entry+0xee>
return FALSE;
dirobj->clust = clust; /* Initialize for new cluster */
ce6: f8 01 movw r30, r16
ce8: 71 87 std Z+9, r23 ; 0x09
cea: 60 87 std Z+8, r22 ; 0x08
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
cec: c0 91 10 01 lds r28, 0x0110
cf0: d0 91 11 01 lds r29, 0x0111
 
 
clust -= 2;
cf4: 62 50 subi r22, 0x02 ; 2
cf6: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
cf8: 8e 89 ldd r24, Y+22 ; 0x16
cfa: 9f 89 ldd r25, Y+23 ; 0x17
cfc: 02 97 sbiw r24, 0x02 ; 2
cfe: 68 17 cp r22, r24
d00: 79 07 cpc r23, r25
d02: 28 f0 brcs .+10 ; 0xd0e <next_dir_entry+0xb6>
d04: 20 e0 ldi r18, 0x00 ; 0
d06: 30 e0 ldi r19, 0x00 ; 0
d08: 40 e0 ldi r20, 0x00 ; 0
d0a: 50 e0 ldi r21, 0x00 ; 0
d0c: 12 c0 rjmp .+36 ; 0xd32 <next_dir_entry+0xda>
return (DWORD)clust * fs->sects_clust + fs->database;
d0e: 80 e0 ldi r24, 0x00 ; 0
d10: 90 e0 ldi r25, 0x00 ; 0
d12: 2d 8d ldd r18, Y+29 ; 0x1d
d14: 30 e0 ldi r19, 0x00 ; 0
d16: 40 e0 ldi r20, 0x00 ; 0
d18: 50 e0 ldi r21, 0x00 ; 0
d1a: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
d1e: 9b 01 movw r18, r22
d20: ac 01 movw r20, r24
d22: 88 89 ldd r24, Y+16 ; 0x10
d24: 99 89 ldd r25, Y+17 ; 0x11
d26: aa 89 ldd r26, Y+18 ; 0x12
d28: bb 89 ldd r27, Y+19 ; 0x13
d2a: 28 0f add r18, r24
d2c: 39 1f adc r19, r25
d2e: 4a 1f adc r20, r26
d30: 5b 1f adc r21, r27
if (((idx / 16) & (fs->sects_clust - 1)) == 0) { /* Cluster changed? */
clust = get_cluster(dirobj->clust); /* Get next cluster */
if (clust < 2 || clust >= fs->max_clust) /* Reached to end of table */
return FALSE;
dirobj->clust = clust; /* Initialize for new cluster */
dirobj->sect = clust2sect(clust);
d32: f8 01 movw r30, r16
d34: 22 87 std Z+10, r18 ; 0x0a
d36: 33 87 std Z+11, r19 ; 0x0b
d38: 44 87 std Z+12, r20 ; 0x0c
d3a: 55 87 std Z+13, r21 ; 0x0d
}
}
}
dirobj->index = idx; /* Lower 4 bit of dirobj->index indicates offset in dirobj->sect */
d3c: f8 01 movw r30, r16
d3e: f3 82 std Z+3, r15 ; 0x03
d40: e2 82 std Z+2, r14 ; 0x02
d42: 81 e0 ldi r24, 0x01 ; 1
d44: 01 c0 rjmp .+2 ; 0xd48 <next_dir_entry+0xf0>
return TRUE;
d46: 80 e0 ldi r24, 0x00 ; 0
}
d48: cd b7 in r28, 0x3d ; 61
d4a: de b7 in r29, 0x3e ; 62
d4c: e6 e0 ldi r30, 0x06 ; 6
d4e: 0c 94 ef 14 jmp 0x29de ; 0x29de <__epilogue_restores__+0x18>
 
00000d52 <f_sync>:
/*-----------------------------------------------------------------------*/
 
FRESULT f_sync (
FIL *fp /* Pointer to the file object */
)
{
d52: ef 92 push r14
d54: ff 92 push r15
d56: 0f 93 push r16
d58: 1f 93 push r17
d5a: cf 93 push r28
d5c: df 93 push r29
d5e: ec 01 movw r28, r24
BYTE *dir;
FRESULT res;
FATFS *fs = fp->fs;
 
 
res = validate(fs, fp->id); /* Check validity of the object */
d60: 68 81 ld r22, Y
d62: 79 81 ldd r23, Y+1 ; 0x01
d64: 8c 81 ldd r24, Y+4 ; 0x04
d66: 9d 81 ldd r25, Y+5 ; 0x05
d68: 0e 94 46 03 call 0x68c ; 0x68c <validate>
d6c: 7c 01 movw r14, r24
if (res == FR_OK) {
d6e: 00 97 sbiw r24, 0x00 ; 0
d70: 09 f0 breq .+2 ; 0xd74 <f_sync+0x22>
d72: 40 c0 rjmp .+128 ; 0xdf4 <f_sync+0xa2>
if (fp->flag & FA__WRITTEN) { /* Has the file been written? */
d74: 8a 81 ldd r24, Y+2 ; 0x02
d76: 85 ff sbrs r24, 5
d78: 3d c0 rjmp .+122 ; 0xdf4 <f_sync+0xa2>
/* Update the directory entry */
if (!move_window(fp->dir_sect))
d7a: 6e 89 ldd r22, Y+22 ; 0x16
d7c: 7f 89 ldd r23, Y+23 ; 0x17
d7e: 88 8d ldd r24, Y+24 ; 0x18
d80: 99 8d ldd r25, Y+25 ; 0x19
d82: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
d86: 88 23 and r24, r24
d88: 91 f1 breq .+100 ; 0xdee <f_sync+0x9c>
return FR_RW_ERROR;
dir = fp->dir_ptr;
d8a: 0a 8d ldd r16, Y+26 ; 0x1a
d8c: 1b 8d ldd r17, Y+27 ; 0x1b
dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
d8e: f8 01 movw r30, r16
d90: 83 85 ldd r24, Z+11 ; 0x0b
d92: 80 62 ori r24, 0x20 ; 32
d94: 83 87 std Z+11, r24 ; 0x0b
ST_DWORD(&dir[DIR_FileSize], fp->fsize); /* Update file size */
d96: 8a 85 ldd r24, Y+10 ; 0x0a
d98: 9b 85 ldd r25, Y+11 ; 0x0b
d9a: ac 85 ldd r26, Y+12 ; 0x0c
d9c: bd 85 ldd r27, Y+13 ; 0x0d
d9e: 84 8f std Z+28, r24 ; 0x1c
da0: 95 8f std Z+29, r25 ; 0x1d
da2: a6 8f std Z+30, r26 ; 0x1e
da4: b7 8f std Z+31, r27 ; 0x1f
ST_WORD(&dir[DIR_FstClusLO], fp->org_clust); /* Update start cluster */
da6: 8e 85 ldd r24, Y+14 ; 0x0e
da8: 9f 85 ldd r25, Y+15 ; 0x0f
daa: 93 8f std Z+27, r25 ; 0x1b
dac: 82 8f std Z+26, r24 ; 0x1a
#if _FAT32
ST_WORD(&dir[DIR_FstClusHI], fp->org_clust >> 16);
#endif
tim = get_fattime(); /* Updated time */
dae: 0e 94 b0 00 call 0x160 ; 0x160 <get_fattime>
ST_DWORD(&dir[DIR_WrtTime], tim);
db2: f8 01 movw r30, r16
db4: 66 8b std Z+22, r22 ; 0x16
db6: 77 8b std Z+23, r23 ; 0x17
db8: 80 8f std Z+24, r24 ; 0x18
dba: 91 8f std Z+25, r25 ; 0x19
fp->flag &= ~FA__WRITTEN;
dbc: 8a 81 ldd r24, Y+2 ; 0x02
dbe: 8f 7d andi r24, 0xDF ; 223
dc0: 8a 83 std Y+2, r24 ; 0x02
FRESULT sync (void) /* FR_OK: successful, FR_RW_ERROR: failed */
{
FATFS *fs = FatFs;
 
 
fs->winflag = 1;
dc2: e0 91 10 01 lds r30, 0x0110
dc6: f0 91 11 01 lds r31, 0x0111
dca: 81 e0 ldi r24, 0x01 ; 1
dcc: 87 8f std Z+31, r24 ; 0x1f
if (!move_window(0)) return FR_RW_ERROR;
dce: 60 e0 ldi r22, 0x00 ; 0
dd0: 70 e0 ldi r23, 0x00 ; 0
dd2: 80 e0 ldi r24, 0x00 ; 0
dd4: 90 e0 ldi r25, 0x00 ; 0
dd6: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
dda: 88 23 and r24, r24
ddc: 41 f0 breq .+16 ; 0xdee <f_sync+0x9c>
ST_DWORD(&fs->win[FSI_Nxt_Free], fs->last_clust);
disk_write(0, fs->win, fs->fsi_sector, 1);
fs->fsi_flag = 0;
}
#endif
if (disk_ioctl(0, CTRL_SYNC, NULL) != RES_OK) return FR_RW_ERROR;
dde: 40 e0 ldi r20, 0x00 ; 0
de0: 50 e0 ldi r21, 0x00 ; 0
de2: 63 e0 ldi r22, 0x03 ; 3
de4: 80 e0 ldi r24, 0x00 ; 0
de6: 0e 94 77 10 call 0x20ee ; 0x20ee <disk_ioctl>
dea: 89 2b or r24, r25
dec: 19 f0 breq .+6 ; 0xdf4 <f_sync+0xa2>
dee: b8 e0 ldi r27, 0x08 ; 8
df0: eb 2e mov r14, r27
df2: f1 2c mov r15, r1
fp->flag &= ~FA__WRITTEN;
res = sync();
}
}
return res;
}
df4: c7 01 movw r24, r14
df6: cd b7 in r28, 0x3d ; 61
df8: de b7 in r29, 0x3e ; 62
dfa: e6 e0 ldi r30, 0x06 ; 6
dfc: 0c 94 ef 14 jmp 0x29de ; 0x29de <__epilogue_restores__+0x18>
 
00000e00 <f_close>:
/*-----------------------------------------------------------------------*/
 
FRESULT f_close (
FIL *fp /* Pointer to the file object to be closed */
)
{
e00: cf 93 push r28
e02: df 93 push r29
e04: ec 01 movw r28, r24
FRESULT res;
 
 
#if !_FS_READONLY
res = f_sync(fp);
e06: 0e 94 a9 06 call 0xd52 ; 0xd52 <f_sync>
e0a: 9c 01 movw r18, r24
#else
res = validate(fp->fs, fp->id);
#endif
if (res == FR_OK)
e0c: 00 97 sbiw r24, 0x00 ; 0
e0e: 11 f4 brne .+4 ; 0xe14 <f_close+0x14>
fp->fs = NULL;
e10: 1d 82 std Y+5, r1 ; 0x05
e12: 1c 82 std Y+4, r1 ; 0x04
 
return res;
}
e14: c9 01 movw r24, r18
e16: df 91 pop r29
e18: cf 91 pop r28
e1a: 08 95 ret
 
00000e1c <f_write>:
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
WORD btw, /* Number of bytes to write */
WORD *bw /* Pointer to number of bytes written */
)
{
e1c: a0 e0 ldi r26, 0x00 ; 0
e1e: b0 e0 ldi r27, 0x00 ; 0
e20: e4 e1 ldi r30, 0x14 ; 20
e22: f7 e0 ldi r31, 0x07 ; 7
e24: 0c 94 c8 14 jmp 0x2990 ; 0x2990 <__prologue_saves__+0x2>
e28: ec 01 movw r28, r24
e2a: 16 2f mov r17, r22
e2c: 07 2f mov r16, r23
e2e: 7a 01 movw r14, r20
e30: 39 01 movw r6, r18
WORD wcnt;
CLUST clust;
BYTE cc;
FRESULT res;
const BYTE *wbuff = buff;
FATFS *fs = fp->fs;
e32: ac 80 ldd r10, Y+4 ; 0x04
e34: bd 80 ldd r11, Y+5 ; 0x05
 
 
*bw = 0;
e36: f9 01 movw r30, r18
e38: 11 82 std Z+1, r1 ; 0x01
e3a: 10 82 st Z, r1
res = validate(fs, fp->id); /* Check validity of the object */
e3c: 68 81 ld r22, Y
e3e: 79 81 ldd r23, Y+1 ; 0x01
e40: c5 01 movw r24, r10
e42: 0e 94 46 03 call 0x68c ; 0x68c <validate>
e46: 4c 01 movw r8, r24
if (res) return res;
e48: 00 97 sbiw r24, 0x00 ; 0
e4a: 09 f0 breq .+2 ; 0xe4e <f_write+0x32>
e4c: 3b c1 rjmp .+630 ; 0x10c4 <f_write+0x2a8>
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
e4e: 8a 81 ldd r24, Y+2 ; 0x02
e50: 87 fd sbrc r24, 7
e52: 35 c1 rjmp .+618 ; 0x10be <f_write+0x2a2>
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
e54: 81 fd sbrc r24, 1
e56: 04 c0 rjmp .+8 ; 0xe60 <f_write+0x44>
e58: 36 e0 ldi r19, 0x06 ; 6
e5a: 83 2e mov r8, r19
e5c: 91 2c mov r9, r1
e5e: 32 c1 rjmp .+612 ; 0x10c4 <f_write+0x2a8>
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
e60: 2a 85 ldd r18, Y+10 ; 0x0a
e62: 3b 85 ldd r19, Y+11 ; 0x0b
e64: 4c 85 ldd r20, Y+12 ; 0x0c
e66: 5d 85 ldd r21, Y+13 ; 0x0d
e68: c7 01 movw r24, r14
e6a: a0 e0 ldi r26, 0x00 ; 0
e6c: b0 e0 ldi r27, 0x00 ; 0
e6e: 82 0f add r24, r18
e70: 93 1f adc r25, r19
e72: a4 1f adc r26, r20
e74: b5 1f adc r27, r21
e76: 82 17 cp r24, r18
e78: 93 07 cpc r25, r19
e7a: a4 07 cpc r26, r20
e7c: b5 07 cpc r27, r21
e7e: 08 f4 brcc .+2 ; 0xe82 <f_write+0x66>
e80: 21 c1 rjmp .+578 ; 0x10c4 <f_write+0x2a8>
DWORD sect;
WORD wcnt;
CLUST clust;
BYTE cc;
FRESULT res;
const BYTE *wbuff = buff;
e82: 81 2f mov r24, r17
e84: 90 2f mov r25, r16
e86: 9c 01 movw r18, r24
e88: 69 01 movw r12, r18
fs->winsect = fp->curr_sect;
}
}
if (!move_window(fp->curr_sect)) /* Move sector window */
goto fw_error;
wcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes bytes to sector window */
e8a: 41 2c mov r4, r1
e8c: 22 e0 ldi r18, 0x02 ; 2
e8e: 52 2e mov r5, r18
if (wcnt > btw) wcnt = btw;
memcpy(&fs->win[(WORD)fp->fptr % 512], wbuff, wcnt);
fs->winflag = 1;
e90: 33 24 eor r3, r3
e92: 33 94 inc r3
e94: f8 c0 rjmp .+496 ; 0x1086 <f_write+0x26a>
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
e96: 2e 81 ldd r18, Y+6 ; 0x06
e98: 3f 81 ldd r19, Y+7 ; 0x07
e9a: 48 85 ldd r20, Y+8 ; 0x08
e9c: 59 85 ldd r21, Y+9 ; 0x09
e9e: da 01 movw r26, r20
ea0: c9 01 movw r24, r18
ea2: 91 70 andi r25, 0x01 ; 1
ea4: a0 70 andi r26, 0x00 ; 0
ea6: b0 70 andi r27, 0x00 ; 0
ea8: 00 97 sbiw r24, 0x00 ; 0
eaa: a1 05 cpc r26, r1
eac: b1 05 cpc r27, r1
eae: 09 f0 breq .+2 ; 0xeb2 <f_write+0x96>
eb0: b1 c0 rjmp .+354 ; 0x1014 <f_write+0x1f8>
if (--(fp->sect_clust)) { /* Decrement left sector counter */
eb2: 8b 81 ldd r24, Y+3 ; 0x03
eb4: 81 50 subi r24, 0x01 ; 1
eb6: 8b 83 std Y+3, r24 ; 0x03
eb8: 88 23 and r24, r24
eba: 49 f0 breq .+18 ; 0xece <f_write+0xb2>
sect = fp->curr_sect + 1; /* Get current sector */
ebc: 2a 89 ldd r18, Y+18 ; 0x12
ebe: 3b 89 ldd r19, Y+19 ; 0x13
ec0: 4c 89 ldd r20, Y+20 ; 0x14
ec2: 5d 89 ldd r21, Y+21 ; 0x15
ec4: 2f 5f subi r18, 0xFF ; 255
ec6: 3f 4f sbci r19, 0xFF ; 255
ec8: 4f 4f sbci r20, 0xFF ; 255
eca: 5f 4f sbci r21, 0xFF ; 255
ecc: 51 c0 rjmp .+162 ; 0xf70 <f_write+0x154>
} else { /* On the cluster boundary, get next cluster */
if (fp->fptr == 0) { /* Is top of the file */
ece: 21 15 cp r18, r1
ed0: 31 05 cpc r19, r1
ed2: 41 05 cpc r20, r1
ed4: 51 05 cpc r21, r1
ed6: 69 f4 brne .+26 ; 0xef2 <f_write+0xd6>
clust = fp->org_clust;
ed8: 6e 85 ldd r22, Y+14 ; 0x0e
eda: 7f 85 ldd r23, Y+15 ; 0x0f
if (clust == 0) /* No cluster is created yet */
edc: 61 15 cp r22, r1
ede: 71 05 cpc r23, r1
ee0: 89 f4 brne .+34 ; 0xf04 <f_write+0xe8>
fp->org_clust = clust = create_chain(0); /* Create a new cluster chain */
ee2: 80 e0 ldi r24, 0x00 ; 0
ee4: 90 e0 ldi r25, 0x00 ; 0
ee6: 0e 94 d1 04 call 0x9a2 ; 0x9a2 <create_chain>
eea: bc 01 movw r22, r24
eec: 9f 87 std Y+15, r25 ; 0x0f
eee: 8e 87 std Y+14, r24 ; 0x0e
ef0: 05 c0 rjmp .+10 ; 0xefc <f_write+0xe0>
} else { /* Middle or end of file */
clust = create_chain(fp->curr_clust); /* Trace or streach cluster chain */
ef2: 88 89 ldd r24, Y+16 ; 0x10
ef4: 99 89 ldd r25, Y+17 ; 0x11
ef6: 0e 94 d1 04 call 0x9a2 ; 0x9a2 <create_chain>
efa: bc 01 movw r22, r24
}
if (clust == 0) break; /* Disk full */
efc: 61 15 cp r22, r1
efe: 71 05 cpc r23, r1
f00: 09 f4 brne .+2 ; 0xf04 <f_write+0xe8>
f02: c5 c0 rjmp .+394 ; 0x108e <f_write+0x272>
if (clust == 1 || clust >= fs->max_clust) goto fw_error;
f04: 61 30 cpi r22, 0x01 ; 1
f06: 71 05 cpc r23, r1
f08: 09 f4 brne .+2 ; 0xf0c <f_write+0xf0>
f0a: d6 c0 rjmp .+428 ; 0x10b8 <f_write+0x29c>
f0c: f5 01 movw r30, r10
f0e: 86 89 ldd r24, Z+22 ; 0x16
f10: 97 89 ldd r25, Z+23 ; 0x17
f12: 68 17 cp r22, r24
f14: 79 07 cpc r23, r25
f16: 08 f0 brcs .+2 ; 0xf1a <f_write+0xfe>
f18: cf c0 rjmp .+414 ; 0x10b8 <f_write+0x29c>
fp->curr_clust = clust; /* Current cluster */
f1a: 79 8b std Y+17, r23 ; 0x11
f1c: 68 8b std Y+16, r22 ; 0x10
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
f1e: 00 91 10 01 lds r16, 0x0110
f22: 10 91 11 01 lds r17, 0x0111
 
 
clust -= 2;
f26: 62 50 subi r22, 0x02 ; 2
f28: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
f2a: f8 01 movw r30, r16
f2c: 86 89 ldd r24, Z+22 ; 0x16
f2e: 97 89 ldd r25, Z+23 ; 0x17
f30: 02 97 sbiw r24, 0x02 ; 2
f32: 68 17 cp r22, r24
f34: 79 07 cpc r23, r25
f36: 28 f0 brcs .+10 ; 0xf42 <f_write+0x126>
f38: 20 e0 ldi r18, 0x00 ; 0
f3a: 30 e0 ldi r19, 0x00 ; 0
f3c: 40 e0 ldi r20, 0x00 ; 0
f3e: 50 e0 ldi r21, 0x00 ; 0
f40: 14 c0 rjmp .+40 ; 0xf6a <f_write+0x14e>
return (DWORD)clust * fs->sects_clust + fs->database;
f42: 80 e0 ldi r24, 0x00 ; 0
f44: 90 e0 ldi r25, 0x00 ; 0
f46: f8 01 movw r30, r16
f48: 25 8d ldd r18, Z+29 ; 0x1d
f4a: 30 e0 ldi r19, 0x00 ; 0
f4c: 40 e0 ldi r20, 0x00 ; 0
f4e: 50 e0 ldi r21, 0x00 ; 0
f50: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
f54: 9b 01 movw r18, r22
f56: ac 01 movw r20, r24
f58: f8 01 movw r30, r16
f5a: 80 89 ldd r24, Z+16 ; 0x10
f5c: 91 89 ldd r25, Z+17 ; 0x11
f5e: a2 89 ldd r26, Z+18 ; 0x12
f60: b3 89 ldd r27, Z+19 ; 0x13
f62: 28 0f add r18, r24
f64: 39 1f adc r19, r25
f66: 4a 1f adc r20, r26
f68: 5b 1f adc r21, r27
}
if (clust == 0) break; /* Disk full */
if (clust == 1 || clust >= fs->max_clust) goto fw_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
f6a: f5 01 movw r30, r10
f6c: 85 8d ldd r24, Z+29 ; 0x1d
f6e: 8b 83 std Y+3, r24 ; 0x03
}
fp->curr_sect = sect; /* Update current sector */
f70: 2a 8b std Y+18, r18 ; 0x12
f72: 3b 8b std Y+19, r19 ; 0x13
f74: 4c 8b std Y+20, r20 ; 0x14
f76: 5d 8b std Y+21, r21 ; 0x15
cc = btw / 512; /* When left bytes >= 512, */
f78: 0f 2d mov r16, r15
f7a: 06 95 lsr r16
if (cc) { /* Write maximum contiguous sectors directly */
f7c: 61 f1 breq .+88 ; 0xfd6 <f_write+0x1ba>
f7e: 6b 81 ldd r22, Y+3 ; 0x03
f80: 10 2f mov r17, r16
f82: 60 17 cp r22, r16
f84: 08 f4 brcc .+2 ; 0xf88 <f_write+0x16c>
f86: 16 2f mov r17, r22
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_write(0, wbuff, sect, cc) != RES_OK)
f88: 01 2f mov r16, r17
f8a: b6 01 movw r22, r12
f8c: 80 e0 ldi r24, 0x00 ; 0
f8e: 0e 94 fb 0f call 0x1ff6 ; 0x1ff6 <disk_write>
f92: 89 2b or r24, r25
f94: 09 f0 breq .+2 ; 0xf98 <f_write+0x17c>
f96: 90 c0 rjmp .+288 ; 0x10b8 <f_write+0x29c>
goto fw_error;
fp->sect_clust -= cc - 1;
f98: 8b 81 ldd r24, Y+3 ; 0x03
f9a: 8f 5f subi r24, 0xFF ; 255
f9c: 81 1b sub r24, r17
f9e: 8b 83 std Y+3, r24 ; 0x03
fp->curr_sect += cc - 1;
fa0: 81 2f mov r24, r17
fa2: 90 e0 ldi r25, 0x00 ; 0
fa4: 01 97 sbiw r24, 0x01 ; 1
fa6: 9c 01 movw r18, r24
fa8: 44 27 eor r20, r20
faa: 37 fd sbrc r19, 7
fac: 40 95 com r20
fae: 54 2f mov r21, r20
fb0: 8c 01 movw r16, r24
fb2: 0f 5f subi r16, 0xFF ; 255
fb4: 1f 4f sbci r17, 0xFF ; 255
fb6: 8a 89 ldd r24, Y+18 ; 0x12
fb8: 9b 89 ldd r25, Y+19 ; 0x13
fba: ac 89 ldd r26, Y+20 ; 0x14
fbc: bd 89 ldd r27, Y+21 ; 0x15
fbe: 82 0f add r24, r18
fc0: 93 1f adc r25, r19
fc2: a4 1f adc r26, r20
fc4: b5 1f adc r27, r21
fc6: 8a 8b std Y+18, r24 ; 0x12
fc8: 9b 8b std Y+19, r25 ; 0x13
fca: ac 8b std Y+20, r26 ; 0x14
fcc: bd 8b std Y+21, r27 ; 0x15
wcnt = cc * 512; continue;
fce: 10 2f mov r17, r16
fd0: 00 27 eor r16, r16
fd2: 11 0f add r17, r17
fd4: 3e c0 rjmp .+124 ; 0x1052 <f_write+0x236>
}
if (fp->fptr >= fp->fsize) { /* Flush R/W window if needed */
fd6: 2e 81 ldd r18, Y+6 ; 0x06
fd8: 3f 81 ldd r19, Y+7 ; 0x07
fda: 48 85 ldd r20, Y+8 ; 0x08
fdc: 59 85 ldd r21, Y+9 ; 0x09
fde: 8a 85 ldd r24, Y+10 ; 0x0a
fe0: 9b 85 ldd r25, Y+11 ; 0x0b
fe2: ac 85 ldd r26, Y+12 ; 0x0c
fe4: bd 85 ldd r27, Y+13 ; 0x0d
fe6: 28 17 cp r18, r24
fe8: 39 07 cpc r19, r25
fea: 4a 07 cpc r20, r26
fec: 5b 07 cpc r21, r27
fee: 90 f0 brcs .+36 ; 0x1014 <f_write+0x1f8>
if (!move_window(0)) goto fw_error;
ff0: 60 e0 ldi r22, 0x00 ; 0
ff2: 70 e0 ldi r23, 0x00 ; 0
ff4: 80 e0 ldi r24, 0x00 ; 0
ff6: 90 e0 ldi r25, 0x00 ; 0
ff8: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
ffc: 88 23 and r24, r24
ffe: 09 f4 brne .+2 ; 0x1002 <f_write+0x1e6>
1000: 5b c0 rjmp .+182 ; 0x10b8 <f_write+0x29c>
fs->winsect = fp->curr_sect;
1002: 8a 89 ldd r24, Y+18 ; 0x12
1004: 9b 89 ldd r25, Y+19 ; 0x13
1006: ac 89 ldd r26, Y+20 ; 0x14
1008: bd 89 ldd r27, Y+21 ; 0x15
100a: f5 01 movw r30, r10
100c: 84 83 std Z+4, r24 ; 0x04
100e: 95 83 std Z+5, r25 ; 0x05
1010: a6 83 std Z+6, r26 ; 0x06
1012: b7 83 std Z+7, r27 ; 0x07
}
}
if (!move_window(fp->curr_sect)) /* Move sector window */
1014: 6a 89 ldd r22, Y+18 ; 0x12
1016: 7b 89 ldd r23, Y+19 ; 0x13
1018: 8c 89 ldd r24, Y+20 ; 0x14
101a: 9d 89 ldd r25, Y+21 ; 0x15
101c: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
1020: 88 23 and r24, r24
1022: 09 f4 brne .+2 ; 0x1026 <f_write+0x20a>
1024: 49 c0 rjmp .+146 ; 0x10b8 <f_write+0x29c>
goto fw_error;
wcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes bytes to sector window */
1026: 2e 81 ldd r18, Y+6 ; 0x06
1028: 3f 81 ldd r19, Y+7 ; 0x07
102a: 31 70 andi r19, 0x01 ; 1
102c: c2 01 movw r24, r4
102e: 82 1b sub r24, r18
1030: 93 0b sbc r25, r19
1032: 87 01 movw r16, r14
1034: 8e 15 cp r24, r14
1036: 9f 05 cpc r25, r15
1038: 08 f4 brcc .+2 ; 0x103c <f_write+0x220>
103a: 8c 01 movw r16, r24
if (wcnt > btw) wcnt = btw;
memcpy(&fs->win[(WORD)fp->fptr % 512], wbuff, wcnt);
103c: 20 5e subi r18, 0xE0 ; 224
103e: 3f 4f sbci r19, 0xFF ; 255
1040: 2a 0d add r18, r10
1042: 3b 1d adc r19, r11
1044: a8 01 movw r20, r16
1046: b6 01 movw r22, r12
1048: c9 01 movw r24, r18
104a: 0e 94 a3 11 call 0x2346 ; 0x2346 <memcpy>
fs->winflag = 1;
104e: f5 01 movw r30, r10
1050: 37 8e std Z+31, r3 ; 0x1f
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
1052: c0 0e add r12, r16
1054: d1 1e adc r13, r17
1056: c8 01 movw r24, r16
1058: a0 e0 ldi r26, 0x00 ; 0
105a: b0 e0 ldi r27, 0x00 ; 0
105c: 2e 81 ldd r18, Y+6 ; 0x06
105e: 3f 81 ldd r19, Y+7 ; 0x07
1060: 48 85 ldd r20, Y+8 ; 0x08
1062: 59 85 ldd r21, Y+9 ; 0x09
1064: 28 0f add r18, r24
1066: 39 1f adc r19, r25
1068: 4a 1f adc r20, r26
106a: 5b 1f adc r21, r27
106c: 2e 83 std Y+6, r18 ; 0x06
106e: 3f 83 std Y+7, r19 ; 0x07
1070: 48 87 std Y+8, r20 ; 0x08
1072: 59 87 std Y+9, r21 ; 0x09
1074: f3 01 movw r30, r6
1076: 80 81 ld r24, Z
1078: 91 81 ldd r25, Z+1 ; 0x01
107a: 80 0f add r24, r16
107c: 91 1f adc r25, r17
107e: 91 83 std Z+1, r25 ; 0x01
1080: 80 83 st Z, r24
1082: e0 1a sub r14, r16
1084: f1 0a sbc r15, r17
if (res) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
1086: e1 14 cp r14, r1
1088: f1 04 cpc r15, r1
108a: 09 f0 breq .+2 ; 0x108e <f_write+0x272>
108c: 04 cf rjmp .-504 ; 0xe96 <f_write+0x7a>
if (wcnt > btw) wcnt = btw;
memcpy(&fs->win[(WORD)fp->fptr % 512], wbuff, wcnt);
fs->winflag = 1;
}
 
if (fp->fptr > fp->fsize) fp->fsize = fp->fptr; /* Update file size if needed */
108e: 2e 81 ldd r18, Y+6 ; 0x06
1090: 3f 81 ldd r19, Y+7 ; 0x07
1092: 48 85 ldd r20, Y+8 ; 0x08
1094: 59 85 ldd r21, Y+9 ; 0x09
1096: 8a 85 ldd r24, Y+10 ; 0x0a
1098: 9b 85 ldd r25, Y+11 ; 0x0b
109a: ac 85 ldd r26, Y+12 ; 0x0c
109c: bd 85 ldd r27, Y+13 ; 0x0d
109e: 82 17 cp r24, r18
10a0: 93 07 cpc r25, r19
10a2: a4 07 cpc r26, r20
10a4: b5 07 cpc r27, r21
10a6: 20 f4 brcc .+8 ; 0x10b0 <f_write+0x294>
10a8: 2a 87 std Y+10, r18 ; 0x0a
10aa: 3b 87 std Y+11, r19 ; 0x0b
10ac: 4c 87 std Y+12, r20 ; 0x0c
10ae: 5d 87 std Y+13, r21 ; 0x0d
fp->flag |= FA__WRITTEN; /* Set file changed flag */
10b0: 8a 81 ldd r24, Y+2 ; 0x02
10b2: 80 62 ori r24, 0x20 ; 32
10b4: 8a 83 std Y+2, r24 ; 0x02
10b6: 06 c0 rjmp .+12 ; 0x10c4 <f_write+0x2a8>
return FR_OK;
 
fw_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
10b8: 8a 81 ldd r24, Y+2 ; 0x02
10ba: 80 68 ori r24, 0x80 ; 128
10bc: 8a 83 std Y+2, r24 ; 0x02
10be: 88 e0 ldi r24, 0x08 ; 8
10c0: 88 2e mov r8, r24
10c2: 91 2c mov r9, r1
return FR_RW_ERROR;
}
10c4: c4 01 movw r24, r8
10c6: cd b7 in r28, 0x3d ; 61
10c8: de b7 in r29, 0x3e ; 62
10ca: e1 e1 ldi r30, 0x11 ; 17
10cc: 0c 94 e4 14 jmp 0x29c8 ; 0x29c8 <__epilogue_restores__+0x2>
 
000010d0 <f_read>:
FIL *fp, /* Pointer to the file object */
void *buff, /* Pointer to data buffer */
WORD btr, /* Number of bytes to read */
WORD *br /* Pointer to number of bytes read */
)
{
10d0: a0 e0 ldi r26, 0x00 ; 0
10d2: b0 e0 ldi r27, 0x00 ; 0
10d4: ee e6 ldi r30, 0x6E ; 110
10d6: f8 e0 ldi r31, 0x08 ; 8
10d8: 0c 94 c9 14 jmp 0x2992 ; 0x2992 <__prologue_saves__+0x4>
10dc: ec 01 movw r28, r24
10de: 16 2f mov r17, r22
10e0: 07 2f mov r16, r23
10e2: 7a 01 movw r14, r20
10e4: 39 01 movw r6, r18
DWORD sect, remain;
WORD rcnt;
CLUST clust;
BYTE cc, *rbuff = buff;
FRESULT res;
FATFS *fs = fp->fs;
10e6: 8c 80 ldd r8, Y+4 ; 0x04
10e8: 9d 80 ldd r9, Y+5 ; 0x05
 
 
*br = 0;
10ea: f9 01 movw r30, r18
10ec: 11 82 std Z+1, r1 ; 0x01
10ee: 10 82 st Z, r1
res = validate(fs, fp->id); /* Check validity of the object */
10f0: 68 81 ld r22, Y
10f2: 79 81 ldd r23, Y+1 ; 0x01
10f4: c4 01 movw r24, r8
10f6: 0e 94 46 03 call 0x68c ; 0x68c <validate>
10fa: 5c 01 movw r10, r24
if (res) return res;
10fc: 00 97 sbiw r24, 0x00 ; 0
10fe: 09 f0 breq .+2 ; 0x1102 <f_read+0x32>
1100: f8 c0 rjmp .+496 ; 0x12f2 <f_read+0x222>
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
1102: 8a 81 ldd r24, Y+2 ; 0x02
1104: 87 fd sbrc r24, 7
1106: f2 c0 rjmp .+484 ; 0x12ec <f_read+0x21c>
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
1108: 80 fd sbrc r24, 0
110a: 04 c0 rjmp .+8 ; 0x1114 <f_read+0x44>
110c: 76 e0 ldi r23, 0x06 ; 6
110e: a7 2e mov r10, r23
1110: b1 2c mov r11, r1
1112: ef c0 rjmp .+478 ; 0x12f2 <f_read+0x222>
remain = fp->fsize - fp->fptr;
1114: 2a 85 ldd r18, Y+10 ; 0x0a
1116: 3b 85 ldd r19, Y+11 ; 0x0b
1118: 4c 85 ldd r20, Y+12 ; 0x0c
111a: 5d 85 ldd r21, Y+13 ; 0x0d
111c: 8e 81 ldd r24, Y+6 ; 0x06
111e: 9f 81 ldd r25, Y+7 ; 0x07
1120: a8 85 ldd r26, Y+8 ; 0x08
1122: b9 85 ldd r27, Y+9 ; 0x09
1124: 28 1b sub r18, r24
1126: 39 0b sbc r19, r25
1128: 4a 0b sbc r20, r26
112a: 5b 0b sbc r21, r27
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
112c: c7 01 movw r24, r14
112e: a0 e0 ldi r26, 0x00 ; 0
1130: b0 e0 ldi r27, 0x00 ; 0
1132: 28 17 cp r18, r24
1134: 39 07 cpc r19, r25
1136: 4a 07 cpc r20, r26
1138: 5b 07 cpc r21, r27
113a: 08 f4 brcc .+2 ; 0x113e <f_read+0x6e>
113c: 79 01 movw r14, r18
)
{
DWORD sect, remain;
WORD rcnt;
CLUST clust;
BYTE cc, *rbuff = buff;
113e: 81 2f mov r24, r17
1140: 90 2f mov r25, r16
1142: 9c 01 movw r18, r24
1144: 69 01 movw r12, r18
fp->curr_sect += cc - 1;
rcnt = cc * 512; continue;
}
}
if (!move_window(fp->curr_sect)) goto fr_error; /* Move sector window */
rcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes from sector window */
1146: 41 2c mov r4, r1
1148: 62 e0 ldi r22, 0x02 ; 2
114a: 56 2e mov r5, r22
114c: c7 c0 rjmp .+398 ; 0x12dc <f_read+0x20c>
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
114e: 2e 81 ldd r18, Y+6 ; 0x06
1150: 3f 81 ldd r19, Y+7 ; 0x07
1152: 48 85 ldd r20, Y+8 ; 0x08
1154: 59 85 ldd r21, Y+9 ; 0x09
1156: da 01 movw r26, r20
1158: c9 01 movw r24, r18
115a: 91 70 andi r25, 0x01 ; 1
115c: a0 70 andi r26, 0x00 ; 0
115e: b0 70 andi r27, 0x00 ; 0
1160: 00 97 sbiw r24, 0x00 ; 0
1162: a1 05 cpc r26, r1
1164: b1 05 cpc r27, r1
1166: 09 f0 breq .+2 ; 0x116a <f_read+0x9a>
1168: 84 c0 rjmp .+264 ; 0x1272 <f_read+0x1a2>
if (--fp->sect_clust) { /* Decrement left sector counter */
116a: 8b 81 ldd r24, Y+3 ; 0x03
116c: 81 50 subi r24, 0x01 ; 1
116e: 8b 83 std Y+3, r24 ; 0x03
1170: 88 23 and r24, r24
1172: 49 f0 breq .+18 ; 0x1186 <f_read+0xb6>
sect = fp->curr_sect + 1; /* Get current sector */
1174: 2a 89 ldd r18, Y+18 ; 0x12
1176: 3b 89 ldd r19, Y+19 ; 0x13
1178: 4c 89 ldd r20, Y+20 ; 0x14
117a: 5d 89 ldd r21, Y+21 ; 0x15
117c: 2f 5f subi r18, 0xFF ; 255
117e: 3f 4f sbci r19, 0xFF ; 255
1180: 4f 4f sbci r20, 0xFF ; 255
1182: 5f 4f sbci r21, 0xFF ; 255
1184: 43 c0 rjmp .+134 ; 0x120c <f_read+0x13c>
} else { /* On the cluster boundary, get next cluster */
clust = (fp->fptr == 0) ?
1186: 21 15 cp r18, r1
1188: 31 05 cpc r19, r1
118a: 41 05 cpc r20, r1
118c: 51 05 cpc r21, r1
118e: 19 f4 brne .+6 ; 0x1196 <f_read+0xc6>
1190: 6e 85 ldd r22, Y+14 ; 0x0e
1192: 7f 85 ldd r23, Y+15 ; 0x0f
1194: 05 c0 rjmp .+10 ; 0x11a0 <f_read+0xd0>
1196: 88 89 ldd r24, Y+16 ; 0x10
1198: 99 89 ldd r25, Y+17 ; 0x11
119a: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
119e: bc 01 movw r22, r24
fp->org_clust : get_cluster(fp->curr_clust);
if (clust < 2 || clust >= fs->max_clust)
11a0: 62 30 cpi r22, 0x02 ; 2
11a2: 71 05 cpc r23, r1
11a4: 08 f4 brcc .+2 ; 0x11a8 <f_read+0xd8>
11a6: 9f c0 rjmp .+318 ; 0x12e6 <f_read+0x216>
11a8: f4 01 movw r30, r8
11aa: 86 89 ldd r24, Z+22 ; 0x16
11ac: 97 89 ldd r25, Z+23 ; 0x17
11ae: 68 17 cp r22, r24
11b0: 79 07 cpc r23, r25
11b2: 08 f0 brcs .+2 ; 0x11b6 <f_read+0xe6>
11b4: 98 c0 rjmp .+304 ; 0x12e6 <f_read+0x216>
goto fr_error;
fp->curr_clust = clust; /* Current cluster */
11b6: 79 8b std Y+17, r23 ; 0x11
11b8: 68 8b std Y+16, r22 ; 0x10
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
11ba: 00 91 10 01 lds r16, 0x0110
11be: 10 91 11 01 lds r17, 0x0111
 
 
clust -= 2;
11c2: 62 50 subi r22, 0x02 ; 2
11c4: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
11c6: f8 01 movw r30, r16
11c8: 86 89 ldd r24, Z+22 ; 0x16
11ca: 97 89 ldd r25, Z+23 ; 0x17
11cc: 02 97 sbiw r24, 0x02 ; 2
11ce: 68 17 cp r22, r24
11d0: 79 07 cpc r23, r25
11d2: 28 f0 brcs .+10 ; 0x11de <f_read+0x10e>
11d4: 20 e0 ldi r18, 0x00 ; 0
11d6: 30 e0 ldi r19, 0x00 ; 0
11d8: 40 e0 ldi r20, 0x00 ; 0
11da: 50 e0 ldi r21, 0x00 ; 0
11dc: 14 c0 rjmp .+40 ; 0x1206 <f_read+0x136>
return (DWORD)clust * fs->sects_clust + fs->database;
11de: 80 e0 ldi r24, 0x00 ; 0
11e0: 90 e0 ldi r25, 0x00 ; 0
11e2: f8 01 movw r30, r16
11e4: 25 8d ldd r18, Z+29 ; 0x1d
11e6: 30 e0 ldi r19, 0x00 ; 0
11e8: 40 e0 ldi r20, 0x00 ; 0
11ea: 50 e0 ldi r21, 0x00 ; 0
11ec: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
11f0: 9b 01 movw r18, r22
11f2: ac 01 movw r20, r24
11f4: f8 01 movw r30, r16
11f6: 80 89 ldd r24, Z+16 ; 0x10
11f8: 91 89 ldd r25, Z+17 ; 0x11
11fa: a2 89 ldd r26, Z+18 ; 0x12
11fc: b3 89 ldd r27, Z+19 ; 0x13
11fe: 28 0f add r18, r24
1200: 39 1f adc r19, r25
1202: 4a 1f adc r20, r26
1204: 5b 1f adc r21, r27
fp->org_clust : get_cluster(fp->curr_clust);
if (clust < 2 || clust >= fs->max_clust)
goto fr_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
1206: f4 01 movw r30, r8
1208: 85 8d ldd r24, Z+29 ; 0x1d
120a: 8b 83 std Y+3, r24 ; 0x03
}
fp->curr_sect = sect; /* Update current sector */
120c: 2a 8b std Y+18, r18 ; 0x12
120e: 3b 8b std Y+19, r19 ; 0x13
1210: 4c 8b std Y+20, r20 ; 0x14
1212: 5d 8b std Y+21, r21 ; 0x15
cc = btr / 512; /* When left bytes >= 512, */
1214: 0f 2d mov r16, r15
1216: 06 95 lsr r16
if (cc) { /* Read maximum contiguous sectors directly */
1218: 61 f1 breq .+88 ; 0x1272 <f_read+0x1a2>
121a: 6b 81 ldd r22, Y+3 ; 0x03
121c: 10 2f mov r17, r16
121e: 60 17 cp r22, r16
1220: 08 f4 brcc .+2 ; 0x1224 <f_read+0x154>
1222: 16 2f mov r17, r22
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_read(0, rbuff, sect, cc) != RES_OK)
1224: 01 2f mov r16, r17
1226: b6 01 movw r22, r12
1228: 80 e0 ldi r24, 0x00 ; 0
122a: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <disk_read>
122e: 89 2b or r24, r25
1230: 09 f0 breq .+2 ; 0x1234 <f_read+0x164>
1232: 59 c0 rjmp .+178 ; 0x12e6 <f_read+0x216>
goto fr_error;
fp->sect_clust -= cc - 1;
1234: 8b 81 ldd r24, Y+3 ; 0x03
1236: 8f 5f subi r24, 0xFF ; 255
1238: 81 1b sub r24, r17
123a: 8b 83 std Y+3, r24 ; 0x03
fp->curr_sect += cc - 1;
123c: 81 2f mov r24, r17
123e: 90 e0 ldi r25, 0x00 ; 0
1240: 01 97 sbiw r24, 0x01 ; 1
1242: 9c 01 movw r18, r24
1244: 44 27 eor r20, r20
1246: 37 fd sbrc r19, 7
1248: 40 95 com r20
124a: 54 2f mov r21, r20
124c: 8c 01 movw r16, r24
124e: 0f 5f subi r16, 0xFF ; 255
1250: 1f 4f sbci r17, 0xFF ; 255
1252: 8a 89 ldd r24, Y+18 ; 0x12
1254: 9b 89 ldd r25, Y+19 ; 0x13
1256: ac 89 ldd r26, Y+20 ; 0x14
1258: bd 89 ldd r27, Y+21 ; 0x15
125a: 82 0f add r24, r18
125c: 93 1f adc r25, r19
125e: a4 1f adc r26, r20
1260: b5 1f adc r27, r21
1262: 8a 8b std Y+18, r24 ; 0x12
1264: 9b 8b std Y+19, r25 ; 0x13
1266: ac 8b std Y+20, r26 ; 0x14
1268: bd 8b std Y+21, r27 ; 0x15
rcnt = cc * 512; continue;
126a: 10 2f mov r17, r16
126c: 00 27 eor r16, r16
126e: 11 0f add r17, r17
1270: 1b c0 rjmp .+54 ; 0x12a8 <f_read+0x1d8>
}
}
if (!move_window(fp->curr_sect)) goto fr_error; /* Move sector window */
1272: 6a 89 ldd r22, Y+18 ; 0x12
1274: 7b 89 ldd r23, Y+19 ; 0x13
1276: 8c 89 ldd r24, Y+20 ; 0x14
1278: 9d 89 ldd r25, Y+21 ; 0x15
127a: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
127e: 88 23 and r24, r24
1280: 91 f1 breq .+100 ; 0x12e6 <f_read+0x216>
rcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes from sector window */
1282: 8e 81 ldd r24, Y+6 ; 0x06
1284: 9f 81 ldd r25, Y+7 ; 0x07
1286: 91 70 andi r25, 0x01 ; 1
1288: 92 01 movw r18, r4
128a: 28 1b sub r18, r24
128c: 39 0b sbc r19, r25
128e: 87 01 movw r16, r14
1290: 2e 15 cp r18, r14
1292: 3f 05 cpc r19, r15
1294: 08 f4 brcc .+2 ; 0x1298 <f_read+0x1c8>
1296: 89 01 movw r16, r18
if (rcnt > btr) rcnt = btr;
memcpy(rbuff, &fs->win[(WORD)fp->fptr % 512], rcnt);
1298: 80 96 adiw r24, 0x20 ; 32
129a: 88 0d add r24, r8
129c: 99 1d adc r25, r9
129e: a8 01 movw r20, r16
12a0: bc 01 movw r22, r24
12a2: c6 01 movw r24, r12
12a4: 0e 94 a3 11 call 0x2346 ; 0x2346 <memcpy>
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
12a8: c0 0e add r12, r16
12aa: d1 1e adc r13, r17
12ac: c8 01 movw r24, r16
12ae: a0 e0 ldi r26, 0x00 ; 0
12b0: b0 e0 ldi r27, 0x00 ; 0
12b2: 2e 81 ldd r18, Y+6 ; 0x06
12b4: 3f 81 ldd r19, Y+7 ; 0x07
12b6: 48 85 ldd r20, Y+8 ; 0x08
12b8: 59 85 ldd r21, Y+9 ; 0x09
12ba: 28 0f add r18, r24
12bc: 39 1f adc r19, r25
12be: 4a 1f adc r20, r26
12c0: 5b 1f adc r21, r27
12c2: 2e 83 std Y+6, r18 ; 0x06
12c4: 3f 83 std Y+7, r19 ; 0x07
12c6: 48 87 std Y+8, r20 ; 0x08
12c8: 59 87 std Y+9, r21 ; 0x09
12ca: f3 01 movw r30, r6
12cc: 80 81 ld r24, Z
12ce: 91 81 ldd r25, Z+1 ; 0x01
12d0: 80 0f add r24, r16
12d2: 91 1f adc r25, r17
12d4: 91 83 std Z+1, r25 ; 0x01
12d6: 80 83 st Z, r24
12d8: e0 1a sub r14, r16
12da: f1 0a sbc r15, r17
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
 
for ( ; btr; /* Repeat until all data transferred */
12dc: e1 14 cp r14, r1
12de: f1 04 cpc r15, r1
12e0: 09 f0 breq .+2 ; 0x12e4 <f_read+0x214>
12e2: 35 cf rjmp .-406 ; 0x114e <f_read+0x7e>
12e4: 06 c0 rjmp .+12 ; 0x12f2 <f_read+0x222>
}
 
return FR_OK;
 
fr_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
12e6: 8a 81 ldd r24, Y+2 ; 0x02
12e8: 80 68 ori r24, 0x80 ; 128
12ea: 8a 83 std Y+2, r24 ; 0x02
12ec: 48 e0 ldi r20, 0x08 ; 8
12ee: a4 2e mov r10, r20
12f0: b1 2c mov r11, r1
return FR_RW_ERROR;
}
12f2: c5 01 movw r24, r10
12f4: cd b7 in r28, 0x3d ; 61
12f6: de b7 in r29, 0x3e ; 62
12f8: e0 e1 ldi r30, 0x10 ; 16
12fa: 0c 94 e5 14 jmp 0x29ca ; 0x29ca <__epilogue_restores__+0x4>
 
000012fe <f_mount>:
 
FRESULT f_mount (
BYTE drv, /* Logical drive number to be mounted/unmounted */
FATFS *fs /* Pointer to new file system object (NULL for unmount)*/
)
{
12fe: cf 93 push r28
1300: df 93 push r29
1302: fb 01 movw r30, r22
FATFS *fsobj;
 
 
if (drv) return FR_INVALID_DRIVE;
1304: 88 23 and r24, r24
1306: 19 f0 breq .+6 ; 0x130e <f_mount+0x10>
1308: 25 e0 ldi r18, 0x05 ; 5
130a: 30 e0 ldi r19, 0x00 ; 0
130c: 1d c0 rjmp .+58 ; 0x1348 <f_mount+0x4a>
fsobj = FatFs;
130e: a0 91 10 01 lds r26, 0x0110
1312: b0 91 11 01 lds r27, 0x0111
FatFs = fs;
1316: 70 93 11 01 sts 0x0111, r23
131a: 60 93 10 01 sts 0x0110, r22
if (fsobj) memset(fsobj, 0, sizeof(FATFS));
131e: 10 97 sbiw r26, 0x00 ; 0
1320: 41 f0 breq .+16 ; 0x1332 <f_mount+0x34>
1322: 80 e2 ldi r24, 0x20 ; 32
1324: 92 e0 ldi r25, 0x02 ; 2
1326: ed 01 movw r28, r26
1328: 9c 01 movw r18, r24
132a: 19 92 st Y+, r1
132c: 21 50 subi r18, 0x01 ; 1
132e: 30 40 sbci r19, 0x00 ; 0
1330: e1 f7 brne .-8 ; 0x132a <f_mount+0x2c>
if (fs) memset(fs, 0, sizeof(FATFS));
1332: 30 97 sbiw r30, 0x00 ; 0
1334: 39 f0 breq .+14 ; 0x1344 <f_mount+0x46>
1336: 80 e2 ldi r24, 0x20 ; 32
1338: 92 e0 ldi r25, 0x02 ; 2
133a: df 01 movw r26, r30
133c: ec 01 movw r28, r24
133e: 1d 92 st X+, r1
1340: 21 97 sbiw r28, 0x01 ; 1
1342: e9 f7 brne .-6 ; 0x133e <f_mount+0x40>
1344: 20 e0 ldi r18, 0x00 ; 0
1346: 30 e0 ldi r19, 0x00 ; 0
 
return FR_OK;
}
1348: c9 01 movw r24, r18
134a: df 91 pop r29
134c: cf 91 pop r28
134e: 08 95 ret
 
00001350 <check_fs>:
 
static
BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record or error */
DWORD sect /* Sector# to check if it is a FAT boot record or not */
)
{
1350: 0f 93 push r16
1352: cf 93 push r28
1354: df 93 push r29
1356: 9b 01 movw r18, r22
1358: ac 01 movw r20, r24
FATFS *fs = FatFs;
135a: c0 91 10 01 lds r28, 0x0110
135e: d0 91 11 01 lds r29, 0x0111
 
if (disk_read(0, fs->win, sect, 1) != RES_OK) /* Load boot record */
1362: be 01 movw r22, r28
1364: 60 5e subi r22, 0xE0 ; 224
1366: 7f 4f sbci r23, 0xFF ; 255
1368: 01 e0 ldi r16, 0x01 ; 1
136a: 80 e0 ldi r24, 0x00 ; 0
136c: 0e 94 9c 0f call 0x1f38 ; 0x1f38 <disk_read>
1370: 89 2b or r24, r25
1372: c1 f4 brne .+48 ; 0x13a4 <check_fs+0x54>
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature */
1374: c2 5e subi r28, 0xE2 ; 226
1376: dd 4f sbci r29, 0xFD ; 253
1378: 88 81 ld r24, Y
137a: 99 81 ldd r25, Y+1 ; 0x01
137c: ce 51 subi r28, 0x1E ; 30
137e: d2 40 sbci r29, 0x02 ; 2
1380: 85 55 subi r24, 0x55 ; 85
1382: 9a 4a sbci r25, 0xAA ; 170
1384: 79 f4 brne .+30 ; 0x13a4 <check_fs+0x54>
return 2;
 
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
1386: 43 e0 ldi r20, 0x03 ; 3
1388: 50 e0 ldi r21, 0x00 ; 0
138a: 67 e0 ldi r22, 0x07 ; 7
138c: 71 e0 ldi r23, 0x01 ; 1
138e: ce 01 movw r24, r28
1390: 8a 5a subi r24, 0xAA ; 170
1392: 9f 4f sbci r25, 0xFF ; 255
1394: 0e 94 96 11 call 0x232c ; 0x232c <memcmp>
1398: 9c 01 movw r18, r24
139a: 80 e0 ldi r24, 0x00 ; 0
139c: 23 2b or r18, r19
139e: 19 f0 breq .+6 ; 0x13a6 <check_fs+0x56>
13a0: 81 e0 ldi r24, 0x01 ; 1
13a2: 01 c0 rjmp .+2 ; 0x13a6 <check_fs+0x56>
13a4: 82 e0 ldi r24, 0x02 ; 2
#if _FAT32
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
#endif
return 1;
}
13a6: df 91 pop r29
13a8: cf 91 pop r28
13aa: 0f 91 pop r16
13ac: 08 95 ret
 
000013ae <f_open>:
FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
{
13ae: ad e1 ldi r26, 0x1D ; 29
13b0: b0 e0 ldi r27, 0x00 ; 0
13b2: ed ed ldi r30, 0xDD ; 221
13b4: f9 e0 ldi r31, 0x09 ; 9
13b6: 0c 94 c7 14 jmp 0x298e ; 0x298e <__prologue_saves__>
13ba: 9d 8f std Y+29, r25 ; 0x1d
13bc: 8c 8f std Y+28, r24 ; 0x1c
13be: 3b 01 movw r6, r22
FRESULT res;
BYTE *dir;
DIR dirobj;
char fn[8+3+1];
FATFS *fs = FatFs;
13c0: 80 90 10 01 lds r8, 0x0110
13c4: 90 90 11 01 lds r9, 0x0111
 
 
fp->fs = NULL;
13c8: fc 01 movw r30, r24
13ca: 15 82 std Z+5, r1 ; 0x05
13cc: 14 82 std Z+4, r1 ; 0x04
13ce: 03 c0 rjmp .+6 ; 0x13d6 <f_open+0x28>
const char *p = *path;
FATFS *fs = FatFs;
 
 
 
while (*p == ' ') p++; /* Strip leading spaces */
13d0: 08 94 sec
13d2: 61 1c adc r6, r1
13d4: 71 1c adc r7, r1
13d6: f3 01 movw r30, r6
13d8: 80 81 ld r24, Z
13da: 80 32 cpi r24, 0x20 ; 32
13dc: c9 f3 breq .-14 ; 0x13d0 <f_open+0x22>
if (*p == '/') p++; /* Strip heading slash */
13de: 8f 32 cpi r24, 0x2F ; 47
13e0: 19 f4 brne .+6 ; 0x13e8 <f_open+0x3a>
13e2: 08 94 sec
13e4: 61 1c adc r6, r1
13e6: 71 1c adc r7, r1
*path = p; /* Return pointer to the path name */
 
/* Is the file system object registered? */
if (!fs) return FR_NOT_ENABLED;
13e8: 81 14 cp r8, r1
13ea: 91 04 cpc r9, r1
13ec: 09 f4 brne .+2 ; 0x13f0 <f_open+0x42>
13ee: 17 c1 rjmp .+558 ; 0x161e <f_open+0x270>
FATFS *fs = FatFs;
 
 
fp->fs = NULL;
#if !_FS_READONLY
mode &= (FA_READ|FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW);
13f0: f4 2f mov r31, r20
13f2: ff 71 andi r31, 0x1F ; 31
13f4: fb 8f std Y+27, r31 ; 0x1b
res = auto_mount(&path, (BYTE)(mode & (FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)));
13f6: 14 2f mov r17, r20
13f8: 1e 71 andi r17, 0x1E ; 30
 
/* Is the file system object registered? */
if (!fs) return FR_NOT_ENABLED;
 
/* Chekck if the logical drive has been mounted or not */
if (fs->fs_type) {
13fa: f4 01 movw r30, r8
13fc: 84 8d ldd r24, Z+28 ; 0x1c
13fe: 88 23 and r24, r24
1400: 59 f0 breq .+22 ; 0x1418 <f_open+0x6a>
stat = disk_status(0);
1402: 80 e0 ldi r24, 0x00 ; 0
1404: 0e 94 95 0f call 0x1f2a ; 0x1f2a <disk_status>
if (!(stat & STA_NOINIT)) { /* If the physical drive is kept initialized */
1408: 80 fd sbrc r24, 0
140a: 06 c0 rjmp .+12 ; 0x1418 <f_open+0x6a>
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
140c: 11 23 and r17, r17
140e: 09 f4 brne .+2 ; 0x1412 <f_open+0x64>
1410: ab c3 rjmp .+1878 ; 0x1b68 <f_open+0x7ba>
1412: 82 fd sbrc r24, 2
1414: 07 c1 rjmp .+526 ; 0x1624 <f_open+0x276>
1416: a8 c3 rjmp .+1872 ; 0x1b68 <f_open+0x7ba>
}
}
 
/* The logical drive has not been mounted, following code attempts to mount the logical drive */
 
memset(fs, 0, sizeof(FATFS)); /* Clean-up the file system object */
1418: 80 e2 ldi r24, 0x20 ; 32
141a: 92 e0 ldi r25, 0x02 ; 2
141c: f4 01 movw r30, r8
141e: 9c 01 movw r18, r24
1420: 11 92 st Z+, r1
1422: 21 50 subi r18, 0x01 ; 1
1424: 30 40 sbci r19, 0x00 ; 0
1426: e1 f7 brne .-8 ; 0x1420 <f_open+0x72>
stat = disk_initialize(0); /* Initialize low level disk I/O layer */
1428: 80 e0 ldi r24, 0x00 ; 0
142a: 0e 94 b8 0e call 0x1d70 ; 0x1d70 <disk_initialize>
if (stat & STA_NOINIT) /* Check if the drive is ready */
142e: 80 ff sbrs r24, 0
1430: 03 c0 rjmp .+6 ; 0x1438 <f_open+0x8a>
1432: 21 e0 ldi r18, 0x01 ; 1
1434: 30 e0 ldi r19, 0x00 ; 0
1436: 8b c3 rjmp .+1814 ; 0x1b4e <f_open+0x7a0>
return FR_NOT_READY;
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
1438: 11 23 and r17, r17
143a: 11 f0 breq .+4 ; 0x1440 <f_open+0x92>
143c: 82 fd sbrc r24, 2
143e: f2 c0 rjmp .+484 ; 0x1624 <f_open+0x276>
return FR_WRITE_PROTECTED;
#endif
 
/* Search FAT partition on the drive */
fmt = check_fs(bootsect = 0); /* Check sector 0 as an SFD format */
1440: 60 e0 ldi r22, 0x00 ; 0
1442: 70 e0 ldi r23, 0x00 ; 0
1444: 80 e0 ldi r24, 0x00 ; 0
1446: 90 e0 ldi r25, 0x00 ; 0
1448: 0e 94 a8 09 call 0x1350 ; 0x1350 <check_fs>
if (fmt == 1) { /* Not a FAT boot record, it may be patitioned */
144c: 81 30 cpi r24, 0x01 ; 1
144e: 21 f0 breq .+8 ; 0x1458 <f_open+0xaa>
1450: ee 24 eor r14, r14
1452: ff 24 eor r15, r15
1454: 87 01 movw r16, r14
1456: 1e c0 rjmp .+60 ; 0x1494 <f_open+0xe6>
/* Check a partition listed in top of the partition table */
if (fs->win[MBR_Table+4]) { /* Is the 1st partition existing? */
1458: 82 ee ldi r24, 0xE2 ; 226
145a: 91 e0 ldi r25, 0x01 ; 1
145c: 88 0e add r8, r24
145e: 99 1e adc r9, r25
1460: f4 01 movw r30, r8
1462: 80 81 ld r24, Z
1464: 2e e1 ldi r18, 0x1E ; 30
1466: 3e ef ldi r19, 0xFE ; 254
1468: 82 0e add r8, r18
146a: 93 1e adc r9, r19
146c: 88 23 and r24, r24
146e: 09 f4 brne .+2 ; 0x1472 <f_open+0xc4>
1470: dc c0 rjmp .+440 ; 0x162a <f_open+0x27c>
bootsect = LD_DWORD(&fs->win[MBR_Table+8]); /* Partition offset in LBA */
1472: 86 ee ldi r24, 0xE6 ; 230
1474: 91 e0 ldi r25, 0x01 ; 1
1476: 88 0e add r8, r24
1478: 99 1e adc r9, r25
147a: f4 01 movw r30, r8
147c: e0 80 ld r14, Z
147e: f1 80 ldd r15, Z+1 ; 0x01
1480: 02 81 ldd r16, Z+2 ; 0x02
1482: 13 81 ldd r17, Z+3 ; 0x03
1484: 2a e1 ldi r18, 0x1A ; 26
1486: 3e ef ldi r19, 0xFE ; 254
1488: 82 0e add r8, r18
148a: 93 1e adc r9, r19
fmt = check_fs(bootsect); /* Check the partition */
148c: c8 01 movw r24, r16
148e: b7 01 movw r22, r14
1490: 0e 94 a8 09 call 0x1350 ; 0x1350 <check_fs>
}
}
if (fmt || LD_WORD(&fs->win[BPB_BytsPerSec]) != 512) /* No valid FAT patition is found */
1494: 88 23 and r24, r24
1496: 09 f0 breq .+2 ; 0x149a <f_open+0xec>
1498: c8 c0 rjmp .+400 ; 0x162a <f_open+0x27c>
149a: f4 01 movw r30, r8
149c: 83 a5 ldd r24, Z+43 ; 0x2b
149e: 94 a5 ldd r25, Z+44 ; 0x2c
14a0: 80 50 subi r24, 0x00 ; 0
14a2: 92 40 sbci r25, 0x02 ; 2
14a4: 09 f0 breq .+2 ; 0x14a8 <f_open+0xfa>
14a6: c1 c0 rjmp .+386 ; 0x162a <f_open+0x27c>
return FR_NO_FILESYSTEM;
 
/* Initialize the file system object */
fatsize = LD_WORD(&fs->win[BPB_FATSz16]); /* Number of sectors per FAT */
14a8: f4 01 movw r30, r8
14aa: 86 a9 ldd r24, Z+54 ; 0x36
14ac: 97 a9 ldd r25, Z+55 ; 0x37
14ae: bc 01 movw r22, r24
14b0: 80 e0 ldi r24, 0x00 ; 0
14b2: 90 e0 ldi r25, 0x00 ; 0
if (!fatsize) fatsize = LD_DWORD(&fs->win[BPB_FATSz32]);
14b4: 61 15 cp r22, r1
14b6: 71 05 cpc r23, r1
14b8: 81 05 cpc r24, r1
14ba: 91 05 cpc r25, r1
14bc: 69 f4 brne .+26 ; 0x14d8 <f_open+0x12a>
14be: 24 e4 ldi r18, 0x44 ; 68
14c0: 30 e0 ldi r19, 0x00 ; 0
14c2: 82 0e add r8, r18
14c4: 93 1e adc r9, r19
14c6: f4 01 movw r30, r8
14c8: 60 81 ld r22, Z
14ca: 71 81 ldd r23, Z+1 ; 0x01
14cc: 82 81 ldd r24, Z+2 ; 0x02
14ce: 93 81 ldd r25, Z+3 ; 0x03
14d0: 2c eb ldi r18, 0xBC ; 188
14d2: 3f ef ldi r19, 0xFF ; 255
14d4: 82 0e add r8, r18
14d6: 93 1e adc r9, r19
fs->sects_fat = (CLUST)fatsize;
14d8: f4 01 movw r30, r8
14da: 75 8b std Z+21, r23 ; 0x15
14dc: 64 8b std Z+20, r22 ; 0x14
fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FAT copies */
14de: 20 a9 ldd r18, Z+48 ; 0x30
14e0: 26 8f std Z+30, r18 ; 0x1e
fatsize *= fs->n_fats; /* (Number of sectors in FAT area) */
14e2: 30 e0 ldi r19, 0x00 ; 0
14e4: 40 e0 ldi r20, 0x00 ; 0
14e6: 50 e0 ldi r21, 0x00 ; 0
14e8: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
14ec: 5b 01 movw r10, r22
14ee: 6c 01 movw r12, r24
fs->fatbase = bootsect + LD_WORD(&fs->win[BPB_RsvdSecCnt]); /* FAT start sector (lba) */
14f0: f4 01 movw r30, r8
14f2: 86 a5 ldd r24, Z+46 ; 0x2e
14f4: 97 a5 ldd r25, Z+47 ; 0x2f
14f6: a0 e0 ldi r26, 0x00 ; 0
14f8: b0 e0 ldi r27, 0x00 ; 0
14fa: e8 0e add r14, r24
14fc: f9 1e adc r15, r25
14fe: 0a 1f adc r16, r26
1500: 1b 1f adc r17, r27
1502: e0 86 std Z+8, r14 ; 0x08
1504: f1 86 std Z+9, r15 ; 0x09
1506: 02 87 std Z+10, r16 ; 0x0a
1508: 13 87 std Z+11, r17 ; 0x0b
fs->sects_clust = fs->win[BPB_SecPerClus]; /* Number of sectors per cluster */
150a: 85 a5 ldd r24, Z+45 ; 0x2d
150c: 85 8f std Z+29, r24 ; 0x1d
fs->n_rootdir = LD_WORD(&fs->win[BPB_RootEntCnt]); /* Nmuber of root directory entries */
150e: 21 a9 ldd r18, Z+49 ; 0x31
1510: 32 a9 ldd r19, Z+50 ; 0x32
1512: 33 83 std Z+3, r19 ; 0x03
1514: 22 83 std Z+2, r18 ; 0x02
totalsect = LD_WORD(&fs->win[BPB_TotSec16]); /* Number of sectors on the file system */
1516: 83 a9 ldd r24, Z+51 ; 0x33
1518: 94 a9 ldd r25, Z+52 ; 0x34
151a: 7c 01 movw r14, r24
151c: 00 e0 ldi r16, 0x00 ; 0
151e: 10 e0 ldi r17, 0x00 ; 0
if (!totalsect) totalsect = LD_DWORD(&fs->win[BPB_TotSec32]);
1520: e1 14 cp r14, r1
1522: f1 04 cpc r15, r1
1524: 01 05 cpc r16, r1
1526: 11 05 cpc r17, r1
1528: 69 f4 brne .+26 ; 0x1544 <f_open+0x196>
152a: 80 e4 ldi r24, 0x40 ; 64
152c: 90 e0 ldi r25, 0x00 ; 0
152e: 88 0e add r8, r24
1530: 99 1e adc r9, r25
1532: f4 01 movw r30, r8
1534: e0 80 ld r14, Z
1536: f1 80 ldd r15, Z+1 ; 0x01
1538: 02 81 ldd r16, Z+2 ; 0x02
153a: 13 81 ldd r17, Z+3 ; 0x03
153c: 80 ec ldi r24, 0xC0 ; 192
153e: 9f ef ldi r25, 0xFF ; 255
1540: 88 0e add r8, r24
1542: 99 1e adc r9, r25
fs->max_clust = maxclust = (totalsect /* Last cluster# + 1 */
1544: f4 01 movw r30, r8
1546: 86 a5 ldd r24, Z+46 ; 0x2e
1548: 97 a5 ldd r25, Z+47 ; 0x2f
154a: a0 e0 ldi r26, 0x00 ; 0
154c: b0 e0 ldi r27, 0x00 ; 0
154e: e8 1a sub r14, r24
1550: f9 0a sbc r15, r25
1552: 0a 0b sbc r16, r26
1554: 1b 0b sbc r17, r27
1556: ea 18 sub r14, r10
1558: fb 08 sbc r15, r11
155a: 0c 09 sbc r16, r12
155c: 1d 09 sbc r17, r13
155e: a4 e0 ldi r26, 0x04 ; 4
1560: 36 95 lsr r19
1562: 27 95 ror r18
1564: aa 95 dec r26
1566: e1 f7 brne .-8 ; 0x1560 <f_open+0x1b2>
1568: c9 01 movw r24, r18
156a: a0 e0 ldi r26, 0x00 ; 0
156c: b0 e0 ldi r27, 0x00 ; 0
156e: e8 1a sub r14, r24
1570: f9 0a sbc r15, r25
1572: 0a 0b sbc r16, r26
1574: 1b 0b sbc r17, r27
1576: 25 8d ldd r18, Z+29 ; 0x1d
1578: 30 e0 ldi r19, 0x00 ; 0
157a: 40 e0 ldi r20, 0x00 ; 0
157c: 50 e0 ldi r21, 0x00 ; 0
157e: c8 01 movw r24, r16
1580: b7 01 movw r22, r14
1582: 0e 94 a5 14 call 0x294a ; 0x294a <__udivmodsi4>
1586: 2e 5f subi r18, 0xFE ; 254
1588: 3f 4f sbci r19, 0xFF ; 255
158a: 4f 4f sbci r20, 0xFF ; 255
158c: 5f 4f sbci r21, 0xFF ; 255
158e: f4 01 movw r30, r8
1590: 37 8b std Z+23, r19 ; 0x17
1592: 26 8b std Z+22, r18 ; 0x16
- LD_WORD(&fs->win[BPB_RsvdSecCnt]) - fatsize - fs->n_rootdir / 16
) / fs->sects_clust + 2;
 
fmt = FS_FAT12; /* Determine the FAT sub type */
if (maxclust > 0xFF7) fmt = FS_FAT16;
1594: 28 3f cpi r18, 0xF8 ; 248
1596: ff e0 ldi r31, 0x0F ; 15
1598: 3f 07 cpc r19, r31
159a: f0 e0 ldi r31, 0x00 ; 0
159c: 4f 07 cpc r20, r31
159e: f0 e0 ldi r31, 0x00 ; 0
15a0: 5f 07 cpc r21, r31
15a2: 10 f4 brcc .+4 ; 0x15a8 <f_open+0x1fa>
15a4: 61 e0 ldi r22, 0x01 ; 1
15a6: 06 c0 rjmp .+12 ; 0x15b4 <f_open+0x206>
if (maxclust > 0xFFF7)
15a8: 28 5f subi r18, 0xF8 ; 248
15aa: 3f 4f sbci r19, 0xFF ; 255
15ac: 40 40 sbci r20, 0x00 ; 0
15ae: 50 40 sbci r21, 0x00 ; 0
15b0: e0 f5 brcc .+120 ; 0x162a <f_open+0x27c>
15b2: 62 e0 ldi r22, 0x02 ; 2
fmt = FS_FAT32;
if (fmt == FS_FAT32)
fs->dirbase = LD_DWORD(&fs->win[BPB_RootClus]); /* Root directory start cluster */
else
#endif
fs->dirbase = fs->fatbase + fatsize; /* Root directory start sector (lba) */
15b4: f4 01 movw r30, r8
15b6: 20 85 ldd r18, Z+8 ; 0x08
15b8: 31 85 ldd r19, Z+9 ; 0x09
15ba: 42 85 ldd r20, Z+10 ; 0x0a
15bc: 53 85 ldd r21, Z+11 ; 0x0b
15be: d6 01 movw r26, r12
15c0: c5 01 movw r24, r10
15c2: 82 0f add r24, r18
15c4: 93 1f adc r25, r19
15c6: a4 1f adc r26, r20
15c8: b5 1f adc r27, r21
15ca: 84 87 std Z+12, r24 ; 0x0c
15cc: 95 87 std Z+13, r25 ; 0x0d
15ce: a6 87 std Z+14, r26 ; 0x0e
15d0: b7 87 std Z+15, r27 ; 0x0f
fs->database = fs->fatbase + fatsize + fs->n_rootdir / 16; /* Data start sector (lba) */
15d2: 82 81 ldd r24, Z+2 ; 0x02
15d4: 93 81 ldd r25, Z+3 ; 0x03
15d6: 74 e0 ldi r23, 0x04 ; 4
15d8: 96 95 lsr r25
15da: 87 95 ror r24
15dc: 7a 95 dec r23
15de: e1 f7 brne .-8 ; 0x15d8 <f_open+0x22a>
15e0: a0 e0 ldi r26, 0x00 ; 0
15e2: b0 e0 ldi r27, 0x00 ; 0
15e4: 82 0f add r24, r18
15e6: 93 1f adc r25, r19
15e8: a4 1f adc r26, r20
15ea: b5 1f adc r27, r21
15ec: 8a 0d add r24, r10
15ee: 9b 1d adc r25, r11
15f0: ac 1d adc r26, r12
15f2: bd 1d adc r27, r13
15f4: 80 8b std Z+16, r24 ; 0x10
15f6: 91 8b std Z+17, r25 ; 0x11
15f8: a2 8b std Z+18, r26 ; 0x12
15fa: b3 8b std Z+19, r27 ; 0x13
fs->fs_type = fmt; /* FAT sub-type */
15fc: 64 8f std Z+28, r22 ; 0x1c
 
#if !_FS_READONLY
fs->free_clust = (CLUST)0xFFFFFFFF;
15fe: 8f ef ldi r24, 0xFF ; 255
1600: 9f ef ldi r25, 0xFF ; 255
1602: 93 8f std Z+27, r25 ; 0x1b
1604: 82 8f std Z+26, r24 ; 0x1a
fs->free_clust = LD_DWORD(&fs->win[FSI_Free_Count]);
}
}
#endif
#endif
fs->id = ++fsid; /* File system mount ID */
1606: 80 91 12 01 lds r24, 0x0112
160a: 90 91 13 01 lds r25, 0x0113
160e: 01 96 adiw r24, 0x01 ; 1
1610: 90 93 13 01 sts 0x0113, r25
1614: 80 93 12 01 sts 0x0112, r24
1618: 91 83 std Z+1, r25 ; 0x01
161a: 80 83 st Z, r24
161c: a5 c2 rjmp .+1354 ; 0x1b68 <f_open+0x7ba>
161e: 2a e0 ldi r18, 0x0A ; 10
1620: 30 e0 ldi r19, 0x00 ; 0
1622: 95 c2 rjmp .+1322 ; 0x1b4e <f_open+0x7a0>
1624: 29 e0 ldi r18, 0x09 ; 9
1626: 30 e0 ldi r19, 0x00 ; 0
1628: 92 c2 rjmp .+1316 ; 0x1b4e <f_open+0x7a0>
162a: 2b e0 ldi r18, 0x0B ; 11
162c: 30 e0 ldi r19, 0x00 ; 0
162e: 8f c2 rjmp .+1310 ; 0x1b4e <f_open+0x7a0>
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
1630: 2e 01 movw r4, r28
1632: 08 94 sec
1634: 41 1c adc r4, r1
1636: 51 1c adc r5, r1
((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dptr[DIR_FstClusLO]);
dirobj->clust = dirobj->sclust = clust; /* Restart scannig with the new directory */
dirobj->sect = clust2sect(clust);
dirobj->index = 2;
1638: 92 e0 ldi r25, 0x02 ; 2
163a: 29 2e mov r2, r25
163c: 31 2c mov r3, r1
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
163e: 4b e0 ldi r20, 0x0B ; 11
1640: 50 e0 ldi r21, 0x00 ; 0
1642: 60 e2 ldi r22, 0x20 ; 32
1644: 70 e0 ldi r23, 0x00 ; 0
1646: c2 01 movw r24, r4
1648: 0e 94 ac 11 call 0x2358 ; 0x2358 <memset>
164c: 20 e0 ldi r18, 0x00 ; 0
164e: 48 e0 ldi r20, 0x08 ; 8
1650: 90 e0 ldi r25, 0x00 ; 0
1652: 38 e1 ldi r19, 0x18 ; 24
1654: 02 c0 rjmp .+4 ; 0x165a <f_open+0x2ac>
1656: 28 e0 ldi r18, 0x08 ; 8
1658: 4b e0 ldi r20, 0x0B ; 11
a = 0; b = 0x18; /* NT flag */
n = 0; t = 8;
for (;;) {
c = *(*path)++;
165a: f3 01 movw r30, r6
165c: 11 91 ld r17, Z+
165e: 3f 01 movw r6, r30
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
1660: 11 23 and r17, r17
1662: 11 f0 breq .+4 ; 0x1668 <f_open+0x2ba>
1664: 1f 32 cpi r17, 0x2F ; 47
1666: 49 f4 brne .+18 ; 0x167a <f_open+0x2cc>
if (n == 0) break;
1668: 22 23 and r18, r18
166a: 09 f4 brne .+2 ; 0x166e <f_open+0x2c0>
166c: c7 c0 rjmp .+398 ; 0x17fc <f_open+0x44e>
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
166e: 39 23 and r19, r25
1670: 3c 87 std Y+12, r19 ; 0x0c
*dir = NULL; return FR_OK;
}
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
1672: 11 30 cpi r17, 0x01 ; 1
1674: 09 f0 breq .+2 ; 0x1678 <f_open+0x2ca>
1676: 44 c0 rjmp .+136 ; 0x1700 <f_open+0x352>
1678: c1 c0 rjmp .+386 ; 0x17fc <f_open+0x44e>
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
if (n == 0) break;
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
return c;
}
if (c <= ' ' || c == 0x7F) break; /* Reject invisible chars */
167a: 11 32 cpi r17, 0x21 ; 33
167c: 08 f4 brcc .+2 ; 0x1680 <f_open+0x2d2>
167e: be c0 rjmp .+380 ; 0x17fc <f_open+0x44e>
1680: 1f 37 cpi r17, 0x7F ; 127
1682: 09 f4 brne .+2 ; 0x1686 <f_open+0x2d8>
1684: bb c0 rjmp .+374 ; 0x17fc <f_open+0x44e>
if (c == '.') {
1686: 1e 32 cpi r17, 0x2E ; 46
1688: 41 f4 brne .+16 ; 0x169a <f_open+0x2ec>
if (!(a & 1) && n >= 1 && n <= 8) { /* Enter extension part */
168a: 90 fd sbrc r25, 0
168c: b7 c0 rjmp .+366 ; 0x17fc <f_open+0x44e>
168e: 22 23 and r18, r18
1690: 09 f4 brne .+2 ; 0x1694 <f_open+0x2e6>
1692: b4 c0 rjmp .+360 ; 0x17fc <f_open+0x44e>
1694: 29 30 cpi r18, 0x09 ; 9
1696: f8 f2 brcs .-66 ; 0x1656 <f_open+0x2a8>
1698: b1 c0 rjmp .+354 ; 0x17fc <f_open+0x44e>
(c >= 0xE0 && c <= 0xFC))) {
if (n == 0 && c == 0xE5) /* Change heading \xE5 to \x05 */
c = 0x05;
a ^= 1; goto md_l2;
}
if (c == '"') break; /* Reject " */
169a: 12 32 cpi r17, 0x22 ; 34
169c: 09 f4 brne .+2 ; 0x16a0 <f_open+0x2f2>
169e: ae c0 rjmp .+348 ; 0x17fc <f_open+0x44e>
if (c <= ')') goto md_l1; /* Accept ! # $ % & ' ( ) */
16a0: 1a 32 cpi r17, 0x2A ; 42
16a2: 20 f1 brcs .+72 ; 0x16ec <f_open+0x33e>
if (c <= ',') break; /* Reject * + , */
16a4: 1d 32 cpi r17, 0x2D ; 45
16a6: 08 f4 brcc .+2 ; 0x16aa <f_open+0x2fc>
16a8: a9 c0 rjmp .+338 ; 0x17fc <f_open+0x44e>
if (c <= '9') goto md_l1; /* Accept - 0-9 */
16aa: 1a 33 cpi r17, 0x3A ; 58
16ac: f8 f0 brcs .+62 ; 0x16ec <f_open+0x33e>
if (c <= '?') break; /* Reject : ; < = > ? */
16ae: 10 34 cpi r17, 0x40 ; 64
16b0: 08 f4 brcc .+2 ; 0x16b4 <f_open+0x306>
16b2: a4 c0 rjmp .+328 ; 0x17fc <f_open+0x44e>
if (!(a & 1)) { /* These checks are not applied to S-JIS 2nd byte */
16b4: 90 fd sbrc r25, 0
16b6: 1a c0 rjmp .+52 ; 0x16ec <f_open+0x33e>
if (c == '|') break; /* Reject | */
16b8: 1c 37 cpi r17, 0x7C ; 124
16ba: 09 f4 brne .+2 ; 0x16be <f_open+0x310>
16bc: 9f c0 rjmp .+318 ; 0x17fc <f_open+0x44e>
if (c >= '[' && c <= ']') break;/* Reject [ \ ] */
16be: 81 2f mov r24, r17
16c0: 8b 55 subi r24, 0x5B ; 91
16c2: 83 30 cpi r24, 0x03 ; 3
16c4: 08 f4 brcc .+2 ; 0x16c8 <f_open+0x31a>
16c6: 9a c0 rjmp .+308 ; 0x17fc <f_open+0x44e>
if (_USE_NTFLAG && c >= 'A' && c <= 'Z')
16c8: 86 5e subi r24, 0xE6 ; 230
16ca: 8a 31 cpi r24, 0x1A ; 26
16cc: 28 f4 brcc .+10 ; 0x16d8 <f_open+0x32a>
(t == 8) ? (b &= ~0x08) : (b &= ~0x10);
16ce: 48 30 cpi r20, 0x08 ; 8
16d0: 11 f4 brne .+4 ; 0x16d6 <f_open+0x328>
16d2: 37 7f andi r19, 0xF7 ; 247
16d4: 01 c0 rjmp .+2 ; 0x16d8 <f_open+0x32a>
16d6: 3f 7e andi r19, 0xEF ; 239
if (c >= 'a' && c <= 'z') { /* Convert to upper case */
16d8: 81 2f mov r24, r17
16da: 81 56 subi r24, 0x61 ; 97
16dc: 8a 31 cpi r24, 0x1A ; 26
16de: 30 f4 brcc .+12 ; 0x16ec <f_open+0x33e>
c -= 0x20;
16e0: 10 52 subi r17, 0x20 ; 32
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
16e2: 48 30 cpi r20, 0x08 ; 8
16e4: 11 f4 brne .+4 ; 0x16ea <f_open+0x33c>
16e6: 98 60 ori r25, 0x08 ; 8
16e8: 01 c0 rjmp .+2 ; 0x16ec <f_open+0x33e>
16ea: 90 61 ori r25, 0x10 ; 16
}
}
md_l1:
a &= ~1;
md_l2:
if (n >= t) break;
16ec: 24 17 cp r18, r20
16ee: 08 f0 brcs .+2 ; 0x16f2 <f_open+0x344>
16f0: 85 c0 rjmp .+266 ; 0x17fc <f_open+0x44e>
c -= 0x20;
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
}
}
md_l1:
a &= ~1;
16f2: 9e 7f andi r25, 0xFE ; 254
md_l2:
if (n >= t) break;
dirname[n++] = c;
16f4: f2 01 movw r30, r4
16f6: e2 0f add r30, r18
16f8: f1 1d adc r31, r1
16fa: 10 83 st Z, r17
16fc: 2f 5f subi r18, 0xFF ; 255
16fe: ad cf rjmp .-166 ; 0x165a <f_open+0x2ac>
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
1700: 6f 89 ldd r22, Y+23 ; 0x17
1702: 78 8d ldd r23, Y+24 ; 0x18
1704: 89 8d ldd r24, Y+25 ; 0x19
1706: 9a 8d ldd r25, Y+26 ; 0x1a
1708: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
170c: 88 23 and r24, r24
170e: 31 f4 brne .+12 ; 0x171c <f_open+0x36e>
1710: 90 e0 ldi r25, 0x00 ; 0
1712: 9c 01 movw r18, r24
1714: 59 01 movw r10, r18
1716: 28 e0 ldi r18, 0x08 ; 8
1718: 30 e0 ldi r19, 0x00 ; 0
171a: 84 c0 rjmp .+264 ; 0x1824 <f_open+0x476>
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
171c: 2f 85 ldd r18, Y+15 ; 0x0f
171e: 38 89 ldd r19, Y+16 ; 0x10
1720: 2f 70 andi r18, 0x0F ; 15
1722: 30 70 andi r19, 0x00 ; 0
1724: 85 e0 ldi r24, 0x05 ; 5
1726: 22 0f add r18, r18
1728: 33 1f adc r19, r19
172a: 8a 95 dec r24
172c: e1 f7 brne .-8 ; 0x1726 <f_open+0x378>
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
172e: f6 01 movw r30, r12
1730: e2 0f add r30, r18
1732: f3 1f adc r31, r19
1734: 80 a1 ldd r24, Z+32 ; 0x20
1736: 88 23 and r24, r24
1738: e1 f0 breq .+56 ; 0x1772 <f_open+0x3c4>
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
173a: 85 3e cpi r24, 0xE5 ; 229
173c: a1 f0 breq .+40 ; 0x1766 <f_open+0x3b8>
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
173e: 00 e2 ldi r16, 0x20 ; 32
1740: a0 2e mov r10, r16
1742: b1 2c mov r11, r1
1744: a2 0e add r10, r18
1746: b3 1e adc r11, r19
1748: ac 0c add r10, r12
174a: bd 1c adc r11, r13
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
174c: f5 01 movw r30, r10
174e: 83 85 ldd r24, Z+11 ; 0x0b
1750: 08 2f mov r16, r24
1752: 83 fd sbrc r24, 3
1754: 08 c0 rjmp .+16 ; 0x1766 <f_open+0x3b8>
1756: 4b e0 ldi r20, 0x0B ; 11
1758: 50 e0 ldi r21, 0x00 ; 0
175a: b2 01 movw r22, r4
175c: c5 01 movw r24, r10
175e: 0e 94 96 11 call 0x232c ; 0x232c <memcmp>
1762: 00 97 sbiw r24, 0x00 ; 0
1764: 51 f0 breq .+20 ; 0x177a <f_open+0x3cc>
&& !(dptr[DIR_Attr] & AM_VOL)
&& !memcmp(&dptr[DIR_Name], fn, 8+3) ) break;
if (!next_dir_entry(dirobj)) /* Next directory pointer */
1766: ce 01 movw r24, r28
1768: 0d 96 adiw r24, 0x0d ; 13
176a: 0e 94 2c 06 call 0xc58 ; 0xc58 <next_dir_entry>
176e: 88 23 and r24, r24
1770: 39 f6 brne .-114 ; 0x1700 <f_open+0x352>
return !ds ? FR_NO_FILE : FR_NO_PATH;
1772: 11 23 and r17, r17
1774: 09 f0 breq .+2 ; 0x1778 <f_open+0x3ca>
1776: 49 c0 rjmp .+146 ; 0x180a <f_open+0x45c>
1778: 4f c0 rjmp .+158 ; 0x1818 <f_open+0x46a>
}
if (!ds) { *dir = dptr; return FR_OK; } /* Matched with end of path */
177a: 11 23 and r17, r17
177c: 19 f4 brne .+6 ; 0x1784 <f_open+0x3d6>
177e: 20 e0 ldi r18, 0x00 ; 0
1780: 30 e0 ldi r19, 0x00 ; 0
1782: 50 c0 rjmp .+160 ; 0x1824 <f_open+0x476>
if (!(dptr[DIR_Attr] & AM_DIR)) return FR_NO_PATH; /* Cannot trace because it is a file */
1784: 04 ff sbrs r16, 4
1786: 41 c0 rjmp .+130 ; 0x180a <f_open+0x45c>
clust = /* Get cluster# of the directory */
1788: f5 01 movw r30, r10
178a: e2 8c ldd r14, Z+26 ; 0x1a
178c: f3 8c ldd r15, Z+27 ; 0x1b
#if _FAT32
((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dptr[DIR_FstClusLO]);
dirobj->clust = dirobj->sclust = clust; /* Restart scannig with the new directory */
178e: fe 8a std Y+22, r15 ; 0x16
1790: ed 8a std Y+21, r14 ; 0x15
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
1792: 00 91 10 01 lds r16, 0x0110
1796: 10 91 11 01 lds r17, 0x0111
 
 
clust -= 2;
179a: b7 01 movw r22, r14
179c: 62 50 subi r22, 0x02 ; 2
179e: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
17a0: f8 01 movw r30, r16
17a2: 86 89 ldd r24, Z+22 ; 0x16
17a4: 97 89 ldd r25, Z+23 ; 0x17
17a6: 02 97 sbiw r24, 0x02 ; 2
17a8: 68 17 cp r22, r24
17aa: 79 07 cpc r23, r25
17ac: 28 f0 brcs .+10 ; 0x17b8 <f_open+0x40a>
17ae: 20 e0 ldi r18, 0x00 ; 0
17b0: 30 e0 ldi r19, 0x00 ; 0
17b2: 40 e0 ldi r20, 0x00 ; 0
17b4: 50 e0 ldi r21, 0x00 ; 0
17b6: 14 c0 rjmp .+40 ; 0x17e0 <f_open+0x432>
return (DWORD)clust * fs->sects_clust + fs->database;
17b8: 80 e0 ldi r24, 0x00 ; 0
17ba: 90 e0 ldi r25, 0x00 ; 0
17bc: f8 01 movw r30, r16
17be: 25 8d ldd r18, Z+29 ; 0x1d
17c0: 30 e0 ldi r19, 0x00 ; 0
17c2: 40 e0 ldi r20, 0x00 ; 0
17c4: 50 e0 ldi r21, 0x00 ; 0
17c6: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
17ca: 9b 01 movw r18, r22
17cc: ac 01 movw r20, r24
17ce: f8 01 movw r30, r16
17d0: 80 89 ldd r24, Z+16 ; 0x10
17d2: 91 89 ldd r25, Z+17 ; 0x11
17d4: a2 89 ldd r26, Z+18 ; 0x12
17d6: b3 89 ldd r27, Z+19 ; 0x13
17d8: 28 0f add r18, r24
17da: 39 1f adc r19, r25
17dc: 4a 1f adc r20, r26
17de: 5b 1f adc r21, r27
clust = /* Get cluster# of the directory */
#if _FAT32
((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dptr[DIR_FstClusLO]);
dirobj->clust = dirobj->sclust = clust; /* Restart scannig with the new directory */
17e0: fc 8a std Y+20, r15 ; 0x14
17e2: eb 8a std Y+19, r14 ; 0x13
dirobj->sect = clust2sect(clust);
17e4: 2f 8b std Y+23, r18 ; 0x17
17e6: 38 8f std Y+24, r19 ; 0x18
17e8: 49 8f std Y+25, r20 ; 0x19
17ea: 5a 8f std Y+26, r21 ; 0x1a
dirobj->index = 2;
17ec: 38 8a std Y+16, r3 ; 0x10
17ee: 2f 86 std Y+15, r2 ; 0x0f
17f0: 26 cf rjmp .-436 ; 0x163e <f_open+0x290>
17f2: 20 e0 ldi r18, 0x00 ; 0
17f4: 30 e0 ldi r19, 0x00 ; 0
17f6: aa 24 eor r10, r10
17f8: bb 24 eor r11, r11
17fa: 14 c0 rjmp .+40 ; 0x1824 <f_open+0x476>
17fc: 80 e0 ldi r24, 0x00 ; 0
17fe: 90 e0 ldi r25, 0x00 ; 0
1800: 9c 01 movw r18, r24
1802: 59 01 movw r10, r18
1804: 24 e0 ldi r18, 0x04 ; 4
1806: 30 e0 ldi r19, 0x00 ; 0
1808: 0d c0 rjmp .+26 ; 0x1824 <f_open+0x476>
180a: 80 e0 ldi r24, 0x00 ; 0
180c: 90 e0 ldi r25, 0x00 ; 0
180e: 9c 01 movw r18, r24
1810: 59 01 movw r10, r18
1812: 23 e0 ldi r18, 0x03 ; 3
1814: 30 e0 ldi r19, 0x00 ; 0
1816: 06 c0 rjmp .+12 ; 0x1824 <f_open+0x476>
1818: 80 e0 ldi r24, 0x00 ; 0
181a: 90 e0 ldi r25, 0x00 ; 0
181c: 9c 01 movw r18, r24
181e: 59 01 movw r10, r18
1820: 22 e0 ldi r18, 0x02 ; 2
1822: 30 e0 ldi r19, 0x00 ; 0
/* Trace the file path */
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
 
#if !_FS_READONLY
/* Create or Open a File */
if (mode & (FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)) {
1824: fb 8d ldd r31, Y+27 ; 0x1b
1826: 4f 2f mov r20, r31
1828: 50 e0 ldi r21, 0x00 ; 0
182a: ca 01 movw r24, r20
182c: 8c 71 andi r24, 0x1C ; 28
182e: 90 70 andi r25, 0x00 ; 0
1830: 89 2b or r24, r25
1832: 09 f4 brne .+2 ; 0x1836 <f_open+0x488>
1834: 41 c1 rjmp .+642 ; 0x1ab8 <f_open+0x70a>
CLUST rs;
DWORD dw;
if (res != FR_OK) { /* No file, create new */
1836: 21 15 cp r18, r1
1838: 31 05 cpc r19, r1
183a: 09 f4 brne .+2 ; 0x183e <f_open+0x490>
183c: d6 c0 rjmp .+428 ; 0x19ea <f_open+0x63c>
if (res != FR_NO_FILE) return res;
183e: 22 30 cpi r18, 0x02 ; 2
1840: 31 05 cpc r19, r1
1842: 09 f0 breq .+2 ; 0x1846 <f_open+0x498>
1844: 84 c1 rjmp .+776 ; 0x1b4e <f_open+0x7a0>
)
{
CLUST clust;
DWORD sector;
BYTE c, n, *dptr;
FATFS *fs = FatFs;
1846: 60 90 10 01 lds r6, 0x0110
184a: 70 90 11 01 lds r7, 0x0111
 
 
/* Re-initialize directory object */
clust = dirobj->sclust;
184e: 0b 89 ldd r16, Y+19 ; 0x13
1850: 1c 89 ldd r17, Y+20 ; 0x14
if (clust) { /* Dyanmic directory table */
1852: 01 15 cp r16, r1
1854: 11 05 cpc r17, r1
1856: 51 f1 breq .+84 ; 0x18ac <f_open+0x4fe>
dirobj->clust = clust;
1858: 1e 8b std Y+22, r17 ; 0x16
185a: 0d 8b std Y+21, r16 ; 0x15
)
{
FATFS *fs = FatFs;
 
 
clust -= 2;
185c: b8 01 movw r22, r16
185e: 62 50 subi r22, 0x02 ; 2
1860: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
1862: f3 01 movw r30, r6
1864: 86 89 ldd r24, Z+22 ; 0x16
1866: 97 89 ldd r25, Z+23 ; 0x17
1868: 02 97 sbiw r24, 0x02 ; 2
186a: 68 17 cp r22, r24
186c: 79 07 cpc r23, r25
186e: 28 f0 brcs .+10 ; 0x187a <f_open+0x4cc>
1870: 20 e0 ldi r18, 0x00 ; 0
1872: 30 e0 ldi r19, 0x00 ; 0
1874: 40 e0 ldi r20, 0x00 ; 0
1876: 50 e0 ldi r21, 0x00 ; 0
1878: 14 c0 rjmp .+40 ; 0x18a2 <f_open+0x4f4>
return (DWORD)clust * fs->sects_clust + fs->database;
187a: 80 e0 ldi r24, 0x00 ; 0
187c: 90 e0 ldi r25, 0x00 ; 0
187e: f3 01 movw r30, r6
1880: 25 8d ldd r18, Z+29 ; 0x1d
1882: 30 e0 ldi r19, 0x00 ; 0
1884: 40 e0 ldi r20, 0x00 ; 0
1886: 50 e0 ldi r21, 0x00 ; 0
1888: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
188c: 9b 01 movw r18, r22
188e: ac 01 movw r20, r24
1890: f3 01 movw r30, r6
1892: 80 89 ldd r24, Z+16 ; 0x10
1894: 91 89 ldd r25, Z+17 ; 0x11
1896: a2 89 ldd r26, Z+18 ; 0x12
1898: b3 89 ldd r27, Z+19 ; 0x13
189a: 28 0f add r18, r24
189c: 39 1f adc r19, r25
189e: 4a 1f adc r20, r26
18a0: 5b 1f adc r21, r27
 
/* Re-initialize directory object */
clust = dirobj->sclust;
if (clust) { /* Dyanmic directory table */
dirobj->clust = clust;
dirobj->sect = clust2sect(clust);
18a2: 2f 8b std Y+23, r18 ; 0x17
18a4: 38 8f std Y+24, r19 ; 0x18
18a6: 49 8f std Y+25, r20 ; 0x19
18a8: 5a 8f std Y+26, r21 ; 0x1a
18aa: 09 c0 rjmp .+18 ; 0x18be <f_open+0x510>
} else { /* Static directory table */
dirobj->sect = fs->dirbase;
18ac: f3 01 movw r30, r6
18ae: 84 85 ldd r24, Z+12 ; 0x0c
18b0: 95 85 ldd r25, Z+13 ; 0x0d
18b2: a6 85 ldd r26, Z+14 ; 0x0e
18b4: b7 85 ldd r27, Z+15 ; 0x0f
18b6: 8f 8b std Y+23, r24 ; 0x17
18b8: 98 8f std Y+24, r25 ; 0x18
18ba: a9 8f std Y+25, r26 ; 0x19
18bc: ba 8f std Y+26, r27 ; 0x1a
}
dirobj->index = 0;
18be: 18 8a std Y+16, r1 ; 0x10
18c0: 1f 86 std Y+15, r1 ; 0x0f
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
c = dptr[DIR_Name];
if (c == 0 || c == 0xE5) { /* Found an empty entry! */
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dirobj)); /* Next directory pointer */
18c2: bd e0 ldi r27, 0x0D ; 13
18c4: eb 2e mov r14, r27
18c6: f1 2c mov r15, r1
18c8: ec 0e add r14, r28
18ca: fd 1e adc r15, r29
dirobj->sect = fs->dirbase;
}
dirobj->index = 0;
 
do {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
18cc: 6f 89 ldd r22, Y+23 ; 0x17
18ce: 78 8d ldd r23, Y+24 ; 0x18
18d0: 89 8d ldd r24, Y+25 ; 0x19
18d2: 9a 8d ldd r25, Y+26 ; 0x1a
18d4: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
18d8: 88 23 and r24, r24
18da: 09 f4 brne .+2 ; 0x18de <f_open+0x530>
18dc: 33 c1 rjmp .+614 ; 0x1b44 <f_open+0x796>
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
18de: ef 85 ldd r30, Y+15 ; 0x0f
18e0: f8 89 ldd r31, Y+16 ; 0x10
18e2: ef 70 andi r30, 0x0F ; 15
18e4: f0 70 andi r31, 0x00 ; 0
18e6: a5 e0 ldi r26, 0x05 ; 5
18e8: ee 0f add r30, r30
18ea: ff 1f adc r31, r31
18ec: aa 95 dec r26
18ee: e1 f7 brne .-8 ; 0x18e8 <f_open+0x53a>
18f0: b0 96 adiw r30, 0x20 ; 32
18f2: 53 01 movw r10, r6
18f4: ae 0e add r10, r30
18f6: bf 1e adc r11, r31
18f8: b0 97 sbiw r30, 0x20 ; 32
c = dptr[DIR_Name];
18fa: e6 0d add r30, r6
18fc: f7 1d adc r31, r7
18fe: 80 a1 ldd r24, Z+32 ; 0x20
if (c == 0 || c == 0xE5) { /* Found an empty entry! */
1900: 88 23 and r24, r24
1902: 09 f4 brne .+2 ; 0x1906 <f_open+0x558>
1904: 4c c1 rjmp .+664 ; 0x1b9e <f_open+0x7f0>
1906: 85 3e cpi r24, 0xE5 ; 229
1908: 09 f4 brne .+2 ; 0x190c <f_open+0x55e>
190a: 49 c1 rjmp .+658 ; 0x1b9e <f_open+0x7f0>
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dirobj)); /* Next directory pointer */
190c: c7 01 movw r24, r14
190e: 0e 94 2c 06 call 0xc58 ; 0xc58 <next_dir_entry>
1912: 88 23 and r24, r24
1914: d9 f6 brne .-74 ; 0x18cc <f_open+0x51e>
/* Reached to end of the directory table */
 
/* Abort when static table or could not stretch dynamic table */
if (!clust || !(clust = create_chain(dirobj->clust))) return FR_DENIED;
1916: 01 15 cp r16, r1
1918: 11 05 cpc r17, r1
191a: 09 f4 brne .+2 ; 0x191e <f_open+0x570>
191c: 10 c1 rjmp .+544 ; 0x1b3e <f_open+0x790>
191e: 8d 89 ldd r24, Y+21 ; 0x15
1920: 9e 89 ldd r25, Y+22 ; 0x16
1922: 0e 94 d1 04 call 0x9a2 ; 0x9a2 <create_chain>
1926: 8c 01 movw r16, r24
1928: 00 97 sbiw r24, 0x00 ; 0
192a: 09 f4 brne .+2 ; 0x192e <f_open+0x580>
192c: 08 c1 rjmp .+528 ; 0x1b3e <f_open+0x790>
if (clust == 1 || !move_window(0)) return FR_RW_ERROR;
192e: 81 30 cpi r24, 0x01 ; 1
1930: 91 05 cpc r25, r1
1932: 09 f4 brne .+2 ; 0x1936 <f_open+0x588>
1934: 07 c1 rjmp .+526 ; 0x1b44 <f_open+0x796>
1936: 60 e0 ldi r22, 0x00 ; 0
1938: 70 e0 ldi r23, 0x00 ; 0
193a: 80 e0 ldi r24, 0x00 ; 0
193c: 90 e0 ldi r25, 0x00 ; 0
193e: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
1942: 88 23 and r24, r24
1944: 09 f4 brne .+2 ; 0x1948 <f_open+0x59a>
1946: fe c0 rjmp .+508 ; 0x1b44 <f_open+0x796>
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
1948: a0 90 10 01 lds r10, 0x0110
194c: b0 90 11 01 lds r11, 0x0111
 
 
clust -= 2;
1950: b8 01 movw r22, r16
1952: 62 50 subi r22, 0x02 ; 2
1954: 70 40 sbci r23, 0x00 ; 0
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
1956: f5 01 movw r30, r10
1958: 86 89 ldd r24, Z+22 ; 0x16
195a: 97 89 ldd r25, Z+23 ; 0x17
195c: 02 97 sbiw r24, 0x02 ; 2
195e: 68 17 cp r22, r24
1960: 79 07 cpc r23, r25
1962: 20 f0 brcs .+8 ; 0x196c <f_open+0x5be>
1964: cc 24 eor r12, r12
1966: dd 24 eor r13, r13
1968: 76 01 movw r14, r12
196a: 14 c0 rjmp .+40 ; 0x1994 <f_open+0x5e6>
return (DWORD)clust * fs->sects_clust + fs->database;
196c: 80 e0 ldi r24, 0x00 ; 0
196e: 90 e0 ldi r25, 0x00 ; 0
1970: f5 01 movw r30, r10
1972: 25 8d ldd r18, Z+29 ; 0x1d
1974: 30 e0 ldi r19, 0x00 ; 0
1976: 40 e0 ldi r20, 0x00 ; 0
1978: 50 e0 ldi r21, 0x00 ; 0
197a: 0e 94 86 14 call 0x290c ; 0x290c <__mulsi3>
197e: 6b 01 movw r12, r22
1980: 7c 01 movw r14, r24
1982: f5 01 movw r30, r10
1984: 80 89 ldd r24, Z+16 ; 0x10
1986: 91 89 ldd r25, Z+17 ; 0x11
1988: a2 89 ldd r26, Z+18 ; 0x12
198a: b3 89 ldd r27, Z+19 ; 0x13
198c: c8 0e add r12, r24
198e: d9 1e adc r13, r25
1990: ea 1e adc r14, r26
1992: fb 1e adc r15, r27
 
/* Abort when static table or could not stretch dynamic table */
if (!clust || !(clust = create_chain(dirobj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(0)) return FR_RW_ERROR;
 
fs->winsect = sector = clust2sect(clust); /* Cleanup the expanded table */
1994: f3 01 movw r30, r6
1996: c4 82 std Z+4, r12 ; 0x04
1998: d5 82 std Z+5, r13 ; 0x05
199a: e6 82 std Z+6, r14 ; 0x06
199c: f7 82 std Z+7, r15 ; 0x07
memset(fs->win, 0, 512);
199e: e0 e2 ldi r30, 0x20 ; 32
19a0: ae 2e mov r10, r30
19a2: b1 2c mov r11, r1
19a4: a6 0c add r10, r6
19a6: b7 1c adc r11, r7
19a8: 80 e0 ldi r24, 0x00 ; 0
19aa: 92 e0 ldi r25, 0x02 ; 2
19ac: f5 01 movw r30, r10
19ae: 9c 01 movw r18, r24
19b0: 11 92 st Z+, r1
19b2: 21 50 subi r18, 0x01 ; 1
19b4: 30 40 sbci r19, 0x00 ; 0
19b6: e1 f7 brne .-8 ; 0x19b0 <f_open+0x602>
for (n = fs->sects_clust; n; n--) {
19b8: f3 01 movw r30, r6
19ba: 15 8d ldd r17, Z+29 ; 0x1d
19bc: 10 c0 rjmp .+32 ; 0x19de <f_open+0x630>
if (disk_write(0, fs->win, sector, 1) != RES_OK)
19be: 01 e0 ldi r16, 0x01 ; 1
19c0: a7 01 movw r20, r14
19c2: 96 01 movw r18, r12
19c4: b5 01 movw r22, r10
19c6: 80 e0 ldi r24, 0x00 ; 0
19c8: 0e 94 fb 0f call 0x1ff6 ; 0x1ff6 <disk_write>
19cc: 89 2b or r24, r25
19ce: 09 f0 breq .+2 ; 0x19d2 <f_open+0x624>
19d0: b9 c0 rjmp .+370 ; 0x1b44 <f_open+0x796>
return FR_RW_ERROR;
sector++;
19d2: 08 94 sec
19d4: c1 1c adc r12, r1
19d6: d1 1c adc r13, r1
19d8: e1 1c adc r14, r1
19da: f1 1c adc r15, r1
if (!clust || !(clust = create_chain(dirobj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(0)) return FR_RW_ERROR;
 
fs->winsect = sector = clust2sect(clust); /* Cleanup the expanded table */
memset(fs->win, 0, 512);
for (n = fs->sects_clust; n; n--) {
19dc: 11 50 subi r17, 0x01 ; 1
19de: 11 23 and r17, r17
19e0: 71 f7 brne .-36 ; 0x19be <f_open+0x610>
if (disk_write(0, fs->win, sector, 1) != RES_OK)
return FR_RW_ERROR;
sector++;
}
fs->winflag = 1;
19e2: 81 e0 ldi r24, 0x01 ; 1
19e4: f3 01 movw r30, r6
19e6: 87 8f std Z+31, r24 ; 0x1f
19e8: da c0 rjmp .+436 ; 0x1b9e <f_open+0x7f0>
memset(dir, 0, 32); /* Initialize the new entry */
memcpy(&dir[DIR_Name], fn, 8+3);
dir[DIR_NTres] = fn[11];
mode |= FA_CREATE_ALWAYS;
} else { /* Any object is already existing */
if (mode & FA_CREATE_NEW) /* Cannot create new */
19ea: f2 ff sbrs r31, 2
19ec: 03 c0 rjmp .+6 ; 0x19f4 <f_open+0x646>
19ee: 27 e0 ldi r18, 0x07 ; 7
19f0: 30 e0 ldi r19, 0x00 ; 0
19f2: ad c0 rjmp .+346 ; 0x1b4e <f_open+0x7a0>
return FR_EXIST;
if (dir == NULL || (dir[DIR_Attr] & (AM_RDO|AM_DIR))) /* Cannot overwrite (R/O or DIR) */
19f4: a1 14 cp r10, r1
19f6: b1 04 cpc r11, r1
19f8: 09 f4 brne .+2 ; 0x19fc <f_open+0x64e>
19fa: a1 c0 rjmp .+322 ; 0x1b3e <f_open+0x790>
19fc: f5 01 movw r30, r10
19fe: 83 85 ldd r24, Z+11 ; 0x0b
1a00: 81 71 andi r24, 0x11 ; 17
1a02: 09 f0 breq .+2 ; 0x1a06 <f_open+0x658>
1a04: 9c c0 rjmp .+312 ; 0x1b3e <f_open+0x790>
return FR_DENIED;
if (mode & FA_CREATE_ALWAYS) { /* Resize it to zero */
1a06: 43 ff sbrs r20, 3
1a08: 42 c0 rjmp .+132 ; 0x1a8e <f_open+0x6e0>
#if _FAT32
rs = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
ST_WORD(&dir[DIR_FstClusHI], 0);
#else
rs = LD_WORD(&dir[DIR_FstClusLO]);
1a0a: c2 8c ldd r12, Z+26 ; 0x1a
1a0c: d3 8c ldd r13, Z+27 ; 0x1b
#endif
ST_WORD(&dir[DIR_FstClusLO], 0); /* cluster = 0 */
1a0e: 13 8e std Z+27, r1 ; 0x1b
1a10: 12 8e std Z+26, r1 ; 0x1a
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
1a12: 14 8e std Z+28, r1 ; 0x1c
1a14: 15 8e std Z+29, r1 ; 0x1d
1a16: 16 8e std Z+30, r1 ; 0x1e
1a18: 17 8e std Z+31, r1 ; 0x1f
fs->winflag = 1;
1a1a: 81 e0 ldi r24, 0x01 ; 1
1a1c: f4 01 movw r30, r8
1a1e: 87 8f std Z+31, r24 ; 0x1f
dw = fs->winsect; /* Remove the cluster chain */
1a20: 24 80 ldd r2, Z+4 ; 0x04
1a22: 35 80 ldd r3, Z+5 ; 0x05
1a24: 46 80 ldd r4, Z+6 ; 0x06
1a26: 57 80 ldd r5, Z+7 ; 0x07
BOOL remove_chain ( /* TRUE: successful, FALSE: failed */
CLUST clust /* Cluster# to remove chain from */
)
{
CLUST nxt;
FATFS *fs = FatFs;
1a28: e0 90 10 01 lds r14, 0x0110
1a2c: f0 90 11 01 lds r15, 0x0111
1a30: 86 01 movw r16, r12
1a32: 1c c0 rjmp .+56 ; 0x1a6c <f_open+0x6be>
 
 
while (clust >= 2 && clust < fs->max_clust) {
nxt = get_cluster(clust);
1a34: c8 01 movw r24, r16
1a36: 0e 94 53 04 call 0x8a6 ; 0x8a6 <get_cluster>
1a3a: 3c 01 movw r6, r24
if (nxt == 1) return FALSE;
1a3c: 81 30 cpi r24, 0x01 ; 1
1a3e: 91 05 cpc r25, r1
1a40: 09 f4 brne .+2 ; 0x1a44 <f_open+0x696>
1a42: 80 c0 rjmp .+256 ; 0x1b44 <f_open+0x796>
if (!put_cluster(clust, 0)) return FALSE;
1a44: 60 e0 ldi r22, 0x00 ; 0
1a46: 70 e0 ldi r23, 0x00 ; 0
1a48: c8 01 movw r24, r16
1a4a: 0e 94 c4 03 call 0x788 ; 0x788 <put_cluster>
1a4e: 88 23 and r24, r24
1a50: 09 f4 brne .+2 ; 0x1a54 <f_open+0x6a6>
1a52: 78 c0 rjmp .+240 ; 0x1b44 <f_open+0x796>
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
1a54: f7 01 movw r30, r14
1a56: 82 8d ldd r24, Z+26 ; 0x1a
1a58: 93 8d ldd r25, Z+27 ; 0x1b
1a5a: ff ef ldi r31, 0xFF ; 255
1a5c: 8f 3f cpi r24, 0xFF ; 255
1a5e: 9f 07 cpc r25, r31
1a60: 21 f0 breq .+8 ; 0x1a6a <f_open+0x6bc>
fs->free_clust++;
1a62: 01 96 adiw r24, 0x01 ; 1
1a64: f7 01 movw r30, r14
1a66: 93 8f std Z+27, r25 ; 0x1b
1a68: 82 8f std Z+26, r24 ; 0x1a
1a6a: 83 01 movw r16, r6
{
CLUST nxt;
FATFS *fs = FatFs;
 
 
while (clust >= 2 && clust < fs->max_clust) {
1a6c: 02 30 cpi r16, 0x02 ; 2
1a6e: 11 05 cpc r17, r1
1a70: 08 f4 brcc .+2 ; 0x1a74 <f_open+0x6c6>
1a72: 72 c0 rjmp .+228 ; 0x1b58 <f_open+0x7aa>
1a74: f7 01 movw r30, r14
1a76: 86 89 ldd r24, Z+22 ; 0x16
1a78: 97 89 ldd r25, Z+23 ; 0x17
1a7a: 08 17 cp r16, r24
1a7c: 19 07 cpc r17, r25
1a7e: d0 f2 brcs .-76 ; 0x1a34 <f_open+0x686>
1a80: 6b c0 rjmp .+214 ; 0x1b58 <f_open+0x7aa>
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
fs->winflag = 1;
dw = fs->winsect; /* Remove the cluster chain */
if (!remove_chain(rs) || !move_window(dw))
return FR_RW_ERROR;
fs->last_clust = rs - 1; /* Reuse the cluster hole */
1a82: 08 94 sec
1a84: c1 08 sbc r12, r1
1a86: d1 08 sbc r13, r1
1a88: f4 01 movw r30, r8
1a8a: d1 8e std Z+25, r13 ; 0x19
1a8c: c0 8e std Z+24, r12 ; 0x18
}
}
if (mode & FA_CREATE_ALWAYS) {
1a8e: fb 8d ldd r31, Y+27 ; 0x1b
1a90: f3 ff sbrs r31, 3
1a92: 22 c0 rjmp .+68 ; 0x1ad8 <f_open+0x72a>
dir[DIR_Attr] = AM_ARC; /* New attribute */
1a94: 80 e2 ldi r24, 0x20 ; 32
1a96: f5 01 movw r30, r10
1a98: 83 87 std Z+11, r24 ; 0x0b
dw = get_fattime();
1a9a: 0e 94 b0 00 call 0x160 ; 0x160 <get_fattime>
ST_DWORD(&dir[DIR_WrtTime], dw); /* Updated time */
1a9e: f5 01 movw r30, r10
1aa0: 66 8b std Z+22, r22 ; 0x16
1aa2: 77 8b std Z+23, r23 ; 0x17
1aa4: 80 8f std Z+24, r24 ; 0x18
1aa6: 91 8f std Z+25, r25 ; 0x19
ST_DWORD(&dir[DIR_CrtTime], dw); /* Created time */
1aa8: 66 87 std Z+14, r22 ; 0x0e
1aaa: 77 87 std Z+15, r23 ; 0x0f
1aac: 80 8b std Z+16, r24 ; 0x10
1aae: 91 8b std Z+17, r25 ; 0x11
fs->winflag = 1;
1ab0: 81 e0 ldi r24, 0x01 ; 1
1ab2: f4 01 movw r30, r8
1ab4: 87 8f std Z+31, r24 ; 0x1f
1ab6: 10 c0 rjmp .+32 ; 0x1ad8 <f_open+0x72a>
}
}
/* Open a File */
else {
#endif /* !_FS_READONLY */
if (res != FR_OK) return res; /* Trace failed */
1ab8: 21 15 cp r18, r1
1aba: 31 05 cpc r19, r1
1abc: 09 f0 breq .+2 ; 0x1ac0 <f_open+0x712>
1abe: 47 c0 rjmp .+142 ; 0x1b4e <f_open+0x7a0>
if (dir == NULL || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
1ac0: a1 14 cp r10, r1
1ac2: b1 04 cpc r11, r1
1ac4: 09 f4 brne .+2 ; 0x1ac8 <f_open+0x71a>
1ac6: 41 c0 rjmp .+130 ; 0x1b4a <f_open+0x79c>
1ac8: f5 01 movw r30, r10
1aca: 83 85 ldd r24, Z+11 ; 0x0b
1acc: 84 fd sbrc r24, 4
1ace: 3d c0 rjmp .+122 ; 0x1b4a <f_open+0x79c>
return FR_NO_FILE;
#if !_FS_READONLY
if ((mode & FA_WRITE) && (dir[DIR_Attr] & AM_RDO)) /* R/O violation */
1ad0: 41 ff sbrs r20, 1
1ad2: 02 c0 rjmp .+4 ; 0x1ad8 <f_open+0x72a>
1ad4: 80 fd sbrc r24, 0
1ad6: 33 c0 rjmp .+102 ; 0x1b3e <f_open+0x790>
return FR_DENIED;
}
 
fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
1ad8: f4 01 movw r30, r8
1ada: 84 81 ldd r24, Z+4 ; 0x04
1adc: 95 81 ldd r25, Z+5 ; 0x05
1ade: a6 81 ldd r26, Z+6 ; 0x06
1ae0: b7 81 ldd r27, Z+7 ; 0x07
1ae2: ec 8d ldd r30, Y+28 ; 0x1c
1ae4: fd 8d ldd r31, Y+29 ; 0x1d
1ae6: 86 8b std Z+22, r24 ; 0x16
1ae8: 97 8b std Z+23, r25 ; 0x17
1aea: a0 8f std Z+24, r26 ; 0x18
1aec: b1 8f std Z+25, r27 ; 0x19
fp->dir_ptr = dir;
1aee: b3 8e std Z+27, r11 ; 0x1b
1af0: a2 8e std Z+26, r10 ; 0x1a
#endif
fp->flag = mode; /* File access mode */
1af2: 2b 8d ldd r18, Y+27 ; 0x1b
1af4: 22 83 std Z+2, r18 ; 0x02
fp->org_clust = /* File start cluster */
1af6: f5 01 movw r30, r10
1af8: 82 8d ldd r24, Z+26 ; 0x1a
1afa: 93 8d ldd r25, Z+27 ; 0x1b
1afc: ec 8d ldd r30, Y+28 ; 0x1c
1afe: fd 8d ldd r31, Y+29 ; 0x1d
1b00: 97 87 std Z+15, r25 ; 0x0f
1b02: 86 87 std Z+14, r24 ; 0x0e
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
fp->fsize = LD_DWORD(&dir[DIR_FileSize]); /* File size */
1b04: f5 01 movw r30, r10
1b06: 84 8d ldd r24, Z+28 ; 0x1c
1b08: 95 8d ldd r25, Z+29 ; 0x1d
1b0a: a6 8d ldd r26, Z+30 ; 0x1e
1b0c: b7 8d ldd r27, Z+31 ; 0x1f
1b0e: ec 8d ldd r30, Y+28 ; 0x1c
1b10: fd 8d ldd r31, Y+29 ; 0x1d
1b12: 82 87 std Z+10, r24 ; 0x0a
1b14: 93 87 std Z+11, r25 ; 0x0b
1b16: a4 87 std Z+12, r26 ; 0x0c
1b18: b5 87 std Z+13, r27 ; 0x0d
fp->fptr = 0; /* File ptr */
1b1a: 16 82 std Z+6, r1 ; 0x06
1b1c: 17 82 std Z+7, r1 ; 0x07
1b1e: 10 86 std Z+8, r1 ; 0x08
1b20: 11 86 std Z+9, r1 ; 0x09
fp->sect_clust = 1; /* Sector counter */
1b22: 81 e0 ldi r24, 0x01 ; 1
1b24: 83 83 std Z+3, r24 ; 0x03
fp->fs = fs; fp->id = fs->id; /* Owner file system object of the file */
1b26: 95 82 std Z+5, r9 ; 0x05
1b28: 84 82 std Z+4, r8 ; 0x04
1b2a: f4 01 movw r30, r8
1b2c: 80 81 ld r24, Z
1b2e: 91 81 ldd r25, Z+1 ; 0x01
1b30: ec 8d ldd r30, Y+28 ; 0x1c
1b32: fd 8d ldd r31, Y+29 ; 0x1d
1b34: 91 83 std Z+1, r25 ; 0x01
1b36: 80 83 st Z, r24
1b38: 20 e0 ldi r18, 0x00 ; 0
1b3a: 30 e0 ldi r19, 0x00 ; 0
1b3c: 08 c0 rjmp .+16 ; 0x1b4e <f_open+0x7a0>
 
return FR_OK;
1b3e: 26 e0 ldi r18, 0x06 ; 6
1b40: 30 e0 ldi r19, 0x00 ; 0
1b42: 05 c0 rjmp .+10 ; 0x1b4e <f_open+0x7a0>
1b44: 28 e0 ldi r18, 0x08 ; 8
1b46: 30 e0 ldi r19, 0x00 ; 0
1b48: 02 c0 rjmp .+4 ; 0x1b4e <f_open+0x7a0>
1b4a: 22 e0 ldi r18, 0x02 ; 2
1b4c: 30 e0 ldi r19, 0x00 ; 0
}
1b4e: c9 01 movw r24, r18
1b50: 6d 96 adiw r28, 0x1d ; 29
1b52: e2 e1 ldi r30, 0x12 ; 18
1b54: 0c 94 e3 14 jmp 0x29c6 ; 0x29c6 <__epilogue_restores__>
#endif
ST_WORD(&dir[DIR_FstClusLO], 0); /* cluster = 0 */
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
fs->winflag = 1;
dw = fs->winsect; /* Remove the cluster chain */
if (!remove_chain(rs) || !move_window(dw))
1b58: c2 01 movw r24, r4
1b5a: b1 01 movw r22, r2
1b5c: 0e 94 5a 03 call 0x6b4 ; 0x6b4 <move_window>
1b60: 88 23 and r24, r24
1b62: 09 f0 breq .+2 ; 0x1b66 <f_open+0x7b8>
1b64: 8e cf rjmp .-228 ; 0x1a82 <f_open+0x6d4>
1b66: ee cf rjmp .-36 ; 0x1b44 <f_open+0x796>
)
{
CLUST clust;
char ds;
BYTE *dptr = NULL;
FATFS *fs = FatFs;
1b68: c0 90 10 01 lds r12, 0x0110
1b6c: d0 90 11 01 lds r13, 0x0111
 
/* Initialize directory object */
clust = fs->dirbase;
1b70: f6 01 movw r30, r12
1b72: 84 85 ldd r24, Z+12 ; 0x0c
1b74: 95 85 ldd r25, Z+13 ; 0x0d
dirobj->clust = dirobj->sclust = clust;
dirobj->sect = clust2sect(clust);
} else
#endif
{
dirobj->clust = dirobj->sclust = 0;
1b76: 1c 8a std Y+20, r1 ; 0x14
1b78: 1b 8a std Y+19, r1 ; 0x13
1b7a: 1e 8a std Y+22, r1 ; 0x16
1b7c: 1d 8a std Y+21, r1 ; 0x15
dirobj->sect = clust;
1b7e: a0 e0 ldi r26, 0x00 ; 0
1b80: b0 e0 ldi r27, 0x00 ; 0
1b82: 8f 8b std Y+23, r24 ; 0x17
1b84: 98 8f std Y+24, r25 ; 0x18
1b86: a9 8f std Y+25, r26 ; 0x19
1b88: ba 8f std Y+26, r27 ; 0x1a
}
dirobj->index = 0;
1b8a: 18 8a std Y+16, r1 ; 0x10
1b8c: 1f 86 std Y+15, r1 ; 0x0f
dirobj->fs = fs;
1b8e: da 8a std Y+18, r13 ; 0x12
1b90: c9 8a std Y+17, r12 ; 0x11
 
if (*path == '\0') { /* Null path means the root directory */
1b92: f3 01 movw r30, r6
1b94: 80 81 ld r24, Z
1b96: 88 23 and r24, r24
1b98: 09 f0 breq .+2 ; 0x1b9c <f_open+0x7ee>
1b9a: 4a cd rjmp .-1388 ; 0x1630 <f_open+0x282>
1b9c: 2a ce rjmp .-940 ; 0x17f2 <f_open+0x444>
DWORD dw;
if (res != FR_OK) { /* No file, create new */
if (res != FR_NO_FILE) return res;
res = reserve_direntry(&dirobj, &dir);
if (res != FR_OK) return res;
memset(dir, 0, 32); /* Initialize the new entry */
1b9e: 80 e2 ldi r24, 0x20 ; 32
1ba0: f5 01 movw r30, r10
1ba2: 11 92 st Z+, r1
1ba4: 8a 95 dec r24
1ba6: e9 f7 brne .-6 ; 0x1ba2 <f_open+0x7f4>
memcpy(&dir[DIR_Name], fn, 8+3);
1ba8: d5 01 movw r26, r10
1baa: fe 01 movw r30, r28
1bac: 31 96 adiw r30, 0x01 ; 1
1bae: 8b e0 ldi r24, 0x0B ; 11
1bb0: 01 90 ld r0, Z+
1bb2: 0d 92 st X+, r0
1bb4: 81 50 subi r24, 0x01 ; 1
1bb6: e1 f7 brne .-8 ; 0x1bb0 <f_open+0x802>
dir[DIR_NTres] = fn[11];
1bb8: 8c 85 ldd r24, Y+12 ; 0x0c
1bba: f5 01 movw r30, r10
1bbc: 84 87 std Z+12, r24 ; 0x0c
mode |= FA_CREATE_ALWAYS;
1bbe: fb 8d ldd r31, Y+27 ; 0x1b
1bc0: f8 60 ori r31, 0x08 ; 8
1bc2: fb 8f std Y+27, r31 ; 0x1b
1bc4: 64 cf rjmp .-312 ; 0x1a8e <f_open+0x6e0>
 
00001bc6 <rcvr_datablock>:
static
BOOL rcvr_datablock (
BYTE *buff, /* Data buffer to store received data */
UINT btr /* Byte count (must be even number) */
)
{
1bc6: fc 01 movw r30, r24
BYTE token;
 
 
Timer1 = 10;
1bc8: 8a e0 ldi r24, 0x0A ; 10
1bca: 80 93 15 01 sts 0x0115, r24
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1bce: 9f ef ldi r25, 0xFF ; 255
1bd0: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1bd2: 0d b4 in r0, 0x2d ; 45
1bd4: 07 fe sbrs r0, 7
1bd6: fd cf rjmp .-6 ; 0x1bd2 <rcvr_datablock+0xc>
return SPDR;
1bd8: 8e b5 in r24, 0x2e ; 46
 
 
Timer1 = 10;
do { /* Wait for data packet in timeout of 100ms */
token = rcvr_spi();
} while ((token == 0xFF) && Timer1);
1bda: 8f 3f cpi r24, 0xFF ; 255
1bdc: 29 f4 brne .+10 ; 0x1be8 <rcvr_datablock+0x22>
1bde: 80 91 15 01 lds r24, 0x0115
1be2: 88 23 and r24, r24
1be4: a9 f7 brne .-22 ; 0x1bd0 <rcvr_datablock+0xa>
1be6: 22 c0 rjmp .+68 ; 0x1c2c <rcvr_datablock+0x66>
if(token != 0xFE) return FALSE; /* If not valid data token, retutn with error */
1be8: 8e 3f cpi r24, 0xFE ; 254
1bea: 01 f5 brne .+64 ; 0x1c2c <rcvr_datablock+0x66>
 
do { /* Receive the data block into buffer */
rcvr_spi_m(buff++);
1bec: 9f ef ldi r25, 0xFF ; 255
1bee: 9e bd out 0x2e, r25 ; 46
1bf0: 0d b4 in r0, 0x2d ; 45
1bf2: 07 fe sbrs r0, 7
1bf4: fd cf rjmp .-6 ; 0x1bf0 <rcvr_datablock+0x2a>
1bf6: 8e b5 in r24, 0x2e ; 46
1bf8: 80 83 st Z, r24
rcvr_spi_m(buff++);
1bfa: 9e bd out 0x2e, r25 ; 46
1bfc: 0d b4 in r0, 0x2d ; 45
1bfe: 07 fe sbrs r0, 7
1c00: fd cf rjmp .-6 ; 0x1bfc <rcvr_datablock+0x36>
1c02: 8e b5 in r24, 0x2e ; 46
1c04: 81 83 std Z+1, r24 ; 0x01
} while (btr -= 2);
1c06: 62 50 subi r22, 0x02 ; 2
1c08: 70 40 sbci r23, 0x00 ; 0
1c0a: 11 f0 breq .+4 ; 0x1c10 <rcvr_datablock+0x4a>
static
BOOL rcvr_datablock (
BYTE *buff, /* Data buffer to store received data */
UINT btr /* Byte count (must be even number) */
)
{
1c0c: 32 96 adiw r30, 0x02 ; 2
1c0e: ef cf rjmp .-34 ; 0x1bee <rcvr_datablock+0x28>
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1c10: 8f ef ldi r24, 0xFF ; 255
1c12: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1c14: 0d b4 in r0, 0x2d ; 45
1c16: 07 fe sbrs r0, 7
1c18: fd cf rjmp .-6 ; 0x1c14 <rcvr_datablock+0x4e>
return SPDR;
1c1a: 8e b5 in r24, 0x2e ; 46
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1c1c: 8f ef ldi r24, 0xFF ; 255
1c1e: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1c20: 0d b4 in r0, 0x2d ; 45
1c22: 07 fe sbrs r0, 7
1c24: fd cf rjmp .-6 ; 0x1c20 <rcvr_datablock+0x5a>
return SPDR;
1c26: 8e b5 in r24, 0x2e ; 46
1c28: 81 e0 ldi r24, 0x01 ; 1
1c2a: 08 95 ret
rcvr_spi_m(buff++);
} while (btr -= 2);
rcvr_spi(); /* Discard CRC */
rcvr_spi();
 
return TRUE; /* Return with success */
1c2c: 80 e0 ldi r24, 0x00 ; 0
}
1c2e: 08 95 ret
 
00001c30 <xmit_datablock>:
static
BOOL xmit_datablock (
const BYTE *buff, /* 512 byte data block to be transmitted */
BYTE token /* Data/Stop token */
)
{
1c30: fc 01 movw r30, r24
BYTE wait_ready (void)
{
BYTE res;
 
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
1c32: 82 e3 ldi r24, 0x32 ; 50
1c34: 80 93 16 01 sts 0x0116, r24
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1c38: 8f ef ldi r24, 0xFF ; 255
1c3a: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1c3c: 0d b4 in r0, 0x2d ; 45
1c3e: 07 fe sbrs r0, 7
1c40: fd cf rjmp .-6 ; 0x1c3c <xmit_datablock+0xc>
return SPDR;
1c42: 8e b5 in r24, 0x2e ; 46
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1c44: 9f ef ldi r25, 0xFF ; 255
1c46: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1c48: 0d b4 in r0, 0x2d ; 45
1c4a: 07 fe sbrs r0, 7
1c4c: fd cf rjmp .-6 ; 0x1c48 <xmit_datablock+0x18>
return SPDR;
1c4e: 8e b5 in r24, 0x2e ; 46
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
rcvr_spi();
do
res = rcvr_spi();
while ((res != 0xFF) && Timer2);
1c50: 8f 3f cpi r24, 0xFF ; 255
1c52: 31 f0 breq .+12 ; 0x1c60 <xmit_datablock+0x30>
1c54: 80 91 16 01 lds r24, 0x0116
1c58: 88 23 and r24, r24
1c5a: a9 f7 brne .-22 ; 0x1c46 <xmit_datablock+0x16>
1c5c: 90 e0 ldi r25, 0x00 ; 0
1c5e: 2e c0 rjmp .+92 ; 0x1cbc <xmit_datablock+0x8c>
BYTE resp, wc;
 
 
if (wait_ready() != 0xFF) return FALSE;
 
xmit_spi(token); /* Xmit data token */
1c60: 6e bd out 0x2e, r22 ; 46
1c62: 0d b4 in r0, 0x2d ; 45
1c64: 07 fe sbrs r0, 7
1c66: fd cf rjmp .-6 ; 0x1c62 <xmit_datablock+0x32>
if (token != 0xFD) { /* Is data token */
1c68: 6d 3f cpi r22, 0xFD ; 253
1c6a: 11 f4 brne .+4 ; 0x1c70 <xmit_datablock+0x40>
1c6c: 91 e0 ldi r25, 0x01 ; 1
1c6e: 26 c0 rjmp .+76 ; 0x1cbc <xmit_datablock+0x8c>
1c70: 90 e0 ldi r25, 0x00 ; 0
wc = 0;
do { /* Xmit the 512 byte data block to MMC */
xmit_spi(*buff++);
1c72: 80 81 ld r24, Z
1c74: 8e bd out 0x2e, r24 ; 46
1c76: 0d b4 in r0, 0x2d ; 45
1c78: 07 fe sbrs r0, 7
1c7a: fd cf rjmp .-6 ; 0x1c76 <xmit_datablock+0x46>
xmit_spi(*buff++);
1c7c: 81 81 ldd r24, Z+1 ; 0x01
1c7e: 8e bd out 0x2e, r24 ; 46
1c80: 0d b4 in r0, 0x2d ; 45
1c82: 07 fe sbrs r0, 7
1c84: fd cf rjmp .-6 ; 0x1c80 <xmit_datablock+0x50>
} while (--wc);
1c86: 91 50 subi r25, 0x01 ; 1
1c88: 11 f0 breq .+4 ; 0x1c8e <xmit_datablock+0x5e>
static
BOOL xmit_datablock (
const BYTE *buff, /* 512 byte data block to be transmitted */
BYTE token /* Data/Stop token */
)
{
1c8a: 32 96 adiw r30, 0x02 ; 2
1c8c: f2 cf rjmp .-28 ; 0x1c72 <xmit_datablock+0x42>
wc = 0;
do { /* Xmit the 512 byte data block to MMC */
xmit_spi(*buff++);
xmit_spi(*buff++);
} while (--wc);
xmit_spi(0xFF); /* CRC (Dummy) */
1c8e: 8f ef ldi r24, 0xFF ; 255
1c90: 8e bd out 0x2e, r24 ; 46
1c92: 0d b4 in r0, 0x2d ; 45
1c94: 07 fe sbrs r0, 7
1c96: fd cf rjmp .-6 ; 0x1c92 <xmit_datablock+0x62>
xmit_spi(0xFF);
1c98: 8f ef ldi r24, 0xFF ; 255
1c9a: 8e bd out 0x2e, r24 ; 46
1c9c: 0d b4 in r0, 0x2d ; 45
1c9e: 07 fe sbrs r0, 7
1ca0: fd cf rjmp .-6 ; 0x1c9c <xmit_datablock+0x6c>
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1ca2: 8f ef ldi r24, 0xFF ; 255
1ca4: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1ca6: 0d b4 in r0, 0x2d ; 45
1ca8: 07 fe sbrs r0, 7
1caa: fd cf rjmp .-6 ; 0x1ca6 <xmit_datablock+0x76>
return SPDR;
1cac: 8e b5 in r24, 0x2e ; 46
1cae: 90 e0 ldi r25, 0x00 ; 0
1cb0: 8f 71 andi r24, 0x1F ; 31
1cb2: 85 30 cpi r24, 0x05 ; 5
1cb4: 09 f0 breq .+2 ; 0x1cb8 <xmit_datablock+0x88>
1cb6: 91 e0 ldi r25, 0x01 ; 1
1cb8: 81 e0 ldi r24, 0x01 ; 1
1cba: 98 27 eor r25, r24
if ((resp & 0x1F) != 0x05) /* If not accepted, return with error */
return FALSE;
}
 
return TRUE;
}
1cbc: 89 2f mov r24, r25
1cbe: 08 95 ret
 
00001cc0 <send_cmd>:
static
BYTE send_cmd (
BYTE cmd, /* Command byte */
DWORD arg /* Argument */
)
{
1cc0: 28 2f mov r18, r24
BYTE wait_ready (void)
{
BYTE res;
 
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
1cc2: 82 e3 ldi r24, 0x32 ; 50
1cc4: 80 93 16 01 sts 0x0116, r24
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1cc8: 8f ef ldi r24, 0xFF ; 255
1cca: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1ccc: 0d b4 in r0, 0x2d ; 45
1cce: 07 fe sbrs r0, 7
1cd0: fd cf rjmp .-6 ; 0x1ccc <send_cmd+0xc>
return SPDR;
1cd2: 8e b5 in r24, 0x2e ; 46
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1cd4: 9f ef ldi r25, 0xFF ; 255
1cd6: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1cd8: 0d b4 in r0, 0x2d ; 45
1cda: 07 fe sbrs r0, 7
1cdc: fd cf rjmp .-6 ; 0x1cd8 <send_cmd+0x18>
return SPDR;
1cde: 8e b5 in r24, 0x2e ; 46
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
rcvr_spi();
do
res = rcvr_spi();
while ((res != 0xFF) && Timer2);
1ce0: 8f 3f cpi r24, 0xFF ; 255
1ce2: 31 f0 breq .+12 ; 0x1cf0 <send_cmd+0x30>
1ce4: 80 91 16 01 lds r24, 0x0116
1ce8: 88 23 and r24, r24
1cea: a9 f7 brne .-22 ; 0x1cd6 <send_cmd+0x16>
1cec: 8f ef ldi r24, 0xFF ; 255
1cee: 08 95 ret
 
 
if (wait_ready() != 0xFF) return 0xFF;
 
/* Send command packet */
xmit_spi(cmd); /* Command */
1cf0: 2e bd out 0x2e, r18 ; 46
1cf2: 0d b4 in r0, 0x2d ; 45
1cf4: 07 fe sbrs r0, 7
1cf6: fd cf rjmp .-6 ; 0x1cf2 <send_cmd+0x32>
xmit_spi((BYTE)(arg >> 24)); /* Argument[31..24] */
1cf8: 87 2f mov r24, r23
1cfa: 99 27 eor r25, r25
1cfc: aa 27 eor r26, r26
1cfe: bb 27 eor r27, r27
1d00: 8e bd out 0x2e, r24 ; 46
1d02: 0d b4 in r0, 0x2d ; 45
1d04: 07 fe sbrs r0, 7
1d06: fd cf rjmp .-6 ; 0x1d02 <send_cmd+0x42>
xmit_spi((BYTE)(arg >> 16)); /* Argument[23..16] */
1d08: cb 01 movw r24, r22
1d0a: aa 27 eor r26, r26
1d0c: bb 27 eor r27, r27
1d0e: 8e bd out 0x2e, r24 ; 46
1d10: 0d b4 in r0, 0x2d ; 45
1d12: 07 fe sbrs r0, 7
1d14: fd cf rjmp .-6 ; 0x1d10 <send_cmd+0x50>
xmit_spi((BYTE)(arg >> 8)); /* Argument[15..8] */
1d16: bb 27 eor r27, r27
1d18: a7 2f mov r26, r23
1d1a: 96 2f mov r25, r22
1d1c: 85 2f mov r24, r21
1d1e: 8e bd out 0x2e, r24 ; 46
1d20: 0d b4 in r0, 0x2d ; 45
1d22: 07 fe sbrs r0, 7
1d24: fd cf rjmp .-6 ; 0x1d20 <send_cmd+0x60>
xmit_spi((BYTE)arg); /* Argument[7..0] */
1d26: 4e bd out 0x2e, r20 ; 46
1d28: 0d b4 in r0, 0x2d ; 45
1d2a: 07 fe sbrs r0, 7
1d2c: fd cf rjmp .-6 ; 0x1d28 <send_cmd+0x68>
n = 0;
if (cmd == CMD0) n = 0x95; /* CRC for CMD0(0) */
1d2e: 20 34 cpi r18, 0x40 ; 64
1d30: 11 f4 brne .+4 ; 0x1d36 <send_cmd+0x76>
1d32: 85 e9 ldi r24, 0x95 ; 149
1d34: 05 c0 rjmp .+10 ; 0x1d40 <send_cmd+0x80>
if (cmd == CMD8) n = 0x87; /* CRC for CMD8(0x1AA) */
1d36: 28 34 cpi r18, 0x48 ; 72
1d38: 11 f4 brne .+4 ; 0x1d3e <send_cmd+0x7e>
1d3a: 87 e8 ldi r24, 0x87 ; 135
1d3c: 01 c0 rjmp .+2 ; 0x1d40 <send_cmd+0x80>
1d3e: 80 e0 ldi r24, 0x00 ; 0
xmit_spi(n);
1d40: 8e bd out 0x2e, r24 ; 46
1d42: 0d b4 in r0, 0x2d ; 45
1d44: 07 fe sbrs r0, 7
1d46: fd cf rjmp .-6 ; 0x1d42 <send_cmd+0x82>
 
/* Receive command response */
if (cmd == CMD12) rcvr_spi(); /* Skip a stuff byte when stop reading */
1d48: 2c 34 cpi r18, 0x4C ; 76
1d4a: 31 f4 brne .+12 ; 0x1d58 <send_cmd+0x98>
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1d4c: 8f ef ldi r24, 0xFF ; 255
1d4e: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1d50: 0d b4 in r0, 0x2d ; 45
1d52: 07 fe sbrs r0, 7
1d54: fd cf rjmp .-6 ; 0x1d50 <send_cmd+0x90>
return SPDR;
1d56: 8e b5 in r24, 0x2e ; 46
1d58: 9a e0 ldi r25, 0x0A ; 10
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1d5a: 2f ef ldi r18, 0xFF ; 255
1d5c: 2e bd out 0x2e, r18 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1d5e: 0d b4 in r0, 0x2d ; 45
1d60: 07 fe sbrs r0, 7
1d62: fd cf rjmp .-6 ; 0x1d5e <send_cmd+0x9e>
return SPDR;
1d64: 8e b5 in r24, 0x2e ; 46
/* Receive command response */
if (cmd == CMD12) rcvr_spi(); /* Skip a stuff byte when stop reading */
n = 10; /* Wait for a valid response in timeout of 10 attempts */
do
res = rcvr_spi();
while ((res & 0x80) && --n);
1d66: 87 ff sbrs r24, 7
1d68: 02 c0 rjmp .+4 ; 0x1d6e <send_cmd+0xae>
1d6a: 91 50 subi r25, 0x01 ; 1
1d6c: b9 f7 brne .-18 ; 0x1d5c <send_cmd+0x9c>
 
return res; /* Return with the response value */
}
1d6e: 08 95 ret
 
00001d70 <disk_initialize>:
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_initialize (
BYTE drv /* Physical drive nmuber (0) */
)
{
1d70: a4 e0 ldi r26, 0x04 ; 4
1d72: b0 e0 ldi r27, 0x00 ; 0
1d74: ee eb ldi r30, 0xBE ; 190
1d76: fe e0 ldi r31, 0x0E ; 14
1d78: 0c 94 d3 14 jmp 0x29a6 ; 0x29a6 <__prologue_saves__+0x18>
BYTE n, ty, ocr[4];
 
 
if (drv) return STA_NOINIT; /* Supports only single drive */
1d7c: 88 23 and r24, r24
1d7e: 11 f0 breq .+4 ; 0x1d84 <disk_initialize+0x14>
1d80: 81 e0 ldi r24, 0x01 ; 1
1d82: cf c0 rjmp .+414 ; 0x1f22 <disk_initialize+0x1b2>
if (Stat & STA_NODISK) return Stat; /* No card in the socket */
1d84: 80 91 0b 01 lds r24, 0x010B
1d88: 81 fd sbrc r24, 1
1d8a: c9 c0 rjmp .+402 ; 0x1f1e <disk_initialize+0x1ae>
1d8c: 8a e0 ldi r24, 0x0A ; 10
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1d8e: 9f ef ldi r25, 0xFF ; 255
1d90: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1d92: 0d b4 in r0, 0x2d ; 45
1d94: 07 fe sbrs r0, 7
1d96: fd cf rjmp .-6 ; 0x1d92 <disk_initialize+0x22>
return SPDR;
1d98: 2e b5 in r18, 0x2e ; 46
 
 
if (drv) return STA_NOINIT; /* Supports only single drive */
if (Stat & STA_NODISK) return Stat; /* No card in the socket */
 
for (n = 10; n; n--) rcvr_spi(); /* 80 dummy clocks */
1d9a: 81 50 subi r24, 0x01 ; 1
1d9c: c9 f7 brne .-14 ; 0x1d90 <disk_initialize+0x20>
 
SELECT(); /* CS = L */
1d9e: 2a 98 cbi 0x05, 2 ; 5
ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
1da0: 40 e0 ldi r20, 0x00 ; 0
1da2: 50 e0 ldi r21, 0x00 ; 0
1da4: 60 e0 ldi r22, 0x00 ; 0
1da6: 70 e0 ldi r23, 0x00 ; 0
1da8: 80 e4 ldi r24, 0x40 ; 64
1daa: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1dae: 81 30 cpi r24, 0x01 ; 1
1db0: 09 f0 breq .+2 ; 0x1db4 <disk_initialize+0x44>
1db2: a0 c0 rjmp .+320 ; 0x1ef4 <disk_initialize+0x184>
Timer1 = 100; /* Initialization timeout of 1000 msec */
1db4: 84 e6 ldi r24, 0x64 ; 100
1db6: 80 93 15 01 sts 0x0115, r24
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDC Ver2+ */
1dba: 4a ea ldi r20, 0xAA ; 170
1dbc: 51 e0 ldi r21, 0x01 ; 1
1dbe: 60 e0 ldi r22, 0x00 ; 0
1dc0: 70 e0 ldi r23, 0x00 ; 0
1dc2: 88 e4 ldi r24, 0x48 ; 72
1dc4: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1dc8: 81 30 cpi r24, 0x01 ; 1
1dca: 09 f0 breq .+2 ; 0x1dce <disk_initialize+0x5e>
1dcc: 54 c0 rjmp .+168 ; 0x1e76 <disk_initialize+0x106>
1dce: 7e 01 movw r14, r28
1dd0: 08 94 sec
1dd2: e1 1c adc r14, r1
1dd4: f1 1c adc r15, r1
1dd6: 87 01 movw r16, r14
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1dd8: 9f ef ldi r25, 0xFF ; 255
SELECT(); /* CS = L */
ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
Timer1 = 100; /* Initialization timeout of 1000 msec */
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDC Ver2+ */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
1dda: 9e 01 movw r18, r28
1ddc: 2b 5f subi r18, 0xFB ; 251
1dde: 3f 4f sbci r19, 0xFF ; 255
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1de0: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1de2: 0d b4 in r0, 0x2d ; 45
1de4: 07 fe sbrs r0, 7
1de6: fd cf rjmp .-6 ; 0x1de2 <disk_initialize+0x72>
return SPDR;
1de8: 8e b5 in r24, 0x2e ; 46
SELECT(); /* CS = L */
ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
Timer1 = 100; /* Initialization timeout of 1000 msec */
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDC Ver2+ */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
1dea: f8 01 movw r30, r16
1dec: 81 93 st Z+, r24
1dee: 8f 01 movw r16, r30
1df0: e2 17 cp r30, r18
1df2: f3 07 cpc r31, r19
1df4: a9 f7 brne .-22 ; 0x1de0 <disk_initialize+0x70>
if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
1df6: 8b 81 ldd r24, Y+3 ; 0x03
1df8: 81 30 cpi r24, 0x01 ; 1
1dfa: 09 f0 breq .+2 ; 0x1dfe <disk_initialize+0x8e>
1dfc: 7b c0 rjmp .+246 ; 0x1ef4 <disk_initialize+0x184>
1dfe: 8c 81 ldd r24, Y+4 ; 0x04
1e00: 8a 3a cpi r24, 0xAA ; 170
1e02: 09 f0 breq .+2 ; 0x1e06 <disk_initialize+0x96>
1e04: 77 c0 rjmp .+238 ; 0x1ef4 <disk_initialize+0x184>
do {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 1UL << 30) == 0) break; /* ACMD41 with HCS bit */
1e06: 40 e0 ldi r20, 0x00 ; 0
1e08: 50 e0 ldi r21, 0x00 ; 0
1e0a: 60 e0 ldi r22, 0x00 ; 0
1e0c: 70 e0 ldi r23, 0x00 ; 0
1e0e: 87 e7 ldi r24, 0x77 ; 119
1e10: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1e14: 82 30 cpi r24, 0x02 ; 2
1e16: 48 f4 brcc .+18 ; 0x1e2a <disk_initialize+0xba>
1e18: 40 e0 ldi r20, 0x00 ; 0
1e1a: 50 e0 ldi r21, 0x00 ; 0
1e1c: 60 e0 ldi r22, 0x00 ; 0
1e1e: 70 e4 ldi r23, 0x40 ; 64
1e20: 89 e6 ldi r24, 0x69 ; 105
1e22: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1e26: 88 23 and r24, r24
1e28: 21 f0 breq .+8 ; 0x1e32 <disk_initialize+0xc2>
} while (Timer1);
1e2a: 80 91 15 01 lds r24, 0x0115
1e2e: 88 23 and r24, r24
1e30: 51 f7 brne .-44 ; 0x1e06 <disk_initialize+0x96>
if (Timer1 && send_cmd(CMD58, 0) == 0) { /* Check CCS bit */
1e32: 80 91 15 01 lds r24, 0x0115
1e36: 88 23 and r24, r24
1e38: 09 f4 brne .+2 ; 0x1e3c <disk_initialize+0xcc>
1e3a: 5c c0 rjmp .+184 ; 0x1ef4 <disk_initialize+0x184>
1e3c: 40 e0 ldi r20, 0x00 ; 0
1e3e: 50 e0 ldi r21, 0x00 ; 0
1e40: 60 e0 ldi r22, 0x00 ; 0
1e42: 70 e0 ldi r23, 0x00 ; 0
1e44: 8a e7 ldi r24, 0x7A ; 122
1e46: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1e4a: 88 23 and r24, r24
1e4c: 09 f0 breq .+2 ; 0x1e50 <disk_initialize+0xe0>
1e4e: 52 c0 rjmp .+164 ; 0x1ef4 <disk_initialize+0x184>
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1e50: 9f ef ldi r25, 0xFF ; 255
1e52: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1e54: 0d b4 in r0, 0x2d ; 45
1e56: 07 fe sbrs r0, 7
1e58: fd cf rjmp .-6 ; 0x1e54 <disk_initialize+0xe4>
return SPDR;
1e5a: 8e b5 in r24, 0x2e ; 46
if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
do {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 1UL << 30) == 0) break; /* ACMD41 with HCS bit */
} while (Timer1);
if (Timer1 && send_cmd(CMD58, 0) == 0) { /* Check CCS bit */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
1e5c: f7 01 movw r30, r14
1e5e: 81 93 st Z+, r24
1e60: 7f 01 movw r14, r30
1e62: e0 17 cp r30, r16
1e64: f1 07 cpc r31, r17
1e66: a9 f7 brne .-22 ; 0x1e52 <disk_initialize+0xe2>
ty = (ocr[0] & 0x40) ? 6 : 2;
1e68: 89 81 ldd r24, Y+1 ; 0x01
1e6a: 86 fd sbrc r24, 6
1e6c: 02 c0 rjmp .+4 ; 0x1e72 <disk_initialize+0x102>
1e6e: 12 e0 ldi r17, 0x02 ; 2
1e70: 42 c0 rjmp .+132 ; 0x1ef6 <disk_initialize+0x186>
1e72: 16 e0 ldi r17, 0x06 ; 6
1e74: 40 c0 rjmp .+128 ; 0x1ef6 <disk_initialize+0x186>
}
}
} else { /* SDC Ver1 or MMC */
ty = (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) <= 1) ? 2 : 1; /* SDC : MMC */
1e76: 40 e0 ldi r20, 0x00 ; 0
1e78: 50 e0 ldi r21, 0x00 ; 0
1e7a: 60 e0 ldi r22, 0x00 ; 0
1e7c: 70 e0 ldi r23, 0x00 ; 0
1e7e: 87 e7 ldi r24, 0x77 ; 119
1e80: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1e84: 82 30 cpi r24, 0x02 ; 2
1e86: 58 f4 brcc .+22 ; 0x1e9e <disk_initialize+0x12e>
1e88: 40 e0 ldi r20, 0x00 ; 0
1e8a: 50 e0 ldi r21, 0x00 ; 0
1e8c: 60 e0 ldi r22, 0x00 ; 0
1e8e: 70 e0 ldi r23, 0x00 ; 0
1e90: 89 e6 ldi r24, 0x69 ; 105
1e92: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1e96: 82 30 cpi r24, 0x02 ; 2
1e98: 10 f4 brcc .+4 ; 0x1e9e <disk_initialize+0x12e>
1e9a: 12 e0 ldi r17, 0x02 ; 2
1e9c: 01 c0 rjmp .+2 ; 0x1ea0 <disk_initialize+0x130>
1e9e: 11 e0 ldi r17, 0x01 ; 1
do {
if (ty == 2) {
1ea0: 12 30 cpi r17, 0x02 ; 2
1ea2: 79 f4 brne .+30 ; 0x1ec2 <disk_initialize+0x152>
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) == 0) break; /* ACMD41 */
1ea4: 40 e0 ldi r20, 0x00 ; 0
1ea6: 50 e0 ldi r21, 0x00 ; 0
1ea8: 60 e0 ldi r22, 0x00 ; 0
1eaa: 70 e0 ldi r23, 0x00 ; 0
1eac: 87 e7 ldi r24, 0x77 ; 119
1eae: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1eb2: 82 30 cpi r24, 0x02 ; 2
1eb4: 78 f4 brcc .+30 ; 0x1ed4 <disk_initialize+0x164>
1eb6: 40 e0 ldi r20, 0x00 ; 0
1eb8: 50 e0 ldi r21, 0x00 ; 0
1eba: 60 e0 ldi r22, 0x00 ; 0
1ebc: 70 e0 ldi r23, 0x00 ; 0
1ebe: 89 e6 ldi r24, 0x69 ; 105
1ec0: 05 c0 rjmp .+10 ; 0x1ecc <disk_initialize+0x15c>
} else {
if (send_cmd(CMD1, 0) == 0) break; /* CMD1 */
1ec2: 40 e0 ldi r20, 0x00 ; 0
1ec4: 50 e0 ldi r21, 0x00 ; 0
1ec6: 60 e0 ldi r22, 0x00 ; 0
1ec8: 70 e0 ldi r23, 0x00 ; 0
1eca: 81 e4 ldi r24, 0x41 ; 65
1ecc: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1ed0: 88 23 and r24, r24
1ed2: 21 f0 breq .+8 ; 0x1edc <disk_initialize+0x16c>
}
} while (Timer1);
1ed4: 80 91 15 01 lds r24, 0x0115
1ed8: 88 23 and r24, r24
1eda: 11 f7 brne .-60 ; 0x1ea0 <disk_initialize+0x130>
if (!Timer1 || send_cmd(CMD16, 512) != 0) /* Select R/W block length */
1edc: 80 91 15 01 lds r24, 0x0115
1ee0: 88 23 and r24, r24
1ee2: 41 f0 breq .+16 ; 0x1ef4 <disk_initialize+0x184>
1ee4: 40 e0 ldi r20, 0x00 ; 0
1ee6: 52 e0 ldi r21, 0x02 ; 2
1ee8: 60 e0 ldi r22, 0x00 ; 0
1eea: 70 e0 ldi r23, 0x00 ; 0
1eec: 80 e5 ldi r24, 0x50 ; 80
1eee: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1ef2: 81 11 cpse r24, r1
1ef4: 10 e0 ldi r17, 0x00 ; 0
ty = 0;
}
}
CardType = ty;
1ef6: 10 93 17 01 sts 0x0117, r17
DESELECT(); /* CS = H */
1efa: 2a 9a sbi 0x05, 2 ; 5
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1efc: 8f ef ldi r24, 0xFF ; 255
1efe: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1f00: 0d b4 in r0, 0x2d ; 45
1f02: 07 fe sbrs r0, 7
1f04: fd cf rjmp .-6 ; 0x1f00 <disk_initialize+0x190>
return SPDR;
1f06: 8e b5 in r24, 0x2e ; 46
}
CardType = ty;
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
if (ty) { /* Initialization succeded */
1f08: 11 23 and r17, r17
1f0a: 21 f0 breq .+8 ; 0x1f14 <disk_initialize+0x1a4>
Stat &= ~STA_NOINIT; /* Clear STA_NOINIT */
1f0c: 80 91 0b 01 lds r24, 0x010B
1f10: 8e 7f andi r24, 0xFE ; 254
1f12: 03 c0 rjmp .+6 ; 0x1f1a <disk_initialize+0x1aa>
} else { /* Initialization failed */
Stat |= STA_NOINIT; /* Set STA_NOINIT */
1f14: 80 91 0b 01 lds r24, 0x010B
1f18: 81 60 ori r24, 0x01 ; 1
1f1a: 80 93 0b 01 sts 0x010B, r24
}
 
return Stat;
1f1e: 80 91 0b 01 lds r24, 0x010B
}
1f22: 24 96 adiw r28, 0x04 ; 4
1f24: e6 e0 ldi r30, 0x06 ; 6
1f26: 0c 94 ef 14 jmp 0x29de ; 0x29de <__epilogue_restores__+0x18>
 
00001f2a <disk_status>:
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_status (
BYTE drv /* Physical drive nmuber (0) */
)
{
1f2a: 88 23 and r24, r24
1f2c: 11 f0 breq .+4 ; 0x1f32 <disk_status+0x8>
1f2e: 81 e0 ldi r24, 0x01 ; 1
1f30: 08 95 ret
if (drv) return STA_NOINIT; /* Supports only single drive */
return Stat;
1f32: 80 91 0b 01 lds r24, 0x010B
}
1f36: 08 95 ret
 
00001f38 <disk_read>:
BYTE drv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
1f38: 0f 93 push r16
1f3a: cf 93 push r28
1f3c: df 93 push r29
1f3e: eb 01 movw r28, r22
if (drv || !count) return RES_PARERR;
1f40: 88 23 and r24, r24
1f42: 09 f0 breq .+2 ; 0x1f46 <disk_read+0xe>
1f44: 51 c0 rjmp .+162 ; 0x1fe8 <disk_read+0xb0>
1f46: 00 23 and r16, r16
1f48: 09 f4 brne .+2 ; 0x1f4c <disk_read+0x14>
1f4a: 4e c0 rjmp .+156 ; 0x1fe8 <disk_read+0xb0>
if (Stat & STA_NOINIT) return RES_NOTRDY;
1f4c: 80 91 0b 01 lds r24, 0x010B
1f50: 80 ff sbrs r24, 0
1f52: 03 c0 rjmp .+6 ; 0x1f5a <disk_read+0x22>
1f54: 23 e0 ldi r18, 0x03 ; 3
1f56: 30 e0 ldi r19, 0x00 ; 0
1f58: 49 c0 rjmp .+146 ; 0x1fec <disk_read+0xb4>
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
1f5a: 80 91 17 01 lds r24, 0x0117
1f5e: 82 fd sbrc r24, 2
1f60: 07 c0 rjmp .+14 ; 0x1f70 <disk_read+0x38>
1f62: 69 e0 ldi r22, 0x09 ; 9
1f64: 22 0f add r18, r18
1f66: 33 1f adc r19, r19
1f68: 44 1f adc r20, r20
1f6a: 55 1f adc r21, r21
1f6c: 6a 95 dec r22
1f6e: d1 f7 brne .-12 ; 0x1f64 <disk_read+0x2c>
 
SELECT(); /* CS = L */
1f70: 2a 98 cbi 0x05, 2 ; 5
 
if (count == 1) { /* Single block read */
1f72: 01 30 cpi r16, 0x01 ; 1
1f74: 89 f4 brne .+34 ; 0x1f98 <disk_read+0x60>
if ((send_cmd(CMD17, sector) == 0) /* READ_SINGLE_BLOCK */
1f76: ba 01 movw r22, r20
1f78: a9 01 movw r20, r18
1f7a: 81 e5 ldi r24, 0x51 ; 81
1f7c: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1f80: 88 23 and r24, r24
1f82: 21 f5 brne .+72 ; 0x1fcc <disk_read+0x94>
1f84: 60 e0 ldi r22, 0x00 ; 0
1f86: 72 e0 ldi r23, 0x02 ; 2
1f88: ce 01 movw r24, r28
1f8a: 0e 94 e3 0d call 0x1bc6 ; 0x1bc6 <rcvr_datablock>
1f8e: 00 e0 ldi r16, 0x00 ; 0
1f90: 88 23 and r24, r24
1f92: e1 f4 brne .+56 ; 0x1fcc <disk_read+0x94>
1f94: 01 e0 ldi r16, 0x01 ; 1
1f96: 1a c0 rjmp .+52 ; 0x1fcc <disk_read+0x94>
&& rcvr_datablock(buff, 512))
count = 0;
}
else { /* Multiple block read */
if (send_cmd(CMD18, sector) == 0) { /* READ_MULTIPLE_BLOCK */
1f98: ba 01 movw r22, r20
1f9a: a9 01 movw r20, r18
1f9c: 82 e5 ldi r24, 0x52 ; 82
1f9e: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
1fa2: 88 23 and r24, r24
1fa4: 99 f4 brne .+38 ; 0x1fcc <disk_read+0x94>
do {
if (!rcvr_datablock(buff, 512)) break;
1fa6: 60 e0 ldi r22, 0x00 ; 0
1fa8: 72 e0 ldi r23, 0x02 ; 2
1faa: ce 01 movw r24, r28
1fac: 0e 94 e3 0d call 0x1bc6 ; 0x1bc6 <rcvr_datablock>
1fb0: 88 23 and r24, r24
1fb2: 29 f0 breq .+10 ; 0x1fbe <disk_read+0x86>
buff += 512;
} while (--count);
1fb4: 01 50 subi r16, 0x01 ; 1
1fb6: 19 f0 breq .+6 ; 0x1fbe <disk_read+0x86>
}
else { /* Multiple block read */
if (send_cmd(CMD18, sector) == 0) { /* READ_MULTIPLE_BLOCK */
do {
if (!rcvr_datablock(buff, 512)) break;
buff += 512;
1fb8: c0 50 subi r28, 0x00 ; 0
1fba: de 4f sbci r29, 0xFE ; 254
1fbc: f4 cf rjmp .-24 ; 0x1fa6 <disk_read+0x6e>
} while (--count);
send_cmd(CMD12, 0); /* STOP_TRANSMISSION */
1fbe: 40 e0 ldi r20, 0x00 ; 0
1fc0: 50 e0 ldi r21, 0x00 ; 0
1fc2: 60 e0 ldi r22, 0x00 ; 0
1fc4: 70 e0 ldi r23, 0x00 ; 0
1fc6: 8c e4 ldi r24, 0x4C ; 76
1fc8: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
}
}
 
DESELECT(); /* CS = H */
1fcc: 2a 9a sbi 0x05, 2 ; 5
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
1fce: 8f ef ldi r24, 0xFF ; 255
1fd0: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
1fd2: 0d b4 in r0, 0x2d ; 45
1fd4: 07 fe sbrs r0, 7
1fd6: fd cf rjmp .-6 ; 0x1fd2 <disk_read+0x9a>
return SPDR;
1fd8: 8e b5 in r24, 0x2e ; 46
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
1fda: 20 e0 ldi r18, 0x00 ; 0
1fdc: 30 e0 ldi r19, 0x00 ; 0
1fde: 00 23 and r16, r16
1fe0: 29 f0 breq .+10 ; 0x1fec <disk_read+0xb4>
1fe2: 21 e0 ldi r18, 0x01 ; 1
1fe4: 30 e0 ldi r19, 0x00 ; 0
1fe6: 02 c0 rjmp .+4 ; 0x1fec <disk_read+0xb4>
1fe8: 24 e0 ldi r18, 0x04 ; 4
1fea: 30 e0 ldi r19, 0x00 ; 0
}
1fec: c9 01 movw r24, r18
1fee: df 91 pop r29
1ff0: cf 91 pop r28
1ff2: 0f 91 pop r16
1ff4: 08 95 ret
 
00001ff6 <disk_write>:
BYTE drv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
1ff6: cf 92 push r12
1ff8: df 92 push r13
1ffa: ef 92 push r14
1ffc: ff 92 push r15
1ffe: 0f 93 push r16
2000: cf 93 push r28
2002: df 93 push r29
2004: eb 01 movw r28, r22
2006: 69 01 movw r12, r18
2008: 7a 01 movw r14, r20
if (drv || !count) return RES_PARERR;
200a: 88 23 and r24, r24
200c: 09 f0 breq .+2 ; 0x2010 <disk_write+0x1a>
200e: 64 c0 rjmp .+200 ; 0x20d8 <disk_write+0xe2>
2010: 00 23 and r16, r16
2012: 09 f4 brne .+2 ; 0x2016 <disk_write+0x20>
2014: 61 c0 rjmp .+194 ; 0x20d8 <disk_write+0xe2>
if (Stat & STA_NOINIT) return RES_NOTRDY;
2016: 80 91 0b 01 lds r24, 0x010B
201a: 80 ff sbrs r24, 0
201c: 03 c0 rjmp .+6 ; 0x2024 <disk_write+0x2e>
201e: 23 e0 ldi r18, 0x03 ; 3
2020: 30 e0 ldi r19, 0x00 ; 0
2022: 5c c0 rjmp .+184 ; 0x20dc <disk_write+0xe6>
if (Stat & STA_PROTECT) return RES_WRPRT;
2024: 80 91 0b 01 lds r24, 0x010B
2028: 82 ff sbrs r24, 2
202a: 03 c0 rjmp .+6 ; 0x2032 <disk_write+0x3c>
202c: 22 e0 ldi r18, 0x02 ; 2
202e: 30 e0 ldi r19, 0x00 ; 0
2030: 55 c0 rjmp .+170 ; 0x20dc <disk_write+0xe6>
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
2032: 80 91 17 01 lds r24, 0x0117
2036: 82 fd sbrc r24, 2
2038: 07 c0 rjmp .+14 ; 0x2048 <disk_write+0x52>
203a: 79 e0 ldi r23, 0x09 ; 9
203c: cc 0c add r12, r12
203e: dd 1c adc r13, r13
2040: ee 1c adc r14, r14
2042: ff 1c adc r15, r15
2044: 7a 95 dec r23
2046: d1 f7 brne .-12 ; 0x203c <disk_write+0x46>
 
SELECT(); /* CS = L */
2048: 2a 98 cbi 0x05, 2 ; 5
 
if (count == 1) { /* Single block write */
204a: 01 30 cpi r16, 0x01 ; 1
204c: 69 f4 brne .+26 ; 0x2068 <disk_write+0x72>
if ((send_cmd(CMD24, sector) == 0) /* WRITE_BLOCK */
204e: b7 01 movw r22, r14
2050: a6 01 movw r20, r12
2052: 88 e5 ldi r24, 0x58 ; 88
2054: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
2058: 88 23 and r24, r24
205a: 81 f5 brne .+96 ; 0x20bc <disk_write+0xc6>
205c: 6e ef ldi r22, 0xFE ; 254
205e: ce 01 movw r24, r28
2060: 0e 94 18 0e call 0x1c30 ; 0x1c30 <xmit_datablock>
2064: 00 e0 ldi r16, 0x00 ; 0
2066: 27 c0 rjmp .+78 ; 0x20b6 <disk_write+0xc0>
&& xmit_datablock(buff, 0xFE))
count = 0;
}
else { /* Multiple block write */
if (CardType & 2) {
2068: 81 ff sbrs r24, 1
206a: 0e c0 rjmp .+28 ; 0x2088 <disk_write+0x92>
send_cmd(CMD55, 0); send_cmd(CMD23, count); /* ACMD23 */
206c: 40 e0 ldi r20, 0x00 ; 0
206e: 50 e0 ldi r21, 0x00 ; 0
2070: 60 e0 ldi r22, 0x00 ; 0
2072: 70 e0 ldi r23, 0x00 ; 0
2074: 87 e7 ldi r24, 0x77 ; 119
2076: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
207a: 40 2f mov r20, r16
207c: 50 e0 ldi r21, 0x00 ; 0
207e: 60 e0 ldi r22, 0x00 ; 0
2080: 70 e0 ldi r23, 0x00 ; 0
2082: 87 e5 ldi r24, 0x57 ; 87
2084: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
}
if (send_cmd(CMD25, sector) == 0) { /* WRITE_MULTIPLE_BLOCK */
2088: b7 01 movw r22, r14
208a: a6 01 movw r20, r12
208c: 89 e5 ldi r24, 0x59 ; 89
208e: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
2092: 88 23 and r24, r24
2094: 99 f4 brne .+38 ; 0x20bc <disk_write+0xc6>
do {
if (!xmit_datablock(buff, 0xFC)) break;
2096: 6c ef ldi r22, 0xFC ; 252
2098: ce 01 movw r24, r28
209a: 0e 94 18 0e call 0x1c30 ; 0x1c30 <xmit_datablock>
209e: 88 23 and r24, r24
20a0: 29 f0 breq .+10 ; 0x20ac <disk_write+0xb6>
buff += 512;
} while (--count);
20a2: 01 50 subi r16, 0x01 ; 1
20a4: 19 f0 breq .+6 ; 0x20ac <disk_write+0xb6>
send_cmd(CMD55, 0); send_cmd(CMD23, count); /* ACMD23 */
}
if (send_cmd(CMD25, sector) == 0) { /* WRITE_MULTIPLE_BLOCK */
do {
if (!xmit_datablock(buff, 0xFC)) break;
buff += 512;
20a6: c0 50 subi r28, 0x00 ; 0
20a8: de 4f sbci r29, 0xFE ; 254
20aa: f5 cf rjmp .-22 ; 0x2096 <disk_write+0xa0>
} while (--count);
if (!xmit_datablock(0, 0xFD)) /* STOP_TRAN token */
20ac: 6d ef ldi r22, 0xFD ; 253
20ae: 80 e0 ldi r24, 0x00 ; 0
20b0: 90 e0 ldi r25, 0x00 ; 0
20b2: 0e 94 18 0e call 0x1c30 ; 0x1c30 <xmit_datablock>
20b6: 88 23 and r24, r24
20b8: 09 f4 brne .+2 ; 0x20bc <disk_write+0xc6>
20ba: 01 e0 ldi r16, 0x01 ; 1
count = 1;
}
}
 
DESELECT(); /* CS = H */
20bc: 2a 9a sbi 0x05, 2 ; 5
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
20be: 8f ef ldi r24, 0xFF ; 255
20c0: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
20c2: 0d b4 in r0, 0x2d ; 45
20c4: 07 fe sbrs r0, 7
20c6: fd cf rjmp .-6 ; 0x20c2 <disk_write+0xcc>
return SPDR;
20c8: 8e b5 in r24, 0x2e ; 46
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
20ca: 20 e0 ldi r18, 0x00 ; 0
20cc: 30 e0 ldi r19, 0x00 ; 0
20ce: 00 23 and r16, r16
20d0: 29 f0 breq .+10 ; 0x20dc <disk_write+0xe6>
20d2: 21 e0 ldi r18, 0x01 ; 1
20d4: 30 e0 ldi r19, 0x00 ; 0
20d6: 02 c0 rjmp .+4 ; 0x20dc <disk_write+0xe6>
20d8: 24 e0 ldi r18, 0x04 ; 4
20da: 30 e0 ldi r19, 0x00 ; 0
}
20dc: c9 01 movw r24, r18
20de: df 91 pop r29
20e0: cf 91 pop r28
20e2: 0f 91 pop r16
20e4: ff 90 pop r15
20e6: ef 90 pop r14
20e8: df 90 pop r13
20ea: cf 90 pop r12
20ec: 08 95 ret
 
000020ee <disk_ioctl>:
DRESULT disk_ioctl (
BYTE drv, /* Physical drive nmuber (0) */
BYTE ctrl, /* Control code */
void *buff /* Buffer to send/receive data block */
)
{
20ee: a0 e1 ldi r26, 0x10 ; 16
20f0: b0 e0 ldi r27, 0x00 ; 0
20f2: ed e7 ldi r30, 0x7D ; 125
20f4: f0 e1 ldi r31, 0x10 ; 16
20f6: 0c 94 d5 14 jmp 0x29aa ; 0x29aa <__prologue_saves__+0x1c>
20fa: 8a 01 movw r16, r20
DRESULT res;
BYTE n, csd[16], *ptr = buff;
WORD csize;
 
 
if (drv) return RES_PARERR;
20fc: 88 23 and r24, r24
20fe: 19 f0 breq .+6 ; 0x2106 <disk_ioctl+0x18>
2100: 24 e0 ldi r18, 0x04 ; 4
2102: 30 e0 ldi r19, 0x00 ; 0
2104: e7 c0 rjmp .+462 ; 0x22d4 <disk_ioctl+0x1e6>
 
SELECT(); /* CS = L */
2106: 2a 98 cbi 0x05, 2 ; 5
 
res = RES_ERROR;
switch (ctrl) {
2108: 63 30 cpi r22, 0x03 ; 3
210a: 09 f4 brne .+2 ; 0x210e <disk_ioctl+0x20>
210c: 7f c0 rjmp .+254 ; 0x220c <disk_ioctl+0x11e>
210e: 64 30 cpi r22, 0x04 ; 4
2110: 28 f4 brcc .+10 ; 0x211c <disk_ioctl+0x2e>
2112: 61 30 cpi r22, 0x01 ; 1
2114: 79 f0 breq .+30 ; 0x2134 <disk_ioctl+0x46>
2116: 62 30 cpi r22, 0x02 ; 2
2118: 51 f4 brne .+20 ; 0x212e <disk_ioctl+0x40>
211a: 72 c0 rjmp .+228 ; 0x2200 <disk_ioctl+0x112>
211c: 6b 30 cpi r22, 0x0B ; 11
211e: 09 f4 brne .+2 ; 0x2122 <disk_ioctl+0x34>
2120: 96 c0 rjmp .+300 ; 0x224e <disk_ioctl+0x160>
2122: 6c 30 cpi r22, 0x0C ; 12
2124: 09 f4 brne .+2 ; 0x2128 <disk_ioctl+0x3a>
2126: aa c0 rjmp .+340 ; 0x227c <disk_ioctl+0x18e>
2128: 6a 30 cpi r22, 0x0A ; 10
212a: 09 f4 brne .+2 ; 0x212e <disk_ioctl+0x40>
212c: 86 c0 rjmp .+268 ; 0x223a <disk_ioctl+0x14c>
212e: 24 e0 ldi r18, 0x04 ; 4
2130: 30 e0 ldi r19, 0x00 ; 0
2132: c6 c0 rjmp .+396 ; 0x22c0 <disk_ioctl+0x1d2>
case GET_SECTOR_COUNT : /* Get number of sectors on the disk (DWORD) */
if ((send_cmd(CMD9, 0) == 0) && rcvr_datablock(csd, 16)) {
2134: 40 e0 ldi r20, 0x00 ; 0
2136: 50 e0 ldi r21, 0x00 ; 0
2138: 60 e0 ldi r22, 0x00 ; 0
213a: 70 e0 ldi r23, 0x00 ; 0
213c: 89 e4 ldi r24, 0x49 ; 73
213e: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
2142: 88 23 and r24, r24
2144: 09 f0 breq .+2 ; 0x2148 <disk_ioctl+0x5a>
2146: b7 c0 rjmp .+366 ; 0x22b6 <disk_ioctl+0x1c8>
2148: 60 e1 ldi r22, 0x10 ; 16
214a: 70 e0 ldi r23, 0x00 ; 0
214c: ce 01 movw r24, r28
214e: 01 96 adiw r24, 0x01 ; 1
2150: 0e 94 e3 0d call 0x1bc6 ; 0x1bc6 <rcvr_datablock>
2154: 88 23 and r24, r24
2156: 09 f4 brne .+2 ; 0x215a <disk_ioctl+0x6c>
2158: ae c0 rjmp .+348 ; 0x22b6 <disk_ioctl+0x1c8>
if ((csd[0] >> 6) == 1) { /* SDC ver 2.00 */
215a: 89 81 ldd r24, Y+1 ; 0x01
215c: 82 95 swap r24
215e: 86 95 lsr r24
2160: 86 95 lsr r24
2162: 83 70 andi r24, 0x03 ; 3
2164: 7a 85 ldd r23, Y+10 ; 0x0a
2166: 49 85 ldd r20, Y+9 ; 0x09
2168: 81 30 cpi r24, 0x01 ; 1
216a: b1 f4 brne .+44 ; 0x2198 <disk_ioctl+0xaa>
csize = csd[9] + ((WORD)csd[8] << 8) + 1;
*(DWORD*)buff = (DWORD)csize << 10;
216c: 87 2f mov r24, r23
216e: 90 e0 ldi r25, 0x00 ; 0
2170: 01 96 adiw r24, 0x01 ; 1
2172: 34 2f mov r19, r20
2174: 20 e0 ldi r18, 0x00 ; 0
2176: 82 0f add r24, r18
2178: 93 1f adc r25, r19
217a: a0 e0 ldi r26, 0x00 ; 0
217c: b0 e0 ldi r27, 0x00 ; 0
217e: 2a e0 ldi r18, 0x0A ; 10
2180: 88 0f add r24, r24
2182: 99 1f adc r25, r25
2184: aa 1f adc r26, r26
2186: bb 1f adc r27, r27
2188: 2a 95 dec r18
218a: d1 f7 brne .-12 ; 0x2180 <disk_ioctl+0x92>
218c: f8 01 movw r30, r16
218e: 80 83 st Z, r24
2190: 91 83 std Z+1, r25 ; 0x01
2192: a2 83 std Z+2, r26 ; 0x02
2194: b3 83 std Z+3, r27 ; 0x03
2196: 92 c0 rjmp .+292 ; 0x22bc <disk_ioctl+0x1ce>
} else { /* MMC or SDC ver 1.XX */
n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2;
csize = (csd[8] >> 6) + ((WORD)csd[7] << 2) + ((WORD)(csd[6] & 3) << 10) + 1;
*(DWORD*)buff = (DWORD)csize << (n - 9);
2198: 42 95 swap r20
219a: 46 95 lsr r20
219c: 46 95 lsr r20
219e: 43 70 andi r20, 0x03 ; 3
21a0: 28 85 ldd r18, Y+8 ; 0x08
21a2: 30 e0 ldi r19, 0x00 ; 0
21a4: 22 0f add r18, r18
21a6: 33 1f adc r19, r19
21a8: 22 0f add r18, r18
21aa: 33 1f adc r19, r19
21ac: 24 0f add r18, r20
21ae: 31 1d adc r19, r1
21b0: 2f 5f subi r18, 0xFF ; 255
21b2: 3f 4f sbci r19, 0xFF ; 255
21b4: 8f 81 ldd r24, Y+7 ; 0x07
21b6: 90 e0 ldi r25, 0x00 ; 0
21b8: 83 70 andi r24, 0x03 ; 3
21ba: 90 70 andi r25, 0x00 ; 0
21bc: 98 2f mov r25, r24
21be: 88 27 eor r24, r24
21c0: 99 0f add r25, r25
21c2: 99 0f add r25, r25
21c4: 28 0f add r18, r24
21c6: 39 1f adc r19, r25
21c8: 40 e0 ldi r20, 0x00 ; 0
21ca: 50 e0 ldi r21, 0x00 ; 0
21cc: 8e 81 ldd r24, Y+6 ; 0x06
21ce: 8f 70 andi r24, 0x0F ; 15
21d0: 6b 85 ldd r22, Y+11 ; 0x0b
21d2: 66 1f adc r22, r22
21d4: 66 27 eor r22, r22
21d6: 66 1f adc r22, r22
21d8: 86 0f add r24, r22
21da: 8e 5f subi r24, 0xFE ; 254
21dc: 73 70 andi r23, 0x03 ; 3
21de: 77 0f add r23, r23
21e0: 87 0f add r24, r23
21e2: 90 e0 ldi r25, 0x00 ; 0
21e4: 09 97 sbiw r24, 0x09 ; 9
21e6: 04 c0 rjmp .+8 ; 0x21f0 <disk_ioctl+0x102>
21e8: 22 0f add r18, r18
21ea: 33 1f adc r19, r19
21ec: 44 1f adc r20, r20
21ee: 55 1f adc r21, r21
21f0: 8a 95 dec r24
21f2: d2 f7 brpl .-12 ; 0x21e8 <disk_ioctl+0xfa>
21f4: f8 01 movw r30, r16
21f6: 20 83 st Z, r18
21f8: 31 83 std Z+1, r19 ; 0x01
21fa: 42 83 std Z+2, r20 ; 0x02
21fc: 53 83 std Z+3, r21 ; 0x03
21fe: 5e c0 rjmp .+188 ; 0x22bc <disk_ioctl+0x1ce>
res = RES_OK;
}
break;
 
case GET_SECTOR_SIZE : /* Get sectors on the disk (WORD) */
*(WORD*)buff = 512;
2200: 80 e0 ldi r24, 0x00 ; 0
2202: 92 e0 ldi r25, 0x02 ; 2
2204: fa 01 movw r30, r20
2206: 91 83 std Z+1, r25 ; 0x01
2208: 80 83 st Z, r24
220a: 58 c0 rjmp .+176 ; 0x22bc <disk_ioctl+0x1ce>
BYTE wait_ready (void)
{
BYTE res;
 
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
220c: 82 e3 ldi r24, 0x32 ; 50
220e: 80 93 16 01 sts 0x0116, r24
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
2212: 8f ef ldi r24, 0xFF ; 255
2214: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
2216: 0d b4 in r0, 0x2d ; 45
2218: 07 fe sbrs r0, 7
221a: fd cf rjmp .-6 ; 0x2216 <disk_ioctl+0x128>
return SPDR;
221c: 8e b5 in r24, 0x2e ; 46
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
221e: 9f ef ldi r25, 0xFF ; 255
2220: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
2222: 0d b4 in r0, 0x2d ; 45
2224: 07 fe sbrs r0, 7
2226: fd cf rjmp .-6 ; 0x2222 <disk_ioctl+0x134>
return SPDR;
2228: 8e b5 in r24, 0x2e ; 46
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
rcvr_spi();
do
res = rcvr_spi();
while ((res != 0xFF) && Timer2);
222a: 8f 3f cpi r24, 0xFF ; 255
222c: 09 f4 brne .+2 ; 0x2230 <disk_ioctl+0x142>
222e: 46 c0 rjmp .+140 ; 0x22bc <disk_ioctl+0x1ce>
2230: 80 91 16 01 lds r24, 0x0116
2234: 88 23 and r24, r24
2236: a1 f7 brne .-24 ; 0x2220 <disk_ioctl+0x132>
2238: 3e c0 rjmp .+124 ; 0x22b6 <disk_ioctl+0x1c8>
if (wait_ready() == 0xFF)
res = RES_OK;
break;
 
case MMC_GET_CSD : /* Receive CSD as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
223a: 80 91 0b 01 lds r24, 0x010B
223e: 80 fd sbrc r24, 0
2240: 47 c0 rjmp .+142 ; 0x22d0 <disk_ioctl+0x1e2>
if ((send_cmd(CMD9, 0) == 0) /* READ_CSD */
2242: 40 e0 ldi r20, 0x00 ; 0
2244: 50 e0 ldi r21, 0x00 ; 0
2246: 60 e0 ldi r22, 0x00 ; 0
2248: 70 e0 ldi r23, 0x00 ; 0
224a: 89 e4 ldi r24, 0x49 ; 73
224c: 09 c0 rjmp .+18 ; 0x2260 <disk_ioctl+0x172>
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_CID : /* Receive CID as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
224e: 80 91 0b 01 lds r24, 0x010B
2252: 80 fd sbrc r24, 0
2254: 3d c0 rjmp .+122 ; 0x22d0 <disk_ioctl+0x1e2>
if ((send_cmd(CMD10, 0) == 0) /* READ_CID */
2256: 40 e0 ldi r20, 0x00 ; 0
2258: 50 e0 ldi r21, 0x00 ; 0
225a: 60 e0 ldi r22, 0x00 ; 0
225c: 70 e0 ldi r23, 0x00 ; 0
225e: 8a e4 ldi r24, 0x4A ; 74
2260: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
2264: 88 23 and r24, r24
2266: 39 f5 brne .+78 ; 0x22b6 <disk_ioctl+0x1c8>
2268: 60 e1 ldi r22, 0x10 ; 16
226a: 70 e0 ldi r23, 0x00 ; 0
226c: c8 01 movw r24, r16
226e: 0e 94 e3 0d call 0x1bc6 ; 0x1bc6 <rcvr_datablock>
2272: 20 e0 ldi r18, 0x00 ; 0
2274: 30 e0 ldi r19, 0x00 ; 0
2276: 88 23 and r24, r24
2278: 19 f5 brne .+70 ; 0x22c0 <disk_ioctl+0x1d2>
227a: 1d c0 rjmp .+58 ; 0x22b6 <disk_ioctl+0x1c8>
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
227c: 80 91 0b 01 lds r24, 0x010B
2280: 80 fd sbrc r24, 0
2282: 26 c0 rjmp .+76 ; 0x22d0 <disk_ioctl+0x1e2>
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
2284: 40 e0 ldi r20, 0x00 ; 0
2286: 50 e0 ldi r21, 0x00 ; 0
2288: 60 e0 ldi r22, 0x00 ; 0
228a: 70 e0 ldi r23, 0x00 ; 0
228c: 8a e7 ldi r24, 0x7A ; 122
228e: 0e 94 60 0e call 0x1cc0 ; 0x1cc0 <send_cmd>
2292: 88 23 and r24, r24
2294: 81 f4 brne .+32 ; 0x22b6 <disk_ioctl+0x1c8>
2296: f8 01 movw r30, r16
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
2298: 9f ef ldi r25, 0xFF ; 255
break;
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
for (n = 0; n < 4; n++)
229a: 98 01 movw r18, r16
229c: 2d 5f subi r18, 0xFD ; 253
229e: 3f 4f sbci r19, 0xFF ; 255
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
22a0: 9e bd out 0x2e, r25 ; 46
loop_until_bit_is_set(SPSR, SPIF);
22a2: 0d b4 in r0, 0x2d ; 45
22a4: 07 fe sbrs r0, 7
22a6: fd cf rjmp .-6 ; 0x22a2 <disk_ioctl+0x1b4>
return SPDR;
22a8: 8e b5 in r24, 0x2e ; 46
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
for (n = 0; n < 4; n++)
*ptr++ = rcvr_spi();
22aa: 80 83 st Z, r24
break;
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
for (n = 0; n < 4; n++)
22ac: e2 17 cp r30, r18
22ae: f3 07 cpc r31, r19
22b0: 29 f0 breq .+10 ; 0x22bc <disk_ioctl+0x1ce>
*ptr++ = rcvr_spi();
22b2: 31 96 adiw r30, 0x01 ; 1
22b4: f5 cf rjmp .-22 ; 0x22a0 <disk_ioctl+0x1b2>
22b6: 21 e0 ldi r18, 0x01 ; 1
22b8: 30 e0 ldi r19, 0x00 ; 0
22ba: 02 c0 rjmp .+4 ; 0x22c0 <disk_ioctl+0x1d2>
22bc: 20 e0 ldi r18, 0x00 ; 0
22be: 30 e0 ldi r19, 0x00 ; 0
 
default:
res = RES_PARERR;
}
 
DESELECT(); /* CS = H */
22c0: 2a 9a sbi 0x05, 2 ; 5
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
22c2: 8f ef ldi r24, 0xFF ; 255
22c4: 8e bd out 0x2e, r24 ; 46
loop_until_bit_is_set(SPSR, SPIF);
22c6: 0d b4 in r0, 0x2d ; 45
22c8: 07 fe sbrs r0, 7
22ca: fd cf rjmp .-6 ; 0x22c6 <disk_ioctl+0x1d8>
return SPDR;
22cc: 8e b5 in r24, 0x2e ; 46
22ce: 02 c0 rjmp .+4 ; 0x22d4 <disk_ioctl+0x1e6>
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return res;
22d0: 23 e0 ldi r18, 0x03 ; 3
22d2: 30 e0 ldi r19, 0x00 ; 0
}
22d4: c9 01 movw r24, r18
22d6: 60 96 adiw r28, 0x10 ; 16
22d8: e4 e0 ldi r30, 0x04 ; 4
22da: 0c 94 f1 14 jmp 0x29e2 ; 0x29e2 <__epilogue_restores__+0x1c>
 
000022de <disk_timerproc>:
/* Device timer interrupt procedure */
/* This must be called in period of 10ms */
/* (Platform dependent) */
 
void disk_timerproc (void)
{
22de: 80 91 15 01 lds r24, 0x0115
static BYTE pv;
BYTE n, s;
 
 
n = Timer1; /* 100Hz decrement timer */
if (n) Timer1 = --n;
22e2: 88 23 and r24, r24
22e4: 19 f0 breq .+6 ; 0x22ec <disk_timerproc+0xe>
22e6: 81 50 subi r24, 0x01 ; 1
22e8: 80 93 15 01 sts 0x0115, r24
n = Timer2;
22ec: 80 91 16 01 lds r24, 0x0116
if (n) Timer2 = --n;
22f0: 88 23 and r24, r24
22f2: 19 f0 breq .+6 ; 0x22fa <disk_timerproc+0x1c>
22f4: 81 50 subi r24, 0x01 ; 1
22f6: 80 93 16 01 sts 0x0116, r24
 
n = pv;
22fa: 90 91 14 01 lds r25, 0x0114
pv = SOCKPORT & (SOCKINS); /* Sample socket switch */
22fe: 83 b1 in r24, 0x03 ; 3
2300: 81 70 andi r24, 0x01 ; 1
2302: 80 93 14 01 sts 0x0114, r24
 
if (n == pv) { /* Have contacts stabled? */
2306: 98 17 cp r25, r24
2308: 49 f4 brne .+18 ; 0x231c <disk_timerproc+0x3e>
s = Stat;
230a: 80 91 0b 01 lds r24, 0x010B
if (pv & SOCKINS) /* INS = H (Socket empty) */
230e: 90 ff sbrs r25, 0
2310: 02 c0 rjmp .+4 ; 0x2316 <disk_timerproc+0x38>
s |= (STA_NODISK | STA_NOINIT);
2312: 83 60 ori r24, 0x03 ; 3
2314: 01 c0 rjmp .+2 ; 0x2318 <disk_timerproc+0x3a>
else /* INS = L (Card inserted) */
s &= ~STA_NODISK;
2316: 8d 7f andi r24, 0xFD ; 253
 
Stat = s;
2318: 80 93 0b 01 sts 0x010B, r24
231c: 08 95 ret
 
0000231e <strcpy_P>:
231e: fb 01 movw r30, r22
2320: dc 01 movw r26, r24
2322: 05 90 lpm r0, Z+
2324: 0d 92 st X+, r0
2326: 00 20 and r0, r0
2328: e1 f7 brne .-8 ; 0x2322 <strcpy_P+0x4>
232a: 08 95 ret
 
0000232c <memcmp>:
232c: fb 01 movw r30, r22
232e: dc 01 movw r26, r24
2330: 04 c0 rjmp .+8 ; 0x233a <memcmp+0xe>
2332: 8d 91 ld r24, X+
2334: 01 90 ld r0, Z+
2336: 80 19 sub r24, r0
2338: 21 f4 brne .+8 ; 0x2342 <memcmp+0x16>
233a: 41 50 subi r20, 0x01 ; 1
233c: 50 40 sbci r21, 0x00 ; 0
233e: c8 f7 brcc .-14 ; 0x2332 <memcmp+0x6>
2340: 88 1b sub r24, r24
2342: 99 0b sbc r25, r25
2344: 08 95 ret
 
00002346 <memcpy>:
2346: fb 01 movw r30, r22
2348: dc 01 movw r26, r24
234a: 02 c0 rjmp .+4 ; 0x2350 <memcpy+0xa>
234c: 01 90 ld r0, Z+
234e: 0d 92 st X+, r0
2350: 41 50 subi r20, 0x01 ; 1
2352: 50 40 sbci r21, 0x00 ; 0
2354: d8 f7 brcc .-10 ; 0x234c <memcpy+0x6>
2356: 08 95 ret
 
00002358 <memset>:
2358: dc 01 movw r26, r24
235a: 01 c0 rjmp .+2 ; 0x235e <memset+0x6>
235c: 6d 93 st X+, r22
235e: 41 50 subi r20, 0x01 ; 1
2360: 50 40 sbci r21, 0x00 ; 0
2362: e0 f7 brcc .-8 ; 0x235c <memset+0x4>
2364: 08 95 ret
 
00002366 <itoa>:
2366: fb 01 movw r30, r22
2368: 9f 01 movw r18, r30
236a: e8 94 clt
236c: 42 30 cpi r20, 0x02 ; 2
236e: c4 f0 brlt .+48 ; 0x23a0 <itoa+0x3a>
2370: 45 32 cpi r20, 0x25 ; 37
2372: b4 f4 brge .+44 ; 0x23a0 <itoa+0x3a>
2374: 4a 30 cpi r20, 0x0A ; 10
2376: 29 f4 brne .+10 ; 0x2382 <itoa+0x1c>
2378: 97 fb bst r25, 7
237a: 1e f4 brtc .+6 ; 0x2382 <itoa+0x1c>
237c: 90 95 com r25
237e: 81 95 neg r24
2380: 9f 4f sbci r25, 0xFF ; 255
2382: 64 2f mov r22, r20
2384: 77 27 eor r23, r23
2386: 0e 94 fe 14 call 0x29fc ; 0x29fc <__udivmodhi4>
238a: 80 5d subi r24, 0xD0 ; 208
238c: 8a 33 cpi r24, 0x3A ; 58
238e: 0c f0 brlt .+2 ; 0x2392 <itoa+0x2c>
2390: 89 5d subi r24, 0xD9 ; 217
2392: 81 93 st Z+, r24
2394: cb 01 movw r24, r22
2396: 00 97 sbiw r24, 0x00 ; 0
2398: a1 f7 brne .-24 ; 0x2382 <itoa+0x1c>
239a: 16 f4 brtc .+4 ; 0x23a0 <itoa+0x3a>
239c: 5d e2 ldi r21, 0x2D ; 45
239e: 51 93 st Z+, r21
23a0: 10 82 st Z, r1
23a2: c9 01 movw r24, r18
23a4: 0c 94 ec 13 jmp 0x27d8 ; 0x27d8 <strrev>
 
000023a8 <sprintf>:
23a8: ae e0 ldi r26, 0x0E ; 14
23aa: b0 e0 ldi r27, 0x00 ; 0
23ac: ea ed ldi r30, 0xDA ; 218
23ae: f1 e1 ldi r31, 0x11 ; 17
23b0: 0c 94 d5 14 jmp 0x29aa ; 0x29aa <__prologue_saves__+0x1c>
23b4: 0d 89 ldd r16, Y+21 ; 0x15
23b6: 1e 89 ldd r17, Y+22 ; 0x16
23b8: 86 e0 ldi r24, 0x06 ; 6
23ba: 8c 83 std Y+4, r24 ; 0x04
23bc: 1a 83 std Y+2, r17 ; 0x02
23be: 09 83 std Y+1, r16 ; 0x01
23c0: 8f ef ldi r24, 0xFF ; 255
23c2: 9f e7 ldi r25, 0x7F ; 127
23c4: 9e 83 std Y+6, r25 ; 0x06
23c6: 8d 83 std Y+5, r24 ; 0x05
23c8: ce 01 movw r24, r28
23ca: 49 96 adiw r24, 0x19 ; 25
23cc: ac 01 movw r20, r24
23ce: 6f 89 ldd r22, Y+23 ; 0x17
23d0: 78 8d ldd r23, Y+24 ; 0x18
23d2: ce 01 movw r24, r28
23d4: 01 96 adiw r24, 0x01 ; 1
23d6: 0e 94 f7 11 call 0x23ee ; 0x23ee <vfprintf>
23da: 2f 81 ldd r18, Y+7 ; 0x07
23dc: 38 85 ldd r19, Y+8 ; 0x08
23de: 02 0f add r16, r18
23e0: 13 1f adc r17, r19
23e2: f8 01 movw r30, r16
23e4: 10 82 st Z, r1
23e6: 2e 96 adiw r28, 0x0e ; 14
23e8: e4 e0 ldi r30, 0x04 ; 4
23ea: 0c 94 f1 14 jmp 0x29e2 ; 0x29e2 <__epilogue_restores__+0x1c>
 
000023ee <vfprintf>:
23ee: ab e0 ldi r26, 0x0B ; 11
23f0: b0 e0 ldi r27, 0x00 ; 0
23f2: ed ef ldi r30, 0xFD ; 253
23f4: f1 e1 ldi r31, 0x11 ; 17
23f6: 0c 94 c7 14 jmp 0x298e ; 0x298e <__prologue_saves__>
23fa: 3c 01 movw r6, r24
23fc: 2b 01 movw r4, r22
23fe: 5a 01 movw r10, r20
2400: fc 01 movw r30, r24
2402: 17 82 std Z+7, r1 ; 0x07
2404: 16 82 std Z+6, r1 ; 0x06
2406: 83 81 ldd r24, Z+3 ; 0x03
2408: 81 fd sbrc r24, 1
240a: 03 c0 rjmp .+6 ; 0x2412 <vfprintf+0x24>
240c: 6f ef ldi r22, 0xFF ; 255
240e: 7f ef ldi r23, 0xFF ; 255
2410: c8 c1 rjmp .+912 ; 0x27a2 <vfprintf+0x3b4>
2412: 9a e0 ldi r25, 0x0A ; 10
2414: 89 2e mov r8, r25
2416: 1e 01 movw r2, r28
2418: 08 94 sec
241a: 21 1c adc r2, r1
241c: 31 1c adc r3, r1
241e: f3 01 movw r30, r6
2420: 23 81 ldd r18, Z+3 ; 0x03
2422: f2 01 movw r30, r4
2424: 23 fd sbrc r18, 3
2426: 85 91 lpm r24, Z+
2428: 23 ff sbrs r18, 3
242a: 81 91 ld r24, Z+
242c: 2f 01 movw r4, r30
242e: 88 23 and r24, r24
2430: 09 f4 brne .+2 ; 0x2434 <vfprintf+0x46>
2432: b4 c1 rjmp .+872 ; 0x279c <vfprintf+0x3ae>
2434: 85 32 cpi r24, 0x25 ; 37
2436: 39 f4 brne .+14 ; 0x2446 <vfprintf+0x58>
2438: 23 fd sbrc r18, 3
243a: 85 91 lpm r24, Z+
243c: 23 ff sbrs r18, 3
243e: 81 91 ld r24, Z+
2440: 2f 01 movw r4, r30
2442: 85 32 cpi r24, 0x25 ; 37
2444: 29 f4 brne .+10 ; 0x2450 <vfprintf+0x62>
2446: b3 01 movw r22, r6
2448: 90 e0 ldi r25, 0x00 ; 0
244a: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
244e: e7 cf rjmp .-50 ; 0x241e <vfprintf+0x30>
2450: 98 2f mov r25, r24
2452: dd 24 eor r13, r13
2454: cc 24 eor r12, r12
2456: 99 24 eor r9, r9
2458: ff e1 ldi r31, 0x1F ; 31
245a: fd 15 cp r31, r13
245c: d0 f0 brcs .+52 ; 0x2492 <vfprintf+0xa4>
245e: 9b 32 cpi r25, 0x2B ; 43
2460: 69 f0 breq .+26 ; 0x247c <vfprintf+0x8e>
2462: 9c 32 cpi r25, 0x2C ; 44
2464: 28 f4 brcc .+10 ; 0x2470 <vfprintf+0x82>
2466: 90 32 cpi r25, 0x20 ; 32
2468: 59 f0 breq .+22 ; 0x2480 <vfprintf+0x92>
246a: 93 32 cpi r25, 0x23 ; 35
246c: 91 f4 brne .+36 ; 0x2492 <vfprintf+0xa4>
246e: 0e c0 rjmp .+28 ; 0x248c <vfprintf+0x9e>
2470: 9d 32 cpi r25, 0x2D ; 45
2472: 49 f0 breq .+18 ; 0x2486 <vfprintf+0x98>
2474: 90 33 cpi r25, 0x30 ; 48
2476: 69 f4 brne .+26 ; 0x2492 <vfprintf+0xa4>
2478: 41 e0 ldi r20, 0x01 ; 1
247a: 24 c0 rjmp .+72 ; 0x24c4 <vfprintf+0xd6>
247c: 52 e0 ldi r21, 0x02 ; 2
247e: d5 2a or r13, r21
2480: 84 e0 ldi r24, 0x04 ; 4
2482: d8 2a or r13, r24
2484: 28 c0 rjmp .+80 ; 0x24d6 <vfprintf+0xe8>
2486: 98 e0 ldi r25, 0x08 ; 8
2488: d9 2a or r13, r25
248a: 25 c0 rjmp .+74 ; 0x24d6 <vfprintf+0xe8>
248c: e0 e1 ldi r30, 0x10 ; 16
248e: de 2a or r13, r30
2490: 22 c0 rjmp .+68 ; 0x24d6 <vfprintf+0xe8>
2492: d7 fc sbrc r13, 7
2494: 29 c0 rjmp .+82 ; 0x24e8 <vfprintf+0xfa>
2496: 89 2f mov r24, r25
2498: 80 53 subi r24, 0x30 ; 48
249a: 8a 30 cpi r24, 0x0A ; 10
249c: 70 f4 brcc .+28 ; 0x24ba <vfprintf+0xcc>
249e: d6 fe sbrs r13, 6
24a0: 05 c0 rjmp .+10 ; 0x24ac <vfprintf+0xbe>
24a2: 98 9c mul r9, r8
24a4: 90 2c mov r9, r0
24a6: 11 24 eor r1, r1
24a8: 98 0e add r9, r24
24aa: 15 c0 rjmp .+42 ; 0x24d6 <vfprintf+0xe8>
24ac: c8 9c mul r12, r8
24ae: c0 2c mov r12, r0
24b0: 11 24 eor r1, r1
24b2: c8 0e add r12, r24
24b4: f0 e2 ldi r31, 0x20 ; 32
24b6: df 2a or r13, r31
24b8: 0e c0 rjmp .+28 ; 0x24d6 <vfprintf+0xe8>
24ba: 9e 32 cpi r25, 0x2E ; 46
24bc: 29 f4 brne .+10 ; 0x24c8 <vfprintf+0xda>
24be: d6 fc sbrc r13, 6
24c0: 6d c1 rjmp .+730 ; 0x279c <vfprintf+0x3ae>
24c2: 40 e4 ldi r20, 0x40 ; 64
24c4: d4 2a or r13, r20
24c6: 07 c0 rjmp .+14 ; 0x24d6 <vfprintf+0xe8>
24c8: 9c 36 cpi r25, 0x6C ; 108
24ca: 19 f4 brne .+6 ; 0x24d2 <vfprintf+0xe4>
24cc: 50 e8 ldi r21, 0x80 ; 128
24ce: d5 2a or r13, r21
24d0: 02 c0 rjmp .+4 ; 0x24d6 <vfprintf+0xe8>
24d2: 98 36 cpi r25, 0x68 ; 104
24d4: 49 f4 brne .+18 ; 0x24e8 <vfprintf+0xfa>
24d6: f2 01 movw r30, r4
24d8: 23 fd sbrc r18, 3
24da: 95 91 lpm r25, Z+
24dc: 23 ff sbrs r18, 3
24de: 91 91 ld r25, Z+
24e0: 2f 01 movw r4, r30
24e2: 99 23 and r25, r25
24e4: 09 f0 breq .+2 ; 0x24e8 <vfprintf+0xfa>
24e6: b8 cf rjmp .-144 ; 0x2458 <vfprintf+0x6a>
24e8: 89 2f mov r24, r25
24ea: 85 54 subi r24, 0x45 ; 69
24ec: 83 30 cpi r24, 0x03 ; 3
24ee: 18 f0 brcs .+6 ; 0x24f6 <vfprintf+0x108>
24f0: 80 52 subi r24, 0x20 ; 32
24f2: 83 30 cpi r24, 0x03 ; 3
24f4: 38 f4 brcc .+14 ; 0x2504 <vfprintf+0x116>
24f6: 44 e0 ldi r20, 0x04 ; 4
24f8: 50 e0 ldi r21, 0x00 ; 0
24fa: a4 0e add r10, r20
24fc: b5 1e adc r11, r21
24fe: 5f e3 ldi r21, 0x3F ; 63
2500: 59 83 std Y+1, r21 ; 0x01
2502: 0f c0 rjmp .+30 ; 0x2522 <vfprintf+0x134>
2504: 93 36 cpi r25, 0x63 ; 99
2506: 31 f0 breq .+12 ; 0x2514 <vfprintf+0x126>
2508: 93 37 cpi r25, 0x73 ; 115
250a: 79 f0 breq .+30 ; 0x252a <vfprintf+0x13c>
250c: 93 35 cpi r25, 0x53 ; 83
250e: 09 f0 breq .+2 ; 0x2512 <vfprintf+0x124>
2510: 56 c0 rjmp .+172 ; 0x25be <vfprintf+0x1d0>
2512: 20 c0 rjmp .+64 ; 0x2554 <vfprintf+0x166>
2514: f5 01 movw r30, r10
2516: 80 81 ld r24, Z
2518: 89 83 std Y+1, r24 ; 0x01
251a: 42 e0 ldi r20, 0x02 ; 2
251c: 50 e0 ldi r21, 0x00 ; 0
251e: a4 0e add r10, r20
2520: b5 1e adc r11, r21
2522: 71 01 movw r14, r2
2524: 01 e0 ldi r16, 0x01 ; 1
2526: 10 e0 ldi r17, 0x00 ; 0
2528: 12 c0 rjmp .+36 ; 0x254e <vfprintf+0x160>
252a: f5 01 movw r30, r10
252c: e0 80 ld r14, Z
252e: f1 80 ldd r15, Z+1 ; 0x01
2530: d6 fc sbrc r13, 6
2532: 03 c0 rjmp .+6 ; 0x253a <vfprintf+0x14c>
2534: 6f ef ldi r22, 0xFF ; 255
2536: 7f ef ldi r23, 0xFF ; 255
2538: 02 c0 rjmp .+4 ; 0x253e <vfprintf+0x150>
253a: 69 2d mov r22, r9
253c: 70 e0 ldi r23, 0x00 ; 0
253e: 42 e0 ldi r20, 0x02 ; 2
2540: 50 e0 ldi r21, 0x00 ; 0
2542: a4 0e add r10, r20
2544: b5 1e adc r11, r21
2546: c7 01 movw r24, r14
2548: 0e 94 e1 13 call 0x27c2 ; 0x27c2 <strnlen>
254c: 8c 01 movw r16, r24
254e: 5f e7 ldi r21, 0x7F ; 127
2550: d5 22 and r13, r21
2552: 14 c0 rjmp .+40 ; 0x257c <vfprintf+0x18e>
2554: f5 01 movw r30, r10
2556: e0 80 ld r14, Z
2558: f1 80 ldd r15, Z+1 ; 0x01
255a: d6 fc sbrc r13, 6
255c: 03 c0 rjmp .+6 ; 0x2564 <vfprintf+0x176>
255e: 6f ef ldi r22, 0xFF ; 255
2560: 7f ef ldi r23, 0xFF ; 255
2562: 02 c0 rjmp .+4 ; 0x2568 <vfprintf+0x17a>
2564: 69 2d mov r22, r9
2566: 70 e0 ldi r23, 0x00 ; 0
2568: 42 e0 ldi r20, 0x02 ; 2
256a: 50 e0 ldi r21, 0x00 ; 0
256c: a4 0e add r10, r20
256e: b5 1e adc r11, r21
2570: c7 01 movw r24, r14
2572: 0e 94 d6 13 call 0x27ac ; 0x27ac <strnlen_P>
2576: 8c 01 movw r16, r24
2578: 50 e8 ldi r21, 0x80 ; 128
257a: d5 2a or r13, r21
257c: d3 fe sbrs r13, 3
257e: 07 c0 rjmp .+14 ; 0x258e <vfprintf+0x1a0>
2580: 1a c0 rjmp .+52 ; 0x25b6 <vfprintf+0x1c8>
2582: b3 01 movw r22, r6
2584: 80 e2 ldi r24, 0x20 ; 32
2586: 90 e0 ldi r25, 0x00 ; 0
2588: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
258c: ca 94 dec r12
258e: 8c 2d mov r24, r12
2590: 90 e0 ldi r25, 0x00 ; 0
2592: 08 17 cp r16, r24
2594: 19 07 cpc r17, r25
2596: a8 f3 brcs .-22 ; 0x2582 <vfprintf+0x194>
2598: 0e c0 rjmp .+28 ; 0x25b6 <vfprintf+0x1c8>
259a: f7 01 movw r30, r14
259c: d7 fc sbrc r13, 7
259e: 85 91 lpm r24, Z+
25a0: d7 fe sbrs r13, 7
25a2: 81 91 ld r24, Z+
25a4: 7f 01 movw r14, r30
25a6: b3 01 movw r22, r6
25a8: 90 e0 ldi r25, 0x00 ; 0
25aa: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
25ae: c1 10 cpse r12, r1
25b0: ca 94 dec r12
25b2: 01 50 subi r16, 0x01 ; 1
25b4: 10 40 sbci r17, 0x00 ; 0
25b6: 01 15 cp r16, r1
25b8: 11 05 cpc r17, r1
25ba: 79 f7 brne .-34 ; 0x259a <vfprintf+0x1ac>
25bc: ec c0 rjmp .+472 ; 0x2796 <vfprintf+0x3a8>
25be: 94 36 cpi r25, 0x64 ; 100
25c0: 11 f0 breq .+4 ; 0x25c6 <vfprintf+0x1d8>
25c2: 99 36 cpi r25, 0x69 ; 105
25c4: 71 f5 brne .+92 ; 0x2622 <vfprintf+0x234>
25c6: d7 fe sbrs r13, 7
25c8: 08 c0 rjmp .+16 ; 0x25da <vfprintf+0x1ec>
25ca: f5 01 movw r30, r10
25cc: e0 80 ld r14, Z
25ce: f1 80 ldd r15, Z+1 ; 0x01
25d0: 02 81 ldd r16, Z+2 ; 0x02
25d2: 13 81 ldd r17, Z+3 ; 0x03
25d4: 44 e0 ldi r20, 0x04 ; 4
25d6: 50 e0 ldi r21, 0x00 ; 0
25d8: 0a c0 rjmp .+20 ; 0x25ee <vfprintf+0x200>
25da: f5 01 movw r30, r10
25dc: 80 81 ld r24, Z
25de: 91 81 ldd r25, Z+1 ; 0x01
25e0: 7c 01 movw r14, r24
25e2: 00 27 eor r16, r16
25e4: f7 fc sbrc r15, 7
25e6: 00 95 com r16
25e8: 10 2f mov r17, r16
25ea: 42 e0 ldi r20, 0x02 ; 2
25ec: 50 e0 ldi r21, 0x00 ; 0
25ee: a4 0e add r10, r20
25f0: b5 1e adc r11, r21
25f2: 5f e6 ldi r21, 0x6F ; 111
25f4: d5 22 and r13, r21
25f6: 17 ff sbrs r17, 7
25f8: 0a c0 rjmp .+20 ; 0x260e <vfprintf+0x220>
25fa: 10 95 com r17
25fc: 00 95 com r16
25fe: f0 94 com r15
2600: e0 94 com r14
2602: e1 1c adc r14, r1
2604: f1 1c adc r15, r1
2606: 01 1d adc r16, r1
2608: 11 1d adc r17, r1
260a: 80 e8 ldi r24, 0x80 ; 128
260c: d8 2a or r13, r24
260e: 2a e0 ldi r18, 0x0A ; 10
2610: 30 e0 ldi r19, 0x00 ; 0
2612: a1 01 movw r20, r2
2614: c8 01 movw r24, r16
2616: b7 01 movw r22, r14
2618: 0e 94 28 14 call 0x2850 ; 0x2850 <__ultoa_invert>
261c: f8 2e mov r15, r24
261e: f2 18 sub r15, r2
2620: 40 c0 rjmp .+128 ; 0x26a2 <vfprintf+0x2b4>
2622: 95 37 cpi r25, 0x75 ; 117
2624: 29 f4 brne .+10 ; 0x2630 <vfprintf+0x242>
2626: 1d 2d mov r17, r13
2628: 1f 7e andi r17, 0xEF ; 239
262a: 2a e0 ldi r18, 0x0A ; 10
262c: 30 e0 ldi r19, 0x00 ; 0
262e: 1d c0 rjmp .+58 ; 0x266a <vfprintf+0x27c>
2630: 1d 2d mov r17, r13
2632: 19 7f andi r17, 0xF9 ; 249
2634: 9f 36 cpi r25, 0x6F ; 111
2636: 61 f0 breq .+24 ; 0x2650 <vfprintf+0x262>
2638: 90 37 cpi r25, 0x70 ; 112
263a: 20 f4 brcc .+8 ; 0x2644 <vfprintf+0x256>
263c: 98 35 cpi r25, 0x58 ; 88
263e: 09 f0 breq .+2 ; 0x2642 <vfprintf+0x254>
2640: ad c0 rjmp .+346 ; 0x279c <vfprintf+0x3ae>
2642: 0f c0 rjmp .+30 ; 0x2662 <vfprintf+0x274>
2644: 90 37 cpi r25, 0x70 ; 112
2646: 39 f0 breq .+14 ; 0x2656 <vfprintf+0x268>
2648: 98 37 cpi r25, 0x78 ; 120
264a: 09 f0 breq .+2 ; 0x264e <vfprintf+0x260>
264c: a7 c0 rjmp .+334 ; 0x279c <vfprintf+0x3ae>
264e: 04 c0 rjmp .+8 ; 0x2658 <vfprintf+0x26a>
2650: 28 e0 ldi r18, 0x08 ; 8
2652: 30 e0 ldi r19, 0x00 ; 0
2654: 0a c0 rjmp .+20 ; 0x266a <vfprintf+0x27c>
2656: 10 61 ori r17, 0x10 ; 16
2658: 14 fd sbrc r17, 4
265a: 14 60 ori r17, 0x04 ; 4
265c: 20 e1 ldi r18, 0x10 ; 16
265e: 30 e0 ldi r19, 0x00 ; 0
2660: 04 c0 rjmp .+8 ; 0x266a <vfprintf+0x27c>
2662: 14 fd sbrc r17, 4
2664: 16 60 ori r17, 0x06 ; 6
2666: 20 e1 ldi r18, 0x10 ; 16
2668: 32 e0 ldi r19, 0x02 ; 2
266a: 17 ff sbrs r17, 7
266c: 08 c0 rjmp .+16 ; 0x267e <vfprintf+0x290>
266e: f5 01 movw r30, r10
2670: 60 81 ld r22, Z
2672: 71 81 ldd r23, Z+1 ; 0x01
2674: 82 81 ldd r24, Z+2 ; 0x02
2676: 93 81 ldd r25, Z+3 ; 0x03
2678: 44 e0 ldi r20, 0x04 ; 4
267a: 50 e0 ldi r21, 0x00 ; 0
267c: 08 c0 rjmp .+16 ; 0x268e <vfprintf+0x2a0>
267e: f5 01 movw r30, r10
2680: 80 81 ld r24, Z
2682: 91 81 ldd r25, Z+1 ; 0x01
2684: bc 01 movw r22, r24
2686: 80 e0 ldi r24, 0x00 ; 0
2688: 90 e0 ldi r25, 0x00 ; 0
268a: 42 e0 ldi r20, 0x02 ; 2
268c: 50 e0 ldi r21, 0x00 ; 0
268e: a4 0e add r10, r20
2690: b5 1e adc r11, r21
2692: a1 01 movw r20, r2
2694: 0e 94 28 14 call 0x2850 ; 0x2850 <__ultoa_invert>
2698: f8 2e mov r15, r24
269a: f2 18 sub r15, r2
269c: 8f e7 ldi r24, 0x7F ; 127
269e: d8 2e mov r13, r24
26a0: d1 22 and r13, r17
26a2: d6 fe sbrs r13, 6
26a4: 0b c0 rjmp .+22 ; 0x26bc <vfprintf+0x2ce>
26a6: 5e ef ldi r21, 0xFE ; 254
26a8: d5 22 and r13, r21
26aa: f9 14 cp r15, r9
26ac: 38 f4 brcc .+14 ; 0x26bc <vfprintf+0x2ce>
26ae: d4 fe sbrs r13, 4
26b0: 07 c0 rjmp .+14 ; 0x26c0 <vfprintf+0x2d2>
26b2: d2 fc sbrc r13, 2
26b4: 05 c0 rjmp .+10 ; 0x26c0 <vfprintf+0x2d2>
26b6: 8f ee ldi r24, 0xEF ; 239
26b8: d8 22 and r13, r24
26ba: 02 c0 rjmp .+4 ; 0x26c0 <vfprintf+0x2d2>
26bc: 1f 2d mov r17, r15
26be: 01 c0 rjmp .+2 ; 0x26c2 <vfprintf+0x2d4>
26c0: 19 2d mov r17, r9
26c2: d4 fe sbrs r13, 4
26c4: 0d c0 rjmp .+26 ; 0x26e0 <vfprintf+0x2f2>
26c6: fe 01 movw r30, r28
26c8: ef 0d add r30, r15
26ca: f1 1d adc r31, r1
26cc: 80 81 ld r24, Z
26ce: 80 33 cpi r24, 0x30 ; 48
26d0: 19 f4 brne .+6 ; 0x26d8 <vfprintf+0x2ea>
26d2: 99 ee ldi r25, 0xE9 ; 233
26d4: d9 22 and r13, r25
26d6: 08 c0 rjmp .+16 ; 0x26e8 <vfprintf+0x2fa>
26d8: 1f 5f subi r17, 0xFF ; 255
26da: d2 fe sbrs r13, 2
26dc: 05 c0 rjmp .+10 ; 0x26e8 <vfprintf+0x2fa>
26de: 03 c0 rjmp .+6 ; 0x26e6 <vfprintf+0x2f8>
26e0: 8d 2d mov r24, r13
26e2: 86 78 andi r24, 0x86 ; 134
26e4: 09 f0 breq .+2 ; 0x26e8 <vfprintf+0x2fa>
26e6: 1f 5f subi r17, 0xFF ; 255
26e8: 0d 2d mov r16, r13
26ea: d3 fc sbrc r13, 3
26ec: 14 c0 rjmp .+40 ; 0x2716 <vfprintf+0x328>
26ee: d0 fe sbrs r13, 0
26f0: 0f c0 rjmp .+30 ; 0x2710 <vfprintf+0x322>
26f2: 1c 15 cp r17, r12
26f4: 10 f0 brcs .+4 ; 0x26fa <vfprintf+0x30c>
26f6: 9f 2c mov r9, r15
26f8: 0b c0 rjmp .+22 ; 0x2710 <vfprintf+0x322>
26fa: 9f 2c mov r9, r15
26fc: 9c 0c add r9, r12
26fe: 91 1a sub r9, r17
2700: 1c 2d mov r17, r12
2702: 06 c0 rjmp .+12 ; 0x2710 <vfprintf+0x322>
2704: b3 01 movw r22, r6
2706: 80 e2 ldi r24, 0x20 ; 32
2708: 90 e0 ldi r25, 0x00 ; 0
270a: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
270e: 1f 5f subi r17, 0xFF ; 255
2710: 1c 15 cp r17, r12
2712: c0 f3 brcs .-16 ; 0x2704 <vfprintf+0x316>
2714: 04 c0 rjmp .+8 ; 0x271e <vfprintf+0x330>
2716: 1c 15 cp r17, r12
2718: 10 f4 brcc .+4 ; 0x271e <vfprintf+0x330>
271a: c1 1a sub r12, r17
271c: 01 c0 rjmp .+2 ; 0x2720 <vfprintf+0x332>
271e: cc 24 eor r12, r12
2720: 04 ff sbrs r16, 4
2722: 10 c0 rjmp .+32 ; 0x2744 <vfprintf+0x356>
2724: b3 01 movw r22, r6
2726: 80 e3 ldi r24, 0x30 ; 48
2728: 90 e0 ldi r25, 0x00 ; 0
272a: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
272e: 02 ff sbrs r16, 2
2730: 1e c0 rjmp .+60 ; 0x276e <vfprintf+0x380>
2732: 01 fd sbrc r16, 1
2734: 03 c0 rjmp .+6 ; 0x273c <vfprintf+0x34e>
2736: 88 e7 ldi r24, 0x78 ; 120
2738: 90 e0 ldi r25, 0x00 ; 0
273a: 02 c0 rjmp .+4 ; 0x2740 <vfprintf+0x352>
273c: 88 e5 ldi r24, 0x58 ; 88
273e: 90 e0 ldi r25, 0x00 ; 0
2740: b3 01 movw r22, r6
2742: 0c c0 rjmp .+24 ; 0x275c <vfprintf+0x36e>
2744: 80 2f mov r24, r16
2746: 86 78 andi r24, 0x86 ; 134
2748: 91 f0 breq .+36 ; 0x276e <vfprintf+0x380>
274a: 01 ff sbrs r16, 1
274c: 02 c0 rjmp .+4 ; 0x2752 <vfprintf+0x364>
274e: 8b e2 ldi r24, 0x2B ; 43
2750: 01 c0 rjmp .+2 ; 0x2754 <vfprintf+0x366>
2752: 80 e2 ldi r24, 0x20 ; 32
2754: d7 fc sbrc r13, 7
2756: 8d e2 ldi r24, 0x2D ; 45
2758: b3 01 movw r22, r6
275a: 90 e0 ldi r25, 0x00 ; 0
275c: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
2760: 06 c0 rjmp .+12 ; 0x276e <vfprintf+0x380>
2762: b3 01 movw r22, r6
2764: 80 e3 ldi r24, 0x30 ; 48
2766: 90 e0 ldi r25, 0x00 ; 0
2768: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
276c: 9a 94 dec r9
276e: f9 14 cp r15, r9
2770: c0 f3 brcs .-16 ; 0x2762 <vfprintf+0x374>
2772: fa 94 dec r15
2774: f1 01 movw r30, r2
2776: ef 0d add r30, r15
2778: f1 1d adc r31, r1
277a: b3 01 movw r22, r6
277c: 80 81 ld r24, Z
277e: 90 e0 ldi r25, 0x00 ; 0
2780: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
2784: ff 20 and r15, r15
2786: a9 f7 brne .-22 ; 0x2772 <vfprintf+0x384>
2788: 06 c0 rjmp .+12 ; 0x2796 <vfprintf+0x3a8>
278a: b3 01 movw r22, r6
278c: 80 e2 ldi r24, 0x20 ; 32
278e: 90 e0 ldi r25, 0x00 ; 0
2790: 0e 94 fc 13 call 0x27f8 ; 0x27f8 <fputc>
2794: ca 94 dec r12
2796: cc 20 and r12, r12
2798: c1 f7 brne .-16 ; 0x278a <vfprintf+0x39c>
279a: 41 ce rjmp .-894 ; 0x241e <vfprintf+0x30>
279c: f3 01 movw r30, r6
279e: 66 81 ldd r22, Z+6 ; 0x06
27a0: 77 81 ldd r23, Z+7 ; 0x07
27a2: cb 01 movw r24, r22
27a4: 2b 96 adiw r28, 0x0b ; 11
27a6: e2 e1 ldi r30, 0x12 ; 18
27a8: 0c 94 e3 14 jmp 0x29c6 ; 0x29c6 <__epilogue_restores__>
 
000027ac <strnlen_P>:
27ac: fc 01 movw r30, r24
27ae: 05 90 lpm r0, Z+
27b0: 61 50 subi r22, 0x01 ; 1
27b2: 70 40 sbci r23, 0x00 ; 0
27b4: 01 10 cpse r0, r1
27b6: d8 f7 brcc .-10 ; 0x27ae <strnlen_P+0x2>
27b8: 80 95 com r24
27ba: 90 95 com r25
27bc: 8e 0f add r24, r30
27be: 9f 1f adc r25, r31
27c0: 08 95 ret
 
000027c2 <strnlen>:
27c2: fc 01 movw r30, r24
27c4: 61 50 subi r22, 0x01 ; 1
27c6: 70 40 sbci r23, 0x00 ; 0
27c8: 01 90 ld r0, Z+
27ca: 01 10 cpse r0, r1
27cc: d8 f7 brcc .-10 ; 0x27c4 <strnlen+0x2>
27ce: 80 95 com r24
27d0: 90 95 com r25
27d2: 8e 0f add r24, r30
27d4: 9f 1f adc r25, r31
27d6: 08 95 ret
 
000027d8 <strrev>:
27d8: dc 01 movw r26, r24
27da: fc 01 movw r30, r24
27dc: 67 2f mov r22, r23
27de: 71 91 ld r23, Z+
27e0: 77 23 and r23, r23
27e2: e1 f7 brne .-8 ; 0x27dc <strrev+0x4>
27e4: 32 97 sbiw r30, 0x02 ; 2
27e6: 04 c0 rjmp .+8 ; 0x27f0 <strrev+0x18>
27e8: 7c 91 ld r23, X
27ea: 6d 93 st X+, r22
27ec: 70 83 st Z, r23
27ee: 62 91 ld r22, -Z
27f0: ae 17 cp r26, r30
27f2: bf 07 cpc r27, r31
27f4: c8 f3 brcs .-14 ; 0x27e8 <strrev+0x10>
27f6: 08 95 ret
 
000027f8 <fputc>:
27f8: 0f 93 push r16
27fa: 1f 93 push r17
27fc: cf 93 push r28
27fe: df 93 push r29
2800: 8c 01 movw r16, r24
2802: eb 01 movw r28, r22
2804: 8b 81 ldd r24, Y+3 ; 0x03
2806: 81 ff sbrs r24, 1
2808: 1b c0 rjmp .+54 ; 0x2840 <fputc+0x48>
280a: 82 ff sbrs r24, 2
280c: 0d c0 rjmp .+26 ; 0x2828 <fputc+0x30>
280e: 2e 81 ldd r18, Y+6 ; 0x06
2810: 3f 81 ldd r19, Y+7 ; 0x07
2812: 8c 81 ldd r24, Y+4 ; 0x04
2814: 9d 81 ldd r25, Y+5 ; 0x05
2816: 28 17 cp r18, r24
2818: 39 07 cpc r19, r25
281a: 64 f4 brge .+24 ; 0x2834 <fputc+0x3c>
281c: e8 81 ld r30, Y
281e: f9 81 ldd r31, Y+1 ; 0x01
2820: 01 93 st Z+, r16
2822: f9 83 std Y+1, r31 ; 0x01
2824: e8 83 st Y, r30
2826: 06 c0 rjmp .+12 ; 0x2834 <fputc+0x3c>
2828: e8 85 ldd r30, Y+8 ; 0x08
282a: f9 85 ldd r31, Y+9 ; 0x09
282c: 80 2f mov r24, r16
282e: 09 95 icall
2830: 89 2b or r24, r25
2832: 31 f4 brne .+12 ; 0x2840 <fputc+0x48>
2834: 8e 81 ldd r24, Y+6 ; 0x06
2836: 9f 81 ldd r25, Y+7 ; 0x07
2838: 01 96 adiw r24, 0x01 ; 1
283a: 9f 83 std Y+7, r25 ; 0x07
283c: 8e 83 std Y+6, r24 ; 0x06
283e: 02 c0 rjmp .+4 ; 0x2844 <fputc+0x4c>
2840: 0f ef ldi r16, 0xFF ; 255
2842: 1f ef ldi r17, 0xFF ; 255
2844: c8 01 movw r24, r16
2846: df 91 pop r29
2848: cf 91 pop r28
284a: 1f 91 pop r17
284c: 0f 91 pop r16
284e: 08 95 ret
 
00002850 <__ultoa_invert>:
2850: fa 01 movw r30, r20
2852: aa 27 eor r26, r26
2854: 28 30 cpi r18, 0x08 ; 8
2856: 51 f1 breq .+84 ; 0x28ac <__ultoa_invert+0x5c>
2858: 20 31 cpi r18, 0x10 ; 16
285a: 81 f1 breq .+96 ; 0x28bc <__ultoa_invert+0x6c>
285c: e8 94 clt
285e: 6f 93 push r22
2860: 6e 7f andi r22, 0xFE ; 254
2862: 6e 5f subi r22, 0xFE ; 254
2864: 7f 4f sbci r23, 0xFF ; 255
2866: 8f 4f sbci r24, 0xFF ; 255
2868: 9f 4f sbci r25, 0xFF ; 255
286a: af 4f sbci r26, 0xFF ; 255
286c: b1 e0 ldi r27, 0x01 ; 1
286e: 3e d0 rcall .+124 ; 0x28ec <__ultoa_invert+0x9c>
2870: b4 e0 ldi r27, 0x04 ; 4
2872: 3c d0 rcall .+120 ; 0x28ec <__ultoa_invert+0x9c>
2874: 67 0f add r22, r23
2876: 78 1f adc r23, r24
2878: 89 1f adc r24, r25
287a: 9a 1f adc r25, r26
287c: a1 1d adc r26, r1
287e: 68 0f add r22, r24
2880: 79 1f adc r23, r25
2882: 8a 1f adc r24, r26
2884: 91 1d adc r25, r1
2886: a1 1d adc r26, r1
2888: 6a 0f add r22, r26
288a: 71 1d adc r23, r1
288c: 81 1d adc r24, r1
288e: 91 1d adc r25, r1
2890: a1 1d adc r26, r1
2892: 20 d0 rcall .+64 ; 0x28d4 <__ultoa_invert+0x84>
2894: 09 f4 brne .+2 ; 0x2898 <__ultoa_invert+0x48>
2896: 68 94 set
2898: 3f 91 pop r19
289a: 2a e0 ldi r18, 0x0A ; 10
289c: 26 9f mul r18, r22
289e: 11 24 eor r1, r1
28a0: 30 19 sub r19, r0
28a2: 30 5d subi r19, 0xD0 ; 208
28a4: 31 93 st Z+, r19
28a6: de f6 brtc .-74 ; 0x285e <__ultoa_invert+0xe>
28a8: cf 01 movw r24, r30
28aa: 08 95 ret
28ac: 46 2f mov r20, r22
28ae: 47 70 andi r20, 0x07 ; 7
28b0: 40 5d subi r20, 0xD0 ; 208
28b2: 41 93 st Z+, r20
28b4: b3 e0 ldi r27, 0x03 ; 3
28b6: 0f d0 rcall .+30 ; 0x28d6 <__ultoa_invert+0x86>
28b8: c9 f7 brne .-14 ; 0x28ac <__ultoa_invert+0x5c>
28ba: f6 cf rjmp .-20 ; 0x28a8 <__ultoa_invert+0x58>
28bc: 46 2f mov r20, r22
28be: 4f 70 andi r20, 0x0F ; 15
28c0: 40 5d subi r20, 0xD0 ; 208
28c2: 4a 33 cpi r20, 0x3A ; 58
28c4: 18 f0 brcs .+6 ; 0x28cc <__ultoa_invert+0x7c>
28c6: 49 5d subi r20, 0xD9 ; 217
28c8: 31 fd sbrc r19, 1
28ca: 40 52 subi r20, 0x20 ; 32
28cc: 41 93 st Z+, r20
28ce: 02 d0 rcall .+4 ; 0x28d4 <__ultoa_invert+0x84>
28d0: a9 f7 brne .-22 ; 0x28bc <__ultoa_invert+0x6c>
28d2: ea cf rjmp .-44 ; 0x28a8 <__ultoa_invert+0x58>
28d4: b4 e0 ldi r27, 0x04 ; 4
28d6: a6 95 lsr r26
28d8: 97 95 ror r25
28da: 87 95 ror r24
28dc: 77 95 ror r23
28de: 67 95 ror r22
28e0: ba 95 dec r27
28e2: c9 f7 brne .-14 ; 0x28d6 <__ultoa_invert+0x86>
28e4: 00 97 sbiw r24, 0x00 ; 0
28e6: 61 05 cpc r22, r1
28e8: 71 05 cpc r23, r1
28ea: 08 95 ret
28ec: 9b 01 movw r18, r22
28ee: ac 01 movw r20, r24
28f0: 0a 2e mov r0, r26
28f2: 06 94 lsr r0
28f4: 57 95 ror r21
28f6: 47 95 ror r20
28f8: 37 95 ror r19
28fa: 27 95 ror r18
28fc: ba 95 dec r27
28fe: c9 f7 brne .-14 ; 0x28f2 <__ultoa_invert+0xa2>
2900: 62 0f add r22, r18
2902: 73 1f adc r23, r19
2904: 84 1f adc r24, r20
2906: 95 1f adc r25, r21
2908: a0 1d adc r26, r0
290a: 08 95 ret
 
0000290c <__mulsi3>:
290c: 62 9f mul r22, r18
290e: d0 01 movw r26, r0
2910: 73 9f mul r23, r19
2912: f0 01 movw r30, r0
2914: 82 9f mul r24, r18
2916: e0 0d add r30, r0
2918: f1 1d adc r31, r1
291a: 64 9f mul r22, r20
291c: e0 0d add r30, r0
291e: f1 1d adc r31, r1
2920: 92 9f mul r25, r18
2922: f0 0d add r31, r0
2924: 83 9f mul r24, r19
2926: f0 0d add r31, r0
2928: 74 9f mul r23, r20
292a: f0 0d add r31, r0
292c: 65 9f mul r22, r21
292e: f0 0d add r31, r0
2930: 99 27 eor r25, r25
2932: 72 9f mul r23, r18
2934: b0 0d add r27, r0
2936: e1 1d adc r30, r1
2938: f9 1f adc r31, r25
293a: 63 9f mul r22, r19
293c: b0 0d add r27, r0
293e: e1 1d adc r30, r1
2940: f9 1f adc r31, r25
2942: bd 01 movw r22, r26
2944: cf 01 movw r24, r30
2946: 11 24 eor r1, r1
2948: 08 95 ret
 
0000294a <__udivmodsi4>:
294a: a1 e2 ldi r26, 0x21 ; 33
294c: 1a 2e mov r1, r26
294e: aa 1b sub r26, r26
2950: bb 1b sub r27, r27
2952: fd 01 movw r30, r26
2954: 0d c0 rjmp .+26 ; 0x2970 <__udivmodsi4_ep>
 
00002956 <__udivmodsi4_loop>:
2956: aa 1f adc r26, r26
2958: bb 1f adc r27, r27
295a: ee 1f adc r30, r30
295c: ff 1f adc r31, r31
295e: a2 17 cp r26, r18
2960: b3 07 cpc r27, r19
2962: e4 07 cpc r30, r20
2964: f5 07 cpc r31, r21
2966: 20 f0 brcs .+8 ; 0x2970 <__udivmodsi4_ep>
2968: a2 1b sub r26, r18
296a: b3 0b sbc r27, r19
296c: e4 0b sbc r30, r20
296e: f5 0b sbc r31, r21
 
00002970 <__udivmodsi4_ep>:
2970: 66 1f adc r22, r22
2972: 77 1f adc r23, r23
2974: 88 1f adc r24, r24
2976: 99 1f adc r25, r25
2978: 1a 94 dec r1
297a: 69 f7 brne .-38 ; 0x2956 <__udivmodsi4_loop>
297c: 60 95 com r22
297e: 70 95 com r23
2980: 80 95 com r24
2982: 90 95 com r25
2984: 9b 01 movw r18, r22
2986: ac 01 movw r20, r24
2988: bd 01 movw r22, r26
298a: cf 01 movw r24, r30
298c: 08 95 ret
 
0000298e <__prologue_saves__>:
298e: 2f 92 push r2
2990: 3f 92 push r3
2992: 4f 92 push r4
2994: 5f 92 push r5
2996: 6f 92 push r6
2998: 7f 92 push r7
299a: 8f 92 push r8
299c: 9f 92 push r9
299e: af 92 push r10
29a0: bf 92 push r11
29a2: cf 92 push r12
29a4: df 92 push r13
29a6: ef 92 push r14
29a8: ff 92 push r15
29aa: 0f 93 push r16
29ac: 1f 93 push r17
29ae: cf 93 push r28
29b0: df 93 push r29
29b2: cd b7 in r28, 0x3d ; 61
29b4: de b7 in r29, 0x3e ; 62
29b6: ca 1b sub r28, r26
29b8: db 0b sbc r29, r27
29ba: 0f b6 in r0, 0x3f ; 63
29bc: f8 94 cli
29be: de bf out 0x3e, r29 ; 62
29c0: 0f be out 0x3f, r0 ; 63
29c2: cd bf out 0x3d, r28 ; 61
29c4: 09 94 ijmp
 
000029c6 <__epilogue_restores__>:
29c6: 2a 88 ldd r2, Y+18 ; 0x12
29c8: 39 88 ldd r3, Y+17 ; 0x11
29ca: 48 88 ldd r4, Y+16 ; 0x10
29cc: 5f 84 ldd r5, Y+15 ; 0x0f
29ce: 6e 84 ldd r6, Y+14 ; 0x0e
29d0: 7d 84 ldd r7, Y+13 ; 0x0d
29d2: 8c 84 ldd r8, Y+12 ; 0x0c
29d4: 9b 84 ldd r9, Y+11 ; 0x0b
29d6: aa 84 ldd r10, Y+10 ; 0x0a
29d8: b9 84 ldd r11, Y+9 ; 0x09
29da: c8 84 ldd r12, Y+8 ; 0x08
29dc: df 80 ldd r13, Y+7 ; 0x07
29de: ee 80 ldd r14, Y+6 ; 0x06
29e0: fd 80 ldd r15, Y+5 ; 0x05
29e2: 0c 81 ldd r16, Y+4 ; 0x04
29e4: 1b 81 ldd r17, Y+3 ; 0x03
29e6: aa 81 ldd r26, Y+2 ; 0x02
29e8: b9 81 ldd r27, Y+1 ; 0x01
29ea: ce 0f add r28, r30
29ec: d1 1d adc r29, r1
29ee: 0f b6 in r0, 0x3f ; 63
29f0: f8 94 cli
29f2: de bf out 0x3e, r29 ; 62
29f4: 0f be out 0x3f, r0 ; 63
29f6: cd bf out 0x3d, r28 ; 61
29f8: ed 01 movw r28, r26
29fa: 08 95 ret
 
000029fc <__udivmodhi4>:
29fc: aa 1b sub r26, r26
29fe: bb 1b sub r27, r27
2a00: 51 e1 ldi r21, 0x11 ; 17
2a02: 07 c0 rjmp .+14 ; 0x2a12 <__udivmodhi4_ep>
 
00002a04 <__udivmodhi4_loop>:
2a04: aa 1f adc r26, r26
2a06: bb 1f adc r27, r27
2a08: a6 17 cp r26, r22
2a0a: b7 07 cpc r27, r23
2a0c: 10 f0 brcs .+4 ; 0x2a12 <__udivmodhi4_ep>
2a0e: a6 1b sub r26, r22
2a10: b7 0b sbc r27, r23
 
00002a12 <__udivmodhi4_ep>:
2a12: 88 1f adc r24, r24
2a14: 99 1f adc r25, r25
2a16: 5a 95 dec r21
2a18: a9 f7 brne .-22 ; 0x2a04 <__udivmodhi4_loop>
2a1a: 80 95 com r24
2a1c: 90 95 com r25
2a1e: bc 01 movw r22, r24
2a20: cd 01 movw r24, r26
2a22: 08 95 ret
 
00002a24 <_exit>:
2a24: f8 94 cli
 
00002a26 <__stop_program>:
2a26: ff cf rjmp .-2 ; 0x2a26 <__stop_program>
/Designs/Data_loggers/GPSRL03A/main.c
0,0 → 1,402
/*---------------------------------------------------------------*/
/* GPS data logger R0.02 (C)ChaN, 2008 */
/*---------------------------------------------------------------*/
 
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <string.h>
#include "tff.h"
#include "diskio.h"
 
 
#define SYSCLK 10000000UL
 
#define BEEP_ON() TCCR0B=0b011
#define BEEP_OFF() TCCR0B=0b000
#define GPS_ON() PORTB|=0x02
#define GPS_OFF() PORTB&=0xFD
#define DELAY(dly) for(Timer=dly;Timer;)
 
#define GPS_BAUDRATE 4800 // Enable USRAT0 in N81,9600bps
 
#define VTH_LOW (WORD)(8000UL*100/3838)
#define VTH_HIGH (WORD)(11500UL*100/3838)
#define POWER_check 0b01000000 | 1
#define ANALOG_IN1 0b01000000 | 2
 
 
FATFS fatfs; /* File system object for each logical drive */
FIL file1; /* File object */
BYTE Buff[82]; /* File/Console buffer */
 
BYTE Value1[4]; // logged values
BYTE Value2[4];
 
uint16_t battery; // battery voltage
uint16_t intensity; // radiation intensity
 
volatile BYTE Timer; /* 100Hz decrement timer */
volatile BYTE Stat; /* Status */
 
 
typedef struct _fifo {
uint8_t idx_w;
uint8_t idx_r;
uint8_t count;
uint8_t buff[150];
} FIFO;
volatile FIFO rxfifo;
 
 
 
/*---------------------------------------------------------*/
/* ADC interrupt */
/*---------------------------------------------------------*/
 
ISR(ADC_vect)
{
WORD n;
static BYTE l, h;
 
n = ADC;
 
if(ADMUX == POWER_check)
{
if (n < VTH_LOW) {
if (l >= 15) {
Stat |= 0x01;
}
else {l++;}
}
else {l = 0;}
 
if (n > VTH_HIGH) {
if (h >= 15) {
Stat &= 0xFE;
}
else {h++;}
}
else {h = 0;}
 
battery = n;
ADMUX = ANALOG_IN1;
}
 
if(ADMUX == ANALOG_IN1)
{
intensity = n;
ADMUX = POWER_check;
}
 
//!!!!
//Stat &= 0xFE;
 
ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
}
 
 
/*---------------------------------------------------------*/
/* 100Hz timer interrupt generated by OC1A */
/*---------------------------------------------------------*/
 
 
ISR(TIMER1_COMPA_vect)
{
BYTE n;
static WORD ivt_sync;
 
 
n = Timer;
if (n) Timer = n - 1;
 
if (++ivt_sync >= 180 * 100) {
ivt_sync = 0;
Stat |= 4;
}
 
disk_timerproc(); /* Drive timer procedure of low level disk I/O module */
 
}
 
 
 
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
 
 
DWORD get_fattime ()
{
return ((2007UL - 1980) << 25) /* Fixed to 2007.5.1, 00:00:00 */
| ((5UL) << 21)
| ((1UL) << 16)
| (0 << 11)
| (0 << 5)
| (0 >> 1);
}
 
 
/*--------------------------------------------------------------------------*/
/* UART control */
 
 
static
void uart_init (void)
{
cli();
UCSR0B = 0;
rxfifo.idx_r = 0;
rxfifo.idx_w = 0;
rxfifo.count = 0;
UBRR0L = SYSCLK/16/GPS_BAUDRATE;
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
Stat &= 0xFD; // Clear overflow flag
sei();
}
 
 
static
void uart_stop (void)
{
UCSR0B = 0;
}
 
 
/* Get a received character */
static
uint8_t uart_get ()
{
uint8_t d, i;
 
 
i = rxfifo.idx_r;
if (rxfifo.count == 0) return 0;
d = rxfifo.buff[i++];
cli();
rxfifo.count--;
sei();
if(i >= sizeof(rxfifo.buff))
i = 0;
rxfifo.idx_r = i;
 
return d;
+
+/* USART0 RXC interrupt */
+ISR(USART_RX_vect)
+{
+ uint8_t d, n, i;
+
+
+ d = UDR0;
+ n = rxfifo.count;
+ if(n < sizeof(rxfifo.buff)) {
+ rxfifo.count = ++n;
+ i = rxfifo.idx_w;
+ rxfifo.buff[i++] = d;
+ if(i >= sizeof(rxfifo.buff))
+ i = 0;
+ rxfifo.idx_w = i;
+ } else {
+ Stat |= 2;
+ }
+}
+
+
+
+/*----------------------------------------------------*/
+/* Get a line received from GPS module */
+/*----------------------------------------------------*/
+
+static
+BYTE get_line (void) // 0: Power fail occured, >0: Number of bytes received.
+{
+ BYTE c, i = 0;
+
+
+ for (;;) {
+ if (Stat & 1) return 0; // When power fail is detected, return with zero.
+ c = uart_get();
+ if (Stat & 2) { // When buffer overflow has occured, restart to receive line.
+ uart_init();
+ i = 0; c = 0;
+ }
+ if (!c || (i == 0 && c != '$')) continue;
+ Buff[i++] = c;
+ if (c == '\n') break;
+ if (i >= sizeof(Buff)) i = 0;
+ }
+ return i;
+}
+
+
+
+/*--------------------------------------------------------------------------*/
+/* Controls */
+
+static
+void beep (BYTE len, BYTE cnt)
+{
+ while (cnt--) {
+ BEEP_ON();
+ DELAY(len);
+ BEEP_OFF();
+ DELAY(len);
+ }
+}
+
+
+
+
+/* Compare sentence header string */
+static
+BYTE gp_comp (BYTE *str1, const prog_uint8_t *str2)
+{
+ BYTE c;
+
+ do {
+ c = pgm_read_byte(str2++);
+ } while (c && c == *str1++);
+ return c;
+}
+
+/* Get a column item */
+static
+BYTE* gp_col ( /* Returns pointer to the item (returns a NULL when not found) */
+ const BYTE* buf, /* Pointer to the sentence */
+ BYTE col /* Column number (0 is the 1st item) */
+) {
+ BYTE c;
+
+
+ while (col) {
+ do {
+ c = *buf++;
+ if (c <= ' ') return NULL;
+ } while (c != ',');
+ col--;
+ }
+ return (BYTE*)buf;
+}
+
+
+
+static
+void ioinit (void)
+{
+ PORTB = 0b00001101; // Port B
+ DDRB = 0b00101110;
+ PORTC = 0b00111111; // Port C
+ DDRC = 0b00000000;
+ PORTD = 0b10101110; // Port D
+ DDRD = 0b01010010;
+
+ SPCR = 0b01010000; /* Initialize SPI port (Mode 0) */
+ SPSR = 0b00000001;
+
+ OCR1A = SYSCLK/8/100-1; // Timer1: 100Hz interval (OC1A)
+ TCCR1B = 0b00001010;
+ TIMSK1 = _BV(OCIE1A); // Enable TC1.oca interrupt
+
+ OCR0A = SYSCLK/64/4000/2-1; // Timer0: 4kHz sound (OC0A)
+ TCCR0A = 0b01000010;
+
+ ADMUX = POWER_check; // Select ADC input
+ ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|_BV(ADIE)|0b111;
+
+ sei();
+}
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Main */
+
+
+int main ()
+{
+ BYTE b, err, *p = NULL;
+ WORD s;
+
+
+ ioinit();
+ f_mount(0, &fatfs); /* Enable file I/O layer */
+
+ for (;;) {
+ uart_stop();
+ GPS_OFF();
+ Timer = 100;
+ do {
+ if (Stat & 1) Timer = 100;
+ } while (Timer);
+
+ GPS_ON();
+ Timer = 255;
+ do {
+ if ((Stat & 1) || (disk_status(0) & STA_NODISK)) Timer = 255;
+ } while (Timer);
+
+ beep(5, 1); // Single beep. Start to get current time.
+ uart_init();
+ do { // Wait for valid RMC sentence.
+ b = get_line();
+ if (!b) break;
+ if (gp_comp(Buff, PSTR("$GPRMC"))) continue;
+ p = gp_col(Buff,2);
+ } while (!p || *p != 'A');
+ if (!b) continue;
+ p = gp_col(Buff,9); // Open log file with the name of current date (YYMMDD.log in UTC).
+
+ if (!p) {err = 3; break;}
+
+ memcpy(&Buff[0], p+4, 2);
+ memcpy(&Buff[2], p+2, 2);
+ memcpy(&Buff[4], p+0, 2);
+ strcpy_P(&Buff[6], PSTR(".log"));
+ if (f_open(&file1, Buff, FA_OPEN_ALWAYS | FA_WRITE) || f_lseek(&file1, file1.fsize)) { err = 4; break; }
+
+ beep(5, 2); // Two beeps. Start logging.
+ err = 0;
+ while ((b = get_line()) > 0) {
+ if ( !gp_comp(Buff, PSTR("$GPGGA")) // Which sentence is logged?
+ || !gp_comp(Buff, PSTR("$GPRMC"))
+ // || !gp_comp(Buff, PSTR("$GPGSA"))
+ // || !gp_comp(Buff, PSTR("$GPGLL"))
+ // || !gp_comp(Buff, PSTR("$GPGSV"))
+ // || !gp_comp(Buff, PSTR("$GPZDA"))
+ // || !gp_comp(Buff, PSTR("$GPVTG"))
+ )
+ {
+ if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; };
+ itoa(battery,&Value1,10); // convert number to character
+ itoa(intensity,&Value2,10);
+ sprintf(Buff,"%d,%d\n",Value1,Value2);
+ if (f_write(&file1, Buff,strlen(Buff), &s) || (strlen(Buff) != s)) { err = 8; break; };
+ }
+ if ((Stat & 4) == 0) continue;
+ if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec.
+ cli(); Stat &= 0xFB; sei(); // Clear sync request
+ }
+ if (err) break;
+
+ // Turn-off GPS power and close the log file by power supply is discharged.
+ uart_stop();
+ GPS_OFF();
+ if (f_close(&file1)) { err = 7; break; };
+
+ // When a long beep is sounded, the shutdoun process has been succeeded.
+ beep(50, 1);
+ }
+
+ // Unrecoverble error. Enter shutdown state.
+ uart_stop();
+ GPS_OFF();
+ beep(25, err);
+ for (;;);
+}
+
+
/Designs/Data_loggers/GPSRL03A/glg.map
0,0 → 1,573
Archive member included because of file (symbol)
 
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_mulsi3.o)
tff.o (__mulsi3)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodsi4.o)
tff.o (__udivmodsi4)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_prologue.o)
main.o (__prologue_saves__)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_epilogue.o)
tff.o (__epilogue_restores__)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o (exit)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
main.o (__do_copy_data)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strcpy_P.o)
main.o (strcpy_P)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcmp.o)
tff.o (memcmp)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
tff.o (memcpy)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memset.o)
tff.o (memset)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o)
main.o (itoa)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o)
main.o (sprintf)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o) (vfprintf)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen_P)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strrev.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o) (strrev)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(fputc.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (fputc)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (__ultoa_invert)
/usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodhi4.o)
/usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o) (__udivmodhi4)
 
Allocating common symbols
Common symbol size file
 
Value1 0x4 main.o
Timer 0x1 main.o
Buff 0x52 main.o
Stat 0x1 main.o
Value2 0x4 main.o
battery 0x2 main.o
rxfifo 0x99 main.o
intensity 0x2 main.o
file1 0x1c main.o
fatfs 0x220 main.o
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
LOAD main.o
LOAD tff.o
LOAD mmc.o
LOAD /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a
LOAD /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a
LOAD /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x2a28
*(.vectors)
.vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
.progmem.data 0x00000068 0x1a main.o
0x00000082 . = ALIGN (0x2)
0x00000082 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000082 0x0 linker stubs
*(.trampolines*)
0x00000082 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000082 __ctors_start = .
*(.ctors)
0x00000082 __ctors_end = .
0x00000082 __dtors_start = .
*(.dtors)
0x00000082 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000082 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
0x00000082 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000082 0xc /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000008e 0x16 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
0x0000008e __do_copy_data
.init4 0x000000a4 0x10 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
0x000000a4 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000b4 0x8 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
*(.init9)
*(.text)
.text 0x000000bc 0x4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
0x000000bc __vector_22
0x000000bc __vector_1
0x000000bc __vector_24
0x000000bc __vector_12
0x000000bc __bad_interrupt
0x000000bc __vector_6
0x000000bc __vector_3
0x000000bc __vector_23
0x000000bc __vector_25
0x000000bc __vector_13
0x000000bc __vector_17
0x000000bc __vector_19
0x000000bc __vector_7
0x000000bc __vector_5
0x000000bc __vector_4
0x000000bc __vector_9
0x000000bc __vector_2
0x000000bc __vector_15
0x000000bc __vector_8
0x000000bc __vector_14
0x000000bc __vector_10
0x000000bc __vector_16
0x000000bc __vector_20
.text 0x000000c0 0x5cc main.o
0x00000630 __vector_11
0x00000160 get_fattime
0x0000026a main
0x000000c0 __vector_21
0x0000016a __vector_18
.text 0x0000068c 0x153a tff.o
0x00000e00 f_close
0x000010d0 f_read
0x00000d52 f_sync
0x000012fe f_mount
0x00000a78 f_lseek
0x00000e1c f_write
0x000013ae f_open
.text 0x00001bc6 0x758 mmc.o
0x00001d70 disk_initialize
0x00001f2a disk_status
0x000020ee disk_ioctl
0x000022de disk_timerproc
0x00001ff6 disk_write
0x00001f38 disk_read
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_mulsi3.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodsi4.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_prologue.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_epilogue.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
.text 0x0000231e 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
.text 0x0000231e 0xe /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strcpy_P.o)
0x0000231e strcpy_P
.text 0x0000232c 0x1a /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcmp.o)
0x0000232c memcmp
.text 0x00002346 0x12 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
0x00002346 memcpy
.text 0x00002358 0xe /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memset.o)
0x00002358 memset
.text 0x00002366 0x42 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o)
0x00002366 itoa
.text 0x000023a8 0x46 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o)
0x000023a8 sprintf
.text 0x000023ee 0x3be /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
0x000023ee vfprintf
.text 0x000027ac 0x16 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
0x000027ac strnlen_P
.text 0x000027c2 0x16 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
0x000027c2 strnlen
.text 0x000027d8 0x20 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strrev.o)
0x000027d8 strrev
.text 0x000027f8 0x58 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(fputc.o)
0x000027f8 fputc
.text 0x00002850 0xbc /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
0x00002850 __ultoa_invert
.text 0x0000290c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodhi4.o)
0x0000290c . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x0000290c 0x3e /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_mulsi3.o)
0x0000290c __mulsi3
.text.libgcc 0x0000294a 0x44 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodsi4.o)
0x0000294a __udivmodsi4
.text.libgcc 0x0000298e 0x38 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_prologue.o)
0x0000298e __prologue_saves__
.text.libgcc 0x000029c6 0x36 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_epilogue.o)
0x000029c6 __epilogue_restores__
.text.libgcc 0x000029fc 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
.text.libgcc 0x000029fc 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x000029fc 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc 0x000029fc 0x28 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodhi4.o)
0x000029fc __udivmodhi4
0x00002a24 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00002a24 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
0x00002a24 exit
0x00002a24 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00002a24 0x4 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
*(.fini0)
0x00002a28 _etext = .
 
.data 0x00800100 0xc load address 0x00002a28
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
.data 0x00800100 0x7 main.o
.data 0x00800107 0x4 tff.o
.data 0x0080010b 0x1 mmc.o
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_mulsi3.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodsi4.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_prologue.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_epilogue.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strcpy_P.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcmp.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memset.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strrev.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(fputc.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
.data 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodhi4.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x0080010c . = ALIGN (0x2)
0x0080010c _edata = .
0x0080010c PROVIDE (__data_end, .)
 
.bss 0x0080010c 0x341 load address 0x00002a34
0x0080010c PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
.bss 0x0080010c 0x4 main.o
.bss 0x00800110 0x4 tff.o
.bss 0x00800114 0x4 mmc.o
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_mulsi3.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodsi4.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_prologue.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_epilogue.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_exit.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_copy_data.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_clear_bss.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strcpy_P.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcmp.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memset.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strrev.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(fputc.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
.bss 0x00800118 0x0 /usr/lib/gcc/avr/4.3.0/avr5/libgcc.a(_udivmodhi4.o)
*(.bss*)
*(COMMON)
COMMON 0x00800118 0x335 main.o
0x00800118 Value1
0x0080011c Timer
0x0080011d Buff
0x0080016f Stat
0x00800170 Value2
0x00800174 battery
0x00800176 rxfifo
0x0080020f intensity
0x00800211 file1
0x0080022d fatfs
0x0080044d PROVIDE (__bss_end, .)
0x00002a28 __data_load_start = LOADADDR (.data)
0x00002a34 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x0080044d 0x0
0x0080044d PROVIDE (__noinit_start, .)
*(.noinit*)
0x0080044d PROVIDE (__noinit_end, .)
0x0080044d _end = .
0x0080044d PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.stab 0x00000000 0x2040
*(.stab)
.stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
.stab 0x000006b4 0x6c /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strcpy_P.o)
0x78 (size before relaxing)
.stab 0x00000720 0xb4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcmp.o)
0xc0 (size before relaxing)
.stab 0x000007d4 0x84 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
0x90 (size before relaxing)
.stab 0x00000858 0x6c /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(memset.o)
0x78 (size before relaxing)
.stab 0x000008c4 0x1b0 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(itoa.o)
0x1bc (size before relaxing)
.stab 0x00000a74 0x3cc /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(sprintf.o)
0x3d8 (size before relaxing)
.stab 0x00000e40 0x99c /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
0xb7c (size before relaxing)
.stab 0x000017dc 0x9c /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
0xa8 (size before relaxing)
.stab 0x00001878 0x9c /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
0xa8 (size before relaxing)
.stab 0x00001914 0xd8 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(strrev.o)
0xe4 (size before relaxing)
.stab 0x000019ec 0x1d4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(fputc.o)
0x3b4 (size before relaxing)
.stab 0x00001bc0 0x480 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
0x48c (size before relaxing)
 
.stabstr 0x00000000 0xdb4
*(.stabstr)
.stabstr 0x00000000 0xdb4 /usr/lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges 0x00000000 0x60
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 main.o
.debug_aranges
0x00000020 0x20 tff.o
.debug_aranges
0x00000040 0x20 mmc.o
 
.debug_pubnames
0x00000000 0x19e
*(.debug_pubnames)
.debug_pubnames
0x00000000 0xc6 main.o
.debug_pubnames
0x000000c6 0x63 tff.o
.debug_pubnames
0x00000129 0x75 mmc.o
 
.debug_info 0x00000000 0x1f60
*(.debug_info)
.debug_info 0x00000000 0x906 main.o
.debug_info 0x00000906 0x100d tff.o
.debug_info 0x00001913 0x64d mmc.o
*(.gnu.linkonce.wi.*)
 
.debug_abbrev 0x00000000 0x7b9
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x28d main.o
.debug_abbrev 0x0000028d 0x2d6 tff.o
.debug_abbrev 0x00000563 0x256 mmc.o
 
.debug_line 0x00000000 0x1b85
*(.debug_line)
.debug_line 0x00000000 0x6bb main.o
.debug_line 0x000006bb 0xdd3 tff.o
.debug_line 0x0000148e 0x6f7 mmc.o
 
.debug_frame 0x00000000 0x200
*(.debug_frame)
.debug_frame 0x00000000 0x70 main.o
.debug_frame 0x00000070 0xf0 tff.o
.debug_frame 0x00000160 0xa0 mmc.o
 
.debug_str 0x00000000 0x5cc
*(.debug_str)
.debug_str 0x00000000 0x26d main.o
0x2c8 (size before relaxing)
.debug_str 0x0000026d 0x29f tff.o
0x430 (size before relaxing)
.debug_str 0x0000050c 0xc0 mmc.o
0x1e3 (size before relaxing)
 
.debug_loc 0x00000000 0x2af1
*(.debug_loc)
.debug_loc 0x00000000 0x63f main.o
.debug_loc 0x0000063f 0x1f49 tff.o
.debug_loc 0x00002588 0x569 mmc.o
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(glg.elf elf32-avr)
LOAD linker stubs
 
.debug_ranges 0x00000000 0x1d0
.debug_ranges 0x00000000 0x30 main.o
.debug_ranges 0x00000030 0x170 tff.o
.debug_ranges 0x000001a0 0x30 mmc.o
/Designs/Data_loggers/GPSRL03A/Makefile
0,0 → 1,52
PRG = glg
OBJ = main.o tff.o mmc.o
MCU_TARGET = atmega168
OPTIMIZE = -Os -mcall-prologues
DEFS =
LIBS =
DEBUG = dwarf-2
 
CC = avr-gcc
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
ALL_ASFLAGS = -mmcu=$(MCU_TARGET) -I. -x assembler-with-cpp $(ASFLAGS)
CFLAGS = -g$(DEBUG) -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
LDFLAGS = -Wl,-Map,$(PRG).map
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
 
 
all: $(PRG).elf lst text size
 
$(PRG).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
 
 
clean:
rm -rf *.o $(PRG).elf *.eps *.bak *.a
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
rm -rf $(PRG).hex
 
 
 
size: $(PRG).elf
$(SIZE) $(PRG).elf
 
lst: $(PRG).lst
%.lst: %.elf
$(OBJDUMP) -h -S $< > $@
 
%.o : %.S
$(CC) -c $(ALL_ASFLAGS) $< -o $@
 
 
 
text: hex
hex: $(PRG).hex
 
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
 
 
/Designs/Data_loggers/GPSRL03A/diskio.h
0,0 → 1,64
/*-----------------------------------------------------------------------
/ Low level disk interface modlue include file R0.04a (C)ChaN, 2007
/-----------------------------------------------------------------------*/
 
#ifndef _DISKIO
 
#define _READONLY 0 /* 1: Read-only mode */
 
#include "integer.h"
 
 
/* Status of Disk Functions */
typedef BYTE DSTATUS;
 
/* Results of Disk Functions */
typedef enum {
RES_OK = 0, /* 0: Successful */
RES_ERROR, /* 1: R/W Error */
RES_WRPRT, /* 2: Write Protected */
RES_NOTRDY, /* 3: Not Ready */
RES_PARERR /* 4: Invalid Parameter */
} DRESULT;
 
 
/*---------------------------------------*/
/* Prototypes for disk control functions */
 
DSTATUS disk_initialize (BYTE);
DSTATUS disk_status (BYTE);
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
#if _READONLY == 0
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
#endif
DRESULT disk_ioctl (BYTE, BYTE, void*);
void disk_timerproc (void);
 
 
 
 
/* Disk Status Bits (DSTATUS) */
 
#define STA_NOINIT 0x01 /* Drive not initialized */
#define STA_NODISK 0x02 /* No medium in the drive */
#define STA_PROTECT 0x04 /* Write protected */
 
 
/* Command code for disk_ioctrl() */
 
#define GET_SECTOR_COUNT 1
#define GET_SECTOR_SIZE 2
#define CTRL_SYNC 3
#define CTRL_POWER 4
#define CTRL_LOCK 5
#define CTRL_EJECT 6
#define MMC_GET_CSD 10
#define MMC_GET_CID 11
#define MMC_GET_OCR 12
#define ATA_GET_REV 20
#define ATA_GET_MODEL 21
#define ATA_GET_SN 22
 
 
#define _DISKIO
#endif
/Designs/Data_loggers/GPSRL03A/ff.c
0,0 → 1,2036
/*----------------------------------------------------------------------------/
/ FatFs - FAT file system module R0.06 (C)ChaN, 2008
/-----------------------------------------------------------------------------/
/ The FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2008, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ commercial use without restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/-----------------------------------------------------------------------------/
/ Feb 26,'06 R0.00 Prototype.
/
/ Apr 29,'06 R0.01 First stable version.
/
/ Jun 01,'06 R0.02 Added FAT12 support.
/ Removed unbuffered mode.
/ Fixed a problem on small (<32M) patition.
/ Jun 10,'06 R0.02a Added a configuration option (_FS_MINIMUM).
/
/ Sep 22,'06 R0.03 Added f_rename().
/ Changed option _FS_MINIMUM to _FS_MINIMIZE.
/ Dec 11,'06 R0.03a Improved cluster scan algolithm to write files fast.
/ Fixed f_mkdir() creates incorrect directory on FAT32.
/
/ Feb 04,'07 R0.04 Supported multiple drive system.
/ Changed some interfaces for multiple drive system.
/ Changed f_mountdrv() to f_mount().
/ Added f_mkfs().
/ Apr 01,'07 R0.04a Supported multiple partitions on a plysical drive.
/ Added a capability of extending file size to f_lseek().
/ Added minimization level 3.
/ Fixed an endian sensitive code in f_mkfs().
/ May 05,'07 R0.04b Added a configuration option _USE_NTFLAG.
/ Added FSInfo support.
/ Fixed DBCS name can result FR_INVALID_NAME.
/ Fixed short seek (<= csize) collapses the file object.
/
/ Aug 25,'07 R0.05 Changed arguments of f_read(), f_write() and f_mkfs().
/ Fixed f_mkfs() on FAT32 creates incorrect FSInfo.
/ Fixed f_mkdir() on FAT32 creates incorrect directory.
/ Feb 03,'08 R0.05a Added f_truncate() and f_utime().
/ Fixed off by one error at FAT sub-type determination.
/ Fixed btr in f_read() can be mistruncated.
/ Fixed cached sector is not flushed when create and close
/ without write.
/
/ Apr 01,'08 R0.06 Added fputc(), fputs(), fprintf() and fgets().
/ Improved performance of f_lseek() on moving to the same
/ or following cluster.
/---------------------------------------------------------------------------*/
 
#include <string.h>
#include "ff.h" /* FatFs declarations */
#include "diskio.h" /* Include file for user provided disk functions */
 
 
/*--------------------------------------------------------------------------
 
Module Private Functions
 
---------------------------------------------------------------------------*/
 
static
FATFS *FatFs[_DRIVES]; /* Pointer to the file system objects (logical drives) */
static
WORD fsid; /* File system mount ID */
 
 
 
/*-----------------------------------------------------------------------*/
/* Change window offset */
/*-----------------------------------------------------------------------*/
 
static
BOOL move_window ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD sector /* Sector number to make apperance in the fs->win[] */
) /* Move to zero only writes back dirty window */
{
DWORD wsect;
 
 
wsect = fs->winsect;
if (wsect != sector) { /* Changed current window */
#if !_FS_READONLY
BYTE n;
if (fs->winflag) { /* Write back dirty window if needed */
if (disk_write(fs->drive, fs->win, wsect, 1) != RES_OK)
return FALSE;
fs->winflag = 0;
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to FAT copy */
wsect += fs->sects_fat;
disk_write(fs->drive, fs->win, wsect, 1);
}
}
}
#endif
if (sector) {
if (disk_read(fs->drive, fs->win, sector, 1) != RES_OK)
return FALSE;
fs->winsect = sector;
}
}
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Clean-up cached data */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT sync ( /* FR_OK: successful, FR_RW_ERROR: failed */
FATFS *fs /* File system object */
)
{
fs->winflag = 1;
if (!move_window(fs, 0)) return FR_RW_ERROR;
#if _USE_FSINFO
/* Update FSInfo sector if needed */
if (fs->fs_type == FS_FAT32 && fs->fsi_flag) {
fs->winsect = 0;
memset(fs->win, 0, 512);
ST_WORD(&fs->win[BS_55AA], 0xAA55);
ST_DWORD(&fs->win[FSI_LeadSig], 0x41615252);
ST_DWORD(&fs->win[FSI_StrucSig], 0x61417272);
ST_DWORD(&fs->win[FSI_Free_Count], fs->free_clust);
ST_DWORD(&fs->win[FSI_Nxt_Free], fs->last_clust);
disk_write(fs->drive, fs->win, fs->fsi_sector, 1);
fs->fsi_flag = 0;
}
#endif
/* Make sure that no pending write process in the physical drive */
if (disk_ioctl(fs->drive, CTRL_SYNC, NULL) != RES_OK)
return FR_RW_ERROR;
return FR_OK;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get a cluster status */
/*-----------------------------------------------------------------------*/
 
static
DWORD get_cluster ( /* 0,>=2: successful, 1: failed */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to get the link information */
)
{
WORD wc, bc;
DWORD fatsect;
 
 
if (clust >= 2 && clust < fs->max_clust) { /* Is it a valid cluster#? */
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fs, fatsect + (bc / SS(fs)))) break;
wc = fs->win[bc & (SS(fs) - 1)]; bc++;
if (!move_window(fs, fatsect + (bc / SS(fs)))) break;
wc |= (WORD)fs->win[bc & (SS(fs) - 1)] << 8;
return (clust & 1) ? (wc >> 4) : (wc & 0xFFF);
 
case FS_FAT16 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 2)))) break;
return LD_WORD(&fs->win[((WORD)clust * 2) & (SS(fs) - 1)]);
 
case FS_FAT32 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 4)))) break;
return LD_DWORD(&fs->win[((WORD)clust * 4) & (SS(fs) - 1)]) & 0x0FFFFFFF;
}
}
 
return 1; /* Out of cluster range, or an error occured */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change a cluster status */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL put_cluster ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD clust, /* Cluster# to change (must be 2 to fs->max_clust-1) */
DWORD val /* New value to mark the cluster */
)
{
WORD bc;
BYTE *p;
DWORD fatsect;
 
 
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fs, fatsect + (bc / SS(fs)))) return FALSE;
p = &fs->win[bc & (SS(fs) - 1)];
*p = (clust & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
bc++;
fs->winflag = 1;
if (!move_window(fs, fatsect + (bc / SS(fs)))) return FALSE;
p = &fs->win[bc & (SS(fs) - 1)];
*p = (clust & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
break;
 
case FS_FAT16 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 2)))) return FALSE;
ST_WORD(&fs->win[((WORD)clust * 2) & (SS(fs) - 1)], (WORD)val);
break;
 
case FS_FAT32 :
if (!move_window(fs, fatsect + (clust / (SS(fs) / 4)))) return FALSE;
ST_DWORD(&fs->win[((WORD)clust * 4) & (SS(fs) - 1)], val);
break;
 
default :
return FALSE;
}
fs->winflag = 1;
return TRUE;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Remove a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL remove_chain ( /* TRUE: successful, FALSE: failed */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to remove chain from */
)
{
DWORD nxt;
 
 
while (clust >= 2 && clust < fs->max_clust) {
nxt = get_cluster(fs, clust);
if (nxt == 1) return FALSE;
if (!put_cluster(fs, clust, 0)) return FALSE;
if (fs->free_clust != 0xFFFFFFFF) {
fs->free_clust++;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
clust = nxt;
}
return TRUE;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Stretch or create a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
DWORD create_chain ( /* 0: No free cluster, 1: Error, >=2: New cluster number */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to stretch, 0 means create new */
)
{
DWORD cstat, ncl, scl, mcl = fs->max_clust;
 
 
if (clust == 0) { /* Create new chain */
scl = fs->last_clust; /* Get suggested start point */
if (scl == 0 || scl >= mcl) scl = 1;
}
else { /* Stretch existing chain */
cstat = get_cluster(fs, clust); /* Check the cluster status */
if (cstat < 2) return 1; /* It is an invalid cluster */
if (cstat < mcl) return cstat; /* It is already followed by next cluster */
scl = clust;
}
 
ncl = scl; /* Start cluster */
for (;;) {
ncl++; /* Next cluster */
if (ncl >= mcl) { /* Wrap around */
ncl = 2;
if (ncl > scl) return 0; /* No free custer */
}
cstat = get_cluster(fs, ncl); /* Get the cluster status */
if (cstat == 0) break; /* Found a free cluster */
if (cstat == 1) return 1; /* Any error occured */
if (ncl == scl) return 0; /* No free custer */
}
 
if (!put_cluster(fs, ncl, 0x0FFFFFFF)) return 1; /* Mark the new cluster "in use" */
if (clust != 0 && !put_cluster(fs, clust, ncl)) return 1; /* Link it to previous one if needed */
 
fs->last_clust = ncl; /* Update fsinfo */
if (fs->free_clust != 0xFFFFFFFF) {
fs->free_clust--;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
 
return ncl; /* Return new cluster number */
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get sector# from cluster# */
/*-----------------------------------------------------------------------*/
 
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
FATFS *fs, /* File system object */
DWORD clust /* Cluster# to be converted */
)
{
clust -= 2;
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
return clust * fs->csize + fs->database;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Move directory pointer to next */
/*-----------------------------------------------------------------------*/
 
static
BOOL next_dir_entry ( /* TRUE: successful, FALSE: could not move next */
DIR *dj /* Pointer to directory object */
)
{
DWORD clust;
WORD idx;
 
 
idx = dj->index + 1;
if ((idx & ((SS(dj->fs) - 1) / 32)) == 0) { /* Table sector changed? */
dj->sect++; /* Next sector */
if (dj->clust == 0) { /* In static table */
if (idx >= dj->fs->n_rootdir) return FALSE; /* Reached to end of table */
} else { /* In dynamic table */
if (((idx / (SS(dj->fs) / 32)) & (dj->fs->csize - 1)) == 0) { /* Cluster changed? */
clust = get_cluster(dj->fs, dj->clust); /* Get next cluster */
if (clust < 2 || clust >= dj->fs->max_clust) /* Reached to end of table */
return FALSE;
dj->clust = clust; /* Initialize for new cluster */
dj->sect = clust2sect(dj->fs, clust);
}
}
}
dj->index = idx; /* Lower several bits of dj->index indicates offset in dj->sect */
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get file status from directory entry */
/*-----------------------------------------------------------------------*/
 
#if _FS_MINIMIZE <= 1
static
void get_fileinfo ( /* No return code */
FILINFO *finfo, /* Ptr to store the file information */
const BYTE *dir /* Ptr to the directory entry */
)
{
BYTE n, c, a;
char *p;
 
 
p = &finfo->fname[0];
a = _USE_NTFLAG ? dir[DIR_NTres] : 0; /* NT flag */
for (n = 0; n < 8; n++) { /* Convert file name (body) */
c = dir[n];
if (c == ' ') break;
if (c == 0x05) c = 0xE5;
if (a & 0x08 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
if (dir[8] != ' ') { /* Convert file name (extension) */
*p++ = '.';
for (n = 8; n < 11; n++) {
c = dir[n];
if (c == ' ') break;
if (a & 0x10 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
}
*p = '\0';
 
finfo->fattrib = dir[DIR_Attr]; /* Attribute */
finfo->fsize = LD_DWORD(&dir[DIR_FileSize]); /* Size */
finfo->fdate = LD_WORD(&dir[DIR_WrtDate]); /* Date */
finfo->ftime = LD_WORD(&dir[DIR_WrtTime]); /* Time */
}
#endif /* _FS_MINIMIZE <= 1 */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Pick a paragraph and create the name in format of directory entry */
/*-----------------------------------------------------------------------*/
 
static
char make_dirfile ( /* 1: error - detected an invalid format, '\0'or'/': next character */
const char **path, /* Pointer to the file path pointer */
char *dirname /* Pointer to directory name buffer {Name(8), Ext(3), NT flag(1)} */
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
a = 0; b = 0x18; /* NT flag */
n = 0; t = 8;
for (;;) {
c = *(*path)++;
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
if (n == 0) break;
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
return c;
}
if (c <= ' ' || c == 0x7F) break; /* Reject invisible chars */
if (c == '.') {
if (!(a & 1) && n >= 1 && n <= 8) { /* Enter extension part */
n = 8; t = 11; continue;
}
break;
}
if (_USE_SJIS &&
((c >= 0x81 && c <= 0x9F) || /* Accept S-JIS code */
(c >= 0xE0 && c <= 0xFC))) {
if (n == 0 && c == 0xE5) /* Change heading \xE5 to \x05 */
c = 0x05;
a ^= 0x01; goto md_l2;
}
if (c == '"') break; /* Reject " */
if (c <= ')') goto md_l1; /* Accept ! # $ % & ' ( ) */
if (c <= ',') break; /* Reject * + , */
if (c <= '9') goto md_l1; /* Accept - 0-9 */
if (c <= '?') break; /* Reject : ; < = > ? */
if (!(a & 1)) { /* These checks are not applied to S-JIS 2nd byte */
if (c == '|') break; /* Reject | */
if (c >= '[' && c <= ']') break;/* Reject [ \ ] */
if (_USE_NTFLAG && c >= 'A' && c <= 'Z')
(t == 8) ? (b &= 0xF7) : (b &= 0xEF);
if (c >= 'a' && c <= 'z') { /* Convert to upper case */
c -= 0x20;
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
}
}
md_l1:
a &= 0xFE;
md_l2:
if (n >= t) break;
dirname[n++] = c;
}
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Trace a file path */
/*-----------------------------------------------------------------------*/
 
static
FRESULT trace_path ( /* FR_OK(0): successful, !=0: error code */
DIR *dj, /* Pointer to directory object to return last directory */
char *fn, /* Pointer to last segment name to return {file(8),ext(3),attr(1)} */
const char *path, /* Full-path string to trace a file or directory */
BYTE **dir /* Pointer to pointer to found entry to retutn */
)
{
DWORD clust;
char ds;
BYTE *dptr = NULL;
FATFS *fs = dj->fs;
 
 
/* Initialize directory object */
clust = fs->dirbase;
if (fs->fs_type == FS_FAT32) {
dj->clust = dj->sclust = clust;
dj->sect = clust2sect(fs, clust);
} else {
dj->clust = dj->sclust = 0;
dj->sect = clust;
}
dj->index = 0;
 
if (*path == '\0') { /* Null path means the root directory */
*dir = NULL; return FR_OK;
}
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(fs, dj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dj->index & ((SS(fs) - 1) / 32)) * 32]; /* Pointer to the directory entry */
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
&& !(dptr[DIR_Attr] & AM_VOL)
&& !memcmp(&dptr[DIR_Name], fn, 8+3) ) break;
if (!next_dir_entry(dj)) /* Next directory pointer */
return !ds ? FR_NO_FILE : FR_NO_PATH;
}
if (!ds) { *dir = dptr; return FR_OK; } /* Matched with end of path */
if (!(dptr[DIR_Attr] & AM_DIR)) return FR_NO_PATH; /* Cannot trace because it is a file */
clust = ((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) | LD_WORD(&dptr[DIR_FstClusLO]); /* Get cluster# of the directory */
dj->clust = dj->sclust = clust; /* Restart scanning at the new directory */
dj->sect = clust2sect(fs, clust);
dj->index = 2;
}
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Reserve a directory entry */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT reserve_direntry ( /* FR_OK: successful, FR_DENIED: no free entry, FR_RW_ERROR: a disk error occured */
DIR *dj, /* Target directory to create new entry */
BYTE **dir /* Pointer to pointer to created entry to retutn */
)
{
DWORD clust, sector;
BYTE c, n, *dptr;
FATFS *fs = dj->fs;
 
 
/* Re-initialize directory object */
clust = dj->sclust;
if (clust != 0) { /* Dyanmic directory table */
dj->clust = clust;
dj->sect = clust2sect(fs, clust);
} else { /* Static directory table */
dj->sect = fs->dirbase;
}
dj->index = 0;
 
do {
if (!move_window(fs, dj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dj->index & ((SS(dj->fs) - 1) / 32)) * 32]; /* Pointer to the directory entry */
c = dptr[DIR_Name];
if (c == 0 || c == 0xE5) { /* Found an empty entry */
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dj)); /* Next directory pointer */
/* Reached to end of the directory table */
 
/* Abort when it is a static table or could not stretch dynamic table */
if (clust == 0 || !(clust = create_chain(fs, dj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(fs, 0)) return FR_RW_ERROR;
 
/* Cleanup the expanded table */
fs->winsect = sector = clust2sect(fs, clust);
memset(fs->win, 0, SS(fs));
for (n = fs->csize; n; n--) {
if (disk_write(fs->drive, fs->win, sector, 1) != RES_OK)
return FR_RW_ERROR;
sector++;
}
fs->winflag = 1;
*dir = fs->win;
 
return FR_OK;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Load boot record and check if it is an FAT boot record */
/*-----------------------------------------------------------------------*/
 
static
BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record or error */
FATFS *fs, /* File system object */
DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */
)
{
if (disk_read(fs->drive, fs->win, sect, 1) != RES_OK) /* Load boot record */
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */
return 2;
 
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
return 0;
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
 
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Make sure that the file system is valid */
/*-----------------------------------------------------------------------*/
 
static
FRESULT auto_mount ( /* FR_OK(0): successful, !=0: any error occured */
const char **path, /* Pointer to pointer to the path name (drive number) */
FATFS **rfs, /* Pointer to pointer to the found file system object */
BYTE chk_wp /* !=0: Check media write protection for write access */
)
{
BYTE drv, fmt, *tbl;
DSTATUS stat;
DWORD bootsect, fatsize, totalsect, maxclust;
const char *p = *path;
FATFS *fs;
 
 
/* Get drive number from the path name */
while (*p == ' ') p++; /* Strip leading spaces */
drv = p[0] - '0'; /* Is there a drive number? */
if (drv <= 9 && p[1] == ':')
p += 2; /* Found a drive number, get and strip it */
else
drv = 0; /* No drive number is given, use drive number 0 as default */
if (*p == '/') p++; /* Strip heading slash */
*path = p; /* Return pointer to the path name */
 
/* Check if the drive number is valid or not */
if (drv >= _DRIVES) return FR_INVALID_DRIVE; /* Is the drive number valid? */
*rfs = fs = FatFs[drv]; /* Returen pointer to the corresponding file system object */
if (!fs) return FR_NOT_ENABLED; /* Is the file system object registered? */
 
if (fs->fs_type) { /* If the logical drive has been mounted */
stat = disk_status(fs->drive);
if (!(stat & STA_NOINIT)) { /* and physical drive is kept initialized (has not been changed), */
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
return FR_OK; /* The file system object is valid */
}
}
 
/* The logical drive must be re-mounted. Following code attempts to mount the logical drive */
 
memset(fs, 0, sizeof(FATFS)); /* Clean-up the file system object */
fs->drive = LD2PD(drv); /* Bind the logical drive and a physical drive */
stat = disk_initialize(fs->drive); /* Initialize low level disk I/O layer */
if (stat & STA_NOINIT) /* Check if the drive is ready */
return FR_NOT_READY;
#if S_MAX_SIZ > 512 /* Get disk sector size if needed */
if (disk_ioctl(drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK || SS(fs) > S_MAX_SIZ)
return FR_NO_FILESYSTEM;
#endif
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
/* Search FAT partition on the drive */
fmt = check_fs(fs, bootsect = 0); /* Check sector 0 as an SFD format */
if (fmt == 1) { /* Not an FAT boot record, it may be patitioned */
/* Check a partition listed in top of the partition table */
tbl = &fs->win[MBR_Table + LD2PT(drv) * 16]; /* Partition table */
if (tbl[4]) { /* Is the partition existing? */
bootsect = LD_DWORD(&tbl[8]); /* Partition offset in LBA */
fmt = check_fs(fs, bootsect); /* Check the partition */
}
}
if (fmt || LD_WORD(&fs->win[BPB_BytsPerSec]) != SS(fs)) /* No valid FAT patition is found */
return FR_NO_FILESYSTEM;
 
/* Initialize the file system object */
fatsize = LD_WORD(&fs->win[BPB_FATSz16]); /* Number of sectors per FAT */
if (!fatsize) fatsize = LD_DWORD(&fs->win[BPB_FATSz32]);
fs->sects_fat = fatsize;
fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FAT copies */
fatsize *= fs->n_fats; /* (Number of sectors in FAT area) */
fs->fatbase = bootsect + LD_WORD(&fs->win[BPB_RsvdSecCnt]); /* FAT start sector (lba) */
fs->csize = fs->win[BPB_SecPerClus]; /* Number of sectors per cluster */
fs->n_rootdir = LD_WORD(&fs->win[BPB_RootEntCnt]); /* Nmuber of root directory entries */
totalsect = LD_WORD(&fs->win[BPB_TotSec16]); /* Number of sectors on the file system */
if (!totalsect) totalsect = LD_DWORD(&fs->win[BPB_TotSec32]);
fs->max_clust = maxclust = (totalsect /* max_clust = Last cluster# + 1 */
- LD_WORD(&fs->win[BPB_RsvdSecCnt]) - fatsize - fs->n_rootdir / (SS(fs)/32)
) / fs->csize + 2;
 
fmt = FS_FAT12; /* Determine the FAT sub type */
if (maxclust >= 0xFF7) fmt = FS_FAT16;
if (maxclust >= 0xFFF7) fmt = FS_FAT32;
 
if (fmt == FS_FAT32)
fs->dirbase = LD_DWORD(&fs->win[BPB_RootClus]); /* Root directory start cluster */
else
fs->dirbase = fs->fatbase + fatsize; /* Root directory start sector (lba) */
fs->database = fs->fatbase + fatsize + fs->n_rootdir / (SS(fs)/32); /* Data start sector (lba) */
 
#if !_FS_READONLY
/* Initialize allocation information */
fs->free_clust = 0xFFFFFFFF;
#if _USE_FSINFO
/* Get fsinfo if needed */
if (fmt == FS_FAT32) {
fs->fsi_sector = bootsect + LD_WORD(&fs->win[BPB_FSInfo]);
if (disk_read(fs->drive, fs->win, fs->fsi_sector, 1) == RES_OK &&
LD_WORD(&fs->win[BS_55AA]) == 0xAA55 &&
LD_DWORD(&fs->win[FSI_LeadSig]) == 0x41615252 &&
LD_DWORD(&fs->win[FSI_StrucSig]) == 0x61417272) {
fs->last_clust = LD_DWORD(&fs->win[FSI_Nxt_Free]);
fs->free_clust = LD_DWORD(&fs->win[FSI_Free_Count]);
}
}
#endif
#endif
 
fs->fs_type = fmt; /* FAT syb-type */
fs->id = ++fsid; /* File system mount ID */
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Check if the file/dir object is valid or not */
/*-----------------------------------------------------------------------*/
 
static
FRESULT validate ( /* FR_OK(0): The object is valid, !=0: Invalid */
const FATFS *fs, /* Pointer to the file system object */
WORD id /* Member id of the target object to be checked */
)
{
if (!fs || !fs->fs_type || fs->id != id)
return FR_INVALID_OBJECT;
if (disk_status(fs->drive) & STA_NOINIT)
return FR_NOT_READY;
 
return FR_OK;
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
--------------------------------------------------------------------------*/
 
 
 
/*-----------------------------------------------------------------------*/
/* Mount/Unmount a Locical Drive */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mount (
BYTE drv, /* Logical drive number to be mounted/unmounted */
FATFS *fs /* Pointer to new file system object (NULL for unmount)*/
)
{
if (drv >= _DRIVES) return FR_INVALID_DRIVE;
 
if (FatFs[drv]) FatFs[drv]->fs_type = 0; /* Clear old object */
 
FatFs[drv] = fs; /* Register and clear new object */
if (fs) fs->fs_type = 0;
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Open or Create a File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
fp->fs = NULL; /* Clear file object */
#if !_FS_READONLY
mode &= (FA_READ|FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW);
res = auto_mount(&path, &dj.fs, (BYTE)(mode & (FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)));
#else
mode &= FA_READ;
res = auto_mount(&path, &dj.fs, 0);
#endif
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
 
#if !_FS_READONLY
/* Create or Open a file */
if (mode & (FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)) {
DWORD ps, rs;
if (res != FR_OK) { /* No file, create new */
if (res != FR_NO_FILE) return res;
res = reserve_direntry(&dj, &dir);
if (res != FR_OK) return res;
memset(dir, 0, 32); /* Initialize the new entry with open name */
memcpy(&dir[DIR_Name], fn, 8+3);
dir[DIR_NTres] = fn[11];
mode |= FA_CREATE_ALWAYS;
}
else { /* Any object is already existing */
if (mode & FA_CREATE_NEW) /* Cannot create new */
return FR_EXIST;
if (!dir || (dir[DIR_Attr] & (AM_RDO|AM_DIR))) /* Cannot overwrite it (R/O or DIR) */
return FR_DENIED;
if (mode & FA_CREATE_ALWAYS) { /* Resize it to zero if needed */
rs = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]); /* Get start cluster */
ST_WORD(&dir[DIR_FstClusHI], 0); /* cluster = 0 */
ST_WORD(&dir[DIR_FstClusLO], 0);
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
dj.fs->winflag = 1;
ps = dj.fs->winsect; /* Remove the cluster chain */
if (!remove_chain(dj.fs, rs) || !move_window(dj.fs, ps))
return FR_RW_ERROR;
dj.fs->last_clust = rs - 1; /* Reuse the cluster hole */
}
}
if (mode & FA_CREATE_ALWAYS) {
dir[DIR_Attr] = 0; /* Reset attribute */
ps = get_fattime();
ST_DWORD(&dir[DIR_CrtTime], ps); /* Created time */
dj.fs->winflag = 1;
mode |= FA__WRITTEN; /* Set file changed flag */
}
}
/* Open an existing file */
else {
#endif /* !_FS_READONLY */
if (res != FR_OK) return res; /* Trace failed */
if (!dir || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
return FR_NO_FILE;
#if !_FS_READONLY
if ((mode & FA_WRITE) && (dir[DIR_Attr] & AM_RDO)) /* R/O violation */
return FR_DENIED;
}
fp->dir_sect = dj.fs->winsect; /* Pointer to the directory entry */
fp->dir_ptr = dir;
#endif
fp->flag = mode; /* File access mode */
fp->org_clust = /* File start cluster */
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
fp->fsize = LD_DWORD(&dir[DIR_FileSize]); /* File size */
fp->fptr = 0; fp->csect = 255; /* File pointer */
fp->curr_sect = 0;
fp->fs = dj.fs; fp->id = dj.fs->id; /* Owner file system object of the file */
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_read (
FIL *fp, /* Pointer to the file object */
void *buff, /* Pointer to data buffer */
UINT btr, /* Number of bytes to read */
UINT *br /* Pointer to number of bytes read */
)
{
FRESULT res;
DWORD clust, sect, remain;
UINT rcnt, cc;
BYTE *rbuff = buff;
 
 
*br = 0;
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
if ((fp->fptr % SS(fp->fs)) == 0) { /* On the sector boundary? */
if (fp->csect >= fp->fs->csize) { /* On the cluster boundary? */
clust = (fp->fptr == 0) ? /* On the top of the file? */
fp->org_clust : get_cluster(fp->fs, fp->curr_clust);
if (clust < 2 || clust >= fp->fs->max_clust) goto fr_error;
fp->curr_clust = clust; /* Update current cluster */
fp->csect = 0; /* Reset sector address in the cluster */
}
sect = clust2sect(fp->fs, fp->curr_clust) + fp->csect; /* Get current sector */
cc = btr / SS(fp->fs); /* When remaining bytes >= sector size, */
if (cc) { /* Read maximum contiguous sectors directly */
if (fp->csect + cc > fp->fs->csize) /* Clip at cluster boundary */
cc = fp->fs->csize - fp->csect;
if (disk_read(fp->fs->drive, rbuff, sect, (BYTE)cc) != RES_OK)
goto fr_error;
fp->csect += (BYTE)cc; /* Next sector address in the cluster */
rcnt = SS(fp->fs) * cc; /* Number of bytes transferred */
continue;
}
if (sect != fp->curr_sect) { /* Is window offset changed? */
#if !_FS_READONLY
if (fp->flag & FA__DIRTY) { /* Write back file I/O buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fr_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
#endif
if (disk_read(fp->fs->drive, fp->buffer, sect, 1) != RES_OK) /* Fill file I/O buffer with file data */
goto fr_error;
fp->curr_sect = sect;
}
fp->csect++; /* Next sector address in the cluster */
}
rcnt = SS(fp->fs) - (fp->fptr % SS(fp->fs)); /* Get partial sector from file I/O buffer */
if (rcnt > btr) rcnt = btr;
memcpy(rbuff, &fp->buffer[fp->fptr % SS(fp->fs)], rcnt);
}
 
return FR_OK;
 
fr_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Write File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_write (
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
UINT btw, /* Number of bytes to write */
UINT *bw /* Pointer to number of bytes written */
)
{
FRESULT res;
DWORD clust, sect;
UINT wcnt, cc;
const BYTE *wbuff = buff;
 
 
*bw = 0;
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
if ((fp->fptr % SS(fp->fs)) == 0) { /* On the sector boundary? */
if (fp->csect >= fp->fs->csize) { /* On the cluster boundary? */
if (fp->fptr == 0) { /* On the top of the file? */
clust = fp->org_clust; /* Follow from the origin */
if (clust == 0) /* When there is no cluster chain, */
fp->org_clust = clust = create_chain(fp->fs, 0); /* Create a new cluster chain */
} else { /* Middle or end of the file */
clust = create_chain(fp->fs, fp->curr_clust); /* Trace or streach cluster chain */
}
if (clust == 0) break; /* Could not allocate a new cluster (disk full) */
if (clust == 1 || clust >= fp->fs->max_clust) goto fw_error;
fp->curr_clust = clust; /* Update current cluster */
fp->csect = 0; /* Reset sector address in the cluster */
}
sect = clust2sect(fp->fs, fp->curr_clust) + fp->csect; /* Get current sector */
cc = btw / SS(fp->fs); /* When remaining bytes >= sector size, */
if (cc) { /* Write maximum contiguous sectors directly */
if (fp->csect + cc > fp->fs->csize) /* Clip at cluster boundary */
cc = fp->fs->csize - fp->csect;
if (disk_write(fp->fs->drive, wbuff, sect, (BYTE)cc) != RES_OK)
goto fw_error;
fp->csect += (BYTE)cc; /* Next sector address in the cluster */
wcnt = SS(fp->fs) * cc; /* Number of bytes transferred */
continue;
}
if (sect != fp->curr_sect) { /* Is window offset changed? */
if (fp->flag & FA__DIRTY) { /* Write back file I/O buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fw_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
if (fp->fptr < fp->fsize && /* Fill file I/O buffer with file data */
disk_read(fp->fs->drive, fp->buffer, sect, 1) != RES_OK)
goto fw_error;
fp->curr_sect = sect;
}
fp->csect++; /* Next sector address in the cluster */
}
wcnt = SS(fp->fs) - (fp->fptr % SS(fp->fs)); /* Put partial sector into file I/O buffer */
if (wcnt > btw) wcnt = btw;
memcpy(&fp->buffer[fp->fptr % SS(fp->fs)], wbuff, wcnt);
fp->flag |= FA__DIRTY;
}
 
if (fp->fptr > fp->fsize) fp->fsize = fp->fptr; /* Update file size if needed */
fp->flag |= FA__WRITTEN; /* Set file changed flag */
return FR_OK;
 
fw_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Synchronize the file object */
/*-----------------------------------------------------------------------*/
 
FRESULT f_sync (
FIL *fp /* Pointer to the file object */
)
{
FRESULT res;
DWORD tim;
BYTE *dir;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res == FR_OK) {
if (fp->flag & FA__WRITTEN) { /* Has the file been written? */
/* Write back data buffer if needed */
if (fp->flag & FA__DIRTY) {
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
return FR_RW_ERROR;
fp->flag &= (BYTE)~FA__DIRTY;
}
/* Update the directory entry */
if (!move_window(fp->fs, fp->dir_sect))
return FR_RW_ERROR;
dir = fp->dir_ptr;
dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
ST_DWORD(&dir[DIR_FileSize], fp->fsize); /* Update file size */
ST_WORD(&dir[DIR_FstClusLO], fp->org_clust); /* Update start cluster */
ST_WORD(&dir[DIR_FstClusHI], fp->org_clust >> 16);
tim = get_fattime(); /* Updated time */
ST_DWORD(&dir[DIR_WrtTime], tim);
fp->flag &= (BYTE)~FA__WRITTEN;
res = sync(fp->fs);
}
}
return res;
}
 
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Close File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_close (
FIL *fp /* Pointer to the file object to be closed */
)
{
FRESULT res;
 
 
#if !_FS_READONLY
res = f_sync(fp);
#else
res = validate(fp->fs, fp->id);
#endif
if (res == FR_OK) fp->fs = NULL;
return res;
}
 
 
 
 
#if _FS_MINIMIZE <= 2
/*-----------------------------------------------------------------------*/
/* Seek File R/W Pointer */
/*-----------------------------------------------------------------------*/
 
FRESULT f_lseek (
FIL *fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
{
FRESULT res;
DWORD clust, csize, nsect, ifptr;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR;
if (ofs > fp->fsize /* In read-only mode, clip offset with the file size */
#if !_FS_READONLY
&& !(fp->flag & FA_WRITE)
#endif
) ofs = fp->fsize;
 
ifptr = fp->fptr;
fp->fptr = 0; fp->csect = 255;
nsect = 0;
if (ofs > 0) {
csize = (DWORD)fp->fs->csize * SS(fp->fs); /* Cluster size (byte) */
if (ifptr > 0 &&
(ofs - 1) / csize >= (ifptr - 1) / csize) {/* When seek to same or following cluster, */
fp->fptr = (ifptr - 1) & ~(csize - 1); /* start from the current cluster */
ofs -= fp->fptr;
clust = fp->curr_clust;
} else { /* When seek to back cluster, */
clust = fp->org_clust; /* start from the first cluster */
#if !_FS_READONLY
if (clust == 0) { /* If no cluster chain, create a new chain */
clust = create_chain(fp->fs, 0);
if (clust == 1) goto fk_error;
fp->org_clust = clust;
}
#endif
fp->curr_clust = clust;
}
if (clust != 0) {
while (ofs > csize) { /* Cluster following loop */
#if !_FS_READONLY
if (fp->flag & FA_WRITE) { /* Check if in write mode or not */
clust = create_chain(fp->fs, clust); /* Force streached if in write mode */
if (clust == 0) { /* When disk gets full, clip file size */
ofs = csize; break;
}
} else
#endif
clust = get_cluster(fp->fs, clust); /* Follow cluster chain if not in write mode */
if (clust < 2 || clust >= fp->fs->max_clust) goto fk_error;
fp->curr_clust = clust;
fp->fptr += csize;
ofs -= csize;
}
fp->fptr += ofs;
fp->csect = (BYTE)(ofs / SS(fp->fs)); /* Sector offset in the cluster */
if (ofs & (SS(fp->fs) - 1)) {
nsect = clust2sect(fp->fs, clust) + fp->csect; /* Current sector */
fp->csect++;
}
}
}
if (nsect && nsect != fp->curr_sect) {
#if !_FS_READONLY
if (fp->flag & FA__DIRTY) { /* Write-back dirty buffer if needed */
if (disk_write(fp->fs->drive, fp->buffer, fp->curr_sect, 1) != RES_OK)
goto fk_error;
fp->flag &= (BYTE)~FA__DIRTY;
}
#endif
if (disk_read(fp->fs->drive, fp->buffer, nsect, 1) != RES_OK)
goto fk_error;
fp->curr_sect = nsect;
}
 
#if !_FS_READONLY
if (fp->fptr > fp->fsize) { /* Set changed flag if the file was extended */
fp->fsize = fp->fptr;
fp->flag |= FA__WRITTEN;
}
#endif
 
return FR_OK;
 
fk_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if _FS_MINIMIZE <= 1
/*-----------------------------------------------------------------------*/
/* Create a directroy object */
/*-----------------------------------------------------------------------*/
 
FRESULT f_opendir (
DIR *dj, /* Pointer to directory object to create */
const char *path /* Pointer to the directory path */
)
{
FRESULT res;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj->fs, 0);
if (res == FR_OK) {
res = trace_path(dj, fn, path, &dir); /* Trace the directory path */
if (res == FR_OK) { /* Trace completed */
if (dir) { /* It is not the root dir */
if (dir[DIR_Attr] & AM_DIR) { /* The entry is a directory */
dj->clust = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
dj->sect = clust2sect(dj->fs, dj->clust);
dj->index = 2;
} else { /* The entry is not a directory */
res = FR_NO_FILE;
}
}
dj->id = dj->fs->id;
}
}
 
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Directory Entry in Sequense */
/*-----------------------------------------------------------------------*/
 
FRESULT f_readdir (
DIR *dj, /* Pointer to the directory object */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir, c, res;
 
 
res = validate(dj->fs, dj->id); /* Check validity of the object */
if (res != FR_OK) return res;
 
finfo->fname[0] = 0;
while (dj->sect) {
if (!move_window(dj->fs, dj->sect))
return FR_RW_ERROR;
dir = &dj->fs->win[(dj->index & ((SS(dj->fs) - 1) >> 5)) * 32]; /* pointer to the directory entry */
c = dir[DIR_Name];
if (c == 0) break; /* Has it reached to end of dir? */
if (c != 0xE5 && !(dir[DIR_Attr] & AM_VOL)) /* Is it a valid entry? */
get_fileinfo(finfo, dir);
if (!next_dir_entry(dj)) dj->sect = 0; /* Next entry */
if (finfo->fname[0]) break; /* Found valid entry */
}
 
return FR_OK;
}
 
 
 
 
#if _FS_MINIMIZE == 0
/*-----------------------------------------------------------------------*/
/* Get File Status */
/*-----------------------------------------------------------------------*/
 
FRESULT f_stat (
const char *path, /* Pointer to the file path */
FILINFO *finfo /* Pointer to file information to return */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 0);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir) /* Found an object */
get_fileinfo(finfo, dir);
else /* It is root dir */
res = FR_INVALID_NAME;
}
}
 
return res;
}
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Truncate File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_truncate (
FIL *fp /* Pointer to the file object */
)
{
FRESULT res;
DWORD ncl;
 
 
res = validate(fp->fs, fp->id); /* Check validity of the object */
if (res != FR_OK) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
 
if (fp->fsize > fp->fptr) {
fp->fsize = fp->fptr; /* Set file size to current R/W point */
fp->flag |= FA__WRITTEN;
if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */
if (!remove_chain(fp->fs, fp->org_clust)) goto ft_error;
fp->org_clust = 0;
} else { /* When truncate a part of the file, remove remaining clusters */
ncl = get_cluster(fp->fs, fp->curr_clust);
if (ncl < 2) goto ft_error;
if (ncl < fp->fs->max_clust) {
if (!put_cluster(fp->fs, fp->curr_clust, 0x0FFFFFFF)) goto ft_error;
if (!remove_chain(fp->fs, ncl)) goto ft_error;
}
}
}
 
return FR_OK;
 
ft_error: /* Abort this file due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get Number of Free Clusters */
/*-----------------------------------------------------------------------*/
 
FRESULT f_getfree (
const char *drv, /* Pointer to the logical drive number (root dir) */
DWORD *nclust, /* Pointer to the variable to return number of free clusters */
FATFS **fatfs /* Pointer to pointer to corresponding file system object to return */
)
{
FRESULT res;
DWORD n, clust, sect;
BYTE fat, f, *p;
 
 
/* Get drive number */
res = auto_mount(&drv, fatfs, 0);
if (res != FR_OK) return res;
 
/* If number of free cluster is valid, return it without cluster scan. */
if ((*fatfs)->free_clust <= (*fatfs)->max_clust - 2) {
*nclust = (*fatfs)->free_clust;
return FR_OK;
}
 
/* Get number of free clusters */
fat = (*fatfs)->fs_type;
n = 0;
if (fat == FS_FAT12) {
clust = 2;
do {
if ((WORD)get_cluster(*fatfs, clust) == 0) n++;
} while (++clust < (*fatfs)->max_clust);
} else {
clust = (*fatfs)->max_clust;
sect = (*fatfs)->fatbase;
f = 0; p = 0;
do {
if (!f) {
if (!move_window(*fatfs, sect++)) return FR_RW_ERROR;
p = (*fatfs)->win;
}
if (fat == FS_FAT16) {
if (LD_WORD(p) == 0) n++;
p += 2; f += 1;
} else {
if (LD_DWORD(p) == 0) n++;
p += 4; f += 2;
}
} while (--clust);
}
(*fatfs)->free_clust = n;
#if _USE_FSINFO
if (fat == FS_FAT32) (*fatfs)->fsi_flag = 1;
#endif
 
*nclust = n;
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Delete a File or Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_unlink (
const char *path /* Pointer to the file or directory path */
)
{
FRESULT res;
DIR dj;
BYTE *dir, *sdir;
DWORD dclust, dsect;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res != FR_OK) return res; /* Trace failed */
if (!dir) return FR_INVALID_NAME; /* It is the root directory */
if (dir[DIR_Attr] & AM_RDO) return FR_DENIED; /* It is a R/O object */
dsect = dj.fs->winsect;
dclust = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
 
if (dir[DIR_Attr] & AM_DIR) { /* It is a sub-directory */
dj.clust = dclust; /* Check if the sub-dir is empty or not */
dj.sect = clust2sect(dj.fs, dclust);
dj.index = 2;
do {
if (!move_window(dj.fs, dj.sect)) return FR_RW_ERROR;
sdir = &dj.fs->win[(dj.index & ((SS(dj.fs) - 1) >> 5)) * 32];
if (sdir[DIR_Name] == 0) break;
if (sdir[DIR_Name] != 0xE5 && !(sdir[DIR_Attr] & AM_VOL))
return FR_DENIED; /* The directory is not empty */
} while (next_dir_entry(&dj));
}
 
if (!move_window(dj.fs, dsect)) return FR_RW_ERROR; /* Mark the directory entry 'deleted' */
dir[DIR_Name] = 0xE5;
dj.fs->winflag = 1;
if (!remove_chain(dj.fs, dclust)) return FR_RW_ERROR; /* Remove the cluster chain */
 
return sync(dj.fs);
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Create a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mkdir (
const char *path /* Pointer to the directory path */
)
{
FRESULT res;
DIR dj;
BYTE *dir, *fw, n;
char fn[8+3+1];
DWORD sect, dsect, dclust, pclust, tim;
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res != FR_OK) return res;
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) return FR_EXIST; /* Any file or directory is already existing */
if (res != FR_NO_FILE) return res;
 
res = reserve_direntry(&dj, &dir); /* Reserve a directory entry */
if (res != FR_OK) return res;
sect = dj.fs->winsect;
dclust = create_chain(dj.fs, 0); /* Allocate a cluster for new directory table */
if (dclust == 1) return FR_RW_ERROR;
dsect = clust2sect(dj.fs, dclust);
if (!dsect) return FR_DENIED;
if (!move_window(dj.fs, dsect)) return FR_RW_ERROR;
 
fw = dj.fs->win;
memset(fw, 0, SS(dj.fs)); /* Clear the new directory table */
for (n = 1; n < dj.fs->csize; n++) {
if (disk_write(dj.fs->drive, fw, ++dsect, 1) != RES_OK)
return FR_RW_ERROR;
}
memset(&fw[DIR_Name], ' ', 8+3); /* Create "." entry */
fw[DIR_Name] = '.';
fw[DIR_Attr] = AM_DIR;
tim = get_fattime();
ST_DWORD(&fw[DIR_WrtTime], tim);
memcpy(&fw[32], &fw[0], 32); fw[33] = '.'; /* Create ".." entry */
ST_WORD(&fw[ DIR_FstClusLO], dclust);
ST_WORD(&fw[ DIR_FstClusHI], dclust >> 16);
pclust = dj.sclust;
if (dj.fs->fs_type == FS_FAT32 && pclust == dj.fs->dirbase) pclust = 0;
ST_WORD(&fw[32+DIR_FstClusLO], pclust);
ST_WORD(&fw[32+DIR_FstClusHI], pclust >> 16);
dj.fs->winflag = 1;
 
if (!move_window(dj.fs, sect)) return FR_RW_ERROR;
memset(&dir[0], 0, 32); /* Initialize the new entry */
memcpy(&dir[DIR_Name], fn, 8+3); /* Name */
dir[DIR_NTres] = fn[11];
dir[DIR_Attr] = AM_DIR; /* Attribute */
ST_DWORD(&dir[DIR_WrtTime], tim); /* Crated time */
ST_WORD(&dir[DIR_FstClusLO], dclust); /* Table start cluster */
ST_WORD(&dir[DIR_FstClusHI], dclust >> 16);
 
return sync(dj.fs);
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change File Attribute */
/*-----------------------------------------------------------------------*/
 
FRESULT f_chmod (
const char *path, /* Pointer to the file path */
BYTE value, /* Attribute bits */
BYTE mask /* Attribute mask to change */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (!dir) {
res = FR_INVALID_NAME; /* Root directory */
} else {
mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */
dir[DIR_Attr] = (value & mask) | (dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
res = sync(dj.fs);
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change Timestamp */
/*-----------------------------------------------------------------------*/
 
FRESULT f_utime (
const char *path, /* Pointer to the file/directory name */
const FILINFO *finfo /* Pointer to the timestamp to be set */
)
{
FRESULT res;
DIR dj;
BYTE *dir;
char fn[8+3+1];
 
 
res = auto_mount(&path, &dj.fs, 1);
if (res == FR_OK) {
res = trace_path(&dj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (!dir) {
res = FR_INVALID_NAME; /* Root directory */
} else {
ST_WORD(&dir[DIR_WrtTime], finfo->ftime);
ST_WORD(&dir[DIR_WrtDate], finfo->fdate);
res = sync(dj.fs);
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Rename File/Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_rename (
const char *path_old, /* Pointer to the old name */
const char *path_new /* Pointer to the new name */
)
{
FRESULT res;
DIR dj;
DWORD sect_old;
BYTE *dir_old, *dir_new, direntry[32-11];
char fn[8+3+1];
 
 
res = auto_mount(&path_old, &dj.fs, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dj, fn, path_old, &dir_old); /* Check old object */
if (res != FR_OK) return res; /* The old object is not found */
if (!dir_old) return FR_NO_FILE;
sect_old = dj.fs->winsect; /* Save the object information */
memcpy(direntry, &dir_old[DIR_Attr], 32-11);
 
res = trace_path(&dj, fn, path_new, &dir_new); /* Check new object */
if (res == FR_OK) return FR_EXIST; /* The new object name is already existing */
if (res != FR_NO_FILE) return res; /* Is there no old name? */
res = reserve_direntry(&dj, &dir_new); /* Reserve a directory entry */
if (res != FR_OK) return res;
 
memcpy(&dir_new[DIR_Attr], direntry, 32-11); /* Create new entry */
memcpy(&dir_new[DIR_Name], fn, 8+3);
dir_new[DIR_NTres] = fn[11];
dj.fs->winflag = 1;
 
if (!move_window(dj.fs, sect_old)) return FR_RW_ERROR; /* Delete old entry */
dir_old[DIR_Name] = 0xE5;
 
return sync(dj.fs);
}
 
#endif /* !_FS_READONLY */
#endif /* _FS_MINIMIZE == 0 */
#endif /* _FS_MINIMIZE <= 1 */
#endif /* _FS_MINIMIZE <= 2 */
 
 
 
#if _USE_MKFS && !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Create File System on the Drive */
/*-----------------------------------------------------------------------*/
#define N_ROOTDIR 512 /* Multiple of 32 and <= 2048 */
#define N_FATS 1 /* 1 or 2 */
#define MAX_SECTOR 64000000UL /* Maximum partition size */
#define MIN_SECTOR 2000UL /* Minimum partition size */
 
 
 
FRESULT f_mkfs (
BYTE drv, /* Logical drive number */
BYTE partition, /* Partitioning rule 0:FDISK, 1:SFD */
WORD allocsize /* Allocation unit size [bytes] */
)
{
BYTE fmt, m, *tbl;
DWORD b_part, b_fat, b_dir, b_data; /* Area offset (LBA) */
DWORD n_part, n_rsv, n_fat, n_dir; /* Area size */
DWORD n_clust, n;
FATFS *fs;
DSTATUS stat;
 
 
/* Check validity of the parameters */
if (drv >= _DRIVES) return FR_INVALID_DRIVE;
if (partition >= 2) return FR_MKFS_ABORTED;
for (n = 512; n <= 32768U && n != allocsize; n <<= 1);
if (n != allocsize) return FR_MKFS_ABORTED;
 
/* Check mounted drive and clear work area */
fs = FatFs[drv];
if (!fs) return FR_NOT_ENABLED;
fs->fs_type = 0;
drv = LD2PD(drv);
 
/* Get disk statics */
stat = disk_initialize(drv);
if (stat & STA_NOINIT) return FR_NOT_READY;
if (stat & STA_PROTECT) return FR_WRITE_PROTECTED;
if (disk_ioctl(drv, GET_SECTOR_COUNT, &n_part) != RES_OK || n_part < MIN_SECTOR)
return FR_MKFS_ABORTED;
if (n_part > MAX_SECTOR) n_part = MAX_SECTOR;
b_part = (!partition) ? 63 : 0; /* Boot sector */
n_part -= b_part;
#if S_MAX_SIZ > 512 /* Check disk sector size */
if (disk_ioctl(drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK
|| SS(fs) > S_MAX_SIZ
|| SS(fs) > allocsize)
return FR_MKFS_ABORTED;
#endif
allocsize /= SS(fs); /* Number of sectors per cluster */
 
/* Pre-compute number of clusters and FAT type */
n_clust = n_part / allocsize;
fmt = FS_FAT12;
if (n_clust >= 0xFF5) fmt = FS_FAT16;
if (n_clust >= 0xFFF5) fmt = FS_FAT32;
 
/* Determine offset and size of FAT structure */
switch (fmt) {
case FS_FAT12:
n_fat = ((n_clust * 3 + 1) / 2 + 3 + SS(fs) - 1) / SS(fs);
n_rsv = 1 + partition;
n_dir = N_ROOTDIR * 32 / SS(fs);
break;
case FS_FAT16:
n_fat = ((n_clust * 2) + 4 + SS(fs) - 1) / SS(fs);
n_rsv = 1 + partition;
n_dir = N_ROOTDIR * 32 / SS(fs);
break;
default:
n_fat = ((n_clust * 4) + 8 + SS(fs) - 1) / SS(fs);
n_rsv = 33 - partition;
n_dir = 0;
}
b_fat = b_part + n_rsv; /* FATs start sector */
b_dir = b_fat + n_fat * N_FATS; /* Directory start sector */
b_data = b_dir + n_dir; /* Data start sector */
 
/* Align data start sector to erase block boundary (for flash memory media) */
if (disk_ioctl(drv, GET_BLOCK_SIZE, &n) != RES_OK) return FR_MKFS_ABORTED;
n = (b_data + n - 1) & ~(n - 1);
n_fat += (n - b_data) / N_FATS;
/* b_dir and b_data are no longer used below */
 
/* Determine number of cluster and final check of validity of the FAT type */
n_clust = (n_part - n_rsv - n_fat * N_FATS - n_dir) / allocsize;
if ( (fmt == FS_FAT16 && n_clust < 0xFF5)
|| (fmt == FS_FAT32 && n_clust < 0xFFF5))
return FR_MKFS_ABORTED;
 
/* Create partition table if needed */
if (!partition) {
DWORD n_disk = b_part + n_part;
 
tbl = &fs->win[MBR_Table];
ST_DWORD(&tbl[0], 0x00010180); /* Partition start in CHS */
if (n_disk < 63UL * 255 * 1024) { /* Partition end in CHS */
n_disk = n_disk / 63 / 255;
tbl[7] = (BYTE)n_disk;
tbl[6] = (BYTE)((n_disk >> 2) | 63);
} else {
ST_WORD(&tbl[6], 0xFFFF);
}
tbl[5] = 254;
if (fmt != FS_FAT32) /* System ID */
tbl[4] = (n_part < 0x10000) ? 0x04 : 0x06;
else
tbl[4] = 0x0c;
ST_DWORD(&tbl[8], 63); /* Partition start in LBA */
ST_DWORD(&tbl[12], n_part); /* Partition size in LBA */
ST_WORD(&tbl[64], 0xAA55); /* Signature */
if (disk_write(drv, fs->win, 0, 1) != RES_OK)
return FR_RW_ERROR;
}
 
/* Create boot record */
tbl = fs->win; /* Clear buffer */
memset(tbl, 0, SS(fs));
ST_DWORD(&tbl[BS_jmpBoot], 0x90FEEB); /* Boot code (jmp $, nop) */
ST_WORD(&tbl[BPB_BytsPerSec], SS(fs)); /* Sector size */
tbl[BPB_SecPerClus] = (BYTE)allocsize; /* Sectors per cluster */
ST_WORD(&tbl[BPB_RsvdSecCnt], n_rsv); /* Reserved sectors */
tbl[BPB_NumFATs] = N_FATS; /* Number of FATs */
ST_WORD(&tbl[BPB_RootEntCnt], SS(fs) / 32 * n_dir); /* Number of rootdir entries */
if (n_part < 0x10000) { /* Number of total sectors */
ST_WORD(&tbl[BPB_TotSec16], n_part);
} else {
ST_DWORD(&tbl[BPB_TotSec32], n_part);
}
tbl[BPB_Media] = 0xF8; /* Media descripter */
ST_WORD(&tbl[BPB_SecPerTrk], 63); /* Number of sectors per track */
ST_WORD(&tbl[BPB_NumHeads], 255); /* Number of heads */
ST_DWORD(&tbl[BPB_HiddSec], b_part); /* Hidden sectors */
n = get_fattime(); /* Use current time as a VSN */
if (fmt != FS_FAT32) {
ST_DWORD(&tbl[BS_VolID], n); /* Volume serial number */
ST_WORD(&tbl[BPB_FATSz16], n_fat); /* Number of secters per FAT */
tbl[BS_DrvNum] = 0x80; /* Drive number */
tbl[BS_BootSig] = 0x29; /* Extended boot signature */
memcpy(&tbl[BS_VolLab], "NO NAME FAT ", 19); /* Volume lavel, FAT signature */
} else {
ST_DWORD(&tbl[BS_VolID32], n); /* Volume serial number */
ST_DWORD(&tbl[BPB_FATSz32], n_fat); /* Number of secters per FAT */
ST_DWORD(&tbl[BPB_RootClus], 2); /* Root directory cluster (2) */
ST_WORD(&tbl[BPB_FSInfo], 1); /* FSInfo record (bs+1) */
ST_WORD(&tbl[BPB_BkBootSec], 6); /* Backup boot record (bs+6) */
tbl[BS_DrvNum32] = 0x80; /* Drive number */
tbl[BS_BootSig32] = 0x29; /* Extended boot signature */
memcpy(&tbl[BS_VolLab32], "NO NAME FAT32 ", 19); /* Volume lavel, FAT signature */
}
ST_WORD(&tbl[BS_55AA], 0xAA55); /* Signature */
if (disk_write(drv, tbl, b_part+0, 1) != RES_OK)
return FR_RW_ERROR;
if (fmt == FS_FAT32)
disk_write(drv, tbl, b_part+6, 1);
 
/* Initialize FAT area */
for (m = 0; m < N_FATS; m++) {
memset(tbl, 0, SS(fs)); /* 1st sector of the FAT */
if (fmt != FS_FAT32) {
n = (fmt == FS_FAT12) ? 0x00FFFFF8 : 0xFFFFFFF8;
ST_DWORD(&tbl[0], n); /* Reserve cluster #0-1 (FAT12/16) */
} else {
ST_DWORD(&tbl[0], 0xFFFFFFF8); /* Reserve cluster #0-1 (FAT32) */
ST_DWORD(&tbl[4], 0xFFFFFFFF);
ST_DWORD(&tbl[8], 0x0FFFFFFF); /* Reserve cluster #2 for root dir */
}
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
memset(tbl, 0, SS(fs)); /* Following FAT entries are filled by zero */
for (n = 1; n < n_fat; n++) {
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
}
}
 
/* Initialize Root directory */
m = (BYTE)((fmt == FS_FAT32) ? allocsize : n_dir);
do {
if (disk_write(drv, tbl, b_fat++, 1) != RES_OK)
return FR_RW_ERROR;
} while (--m);
 
/* Create FSInfo record if needed */
if (fmt == FS_FAT32) {
ST_WORD(&tbl[BS_55AA], 0xAA55);
ST_DWORD(&tbl[FSI_LeadSig], 0x41615252);
ST_DWORD(&tbl[FSI_StrucSig], 0x61417272);
ST_DWORD(&tbl[FSI_Free_Count], n_clust - 1);
ST_DWORD(&tbl[FSI_Nxt_Free], 0xFFFFFFFF);
disk_write(drv, tbl, b_part+1, 1);
disk_write(drv, tbl, b_part+7, 1);
}
 
return (disk_ioctl(drv, CTRL_SYNC, NULL) == RES_OK) ? FR_OK : FR_RW_ERROR;
}
 
#endif /* _USE_MKFS && !_FS_READONLY */
 
 
 
 
#if _USE_STRFUNC >= 1
/*-----------------------------------------------------------------------*/
/* Get a string from the file */
/*-----------------------------------------------------------------------*/
char* fgets (
char* buff, /* Pointer to the string buffer to read */
int len, /* Size of string buffer */
FIL* fil /* Pointer to the file object */
)
{
int i = 0;
char *p = buff;
UINT rc;
 
 
while (i < len - 1) { /* Read bytes until buffer gets filled */
f_read(fil, p, 1, &rc);
if (rc != 1) break; /* Break when no data to read */
#if _USE_STRFUNC >= 2
if (*p == '\r') continue; /* Strip '\r' */
#endif
i++;
if (*p++ == '\n') break; /* Break when reached end of line */
}
*p = 0;
return i ? buff : 0; /* When no data read (eof or error), return with error. */
}
 
 
 
#if !_FS_READONLY
#include <stdarg.h>
/*-----------------------------------------------------------------------*/
/* Put a character to the file */
/*-----------------------------------------------------------------------*/
int fputc (
int chr, /* A character to be output */
FIL* fil /* Ponter to the file object */
)
{
UINT bw;
char c;
 
 
#if _USE_STRFUNC >= 2
if (chr == '\n') fputc ('\r', fil); /* LF -> CRLF conversion */
#endif
if (!fil) { /* Special value may be used to switch the destination to any other device */
/* put_console(chr); */
return chr;
}
c = (char)chr;
f_write(fil, &c, 1, &bw); /* Write a byte to the file */
return bw ? chr : EOF; /* Return the resulut */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Put a string to the file */
/*-----------------------------------------------------------------------*/
int fputs (
const char* str, /* Pointer to the string to be output */
FIL* fil /* Pointer to the file object */
)
{
int n;
 
 
for (n = 0; *str; str++, n++) {
if (fputc(*str, fil) == EOF) return EOF;
}
return n;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Put a formatted string to the file */
/*-----------------------------------------------------------------------*/
int fprintf (
FIL* fil, /* Pointer to the file object */
const char* str, /* Pointer to the format string */
... /* Optional arguments... */
)
{
va_list arp;
UCHAR c, f, r;
ULONG val;
char s[16];
int i, w, res, cc;
 
 
va_start(arp, str);
 
for (cc = res = 0; cc != EOF; res += cc) {
c = *str++;
if (c == 0) break; /* End of string */
if (c != '%') { /* Non escape cahracter */
cc = fputc(c, fil);
if (cc != EOF) cc = 1;
continue;
}
w = f = 0;
c = *str++;
if (c == '0') { /* Flag: '0' padding */
f = 1; c = *str++;
}
while (c >= '0' && c <= '9') { /* Precision */
w = w * 10 + (c - '0');
c = *str++;
}
if (c == 'l') { /* Prefix: Size is long int */
f |= 2; c = *str++;
}
if (c == 's') { /* Type is string */
cc = fputs(va_arg(arp, char*), fil);
continue;
}
if (c == 'c') { /* Type is character */
cc = fputc(va_arg(arp, char), fil);
if (cc != EOF) cc = 1;
continue;
}
r = 0;
if (c == 'd') r = 10; /* Type is signed decimal */
if (c == 'u') r = 10; /* Type is unsigned decimal */
if (c == 'X') r = 16; /* Type is unsigned hexdecimal */
if (r == 0) break; /* Unknown type */
if (f & 2) { /* Get the value */
val = (ULONG)va_arg(arp, long);
} else {
val = (c == 'd') ? (ULONG)(long)va_arg(arp, int) : (ULONG)va_arg(arp, unsigned int);
}
/* Put numeral string */
if (c == 'd') {
if (val >= 0x80000000) {
val = 0 - val;
f |= 4;
}
}
i = sizeof(s) - 1; s[i] = 0;
do {
c = (UCHAR)(val % r + '0');
if (c > '9') c += 7;
s[--i] = c;
val /= r;
} while (i && val);
if (i && (f & 4)) s[--i] = '-';
w = sizeof(s) - 1 - w;
while (i && i > w) s[--i] = (f & 1) ? '0' : ' ';
cc = fputs(&s[i], fil);
}
 
va_end(arp);
return (cc == EOF) ? cc : res;
}
 
#endif /* !_FS_READONLY */
#endif /* _USE_STRFUNC >= 1*/
/Designs/Data_loggers/GPSRL03A/ff.h
0,0 → 1,339
/*--------------------------------------------------------------------------/
/ FatFs - FAT file system module include file R0.06 (C)ChaN, 2008
/---------------------------------------------------------------------------/
/ FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2008, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ commercial use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------*/
 
#ifndef _FATFS
 
#define _MCU_ENDIAN 0
/* The _MCU_ENDIAN defines which access method is used to the FAT structure.
/ 1: Enable word access.
/ 2: Disable word access and use byte-by-byte access instead.
/ When the architectural byte order of the MCU is big-endian and/or address
/ miss-aligned access results incorrect behavior, the _MCU_ENDIAN must be set to 2.
/ If it is not the case, it can also be set to 1 for good code efficiency. */
 
#define _FS_READONLY 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
 
#define _FS_MINIMIZE 0
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename are removed.
/ 2: f_opendir and f_readdir are removed in addition to level 1.
/ 3: f_lseek is removed in addition to level 2. */
 
#define _USE_STRFUNC 0
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */
 
#define _USE_MKFS 0
/* When _USE_MKFS is set to 1 and _FS_READONLY is set to 0, f_mkfs function is
/ enabled. */
 
#define _DRIVES 2
/* Number of logical drives to be used. This affects the size of internal table. */
 
#define _MULTI_PARTITION 0
/* When _MULTI_PARTITION is set to 0, each logical drive is bound to same
/ physical drive number and can mount only 1st primaly partition. When it is
/ set to 1, each logical drive can mount a partition listed in Drives[]. */
 
#define _USE_FSINFO 0
/* To enable FSInfo support on FAT32 volume, set _USE_FSINFO to 1. */
 
#define _USE_SJIS 1
/* When _USE_SJIS is set to 1, Shift-JIS code transparency is enabled, otherwise
/ only US-ASCII(7bit) code can be accepted as file/directory name. */
 
#define _USE_NTFLAG 1
/* When _USE_NTFLAG is set to 1, upper/lower case of the file name is preserved.
/ Note that the files are always accessed in case insensitive. */
 
 
#include "integer.h"
 
 
 
/* Definitions corresponds to multiple sector size (not tested) */
#define S_MAX_SIZ 512U /* Do not change */
#if S_MAX_SIZ > 512U
#define SS(fs) ((fs)->s_size)
#else
#define SS(fs) 512U
#endif
 
 
/* File system object structure */
typedef struct _FATFS {
WORD id; /* File system mount ID */
WORD n_rootdir; /* Number of root directory entries */
DWORD winsect; /* Current sector appearing in the win[] */
DWORD sects_fat; /* Sectors per fat */
DWORD max_clust; /* Maximum cluster# + 1 */
DWORD fatbase; /* FAT start sector */
DWORD dirbase; /* Root directory start sector (cluster# for FAT32) */
DWORD database; /* Data start sector */
#if !_FS_READONLY
DWORD last_clust; /* Last allocated cluster */
DWORD free_clust; /* Number of free clusters */
#if _USE_FSINFO
DWORD fsi_sector; /* fsinfo sector */
BYTE fsi_flag; /* fsinfo dirty flag (1:must be written back) */
BYTE pad2;
#endif
#endif
BYTE fs_type; /* FAT sub type */
BYTE csize; /* Number of sectors per cluster */
#if S_MAX_SIZ > 512U
WORD s_size; /* Sector size */
#endif
BYTE n_fats; /* Number of FAT copies */
BYTE drive; /* Physical drive number */
BYTE winflag; /* win[] dirty flag (1:must be written back) */
BYTE pad1;
BYTE win[S_MAX_SIZ]; /* Disk access window for Directory/FAT */
} FATFS;
 
 
/* Directory object structure */
typedef struct _DIR {
WORD id; /* Owner file system mount ID */
WORD index; /* Current index */
FATFS* fs; /* Pointer to the owner file system object */
DWORD sclust; /* Start cluster */
DWORD clust; /* Current cluster */
DWORD sect; /* Current sector */
} DIR;
 
 
/* File object structure */
typedef struct _FIL {
WORD id; /* Owner file system mount ID */
BYTE flag; /* File status flags */
BYTE csect; /* Sector address in the cluster */
FATFS* fs; /* Pointer to the owner file system object */
DWORD fptr; /* File R/W pointer */
DWORD fsize; /* File size */
DWORD org_clust; /* File start cluster */
DWORD curr_clust; /* Current cluster */
DWORD curr_sect; /* Current sector */
#if _FS_READONLY == 0
DWORD dir_sect; /* Sector containing the directory entry */
BYTE* dir_ptr; /* Ponter to the directory entry in the window */
#endif
BYTE buffer[S_MAX_SIZ]; /* File R/W buffer */
} FIL;
 
 
/* File status structure */
typedef struct _FILINFO {
DWORD fsize; /* Size */
WORD fdate; /* Date */
WORD ftime; /* Time */
BYTE fattrib; /* Attribute */
char fname[8+1+3+1]; /* Name (8.3 format) */
} FILINFO;
 
 
 
/* Definitions corresponds to multi partition */
 
#if _MULTI_PARTITION != 0 /* Multiple partition cfg */
 
typedef struct _PARTITION {
BYTE pd; /* Physical drive # (0-255) */
BYTE pt; /* Partition # (0-3) */
} PARTITION;
extern
const PARTITION Drives[]; /* Logical drive# to physical location conversion table */
#define LD2PD(drv) (Drives[drv].pd) /* Get physical drive# */
#define LD2PT(drv) (Drives[drv].pt) /* Get partition# */
 
#else /* Single partition cfg */
 
#define LD2PD(drv) (drv) /* Physical drive# is equal to logical drive# */
#define LD2PT(drv) 0 /* Always mounts the 1st partition */
 
#endif
 
 
/* File function return code (FRESULT) */
 
typedef enum {
FR_OK = 0, /* 0 */
FR_NOT_READY, /* 1 */
FR_NO_FILE, /* 2 */
FR_NO_PATH, /* 3 */
FR_INVALID_NAME, /* 4 */
FR_INVALID_DRIVE, /* 5 */
FR_DENIED, /* 6 */
FR_EXIST, /* 7 */
FR_RW_ERROR, /* 8 */
FR_WRITE_PROTECTED, /* 9 */
FR_NOT_ENABLED, /* 10 */
FR_NO_FILESYSTEM, /* 11 */
FR_INVALID_OBJECT, /* 12 */
FR_MKFS_ABORTED /* 13 */
} FRESULT;
 
 
 
/*-----------------------------------------------------*/
/* FatFs module application interface */
 
FRESULT f_mount (BYTE, FATFS*); /* Mount/Unmount a logical drive */
FRESULT f_open (FIL*, const char*, BYTE); /* Open or create a file */
FRESULT f_read (FIL*, void*, UINT, UINT*); /* Read data from a file */
FRESULT f_write (FIL*, const void*, UINT, UINT*); /* Write data to a file */
FRESULT f_lseek (FIL*, DWORD); /* Move file pointer of a file object */
FRESULT f_close (FIL*); /* Close an open file object */
FRESULT f_opendir (DIR*, const char*); /* Open an existing directory */
FRESULT f_readdir (DIR*, FILINFO*); /* Read a directory item */
FRESULT f_stat (const char*, FILINFO*); /* Get file status */
FRESULT f_getfree (const char*, DWORD*, FATFS**); /* Get number of free clusters on the drive */
FRESULT f_truncate (FIL*); /* Truncate file */
FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT f_unlink (const char*); /* Delete an existing file or directory */
FRESULT f_mkdir (const char*); /* Create a new directory */
FRESULT f_chmod (const char*, BYTE, BYTE); /* Change file/dir attriburte */
FRESULT f_utime (const char*, const FILINFO*); /* Change file/dir timestamp */
FRESULT f_rename (const char*, const char*); /* Rename/Move a file or directory */
FRESULT f_mkfs (BYTE, BYTE, WORD); /* Create a file system on the drive */
#if _USE_STRFUNC
#define feof(fp) ((fp)->fptr == (fp)->fsize)
#define EOF -1
int fputc (int, FIL*); /* Put a character to the file */
int fputs (const char*, FIL*); /* Put a string to the file */
int fprintf (FIL*, const char*, ...); /* Put a formatted string to the file */
char* fgets (char*, int, FIL*); /* Get a string from the file */
#endif
 
/* User defined function to give a current time to fatfs module */
 
DWORD get_fattime (void); /* 31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */
/* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
 
 
 
/* File access control and file status flags (FIL.flag) */
 
#define FA_READ 0x01
#define FA_OPEN_EXISTING 0x00
#if _FS_READONLY == 0
#define FA_WRITE 0x02
#define FA_CREATE_NEW 0x04
#define FA_CREATE_ALWAYS 0x08
#define FA_OPEN_ALWAYS 0x10
#define FA__WRITTEN 0x20
#define FA__DIRTY 0x40
#endif
#define FA__ERROR 0x80
 
 
/* FAT sub type (FATFS.fs_type) */
 
#define FS_FAT12 1
#define FS_FAT16 2
#define FS_FAT32 3
 
 
/* File attribute bits for directory entry */
 
#define AM_RDO 0x01 /* Read only */
#define AM_HID 0x02 /* Hidden */
#define AM_SYS 0x04 /* System */
#define AM_VOL 0x08 /* Volume label */
#define AM_LFN 0x0F /* LFN entry */
#define AM_DIR 0x10 /* Directory */
#define AM_ARC 0x20 /* Archive */
 
 
 
/* Offset of FAT structure members */
 
#define BS_jmpBoot 0
#define BS_OEMName 3
#define BPB_BytsPerSec 11
#define BPB_SecPerClus 13
#define BPB_RsvdSecCnt 14
#define BPB_NumFATs 16
#define BPB_RootEntCnt 17
#define BPB_TotSec16 19
#define BPB_Media 21
#define BPB_FATSz16 22
#define BPB_SecPerTrk 24
#define BPB_NumHeads 26
#define BPB_HiddSec 28
#define BPB_TotSec32 32
#define BS_55AA 510
 
#define BS_DrvNum 36
#define BS_BootSig 38
#define BS_VolID 39
#define BS_VolLab 43
#define BS_FilSysType 54
 
#define BPB_FATSz32 36
#define BPB_ExtFlags 40
#define BPB_FSVer 42
#define BPB_RootClus 44
#define BPB_FSInfo 48
#define BPB_BkBootSec 50
#define BS_DrvNum32 64
#define BS_BootSig32 66
#define BS_VolID32 67
#define BS_VolLab32 71
#define BS_FilSysType32 82
 
#define FSI_LeadSig 0
#define FSI_StrucSig 484
#define FSI_Free_Count 488
#define FSI_Nxt_Free 492
 
#define MBR_Table 446
 
#define DIR_Name 0
#define DIR_Attr 11
#define DIR_NTres 12
#define DIR_CrtTime 14
#define DIR_CrtDate 16
#define DIR_FstClusHI 20
#define DIR_WrtTime 22
#define DIR_WrtDate 24
#define DIR_FstClusLO 26
#define DIR_FileSize 28
 
 
 
/* Multi-byte word access macros */
 
#if _MCU_ENDIAN == 1 /* Use word access */
#define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
#define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
#elif _MCU_ENDIAN == 2 /* Use byte-by-byte access */
#define LD_WORD(ptr) (WORD)(((WORD)*(volatile BYTE*)((ptr)+1)<<8)|(WORD)*(volatile BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(((DWORD)*(volatile BYTE*)((ptr)+3)<<24)|((DWORD)*(volatile BYTE*)((ptr)+2)<<16)|((WORD)*(volatile BYTE*)((ptr)+1)<<8)|*(volatile BYTE*)(ptr))
#define ST_WORD(ptr,val) *(volatile BYTE*)(ptr)=(BYTE)(val); *(volatile BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8)
#define ST_DWORD(ptr,val) *(volatile BYTE*)(ptr)=(BYTE)(val); *(volatile BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(volatile BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(volatile BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24)
#else
#error Do not forget to set _MCU_ENDIAN properly!
#endif
 
 
#define _FATFS
#endif /* _FATFS */
/Designs/Data_loggers/GPSRL03A/glg_sch.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/GPSRL03A/integer.h
0,0 → 1,23
#ifndef _INTEGER
 
typedef int INT;
typedef unsigned int UINT;
 
typedef char CHAR;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
 
typedef short SHORT;
typedef unsigned short USHORT;
typedef unsigned short WORD;
 
typedef long LONG;
typedef unsigned long ULONG;
typedef unsigned long DWORD;
 
typedef unsigned char BOOL;
#define FALSE 0
#define TRUE 1
 
#define _INTEGER
#endif
/Designs/Data_loggers/GPSRL03A/mmc.c
0,0 → 1,487
/*-----------------------------------------------------------------------*/
/* MMC/SDC (in SPI mode) control module (C)ChaN, 2006 */
/*-----------------------------------------------------------------------*/
/* Only rcvr_spi(), xmit_spi(), disk_timerproc(), disk_initialize () and */
/* some macros are platform dependent. */
/*-----------------------------------------------------------------------*/
 
 
#include <avr/io.h>
#include "diskio.h"
 
 
/* Definitions for MMC/SDC command */
#define CMD0 (0x40+0) /* GO_IDLE_STATE */
#define CMD1 (0x40+1) /* SEND_OP_COND */
#define CMD8 (0x40+8) /* SEND_IF_COND */
#define CMD9 (0x40+9) /* SEND_CSD */
#define CMD10 (0x40+10) /* SEND_CID */
#define CMD12 (0x40+12) /* STOP_TRANSMISSION */
#define CMD16 (0x40+16) /* SET_BLOCKLEN */
#define CMD17 (0x40+17) /* READ_SINGLE_BLOCK */
#define CMD18 (0x40+18) /* READ_MULTIPLE_BLOCK */
#define CMD23 (0x40+23) /* SET_BLOCK_COUNT */
#define CMD24 (0x40+24) /* WRITE_BLOCK */
#define CMD25 (0x40+25) /* WRITE_MULTIPLE_BLOCK */
#define CMD41 (0x40+41) /* SEND_OP_COND (ACMD) */
#define CMD55 (0x40+55) /* APP_CMD */
#define CMD58 (0x40+58) /* READ_OCR */
 
 
/* Control signals (Platform dependent) */
#define SELECT() PORTB &= ~_BV(PB2) /* MMC CS = L */
#define DESELECT() PORTB |= _BV(PB2) /* MMC CS = H */
 
#define SOCKPORT PINB /* Socket contact port */
#define SOCKINS 0x01 /* Card detect switch (PB0) */
 
 
 
/*--------------------------------------------------------------------------
 
Module Private Functions
 
---------------------------------------------------------------------------*/
 
static volatile
DSTATUS Stat = STA_NOINIT; /* Disk status */
 
static volatile
BYTE Timer1, Timer2; /* 100Hz decrement timer */
 
static
BYTE CardType; /* b0:MMC, b1:SDC, b2:Block addressing */
 
 
 
/*-----------------------------------------------------------------------*/
/* Transmit a byte to MMC via SPI (Platform dependent) */
/*-----------------------------------------------------------------------*/
 
#define xmit_spi(dat) SPDR=(dat); loop_until_bit_is_set(SPSR,SPIF)
 
 
 
/*-----------------------------------------------------------------------*/
/* Receive a byte from MMC via SPI (Platform dependent) */
/*-----------------------------------------------------------------------*/
 
static
BYTE rcvr_spi (void)
{
SPDR = 0xFF;
loop_until_bit_is_set(SPSR, SPIF);
return SPDR;
}
 
/* Alternative macro to receive data fast */
#define rcvr_spi_m(dst) SPDR=0xFF; loop_until_bit_is_set(SPSR,SPIF); *(dst)=SPDR
 
 
 
/*-----------------------------------------------------------------------*/
/* Wait for card ready */
/*-----------------------------------------------------------------------*/
 
static
BYTE wait_ready (void)
{
BYTE res;
 
 
Timer2 = 50; /* Wait for ready in timeout of 500ms */
rcvr_spi();
do
res = rcvr_spi();
while ((res != 0xFF) && Timer2);
 
return res;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Receive a data packet from MMC */
/*-----------------------------------------------------------------------*/
 
static
BOOL rcvr_datablock (
BYTE *buff, /* Data buffer to store received data */
UINT btr /* Byte count (must be even number) */
)
{
BYTE token;
 
 
Timer1 = 10;
do { /* Wait for data packet in timeout of 100ms */
token = rcvr_spi();
} while ((token == 0xFF) && Timer1);
if(token != 0xFE) return FALSE; /* If not valid data token, retutn with error */
 
do { /* Receive the data block into buffer */
rcvr_spi_m(buff++);
rcvr_spi_m(buff++);
} while (btr -= 2);
rcvr_spi(); /* Discard CRC */
rcvr_spi();
 
return TRUE; /* Return with success */
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
 
#if _READONLY == 0
static
BOOL xmit_datablock (
const BYTE *buff, /* 512 byte data block to be transmitted */
BYTE token /* Data/Stop token */
)
{
BYTE resp, wc;
 
 
if (wait_ready() != 0xFF) return FALSE;
 
xmit_spi(token); /* Xmit data token */
if (token != 0xFD) { /* Is data token */
wc = 0;
do { /* Xmit the 512 byte data block to MMC */
xmit_spi(*buff++);
xmit_spi(*buff++);
} while (--wc);
xmit_spi(0xFF); /* CRC (Dummy) */
xmit_spi(0xFF);
resp = rcvr_spi(); /* Reveive data response */
if ((resp & 0x1F) != 0x05) /* If not accepted, return with error */
return FALSE;
}
 
return TRUE;
}
#endif /* _READONLY */
 
 
 
/*-----------------------------------------------------------------------*/
/* Send a command packet to MMC */
/*-----------------------------------------------------------------------*/
 
static
BYTE send_cmd (
BYTE cmd, /* Command byte */
DWORD arg /* Argument */
)
{
BYTE n, res;
 
 
if (wait_ready() != 0xFF) return 0xFF;
 
/* Send command packet */
xmit_spi(cmd); /* Command */
xmit_spi((BYTE)(arg >> 24)); /* Argument[31..24] */
xmit_spi((BYTE)(arg >> 16)); /* Argument[23..16] */
xmit_spi((BYTE)(arg >> 8)); /* Argument[15..8] */
xmit_spi((BYTE)arg); /* Argument[7..0] */
n = 0;
if (cmd == CMD0) n = 0x95; /* CRC for CMD0(0) */
if (cmd == CMD8) n = 0x87; /* CRC for CMD8(0x1AA) */
xmit_spi(n);
 
/* Receive command response */
if (cmd == CMD12) rcvr_spi(); /* Skip a stuff byte when stop reading */
n = 10; /* Wait for a valid response in timeout of 10 attempts */
do
res = rcvr_spi();
while ((res & 0x80) && --n);
 
return res; /* Return with the response value */
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
---------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Initialize Disk Drive */
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_initialize (
BYTE drv /* Physical drive nmuber (0) */
)
{
BYTE n, ty, ocr[4];
 
 
if (drv) return STA_NOINIT; /* Supports only single drive */
if (Stat & STA_NODISK) return Stat; /* No card in the socket */
 
for (n = 10; n; n--) rcvr_spi(); /* 80 dummy clocks */
 
SELECT(); /* CS = L */
ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
Timer1 = 100; /* Initialization timeout of 1000 msec */
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDC Ver2+ */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
do {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 1UL << 30) == 0) break; /* ACMD41 with HCS bit */
} while (Timer1);
if (Timer1 && send_cmd(CMD58, 0) == 0) { /* Check CCS bit */
for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
ty = (ocr[0] & 0x40) ? 6 : 2;
}
}
} else { /* SDC Ver1 or MMC */
ty = (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) <= 1) ? 2 : 1; /* SDC : MMC */
do {
if (ty == 2) {
if (send_cmd(CMD55, 0) <= 1 && send_cmd(CMD41, 0) == 0) break; /* ACMD41 */
} else {
if (send_cmd(CMD1, 0) == 0) break; /* CMD1 */
}
} while (Timer1);
if (!Timer1 || send_cmd(CMD16, 512) != 0) /* Select R/W block length */
ty = 0;
}
}
CardType = ty;
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
if (ty) { /* Initialization succeded */
Stat &= ~STA_NOINIT; /* Clear STA_NOINIT */
} else { /* Initialization failed */
Stat |= STA_NOINIT; /* Set STA_NOINIT */
}
 
return Stat;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Get Disk Status */
/*-----------------------------------------------------------------------*/
 
DSTATUS disk_status (
BYTE drv /* Physical drive nmuber (0) */
)
{
if (drv) return STA_NOINIT; /* Supports only single drive */
return Stat;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Sector(s) */
/*-----------------------------------------------------------------------*/
 
DRESULT disk_read (
BYTE drv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
if (drv || !count) return RES_PARERR;
if (Stat & STA_NOINIT) return RES_NOTRDY;
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
 
SELECT(); /* CS = L */
 
if (count == 1) { /* Single block read */
if ((send_cmd(CMD17, sector) == 0) /* READ_SINGLE_BLOCK */
&& rcvr_datablock(buff, 512))
count = 0;
}
else { /* Multiple block read */
if (send_cmd(CMD18, sector) == 0) { /* READ_MULTIPLE_BLOCK */
do {
if (!rcvr_datablock(buff, 512)) break;
buff += 512;
} while (--count);
send_cmd(CMD12, 0); /* STOP_TRANSMISSION */
}
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
 
#if _READONLY == 0
DRESULT disk_write (
BYTE drv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
)
{
if (drv || !count) return RES_PARERR;
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (Stat & STA_PROTECT) return RES_WRPRT;
 
if (!(CardType & 4)) sector *= 512; /* Convert to byte address if needed */
 
SELECT(); /* CS = L */
 
if (count == 1) { /* Single block write */
if ((send_cmd(CMD24, sector) == 0) /* WRITE_BLOCK */
&& xmit_datablock(buff, 0xFE))
count = 0;
}
else { /* Multiple block write */
if (CardType & 2) {
send_cmd(CMD55, 0); send_cmd(CMD23, count); /* ACMD23 */
}
if (send_cmd(CMD25, sector) == 0) { /* WRITE_MULTIPLE_BLOCK */
do {
if (!xmit_datablock(buff, 0xFC)) break;
buff += 512;
} while (--count);
if (!xmit_datablock(0, 0xFD)) /* STOP_TRAN token */
count = 1;
}
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return count ? RES_ERROR : RES_OK;
}
#endif /* _READONLY */
 
 
 
/*-----------------------------------------------------------------------*/
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
 
DRESULT disk_ioctl (
BYTE drv, /* Physical drive nmuber (0) */
BYTE ctrl, /* Control code */
void *buff /* Buffer to send/receive data block */
)
{
DRESULT res;
BYTE n, csd[16], *ptr = buff;
WORD csize;
 
 
if (drv) return RES_PARERR;
 
SELECT(); /* CS = L */
 
res = RES_ERROR;
switch (ctrl) {
case GET_SECTOR_COUNT : /* Get number of sectors on the disk (DWORD) */
if ((send_cmd(CMD9, 0) == 0) && rcvr_datablock(csd, 16)) {
if ((csd[0] >> 6) == 1) { /* SDC ver 2.00 */
csize = csd[9] + ((WORD)csd[8] << 8) + 1;
*(DWORD*)buff = (DWORD)csize << 10;
} else { /* MMC or SDC ver 1.XX */
n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2;
csize = (csd[8] >> 6) + ((WORD)csd[7] << 2) + ((WORD)(csd[6] & 3) << 10) + 1;
*(DWORD*)buff = (DWORD)csize << (n - 9);
}
res = RES_OK;
}
break;
 
case GET_SECTOR_SIZE : /* Get sectors on the disk (WORD) */
*(WORD*)buff = 512;
res = RES_OK;
break;
 
case CTRL_SYNC : /* Make sure that data has been written */
if (wait_ready() == 0xFF)
res = RES_OK;
break;
 
case MMC_GET_CSD : /* Receive CSD as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if ((send_cmd(CMD9, 0) == 0) /* READ_CSD */
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_CID : /* Receive CID as a data block (16 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if ((send_cmd(CMD10, 0) == 0) /* READ_CID */
&& rcvr_datablock(ptr, 16))
res = RES_OK;
break;
 
case MMC_GET_OCR : /* Receive OCR as an R3 resp (4 bytes) */
if (Stat & STA_NOINIT) return RES_NOTRDY;
if (send_cmd(CMD58, 0) == 0) { /* READ_OCR */
for (n = 0; n < 4; n++)
*ptr++ = rcvr_spi();
res = RES_OK;
}
break;
 
default:
res = RES_PARERR;
}
 
DESELECT(); /* CS = H */
rcvr_spi(); /* Idle (Release DO) */
 
return res;
}
 
 
 
/*---------------------------------------*/
/* Device timer interrupt procedure */
/* This must be called in period of 10ms */
/* (Platform dependent) */
 
void disk_timerproc (void)
{
static BYTE pv;
BYTE n, s;
 
 
n = Timer1; /* 100Hz decrement timer */
if (n) Timer1 = --n;
n = Timer2;
if (n) Timer2 = --n;
 
n = pv;
pv = SOCKPORT & (SOCKINS); /* Sample socket switch */
 
if (n == pv) { /* Have contacts stabled? */
s = Stat;
if (pv & SOCKINS) /* INS = H (Socket empty) */
s |= (STA_NODISK | STA_NOINIT);
else /* INS = L (Card inserted) */
s &= ~STA_NODISK;
 
Stat = s;
}
}
 
/Designs/Data_loggers/GPSRL03A/tff.c
0,0 → 1,1580
/*--------------------------------------------------------------------------/
/ FatFs - Tiny FAT file system module R0.04b (C)ChaN, 2007
/---------------------------------------------------------------------------/
/ The FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2007, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ profit use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------/
/ Feb 26, 2006 R0.00 Prototype.
/ Apr 29, 2006 R0.01 First stable version.
/ Jun 01, 2006 R0.02 Added FAT12 support.
/ Removed unbuffered mode.
/ Fixed a problem on small (<32M) patition.
/ Jun 10, 2006 R0.02a Added a configuration option (_FS_MINIMUM).
/ Sep 22, 2006 R0.03 Added f_rename().
/ Changed option _FS_MINIMUM to _FS_MINIMIZE.
/ Dec 09, 2006 R0.03a Improved cluster scan algolithm to write files fast.
/ Feb 04, 2007 R0.04 Added FAT32 supprt.
/ Changed some interfaces incidental to FatFs.
/ Changed f_mountdrv() to f_mount().
/ Apr 01, 2007 R0.04a Added a capability of extending file size to f_lseek().
/ Added minimization level 3.
/ Fixed a problem in FAT32 support.
/ xxx xx, 2007 R0.04b Added a configuration option _USE_NTFLAG.
/ Added FSInfo support.
/ Fixed some problems corresponds to FAT32 support.
/ Fixed DBCS name can result FR_INVALID_NAME.
/ Fixed short seek (<= csize) collapses the file object.
/---------------------------------------------------------------------------*/
 
#include <string.h>
#include "tff.h" /* Tiny-FatFs declarations */
#include "diskio.h" /* Include file for user provided disk functions */
 
 
static
FATFS *FatFs; /* Pointer to the file system objects (logical drive) */
static
WORD fsid; /* File system mount ID */
 
 
/*-------------------------------------------------------------------------
 
Module Private Functions
 
-------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Change window offset */
/*-----------------------------------------------------------------------*/
 
static
BOOL move_window ( /* TRUE: successful, FALSE: failed */
DWORD sector /* Sector number to make apperance in the FatFs->win */
) /* Move to zero only writes back dirty window */
{
DWORD wsect;
FATFS *fs = FatFs;
 
 
wsect = fs->winsect;
if (wsect != sector) { /* Changed current window */
#if !_FS_READONLY
BYTE n;
if (fs->winflag) { /* Write back dirty window if needed */
if (disk_write(0, fs->win, wsect, 1) != RES_OK)
return FALSE;
fs->winflag = 0;
if (wsect < (fs->fatbase + fs->sects_fat)) { /* In FAT area */
for (n = fs->n_fats; n >= 2; n--) { /* Refrect the change to all FAT copies */
wsect += fs->sects_fat;
disk_write(0, fs->win, wsect, 1);
}
}
}
#endif
if (sector) {
if (disk_read(0, fs->win, sector, 1) != RES_OK)
return FALSE;
fs->winsect = sector;
}
}
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Clean-up cached data */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT sync (void) /* FR_OK: successful, FR_RW_ERROR: failed */
{
FATFS *fs = FatFs;
 
 
fs->winflag = 1;
if (!move_window(0)) return FR_RW_ERROR;
#if _USE_FSINFO
if (fs->fs_type == FS_FAT32 && fs->fsi_flag) { /* Update FSInfo sector if needed */
fs->winsect = 0;
memset(fs->win, 0, 512);
ST_WORD(&fs->win[BS_55AA], 0xAA55);
ST_DWORD(&fs->win[FSI_LeadSig], 0x41615252);
ST_DWORD(&fs->win[FSI_StrucSig], 0x61417272);
ST_DWORD(&fs->win[FSI_Free_Count], fs->free_clust);
ST_DWORD(&fs->win[FSI_Nxt_Free], fs->last_clust);
disk_write(0, fs->win, fs->fsi_sector, 1);
fs->fsi_flag = 0;
}
#endif
if (disk_ioctl(0, CTRL_SYNC, NULL) != RES_OK) return FR_RW_ERROR;
return FR_OK;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get a cluster status */
/*-----------------------------------------------------------------------*/
 
static
CLUST get_cluster ( /* 0,>=2: successful, 1: failed */
CLUST clust /* Cluster# to get the link information */
)
{
WORD wc, bc;
DWORD fatsect;
FATFS *fs = FatFs;
 
 
if (clust >= 2 && clust < fs->max_clust) { /* Valid cluster# */
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fatsect + bc / 512)) break;
wc = fs->win[bc % 512]; bc++;
if (!move_window(fatsect + bc / 512)) break;
wc |= (WORD)fs->win[bc % 512] << 8;
return (clust & 1) ? (wc >> 4) : (wc & 0xFFF);
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) break;
return LD_WORD(&fs->win[((WORD)clust * 2) % 512]);
#if _FAT32
case FS_FAT32 :
if (!move_window(fatsect + clust / 128)) break;
return LD_DWORD(&fs->win[((WORD)clust * 4) % 512]) & 0x0FFFFFFF;
#endif
}
}
 
return 1; /* There is no cluster information, or an error occured */
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change a cluster status */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL put_cluster ( /* TRUE: successful, FALSE: failed */
CLUST clust, /* Cluster# to change */
CLUST val /* New value to mark the cluster */
)
{
WORD bc;
BYTE *p;
DWORD fatsect;
FATFS *fs = FatFs;
 
 
fatsect = fs->fatbase;
switch (fs->fs_type) {
case FS_FAT12 :
bc = (WORD)clust * 3 / 2;
if (!move_window(fatsect + bc / 512)) return FALSE;
p = &fs->win[bc % 512];
*p = (clust & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val;
bc++;
fs->winflag = 1;
if (!move_window(fatsect + bc / 512)) return FALSE;
p = &fs->win[bc % 512];
*p = (clust & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F));
break;
 
case FS_FAT16 :
if (!move_window(fatsect + clust / 256)) return FALSE;
ST_WORD(&fs->win[((WORD)clust * 2) % 512], (WORD)val);
break;
#if _FAT32
case FS_FAT32 :
if (!move_window(fatsect + clust / 128)) return FALSE;
ST_DWORD(&fs->win[((WORD)clust * 4) % 512], val);
break;
#endif
default :
return FALSE;
}
fs->winflag = 1;
return TRUE;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Remove a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
BOOL remove_chain ( /* TRUE: successful, FALSE: failed */
CLUST clust /* Cluster# to remove chain from */
)
{
CLUST nxt;
FATFS *fs = FatFs;
 
 
while (clust >= 2 && clust < fs->max_clust) {
nxt = get_cluster(clust);
if (nxt == 1) return FALSE;
if (!put_cluster(clust, 0)) return FALSE;
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
fs->free_clust++;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
clust = nxt;
}
return TRUE;
}
#endif
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Stretch or create a cluster chain */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
CLUST create_chain ( /* 0: no free cluster, 1: error, >=2: new cluster number */
CLUST clust /* Cluster# to stretch, 0 means create new */
)
{
CLUST cstat, ncl, scl, mcl;
FATFS *fs = FatFs;
 
 
mcl = fs->max_clust;
if (clust == 0) { /* Create new chain */
scl = fs->last_clust; /* Get last allocated cluster */
if (scl < 2 || scl >= mcl) scl = 1;
}
else { /* Stretch existing chain */
cstat = get_cluster(clust); /* Check the cluster status */
if (cstat < 2) return 1; /* It is an invalid cluster */
if (cstat < mcl) return cstat; /* It is already followed by next cluster */
scl = clust;
}
 
ncl = scl; /* Start cluster */
for (;;) {
ncl++; /* Next cluster */
if (ncl >= mcl) { /* Wrap around */
ncl = 2;
if (ncl > scl) return 0; /* No free custer */
}
cstat = get_cluster(ncl); /* Get the cluster status */
if (cstat == 0) break; /* Found a free cluster */
if (cstat == 1) return 1; /* Any error occured */
if (ncl == scl) return 0; /* No free custer */
}
 
if (!put_cluster(ncl, (CLUST)0x0FFFFFFF)) return 1; /* Mark the new cluster "in use" */
if (clust && !put_cluster(clust, ncl)) return 1; /* Link it to previous one if needed */
 
fs->last_clust = ncl; /* Update fsinfo */
if (fs->free_clust != (CLUST)0xFFFFFFFF) {
fs->free_clust--;
#if _USE_FSINFO
fs->fsi_flag = 1;
#endif
}
 
return ncl; /* Return new cluster number */
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get sector# from cluster# */
/*-----------------------------------------------------------------------*/
 
static
DWORD clust2sect ( /* !=0: sector number, 0: failed - invalid cluster# */
CLUST clust /* Cluster# to be converted */
)
{
FATFS *fs = FatFs;
 
 
clust -= 2;
if (clust >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
return (DWORD)clust * fs->sects_clust + fs->database;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Move directory pointer to next */
/*-----------------------------------------------------------------------*/
 
static
BOOL next_dir_entry ( /* TRUE: successful, FALSE: could not move next */
DIR *dirobj /* Pointer to directory object */
)
{
CLUST clust;
WORD idx;
FATFS *fs = FatFs;
 
 
idx = dirobj->index + 1;
if ((idx & 15) == 0) { /* Table sector changed? */
dirobj->sect++; /* Next sector */
if (!dirobj->clust) { /* In static table */
if (idx >= fs->n_rootdir) return FALSE; /* Reached to end of table */
} else { /* In dynamic table */
if (((idx / 16) & (fs->sects_clust - 1)) == 0) { /* Cluster changed? */
clust = get_cluster(dirobj->clust); /* Get next cluster */
if (clust < 2 || clust >= fs->max_clust) /* Reached to end of table */
return FALSE;
dirobj->clust = clust; /* Initialize for new cluster */
dirobj->sect = clust2sect(clust);
}
}
}
dirobj->index = idx; /* Lower 4 bit of dirobj->index indicates offset in dirobj->sect */
return TRUE;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Get file status from directory entry */
/*-----------------------------------------------------------------------*/
 
#if _FS_MINIMIZE <= 1
static
void get_fileinfo ( /* No return code */
FILINFO *finfo, /* Ptr to store the File Information */
const BYTE *dir /* Ptr to the directory entry */
)
{
BYTE n, c, a;
char *p;
 
 
p = &finfo->fname[0];
a = _USE_NTFLAG ? dir[DIR_NTres] : 0; /* NT flag */
for (n = 0; n < 8; n++) { /* Convert file name (body) */
c = dir[n];
if (c == ' ') break;
if (c == 0x05) c = 0xE5;
if (a & 0x08 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
if (dir[8] != ' ') { /* Convert file name (extension) */
*p++ = '.';
for (n = 8; n < 11; n++) {
c = dir[n];
if (c == ' ') break;
if (a & 0x10 && c >= 'A' && c <= 'Z') c += 0x20;
*p++ = c;
}
}
*p = '\0';
 
finfo->fattrib = dir[DIR_Attr]; /* Attribute */
finfo->fsize = LD_DWORD(&dir[DIR_FileSize]); /* Size */
finfo->fdate = LD_WORD(&dir[DIR_WrtDate]); /* Date */
finfo->ftime = LD_WORD(&dir[DIR_WrtTime]); /* Time */
}
#endif /* _FS_MINIMIZE <= 1 */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Pick a paragraph and create the name in format of directory entry */
/*-----------------------------------------------------------------------*/
 
static
char make_dirfile ( /* 1: error - detected an invalid format, '\0'or'/': next character */
const char **path, /* Pointer to the file path pointer */
char *dirname /* Pointer to directory name buffer {Name(8), Ext(3), NT flag(1)} */
)
{
BYTE n, t, c, a, b;
 
 
memset(dirname, ' ', 8+3); /* Fill buffer with spaces */
a = 0; b = 0x18; /* NT flag */
n = 0; t = 8;
for (;;) {
c = *(*path)++;
if (c == '\0' || c == '/') { /* Reached to end of str or directory separator */
if (n == 0) break;
dirname[11] = _USE_NTFLAG ? (a & b) : 0;
return c;
}
if (c <= ' ' || c == 0x7F) break; /* Reject invisible chars */
if (c == '.') {
if (!(a & 1) && n >= 1 && n <= 8) { /* Enter extension part */
n = 8; t = 11; continue;
}
break;
}
if (_USE_SJIS &&
((c >= 0x81 && c <= 0x9F) || /* Accept S-JIS code */
(c >= 0xE0 && c <= 0xFC))) {
if (n == 0 && c == 0xE5) /* Change heading \xE5 to \x05 */
c = 0x05;
a ^= 1; goto md_l2;
}
if (c == '"') break; /* Reject " */
if (c <= ')') goto md_l1; /* Accept ! # $ % & ' ( ) */
if (c <= ',') break; /* Reject * + , */
if (c <= '9') goto md_l1; /* Accept - 0-9 */
if (c <= '?') break; /* Reject : ; < = > ? */
if (!(a & 1)) { /* These checks are not applied to S-JIS 2nd byte */
if (c == '|') break; /* Reject | */
if (c >= '[' && c <= ']') break;/* Reject [ \ ] */
if (_USE_NTFLAG && c >= 'A' && c <= 'Z')
(t == 8) ? (b &= ~0x08) : (b &= ~0x10);
if (c >= 'a' && c <= 'z') { /* Convert to upper case */
c -= 0x20;
if (_USE_NTFLAG) (t == 8) ? (a |= 0x08) : (a |= 0x10);
}
}
md_l1:
a &= ~1;
md_l2:
if (n >= t) break;
dirname[n++] = c;
}
return 1;
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Trace a file path */
/*-----------------------------------------------------------------------*/
 
static
FRESULT trace_path ( /* FR_OK(0): successful, !=0: error code */
DIR *dirobj, /* Pointer to directory object to return last directory */
char *fn, /* Pointer to last segment name to return */
const char *path, /* Full-path string to trace a file or directory */
BYTE **dir /* Directory pointer in Win[] to retutn */
)
{
CLUST clust;
char ds;
BYTE *dptr = NULL;
FATFS *fs = FatFs;
 
/* Initialize directory object */
clust = fs->dirbase;
#if _FAT32
if (fs->fs_type == FS_FAT32) {
dirobj->clust = dirobj->sclust = clust;
dirobj->sect = clust2sect(clust);
} else
#endif
{
dirobj->clust = dirobj->sclust = 0;
dirobj->sect = clust;
}
dirobj->index = 0;
dirobj->fs = fs;
 
if (*path == '\0') { /* Null path means the root directory */
*dir = NULL; return FR_OK;
}
 
for (;;) {
ds = make_dirfile(&path, fn); /* Get a paragraph into fn[] */
if (ds == 1) return FR_INVALID_NAME;
for (;;) {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
if (dptr[DIR_Name] == 0) /* Has it reached to end of dir? */
return !ds ? FR_NO_FILE : FR_NO_PATH;
if (dptr[DIR_Name] != 0xE5 /* Matched? */
&& !(dptr[DIR_Attr] & AM_VOL)
&& !memcmp(&dptr[DIR_Name], fn, 8+3) ) break;
if (!next_dir_entry(dirobj)) /* Next directory pointer */
return !ds ? FR_NO_FILE : FR_NO_PATH;
}
if (!ds) { *dir = dptr; return FR_OK; } /* Matched with end of path */
if (!(dptr[DIR_Attr] & AM_DIR)) return FR_NO_PATH; /* Cannot trace because it is a file */
clust = /* Get cluster# of the directory */
#if _FAT32
((DWORD)LD_WORD(&dptr[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dptr[DIR_FstClusLO]);
dirobj->clust = dirobj->sclust = clust; /* Restart scannig with the new directory */
dirobj->sect = clust2sect(clust);
dirobj->index = 2;
}
}
 
 
 
/*-----------------------------------------------------------------------*/
/* Reserve a directory entry */
/*-----------------------------------------------------------------------*/
 
#if !_FS_READONLY
static
FRESULT reserve_direntry ( /* FR_OK: successful, FR_DENIED: no free entry, FR_RW_ERROR: a disk error occured */
DIR *dirobj, /* Target directory to create new entry */
BYTE **dir /* Pointer to pointer to created entry to retutn */
)
{
CLUST clust;
DWORD sector;
BYTE c, n, *dptr;
FATFS *fs = FatFs;
 
 
/* Re-initialize directory object */
clust = dirobj->sclust;
if (clust) { /* Dyanmic directory table */
dirobj->clust = clust;
dirobj->sect = clust2sect(clust);
} else { /* Static directory table */
dirobj->sect = fs->dirbase;
}
dirobj->index = 0;
 
do {
if (!move_window(dirobj->sect)) return FR_RW_ERROR;
dptr = &fs->win[(dirobj->index & 15) * 32]; /* Pointer to the directory entry */
c = dptr[DIR_Name];
if (c == 0 || c == 0xE5) { /* Found an empty entry! */
*dir = dptr; return FR_OK;
}
} while (next_dir_entry(dirobj)); /* Next directory pointer */
/* Reached to end of the directory table */
 
/* Abort when static table or could not stretch dynamic table */
if (!clust || !(clust = create_chain(dirobj->clust))) return FR_DENIED;
if (clust == 1 || !move_window(0)) return FR_RW_ERROR;
 
fs->winsect = sector = clust2sect(clust); /* Cleanup the expanded table */
memset(fs->win, 0, 512);
for (n = fs->sects_clust; n; n--) {
if (disk_write(0, fs->win, sector, 1) != RES_OK)
return FR_RW_ERROR;
sector++;
}
fs->winflag = 1;
*dir = fs->win;
return FR_OK;
}
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Load boot record and check if it is a FAT boot record */
/*-----------------------------------------------------------------------*/
 
static
BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record or error */
DWORD sect /* Sector# to check if it is a FAT boot record or not */
)
{
FATFS *fs = FatFs;
 
if (disk_read(0, fs->win, sect, 1) != RES_OK) /* Load boot record */
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature */
return 2;
 
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
return 0;
#if _FAT32
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
#endif
return 1;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Make sure that the file system is valid */
/*-----------------------------------------------------------------------*/
 
static
FRESULT auto_mount ( /* FR_OK(0): successful, !=0: any error occured */
const char **path, /* Pointer to pointer to the path name (drive number) */
BYTE chk_wp /* !=0: Check media write protection for wrinting fuctions */
)
{
BYTE fmt;
DSTATUS stat;
DWORD bootsect, fatsize, totalsect, maxclust;
const char *p = *path;
FATFS *fs = FatFs;
 
 
 
while (*p == ' ') p++; /* Strip leading spaces */
if (*p == '/') p++; /* Strip heading slash */
*path = p; /* Return pointer to the path name */
 
/* Is the file system object registered? */
if (!fs) return FR_NOT_ENABLED;
 
/* Chekck if the logical drive has been mounted or not */
if (fs->fs_type) {
stat = disk_status(0);
if (!(stat & STA_NOINIT)) { /* If the physical drive is kept initialized */
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
return FR_OK; /* The file system object is valid */
}
}
 
/* The logical drive has not been mounted, following code attempts to mount the logical drive */
 
memset(fs, 0, sizeof(FATFS)); /* Clean-up the file system object */
stat = disk_initialize(0); /* Initialize low level disk I/O layer */
if (stat & STA_NOINIT) /* Check if the drive is ready */
return FR_NOT_READY;
#if !_FS_READONLY
if (chk_wp && (stat & STA_PROTECT)) /* Check write protection if needed */
return FR_WRITE_PROTECTED;
#endif
 
/* Search FAT partition on the drive */
fmt = check_fs(bootsect = 0); /* Check sector 0 as an SFD format */
if (fmt == 1) { /* Not a FAT boot record, it may be patitioned */
/* Check a partition listed in top of the partition table */
if (fs->win[MBR_Table+4]) { /* Is the 1st partition existing? */
bootsect = LD_DWORD(&fs->win[MBR_Table+8]); /* Partition offset in LBA */
fmt = check_fs(bootsect); /* Check the partition */
}
}
if (fmt || LD_WORD(&fs->win[BPB_BytsPerSec]) != 512) /* No valid FAT patition is found */
return FR_NO_FILESYSTEM;
 
/* Initialize the file system object */
fatsize = LD_WORD(&fs->win[BPB_FATSz16]); /* Number of sectors per FAT */
if (!fatsize) fatsize = LD_DWORD(&fs->win[BPB_FATSz32]);
fs->sects_fat = (CLUST)fatsize;
fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FAT copies */
fatsize *= fs->n_fats; /* (Number of sectors in FAT area) */
fs->fatbase = bootsect + LD_WORD(&fs->win[BPB_RsvdSecCnt]); /* FAT start sector (lba) */
fs->sects_clust = fs->win[BPB_SecPerClus]; /* Number of sectors per cluster */
fs->n_rootdir = LD_WORD(&fs->win[BPB_RootEntCnt]); /* Nmuber of root directory entries */
totalsect = LD_WORD(&fs->win[BPB_TotSec16]); /* Number of sectors on the file system */
if (!totalsect) totalsect = LD_DWORD(&fs->win[BPB_TotSec32]);
fs->max_clust = maxclust = (totalsect /* Last cluster# + 1 */
- LD_WORD(&fs->win[BPB_RsvdSecCnt]) - fatsize - fs->n_rootdir / 16
) / fs->sects_clust + 2;
 
fmt = FS_FAT12; /* Determine the FAT sub type */
if (maxclust > 0xFF7) fmt = FS_FAT16;
if (maxclust > 0xFFF7)
#if !_FAT32
return FR_NO_FILESYSTEM;
#else
fmt = FS_FAT32;
if (fmt == FS_FAT32)
fs->dirbase = LD_DWORD(&fs->win[BPB_RootClus]); /* Root directory start cluster */
else
#endif
fs->dirbase = fs->fatbase + fatsize; /* Root directory start sector (lba) */
fs->database = fs->fatbase + fatsize + fs->n_rootdir / 16; /* Data start sector (lba) */
fs->fs_type = fmt; /* FAT sub-type */
 
#if !_FS_READONLY
fs->free_clust = (CLUST)0xFFFFFFFF;
#if _USE_FSINFO
/* Load fsinfo sector if needed */
if (fmt == FS_FAT32) {
fs->fsi_sector = bootsect + LD_WORD(&fs->win[BPB_FSInfo]);
if (disk_read(0, fs->win, fs->fsi_sector, 1) == RES_OK &&
LD_WORD(&fs->win[BS_55AA]) == 0xAA55 &&
LD_DWORD(&fs->win[FSI_LeadSig]) == 0x41615252 &&
LD_DWORD(&fs->win[FSI_StrucSig]) == 0x61417272) {
fs->last_clust = LD_DWORD(&fs->win[FSI_Nxt_Free]);
fs->free_clust = LD_DWORD(&fs->win[FSI_Free_Count]);
}
}
#endif
#endif
fs->id = ++fsid; /* File system mount ID */
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Check if the file/dir object is valid or not */
/*-----------------------------------------------------------------------*/
 
static
FRESULT validate ( /* FR_OK(0): The id is valid, !=0: Not valid */
const FATFS *fs, /* Pointer to the file system object */
WORD id /* id member of the target object to be checked */
)
{
if (!fs || fs->id != id)
return FR_INVALID_OBJECT;
if (disk_status(0) & STA_NOINIT)
return FR_NOT_READY;
 
return FR_OK;
}
 
 
 
 
/*--------------------------------------------------------------------------
 
Public Functions
 
--------------------------------------------------------------------------*/
 
 
/*-----------------------------------------------------------------------*/
/* Mount/Unmount a Locical Drive */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mount (
BYTE drv, /* Logical drive number to be mounted/unmounted */
FATFS *fs /* Pointer to new file system object (NULL for unmount)*/
)
{
FATFS *fsobj;
 
 
if (drv) return FR_INVALID_DRIVE;
fsobj = FatFs;
FatFs = fs;
if (fsobj) memset(fsobj, 0, sizeof(FATFS));
if (fs) memset(fs, 0, sizeof(FATFS));
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Open or Create a File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
{
FRESULT res;
BYTE *dir;
DIR dirobj;
char fn[8+3+1];
FATFS *fs = FatFs;
 
 
fp->fs = NULL;
#if !_FS_READONLY
mode &= (FA_READ|FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW);
res = auto_mount(&path, (BYTE)(mode & (FA_WRITE|FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)));
#else
mode &= FA_READ;
res = auto_mount(&path, 0);
#endif
if (res != FR_OK) return res;
 
/* Trace the file path */
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
 
#if !_FS_READONLY
/* Create or Open a File */
if (mode & (FA_CREATE_ALWAYS|FA_OPEN_ALWAYS|FA_CREATE_NEW)) {
CLUST rs;
DWORD dw;
if (res != FR_OK) { /* No file, create new */
if (res != FR_NO_FILE) return res;
res = reserve_direntry(&dirobj, &dir);
if (res != FR_OK) return res;
memset(dir, 0, 32); /* Initialize the new entry */
memcpy(&dir[DIR_Name], fn, 8+3);
dir[DIR_NTres] = fn[11];
mode |= FA_CREATE_ALWAYS;
} else { /* Any object is already existing */
if (mode & FA_CREATE_NEW) /* Cannot create new */
return FR_EXIST;
if (dir == NULL || (dir[DIR_Attr] & (AM_RDO|AM_DIR))) /* Cannot overwrite (R/O or DIR) */
return FR_DENIED;
if (mode & FA_CREATE_ALWAYS) { /* Resize it to zero */
#if _FAT32
rs = ((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) | LD_WORD(&dir[DIR_FstClusLO]);
ST_WORD(&dir[DIR_FstClusHI], 0);
#else
rs = LD_WORD(&dir[DIR_FstClusLO]);
#endif
ST_WORD(&dir[DIR_FstClusLO], 0); /* cluster = 0 */
ST_DWORD(&dir[DIR_FileSize], 0); /* size = 0 */
fs->winflag = 1;
dw = fs->winsect; /* Remove the cluster chain */
if (!remove_chain(rs) || !move_window(dw))
return FR_RW_ERROR;
fs->last_clust = rs - 1; /* Reuse the cluster hole */
}
}
if (mode & FA_CREATE_ALWAYS) {
dir[DIR_Attr] = AM_ARC; /* New attribute */
dw = get_fattime();
ST_DWORD(&dir[DIR_WrtTime], dw); /* Updated time */
ST_DWORD(&dir[DIR_CrtTime], dw); /* Created time */
fs->winflag = 1;
}
}
/* Open a File */
else {
#endif /* !_FS_READONLY */
if (res != FR_OK) return res; /* Trace failed */
if (dir == NULL || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
return FR_NO_FILE;
#if !_FS_READONLY
if ((mode & FA_WRITE) && (dir[DIR_Attr] & AM_RDO)) /* R/O violation */
return FR_DENIED;
}
 
fp->dir_sect = fs->winsect; /* Pointer to the directory entry */
fp->dir_ptr = dir;
#endif
fp->flag = mode; /* File access mode */
fp->org_clust = /* File start cluster */
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
fp->fsize = LD_DWORD(&dir[DIR_FileSize]); /* File size */
fp->fptr = 0; /* File ptr */
fp->sect_clust = 1; /* Sector counter */
fp->fs = fs; fp->id = fs->id; /* Owner file system object of the file */
 
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_read (
FIL *fp, /* Pointer to the file object */
void *buff, /* Pointer to data buffer */
WORD btr, /* Number of bytes to read */
WORD *br /* Pointer to number of bytes read */
)
{
DWORD sect, remain;
WORD rcnt;
CLUST clust;
BYTE cc, *rbuff = buff;
FRESULT res;
FATFS *fs = fp->fs;
 
 
*br = 0;
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_READ)) return FR_DENIED; /* Check access mode */
remain = fp->fsize - fp->fptr;
if (btr > remain) btr = (WORD)remain; /* Truncate read count by number of bytes left */
 
for ( ; btr; /* Repeat until all data transferred */
rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
if (--fp->sect_clust) { /* Decrement left sector counter */
sect = fp->curr_sect + 1; /* Get current sector */
} else { /* On the cluster boundary, get next cluster */
clust = (fp->fptr == 0) ?
fp->org_clust : get_cluster(fp->curr_clust);
if (clust < 2 || clust >= fs->max_clust)
goto fr_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
}
fp->curr_sect = sect; /* Update current sector */
cc = btr / 512; /* When left bytes >= 512, */
if (cc) { /* Read maximum contiguous sectors directly */
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_read(0, rbuff, sect, cc) != RES_OK)
goto fr_error;
fp->sect_clust -= cc - 1;
fp->curr_sect += cc - 1;
rcnt = cc * 512; continue;
}
}
if (!move_window(fp->curr_sect)) goto fr_error; /* Move sector window */
rcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes from sector window */
if (rcnt > btr) rcnt = btr;
memcpy(rbuff, &fs->win[(WORD)fp->fptr % 512], rcnt);
}
 
return FR_OK;
 
fr_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Write File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_write (
FIL *fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
WORD btw, /* Number of bytes to write */
WORD *bw /* Pointer to number of bytes written */
)
{
DWORD sect;
WORD wcnt;
CLUST clust;
BYTE cc;
FRESULT res;
const BYTE *wbuff = buff;
FATFS *fs = fp->fs;
 
 
*bw = 0;
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
if (fp->flag & FA__ERROR) return FR_RW_ERROR; /* Check error flag */
if (!(fp->flag & FA_WRITE)) return FR_DENIED; /* Check access mode */
if (fp->fsize + btw < fp->fsize) return FR_OK; /* File size cannot reach 4GB */
 
for ( ; btw; /* Repeat until all data transferred */
wbuff += wcnt, fp->fptr += wcnt, *bw += wcnt, btw -= wcnt) {
if ((fp->fptr % 512) == 0) { /* On the sector boundary */
if (--(fp->sect_clust)) { /* Decrement left sector counter */
sect = fp->curr_sect + 1; /* Get current sector */
} else { /* On the cluster boundary, get next cluster */
if (fp->fptr == 0) { /* Is top of the file */
clust = fp->org_clust;
if (clust == 0) /* No cluster is created yet */
fp->org_clust = clust = create_chain(0); /* Create a new cluster chain */
} else { /* Middle or end of file */
clust = create_chain(fp->curr_clust); /* Trace or streach cluster chain */
}
if (clust == 0) break; /* Disk full */
if (clust == 1 || clust >= fs->max_clust) goto fw_error;
fp->curr_clust = clust; /* Current cluster */
sect = clust2sect(clust); /* Get current sector */
fp->sect_clust = fs->sects_clust; /* Re-initialize the left sector counter */
}
fp->curr_sect = sect; /* Update current sector */
cc = btw / 512; /* When left bytes >= 512, */
if (cc) { /* Write maximum contiguous sectors directly */
if (cc > fp->sect_clust) cc = fp->sect_clust;
if (disk_write(0, wbuff, sect, cc) != RES_OK)
goto fw_error;
fp->sect_clust -= cc - 1;
fp->curr_sect += cc - 1;
wcnt = cc * 512; continue;
}
if (fp->fptr >= fp->fsize) { /* Flush R/W window if needed */
if (!move_window(0)) goto fw_error;
fs->winsect = fp->curr_sect;
}
}
if (!move_window(fp->curr_sect)) /* Move sector window */
goto fw_error;
wcnt = 512 - (WORD)(fp->fptr % 512); /* Copy fractional bytes bytes to sector window */
if (wcnt > btw) wcnt = btw;
memcpy(&fs->win[(WORD)fp->fptr % 512], wbuff, wcnt);
fs->winflag = 1;
}
 
if (fp->fptr > fp->fsize) fp->fsize = fp->fptr; /* Update file size if needed */
fp->flag |= FA__WRITTEN; /* Set file changed flag */
return FR_OK;
 
fw_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Synchronize between File and Disk */
/*-----------------------------------------------------------------------*/
 
FRESULT f_sync (
FIL *fp /* Pointer to the file object */
)
{
DWORD tim;
BYTE *dir;
FRESULT res;
FATFS *fs = fp->fs;
 
 
res = validate(fs, fp->id); /* Check validity of the object */
if (res == FR_OK) {
if (fp->flag & FA__WRITTEN) { /* Has the file been written? */
/* Update the directory entry */
if (!move_window(fp->dir_sect))
return FR_RW_ERROR;
dir = fp->dir_ptr;
dir[DIR_Attr] |= AM_ARC; /* Set archive bit */
ST_DWORD(&dir[DIR_FileSize], fp->fsize); /* Update file size */
ST_WORD(&dir[DIR_FstClusLO], fp->org_clust); /* Update start cluster */
#if _FAT32
ST_WORD(&dir[DIR_FstClusHI], fp->org_clust >> 16);
#endif
tim = get_fattime(); /* Updated time */
ST_DWORD(&dir[DIR_WrtTime], tim);
fp->flag &= ~FA__WRITTEN;
res = sync();
}
}
return res;
}
 
#endif /* !_FS_READONLY */
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Close File */
/*-----------------------------------------------------------------------*/
 
FRESULT f_close (
FIL *fp /* Pointer to the file object to be closed */
)
{
FRESULT res;
 
 
#if !_FS_READONLY
res = f_sync(fp);
#else
res = validate(fp->fs, fp->id);
#endif
if (res == FR_OK)
fp->fs = NULL;
 
return res;
}
 
 
 
 
#if _FS_MINIMIZE <= 2
/*-----------------------------------------------------------------------*/
/* Seek File Pointer */
/*-----------------------------------------------------------------------*/
 
FRESULT f_lseek (
FIL *fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
{
CLUST clust;
DWORD csize;
BYTE csect;
FRESULT res;
FATFS *fs = fp->fs;
 
 
res = validate(fs, fp->id); /* Check validity of the object */
if (res) return res;
 
if (fp->flag & FA__ERROR) return FR_RW_ERROR;
#if !_FS_READONLY
if (ofs > fp->fsize && !(fp->flag & FA_WRITE))
#else
if (ofs > fp->fsize)
#endif
ofs = fp->fsize;
fp->fptr = 0; fp->sect_clust = 1; /* Set file R/W pointer to top of the file */
 
/* Move file R/W pointer if needed */
if (ofs) {
clust = fp->org_clust; /* Get start cluster */
#if !_FS_READONLY
if (!clust) { /* If the file does not have a cluster chain, create new cluster chain */
clust = create_chain(0);
if (clust == 1) goto fk_error;
fp->org_clust = clust;
}
#endif
if (clust) { /* If the file has a cluster chain, it can be followed */
csize = (DWORD)fs->sects_clust * 512; /* Cluster size in unit of byte */
for (;;) { /* Loop to skip leading clusters */
fp->curr_clust = clust; /* Update current cluster */
if (ofs <= csize) break;
#if !_FS_READONLY
if (fp->flag & FA_WRITE) /* Check if in write mode or not */
clust = create_chain(clust); /* Force streached if in write mode */
else
#endif
clust = get_cluster(clust); /* Only follow cluster chain if not in write mode */
if (clust == 0) { /* Stop if could not follow the cluster chain */
ofs = csize; break;
}
if (clust == 1 || clust >= fs->max_clust) goto fk_error;
fp->fptr += csize; /* Update R/W pointer */
ofs -= csize;
}
csect = (BYTE)((ofs - 1) / 512); /* Sector offset in the cluster */
fp->curr_sect = clust2sect(clust) + csect; /* Current sector */
fp->sect_clust = fs->sects_clust - csect; /* Left sector counter in the cluster */
fp->fptr += ofs; /* Update file R/W pointer */
}
}
#if !_FS_READONLY
if ((fp->flag & FA_WRITE) && fp->fptr > fp->fsize) { /* Set updated flag if in write mode */
fp->fsize = fp->fptr;
fp->flag |= FA__WRITTEN;
}
#endif
 
return FR_OK;
 
fk_error: /* Abort this function due to an unrecoverable error */
fp->flag |= FA__ERROR;
return FR_RW_ERROR;
}
 
 
 
 
#if _FS_MINIMIZE <= 1
/*-----------------------------------------------------------------------*/
/* Open a directroy */
/*-----------------------------------------------------------------------*/
 
FRESULT f_opendir (
DIR *dirobj, /* Pointer to directory object to create */
const char *path /* Pointer to the directory path */
)
{
BYTE *dir;
char fn[8+3+1];
FRESULT res;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 0);
if (res != FR_OK) return res;
 
res = trace_path(dirobj, fn, path, &dir); /* Trace the directory path */
if (res == FR_OK) { /* Trace completed */
if (dir != NULL) { /* It is not the root dir */
if (dir[DIR_Attr] & AM_DIR) { /* The entry is a directory */
dirobj->clust =
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
dirobj->sect = clust2sect(dirobj->clust);
dirobj->index = 2;
} else { /* The entry is not a directory */
res = FR_NO_FILE;
}
}
dirobj->id = fs->id;
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Read Directory Entry in Sequense */
/*-----------------------------------------------------------------------*/
 
FRESULT f_readdir (
DIR *dirobj, /* Pointer to the directory object */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir, c;
FRESULT res;
FATFS *fs = dirobj->fs;
 
 
res = validate(fs, dirobj->id); /* Check validity of the object */
if (res) return res;
 
finfo->fname[0] = 0;
while (dirobj->sect) {
if (!move_window(dirobj->sect))
return FR_RW_ERROR;
dir = &fs->win[(dirobj->index & 15) * 32]; /* pointer to the directory entry */
c = dir[DIR_Name];
if (c == 0) break; /* Has it reached to end of dir? */
if (c != 0xE5 && !(dir[DIR_Attr] & AM_VOL)) /* Is it a valid entry? */
get_fileinfo(finfo, dir);
if (!next_dir_entry(dirobj)) dirobj->sect = 0; /* Next entry */
if (finfo->fname[0]) break; /* Found valid entry */
}
 
return FR_OK;
}
 
 
 
 
#if _FS_MINIMIZE == 0
/*-----------------------------------------------------------------------*/
/* Get File Status */
/*-----------------------------------------------------------------------*/
 
FRESULT f_stat (
const char *path, /* Pointer to the file path */
FILINFO *finfo /* Pointer to file information to return */
)
{
BYTE *dir;
char fn[8+3+1];
FRESULT res;
DIR dirobj;
 
 
res = auto_mount(&path, 0);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir) /* Found an object */
get_fileinfo(finfo, dir);
else /* It is root dir */
res = FR_INVALID_NAME;
}
 
return res;
}
 
 
 
 
#if !_FS_READONLY
/*-----------------------------------------------------------------------*/
/* Get Number of Free Clusters */
/*-----------------------------------------------------------------------*/
 
FRESULT f_getfree (
const char *drv, /* Logical drive number */
DWORD *nclust, /* Pointer to the double word to return number of free clusters */
FATFS **fatfs /* Pointer to pointer to the file system object to return */
)
{
DWORD n, sect;
CLUST clust;
BYTE fat, f, *p;
FRESULT res;
FATFS *fs;
 
 
/* Get drive number */
res = auto_mount(&drv, 0);
if (res != FR_OK) return res;
*fatfs = fs = FatFs;
 
/* If number of free cluster is valid, return it without cluster scan. */
if (fs->free_clust <= fs->max_clust - 2) {
*nclust = fs->free_clust;
return FR_OK;
}
 
/* Count number of free clusters */
fat = fs->fs_type;
n = 0;
if (fat == FS_FAT12) {
clust = 2;
do {
if ((WORD)get_cluster(clust) == 0) n++;
} while (++clust < fs->max_clust);
} else {
clust = fs->max_clust;
sect = fs->fatbase;
f = 0; p = 0;
do {
if (!f) {
if (!move_window(sect++)) return FR_RW_ERROR;
p = fs->win;
}
if (!_FAT32 || fat == FS_FAT16) {
if (LD_WORD(p) == 0) n++;
p += 2; f += 1;
} else {
if (LD_DWORD(p) == 0) n++;
p += 4; f += 2;
}
} while (--clust);
}
fs->free_clust = n;
#if _USE_FSINFO
if (fat == FS_FAT32) fs->fsi_flag = 1;
#endif
 
*nclust = n;
return FR_OK;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Delete a File or a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_unlink (
const char *path /* Pointer to the file or directory path */
)
{
BYTE *dir, *sdir;
DWORD dsect;
char fn[8+3+1];
CLUST dclust;
FRESULT res;
DIR dirobj;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res != FR_OK) return res; /* Trace failed */
if (dir == NULL) return FR_INVALID_NAME; /* It is the root directory */
if (dir[DIR_Attr] & AM_RDO) return FR_DENIED; /* It is a R/O object */
dsect = fs->winsect;
dclust =
#if _FAT32
((DWORD)LD_WORD(&dir[DIR_FstClusHI]) << 16) |
#endif
LD_WORD(&dir[DIR_FstClusLO]);
if (dir[DIR_Attr] & AM_DIR) { /* It is a sub-directory */
dirobj.clust = dclust; /* Check if the sub-dir is empty or not */
dirobj.sect = clust2sect(dclust);
dirobj.index = 2;
do {
if (!move_window(dirobj.sect)) return FR_RW_ERROR;
sdir = &fs->win[(dirobj.index & 15) * 32];
if (sdir[DIR_Name] == 0) break;
if (sdir[DIR_Name] != 0xE5 && !(sdir[DIR_Attr] & AM_VOL))
return FR_DENIED; /* The directory is not empty */
} while (next_dir_entry(&dirobj));
}
 
if (!move_window(dsect)) return FR_RW_ERROR; /* Mark the directory entry 'deleted' */
dir[DIR_Name] = 0xE5;
fs->winflag = 1;
if (!remove_chain(dclust)) return FR_RW_ERROR; /* Remove the cluster chain */
 
return sync();
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Create a Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_mkdir (
const char *path /* Pointer to the directory path */
)
{
BYTE *dir, *fw, n;
char fn[8+3+1];
DWORD sect, dsect, tim;
CLUST dclust, pclust;
FRESULT res;
DIR dirobj;
FATFS *fs = FatFs;
 
 
res = auto_mount(&path, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) return FR_EXIST; /* Any file or directory is already existing */
if (res != FR_NO_FILE) return res;
 
res = reserve_direntry(&dirobj, &dir); /* Reserve a directory entry */
if (res != FR_OK) return res;
sect = fs->winsect;
dclust = create_chain(0); /* Allocate a cluster for new directory table */
if (dclust == 1) return FR_RW_ERROR;
dsect = clust2sect(dclust);
if (!dsect) return FR_DENIED;
if (!move_window(dsect)) return FR_RW_ERROR;
 
fw = fs->win;
memset(fw, 0, 512); /* Clear the directory table */
for (n = 1; n < fs->sects_clust; n++) {
if (disk_write(0, fw, ++dsect, 1) != RES_OK)
return FR_RW_ERROR;
}
 
memset(&fw[DIR_Name], ' ', 8+3); /* Create "." entry */
fw[DIR_Name] = '.';
fw[DIR_Attr] = AM_DIR;
tim = get_fattime();
ST_DWORD(&fw[DIR_WrtTime], tim);
memcpy(&fw[32], &fw[0], 32); fw[33] = '.'; /* Create ".." entry */
pclust = dirobj.sclust;
#if _FAT32
ST_WORD(&fw[ DIR_FstClusHI], dclust >> 16);
if (fs->fs_type == FS_FAT32 && pclust == fs->dirbase) pclust = 0;
ST_WORD(&fw[32+DIR_FstClusHI], pclust >> 16);
#endif
ST_WORD(&fw[ DIR_FstClusLO], dclust);
ST_WORD(&fw[32+DIR_FstClusLO], pclust);
fs->winflag = 1;
 
if (!move_window(sect)) return FR_RW_ERROR;
memset(&dir[0], 0, 32); /* Clean-up the new entry */
memcpy(&dir[DIR_Name], fn, 8+3); /* Name */
dir[DIR_NTres] = fn[11];
dir[DIR_Attr] = AM_DIR; /* Attribute */
ST_DWORD(&dir[DIR_WrtTime], tim); /* Crated time */
ST_WORD(&dir[DIR_FstClusLO], dclust); /* Table start cluster */
#if _FAT32
ST_WORD(&dir[DIR_FstClusHI], dclust >> 16);
#endif
 
return sync();
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Change File Attribute */
/*-----------------------------------------------------------------------*/
 
FRESULT f_chmod (
const char *path, /* Pointer to the file path */
BYTE value, /* Attribute bits */
BYTE mask /* Attribute mask to change */
)
{
FRESULT res;
BYTE *dir;
DIR dirobj;
char fn[8+3+1];
 
 
res = auto_mount(&path, 1);
if (res == FR_OK) {
res = trace_path(&dirobj, fn, path, &dir); /* Trace the file path */
if (res == FR_OK) { /* Trace completed */
if (dir == NULL) {
res = FR_INVALID_NAME;
} else {
mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */
dir[DIR_Attr] = (value & mask) | (dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */
res = sync();
}
}
}
return res;
}
 
 
 
 
/*-----------------------------------------------------------------------*/
/* Rename File/Directory */
/*-----------------------------------------------------------------------*/
 
FRESULT f_rename (
const char *path_old, /* Pointer to the old name */
const char *path_new /* Pointer to the new name */
)
{
FRESULT res;
DWORD sect_old;
BYTE *dir_old, *dir_new, direntry[32-11];
DIR dirobj;
char fn[8+3+1];
FATFS *fs = FatFs;
 
 
res = auto_mount(&path_old, 1);
if (res != FR_OK) return res;
 
res = trace_path(&dirobj, fn, path_old, &dir_old); /* Check old object */
if (res != FR_OK) return res; /* The old object is not found */
if (!dir_old) return FR_NO_FILE;
sect_old = fs->winsect; /* Save the object information */
memcpy(direntry, &dir_old[11], 32-11);
 
res = trace_path(&dirobj, fn, path_new, &dir_new); /* Check new object */
if (res == FR_OK) return FR_EXIST; /* The new object name is already existing */
if (res != FR_NO_FILE) return res; /* Is there no old name? */
res = reserve_direntry(&dirobj, &dir_new); /* Reserve a directory entry */
if (res != FR_OK) return res;
 
memcpy(&dir_new[DIR_Attr], direntry, 32-11); /* Create new entry */
memcpy(&dir_new[DIR_Name], fn, 8+3);
dir_new[DIR_NTres] = fn[11];
fs->winflag = 1;
 
if (!move_window(sect_old)) return FR_RW_ERROR; /* Remove old entry */
dir_old[DIR_Name] = 0xE5;
 
return sync();
}
 
#endif /* !_FS_READONLY */
#endif /* _FS_MINIMIZE == 0 */
#endif /* _FS_MINIMIZE <= 1 */
#endif /* _FS_MINIMIZE <= 2 */
 
/Designs/Data_loggers/GPSRL03A/tff.h
0,0 → 1,289
/*--------------------------------------------------------------------------/
/ Tiny-FatFs - FAT file system module include file R0.04b (C)ChaN, 2007
/---------------------------------------------------------------------------/
/ FatFs module is an experimenal project to implement FAT file system to
/ cheap microcontrollers. This is a free software and is opened for education,
/ research and development under license policy of following trems.
/
/ Copyright (C) 2007, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is no warranty.
/ * You can use, modify and/or redistribute it for personal, non-profit or
/ profit use without any restriction under your responsibility.
/ * Redistributions of source code must retain the above copyright notice.
/
/---------------------------------------------------------------------------*/
 
#ifndef _FATFS
 
#define _MCU_ENDIAN 1
/* The _MCU_ENDIAN defines which access method is used to the FAT structure.
/ 1: Enable word access.
/ 2: Disable word access and use byte-by-byte access instead.
/ When the architectural byte order of the MCU is big-endian and/or address
/ miss-aligned access is prohibited, the _MCU_ENDIAN must be set to 2.
/ If it is not the case, it can be set to 1 for good code efficiency. */
 
#define _FS_READONLY 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename
/ and useless f_getfree. */
 
#define _FS_MINIMIZE 2
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod and f_rename are removed.
/ 2: f_opendir and f_readdir are removed in addition to level 1.
/ 3: f_lseek is removed in addition to level 2. */
 
#define _FAT32 0
/* To support FAT32 in addition of FAT12/16, set _FAT32 to 1. */
 
#define _USE_FSINFO 0
/* To support FSInfo on FAT32 volume, set _USE_FSINFO to 1. */
 
#define _USE_SJIS 0
/* When _USE_SJIS is set to 1, Shift-JIS code transparency is enabled, otherwise
/ only US-ASCII(7bit) code can be accepted as file/directory name. */
 
#define _USE_NTFLAG 1
/* When _USE_NTFLAG is set to 1, upper/lower case of the file name is preserved. */
 
 
#include "integer.h"
 
 
/* Type definition for cluster number */
#if _FAT32
typedef DWORD CLUST;
#else
typedef WORD CLUST;
#undef _USE_FSINFO
#define _USE_FSINFO 0
#endif
 
 
/* File system object structure */
typedef struct _FATFS {
WORD id; /* File system mount ID */
WORD n_rootdir; /* Number of root directory entries */
DWORD winsect; /* Current sector appearing in the win[] */
DWORD fatbase; /* FAT start sector */
DWORD dirbase; /* Root directory start sector */
DWORD database; /* Data start sector */
CLUST sects_fat; /* Sectors per fat */
CLUST max_clust; /* Maximum cluster# + 1 */
#if !_FS_READONLY
CLUST last_clust; /* Last allocated cluster */
CLUST free_clust; /* Number of free clusters */
#if _USE_FSINFO
DWORD fsi_sector; /* fsinfo sector */
BYTE fsi_flag; /* fsinfo dirty flag (1:must be written back) */
BYTE pad1;
#endif
#endif
BYTE fs_type; /* FAT sub type */
BYTE sects_clust; /* Sectors per cluster */
BYTE n_fats; /* Number of FAT copies */
BYTE winflag; /* win[] dirty flag (1:must be written back) */
BYTE win[512]; /* Disk access window for Directory/FAT/File */
} FATFS;
 
 
/* Directory object structure */
typedef struct _DIR {
WORD id; /* Owner file system mount ID */
WORD index; /* Current index */
FATFS* fs; /* Pointer to the owner file system object */
CLUST sclust; /* Start cluster */
CLUST clust; /* Current cluster */
DWORD sect; /* Current sector */
} DIR;
 
 
/* File object structure */
typedef struct _FIL {
WORD id; /* Owner file system mount ID */
BYTE flag; /* File status flags */
BYTE sect_clust; /* Left sectors in cluster */
FATFS* fs; /* Pointer to owner file system */
DWORD fptr; /* File R/W pointer */
DWORD fsize; /* File size */
CLUST org_clust; /* File start cluster */
CLUST curr_clust; /* Current cluster */
DWORD curr_sect; /* Current sector */
#if !_FS_READONLY
DWORD dir_sect; /* Sector containing the directory entry */
BYTE* dir_ptr; /* Ponter to the directory entry in the window */
#endif
} FIL;
 
 
/* File status structure */
typedef struct _FILINFO {
DWORD fsize; /* Size */
WORD fdate; /* Date */
WORD ftime; /* Time */
BYTE fattrib; /* Attribute */
char fname[8+1+3+1]; /* Name (8.3 format) */
} FILINFO;
 
 
/* File function return code (FRESULT) */
 
typedef enum {
FR_OK = 0, /* 0 */
FR_NOT_READY, /* 1 */
FR_NO_FILE, /* 2 */
FR_NO_PATH, /* 3 */
FR_INVALID_NAME, /* 4 */
FR_INVALID_DRIVE, /* 5 */
FR_DENIED, /* 6 */
FR_EXIST, /* 7 */
FR_RW_ERROR, /* 8 */
FR_WRITE_PROTECTED, /* 9 */
FR_NOT_ENABLED, /* 10 */
FR_NO_FILESYSTEM, /* 11 */
FR_INVALID_OBJECT /* 12 */
} FRESULT;
 
 
 
/*-----------------------------------------------------*/
/* FatFs module application interface */
 
FRESULT f_mount (BYTE, FATFS*); /* Mount/Unmount a logical drive */
FRESULT f_open (FIL*, const char*, BYTE); /* Open or create a file */
FRESULT f_read (FIL*, void*, WORD, WORD*); /* Read data from a file */
FRESULT f_write (FIL*, const void*, WORD, WORD*); /* Write data to a file */
FRESULT f_lseek (FIL*, DWORD); /* Move file pointer of a file object */
FRESULT f_close (FIL*); /* Close an open file object */
FRESULT f_opendir (DIR*, const char*); /* Open an existing directory */
FRESULT f_readdir (DIR*, FILINFO*); /* Read a directory item */
FRESULT f_stat (const char*, FILINFO*); /* Get file status */
FRESULT f_getfree (const char*, DWORD*, FATFS**); /* Get number of free clusters on the drive */
FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT f_unlink (const char*); /* Delete an existing file or directory */
FRESULT f_mkdir (const char*); /* Create a new directory */
FRESULT f_chmod (const char*, BYTE, BYTE); /* Change file/dir attriburte */
FRESULT f_rename (const char*, const char*); /* Rename/Move a file or directory */
 
 
/* User defined function to give a current time to fatfs module */
 
DWORD get_fattime (void); /* 31-25: Year(0-127 +1980), 24-21: Month(1-12), 20-16: Day(1-31) */
/* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
 
 
 
/* File access control and file status flags (FIL.flag) */
 
#define FA_READ 0x01
#define FA_OPEN_EXISTING 0x00
#if !_FS_READONLY
#define FA_WRITE 0x02
#define FA_CREATE_NEW 0x04
#define FA_CREATE_ALWAYS 0x08
#define FA_OPEN_ALWAYS 0x10
#define FA__WRITTEN 0x20
#endif
#define FA__ERROR 0x80
 
 
/* FAT sub type (FATFS.fs_type) */
 
#define FS_FAT12 1
#define FS_FAT16 2
#define FS_FAT32 3
 
 
/* File attribute bits for directory entry */
 
#define AM_RDO 0x01 /* Read only */
#define AM_HID 0x02 /* Hidden */
#define AM_SYS 0x04 /* System */
#define AM_VOL 0x08 /* Volume label */
#define AM_LFN 0x0F /* LFN entry */
#define AM_DIR 0x10 /* Directory */
#define AM_ARC 0x20 /* Archive */
 
 
 
/* Offset of FAT structure members */
 
#define BS_jmpBoot 0
#define BS_OEMName 3
#define BPB_BytsPerSec 11
#define BPB_SecPerClus 13
#define BPB_RsvdSecCnt 14
#define BPB_NumFATs 16
#define BPB_RootEntCnt 17
#define BPB_TotSec16 19
#define BPB_Media 21
#define BPB_FATSz16 22
#define BPB_SecPerTrk 24
#define BPB_NumHeads 26
#define BPB_HiddSec 28
#define BPB_TotSec32 32
#define BS_55AA 510
 
#define BS_DrvNum 36
#define BS_BootSig 38
#define BS_VolID 39
#define BS_VolLab 43
#define BS_FilSysType 54
 
#define BPB_FATSz32 36
#define BPB_ExtFlags 40
#define BPB_FSVer 42
#define BPB_RootClus 44
#define BPB_FSInfo 48
#define BPB_BkBootSec 50
#define BS_DrvNum32 64
#define BS_BootSig32 66
#define BS_VolID32 67
#define BS_VolLab32 71
#define BS_FilSysType32 82
 
#define FSI_LeadSig 0
#define FSI_StrucSig 484
#define FSI_Free_Count 488
#define FSI_Nxt_Free 492
 
#define MBR_Table 446
 
#define DIR_Name 0
#define DIR_Attr 11
#define DIR_NTres 12
#define DIR_CrtTime 14
#define DIR_CrtDate 16
#define DIR_FstClusHI 20
#define DIR_WrtTime 22
#define DIR_WrtDate 24
#define DIR_FstClusLO 26
#define DIR_FileSize 28
 
 
 
/* Multi-byte word access macros */
 
#if _MCU_ENDIAN == 1 /* Use word access */
#define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
#define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
#else
#if _MCU_ENDIAN == 2 /* Use byte-by-byte access */
#define LD_WORD(ptr) (WORD)(((WORD)*(BYTE*)((ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
#define LD_DWORD(ptr) (DWORD)(((DWORD)*(BYTE*)((ptr)+3)<<24)|((DWORD)*(BYTE*)((ptr)+2)<<16)|((WORD)*(BYTE*)((ptr)+1)<<8)|*(BYTE*)(ptr))
#define ST_WORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8)
#define ST_DWORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24)
#else
#error Do not forget to set _MCU_ENDIAN properly!
#endif
#endif
 
 
 
#define _FATFS
#endif /* _FATFS */
/Designs/Data_loggers/GPSRL03A/tt.ini
0,0 → 1,0
bps=115200
/Designs/Data_loggers/galileo_experiment/SW/main.c
0,0 → 1,85
#include "main.h"
 
#define REV "$Rev$"
 
unsigned int32 time; // pocitadlo preteceni casovace
 
#define BUFLEN 100
 
#int_RTCC
void RTCC_isr(void) // preruseni od pretekleho casovace
{
time++;
}
 
// Includes all USB code and interrupts, as well as the CDC API
#include <usb_cdc.h>
#include <math.h>
 
float quadraticerror(float average, float buf[], int16 size) // compute average quadratic error
{
int16 i;
float err=0;
 
for(i=0; i<size; i++) err += (buf[i]-average)*(buf[i]-average); // sum quadratic errors
err = sqrt((1/(float)size)*err);
return err;
}
 
void main()
{
 
float x[BUFLEN], y[BUFLEN], z[BUFLEN];
float xavg, yavg, zavg;
int i;
port_b_pullups(FALSE);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
setup_adc_ports(AN0_TO_AN2|VSS_VREF);
setup_adc(ADC_CLOCK_DIV_32);
 
usb_init(); // initialise USB module
while(!usb_cdc_connected());
time=0;
set_timer0(0);
printf(usb_cdc_putc,"time[s] X Xerr Y Yerr Z Zerr \n\r");
 
while(usb_cdc_connected()) // pockej nez se pripoji seriovy port PC
{
for(i=0; i <BUFLEN; i++)
{
set_adc_channel(0);
delay_us(10);
x[i]=read_adc();
xavg+=x[i];
set_adc_channel(1);
delay_us(10);
y[i]=read_adc();
yavg+=y[i];
 
set_adc_channel(2);
delay_us(10);
z[i]=read_adc();
zavg+=z[i];
}
xavg=xavg/BUFLEN;
yavg=yavg/BUFLEN;
zavg=zavg/BUFLEN;
 
// odesli namerene hodnoty
printf(usb_cdc_putc, "%7.3f %4.3f %4.3f %4.3f %4.3f %4.3f %4.3f \n\r",((time << 16) + get_timer0())/15625.0, xavg, quadraticerror(xavg,x,BUFLEN), yavg, quadraticerror(yavg,y,BUFLEN), zavg, quadraticerror(zavg,z,BUFLEN)); //konstanta k je kvuli prevodu do rozzumnych jednotek [s]
}
}
/Designs/Data_loggers/galileo_experiment/SW/main.hex
0,0 → 1,613
:020000040000FA
:04000000B1EF0FF05D
:08000800056ED8CF06F0E0CF31
:1000100007F00001E9CF0DF0EACF08F0E1CF09F0D9
:10002000E2CF0AF0D9CF0BF0DACF0CF0F3CF14F017
:10003000F4CF15F0FACF16F000C00FF001C010F0A9
:1000400002C011F003C012F004C013F0F2AA2CEFAA
:1000500000F0F2B42FEF01F0A0AA32EF00F0A1BA45
:100060003AEF09F00FC000F010C001F011C002F02B
:1000700012C003F013C004F00DC0E9FF08C0EAFF8E
:10008000088E09C0E1FF0AC0E2FF0BC0D9FF0CC017
:10009000DAFF14C0F3FF15C0F4FF16C0FAFF0550D5
:1000A00007C0E0FF06C0D8FF1000F76ABA0FF66E6F
:1000B000000EF7220900F5501200000302FFFFFFB7
:1000C000FFFFFFFFFFFFFFFFFFFFF76ADA0FF66E8C
:1000D000000EF7220900F550120000FF02FFFFFF9B
:1000E000FFFFFFFFFFFFFFFFFFFFF76AFA0FF66E4C
:1000F000000EF7220900F5501200400008004000F1
:1001000000000000000000000000000000000000EF
:1001100000000000000000000000F76A2A0FF66EE1
:10012000010EF7220900F5501200400000004000C7
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000F76A5A0FF66E81
:10015000010EF7220900F5501200090243000201C6
:100160000080320904000001020201000524001091
:1001700001042402020524060001052401000107F0
:100180000581030800FA09040100020A00000007C3
:100190000502024100010705820241000100F76AE1
:1001A000AE0FF66E010EF7220900F55012000200A4
:1001B000F76AC00FF66E010EF7220900F550120023
:1001C00012171B20FFFFFFFFF76AD80FF66E010E14
:1001D000F7220900F5501200120110010200004040
:1001E00061043300000101020001F76AFA0FF66EA4
:1001F000010EF7220900F550120004030904080358
:1002000043004300530018035300450052004900C7
:1002100041004C002000440045004D004F00F2CF4B
:100220000EF0F29EF76A380FF66E020EF722090002
:10023000F5500EBEF28E120074696D655B735D2021
:10024000205820205865727220205920205965724C
:100250007220205A20205A657272200A0D00010E69
:100260001926D8B01A2AD8B41B2AD8B41C2AF2945A
:1002700032EF00F06D92699468A402D06894FCD7C4
:1002800045EF09F0400E0401016F040E036F180ED4
:10029000026F880E006F046B040E076F580E066F16
:1002A0000001000C70A002D0EDDF7090689A4EEF54
:1002B00009F06A6A689254EF09F0070148514A034D
:1002C000F3CF01F0F4CF00F04B03F3500026495177
:1002D0004A03F3500020026E0001000C036A07017C
:1002E0000651700FE96E0F0E0320EA6EEF6A496B3C
:1002F00006C748F74B6B080E4A6F0001DEDF0701A7
:1003000001C0E9FF040E0224EA6EEF6A496B06C7DA
:1003100048F74B6B080E4A6F0001CFDF02C008F7A9
:1003200001C007F7040E07010727000E082307C7BF
:10033000E9FF040E0825EA6EEF6A0001000C010EC9
:100340000701056F05510F0807E305C706F7000110
:10035000C5DF0701052BF6D70001000C2E6A2D6AB8
:10036000250E2C6E800E2B6E2F6A306A080E316EB1
:10037000816B8091336A326A7C6B7D91000C07013E
:10038000196B195101080AE3036A1951290FE96E23
:10039000000E0320EA6EEF6A192BF3D70001DEDFAF
:1003A0001E6A010E1F6E1D6A000C689600D000D0F8
:1003B00000D0000C6A6A686A9F0E6B6E3D0E696E13
:1003C0006E6ABDDFDCDF160E706E68A602D0EDDF50
:1003D000FCD76D9857DF030E246E5AEF09F069843D
:1003E00068986D8260EF09F0689C66EF09F000C7BD
:1003F00025F0000CFF0E256E000C0601FE6B285246
:1004000042E0FE513F083FE32050000105E0020AB0
:1004100010E0010A1BE027D0036A2750F2CF00F753
:10042000F29E93DE070100BFF28EE8CFFFF60001D7
:100430001AD0036A2750F2CF00F7F29ED6DE0701EA
:1004400000BFF28EE8CFFFF600010DD0036A2750FF
:10045000F2CF00F7F29EB8DE070100BFF28EE8CFC0
:10046000FFF6000100D0272A28060601FE51FE2BC8
:10047000580F036AD8B0032AE96E040E0324EA6E0B
:10048000FFC6EFFFBCD7285204E1FE51400801E04F
:100490001D6AFEC600F70001AADF000C276A206A69
:1004A00004011B51010A000107E0030A0AE0010AE6
:1004B0000BE0220A22E042D0120E286E030E206EBC
:1004C0003FD0430E286E3CD0020E206E036A04011A
:1004D0001A51210FE96E000E0320EA6EEFCF27F0CC
:1004E000036A2750F2CFFDF6F29E00017EDE060180
:1004F000FDBFF28E286E000123D0036A04011A5159
:10050000F2CFFDF6F29E000153DE0601FDBFF28E32
:10051000276E273C01D00FD0036A2750F2CFFDF69B
:10052000F29E000112DE0601FDBFF28E286E000170
:1005300007D004D0060100015DDF0ED05BDF0CD0D8
:1005400004011F5305E128501E5D02E21EC428F07D
:10055000010E1D6E000151DF1EEF04F00601FD5378
:1005600006E1040E246E0001EADE0DD10601050E3F
:10057000246E040E0701006F980E0601FF6F010E36
:10058000FE6FFE510F08D8A0FED0FEC606F7000190
:10059000A5DE0701016B036A0601FE51F2CF05F7E4
:1005A000F29E000192DD070105BFF28EFF0871E0A7
:1005B000040E016FD8900601FE35036AF2CF05F7ED
:1005C000F29E0001AADD0900F5CF03F0070105BF87
:1005D000F28E026F03C003F7496BFEC648F74B6B00
:1005E000080E4A6F000169DE01C005F7010E070120
:1005F0000124016E000E0220036E01C0E9FF040E0B
:100600000324EA6E02C7EFFF496BFEC648F74B6B47
:10061000080E4A6F000151DE01C005F7020E070106
:100620000124016E000E0220036E01C0E9FF040EDA
:100630000324EA6E00C7ECFFED52FFC6EFFFD8902F
:100640000601FE35036AF2CF05F7F29E000165DD73
:100650000900F5CF03F0070105BFF28E0601FF2761
:10066000035007010023880E046F03B1048103B314
:100670000483496BFEC648F74B6B080E4A6F0001B6
:100680001CDE070101C0E9FF040E0224EA6E04C764
:10069000EFFF036A0601FE51F2CF05F7F29E00015B
:1006A00004DD070105BFF28EFF084EE00183496BB0
:1006B000FEC648F74B6B080E4A6F0001FEDD02C014
:1006C00006F701C005F7040E07010527000E0623F3
:1006D000020E0525016E000E0621036E01C0E9FF22
:1006E000040E0324EA6E00C7ECFFED52FFC6EFFFD5
:1006F000D8900601FE35036AF2CF05F7F29E00019D
:10070000F4DC0900F5CF03F0070105BFF28E060106
:10071000FF27035007010023496BFEC648F74B6BC8
:10072000080E4A6F0001C9DD02C006F701C005F7D7
:10073000040E07010527000E062305C7E9FF040E76
:100740000625EA6E400EEF6E0151060802E10E0E1C
:10075000016F036A0601FE51F2CF05F7F29E000118
:10076000A4DC070105BFF28E0108D8A40189036A41
:100770000601FE51700FE96E0F0E0320EA6E01C7ED
:10078000EFFFFE2BFED6000116EF04F00401195115
:1007900000010DE0010A15E0020A20E0060A2AE045
:1007A000030A31E00E0A30E0010A36E045D01FC0EE
:1007B00058F40401596B020E0701006F000117DEA7
:1007C0003DD004011A2D07D0010E1F160701006B42
:1007D00000010DDE02D000010DDE30D004011A2D23
:1007E00006D01F820701006B000101DE02D000016C
:1007F00001DE24D0020E1D6E1AC426F00701006B24
:100800000001F5DD1BD04AD61EC058F4010E0701C9
:10081000006F0001ECDD12D004011A5101080AE357
:100820001AC41EF01AC4FDF6000198D60701006B29
:100830000001DDDD000102D0DDDD00D0F3EF05F0C9
:100840001EC0FDF604011951000105E00A0A0CE082
:10085000010A31E045D00401586B596B020E0701C3
:10086000006F0001C4DD3ED00601FD5321E0010E02
:10087000FD5D036AF2CFFEF6F29E000190DC0601F8
:10088000FEBFF28E016E04011C5DD8A002D00601ED
:100890000FD0036A1C51290FE96E000E0320EA6E87
:1008A000EFCF58F4010E0701006F0001A0DD02D068
:1008B0000001A0DD17D00601FD530FE0036A04011B
:1008C0001C51290FE96E000E0320EA6E1AC4EFFFD7
:1008D0000701006B00018BDD02D000018BDD02D02F
:1008E00089DD00D0F3EF05F00601FE91FDBFFE812A
:1008F000FD9FFEA113D0036AFD51F2CFFFF6F29ED9
:10090000000155EC00F00601FFBFF28EFF0802E186
:10091000000E01D0010E016E13D012D0036AFD51FA
:10092000F2CFFFF6F29E000165EC00F00601FFBF7A
:10093000F28EFF0802E1000E01D0010E016E00D020
:10094000000154EF05F00601FE91FDBFFE81FD9F01
:10095000FEA11DD00701496BFDC648F74B6B080E81
:100960004A6F0001AADC02C000F701C0FFF6040EC6
:100970000601FF27000E07010023FFC6E9FF040E52
:1009800007010025EA6E880EEF6E11D006010701FF
:10099000496BFDC648F74B6B080E4A6F00018DDCB2
:1009A00001C0E9FF040E07010224EA6EEF6A0001AC
:1009B00063EF05F00601FE91FDBFFE81FD9FFEA1E4
:1009C0001DD00701496BFDC648F74B6B080E4A6FF7
:1009D000000173DC02C000F701C0FFF6040E06013F
:1009E000FF27000E07010023FFC6E9FF040E0701E1
:1009F0000025EA6E840EEF6E12D006010701496BE6
:100A0000FDC648F74B6B080E4A6F000156DC01C06B
:100A1000E9FF040E07010224EA6E840EEF6E000166
:100A20006BEF05F00601FE91FDBFFE81FD9FFEA16B
:100A30001BD00701496BFDC648F74B6B080E4A6F88
:100A400000013BDC02C001F701C000F7040E070102
:100A50000027000E012300C7E9FF040E0125EA6EFE
:100A6000EFCFFFF6060112D00701496BFDC648F72C
:100A70004B6B080E4A6F000120DC070101C0E9FF43
:100A8000040E0224EA6EEFCFFFF60601FFAF02D09C
:100A9000FFB502D0000E01D0010E016E000177EF0C
:100AA00005F01CC4FDF620D701522EE004011951B7
:100AB000010A000105E0020A0BE0030A11E022D05E
:100AC0001CC4FDF640D70701006B000190DC1CD070
:100AD0001CC4FDF66FD70701006B000188DC14D041
:100AE0000401586B596B1CC4FDF600019BD70152E1
:100AF00003E0010E0401586F020E0701006F0001B0
:100B000076DC02D077DC00D0F3EF05F0FE0E256E28
:100B1000000C04011C2D01D002D01C534EE11951D0
:100B200000010BE0010A0DE0210A1CE0010A1FE0B0
:100B3000030A30E0010A35E03DD0010E836FE6DFA5
:100B40003BD0040EEA6E580EE96EE26A340EE16E96
:100B5000080E016EE6CFEEFF012EFCD71EC400F793
:100B600046DC2AD0020E836F8081D0DF25D0040EB0
:100B7000EA6E580EE96EE26A2B0EE16E070E016E08
:100B8000E6CFEEFF012EFCD7070E0701006F000134
:100B90002EDC12D01AC481F00701006B000127DCA3
:100BA0000BD01AC433F01BC432F00701006B0001F4
:100BB0001EDC02D01FDC00D004010001F3EF05F0C1
:100BC0001D6A040118517F0B000107E0010A06E0CD
:100BD000030A05E0230A04E004D0D8D531D661D752
:100BE00098D708DC00D061EF08F00701496BFDC61B
:100BF00048F74B6B080E4A6F00015DEC01F00701EE
:100C000001C0E9FF040E0224EA6EEFCFFFF60601F1
:100C1000FE51020806E1FFAD02D0FE6B02D0010ECC
:100C2000FE6FFE5103081EE1840EFF6F0701496B42
:100C3000FDC648F74B6B080E4A6F00015DEC01F0F2
:100C400002C003F701C002F7040E07010227000EDD
:100C5000032302C7E9FF040E0325EA6E840EEF6E3C
:100C600009D00601FE2D03D0C80EFF6F02D0880EFA
:100C7000FF6F0701D8900601FD35036AF2CF02F736
:100C8000F29E00018DEC00F00900F5CF03F00701A2
:100C900002BFF28E006F03C001F7496BFDC648F733
:100CA0004B6B080E4A6F00015DEC01F001C002F7CA
:100CB000010E07010124016E000E0220036E01C027
:100CC000E9FF040E0324EA6E00C7EFFF01A103D081
:100CD0000601FF81070101A303D00601FF8307017D
:100CE000496BFDC648F74B6B080E4A6F00015DEC7F
:100CF00001F0070101C0E9FF040E0224EA6EFFC6FD
:100D0000EFFF0001000C036A07014751700FE96E05
:100D10000F0E0320EA6EEF521BE0496B47C748F7FE
:100D20004B6B080E4A6F00015DEC01F002C049F701
:100D300001C048F7040E07014827000E492348C7A1
:100D4000E9FF040E4925EA6EEFCF48F748AF02D01D
:100D5000000E01D0010E016E0001000C42C747F7E2
:100D6000D2DF0152D8B486D00701496B42C748F799
:100D70004B6B080E4A6F00015DEC01F002C048F7B2
:100D800001C047F7040E07014727000E4823010E54
:100D90004725016E000E4821036E01C0E9FF040ED5
:100DA0000324EA6E43C7EFFF4551020820E1496B77
:100DB00042C748F74B6B080E4A6F00015DEC01F02B
:100DC00002C048F701C047F7040E07014727000E8D
:100DD000482347C7E9FF040E4825EA6EEFCF46F7E0
:100DE00046AD02D0456B02D0010E456F1AD0455179
:100DF000040817E1496B42C748F74B6B080E4A6F6E
:100E000000015DEC01F0070101C0E9FF040E0224BE
:100E1000EA6EEFCF46F746AD03D0010E456F01D025
:100E2000456B452D03D0C80E466F02D0880E466F25
:100E300044B1468144B34683496B42C748F74B6B84
:100E4000080E4A6F00015DEC01F002C048F701C0D6
:100E500047F7040E07014727000E482347C7E9FF5D
:100E6000040E4825EA6E46C7EFFF010E016E05D05D
:100E700000D00001000E016E07010001000C83513B
:100E8000010A03E0030A15E028D0EA6A340EE96E8D
:100E9000040EE26E180EE16E080E016EE6CFEEFF54
:100EA000012EFCD70701006B0001F7EC01F0836B0A
:100EB00018D0EA6A2B0EE96E040EE26E180EE16E8F
:100EC000070E016EE6CFEEFF012EFCD7836B070104
:100ED000006B0001F7EC01F004D0836B42EC01F0F1
:100EE00000D0A6EF07F00701496BFEC648F74B6B31
:100EF000080E4A6F00015DEC01F002C000F701C06E
:100F0000FFF6010E06010124016E000E070102200A
:100F1000036E01C0E9FF040E0324EA6E036AEFCFFB
:100F200001F003C002F000019DEF07F07D817F6BAF
:100F3000020E0601FE6F0001D6D701C07EF0ADEFB4
:100F400007F00601FD5304E1000199D706D0060120
:100F5000FD51020803E10001E9D706010001000C80
:100F6000FEC66EFF0601FE5303E0040E246E02D09F
:100F7000020E246E0001C2EF07F01E6A1D6A26C031
:100F8000FEF6EED73BEF08F03AC747F7BCDE01525A
:100F90004AE00701496B3AC748F74B6B080E4A6FA6
:100FA00000015DEC01F002C043F701C042F7040EFE
:100FB00007014227000E4323020E4225016E000E58
:100FC0004321036E01C0E9FF040E0324EA6EECCF57
:100FD00003F0ED52EFCF40F703C041F741C7EAFFFE
:100FE00040C7E9FF3CC7E2FF3BC7E1FF3EC702F055
:100FF0003DC701F0015202E0022A02D0025206E08F
:10100000E6CFEEFF012EFCD7022EFAD73AC742F701
:101010003EC744F73DC743F73FC745F700019EDE93
:10102000015003D000D0000E016E000C020E07012B
:101030003A6F3C6B3C0E3B6F3E6B7CC03DF7020E43
:101040003F6F0001A1DF7CC082F07C6B000C7C5301
:1010500001E0ECDF42EF08F00601FD530EE11D2C2C
:1010600005D00001FDEC01F006D006011D5002087C
:1010700003E1000182D7060106D0FD51020803E119
:101080000001E5D706010001000C6C300601FB6F82
:10109000FB33FB331F0EFB176C524EE10401005172
:1010A0003C0B0601FC6F430E040100170001D5EC58
:1010B00001F00601FC51340822E10401046B000137
:1010C0007FD56D98253C07D00601FD6B030EFE6FA2
:1010D00000018BDD12D00601FD6B020EFE6F0001D8
:1010E00084DD2550FE0809E00701426B446B25C0F2
:1010F00043F7040E456F000131DE1CD00601FC51A0
:10110000040819E1FD6B00011CDF0601FD6B020EF6
:10111000FE6F00016ADD2550FE080CE0253C01D081
:1011200009D00701426B446B25C043F7010E456FA0
:10113000000114DE06019BD06C5004081DE1430E33
:10114000040104170001D5EC01F0FF0E256E060125
:10115000FD6B000181DF253C01D00AD00701426B05
:10116000446B25C043F7020E456F0001F7DD02D046
:1011700042EC01F07BD006016CB435D00701496B1D
:10118000FBC648F74B6B080E4A6F00015DEC01F09F
:1011900001C0FDF6060101C001F0040E0224036E39
:1011A00001C0FDF6FE6F0701496BFBC648F74B6BAC
:1011B000080E4A6F00015DEC01F001C0E9FF040E6A
:1011C00007010224EA6EEF50430B0601FEC6EAFF58
:1011D000FDC6E9FFEF6E0001D5EC01F0FBC6FDF6A0
:1011E000B0DE44D006010701496BFBC648F74B6BE4
:1011F000080E4A6F00015DEC01F002C0FEF601C06E
:10120000FDF6040E0601FD27000EFE23FDC601F0CB
:10121000040EFE25036EFDC6FDF6FE6F0701496B49
:10122000FBC648F74B6B080E4A6F00015DEC01F0FE
:1012300002C000F701C0FFF6040E0601FF27000EF2
:1012400007010023FFC6E9FF040E07010025EA6E2F
:10125000EF50430B0601FEC6EAFFFDC6E9FFEF6E45
:101260000001D5EC01F0FBC6FDF6F6DE060100013B
:101270006EEF09F0245201E13AD0685238E068A4D8
:1012800004D069A402D03AEF01F06DA201D02FD0B2
:1012900068AA04D069AA02D052EF01F068A204D073
:1012A00069A202D059EF01F068A004D069A002D071
:1012B000DAEF01F068A804D069A802D0EFEF01F0DE
:1012C00068AC04D069AC02D0F4EF01F00601FA6B0F
:1012D00068A606D069A604D00001D7D602D00601C0
:1012E00005D00601FA51FA2B0308F2E20001A19A97
:1012F00032EF00F06D6A696A080E6F6E9450300923
:101300000601946E246A186AF2BE188EF29E0001DD
:10131000BFEC01F018BEF28E8FEF09F0EBD7B5EFFE
:1013200009F0186AF2BE188EF29EBFEC01F018BEEA
:10133000F28E6D6A140E6F6E696A6D86010E246EF0
:10134000A5EF09F06DB601D0ECD7242C0BD06DBA07
:1013500009D0686A696AA08AC00EF212110E696E1D
:10136000020E246EB6EF09F0D9D7ECD7245002084C
:10137000FCE1F2EF0FF00601DD91F2BEDD81F29E9D
:1013800000017C513F0802E23F0E7C6F7C517C2BB8
:10139000036A3C0FE96E000E0320EA6EDCC6EFFF25
:1013A000F29E0601DDB1F28E186AF2BE188EF29E30
:1013B000020E0701476F0001A6DC18BEF28E015233
:1013C00007E0186AF2BE188EF29E30DE18BEF28E6A
:1013D00005EF0AF07C513F0815E2186AF2BE188E3C
:1013E000F29E020E0701476F00018DDC18BEF28EDF
:1013F000015207E0186AF2BE188EF29E17DE18BE80
:10140000F28EE8D7DBC6DCF6B6D7000C8E0E006E87
:10141000D9C601F0D8C602F0036A015209E102C040
:1014200001F0026A080E005E015202E1006A08D073
:10143000D89001BE04D0023601360006F9D7019ECD
:10144000000C800ED8A202D00601EF1B0601F46B3F
:10145000F56BEBC6F3F6EF51F31BEA51D8B4DFD0CE
:10146000F26F006EEE51D8B4E3D0F25FD8B483D0FF
:101470003EE3EFC6F8F6F88FF0C6F7F6F1C6F6F6DB
:10148000F56BD890F833F733F633F533F22FF8D7FE
:10149000F3AF03D0F481E0D0F491F291F489060E19
:1014A000EA6EED0EE96EEBD0F499F3BF0AD0F2A12B
:1014B00013D0F833F733F633F533002AD8B4C7D056
:1014C0000BD0F8BF0CD0D890F537F637F737F83790
:1014D0000006D8B4BCD0F5D7F48D6DD0F49DEBC622
:1014E000F3F6EBAF02D0F88FABD0F89FA9D0EEC6E1
:1014F000F2F6EEC600F0EA51F25FEBC6F8F6F88FAE
:10150000ECC6F7F6EDC6F6F6F56BD890F833F73380
:10151000F633F533F22FF8D7F3AF03D0F4839CD032
:10152000F493F291F48B060EEA6EF10EE96EA7D0F9
:10153000F49BF3BF0AD0F2A113D0F833F733F6339C
:10154000F533002AD8B483D00BD0F8BF0CD0D89094
:10155000F537F637F737F8370006D8B478D0F5D72F
:10156000F48F29D0F49FEFC6F3F6EFAF02D0F88FD7
:1015700067D0F89F65D0EFC6F8F6F88FF0C6F7F69B
:10158000F1C6F6F6F3AF04D0F89FF48565D0F49574
:10159000F56BF291060EEA6EED0EE96E70D0F3BFB8
:1015A0001CD0EBC6F3F6F2A106D0F833F733F633CE
:1015B000F533002A4CE0F5AF0BD0F62B09E1F72B01
:1015C00007E1F82B05E1F833F733F633002A3FE063
:1015D000F4BD84D7F4BFC6D71CD0800EF81BF8AF7B
:1015E00004D03AD0EFC6F3F60AD0EBC6F3F6F853C0
:1015F00006E1F75304E1F65302E1006A21D0F8BF97
:1016000008D0D890F537F637F737F837002EF7D7E8
:101610001ED0F3AF02D0F88F13D0F89F11D0EEC6D2
:1016200000F0EFC6F8F6F0C6F7F6F1C6F6F608D009
:10163000EAC600F0EBC6F8F6ECC6F7F6EDC6F6F62D
:10164000F8C601F0F7C602F0F6C603F034D0006A1F
:10165000016A026A036A2FD0F56BF61FF71FF81FA5
:10166000F51FF52B05E1F62B03E1F72B01E1F82B34
:10167000F4B112D7F4B354D7F4B589D7B3D7EF5038
:10168000F62705E3F72B03E1F82BD8B4F281ED52EE
:10169000EF50F72703E3F82BD8B4F281ED52EF5067
:1016A000EFBE01D0800AF827D8B0F281F4B9FCD699
:1016B000F4BB3ED774D70001000C0601EA51D8B440
:1016C000A5D0F66FEE51D8B4A1D0F65F05E37F0E3A
:1016D000F627D8B09BD006D0810EF65FD8A096D062
:1016E000D8B494D0F6C600F0016A026A036AF56BBA
:1016F000EBC6F4F6F48FECC6F3F6EDC6F2F6190E6F
:10170000F66FF151F25F0DE2010EF35F0AE2F45F52
:1017100008E2F55F06E2F52BF42BF32BF151F227EB
:1017200028D0F051F35F12E2010EF45F0FE2F55F93
:101730000DE2F52BF42BF051F327F151F22719E3C9
:10174000F32B17E1F42B15E1F52B13D0EF518009A2
:10175000F45F0EE2010EF55F0BE2F52BEF5180090D
:10176000F427F051F327E9E3F42BE7E1F52BE5D774
:101770000380F62F01D00BD0D890F237F337F4372F
:10178000F537D890033602360136F737BAD7F7A1C6
:1017900006D0D890013202320332F73302D000066D
:1017A00035E0F7BF1ED0D890F237F337F437F5376E
:1017B000F151F25F07E2010EF35F04E2F45F02E22F
:1017C000F55F1AE3F051F35F05E2010EF45F02E208
:1017D000F55F12E3EF518009F45F03E2010EF55F5C
:1017E0000BE3032A09E1022A07E1012A05E1002AA5
:1017F0000DE0013202320332EBC6F6F6EF51F61B72
:10180000F6AF02D0018E06D0019E04D0006A016AB4
:10181000026A036A0001000CB60E006E036A026AD7
:10182000016A0601C251C311C411C51102E1006A67
:101830000DD0D89001BE09D0C237C337C437C537E1
:10184000033602360136002EF4D7019E0001E9EF7F
:1018500011F00601E451D8B471D0006EE851D8B44B
:101860006DD0002604E3810E002668E204D07F0ECE
:10187000005E64E363E0E5C6ECF6E951EC1BE58F3E
:10188000E98FE751EB03F4CFEEF6E651EA03F4CF2C
:1018900003F0F3CFEDF6EB03F350EE27F450ED2316
:1018A000000E0322E751EA03F350EE27F450ED2334
:1018B000000E026A03220222E551EB03F350ED27EA
:1018C000F4500322000E0222E551EA03F3500326EE
:1018D000F4500222000E016A0122E751E903F3509D
:1018E000ED27F4500322000E02220122E651E90303
:1018F000F3500326F4500222000E0122E551E903C1
:10190000F3500226F4500122002A01BE05D0ED3723
:101910000336023601360006000EEDAF0AD0032A68
:1019200002220122015005E1025003E1035001E1CE
:10193000002AECBF018EECAF019E04D0006A016A60
:10194000026A036A0001000CEBC6F2F60601EF51D1
:10195000F21BF2AF05D0D894D890EBBFD8802FD02F
:10196000EBC6F2F6EEC6F3F6EA51F35F06E0F2AF2D
:1019700026D0D850010AD86E22D0EFC6F3F6EB512C
:10198000F35F06E0F2AF1BD0D850010AD86E17D033
:10199000F0C6F3F6EC51F35F06E0F2AF10D0D8508A
:1019A000010AD86E0CD0F1C6F3F6ED51F35F06E0F4
:1019B000F2AF05D0D850010AD86E01D0D8900001FE
:1019C000000CDFC6EDF6DEC6ECF6DDC6EBF6DCC6D7
:1019D000EAF60601F16BF06BEF6BEE6B0001B4DF22
:1019E00001E205E1006A016A026A036A78D0DFC693
:1019F000E3F6DEC6E2F6DDC6E1F6DCC6E0F6060E8C
:101A00000601E96FE00EE86FE8C6E9FFE9C6EAFF04
:101A1000EF50ED6BEC6F7F0EEC27000EED23D890AE
:101A2000ED31EC31E9C6EAFFE8C6E9FFEF6EE3C647
:101A3000E7F6E2C6E6F6E1C6E5F6E0C6E4F6DFC69E
:101A4000EDF6DEC6ECF6DDC6EBF6DCC6EAF6E3C67E
:101A5000F1F6E2C6F0F6E1C6EFF6E0C6EEF60001FA
:101A60002CDED892E3C6EDF6E2C6ECF6E1C6EBF664
:101A7000E0C6EAF603C0F1F602C0F0F601C0EFF6E8
:101A800000C0EEF6DEDC03C0E3F602C0E2F601C001
:101A9000E1F600C0E0F60601E8C6E9FFE9C6EAFFA4
:101AA000EF06E7C6EDF6E6C6ECF6E5C6EBF6E4C6ED
:101AB000EAF6E3C6F1F6E2C6F0F6E1C6EFF6E0C6F6
:101AC000EEF6000141DFD8B402D00601B0D7E4C67B
:101AD00000F0E5C601F0E6C602F0E7C603F065EFE8
:101AE0000EF00601D46BD56BD66BD76BD36BD26B74
:101AF000D351D15DD8A0A8D004E1D051D25DD8B0E7
:101B0000A3D0D235026ED335036E02360336FC0EF7
:101B100002160250CE25E96ECF510320EA6EEFCFB8
:101B2000D8F6ECCFD9F6ECCFDAF6ECCFDBF6EACF8D
:101B3000DDF6E9CFDCF6D882DBC6EDF6DAC6ECF6E8
:101B4000D9C6EBF6D8C6EAF6CDC6F1F6CCC6F0F6A5
:101B5000CBC6EFF6CAC6EEF6000173DCDDC6EAFFBF
:101B6000DCC6E9FF00C0D8F601C0D9F602C0DAF63B
:101B700003C0DBF60601D235026ED335036E0236A2
:101B80000336FC0E02160250CE25E96ECF5103201B
:101B9000EA6EEFCFDEF6ECCFDFF6ECCFE0F6ECCF7F
:101BA000E1F6EACFE3F6E9CFE2F6D882E1C6EDF658
:101BB000E0C6ECF6DFC6EBF6DEC6EAF6CDC6F1F619
:101BC000CCC6F0F6CBC6EFF6CAC6EEF6000139DC9D
:101BD000E3C6EAFFE2C6E9FFDBC6E7F6DAC6E6F6E9
:101BE000D9C6E5F6D8C6E4F603C0EBF602C0EAF6BD
:101BF00001C0E9F600C0E8F62CDEEACFD9F6E9CF5D
:101C0000D8F6D892D7C6EDF6D6C6ECF6D5C6EBF622
:101C1000D4C6EAF603C0F1F602C0F0F601C0EFF652
:101C200000C0EEF60EDCD9C6EAFFD8C6E9FF03C055
:101C3000D7F602C0D6F601C0D5F600C0D4F606012C
:101C4000D22BD8B4D32B54D7D1C6D9F6D0C6D8F618
:101C5000000106EC0AF00601ED6BEC6BEB6B7F0EFE
:101C6000EA6F03C0F1F602C0F0F601C0EFF600C063
:101C7000EEF6000122DD00C0D8F601C0D9F602C0A0
:101C8000DAF603C0DBF603C0E7F602C0E6F601C0F1
:101C9000E5F600C0E4F6D7C6EBF6D6C6EAF6D5C63A
:101CA000E9F6D4C6E8F6D5DD00C0D8F601C0D9F60D
:101CB00002C0DAF603C0DBF603C0DFF602C0DEF6D0
:101CC00001C0DDF600C0DCF67CD603C0D7F602C04A
:101CD000D6F601C0D5F600C0D4F6D4C600F0D5C6FD
:101CE00001F0D6C602F0D7C603F0000C0601DB51A6
:101CF000B608DB6F036ADCC6DFF6DC8FD890DC3316
:101D0000DD33DE330332023201320032DB2FF6D70D
:101D1000DFAF0BD0001E011E021E031E002AD8B426
:101D2000012AD8B4022AD8B4032A000103EF0FF025
:101D3000006A016A026A036A0601E36BE46BE56B01
:101D4000E66BE251E111E011DF112CE0200EE76FAC
:101D5000D890DB37DC37DD37DE37E337E437E5377C
:101D6000E637E251E65D08E1E151E55D05E1E0516C
:101D7000E45D02E1DF51E35D0FE3DF51E35FE0513A
:101D8000D8A0E03DE45FE151D8A0E13DE55FE2513C
:101D9000D8A0E23DE65FD880003601360236033631
:101DA000E72FD6D7060EEA6EE30EE96E0001000CAF
:101DB000E9500601D36FD251D56F1BE0D1C6E7F6CB
:101DC000D0C6E6F6CFC6E5F6CEC6E4F6EB6BEA6B18
:101DD000200EE96F820EE86F00013BDD03C0D1F6F3
:101DE00002C0D0F601C0CFF600C0CEF60601D52F56
:101DF000E5D7D1C6DEF6D0C6DDF6CFC6DCF6CEC658
:101E0000DBF6000173D703C0D1F602C0D0F601C0E3
:101E1000CFF600C0CEF60601D1AF0DD0D307D38BDD
:101E2000CE1FCF1FD01FD11FCE2BD8B4CF2BD8B4ED
:101E3000D02BD8B4D12B3B0EDA6F9A0ED96FCA0EC5
:101E4000D86FD76B0A0ED56FD251D8B4D32BD1C669
:101E5000DEF6D0C6DDF6CFC6DCF6CEC6DBF6DAC6D9
:101E6000E2F6D9C6E1F6D8C6E0F6D7C6DFF600013D
:101E70005FDF0150EFCFCEF6ECCFCFF6ECCFD0F650
:101E8000ECCFD1F6005213E10601D229D55DD8A4DA
:101E900002D000010CD0D3510DE00F0BD55D01E055
:101EA00044E2D3BF42D0D3BD05D0200E37D0200EA0
:101EB0000601D317D3AB0FD0D39BD251D8A4D307ED
:101EC0000050D36F2D0EDB6F0001EAEC09F0060124
:101ED000D351006ED36BD251D55D0DE10050D36F5D
:101EE0002E0EDB6F0001EAEC09F00601D351006E03
:101EF000200ED317000E300ED3AB10D0D39BD2518F
:101F0000D8A4D3070050D36F2D0EDB6F0001EAEC8D
:101F100009F00601D351006ED36B300E002600C0CD
:101F2000DBF60001EAEC09F00601DAC6DEF6D9C6F6
:101F3000DDF6D8C6DCF6D7C6DBF6E26BE16BE06B0C
:101F40000A0EDF6F0001F4DE03C0DAF602C0D9F634
:101F500001C0D8F600C0D7F60601D52F78D700010A
:101F6000000CF86AD09E088EEA6AE96AC150C00B7C
:101F70000F09C16E070EB46E216A040E226E0C0E9C
:101F8000236E246A286A7C6B836BF18EB098C69AA4
:101F9000949E93809392010EC66E000EC76ED190F0
:101FA000870ED56ECD6A000ECA6E000ECB6EB16A7A
:101FB000070EB46E9250926E130E006E002EFED776
:101FC00000D0B450A19CB56AF28AC00EF212C15082
:101FD000C00B1C09C16EC090C082C094C08EC2806C
:101FE000B4EF09F080A1FED71C6A1B6A1A6A196A4D
:101FF000D76AD66A0301B16BB15100010FEC01F051
:102000000301B12B006EE8CFDBF60001EAEC09F02A
:10201000250E0301B15DF0E1000180A1E0D20301D2
:10202000B06BB0516308D8A06BD1000E016EC250E6
:10203000C30B0110C26E130E006E002EFED700D02F
:10204000186AF2BE188EF29E0701496BB0C348F7BA
:102050004B6B040E4A6F00015DEC01F018BEF28E6E
:1020600002C003F00150840FE96E000E0220EA6EF8
:10207000C282C2B2FED7C4CFD9F6C3CFD8F6000110
:1020800006EC0AF000C0EFFF01C0ECFF02C0ECFF5D
:1020900003C0ECFF186AF2BE188EF29E0701496B6E
:1020A000B0C348F74B6B040E4A6F00015DEC01F0C2
:1020B00018BEF28E02C003F00150840FE96E000ECC
:1020C0000220EA6EEFCF00F0ECCF01F0ECCF02F08F
:1020D000ECCF03F0EACFB2F3E9CFB1F3D892A7C3C4
:1020E000EDF6A6C3ECF6A5C3EBF6A4C3EAF603C06F
:1020F000F1F602C0F0F601C0EFF600C0EEF621ECFA
:102100000AF0B2C3EAFFB1C3E9FF03C0A7F302C0FC
:10211000A6F301C0A5F300C0A4F3040E016EC250E3
:10212000C30B0110C26E130E006E002EFED700D03E
:10213000186AF2BE188EF29E0701496BB0C348F7C9
:102140004B6B040E4A6F00015DEC01F018BEF28E7D
:1021500002C003F00150140FE96E020E0220EA6E75
:10216000C282C2B2FED7C4CFD9F6C3CFD8F600011F
:1021700006EC0AF000C0EFFF01C0ECFF02C0ECFF6C
:1021800003C0ECFF186AF2BE188EF29E0701496B7D
:10219000B0C348F74B6B040E4A6F00015DEC01F0D1
:1021A00018BEF28E02C003F00150140FE96E020E49
:1021B0000220EA6EEFCF00F0ECCF01F0ECCF02F09E
:1021C000ECCF03F0EACFB2F3E9CFB1F3D892ABC3CF
:1021D000EDF6AAC3ECF6A9C3EBF6A8C3EAF603C072
:1021E000F1F602C0F0F601C0EFF600C0EEF621EC09
:1021F0000AF0B2C3EAFFB1C3E9FF03C0ABF302C008
:10220000AAF301C0A9F300C0A8F3080E016EC250E2
:10221000C30B0110C26E130E006E002EFED700D04D
:10222000186AF2BE188EF29E0701496BB0C348F7D8
:102230004B6B040E4A6F00015DEC01F018BEF28E8C
:1022400002C003F00150200FE96E050E0220EA6E75
:10225000C282C2B2FED7C4CFD9F6C3CFD8F600012E
:1022600006EC0AF000C0EFFF01C0ECFF02C0ECFF7B
:1022700003C0ECFF186AF2BE188EF29E0701496B8C
:10228000B0C348F74B6B040E4A6F00015DEC01F0E0
:1022900018BEF28E02C003F00150200FE96E050E49
:1022A0000220EA6EEFCF00F0ECCF01F0ECCF02F0AD
:1022B000ECCF03F0EACFB2F3E9CFB1F3D892AFC3DA
:1022C000EDF6AEC3ECF6ADC3EBF6ACC3EAF603C075
:1022D000F1F602C0F0F601C0EFF600C0EEF621EC18
:1022E0000AF0B2C3EAFFB1C3E9FF03C0AFF302C013
:1022F000AEF301C0ADF300C0ACF30301B02B91D637
:10230000A7C3EDF6A6C3ECF6A5C3EBF6A4C3EAF6A5
:102310000601F16BF06B480EEF6F850EEE6F00015A
:102320005DEC0BF003C0A7F302C0A6F301C0A5F358
:1023300000C0A4F3ABC3EDF6AAC3ECF6A9C3EBF659
:10234000A8C3EAF60601F16BF06B480EEF6F850E3D
:10235000EE6F00015DEC0BF003C0ABF302C0AAF31B
:1023600001C0A9F300C0A8F3AFC3EDF6AEC3ECF60D
:10237000ADC3EBF6ACC3EAF60601F16BF06B480EA9
:10238000EF6F850EEE6F00015DEC0BF003C0AFF355
:1023900002C0AEF301C0ADF300C0ACF31AC0B5F398
:1023A00019C0B4F30301B26BB36BD650D7CF03F0AF
:1023B000B227D750B323000EB423B523B5C3C5F657
:1023C000B4C3C4F6B3C3C3F6B2C3C2F600010CEF84
:1023D0000CF003C0EDF602C0ECF601C0EBF600C055
:1023E000EAF60601F16B240EF06F740EEF6F8C0E9F
:1023F000EE6F00015DEC0BF000C0B2F301C0B3F36F
:1024000002C0B4F303C0B5F3A7C3CDF6A6C3CCF6A0
:10241000A5C3CBF6A4C3CAF60601CF6B840ECE6F5C
:10242000D16B640ED06F000171EC0DF000C0B6F3FB
:1024300001C0B7F302C0B8F303C0B9F3ABC3CDF624
:10244000AAC3CCF6A9C3CBF6A8C3CAF6020E0601EE
:10245000CF6F140ECE6FD16B640ED06F000171EC94
:102460000DF000C0BAF301C0BBF302C0BCF303C05F
:10247000BDF3AFC3CDF6AEC3CCF6ADC3CBF6ACC3A4
:10248000CAF6050E0601CF6F200ECE6FD16B640E1B
:10249000D06F000171EC0DF000C0BEF301C0BFF3BE
:1024A00002C0C0F303C0C1F3060EE96EB5C3D1F696
:1024B000B4C3D0F6B3C3CFF6B2C3CEF6030E060153
:1024C000D26F000175DC200E0601DB6F0001EAEC23
:1024D00009F0030EE96EA7C3D1F6A6C3D0F6A5C3D3
:1024E000CFF6A4C3CEF60601D26F000161DC200E48
:1024F0000601DB6F0001EAEC09F0030EE96EB9C3D7
:10250000D1F6B8C3D0F6B7C3CFF6B6C3CEF6060140
:10251000D26F00014DDC200E0601DB6F0001EAECFA
:1025200009F0030EE96EABC3D1F6AAC3D0F6A9C376
:10253000CFF6A8C3CEF60601D26F000139DC200E1B
:102540000601DB6F0001EAEC09F0030EE96EBDC382
:10255000D1F6BCC3D0F6BBC3CFF6BAC3CEF60601E4
:10256000D26F000125DC200E0601DB6F0001EAECD2
:1025700009F0030EE96EAFC3D1F6AEC3D0F6ADC31A
:10258000CFF6ACC3CEF60601D26F000111DC200EEF
:102590000601DB6F0001EAEC09F0030EE96EC1C32E
:1025A000D1F6C0C3D0F6BFC3CFF6BEC3CEF6060188
:1025B000D26F0001D8EC0EF0200E0601DB6F000197
:1025C000EAEC09F00A0E0601DB6F0001EAEC09F003
:1025D0000D0E0601DB6F0001EAEC09F01ED50300C9
:020000040030CA
:0E0000003CCE390E0087A1000FC00FE00F406C
:00000001FF
;PIC18F4550
;CRC=FA32 CREATED="28-V-10 17:50"
/Designs/Data_loggers/galileo_experiment/SW/main.lst
0,0 → 1,11708
CCS PCH C Compiler, Version 4.090, 47914 28-V-10 17:50
 
Filename: D:\MLAB\Designs\galileo_experiment\SW\main.lst
 
ROM used: 9692 bytes (30%)
Largest free fragment is 23072
RAM used: 1650 (81%) at main() level
1869 (91%) worst case
Stack: 17 worst case (8 in main + 9 for interrupts)
 
*
0000: GOTO 1F62
*
0008: MOVWF 05
000A: MOVFF FD8,06
000E: MOVFF FE0,07
0012: MOVLB 0
0014: MOVFF FE9,0D
0018: MOVFF FEA,08
001C: MOVFF FE1,09
0020: MOVFF FE2,0A
0024: MOVFF FD9,0B
0028: MOVFF FDA,0C
002C: MOVFF FF3,14
0030: MOVFF FF4,15
0034: MOVFF FFA,16
0038: MOVFF 00,0F
003C: MOVFF 01,10
0040: MOVFF 02,11
0044: MOVFF 03,12
0048: MOVFF 04,13
004C: BTFSS FF2.5
004E: GOTO 0058
0052: BTFSC FF2.2
0054: GOTO 025E
0058: BTFSS FA0.5
005A: GOTO 0064
005E: BTFSC FA1.5
0060: GOTO 1274
0064: MOVFF 0F,00
0068: MOVFF 10,01
006C: MOVFF 11,02
0070: MOVFF 12,03
0074: MOVFF 13,04
0078: MOVFF 0D,FE9
007C: MOVFF 08,FEA
0080: BSF 08.7
0082: MOVFF 09,FE1
0086: MOVFF 0A,FE2
008A: MOVFF 0B,FD9
008E: MOVFF 0C,FDA
0092: MOVFF 14,FF3
0096: MOVFF 15,FF4
009A: MOVFF 16,FFA
009E: MOVF 05,W
00A0: MOVFF 07,FE0
00A4: MOVFF 06,FD8
00A8: RETFIE 0
.................... #include "main.h"
.................... #include <18F4550.h>
.................... //////// Standard Header file for the PIC18F4550 device ////////////////
.................... #device PIC18F4550
.................... #list
....................
.................... #device adc=10
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
.................... #FUSES HSPLL //Crystal/Resonator with PLL enabled
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NOBROWNOUT //No brownout reset
.................... #FUSES BORV20 //Brownout reset at 2.0V
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES NOCPD //No EE protection
.................... #FUSES STVREN //Stack full/underflow will cause reset
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NOWRT //Program memory not write protected
.................... #FUSES NOWRTD //Data EEPROM not write protected
.................... #FUSES IESO //Internal External Switch Over mode enabled
.................... #FUSES FCMEN //Fail-safe clock monitor enabled
.................... #FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
.................... #FUSES NOWRTC //configuration not registers write protected
.................... #FUSES NOWRTB //Boot block not write protected
.................... #FUSES NOEBTR //Memory not protected from table reads
.................... #FUSES NOEBTRB //Boot block not protected from table reads
.................... #FUSES NOCPB //No Boot Block code protection
.................... #FUSES MCLR //Master Clear pin enabled
.................... #FUSES LPT1OSC //Timer1 configured for low-power operation
.................... #FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
.................... #FUSES PLL5 //Divide By 5(20MHz oscillator input)
.................... #FUSES CPUDIV4 //System Clock by 4
.................... #FUSES USBDIV //USB clock source comes from PLL divide by 2
.................... #FUSES VREGEN //USB voltage regulator enabled
.................... #FUSES ICPRT //ICPRT enabled
....................
.................... #use delay(clock=24000000)
....................
....................
....................
.................... #define REV "$Rev$"
....................
.................... unsigned int32 time; // pocitadlo preteceni casovace
....................
.................... #define BUFLEN 100
....................
.................... #int_RTCC
.................... void RTCC_isr(void) // preruseni od pretekleho casovace
.................... {
.................... time++;
*
025E: MOVLW 01
0260: ADDWF 19,F
0262: BTFSC FD8.0
0264: INCF 1A,F
0266: BTFSC FD8.2
0268: INCF 1B,F
026A: BTFSC FD8.2
026C: INCF 1C,F
.................... }
....................
.................... // Includes all USB code and interrupts, as well as the CDC API
.................... #include <usb_cdc.h>
.................... /////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// usb_cdc.h ////
.................... //// ////
.................... //// Library for adding a virtual COM port on your PC over USB using ////
.................... //// the standard Communication Device Class (CDC) specification. ////
.................... //// Including this file in your code will add all USB code, ////
.................... //// interrupts, descriptors and handlers required. No other ////
.................... //// modifications need to be made. ////
.................... //// ////
.................... //// This library creates a virtual RS232 link between the PC and ////
.................... //// the PIC, therefore the library provided will be familiar to ////
.................... //// anyone with standard UART stream I/O: ////
.................... //// ////
.................... //// usb_cdc_kbhit() - Returns TRUE if there is one or more ////
.................... //// character received and waiting in the receive buffer. ////
.................... //// ////
.................... //// usb_cdc_getc() - Gets a character from the receive buffer. If ////
.................... //// there is no data in the receive buffer it will wait until ////
.................... //// there is data in the receive buffer. If you do not want ////
.................... //// to wait in an infinit loop, use usb_cdc_kbhit() first to ////
.................... //// check if there is data before calling usb_cdc_getc(). ////
.................... //// ////
.................... //// usb_cdc_putc(char c) - Puts a character into the transmit ////
.................... //// buffer. If the transmit buffer is full it will wait until ////
.................... //// the transmit buffer is not full before putting the char ////
.................... //// into the transmit buffer. The transmit buffer is read by ////
.................... //// the PC very quickly, and therefore the buffer should only ////
.................... //// be full for a few milli-seconds. If you are concerned ////
.................... //// and don't want to be stuck in a long or infinite loop, ////
.................... //// use usb_cdc_putready() to see if there is space in the ////
.................... //// transmit buffer before putting data into the transmit ////
.................... //// buffer. ////
.................... //// ////
.................... //// usb_cdc_putready() - Returns TRUE if there is room left in the ////
.................... //// transmit buffer for another character. ////
.................... //// ////
.................... //// usb_cdc_connected() - Returns TRUE if we received a ////
.................... //// Set_Line_Coding. On most serial terminal programs (such ////
.................... //// as Hyperterminal), they will send a Set_Line_Coding ////
.................... //// message when the program starts and it opens the virtual ////
.................... //// COM port. This is a simple way to determine if the PC ////
.................... //// is ready to display data on a serial terminal program, ////
.................... //// but is not garaunteed to work all the time or on other ////
.................... //// terminal programs. ////
.................... //// ////
.................... //// usb_cdc_putc_fast(char c) - Similar to usb_cdc_putc(), except ////
.................... //// if the transmit buffer is full it will skip the char. ////
.................... //// ////
.................... //// usb_cdc_line_coding - A structure used for Set_Line_Coding and ////
.................... //// Get_Line_Coding. Most of the time you can ignore this. ////
.................... //// ////
.................... //// usb_cdc_break - If the PC has sent a break command, this will ////
.................... //// hold the break time (in milli-seconds). If the PC sends ////
.................... //// a value of 0xFFFF the device is supposed to hold the ////
.................... //// break until it sends a value of 0 ////
.................... //// ////
.................... //// usb_cdc_carrier - Where Set_Control_Line_State value is stored. ////
.................... //// Of most relevance is the field dte_present, which is the ////
.................... //// DTR setting. ////
.................... //// ////
.................... //// The following functions are also provided, and are ports of the ////
.................... //// I/O functions in input.c. See input.c and the CCS manual for ////
.................... //// documentation: ////
.................... //// get_float_usb() - Read a float number from the user ////
.................... //// get_long_usb() - Read a long number from the user ////
.................... //// get_int_usb() - Read an integer number from the user ////
.................... //// get_string_usb(char *s, int max) - Read a string from the user. ////
.................... //// gethex_usb() - Read a byte, in HEX, from the user ////
.................... //// gethex1_usb() - Read a HEX character ////
.................... //// ////
.................... //// This driver will load all the rest of the USB code, and a set ////
.................... //// of descriptors that will properly describe a CDC device for a ////
.................... //// virtual COM port (usb_desc_cdc.h) ////
.................... //// ////
.................... //// An .INF file is provided (cdc_NTXP.inf) that will load the ////
.................... //// standard CDC drivers for a virtual COM port in Windows ////
.................... //// NT/2000/XP and above. ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// VERSION HISTORY ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// Nov 26th, 2007: ////
.................... //// usb_cdc_put_buffer_free() should be more stable. ////
.................... //// Fixed a hang-up that would happen if you sent ////
.................... //// exactly 64 bytes. ////
.................... //// ////
.................... //// Nov 6th, 2007: ////
.................... //// Compatabible with latest pic18_usb.h, which ////
.................... //// reduces RAM footprint of USB driver. ////
.................... //// This driver now fits on 18F4450/2450 PICs. ////
.................... //// ////
.................... //// October 27th, 2005: Changed the way incoming packets are ////
.................... //// handled in that CDC driver will not flush ////
.................... //// endpoint until user has handled all data. This ////
.................... //// will prevent overflows as the USB will NAK ////
.................... //// incoming packets until it is ready to receive ////
.................... //// more. ////
.................... //// When using 18F4550 family, the RX buffer is ////
.................... //// mapped directly to the endpoint buffer - this ////
.................... //// saves a chunk of RAM. ////
.................... //// When using the 18F4550 family, you can increase ////
.................... //// the TX and RX size over 64 bytes. ////
.................... //// No longer send 0len packets in the TBE interrupt. ////
.................... //// Hopefully fixed bugs that caused random crashes ////
.................... //// if you tried sending more than 64 bytes. ////
.................... //// ////
.................... //// July 6th, 2005: Global interrupts disabled when writing to TX ////
.................... //// buffer. ////
.................... //// ////
.................... //// July 1st, 2005: Initial Release. ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2005 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... /////////////////////////////////////////////////////////////////////////
....................
....................
.................... //api for the user:
.................... #define usb_cdc_kbhit() (usb_cdc_get_buffer_status.got)
.................... #define usb_cdc_putready() (usb_cdc_put_buffer_nextin<USB_CDC_DATA_IN_SIZE)
.................... #define usb_cdc_connected() (usb_cdc_got_set_line_coding)
026E: BCF FF2.2
0270: GOTO 0064
.................... void usb_cdc_putc_fast(char c);
.................... char usb_cdc_getc(void);
.................... void usb_cdc_putc(char c);
....................
.................... //input.c ported to use CDC:
.................... float get_float_usb();
.................... signed long get_long_usb();
.................... signed int get_int_usb();
.................... void get_string_usb(char* s, unsigned int max);
.................... BYTE gethex_usb();
.................... BYTE gethex1_usb();
....................
.................... //functions automatically called by USB handler code
.................... void usb_isr_tkn_cdc(void);
.................... void usb_cdc_init(void);
.................... void usb_isr_tok_out_cdc_control_dne(void);
.................... void usb_isr_tok_in_cdc_data_dne(void);
.................... void usb_isr_tok_out_cdc_data_dne(void);
....................
.................... void usb_cdc_flush_out_buffer(void);
....................
.................... /////////////////////////////////////////////////////////////////////////////
.................... //
.................... // Include the CCS USB Libraries. See the comments at the top of these
.................... // files for more information
.................... //
.................... /////////////////////////////////////////////////////////////////////////////
.................... #ifndef __USB_PIC_PERIF__
.................... #define __USB_PIC_PERIF__ 1
.................... #endif
....................
.................... #if __USB_PIC_PERIF__
.................... #if defined(__PCH__)
.................... #include <pic18_usb.h> //Microchip 18Fxx5x hardware layer for usb.c
.................... /////////////////////////////////////////////////////////////////////////
.................... //// pic18_usb.h ////
.................... //// ////
.................... //// Hardware layer for CCS's USB library. This hardware layer ////
.................... //// supports the USB peripheral on the PIC18 family chips. Current ////
.................... //// supported families are: ////
.................... //// PIC18F2455/2550/4455/4550 ////
.................... //// PIC18F2450/4450 ////
.................... //// PIC18F2458/2553/4458/4553 ////
.................... //// PIC18F13K50/14K50 ////
.................... //// PIC18F65J50/66J50/66J55/67J50/85J50/86J50/86J55/87J50 ////
.................... //// ////
.................... //// This file is part of CCS's PIC USB driver code. See USB.H ////
.................... //// for more documentation and a list of examples. ////
.................... //// ////
.................... //// See the section labeled EXTRA USER FUNCTIONS for functions ////
.................... //// that are specific to only this HW peripheral that you may ////
.................... //// find useful to use in your application. ////
.................... //// ////
.................... //// *********** NOTE ABOUT 18F2450/4450 LIMITATIONS ********** ////
.................... //// Due to the limited USB RAM of this family, a limitation of ////
.................... //// this driver is that there are only 3 endpoints (0, 1 and 2). ////
.................... //// The HW actually supports more endpoints, but to simplify ////
.................... //// driver development this driver will only support the first 3 ////
.................... //// so there is an easier memory block to work with. ////
.................... //// ////
.................... //// USB_MAX_EP0_PACKET_LENGTH will also be set to 8 regardless ////
.................... //// of USB speed, to save RAM. ////
.................... //// ////
.................... //// ************** NOTE ABOUT HW REQUIREMENTS **************** ////
.................... //// If you are not using internal pullups, you will need to put ////
.................... //// an internal pullup resistor on D+ or D+ depending on if you ////
.................... //// want to use slow speed or full speed. This code configures ////
.................... //// the device to use internal pullups, see usb_init() if you ////
.................... //// want to change that. ////
.................... //// ////
.................... //// You need approximately 470nF cap on Vusb, even if you are ////
.................... //// using the internal 3.3V USB regulator. ////
.................... //// ////
.................... //// To run at full speed, you must use the oscillator ////
.................... //// configuration (PLLx) to set the PLL divide to 4MHz. You can ////
.................... //// configure the MCU clock to any speed (up to 48MHz) but the ////
.................... //// PLL must run at 4Mhz to provide the USB peripheral with a ////
.................... //// 96MHz clock. See the datasheet for details. ////
.................... //// ////
.................... //// To run at slow speed you must configure your MCU to run at ////
.................... //// 24Mhz. See the datasheet for details. ////
.................... //// ////
.................... //// **************** NOTE ABOUT INTERRUPTS ****************** ////
.................... //// This driver uses INT_USB. It requires INT_USB to interrupt the ////
.................... //// PIC when an event has happened on the USB Bus. Therfore ////
.................... //// this code enables interrupts. A user modification can be made ////
.................... //// to poll the USB interrupt flag instead of relying on an ////
.................... //// interrupt. ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// 18F14K50 family added. ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// Nov 3rd, 2008: ////
.................... //// * 4553 family added. ////
.................... //// ////
.................... //// Dec 18, 2007: ////
.................... //// * usb_kbhit() moved to device driver. ////
.................... //// * USB Token handler changed to workaround a flaw in the USB ////
.................... //// peripheral to prevent the USB peripheral from ////
.................... //// inadvertantly STALLing the endpoint. Happened most often ////
.................... //// in bulk demo applications, especially CDC. ////
.................... //// ////
.................... //// 11-6-07: Fixed a bug where usb_data_buffer[] was reserving ////
.................... //// too much RAM. ////
.................... //// USB_MAX_EP0_PACKET_LENGTH value can be overwritten. ////
.................... //// For the 18F4450/2450 family this should be 8 ////
.................... //// because of limited RAM. Reducing this value ////
.................... //// frees RAM for application. ////
.................... //// Based upon which endpoints have been configured for ////
.................... //// use, will free up unused USB data RAM for ////
.................... //// application dynamically. This should free up ////
.................... //// at least 128 bytes of RAM. ////
.................... //// CDC now fits on a 18F4450/2450 ////
.................... //// ////
.................... //// 09-19-07: Fixed problems with 18F4450 family. ////
.................... //// ////
.................... //// 07-17-07: Added 18F4450,2450 support ////
.................... //// ////
.................... //// 07-13-07: Added 87J50 family support ////
.................... //// ////
.................... //// 11-01-05: usb_detach(), usb_attach() and usb_init_cs() ////
.................... //// changed for the better. ////
.................... //// ////
.................... //// 10-28-05: Added usb_rx_packet_size() ////
.................... //// ////
.................... //// 07-13-05: usb_put_packet() changed for 16bit packet sizes ////
.................... //// usb_flush_in() changed for 16bit packet sizes ////
.................... //// usb_get_packet() changed for 16bit packet sizes ////
.................... //// usb_flush_out() changed for 16bit packet sizes ////
.................... //// usb_set_configured() changed for 16bit packet sizes ////
.................... //// ////
.................... //// 06-30-05: usb_tbe() added ////
.................... //// The way endpoint 0 DTS is set has been changed. ////
.................... //// ////
.................... //// 06-20-05: Initial Release ////
.................... //// ////
.................... //// 05-13-05: Beta Release (Full Speed works) ////
.................... //// ////
.................... //// 03-21-05: Initial Alpha Release ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2005 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... /////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __PIC18_USB_H__
.................... #DEFINE __PIC18_USB_H__
....................
.................... #DEFINE __USB_HARDWARE__
....................
.................... //let the USB Stack know that we are using a PIC with internal USB peripheral
.................... #DEFINE __PIC__ 1
....................
.................... #ifndef USB_USE_FULL_SPEED
.................... #define USB_USE_FULL_SPEED TRUE
.................... #endif
....................
.................... #ifndef USB_MAX_EP0_PACKET_LENGTH
.................... #if ((getenv("DEVICE")=="PIC18F2450") || (getenv("DEVICE")=="PIC18F4450"))
.................... //due to limited ram, force max packet length to 8 for this chip
.................... #define USB_MAX_EP0_PACKET_LENGTH 8
.................... #else
.................... #if USB_USE_FULL_SPEED==FALSE
.................... //slow speed requires 8byte max packet size for endpoint 0
.................... #DEFINE USB_MAX_EP0_PACKET_LENGTH 8
.................... #else
.................... //for full speed you can still use 8bytes, but 64 will be faster
.................... #DEFINE USB_MAX_EP0_PACKET_LENGTH 64
.................... #endif
.................... #endif
.................... #endif
....................
.................... #if (!USB_USE_FULL_SPEED && (USB_MAX_EP0_PACKET_LENGTH!=8))
.................... #error Slow speed devices must use a max packet size of 8 for endpoint 0!
.................... #endif
....................
.................... #if USB_MAX_EP0_PACKET_LENGTH < 8
.................... #error Max Endpoint 0 length can't be less than 8!
.................... #endif
....................
.................... #if USB_MAX_EP0_PACKET_LENGTH > 64
.................... #error Max Endpoint 0 length can't be greater than 64!
.................... #endif
....................
.................... #include <usb_hw_layer.h>
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb_hw_layer.h ////
.................... //// ////
.................... //// HW Layer for the USB Stack. ////
.................... //// ////
.................... //// HW drivers for the USB stack must support this API. ////
.................... //// ////
.................... //// The HW driver must also have a token handler that will call ////
.................... //// usb_token_reset() when the device is init/reset, will call ////
.................... //// usb_isr_tok_setup_dne() when it receives a setup packet, ////
.................... //// will call usb_isr_tok_out_dne() when a new packet is received, ////
.................... //// and will call usb_isr_tok_in_dne() when a new packet is sent. ////
.................... //// See usb.h for documentation of these functions. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2009 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #ifndef __USB_HW_LAYER_H__
.................... #define __USB_HW_LAYER_H__
....................
.................... enum USB_DTS_BIT {USB_DTS_DATA1=1, USB_DTS_TOGGLE=2, USB_DTS_DATA0=0,
.................... USB_DTS_STALL=3, USB_DTS_USERX=4};
....................
....................
.................... // USER LEVEL FUNCTIONS:
....................
.................... /*****************************************************************************
.................... /* usb_init()
.................... /*
.................... /* Summary: See API section of USB.H for documentation.
.................... /*
.................... /*****************************************************************************/
.................... void usb_init(void);
....................
.................... /*****************************************************************************
.................... /* usb_init_cs()
.................... /*
.................... /* Summary: See API section of USB.H for documentation.
.................... /*
.................... /*****************************************************************************/
.................... void usb_init_cs(void);
....................
.................... /*****************************************************************************
.................... /* usb_task()
.................... /*
.................... /* Summary: See API section of USB.H for documentation.
.................... /*
.................... /*****************************************************************************/
.................... void usb_task(void);
....................
.................... /******************************************************************************
.................... /* usb_attach()
.................... /*
.................... /* Summary: Attach the D+/D- lines to the USB bus. Enable the USB peripheral.
.................... /*
.................... /* You should wait until UCON_SE0 is clear before enabling reset/idle interrupt.
.................... /*
.................... /* Shouldn't be called by user, let usb_task() handle this.
.................... /*
.................... /* NOTE: If you are writing a new HW driver, this routine should call
.................... /* usb_token_reset() to reset the CH9 stack.
.................... /*
.................... /*****************************************************************************/
.................... void usb_attach(void);
....................
.................... /******************************************************************************
.................... /* usb_detach()
.................... /*
.................... /* Summary: Remove the D+/D- lines from the USB bus. Basically, disable USB.
.................... /*
.................... /* Shouldn't be called by user, let usb_task() handle this.
.................... /*
.................... /* If the user does call this function while USB is connected, the USB
.................... /* peripheral will be disabled only momentarily because usb_task() will
.................... /* reconnect. But this is a great way to cause the PC/HOST to cause a USB
.................... /* reset of the device.
.................... /*
.................... /* NOTE: If you are writing a new HW driver, this routine should call
.................... /* usb_token_reset() to reset the CH9 stack.
.................... /*
.................... /*****************************************************************************/
.................... void usb_detach(void);
....................
.................... /******************************************************************************
.................... /* usb_put_packet()
.................... /*
.................... /* Input: endpoint - endpoint to send packet to (0..15).
.................... /* ptr - points to data to send.
.................... /* len - amount of data to send.
.................... /* toggle - whether to send data with a DATA0 pid, a DATA1 pid,
.................... /* or toggle from the last DATAx pid.
.................... /*
.................... /* Output: TRUE if data was sent correctly, FALSE if it was not. The only
.................... /* reason it will return FALSE is if because the TX buffer is still full
.................... /* from the last time it tried to send a packet.
.................... /*
.................... /* Summary: Sends one packet out the EP to the host. Notice that there is a
.................... /* difference between a packet and a message. If you wanted to send a
.................... /* 512 byte message on an endpoint that only supported 64 byte packets,
.................... /* this would be accomplished this by sending 8 64-byte packets,
.................... /* followed by a 0 length packet. If the last (or only packet) being
.................... /* sent is less than the max packet size defined in your descriptor
.................... /* then you do not need to send a 0 length packet to identify
.................... /* an end of message.
.................... /*
.................... /* usb_puts() (provided in usb.c) will send a multi-packet message
.................... /* correctly and know if a 0 lenght packet needs to be sent.
.................... /*
.................... /* The result will be invalid if the specified input has not been configured for
.................... /* use by the API with USB_EPx_TX_SIZE
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_put_packet(int8 endpoint, int8 * ptr, unsigned int16 len, USB_DTS_BIT tgl);
....................
.................... /*******************************************************************************
.................... /* usb_get_packet(endpoint, *ptr, max)
.................... /*
.................... /* Input: endpoint - endpoint to get data from
.................... /* ptr - where to save data to local PIC RAM
.................... /* max - max amount of data to receive from buffer
.................... /*
.................... /* Output: the amount of data taken from the buffer and saved to ptr.
.................... /*
.................... /* NOTE - IF THERE IS NO PACKET TO GET YOU WILL GET INVALID RESULTS!
.................... /* VERIFY WITH USB_KBHIT() BEFORE YOU CALL USB_GET_PACKET()!
.................... /*
.................... /* Summary: Gets a packet of data from the USB endpoint buffer.
.................... /* Until this is called, if there is data in the receive buffer the
.................... /* PC/HOST will be prevented from sending more data. Upon completion
.................... /* of this call, the endpoint will be freed and the PC/HOST will be
.................... /* allowed to send a new packet. Only receives one packet, if you need
.................... /* to receive multiple packets or handle 0-length terminator packets,
.................... /* then use usb_gets().
.................... /*
.................... /* The result will be invalid if the specified input has not been configured for
.................... /* use by the API with USB_EPx_RX_SIZE
.................... /*
.................... /********************************************************************************/
.................... unsigned int16 usb_get_packet(int8 endpoint, int8 * ptr, unsigned int16 max);
....................
.................... /****************************************************************************
.................... /* usb_kbhit(endpoint)
.................... /*
.................... /* Input: endpoint - endpoint to check (0..15)
.................... /*
.................... /* Output: TRUE if there is new data in RX buffer, FALSE if there is not.
.................... /*
.................... /* Summary: Similar to kbhit(), sees if there is new data in the RX USB buffers.
.................... /* See API section of USB.H for more information.
.................... /*
.................... /* The result will be invalid if the specified input has not been configured for
.................... /* use by the API with USB_EPx_RX_SIZE
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_kbhit(int8 en);
....................
.................... /******************************************************************************
.................... /* usb_tbe(endpoint)
.................... /*
.................... /* Input: endpoint - endpoint to check
.................... /* ptr - where to save data to local PIC RAM
.................... /* max - max amount of data to receive from buffer
.................... /*
.................... /* Output: returns TRUE if this endpoint's IN buffer (PIC-PC) is empty and ready
.................... /* returns FALSE if this endpoint's IN buffer is still processing the last
.................... /* transmit or if this endpoint is invalid.
.................... /*
.................... /* The result will be invalid if the specified input has not been configured for
.................... /* use by the API with USB_EPx_TX_SIZE
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_tbe(int8 en);
....................
.................... //////////////// END USER LEVEL FUNCTIONS /////////////////////////////////////
....................
....................
.................... ///
.................... /// BEGIN STACK LEVEL FUNCTIONS: These functions are meant to be called by
.................... /// the USB stack, and are not meant to be called by the
.................... /// user/application.
.................... ///
....................
.................... /*****************************************************************************
.................... /* usb_stall_ep()
.................... /*
.................... /* Input: endpoint - endpoint to stall.
.................... /* top most bit indicates direction (set is IN, clear is OUT)
.................... /*
.................... /* Summary: Stalls specified endpoint. If endpoint is stalled it will
.................... /* send STALL packet if the host tries to access this endpoint's
.................... /* buffer.
.................... /*
.................... /* NOTE: WE ASSUME ENDPOINT IS VALID. USB.C SHOULD CHECK IF VALID BEFORE
.................... /* CALLING THIS ROUTINE.
.................... /*
.................... /*****************************************************************************/
.................... void usb_stall_ep(int8 endpoint);
....................
....................
.................... /*****************************************************************************
.................... /* usb_unstall_ep(endpoint, direction)
.................... /*
.................... /* Input: endpoint - endpoint to un-stall.
.................... /* top most bit indicates direction (set is IN, clear is OUT)
.................... /*
.................... /* Summary: Un-stalls endpoint.
.................... /*
.................... /* NOTE: WE ASSUME ENDPOINT IS VALID. USB.C SHOULD CHECK IF VALID BEFORE
.................... /* CALLING THIS ROUTINE.
.................... /*
.................... /*****************************************************************************/
.................... void usb_unstall_ep(int8 endpoint);
....................
.................... /*****************************************************************************
.................... /* usb_endpoint_stalled()
.................... /*
.................... /* Input: endpoint - endpoint to check
.................... /* top most bit indicates direction (set is IN, clear is OUT)
.................... /*
.................... /* Output: returns a TRUE if endpoint is stalled, FALSE if it is not.
.................... /*
.................... /* Summary: Looks to see if an endpoint is stalled, or not. Does not look to
.................... /* see if endpoint has been issued a STALL, just whether or not it is
.................... /* configured to STALL on the next packet. See Set_Feature and
.................... /* Clear_Feature Chapter 9 requests.
.................... /*
.................... /* NOTE: WE ASSUME ENDPOINT IS VALID. USB.C SHOULD CHECK IF VALID BEFORE
.................... /* CALLING THIS ROUTINE.
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_endpoint_stalled(int8 endpoint);
....................
.................... /*****************************************************************************
.................... /* usb_set_address(address)
.................... /*
.................... /* Input: address - address the host specified that we use
.................... /*
.................... /* Summary: Configures the USB Peripheral for the specified device address.
.................... /* The host will now talk to use with the following address.
.................... /*
.................... /*****************************************************************************/
.................... void usb_set_address(int8 address);
....................
.................... /******************************************************************************
.................... /* usb_set_configured()
.................... /*
.................... /* Input: config - Configuration to use. 0 to uncofigure device.
.................... /*
.................... /* Summary: Configures or unconfigures device. If configuring device it will
.................... /* enable all the endpoints the user specified for this configuration.
.................... /* If un-configuring device it will disable all endpoints.
.................... /*
.................... /* NOTE: CCS only provides code to handle 1 configuration.
.................... /*
.................... /*****************************************************************************/
.................... void usb_set_configured(int8 config);
....................
.................... /******************************************************************************
.................... /* usb_disable_endpoints()
.................... /*
.................... /* Summary: Disables endpoints (all endpoints but 0)
.................... /*
.................... /*****************************************************************************/
.................... void usb_disable_endpoints(void);
....................
....................
.................... /*******************************************************************************
.................... /* usb_disable_endpoint()
.................... /*
.................... /* Input: Endpoint to disable (0..15)
.................... /*
.................... /* Summary: Disables specified endpoint
.................... /*
.................... /********************************************************************************/
.................... void usb_disable_endpoint(int8 en);
....................
.................... /**************************************************************
.................... /* usb_request_send_response(len)
.................... /* usb_request_get_data()
.................... /* usb_request_stall()
.................... /*
.................... /* Input: len - size of packet to send
.................... /*
.................... /* Summary: One of these 3 functions will be called by the USB stack after
.................... /* handling a SETUP packet.
.................... /*
.................... /* After we process a SETUP request, we have 1 of three responses:
.................... /* 1.) send a response IN packet
.................... /* 2.) wait for followup OUT packet(s) with data
.................... /* 3.) stall because we don't support that SETUP request
.................... /*
.................... /* If we are sending data, the array usb_ep0_tx_buffer[] will hold
.................... /* the response and the USB Request handler code will call
.................... /* usb_request_send_response() to let us know how big the packet is.
.................... /*
.................... /* If we are waiting for more data, usb_request_get_data() will
.................... /* be called by the USB request handler code to configure the EP0 OUT
.................... /* endpoint to be ready for more data
.................... /*
.................... /* If we don't support a request, usb_request_stall() will be called
.................... /* by the USB request handler code to stall the endpoint 0.
.................... /*
.................... /* The operation of these functions depends on how SETUP packets
.................... /* are handled in the hardware layer.
.................... /*
.................... /***************************************************************/
.................... void usb_request_send_response(unsigned int8 len);
.................... void usb_request_get_data(void);
.................... void usb_request_stall(void);
....................
....................
.................... #endif
....................
....................
.................... //////////////////////// EXTRA USER FUNCTIONS /////////////////////////////////
....................
.................... /**************************************************************
.................... /* usb_flush_in()
.................... /*
.................... /* Input: endpoint - which endpoint to mark for transfer
.................... /* len - length of data that is being tramsferred
.................... /* tgl - Data toggle synchronization for this packet
.................... /*
.................... /* Output: TRUE if success, FALSE if error (we don't control the endpoint)
.................... /*
.................... /* Summary: Marks the endpoint ready for transmission. You must
.................... /* have already loaded the endpoint buffer with data.
.................... /* (IN is PIC -> PC).
.................... /* This routine is useful if you want to setup an endpoint by
.................... /* writing to the buffer directly.
.................... /* This routine is not necessary if you use usb_put_packet().
.................... /***************************************************************/
.................... int1 usb_flush_in(int8 endpoint, int16 len, USB_DTS_BIT tgl);
....................
.................... /**************************************************************
.................... /* usb_flush_out()
.................... /*
.................... /* Input: endpoint - which endpoint to mark for release
.................... /* tgl - Data toggle synchronization to expect in the next packet
.................... /*
.................... /* Output: NONE
.................... /*
.................... /* Summary: Clears the previously received packet, and then marks this
.................... /* endpoint's receive buffer as ready for more data.
.................... /* (OUT is PC -> PIC). This routine is useful if you do not
.................... /* want to use usb_get_packet(), instead you want to handle with
.................... /* the endpoint buffer directly. Also see usb_rx_packet_size().
.................... /* This routine is not necessary if you use usb_get_packet().
.................... /***************************************************************/
.................... void usb_flush_out(int8 endpoint, USB_DTS_BIT tgl);
....................
.................... /**************************************************************
.................... /* usb_rx_packet_size()
.................... /*
.................... /* Input: endpoint - which endpoint to mark to check
.................... /*
.................... /* Output: Returns the number of bytes in the endpoint's receive buffer.
.................... /*
.................... /* Summary: Read the number of data stored in the receive buffer. When you
.................... /* have handled the data, use usb_flush_out() to clear the buffer. The
.................... /* result may be invalid if usb_kbhit() returns false for this endpoint.
.................... /* This routine is not necessary if you use usb_get_packet().
.................... /***************************************************************/
.................... int16 usb_rx_packet_size(int8 endpoint);
....................
.................... #ENDIF
....................
.................... #else
.................... #include <pic24_usb.h> //Microchip 18Fxx5x hardware layer for usb.c
.................... #endif
.................... #else
.................... #include <usbn960x.h>
.................... #endif
.................... #include <usb_desc_cdc.h> //USB Configuration and Device descriptors for this UBS device
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb_desc_cdc.h ////
.................... //// ////
.................... //// An example set of device / configuration descriptors for use with ////
.................... //// CCS's CDC Virtual COM Port driver (see usb_cdc.h) ////
.................... //// ////
.................... //// This file is part of CCS's PIC USB driver code. See USB.H ////
.................... //// for more documentation and a list of examples. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// 10/28/05: ////
.................... //// Bulk endpoint sizes updated to allow more than 255 byte ////
.................... //// packets. ////
.................... //// Changed device to USB 1.10 ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2005 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __USB_DESCRIPTORS__
.................... #DEFINE __USB_DESCRIPTORS__
....................
.................... ///////// config options, although it's best to leave alone for this demo /////
.................... #define USB_CONFIG_PID 0x0033
.................... #define USB_CONFIG_VID 0x0461
.................... #define USB_CONFIG_BUS_POWER 100 //100mA (range is 0..500)
.................... #define USB_CONFIG_VERSION 0x0100 //01.00 //range is 00.00 to 99.99
.................... //////// end config ///////////////////////////////////////////////////////////
....................
.................... #DEFINE USB_HID_DEVICE FALSE
.................... #DEFINE USB_CDC_DEVICE TRUE
....................
.................... #define USB_CDC_COMM_IN_ENDPOINT 1
.................... #define USB_CDC_COMM_IN_SIZE 8
.................... #define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
.................... #define USB_EP1_TX_SIZE USB_CDC_COMM_IN_SIZE
....................
.................... //pic to pc endpoint config
.................... #define USB_CDC_DATA_IN_ENDPOINT 2
.................... #define USB_CDC_DATA_IN_SIZE 64
.................... #define USB_EP2_TX_ENABLE USB_ENABLE_BULK
.................... #define USB_EP2_TX_SIZE USB_CDC_DATA_IN_SIZE
....................
.................... //pc to pic endpoint config
.................... #define USB_CDC_DATA_OUT_ENDPOINT 2
.................... #define USB_CDC_DATA_OUT_SIZE 64
.................... #define USB_EP2_RX_ENABLE USB_ENABLE_BULK
.................... #define USB_EP2_RX_SIZE USB_CDC_DATA_OUT_SIZE
....................
.................... #include <usb.h>
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb.h ////
.................... //// ////
.................... //// Function protypes, defintions and globals used by CCS USB driver ////
.................... //// ////
.................... //// This file is part of CCS's USB driver code ////
.................... //// ////
.................... //// The following USB examples are provided by CCS: ////
.................... //// ex_usb_mouse.c - A HID Mouse. ////
.................... //// ex_usb_hid.c - A custom application using HID protocol. ////
.................... //// ex_usb_kbmouse.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// interfaces. ////
.................... //// ex_usb_kbmouse2.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// HID Reports. ////
.................... //// ex_usb_scope.c - A digital oscilloscope using a custom ////
.................... //// protocol requiring custom Windows drivers. ////
.................... //// ex_usb_serial.c - ////
.................... //// ex_usb_serial2.c - Two examples of using the CDC driver for ////
.................... //// a virtual COM port. ////
.................... //// ex_usb_bootloader.c - CDC/Virtual COM port bootloader. ////
.................... //// ex_usb_loadmouse.c - A conversion of ex_usb_mouse.c that is ////
.................... //// compatible with ex_usb_mouse.c. ////
.................... //// ////
.................... //// ********************** API ********************* ////
.................... //// ////
.................... //// These are the functions that are meant to be called by the user: ////
.................... //// ////
.................... //// usb_init() - Initializes the USB stack, the USB peripheral and ////
.................... //// attaches the unit to the usb bus. Enables ////
.................... //// interrupts. Will wait in an infinite loop until ////
.................... //// the device enumerates - if you are using ////
.................... //// connection sense or if the processor should run ////
.................... //// even if it's not connected to USB then use ////
.................... //// usb_init_cs() instead. ////
.................... //// ////
.................... //// usb_init_cs() - A smaller usb_init(), does not attach unit ////
.................... //// to usb bus or enable interrupts. Since this does ////
.................... //// not attach to the USB, you must periodically call ////
.................... //// usb_task(). See usb_task() for more information. ////
.................... //// ////
.................... //// usb_task() - If usb_init_cs() was used to initiate the USB ////
.................... //// peripheral, usb_task() should then be called periodically ////
.................... //// to check the connection sense pin. If the connection ////
.................... //// sense pin denotes USB is connected and the USB peripheral ////
.................... //// is not attached, this will attach the USB peripheral ////
.................... //// so the PC can start the enumeration process (and it ////
.................... //// will enable interrupts). If the connection sense pin ////
.................... //// denotes USB is not attached and the USB peripheral is ////
.................... //// running, this will reset the USB peripheral and wait ////
.................... //// for USB to reconnect (and usb_enumerated() will start ////
.................... //// returning FALSE). If connection sense (USB_CON_SENSE_PIN) ////
.................... //// is not defined the usb_task() assumes that USB is always ////
.................... //// connected. ////
.................... //// ////
.................... //// usb_attached() - Returns TRUE if the device is attached to a ////
.................... //// USB cable. A macro that looks at the defined ////
.................... //// connection sense pin. If this returns TRUE ////
.................... //// it does not mean the PC has connected to it, ////
.................... //// you need to use usb_enumerated() to check this. ////
.................... //// ////
.................... //// usb_enumerated() - Returns TRUE if device has been enumerated ////
.................... //// (configured) by host, FALSE if it has not. ////
.................... //// Do not try to use the USB peripheral for ////
.................... //// sending and receiving packets until you ////
.................... //// are enumerated. ////
.................... //// ////
.................... //// usb_wait_for_enumeration() - Sits in an infinte loop until device ////
.................... //// is enumerated. ////
.................... //// ////
.................... //// usb_tbe(endpoint) - Returns TRUE if the endpoint transmit buffer ////
.................... //// is free and ready to accept a new packet for transmission. ////
.................... //// ////
.................... //// usb_put_packet(endpoint, ptr, len, tgl) - Sends one packet to the ////
.................... //// host. If you need to send a message that ////
.................... //// spans more than one packet then use ////
.................... //// usb_puts(). Fore more detailed documentation ////
.................... //// see usb_hw_layer.h ////
.................... //// ////
.................... //// usb_puts(endpoint, ptr, len, timeout) - Sends a multiple packet ////
.................... //// message to the host. If you only need to send one packet, ////
.................... //// it is more effecient to use usb_put_packet(). This is ////
.................... //// documented in more detail above the prototype in USB.H. ////
.................... //// ////
.................... //// usb_kbhit(endpoint) - Returns true if OUT endpoint contains data ////
.................... //// from host. This will remain TRUE until ////
.................... //// usb_put_packet() or usb_flush_out() used. ////
.................... //// This function will return an invalid response ////
.................... //// if specified endpoint is not enabled for ////
.................... //// receiving data. ////
.................... //// ////
.................... //// len = usb_get_packet(endpoint, ptr, max) - Gets one packet that ////
.................... //// from the host/PC. usb_kbhit() must return TRUE before you ////
.................... //// call this routine or your data may not be valid. This ////
.................... //// only receives one packet, if you are trying to receive a ////
.................... //// multi-packet message use usb_gets(). For more detailed ////
.................... //// documentation see usb_hw_layer.h. ////
.................... //// ////
.................... //// len = usb_gets(endpoint, ptr, max, timeout) - Gets multiple ////
.................... //// packets from the host, you would use this instead ////
.................... //// of usb_get_packet() if you wanted to handle multi-packet ////
.................... //// messages. This is documented in more detail above the ////
.................... //// prototype in USB.H. ////
.................... //// ////
.................... //// ////
.................... //// ********* DEFINITIONS / CONFIGURATION ********** ////
.................... //// ////
.................... //// The following definitions are declared here, but can be ////
.................... //// overwritten in your code. Unless needed otherwise, leave ////
.................... //// to default value. If confused about a definition read the ////
.................... //// comments at each defintion ////
.................... //// ////
.................... //// USB_HID_IDLE (TRUE) - Set to TRUE if your device supports ////
.................... //// Set_Idle HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Idle / Get_Idle command) ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code. See ////
.................... //// usb_isr_tkn_setup_ClassInterface() in ////
.................... //// usb.c ////
.................... //// ////
.................... //// USB_HID_BOOT_PROTOCOL (FALSE) - Set to TRUE if your device supports ////
.................... //// Set_Protocl HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Protocl / Get_Protocol ////
.................... //// command). ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code in the ////
.................... //// application that properly send boot ////
.................... //// or HID packets. ////
.................... //// ////
.................... //// USB_MAX_EP0_PACKET_LENGTH (8) - Max Packet size for Endpoint 0. ////
.................... //// The hardware level driver (ex ////
.................... //// pic18_usb.h will define this value if ////
.................... //// not already overwritten). Increasing ////
.................... //// this size will speed up the ////
.................... //// enumeration process. ////
.................... //// ////
.................... //// USB_EPx_RX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this RX (PC to device) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_RX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for receiving ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_RX_ENABLE defined and ////
.................... //// USB_EPx_RX_SIZE defined (non 0) to enable a RX ////
.................... //// endpoint. ////
.................... //// *** NOTE *** Endpoint 0 is always enabled. ////
.................... //// ////
.................... //// USB_EPx_TX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this TX (device to PC) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_TX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for transmitting ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_TX_ENABLE defined and ////
.................... //// USB_EPx_TX_SIZE defined (non 0) to enable a TX ////
.................... //// endpoint. ////
.................... //// ////
.................... //// ////
.................... //// USB_HID_DEVICE (TRUE) - HID devices require extra code to handle ////
.................... //// HID requests. You can disable to save ////
.................... //// ROM space if you are not using a HID ////
.................... //// device. If you are not using a HID ////
.................... //// device you must provide your own O/S ////
.................... //// (Windows) driver. ////
.................... //// ////
.................... //// The other definitions should not be changed. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// July 13th, 2005: ////
.................... //// usb_ep_tx_size[] and usb_ep_rx_size[] changed to 16bits ////
.................... //// ////
.................... //// June 20th, 2005: ////
.................... //// Initial 18fxx5x release ////
.................... //// ////
.................... //// May 13th, 2005: ////
.................... //// Beta release, only works with 18Fxx5x hardware layer. ////
.................... //// Now supports multiple interfaces (many defines in descriptors ////
.................... //// will have to be changed, see examples) ////
.................... //// ////
.................... //// Mar 21st, 2005: ////
.................... //// Initial Alpha Release with PIC18Fxx5x support. (ONLY TESTED ////
.................... //// WITH 18F4550) ////
.................... //// usb_gets() and usb_puts() changed (see usb.c) ////
.................... //// ////
.................... //// June 24th, 2004: ////
.................... //// Optimization and cleanup. ////
.................... //// The following definitions changed: ////
.................... //// USB_EPx_TX_ENABLE and USB_EPx_RX_ENABLE have changed. See usb.h ////
.................... //// USB_CONFIG_DESCRIPTORS[] removed ////
.................... //// USB_CONFIG_DESC_LEN changed to USB_DESC_CONFIG_LEN ////
.................... //// USB_INTERFACE_DESC_LEN changed to USB_DESC_INTERFACE_LEN ////
.................... //// USB_CLASS_DESC_LEN changed to USB_DESC_CLASS_LEN ////
.................... //// USB_ENDPOINT_DESC_LEN changed to USB_DESC_ENDPOINT_LEN ////
.................... //// USB_CONFIG_DESC_KEY changed to USB_DESC_CONFIG_TYPE ////
.................... //// USB_INTERFACE_DESC_KEY changed to USB_DESC_INTERFACE_TYPE ////
.................... //// USB_CLASS_DESC_KEY changed to USB_DESC_CLASS_TYPE ////
.................... //// USB_ENDPOINT_DESC_KEY changed to USB_DESC_ENDPOINT_TYPE ////
.................... //// USB_STRING_X[] arrays removed, see USB_STRING_DESC[] and ////
.................... //// USB_STRING_DESC_OFFSET[] ////
.................... //// dev_req, curr_config, status_device and getdesc_type global ////
.................... //// variables moved into struct USB_stack_status ////
.................... //// ////
.................... //// October 15th, 2003: Support for boot protocol added. ////
.................... //// Set USB_HID_BOOT_PROTOCOL to TRUE to support this. ////
.................... //// The array hid_protocol[] saves which protocol mode each ////
.................... //// interface is in. It is your applications job to send ////
.................... //// data that either fit the boot protocol or HID protocol. ////
.................... //// ////
.................... //// May 6th, 2003: Fixed a potential stack overflow using PCM ////
.................... //// ////
.................... //// October 29th, 2002: New definition added to USB_STATES ////
.................... //// ////
.................... //// August 2nd, 2002: Initial Public Release ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2009 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __USB_PROTOTYPES__
.................... #DEFINE __USB_PROTOTYPES__
....................
.................... //// CONFIGURATION ////////////////////////////////////////////////////////////
....................
.................... #ifndef USB_CON_SENSE_PIN
.................... #define USB_CON_SENSE_PIN 0
.................... #endif
....................
.................... #IFNDEF USB_HID_BOOT_PROTOCOL
.................... #DEFINE USB_HID_BOOT_PROTOCOL FALSE
.................... #ENDIF
....................
.................... #IFNDEF USB_HID_IDLE
.................... #DEFINE USB_HID_IDLE FALSE
.................... #ENDIF
....................
.................... //should the compiler add the extra HID handler code? Defaults to yes.
.................... #IFNDEF USB_HID_DEVICE
.................... #DEFINE USB_HID_DEVICE TRUE
.................... #ENDIF
....................
.................... #IFNDEF USB_CDC_DEVICE
.................... #DEFINE USB_CDC_DEVICE FALSE
.................... #ENDIF
....................
.................... //set to false to opt for less RAM, true to opt for less ROM
.................... #ifndef USB_OPT_FOR_ROM
.................... #define USB_OPT_FOR_ROM TRUE
.................... #endif
....................
.................... #IFNDEF USB_MAX_EP0_PACKET_LENGTH
.................... #DEFINE USB_MAX_EP0_PACKET_LENGTH 8
.................... #ENDIF
....................
....................
.................... ////// USER-LEVEL API /////////////////////////////////////////////////////////
....................
.................... /**************************************************************
.................... /* usb_enumerated()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /* Returns: Returns a 1 if device is configured / enumerated,
.................... /* Returns a 0 if device is un-configured / not enumerated.
.................... /*
.................... /* Summary: See API section of USB.H for more documentation.
.................... /***************************************************************/
.................... int1 usb_enumerated(void);
....................
.................... /**************************************************************
.................... /* usb_wait_for_enumeration()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /*
.................... /* Summary: Waits in-definately until device is configured / enumerated.
.................... /* See API section of USB.H for more information.
.................... /***************************************************************/
.................... void usb_wait_for_enumeration(void);
....................
.................... /****************************************************************************
.................... /* usb_gets(endpoint, ptr, max, timeout)
.................... /*
.................... /* Input: endpoint - endpoint to get data from
.................... /* ptr - place / array to store data to
.................... /* max - max amount of data to get from USB and store into ptr
.................... /* timeout - time in milliseconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Output: Amount of data returned. It may be less than max.
.................... /*
.................... /* Summary: Gets data from the host. Will get multiple-packet messages
.................... /* and finish when either it receives a 0-len packet or a packet
.................... /* of less size than maximum.
.................... /*
.................... /*****************************************************************************/
.................... unsigned int16 usb_gets(int8 endpoint, int8 * ptr, unsigned int16 max, unsigned int16 timeout);
....................
.................... /****************************************************************************
.................... /* usb_puts()
.................... /*
.................... /* Inputs: endpoint - endpoint to send data out
.................... /* ptr - points to array of data to send
.................... /* len - amount of data to send
.................... /* timeout - time in milli-seconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Outputs: Returns TRUE if message sent succesfully, FALSE if it was not
.................... /* sent before timeout period expired.
.................... /*
.................... /* Summary: Used for sending multiple packets of data as one message. This
.................... /* function can still be used to send messages consiting of only one
.................... /* packet. See usb_put_packet() documentation for the rules about when
.................... /* multiple packet messages or 0-lenght packets are needed.
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_puts(int8 endpoint, int8 * ptr, unsigned int16 len, unsigned int8 timeout);
....................
.................... /******************************************************************************
.................... /* usb_attached()
.................... /*
.................... /* Summary: Returns TRUE if the device is attached to a USB cable.
.................... /* See the API section of USB.H for more documentation.
.................... /*
.................... /*****************************************************************************/
.................... #if USB_CON_SENSE_PIN
.................... #define usb_attached() input(USB_CON_SENSE_PIN)
.................... #else
.................... #define usb_attached() TRUE
.................... #endif
....................
.................... ////// END USER-LEVEL API /////////////////////////////////////////////////////
....................
....................
.................... ////// STACK-LEVEL API USED BY HW DRIVERS ////////////////////////////////////
....................
.................... enum USB_STATES {GET_DESCRIPTOR=1,SET_ADDRESS=2,NONE=0};
....................
.................... enum USB_GETDESC_TYPES {USB_GETDESC_CONFIG_TYPE=0,USB_GETDESC_HIDREPORT_TYPE=1,USB_GETDESC_STRING_TYPE=2,USB_GETDESC_DEVICE_TYPE=3};
....................
.................... #if USB_OPT_FOR_ROM
.................... typedef struct {
.................... USB_STATES dev_req; //what did the last setup token set us up to do?. init at none
.................... int curr_config; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #else
.................... typedef struct {
.................... USB_STATES dev_req:2; //what did the last setup token set us up to do?. init at none
.................... int Curr_config:2; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device:2; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type:2; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #endif
....................
.................... extern TYPE_USB_STACK_STATUS USB_stack_status;
....................
.................... /**************************************************************
.................... /* usb_token_reset()
.................... /*
.................... /* Output: No output (but many global registers are modified)
.................... /*
.................... /* Summary: Resets the token handler to initial (unconfigured) state.
.................... /***************************************************************/
.................... void usb_token_reset(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_setup_dne()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[] contains the the setup packet.
.................... /*
.................... /* Output: None (many globals are changed)
.................... /*
.................... /* Summary: This function is that handles the setup token.
.................... /* We must handle all relevant requests, such as Set_Configuration,
.................... /* Get_Descriptor, etc.
.................... /*
.................... /* usb_ep0_rx_buffer[] contains setup data packet, which has the
.................... /* following records:
.................... /* -------------------------------------------------------------------------------------------
.................... /* usb_ep0_rx_buffer[ 0 ]=bmRequestType; Where the setup packet goes
.................... /* bit7 (0) host-to-device
.................... /* (1) device-to-host
.................... /* bit6-5 (00) usb standard request;
.................... /* (01) class request;
.................... /* (10) vendor request
.................... /* (11) reserved
.................... /* bit4-0 (0000) device
.................... /* (0001) interface
.................... /* (0010) endpoint
.................... /* (0011) other element
.................... /* (0100) to (1111) reserved
.................... /* usb_ep0_rx_buffer[ 1 ]=bRequest ; the request
.................... /* usb_ep0_rx_buffer[2,3]=wValue ; a value which corresponds to request
.................... /* usb_ep0_rx_buffer[4,5]=wIndex ; could correspond to interface or endpoint...
.................... /* usb_ep0_rx_buffer[6,7]=wLength ; number of bytes in next data packet;
.................... /* for host-to-device, this exactly how many bytes in data packet.
.................... /* for device-to-host, this is the maximum bytes that can fit one packet.
.................... /***************************************************************/
.................... void usb_isr_tok_setup_dne(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_out_dne()
.................... /*
.................... /* Input: endpoint contains which endpoint we are receiving data (0..15)
.................... /*
.................... /* Summary: Processes out tokens (out is respective of the host, so actualy
.................... /* incoming to the pic), but not out setup tokens. Normally when
.................... /* data is received it is left in the buffer (user would use
.................... /* usb_kbhit() and usb_get_packet() to receive data), but certain
.................... /* libraries (like CDC) have to answer setup packets.
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_out_dne(int8 endpoint);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_in_dne(endpoint)
.................... /*
.................... /* Input: endpoint - which endpoint we are processing a setup token.
.................... /*
.................... /* Summary: This handles an IN packet (HOST <- PIC). For endpoint 0, this
.................... /* is usually to setup a response packet to a setup packet. Endpoints 1..15
.................... /* are generally ignored, and the user has to use usb_tbe() to determine if
.................... /* if the buffer is ready for a new transmit packet (there are special cases,
.................... /* like CDC which handles the CDC protocl).
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_in_dne(int8 endpoint);
....................
.................... ////// END STACK-LEVEL API USED BY HW DRIVERS /////////////////////////////////
....................
....................
.................... //CCS only supports one configuration at this time
.................... #DEFINE USB_NUM_CONFIGURATIONS 1 //DO NOT CHANGE
....................
.................... //PID values for tokens (see page 48 of USB Complete ed.1)
.................... #define PID_IN 0x09 //device to host transactions
.................... #define PID_OUT 0x01 //host to device transactions
.................... #define PID_SETUP 0x0D //host to device setup transaction
.................... #define PID_ACK 0x02 //receiver accepts error-free data packet
.................... #define PID_DATA0 0x03 //data packet with even sync bit
.................... #define PID_SOF 0x05 //start of framer marker and frame number
.................... #define PID_NAK 0x0A //receiver can't accept data or sender cant send data or has no data to transmit
.................... #define PID_DATA1 0x0B //data packet with odd sync bit
.................... #define PID_PRE 0x0C //preamble issued by host. enables downstream traffic to low-speed device
.................... #define PID_STALL 0x0E //a control request isnt supported or the endpoint is halted
....................
.................... //Key which identifies descritpors
.................... #DEFINE USB_DESC_DEVICE_TYPE 0x01 //#DEFINE USB_DEVICE_DESC_KEY 0x01
.................... #DEFINE USB_DESC_CONFIG_TYPE 0x02 //#DEFINE USB_CONFIG_DESC_KEY 0x02
.................... #DEFINE USB_DESC_STRING_TYPE 0x03 //#DEFINE USB_STRING_DESC_KEY 0x03
.................... #DEFINE USB_DESC_INTERFACE_TYPE 0x04 //#DEFINE USB_INTERFACE_DESC_KEY 0x04
.................... #DEFINE USB_DESC_ENDPOINT_TYPE 0x05 //#DEFINE USB_ENDPOINT_DESC_KEY 0x05
.................... #DEFINE USB_DESC_CLASS_TYPE 0x21 //#DEFINE USB_CLASS_DESC_KEY 0x21
.................... #DEFINE USB_DESC_HIDREPORT_TYPE 0x22
....................
.................... //The length of each descriptor
.................... #DEFINE USB_DESC_DEVICE_LEN 18 //#DEFINE USB_DEVICE_DESC_LEN 18
.................... #DEFINE USB_DESC_CONFIG_LEN 9 //#DEFINE USB_CONFIG_DESC_LEN 9
.................... #DEFINE USB_DESC_INTERFACE_LEN 9 //#DEFINE USB_INTERFACE_DESC_LEN 9
.................... #DEFINE USB_DESC_CLASS_LEN 9 //#DEFINE USB_CLASS_DESC_LEN 9
.................... #DEFINE USB_DESC_ENDPOINT_LEN 7 //#DEFINE USB_ENDPOINT_DESC_LEN 7
....................
.................... //Standard USB Setup bRequest Codes
.................... #define USB_STANDARD_REQUEST_GET_STATUS 0x00
.................... #define USB_STANDARD_REQUEST_CLEAR_FEATURE 0x01
.................... #define USB_STANDARD_REQUEST_SET_FEATURE 0x03
.................... #define USB_STANDARD_REQUEST_SET_ADDRESS 0x05
.................... #define USB_STANDARD_REQUEST_GET_DESCRIPTOR 0x06
.................... #define USB_STANDARD_REQUEST_SET_DESCRIPTOR 0x07
.................... #define USB_STANDARD_REQUEST_GET_CONFIGURATION 0x08
.................... #define USB_STANDARD_REQUEST_SET_CONFIGURATION 0x09
.................... #define USB_STANDARD_REQUEST_GET_INTERFACE 0x0A
.................... #define USB_STANDARD_REQUEST_SET_INTERFACE 0x0B
.................... #define USB_STANDARD_REQUEST_SYNCH_FRAME 0x0C
....................
.................... //HID Class Setup bRequest Codes
.................... #define USB_HID_REQUEST_GET_REPORT 0x01
.................... #define USB_HID_REQUEST_GET_IDLE 0x02
.................... #define USB_HID_REQUEST_GET_PROTOCOL 0x03
.................... #define USB_HID_REQUEST_SET_REPORT 0x09
.................... #define USB_HID_REQUEST_SET_IDLE 0x0A
.................... #define USB_HID_REQUEST_SET_PROTOCOL 0x0B
....................
.................... //types of endpoints as defined in the descriptor
.................... #define USB_ENDPOINT_TYPE_CONTROL 0x00
.................... #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
.................... #define USB_ENDPOINT_TYPE_BULK 0x02
.................... #define USB_ENDPOINT_TYPE_INTERRUPT 0x03
....................
.................... //types of endpoints used internally in this api
.................... #define USB_ENABLE_DISABLED -1
.................... #define USB_ENABLE_BULK USB_ENDPOINT_TYPE_BULK
.................... #define USB_ENABLE_ISOCHRONOUS USB_ENDPOINT_TYPE_ISOCHRONOUS
.................... #define USB_ENABLE_INTERRUPT USB_ENDPOINT_TYPE_INTERRUPT
.................... #define USB_ENABLE_CONTROL USB_ENDPOINT_TYPE_CONTROL
....................
....................
.................... //*** ENABLE RX ENDPOINTS AND BUFFERS
....................
.................... //--------- endpoint 0 defines ----------
.................... #define USB_EP0_TX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
.................... #define USB_EP0_TX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
....................
.................... //--------- endpoint 1 defines ----------
.................... #ifndef USB_EP1_TX_ENABLE
.................... #define USB_EP1_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP1_RX_ENABLE
.................... #define USB_EP1_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP1_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_RX_SIZE
.................... #undef USB_EP1_RX_SIZE
.................... #endif
.................... #define USB_EP1_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_RX_SIZE
.................... #error You enabled EP1 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP1_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_TX_SIZE
.................... #undef USB_EP1_TX_SIZE
.................... #endif
.................... #define USB_EP1_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_TX_SIZE
.................... #error You enabled EP1 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 2 defines ----------
.................... #ifndef USB_EP2_TX_ENABLE
.................... #define USB_EP2_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP2_RX_ENABLE
.................... #define USB_EP2_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP2_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_RX_SIZE
.................... #undef USB_EP2_RX_SIZE
.................... #endif
.................... #define USB_EP2_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_RX_SIZE
.................... #error You enabled EP2 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP2_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_TX_SIZE
.................... #undef USB_EP2_TX_SIZE
.................... #endif
.................... #define USB_EP2_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_TX_SIZE
.................... #error You enabled EP2 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 3 defines ----------
.................... #ifndef USB_EP3_TX_ENABLE
.................... #define USB_EP3_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP3_RX_ENABLE
.................... #define USB_EP3_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP3_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_RX_SIZE
.................... #undef USB_EP3_RX_SIZE
.................... #endif
.................... #define USB_EP3_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_RX_SIZE
.................... #error You enabled EP3 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP3_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_TX_SIZE
.................... #undef USB_EP3_TX_SIZE
.................... #endif
.................... #define USB_EP3_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_TX_SIZE
.................... #error You enabled EP3 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 4 defines ----------
.................... #ifndef USB_EP4_TX_ENABLE
.................... #define USB_EP4_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP4_RX_ENABLE
.................... #define USB_EP4_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP4_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_RX_SIZE
.................... #undef USB_EP4_RX_SIZE
.................... #endif
.................... #define USB_EP4_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_RX_SIZE
.................... #error You enabled EP4 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP4_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_TX_SIZE
.................... #undef USB_EP4_TX_SIZE
.................... #endif
.................... #define USB_EP4_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_TX_SIZE
.................... #error You enabled EP4 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 5 defines ----------
.................... #ifndef USB_EP5_TX_ENABLE
.................... #define USB_EP5_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP5_RX_ENABLE
.................... #define USB_EP5_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP5_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_RX_SIZE
.................... #undef USB_EP5_RX_SIZE
.................... #endif
.................... #define USB_EP5_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_RX_SIZE
.................... #error You enabled EP5 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP5_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_TX_SIZE
.................... #undef USB_EP5_TX_SIZE
.................... #endif
.................... #define USB_EP5_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_TX_SIZE
.................... #error You enabled EP5 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 6 defines ----------
.................... #ifndef USB_EP6_TX_ENABLE
.................... #define USB_EP6_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP6_RX_ENABLE
.................... #define USB_EP6_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP6_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_RX_SIZE
.................... #undef USB_EP6_RX_SIZE
.................... #endif
.................... #define USB_EP6_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_RX_SIZE
.................... #error You enabled EP6 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP6_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_TX_SIZE
.................... #undef USB_EP6_TX_SIZE
.................... #endif
.................... #define USB_EP6_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_TX_SIZE
.................... #error You enabled EP6 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 7 defines ----------
.................... #ifndef USB_EP7_TX_ENABLE
.................... #define USB_EP7_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP7_RX_ENABLE
.................... #define USB_EP7_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP7_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_RX_SIZE
.................... #undef USB_EP7_RX_SIZE
.................... #endif
.................... #define USB_EP7_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_RX_SIZE
.................... #error You enabled EP7 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP7_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_TX_SIZE
.................... #undef USB_EP7_TX_SIZE
.................... #endif
.................... #define USB_EP7_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_TX_SIZE
.................... #error You enabled EP7 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 8 defines ----------
.................... #ifndef USB_EP8_TX_ENABLE
.................... #define USB_EP8_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP8_RX_ENABLE
.................... #define USB_EP8_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP8_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_RX_SIZE
.................... #undef USB_EP8_RX_SIZE
.................... #endif
.................... #define USB_EP8_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_RX_SIZE
.................... #error You enabled EP8 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP8_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_TX_SIZE
.................... #undef USB_EP8_TX_SIZE
.................... #endif
.................... #define USB_EP8_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_TX_SIZE
.................... #error You enabled EP8 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 9 defines ----------
.................... #ifndef USB_EP9_TX_ENABLE
.................... #define USB_EP9_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP9_RX_ENABLE
.................... #define USB_EP9_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP9_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_RX_SIZE
.................... #undef USB_EP9_RX_SIZE
.................... #endif
.................... #define USB_EP9_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_RX_SIZE
.................... #error You enabled EP9 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP9_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_TX_SIZE
.................... #undef USB_EP9_TX_SIZE
.................... #endif
.................... #define USB_EP9_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_TX_SIZE
.................... #error You enabled EP9 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 10 defines ----------
.................... #ifndef USB_EP10_TX_ENABLE
.................... #define USB_EP10_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP10_RX_ENABLE
.................... #define USB_EP10_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP10_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_RX_SIZE
.................... #undef USB_EP10_RX_SIZE
.................... #endif
.................... #define USB_EP10_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_RX_SIZE
.................... #error You enabled EP10 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP10_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_TX_SIZE
.................... #undef USB_EP10_TX_SIZE
.................... #endif
.................... #define USB_EP10_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_TX_SIZE
.................... #error You enabled EP10 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 11 defines ----------
.................... #ifndef USB_EP11_TX_ENABLE
.................... #define USB_EP11_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP11_RX_ENABLE
.................... #define USB_EP11_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP11_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_RX_SIZE
.................... #undef USB_EP11_RX_SIZE
.................... #endif
.................... #define USB_EP11_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_RX_SIZE
.................... #error You enabled EP11 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP11_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_TX_SIZE
.................... #undef USB_EP11_TX_SIZE
.................... #endif
.................... #define USB_EP11_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_TX_SIZE
.................... #error You enabled EP11 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 12 defines ----------
.................... #ifndef USB_EP12_TX_ENABLE
.................... #define USB_EP12_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP12_RX_ENABLE
.................... #define USB_EP12_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP12_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_RX_SIZE
.................... #undef USB_EP12_RX_SIZE
.................... #endif
.................... #define USB_EP12_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_RX_SIZE
.................... #error You enabled EP12 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP12_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_TX_SIZE
.................... #undef USB_EP12_TX_SIZE
.................... #endif
.................... #define USB_EP12_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_TX_SIZE
.................... #error You enabled EP12 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 13 defines ----------
.................... #ifndef USB_EP13_TX_ENABLE
.................... #define USB_EP13_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP13_RX_ENABLE
.................... #define USB_EP13_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP13_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_RX_SIZE
.................... #undef USB_EP13_RX_SIZE
.................... #endif
.................... #define USB_EP13_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_RX_SIZE
.................... #error You enabled EP13 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP13_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_TX_SIZE
.................... #undef USB_EP13_TX_SIZE
.................... #endif
.................... #define USB_EP13_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_TX_SIZE
.................... #error You enabled EP13 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 14 defines ----------
.................... #ifndef USB_EP14_TX_ENABLE
.................... #define USB_EP14_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP14_RX_ENABLE
.................... #define USB_EP14_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP14_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_RX_SIZE
.................... #undef USB_EP14_RX_SIZE
.................... #endif
.................... #define USB_EP14_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_RX_SIZE
.................... #error You enabled EP14 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP14_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_TX_SIZE
.................... #undef USB_EP14_TX_SIZE
.................... #endif
.................... #define USB_EP14_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_TX_SIZE
.................... #error You enabled EP14 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 15 defines ----------
.................... #ifndef USB_EP15_TX_ENABLE
.................... #define USB_EP15_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP15_RX_ENABLE
.................... #define USB_EP15_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP15_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_RX_SIZE
.................... #undef USB_EP15_RX_SIZE
.................... #endif
.................... #define USB_EP15_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_RX_SIZE
.................... #error You enabled EP15 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP15_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_TX_SIZE
.................... #undef USB_EP15_TX_SIZE
.................... #endif
.................... #define USB_EP15_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_TX_SIZE
.................... #error You enabled EP15 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... const int8 usb_ep_tx_type[16]={
.................... USB_EP0_TX_ENABLE, USB_EP1_TX_ENABLE, USB_EP2_TX_ENABLE,
.................... USB_EP3_TX_ENABLE, USB_EP4_TX_ENABLE, USB_EP5_TX_ENABLE,
.................... USB_EP6_TX_ENABLE, USB_EP7_TX_ENABLE, USB_EP8_TX_ENABLE,
.................... USB_EP9_TX_ENABLE, USB_EP10_TX_ENABLE, USB_EP11_TX_ENABLE,
.................... USB_EP12_TX_ENABLE, USB_EP13_TX_ENABLE, USB_EP14_TX_ENABLE,
.................... USB_EP15_TX_ENABLE
.................... };
....................
.................... const int8 usb_ep_rx_type[16]={
.................... USB_EP0_RX_ENABLE, USB_EP1_RX_ENABLE, USB_EP2_RX_ENABLE,
.................... USB_EP3_RX_ENABLE, USB_EP4_RX_ENABLE, USB_EP5_RX_ENABLE,
.................... USB_EP6_RX_ENABLE, USB_EP7_RX_ENABLE, USB_EP8_RX_ENABLE,
.................... USB_EP9_RX_ENABLE, USB_EP10_RX_ENABLE, USB_EP11_RX_ENABLE,
.................... USB_EP12_RX_ENABLE, USB_EP13_RX_ENABLE, USB_EP14_RX_ENABLE,
.................... USB_EP15_RX_ENABLE
.................... };
....................
.................... const unsigned int16 usb_ep_tx_size[16]={
.................... USB_EP0_TX_SIZE, USB_EP1_TX_SIZE, USB_EP2_TX_SIZE,
.................... USB_EP3_TX_SIZE, USB_EP4_TX_SIZE, USB_EP5_TX_SIZE,
.................... USB_EP6_TX_SIZE, USB_EP7_TX_SIZE, USB_EP8_TX_SIZE,
.................... USB_EP9_TX_SIZE, USB_EP10_TX_SIZE, USB_EP11_TX_SIZE,
.................... USB_EP12_TX_SIZE, USB_EP13_TX_SIZE, USB_EP14_TX_SIZE,
.................... USB_EP15_TX_SIZE
.................... };
....................
.................... const unsigned int16 usb_ep_rx_size[16]={
.................... USB_EP0_RX_SIZE, USB_EP1_RX_SIZE, USB_EP2_RX_SIZE,
.................... USB_EP3_RX_SIZE, USB_EP4_RX_SIZE, USB_EP5_RX_SIZE,
.................... USB_EP6_RX_SIZE, USB_EP7_RX_SIZE, USB_EP8_RX_SIZE,
.................... USB_EP9_RX_SIZE, USB_EP10_RX_SIZE, USB_EP11_RX_SIZE,
.................... USB_EP12_RX_SIZE, USB_EP13_RX_SIZE, USB_EP14_RX_SIZE,
.................... USB_EP15_RX_SIZE
.................... };
....................
.................... #ENDIF
....................
....................
.................... //////////////////////////////////////////////////////////////////
.................... ///
.................... /// start config descriptor
.................... /// right now we only support one configuration descriptor.
.................... /// the config, interface, class, and endpoint goes into this array.
.................... ///
.................... //////////////////////////////////////////////////////////////////
....................
.................... #DEFINE USB_TOTAL_CONFIG_LEN 67 //config+interface+class+endpoint+endpoint (2 endpoints)
....................
.................... const char USB_CONFIG_DESC[] = {
.................... //IN ORDER TO COMPLY WITH WINDOWS HOSTS, THE ORDER OF THIS ARRAY MUST BE:
.................... // config(s)
.................... // interface(s)
.................... // class(es)
.................... // endpoint(s)
....................
.................... //config_descriptor for config index 1
.................... USB_DESC_CONFIG_LEN, //length of descriptor size ==0
.................... USB_DESC_CONFIG_TYPE, //constant CONFIGURATION (CONFIGURATION 0x02) ==1
.................... USB_TOTAL_CONFIG_LEN,0, //size of all data returned for this config ==2,3
.................... 2, //number of interfaces this device supports ==4
.................... 0x01, //identifier for this configuration. (IF we had more than one configurations) ==5
.................... 0x00, //index of string descriptor for this configuration ==6
.................... #if USB_CONFIG_BUS_POWER
.................... 0x80, //bit 6=1 if self powered, bit 5=1 if supports remote wakeup (we don't), bits 0-4 unused and bit7=1 ==7
.................... #else
.................... 0xC0, //bit 6=1 if self powered, bit 5=1 if supports remote wakeup (we don't), bits 0-4 unused and bit7=1 ==7
.................... #endif
.................... USB_CONFIG_BUS_POWER/2, //maximum bus power required (maximum milliamperes/2) (0x32 = 100mA) ==8
....................
....................
.................... //interface descriptor 0 (comm class interface)
.................... USB_DESC_INTERFACE_LEN, //length of descriptor =9
.................... USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04) =10
.................... 0x00, //number defining this interface (IF we had more than one interface) ==11
.................... 0x00, //alternate setting ==12
.................... 1, //number of endpoints ==13
.................... 0x02, //class code, 02 = Comm Interface Class ==14
.................... 0x02, //subclass code, 2 = Abstract ==15
.................... 0x01, //protocol code, 1 = v.25ter ==16
.................... 0x00, //index of string descriptor for interface ==17
....................
.................... //class descriptor [functional header]
.................... 5, //length of descriptor ==18
.................... 0x24, //dscriptor type (0x24 == ) ==19
.................... 0, //sub type (0=functional header) ==20
.................... 0x10,0x01, // ==21,22 //cdc version
....................
.................... //class descriptor [acm header]
.................... 4, //length of descriptor ==23
.................... 0x24, //dscriptor type (0x24 == ) ==24
.................... 2, //sub type (2=ACM) ==25
.................... 2, //capabilities ==26 //we support Set_Line_Coding, Set_Control_Line_State, Get_Line_Coding, and the notification Serial_State.
....................
.................... //class descriptor [union header]
.................... 5, //length of descriptor ==27
.................... 0x24, //dscriptor type (0x24 == ) ==28
.................... 6, //sub type (6=union) ==29
.................... 0, //master intf ==30 //The interface number of the Communication or Dat a Cl ass interface, designated as the masteror controlling interface for the union.
.................... 1, //save intf0 ==31 //Interface number of first slave or associated interface in the union. *
....................
.................... //class descriptor [call mgmt header]
.................... 5, //length of descriptor ==32
.................... 0x24, //dscriptor type (0x24 == ) ==33
.................... 1, //sub type (1=call mgmt) ==34
.................... 0, //capabilities ==35 //device does not handle call management itself
.................... 1, //data interface ==36 //interface number of data class interface
....................
.................... //endpoint descriptor
.................... USB_DESC_ENDPOINT_LEN, //length of descriptor ==37
.................... USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==38
.................... USB_CDC_COMM_IN_ENDPOINT | 0x80, //endpoint number and direction
.................... 0x03, //transfer type supported (0x03 is interrupt) ==40
.................... USB_CDC_COMM_IN_SIZE,0x00, //maximum packet size supported ==41,42
.................... 250, //polling interval, in ms. (interrupt endpoint cant be smaller than 10 for slow speed devices) ==43
....................
.................... //interface descriptor 1 (data class interface)
.................... USB_DESC_INTERFACE_LEN, //length of descriptor =44
.................... USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04) =45
.................... 0x01, //number defining this interface (IF we had more than one interface) ==46
.................... 0x00, //alternate setting ==47
.................... 2, //number of endpoints ==48
.................... 0x0A, //class code, 0A = Data Interface Class ==49
.................... 0x00, //subclass code ==50
.................... 0x00, //protocol code ==51
.................... 0x00, //index of string descriptor for interface ==52
....................
.................... //endpoint descriptor
.................... USB_DESC_ENDPOINT_LEN, //length of descriptor ==53
.................... USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==54
.................... USB_CDC_DATA_OUT_ENDPOINT, //endpoint number and direction (0x02 = EP2 OUT) ==55
.................... 0x02, //transfer type supported (0x02 is bulk) ==56
.................... (USB_CDC_DATA_OUT_SIZE+1) & 0xFF, ((USB_CDC_DATA_OUT_SIZE+1) >> 8) & 0xFF, //maximum packet size supported ==57, 58
.................... 1, //polling interval, in ms. ==59
....................
.................... //endpoint descriptor
.................... USB_DESC_ENDPOINT_LEN, //length of descriptor ==60
.................... USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==61
.................... USB_CDC_DATA_IN_ENDPOINT | 0x80, //endpoint number and direction (0x82 = EP2 IN) ==62
.................... 0x02, //transfer type supported (0x02 is bulk) ==63
.................... (USB_CDC_DATA_IN_SIZE+1) & 0xFF, ((USB_CDC_DATA_IN_SIZE+1) >> 8) & 0xFF, //maximum packet size supported ==66, 67
.................... 1, //polling interval, in ms. ==68
.................... };
....................
.................... //****** BEGIN CONFIG DESCRIPTOR LOOKUP TABLES ********
.................... //since we can't make pointers to constants in certain pic16s, this is an offset table to find
.................... // a specific descriptor in the above table.
....................
.................... //the maximum number of interfaces seen on any config
.................... //for example, if config 1 has 1 interface and config 2 has 2 interfaces you must define this as 2
.................... #define USB_MAX_NUM_INTERFACES 2
....................
.................... //define how many interfaces there are per config. [0] is the first config, etc.
.................... const char USB_NUM_INTERFACES[USB_NUM_CONFIGURATIONS]={2};
....................
.................... //define where to find class descriptors
.................... //first dimension is the config number
.................... //second dimension specifies which interface
.................... //last dimension specifies which class in this interface to get, but most will only have 1 class per interface
.................... //if a class descriptor is not valid, set the value to 0xFFFF
.................... const int8 USB_CLASS_DESCRIPTORS[USB_NUM_CONFIGURATIONS][USB_MAX_NUM_INTERFACES][4]=
.................... {
.................... //config 1
.................... //interface 0
.................... //class 1-4
.................... 18,23,27,32,
.................... //interface 1
.................... //no classes for this interface
.................... 0xFF,0xFF,0xFF,0xFF
.................... };
....................
.................... #if (sizeof(USB_CONFIG_DESC) != USB_TOTAL_CONFIG_LEN)
.................... #error USB_TOTAL_CONFIG_LEN not defined correctly
.................... #endif
....................
....................
.................... //////////////////////////////////////////////////////////////////
.................... ///
.................... /// start device descriptors
.................... ///
.................... //////////////////////////////////////////////////////////////////
....................
.................... const char USB_DEVICE_DESC[USB_DESC_DEVICE_LEN] ={
.................... //starts of with device configuration. only one possible
.................... USB_DESC_DEVICE_LEN, //the length of this report ==0
.................... 0x01, //the constant DEVICE (DEVICE 0x01) ==1
.................... 0x10,0x01, //usb version in bcd ==2,3
.................... 0x02, //class code. 0x02=Communication Device Class ==4
.................... 0x00, //subclass code ==5
.................... 0x00, //protocol code ==6
.................... USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8) ==7
.................... USB_CONFIG_VID & 0xFF, ((USB_CONFIG_VID >> 8) & 0xFF), //vendor id ==9, 10
.................... USB_CONFIG_PID & 0xFF, ((USB_CONFIG_PID >> 8) & 0xFF), //product id, don't use 0xffff ==11, 12
.................... USB_CONFIG_VERSION & 0xFF, ((USB_CONFIG_VERSION >> 8) & 0xFF), //device release number ==13,14
.................... 0x01, //index of string description of manufacturer. therefore we point to string_1 array (see below) ==14
.................... 0x02, //index of string descriptor of the product ==15
.................... 0x00, //index of string descriptor of serial number ==16
.................... USB_NUM_CONFIGURATIONS //number of possible configurations ==17
.................... };
....................
....................
.................... //////////////////////////////////////////////////////////////////
.................... ///
.................... /// start string descriptors
.................... /// String 0 is a special language string, and must be defined. People in U.S.A. can leave this alone.
.................... ///
.................... /// You must define the length else get_next_string_character() will not see the string
.................... /// Current code only supports 10 strings (0 thru 9)
.................... ///
.................... //////////////////////////////////////////////////////////////////
....................
.................... #if !defined(USB_STRINGS_OVERWRITTEN)
.................... //the offset of the starting location of each string. offset[0] is the start of string 0, offset[1] is the start of string 1, etc.
.................... char USB_STRING_DESC_OFFSET[]={0,4,12};
....................
.................... // Here is where the "CCS" Manufacturer string and "SERIAL DEMO" are stored.
.................... // Strings are saved as unicode.
.................... // These strings are mostly only displayed during the add hardware wizard.
.................... // Once the operating system drivers have been installed it will usually display
.................... // the name from the drivers .INF.
.................... char const USB_STRING_DESC[]={
.................... //string 0
.................... 4, //length of string index
.................... USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
.................... 0x09,0x04, //Microsoft Defined for US-English
.................... //string 1 - manufacturer
.................... 8, //length of string index
.................... USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
.................... 'C',0,
.................... 'C',0,
.................... 'S',0,
.................... //string 2 - product
.................... 24, //length of string index
.................... USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
.................... 'S',0,
.................... 'E',0,
.................... 'R',0,
.................... 'I',0,
.................... 'A',0,
.................... 'L',0,
.................... ' ',0,
.................... 'D',0,
.................... 'E',0,
.................... 'M',0,
.................... 'O',0
.................... };
.................... #endif //!defined(USB_STRINGS_OVERWRITTEN)
....................
.................... #ENDIF
....................
.................... #include <usb.c> //handles usb setup tokens and get descriptor reports
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb.c ////
.................... //// ////
.................... //// Standard USB request and token handler code. ////
.................... //// ////
.................... //// This file is part of CCS's PIC USB driver code. See USB.H ////
.................... //// for more documentation and a list of examples. ////
.................... //// ////
.................... //// The majority of this code is called and used by the interrupt ////
.................... //// generated by the hardware level, and therefore it is not meant ////
.................... //// to be called by the user. The functions that are meant to be ////
.................... //// called by the user (init, put packet, get packet, etc) are ////
.................... //// documented in USB.H. ////
.................... //// ////
.................... //// ************************* NOTE ************************** ////
.................... //// This code will not create a multiple configuration device. ////
.................... //// If you wish to create a multiple configuration device then you ////
.................... //// will have to modify these drivers. ////
.................... //// ////
.................... //// ************************* NOTE ************************** ////
.................... //// This code does not support Get_Idle or Set_Idle HID-specific ////
.................... //// requests. These requests are optional. If you want to support ////
.................... //// these requests you must provide the code yourself. See ////
.................... //// usb_isr_tkn_setup_ClassInterface() if you wish to add this ////
.................... //// support. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// If you wish to provide your own USB peripheral hardware layer, it ////
.................... //// must must provide the API as described in usb_hw_layer.h. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// Dec 14, 2007: ////
.................... //// usb_kbhit() moved to device driver. ////
.................... //// ////
.................... //// July 13th, 2005: ////
.................... //// usb_puts() packet_size and this_packet_len changed to 16bits. ////
.................... //// usb_gets() len, packet_size and this_packet_len to 16bits. ////
.................... //// ////
.................... //// June 20th, 2005: ////
.................... //// Initial 18fxx5x release. ////
.................... //// usb_kbhit() removed, usb_kbhit() now implemented in hardware ////
.................... //// layer. ////
.................... //// ////
.................... //// May 13th, 2005: ////
.................... //// Beta release, only works with 18Fxx5x hardware layer. ////
.................... //// Now supports multiple interfaces (many defines in descriptors ////
.................... //// will have to be changed, see examples) ////
.................... //// TODO: alot of indexing and length handling for descriptors is ////
.................... //// only 8bit, so make sure all descriptor tables are less than ////
.................... //// 256 bytes long. ////
.................... //// ////
.................... //// Apr 21st, 2005: ////
.................... //// Initial Alpha Release with PIC18Fxx5x support. (ONLY TESTED ////
.................... //// WITH 18F4550) ////
.................... //// usb_puts() doesn't need max packet size as a paremeter, uses ////
.................... //// usb_ep_tx_size[] defined in usb.h ////
.................... //// usb_puts() timeout parameter now in ms, not seconds. ////
.................... //// USB Stack no longer buffers incoming data. If there is data to ////
.................... //// get usb_kbhit(en) will return TRUE and the data will sit in ////
.................... //// the endpoint buffer until you usb_get_packet(), which will ////
.................... //// then free the endpoint buffer for more data. This affects ////
.................... //// routines such as usb_gets() and usb_kbhit(). ////
.................... //// usb_gets() no longer reads buffered data (see above note), ////
.................... //// now it reads multiple packets in the same way usb_puts() ////
.................... //// writes multiple packets ////
.................... //// usb_kbhit() is hardware specific, so has been moved to hardware ////
.................... //// layer. ////
.................... //// ////
.................... //// Nov 11th, 2004: ////
.................... //// No longer includes wrong descriptor header. ////
.................... //// ////
.................... //// June 24th, 2004: ////
.................... //// Optimization and cleanup. ////
.................... //// The following definitions changed: ////
.................... //// USB_EPx_TX_ENABLE and USB_EPx_RX_ENABLE have changed. See usb.h ////
.................... //// USB_CONFIG_DESCRIPTORS[] removed ////
.................... //// USB_CONFIG_DESC_LEN changed to USB_DESC_CONFIG_LEN ////
.................... //// USB_INTERFACE_DESC_LEN changed to USB_DESC_INTERFACE_LEN ////
.................... //// USB_CLASS_DESC_LEN changed to USB_DESC_CLASS_LEN ////
.................... //// USB_ENDPOINT_DESC_LEN changed to USB_DESC_ENDPOINT_LEN ////
.................... //// USB_CONFIG_DESC_KEY changed to USB_DESC_CONFIG_TYPE ////
.................... //// USB_INTERFACE_DESC_KEY changed to USB_DESC_INTERFACE_TYPE ////
.................... //// USB_CLASS_DESC_KEY changed to USB_DESC_CLASS_TYPE ////
.................... //// USB_ENDPOINT_DESC_KEY changed to USB_DESC_ENDPOINT_TYPE ////
.................... //// USB_STRING_X[] arrays removed, see USB_STRING_DESC[] and ////
.................... //// USB_STRING_DESC_OFFSET[] ////
.................... //// dev_req, curr_config, status_device and getdesc_type global ////
.................... //// variables moved into struct USB_stack_status ////
.................... //// ////
.................... //// December 5th, 2003: Fixed a potential bug where descriptors are ////
.................... //// evenly dividable by 8 (MAX_EP0_PACKET_SIZE) ////
.................... //// ////
.................... //// October 15th, 2003: Support for boot protocol added. ////
.................... //// Set USB_HID_BOOT_PROTOCOL to TRUE to support this. ////
.................... //// The array hid_protocol[] saves which protocol mode each ////
.................... //// interface is in. It is your applications job to send ////
.................... //// data that either fit the boot protocol or HID protocol. ////
.................... //// ////
.................... //// May 6th, 2003: Fixed a potential stack overflow using PCM ////
.................... //// ////
.................... //// October 28th, 2002: Problem with usb_puts and timeout fixed. ////
.................... //// ////
.................... //// October 28th, 2002: Typo fixed in get_next_string_character(), ////
.................... //// although it didn't cause any serious problems ////
.................... //// ////
.................... //// October 25th, 2002: Another change to usb_puts() was made to fix ////
.................... //// problems with multiple packet messages ////
.................... //// October 29th, 2002: Fixed a problem with multiple packet string ////
.................... //// descriptors that require a 0 len packet to ////
.................... //// end message. ////
.................... //// ////
.................... //// October 23rd, 2002: usb_puts() will bomb out of error quicker ////
.................... //// ////
.................... //// August 2nd, 2002: Initial Public Release ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2005 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __USB_DRIVER__
.................... #DEFINE __USB_DRIVER__
....................
.................... #include <usb.h>
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb.h ////
.................... //// ////
.................... //// Function protypes, defintions and globals used by CCS USB driver ////
.................... //// ////
.................... //// This file is part of CCS's USB driver code ////
.................... //// ////
.................... //// The following USB examples are provided by CCS: ////
.................... //// ex_usb_mouse.c - A HID Mouse. ////
.................... //// ex_usb_hid.c - A custom application using HID protocol. ////
.................... //// ex_usb_kbmouse.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// interfaces. ////
.................... //// ex_usb_kbmouse2.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// HID Reports. ////
.................... //// ex_usb_scope.c - A digital oscilloscope using a custom ////
.................... //// protocol requiring custom Windows drivers. ////
.................... //// ex_usb_serial.c - ////
.................... //// ex_usb_serial2.c - Two examples of using the CDC driver for ////
.................... //// a virtual COM port. ////
.................... //// ex_usb_bootloader.c - CDC/Virtual COM port bootloader. ////
.................... //// ex_usb_loadmouse.c - A conversion of ex_usb_mouse.c that is ////
.................... //// compatible with ex_usb_mouse.c. ////
.................... //// ////
.................... //// ********************** API ********************* ////
.................... //// ////
.................... //// These are the functions that are meant to be called by the user: ////
.................... //// ////
.................... //// usb_init() - Initializes the USB stack, the USB peripheral and ////
.................... //// attaches the unit to the usb bus. Enables ////
.................... //// interrupts. Will wait in an infinite loop until ////
.................... //// the device enumerates - if you are using ////
.................... //// connection sense or if the processor should run ////
.................... //// even if it's not connected to USB then use ////
.................... //// usb_init_cs() instead. ////
.................... //// ////
.................... //// usb_init_cs() - A smaller usb_init(), does not attach unit ////
.................... //// to usb bus or enable interrupts. Since this does ////
.................... //// not attach to the USB, you must periodically call ////
.................... //// usb_task(). See usb_task() for more information. ////
.................... //// ////
.................... //// usb_task() - If usb_init_cs() was used to initiate the USB ////
.................... //// peripheral, usb_task() should then be called periodically ////
.................... //// to check the connection sense pin. If the connection ////
.................... //// sense pin denotes USB is connected and the USB peripheral ////
.................... //// is not attached, this will attach the USB peripheral ////
.................... //// so the PC can start the enumeration process (and it ////
.................... //// will enable interrupts). If the connection sense pin ////
.................... //// denotes USB is not attached and the USB peripheral is ////
.................... //// running, this will reset the USB peripheral and wait ////
.................... //// for USB to reconnect (and usb_enumerated() will start ////
.................... //// returning FALSE). If connection sense (USB_CON_SENSE_PIN) ////
.................... //// is not defined the usb_task() assumes that USB is always ////
.................... //// connected. ////
.................... //// ////
.................... //// usb_attached() - Returns TRUE if the device is attached to a ////
.................... //// USB cable. A macro that looks at the defined ////
.................... //// connection sense pin. If this returns TRUE ////
.................... //// it does not mean the PC has connected to it, ////
.................... //// you need to use usb_enumerated() to check this. ////
.................... //// ////
.................... //// usb_enumerated() - Returns TRUE if device has been enumerated ////
.................... //// (configured) by host, FALSE if it has not. ////
.................... //// Do not try to use the USB peripheral for ////
.................... //// sending and receiving packets until you ////
.................... //// are enumerated. ////
.................... //// ////
.................... //// usb_wait_for_enumeration() - Sits in an infinte loop until device ////
.................... //// is enumerated. ////
.................... //// ////
.................... //// usb_tbe(endpoint) - Returns TRUE if the endpoint transmit buffer ////
.................... //// is free and ready to accept a new packet for transmission. ////
.................... //// ////
.................... //// usb_put_packet(endpoint, ptr, len, tgl) - Sends one packet to the ////
.................... //// host. If you need to send a message that ////
.................... //// spans more than one packet then use ////
.................... //// usb_puts(). Fore more detailed documentation ////
.................... //// see usb_hw_layer.h ////
.................... //// ////
.................... //// usb_puts(endpoint, ptr, len, timeout) - Sends a multiple packet ////
.................... //// message to the host. If you only need to send one packet, ////
.................... //// it is more effecient to use usb_put_packet(). This is ////
.................... //// documented in more detail above the prototype in USB.H. ////
.................... //// ////
.................... //// usb_kbhit(endpoint) - Returns true if OUT endpoint contains data ////
.................... //// from host. This will remain TRUE until ////
.................... //// usb_put_packet() or usb_flush_out() used. ////
.................... //// This function will return an invalid response ////
.................... //// if specified endpoint is not enabled for ////
.................... //// receiving data. ////
.................... //// ////
.................... //// len = usb_get_packet(endpoint, ptr, max) - Gets one packet that ////
.................... //// from the host/PC. usb_kbhit() must return TRUE before you ////
.................... //// call this routine or your data may not be valid. This ////
.................... //// only receives one packet, if you are trying to receive a ////
.................... //// multi-packet message use usb_gets(). For more detailed ////
.................... //// documentation see usb_hw_layer.h. ////
.................... //// ////
.................... //// len = usb_gets(endpoint, ptr, max, timeout) - Gets multiple ////
.................... //// packets from the host, you would use this instead ////
.................... //// of usb_get_packet() if you wanted to handle multi-packet ////
.................... //// messages. This is documented in more detail above the ////
.................... //// prototype in USB.H. ////
.................... //// ////
.................... //// ////
.................... //// ********* DEFINITIONS / CONFIGURATION ********** ////
.................... //// ////
.................... //// The following definitions are declared here, but can be ////
.................... //// overwritten in your code. Unless needed otherwise, leave ////
.................... //// to default value. If confused about a definition read the ////
.................... //// comments at each defintion ////
.................... //// ////
.................... //// USB_HID_IDLE (TRUE) - Set to TRUE if your device supports ////
.................... //// Set_Idle HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Idle / Get_Idle command) ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code. See ////
.................... //// usb_isr_tkn_setup_ClassInterface() in ////
.................... //// usb.c ////
.................... //// ////
.................... //// USB_HID_BOOT_PROTOCOL (FALSE) - Set to TRUE if your device supports ////
.................... //// Set_Protocl HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Protocl / Get_Protocol ////
.................... //// command). ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code in the ////
.................... //// application that properly send boot ////
.................... //// or HID packets. ////
.................... //// ////
.................... //// USB_MAX_EP0_PACKET_LENGTH (8) - Max Packet size for Endpoint 0. ////
.................... //// The hardware level driver (ex ////
.................... //// pic18_usb.h will define this value if ////
.................... //// not already overwritten). Increasing ////
.................... //// this size will speed up the ////
.................... //// enumeration process. ////
.................... //// ////
.................... //// USB_EPx_RX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this RX (PC to device) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_RX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for receiving ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_RX_ENABLE defined and ////
.................... //// USB_EPx_RX_SIZE defined (non 0) to enable a RX ////
.................... //// endpoint. ////
.................... //// *** NOTE *** Endpoint 0 is always enabled. ////
.................... //// ////
.................... //// USB_EPx_TX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this TX (device to PC) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_TX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for transmitting ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_TX_ENABLE defined and ////
.................... //// USB_EPx_TX_SIZE defined (non 0) to enable a TX ////
.................... //// endpoint. ////
.................... //// ////
.................... //// ////
.................... //// USB_HID_DEVICE (TRUE) - HID devices require extra code to handle ////
.................... //// HID requests. You can disable to save ////
.................... //// ROM space if you are not using a HID ////
.................... //// device. If you are not using a HID ////
.................... //// device you must provide your own O/S ////
.................... //// (Windows) driver. ////
.................... //// ////
.................... //// The other definitions should not be changed. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// July 13th, 2005: ////
.................... //// usb_ep_tx_size[] and usb_ep_rx_size[] changed to 16bits ////
.................... //// ////
.................... //// June 20th, 2005: ////
.................... //// Initial 18fxx5x release ////
.................... //// ////
.................... //// May 13th, 2005: ////
.................... //// Beta release, only works with 18Fxx5x hardware layer. ////
.................... //// Now supports multiple interfaces (many defines in descriptors ////
.................... //// will have to be changed, see examples) ////
.................... //// ////
.................... //// Mar 21st, 2005: ////
.................... //// Initial Alpha Release with PIC18Fxx5x support. (ONLY TESTED ////
.................... //// WITH 18F4550) ////
.................... //// usb_gets() and usb_puts() changed (see usb.c) ////
.................... //// ////
.................... //// June 24th, 2004: ////
.................... //// Optimization and cleanup. ////
.................... //// The following definitions changed: ////
.................... //// USB_EPx_TX_ENABLE and USB_EPx_RX_ENABLE have changed. See usb.h ////
.................... //// USB_CONFIG_DESCRIPTORS[] removed ////
.................... //// USB_CONFIG_DESC_LEN changed to USB_DESC_CONFIG_LEN ////
.................... //// USB_INTERFACE_DESC_LEN changed to USB_DESC_INTERFACE_LEN ////
.................... //// USB_CLASS_DESC_LEN changed to USB_DESC_CLASS_LEN ////
.................... //// USB_ENDPOINT_DESC_LEN changed to USB_DESC_ENDPOINT_LEN ////
.................... //// USB_CONFIG_DESC_KEY changed to USB_DESC_CONFIG_TYPE ////
.................... //// USB_INTERFACE_DESC_KEY changed to USB_DESC_INTERFACE_TYPE ////
.................... //// USB_CLASS_DESC_KEY changed to USB_DESC_CLASS_TYPE ////
.................... //// USB_ENDPOINT_DESC_KEY changed to USB_DESC_ENDPOINT_TYPE ////
.................... //// USB_STRING_X[] arrays removed, see USB_STRING_DESC[] and ////
.................... //// USB_STRING_DESC_OFFSET[] ////
.................... //// dev_req, curr_config, status_device and getdesc_type global ////
.................... //// variables moved into struct USB_stack_status ////
.................... //// ////
.................... //// October 15th, 2003: Support for boot protocol added. ////
.................... //// Set USB_HID_BOOT_PROTOCOL to TRUE to support this. ////
.................... //// The array hid_protocol[] saves which protocol mode each ////
.................... //// interface is in. It is your applications job to send ////
.................... //// data that either fit the boot protocol or HID protocol. ////
.................... //// ////
.................... //// May 6th, 2003: Fixed a potential stack overflow using PCM ////
.................... //// ////
.................... //// October 29th, 2002: New definition added to USB_STATES ////
.................... //// ////
.................... //// August 2nd, 2002: Initial Public Release ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2009 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __USB_PROTOTYPES__
.................... #DEFINE __USB_PROTOTYPES__
....................
.................... //// CONFIGURATION ////////////////////////////////////////////////////////////
....................
.................... #ifndef USB_CON_SENSE_PIN
.................... #define USB_CON_SENSE_PIN 0
.................... #endif
....................
.................... #IFNDEF USB_HID_BOOT_PROTOCOL
.................... #DEFINE USB_HID_BOOT_PROTOCOL FALSE
.................... #ENDIF
....................
.................... #IFNDEF USB_HID_IDLE
.................... #DEFINE USB_HID_IDLE FALSE
.................... #ENDIF
....................
.................... //should the compiler add the extra HID handler code? Defaults to yes.
.................... #IFNDEF USB_HID_DEVICE
.................... #DEFINE USB_HID_DEVICE TRUE
.................... #ENDIF
....................
.................... #IFNDEF USB_CDC_DEVICE
.................... #DEFINE USB_CDC_DEVICE FALSE
.................... #ENDIF
....................
.................... //set to false to opt for less RAM, true to opt for less ROM
.................... #ifndef USB_OPT_FOR_ROM
.................... #define USB_OPT_FOR_ROM TRUE
.................... #endif
....................
.................... #IFNDEF USB_MAX_EP0_PACKET_LENGTH
.................... #DEFINE USB_MAX_EP0_PACKET_LENGTH 8
.................... #ENDIF
....................
....................
.................... ////// USER-LEVEL API /////////////////////////////////////////////////////////
....................
.................... /**************************************************************
.................... /* usb_enumerated()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /* Returns: Returns a 1 if device is configured / enumerated,
.................... /* Returns a 0 if device is un-configured / not enumerated.
.................... /*
.................... /* Summary: See API section of USB.H for more documentation.
.................... /***************************************************************/
.................... int1 usb_enumerated(void);
....................
.................... /**************************************************************
.................... /* usb_wait_for_enumeration()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /*
.................... /* Summary: Waits in-definately until device is configured / enumerated.
.................... /* See API section of USB.H for more information.
.................... /***************************************************************/
.................... void usb_wait_for_enumeration(void);
....................
.................... /****************************************************************************
.................... /* usb_gets(endpoint, ptr, max, timeout)
.................... /*
.................... /* Input: endpoint - endpoint to get data from
.................... /* ptr - place / array to store data to
.................... /* max - max amount of data to get from USB and store into ptr
.................... /* timeout - time in milliseconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Output: Amount of data returned. It may be less than max.
.................... /*
.................... /* Summary: Gets data from the host. Will get multiple-packet messages
.................... /* and finish when either it receives a 0-len packet or a packet
.................... /* of less size than maximum.
.................... /*
.................... /*****************************************************************************/
.................... unsigned int16 usb_gets(int8 endpoint, int8 * ptr, unsigned int16 max, unsigned int16 timeout);
....................
.................... /****************************************************************************
.................... /* usb_puts()
.................... /*
.................... /* Inputs: endpoint - endpoint to send data out
.................... /* ptr - points to array of data to send
.................... /* len - amount of data to send
.................... /* timeout - time in milli-seconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Outputs: Returns TRUE if message sent succesfully, FALSE if it was not
.................... /* sent before timeout period expired.
.................... /*
.................... /* Summary: Used for sending multiple packets of data as one message. This
.................... /* function can still be used to send messages consiting of only one
.................... /* packet. See usb_put_packet() documentation for the rules about when
.................... /* multiple packet messages or 0-lenght packets are needed.
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_puts(int8 endpoint, int8 * ptr, unsigned int16 len, unsigned int8 timeout);
....................
.................... /******************************************************************************
.................... /* usb_attached()
.................... /*
.................... /* Summary: Returns TRUE if the device is attached to a USB cable.
.................... /* See the API section of USB.H for more documentation.
.................... /*
.................... /*****************************************************************************/
.................... #if USB_CON_SENSE_PIN
.................... #define usb_attached() input(USB_CON_SENSE_PIN)
.................... #else
.................... #define usb_attached() TRUE
.................... #endif
....................
.................... ////// END USER-LEVEL API /////////////////////////////////////////////////////
....................
....................
.................... ////// STACK-LEVEL API USED BY HW DRIVERS ////////////////////////////////////
....................
.................... enum USB_STATES {GET_DESCRIPTOR=1,SET_ADDRESS=2,NONE=0};
....................
.................... enum USB_GETDESC_TYPES {USB_GETDESC_CONFIG_TYPE=0,USB_GETDESC_HIDREPORT_TYPE=1,USB_GETDESC_STRING_TYPE=2,USB_GETDESC_DEVICE_TYPE=3};
....................
.................... #if USB_OPT_FOR_ROM
.................... typedef struct {
.................... USB_STATES dev_req; //what did the last setup token set us up to do?. init at none
.................... int curr_config; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #else
.................... typedef struct {
.................... USB_STATES dev_req:2; //what did the last setup token set us up to do?. init at none
.................... int Curr_config:2; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device:2; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type:2; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #endif
....................
.................... extern TYPE_USB_STACK_STATUS USB_stack_status;
....................
.................... /**************************************************************
.................... /* usb_token_reset()
.................... /*
.................... /* Output: No output (but many global registers are modified)
.................... /*
.................... /* Summary: Resets the token handler to initial (unconfigured) state.
.................... /***************************************************************/
.................... void usb_token_reset(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_setup_dne()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[] contains the the setup packet.
.................... /*
.................... /* Output: None (many globals are changed)
.................... /*
.................... /* Summary: This function is that handles the setup token.
.................... /* We must handle all relevant requests, such as Set_Configuration,
.................... /* Get_Descriptor, etc.
.................... /*
.................... /* usb_ep0_rx_buffer[] contains setup data packet, which has the
.................... /* following records:
.................... /* -------------------------------------------------------------------------------------------
.................... /* usb_ep0_rx_buffer[ 0 ]=bmRequestType; Where the setup packet goes
.................... /* bit7 (0) host-to-device
.................... /* (1) device-to-host
.................... /* bit6-5 (00) usb standard request;
.................... /* (01) class request;
.................... /* (10) vendor request
.................... /* (11) reserved
.................... /* bit4-0 (0000) device
.................... /* (0001) interface
.................... /* (0010) endpoint
.................... /* (0011) other element
.................... /* (0100) to (1111) reserved
.................... /* usb_ep0_rx_buffer[ 1 ]=bRequest ; the request
.................... /* usb_ep0_rx_buffer[2,3]=wValue ; a value which corresponds to request
.................... /* usb_ep0_rx_buffer[4,5]=wIndex ; could correspond to interface or endpoint...
.................... /* usb_ep0_rx_buffer[6,7]=wLength ; number of bytes in next data packet;
.................... /* for host-to-device, this exactly how many bytes in data packet.
.................... /* for device-to-host, this is the maximum bytes that can fit one packet.
.................... /***************************************************************/
.................... void usb_isr_tok_setup_dne(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_out_dne()
.................... /*
.................... /* Input: endpoint contains which endpoint we are receiving data (0..15)
.................... /*
.................... /* Summary: Processes out tokens (out is respective of the host, so actualy
.................... /* incoming to the pic), but not out setup tokens. Normally when
.................... /* data is received it is left in the buffer (user would use
.................... /* usb_kbhit() and usb_get_packet() to receive data), but certain
.................... /* libraries (like CDC) have to answer setup packets.
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_out_dne(int8 endpoint);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_in_dne(endpoint)
.................... /*
.................... /* Input: endpoint - which endpoint we are processing a setup token.
.................... /*
.................... /* Summary: This handles an IN packet (HOST <- PIC). For endpoint 0, this
.................... /* is usually to setup a response packet to a setup packet. Endpoints 1..15
.................... /* are generally ignored, and the user has to use usb_tbe() to determine if
.................... /* if the buffer is ready for a new transmit packet (there are special cases,
.................... /* like CDC which handles the CDC protocl).
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_in_dne(int8 endpoint);
....................
.................... ////// END STACK-LEVEL API USED BY HW DRIVERS /////////////////////////////////
....................
....................
.................... //CCS only supports one configuration at this time
.................... #DEFINE USB_NUM_CONFIGURATIONS 1 //DO NOT CHANGE
....................
.................... //PID values for tokens (see page 48 of USB Complete ed.1)
.................... #define PID_IN 0x09 //device to host transactions
.................... #define PID_OUT 0x01 //host to device transactions
.................... #define PID_SETUP 0x0D //host to device setup transaction
.................... #define PID_ACK 0x02 //receiver accepts error-free data packet
.................... #define PID_DATA0 0x03 //data packet with even sync bit
.................... #define PID_SOF 0x05 //start of framer marker and frame number
.................... #define PID_NAK 0x0A //receiver can't accept data or sender cant send data or has no data to transmit
.................... #define PID_DATA1 0x0B //data packet with odd sync bit
.................... #define PID_PRE 0x0C //preamble issued by host. enables downstream traffic to low-speed device
.................... #define PID_STALL 0x0E //a control request isnt supported or the endpoint is halted
....................
.................... //Key which identifies descritpors
.................... #DEFINE USB_DESC_DEVICE_TYPE 0x01 //#DEFINE USB_DEVICE_DESC_KEY 0x01
.................... #DEFINE USB_DESC_CONFIG_TYPE 0x02 //#DEFINE USB_CONFIG_DESC_KEY 0x02
.................... #DEFINE USB_DESC_STRING_TYPE 0x03 //#DEFINE USB_STRING_DESC_KEY 0x03
.................... #DEFINE USB_DESC_INTERFACE_TYPE 0x04 //#DEFINE USB_INTERFACE_DESC_KEY 0x04
.................... #DEFINE USB_DESC_ENDPOINT_TYPE 0x05 //#DEFINE USB_ENDPOINT_DESC_KEY 0x05
.................... #DEFINE USB_DESC_CLASS_TYPE 0x21 //#DEFINE USB_CLASS_DESC_KEY 0x21
.................... #DEFINE USB_DESC_HIDREPORT_TYPE 0x22
....................
.................... //The length of each descriptor
.................... #DEFINE USB_DESC_DEVICE_LEN 18 //#DEFINE USB_DEVICE_DESC_LEN 18
.................... #DEFINE USB_DESC_CONFIG_LEN 9 //#DEFINE USB_CONFIG_DESC_LEN 9
.................... #DEFINE USB_DESC_INTERFACE_LEN 9 //#DEFINE USB_INTERFACE_DESC_LEN 9
.................... #DEFINE USB_DESC_CLASS_LEN 9 //#DEFINE USB_CLASS_DESC_LEN 9
.................... #DEFINE USB_DESC_ENDPOINT_LEN 7 //#DEFINE USB_ENDPOINT_DESC_LEN 7
....................
.................... //Standard USB Setup bRequest Codes
.................... #define USB_STANDARD_REQUEST_GET_STATUS 0x00
.................... #define USB_STANDARD_REQUEST_CLEAR_FEATURE 0x01
.................... #define USB_STANDARD_REQUEST_SET_FEATURE 0x03
.................... #define USB_STANDARD_REQUEST_SET_ADDRESS 0x05
.................... #define USB_STANDARD_REQUEST_GET_DESCRIPTOR 0x06
.................... #define USB_STANDARD_REQUEST_SET_DESCRIPTOR 0x07
.................... #define USB_STANDARD_REQUEST_GET_CONFIGURATION 0x08
.................... #define USB_STANDARD_REQUEST_SET_CONFIGURATION 0x09
.................... #define USB_STANDARD_REQUEST_GET_INTERFACE 0x0A
.................... #define USB_STANDARD_REQUEST_SET_INTERFACE 0x0B
.................... #define USB_STANDARD_REQUEST_SYNCH_FRAME 0x0C
....................
.................... //HID Class Setup bRequest Codes
.................... #define USB_HID_REQUEST_GET_REPORT 0x01
.................... #define USB_HID_REQUEST_GET_IDLE 0x02
.................... #define USB_HID_REQUEST_GET_PROTOCOL 0x03
.................... #define USB_HID_REQUEST_SET_REPORT 0x09
.................... #define USB_HID_REQUEST_SET_IDLE 0x0A
.................... #define USB_HID_REQUEST_SET_PROTOCOL 0x0B
....................
.................... //types of endpoints as defined in the descriptor
.................... #define USB_ENDPOINT_TYPE_CONTROL 0x00
.................... #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
.................... #define USB_ENDPOINT_TYPE_BULK 0x02
.................... #define USB_ENDPOINT_TYPE_INTERRUPT 0x03
....................
.................... //types of endpoints used internally in this api
.................... #define USB_ENABLE_DISABLED -1
.................... #define USB_ENABLE_BULK USB_ENDPOINT_TYPE_BULK
.................... #define USB_ENABLE_ISOCHRONOUS USB_ENDPOINT_TYPE_ISOCHRONOUS
.................... #define USB_ENABLE_INTERRUPT USB_ENDPOINT_TYPE_INTERRUPT
.................... #define USB_ENABLE_CONTROL USB_ENDPOINT_TYPE_CONTROL
....................
....................
.................... //*** ENABLE RX ENDPOINTS AND BUFFERS
....................
.................... //--------- endpoint 0 defines ----------
.................... #define USB_EP0_TX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
.................... #define USB_EP0_TX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
....................
.................... //--------- endpoint 1 defines ----------
.................... #ifndef USB_EP1_TX_ENABLE
.................... #define USB_EP1_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP1_RX_ENABLE
.................... #define USB_EP1_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP1_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_RX_SIZE
.................... #undef USB_EP1_RX_SIZE
.................... #endif
.................... #define USB_EP1_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_RX_SIZE
.................... #error You enabled EP1 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP1_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_TX_SIZE
.................... #undef USB_EP1_TX_SIZE
.................... #endif
.................... #define USB_EP1_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_TX_SIZE
.................... #error You enabled EP1 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 2 defines ----------
.................... #ifndef USB_EP2_TX_ENABLE
.................... #define USB_EP2_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP2_RX_ENABLE
.................... #define USB_EP2_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP2_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_RX_SIZE
.................... #undef USB_EP2_RX_SIZE
.................... #endif
.................... #define USB_EP2_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_RX_SIZE
.................... #error You enabled EP2 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP2_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_TX_SIZE
.................... #undef USB_EP2_TX_SIZE
.................... #endif
.................... #define USB_EP2_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_TX_SIZE
.................... #error You enabled EP2 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 3 defines ----------
.................... #ifndef USB_EP3_TX_ENABLE
.................... #define USB_EP3_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP3_RX_ENABLE
.................... #define USB_EP3_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP3_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_RX_SIZE
.................... #undef USB_EP3_RX_SIZE
.................... #endif
.................... #define USB_EP3_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_RX_SIZE
.................... #error You enabled EP3 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP3_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_TX_SIZE
.................... #undef USB_EP3_TX_SIZE
.................... #endif
.................... #define USB_EP3_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_TX_SIZE
.................... #error You enabled EP3 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 4 defines ----------
.................... #ifndef USB_EP4_TX_ENABLE
.................... #define USB_EP4_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP4_RX_ENABLE
.................... #define USB_EP4_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP4_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_RX_SIZE
.................... #undef USB_EP4_RX_SIZE
.................... #endif
.................... #define USB_EP4_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_RX_SIZE
.................... #error You enabled EP4 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP4_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_TX_SIZE
.................... #undef USB_EP4_TX_SIZE
.................... #endif
.................... #define USB_EP4_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_TX_SIZE
.................... #error You enabled EP4 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 5 defines ----------
.................... #ifndef USB_EP5_TX_ENABLE
.................... #define USB_EP5_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP5_RX_ENABLE
.................... #define USB_EP5_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP5_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_RX_SIZE
.................... #undef USB_EP5_RX_SIZE
.................... #endif
.................... #define USB_EP5_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_RX_SIZE
.................... #error You enabled EP5 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP5_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_TX_SIZE
.................... #undef USB_EP5_TX_SIZE
.................... #endif
.................... #define USB_EP5_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_TX_SIZE
.................... #error You enabled EP5 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 6 defines ----------
.................... #ifndef USB_EP6_TX_ENABLE
.................... #define USB_EP6_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP6_RX_ENABLE
.................... #define USB_EP6_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP6_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_RX_SIZE
.................... #undef USB_EP6_RX_SIZE
.................... #endif
.................... #define USB_EP6_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_RX_SIZE
.................... #error You enabled EP6 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP6_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_TX_SIZE
.................... #undef USB_EP6_TX_SIZE
.................... #endif
.................... #define USB_EP6_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_TX_SIZE
.................... #error You enabled EP6 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 7 defines ----------
.................... #ifndef USB_EP7_TX_ENABLE
.................... #define USB_EP7_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP7_RX_ENABLE
.................... #define USB_EP7_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP7_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_RX_SIZE
.................... #undef USB_EP7_RX_SIZE
.................... #endif
.................... #define USB_EP7_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_RX_SIZE
.................... #error You enabled EP7 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP7_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_TX_SIZE
.................... #undef USB_EP7_TX_SIZE
.................... #endif
.................... #define USB_EP7_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_TX_SIZE
.................... #error You enabled EP7 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 8 defines ----------
.................... #ifndef USB_EP8_TX_ENABLE
.................... #define USB_EP8_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP8_RX_ENABLE
.................... #define USB_EP8_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP8_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_RX_SIZE
.................... #undef USB_EP8_RX_SIZE
.................... #endif
.................... #define USB_EP8_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_RX_SIZE
.................... #error You enabled EP8 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP8_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_TX_SIZE
.................... #undef USB_EP8_TX_SIZE
.................... #endif
.................... #define USB_EP8_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_TX_SIZE
.................... #error You enabled EP8 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 9 defines ----------
.................... #ifndef USB_EP9_TX_ENABLE
.................... #define USB_EP9_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP9_RX_ENABLE
.................... #define USB_EP9_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP9_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_RX_SIZE
.................... #undef USB_EP9_RX_SIZE
.................... #endif
.................... #define USB_EP9_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_RX_SIZE
.................... #error You enabled EP9 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP9_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_TX_SIZE
.................... #undef USB_EP9_TX_SIZE
.................... #endif
.................... #define USB_EP9_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_TX_SIZE
.................... #error You enabled EP9 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 10 defines ----------
.................... #ifndef USB_EP10_TX_ENABLE
.................... #define USB_EP10_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP10_RX_ENABLE
.................... #define USB_EP10_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP10_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_RX_SIZE
.................... #undef USB_EP10_RX_SIZE
.................... #endif
.................... #define USB_EP10_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_RX_SIZE
.................... #error You enabled EP10 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP10_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_TX_SIZE
.................... #undef USB_EP10_TX_SIZE
.................... #endif
.................... #define USB_EP10_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_TX_SIZE
.................... #error You enabled EP10 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 11 defines ----------
.................... #ifndef USB_EP11_TX_ENABLE
.................... #define USB_EP11_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP11_RX_ENABLE
.................... #define USB_EP11_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP11_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_RX_SIZE
.................... #undef USB_EP11_RX_SIZE
.................... #endif
.................... #define USB_EP11_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_RX_SIZE
.................... #error You enabled EP11 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP11_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_TX_SIZE
.................... #undef USB_EP11_TX_SIZE
.................... #endif
.................... #define USB_EP11_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_TX_SIZE
.................... #error You enabled EP11 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 12 defines ----------
.................... #ifndef USB_EP12_TX_ENABLE
.................... #define USB_EP12_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP12_RX_ENABLE
.................... #define USB_EP12_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP12_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_RX_SIZE
.................... #undef USB_EP12_RX_SIZE
.................... #endif
.................... #define USB_EP12_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_RX_SIZE
.................... #error You enabled EP12 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP12_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_TX_SIZE
.................... #undef USB_EP12_TX_SIZE
.................... #endif
.................... #define USB_EP12_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_TX_SIZE
.................... #error You enabled EP12 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 13 defines ----------
.................... #ifndef USB_EP13_TX_ENABLE
.................... #define USB_EP13_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP13_RX_ENABLE
.................... #define USB_EP13_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP13_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_RX_SIZE
.................... #undef USB_EP13_RX_SIZE
.................... #endif
.................... #define USB_EP13_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_RX_SIZE
.................... #error You enabled EP13 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP13_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_TX_SIZE
.................... #undef USB_EP13_TX_SIZE
.................... #endif
.................... #define USB_EP13_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_TX_SIZE
.................... #error You enabled EP13 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 14 defines ----------
.................... #ifndef USB_EP14_TX_ENABLE
.................... #define USB_EP14_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP14_RX_ENABLE
.................... #define USB_EP14_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP14_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_RX_SIZE
.................... #undef USB_EP14_RX_SIZE
.................... #endif
.................... #define USB_EP14_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_RX_SIZE
.................... #error You enabled EP14 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP14_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_TX_SIZE
.................... #undef USB_EP14_TX_SIZE
.................... #endif
.................... #define USB_EP14_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_TX_SIZE
.................... #error You enabled EP14 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 15 defines ----------
.................... #ifndef USB_EP15_TX_ENABLE
.................... #define USB_EP15_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP15_RX_ENABLE
.................... #define USB_EP15_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP15_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_RX_SIZE
.................... #undef USB_EP15_RX_SIZE
.................... #endif
.................... #define USB_EP15_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_RX_SIZE
.................... #error You enabled EP15 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP15_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_TX_SIZE
.................... #undef USB_EP15_TX_SIZE
.................... #endif
.................... #define USB_EP15_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_TX_SIZE
.................... #error You enabled EP15 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... const int8 usb_ep_tx_type[16]={
.................... USB_EP0_TX_ENABLE, USB_EP1_TX_ENABLE, USB_EP2_TX_ENABLE,
.................... USB_EP3_TX_ENABLE, USB_EP4_TX_ENABLE, USB_EP5_TX_ENABLE,
.................... USB_EP6_TX_ENABLE, USB_EP7_TX_ENABLE, USB_EP8_TX_ENABLE,
.................... USB_EP9_TX_ENABLE, USB_EP10_TX_ENABLE, USB_EP11_TX_ENABLE,
.................... USB_EP12_TX_ENABLE, USB_EP13_TX_ENABLE, USB_EP14_TX_ENABLE,
.................... USB_EP15_TX_ENABLE
.................... };
....................
.................... const int8 usb_ep_rx_type[16]={
.................... USB_EP0_RX_ENABLE, USB_EP1_RX_ENABLE, USB_EP2_RX_ENABLE,
.................... USB_EP3_RX_ENABLE, USB_EP4_RX_ENABLE, USB_EP5_RX_ENABLE,
.................... USB_EP6_RX_ENABLE, USB_EP7_RX_ENABLE, USB_EP8_RX_ENABLE,
.................... USB_EP9_RX_ENABLE, USB_EP10_RX_ENABLE, USB_EP11_RX_ENABLE,
.................... USB_EP12_RX_ENABLE, USB_EP13_RX_ENABLE, USB_EP14_RX_ENABLE,
.................... USB_EP15_RX_ENABLE
.................... };
....................
.................... const unsigned int16 usb_ep_tx_size[16]={
.................... USB_EP0_TX_SIZE, USB_EP1_TX_SIZE, USB_EP2_TX_SIZE,
.................... USB_EP3_TX_SIZE, USB_EP4_TX_SIZE, USB_EP5_TX_SIZE,
.................... USB_EP6_TX_SIZE, USB_EP7_TX_SIZE, USB_EP8_TX_SIZE,
.................... USB_EP9_TX_SIZE, USB_EP10_TX_SIZE, USB_EP11_TX_SIZE,
.................... USB_EP12_TX_SIZE, USB_EP13_TX_SIZE, USB_EP14_TX_SIZE,
.................... USB_EP15_TX_SIZE
.................... };
....................
.................... const unsigned int16 usb_ep_rx_size[16]={
.................... USB_EP0_RX_SIZE, USB_EP1_RX_SIZE, USB_EP2_RX_SIZE,
.................... USB_EP3_RX_SIZE, USB_EP4_RX_SIZE, USB_EP5_RX_SIZE,
.................... USB_EP6_RX_SIZE, USB_EP7_RX_SIZE, USB_EP8_RX_SIZE,
.................... USB_EP9_RX_SIZE, USB_EP10_RX_SIZE, USB_EP11_RX_SIZE,
.................... USB_EP12_RX_SIZE, USB_EP13_RX_SIZE, USB_EP14_RX_SIZE,
.................... USB_EP15_RX_SIZE
.................... };
....................
.................... #ENDIF
....................
....................
.................... #if defined(__PIC16_USB_H__)
.................... #include <pic_usb.c>
.................... #endif
....................
.................... #if defined(__PIC18_USB_H__)
.................... #include <pic18_usb.c>
.................... /////////////////////////////////////////////////////////////////////////
.................... //// pic18_usb.c ////
.................... //// ////
.................... //// Hardware layer for CCS's USB library. See pic18_usb.h more ////
.................... //// documentation about the PIC18 hardware layer. ////
.................... //// ////
.................... //// This file is part of CCS's PIC USB driver code. See USB.H ////
.................... //// for more documentation and a list of examples. ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// 18F14K50 family added. ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// Nov 3rd, 2008: ////
.................... //// * 4553 family added. ////
.................... //// ////
.................... //// Dec 18, 2007: ////
.................... //// * usb_kbhit() moved to device driver. ////
.................... //// * USB Token handler changed to workaround a flaw in the USB ////
.................... //// peripheral to prevent the USB peripheral from ////
.................... //// inadvertantly STALLing the endpoint. Happened most often ////
.................... //// in bulk demo applications, especially CDC. ////
.................... //// ////
.................... //// 11-6-07: Fixed a bug where usb_data_buffer[] was reserving ////
.................... //// too much RAM. ////
.................... //// USB_MAX_EP0_PACKET_LENGTH value can be overwritten. ////
.................... //// For the 18F4450/2450 family this should be 8 ////
.................... //// because of limited RAM. Reducing this value ////
.................... //// frees RAM for application. ////
.................... //// Based upon which endpoints have been configured for ////
.................... //// use, will free up unused USB data RAM for ////
.................... //// application dynamically. This should free up ////
.................... //// at least 128 bytes of RAM. ////
.................... //// CDC now fits on a 18F4450/2450 ////
.................... //// ////
.................... //// 09-19-07: Fixed problems with 18F4450 family. ////
.................... //// ////
.................... //// 07-17-07: Added 18F4450,2450 support ////
.................... //// ////
.................... //// 07-13-07: Added 87J50 family support ////
.................... //// ////
.................... //// 11-01-05: usb_detach(), usb_attach() and usb_init_cs() ////
.................... //// changed for the better. ////
.................... //// ////
.................... //// 10-28-05: Added usb_rx_packet_size() ////
.................... //// ////
.................... //// 07-13-05: usb_put_packet() changed for 16bit packet sizes ////
.................... //// usb_flush_in() changed for 16bit packet sizes ////
.................... //// usb_get_packet() changed for 16bit packet sizes ////
.................... //// usb_flush_out() changed for 16bit packet sizes ////
.................... //// usb_set_configured() changed for 16bit packet sizes ////
.................... //// ////
.................... //// 06-30-05: usb_tbe() added ////
.................... //// The way endpoint 0 DTS is set has been changed. ////
.................... //// ////
.................... //// 06-20-05: Initial Release ////
.................... //// ////
.................... //// 05-13-05: Beta Release (Full Speed works) ////
.................... //// ////
.................... //// 03-21-05: Initial Alpha Release ////
.................... //// ////
.................... /////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2009 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... /////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __PIC18_USB_C__
.................... #DEFINE __PIC18_USB_C__
....................
.................... #INCLUDE <usb.h>
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// usb.h ////
.................... //// ////
.................... //// Function protypes, defintions and globals used by CCS USB driver ////
.................... //// ////
.................... //// This file is part of CCS's USB driver code ////
.................... //// ////
.................... //// The following USB examples are provided by CCS: ////
.................... //// ex_usb_mouse.c - A HID Mouse. ////
.................... //// ex_usb_hid.c - A custom application using HID protocol. ////
.................... //// ex_usb_kbmouse.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// interfaces. ////
.................... //// ex_usb_kbmouse2.c - A HID Mouse/Keyboard combo using multiple ////
.................... //// HID Reports. ////
.................... //// ex_usb_scope.c - A digital oscilloscope using a custom ////
.................... //// protocol requiring custom Windows drivers. ////
.................... //// ex_usb_serial.c - ////
.................... //// ex_usb_serial2.c - Two examples of using the CDC driver for ////
.................... //// a virtual COM port. ////
.................... //// ex_usb_bootloader.c - CDC/Virtual COM port bootloader. ////
.................... //// ex_usb_loadmouse.c - A conversion of ex_usb_mouse.c that is ////
.................... //// compatible with ex_usb_mouse.c. ////
.................... //// ////
.................... //// ********************** API ********************* ////
.................... //// ////
.................... //// These are the functions that are meant to be called by the user: ////
.................... //// ////
.................... //// usb_init() - Initializes the USB stack, the USB peripheral and ////
.................... //// attaches the unit to the usb bus. Enables ////
.................... //// interrupts. Will wait in an infinite loop until ////
.................... //// the device enumerates - if you are using ////
.................... //// connection sense or if the processor should run ////
.................... //// even if it's not connected to USB then use ////
.................... //// usb_init_cs() instead. ////
.................... //// ////
.................... //// usb_init_cs() - A smaller usb_init(), does not attach unit ////
.................... //// to usb bus or enable interrupts. Since this does ////
.................... //// not attach to the USB, you must periodically call ////
.................... //// usb_task(). See usb_task() for more information. ////
.................... //// ////
.................... //// usb_task() - If usb_init_cs() was used to initiate the USB ////
.................... //// peripheral, usb_task() should then be called periodically ////
.................... //// to check the connection sense pin. If the connection ////
.................... //// sense pin denotes USB is connected and the USB peripheral ////
.................... //// is not attached, this will attach the USB peripheral ////
.................... //// so the PC can start the enumeration process (and it ////
.................... //// will enable interrupts). If the connection sense pin ////
.................... //// denotes USB is not attached and the USB peripheral is ////
.................... //// running, this will reset the USB peripheral and wait ////
.................... //// for USB to reconnect (and usb_enumerated() will start ////
.................... //// returning FALSE). If connection sense (USB_CON_SENSE_PIN) ////
.................... //// is not defined the usb_task() assumes that USB is always ////
.................... //// connected. ////
.................... //// ////
.................... //// usb_attached() - Returns TRUE if the device is attached to a ////
.................... //// USB cable. A macro that looks at the defined ////
.................... //// connection sense pin. If this returns TRUE ////
.................... //// it does not mean the PC has connected to it, ////
.................... //// you need to use usb_enumerated() to check this. ////
.................... //// ////
.................... //// usb_enumerated() - Returns TRUE if device has been enumerated ////
.................... //// (configured) by host, FALSE if it has not. ////
.................... //// Do not try to use the USB peripheral for ////
.................... //// sending and receiving packets until you ////
.................... //// are enumerated. ////
.................... //// ////
.................... //// usb_wait_for_enumeration() - Sits in an infinte loop until device ////
.................... //// is enumerated. ////
.................... //// ////
.................... //// usb_tbe(endpoint) - Returns TRUE if the endpoint transmit buffer ////
.................... //// is free and ready to accept a new packet for transmission. ////
.................... //// ////
.................... //// usb_put_packet(endpoint, ptr, len, tgl) - Sends one packet to the ////
.................... //// host. If you need to send a message that ////
.................... //// spans more than one packet then use ////
.................... //// usb_puts(). Fore more detailed documentation ////
.................... //// see usb_hw_layer.h ////
.................... //// ////
.................... //// usb_puts(endpoint, ptr, len, timeout) - Sends a multiple packet ////
.................... //// message to the host. If you only need to send one packet, ////
.................... //// it is more effecient to use usb_put_packet(). This is ////
.................... //// documented in more detail above the prototype in USB.H. ////
.................... //// ////
.................... //// usb_kbhit(endpoint) - Returns true if OUT endpoint contains data ////
.................... //// from host. This will remain TRUE until ////
.................... //// usb_put_packet() or usb_flush_out() used. ////
.................... //// This function will return an invalid response ////
.................... //// if specified endpoint is not enabled for ////
.................... //// receiving data. ////
.................... //// ////
.................... //// len = usb_get_packet(endpoint, ptr, max) - Gets one packet that ////
.................... //// from the host/PC. usb_kbhit() must return TRUE before you ////
.................... //// call this routine or your data may not be valid. This ////
.................... //// only receives one packet, if you are trying to receive a ////
.................... //// multi-packet message use usb_gets(). For more detailed ////
.................... //// documentation see usb_hw_layer.h. ////
.................... //// ////
.................... //// len = usb_gets(endpoint, ptr, max, timeout) - Gets multiple ////
.................... //// packets from the host, you would use this instead ////
.................... //// of usb_get_packet() if you wanted to handle multi-packet ////
.................... //// messages. This is documented in more detail above the ////
.................... //// prototype in USB.H. ////
.................... //// ////
.................... //// ////
.................... //// ********* DEFINITIONS / CONFIGURATION ********** ////
.................... //// ////
.................... //// The following definitions are declared here, but can be ////
.................... //// overwritten in your code. Unless needed otherwise, leave ////
.................... //// to default value. If confused about a definition read the ////
.................... //// comments at each defintion ////
.................... //// ////
.................... //// USB_HID_IDLE (TRUE) - Set to TRUE if your device supports ////
.................... //// Set_Idle HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Idle / Get_Idle command) ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code. See ////
.................... //// usb_isr_tkn_setup_ClassInterface() in ////
.................... //// usb.c ////
.................... //// ////
.................... //// USB_HID_BOOT_PROTOCOL (FALSE) - Set to TRUE if your device supports ////
.................... //// Set_Protocl HID class request. Set to ////
.................... //// False if you do not (device will ////
.................... //// send a Wrong-state if computer ////
.................... //// sends a Set_Protocl / Get_Protocol ////
.................... //// command). ////
.................... //// NOTE: If you set to TRUE you must ////
.................... //// provide your own code in the ////
.................... //// application that properly send boot ////
.................... //// or HID packets. ////
.................... //// ////
.................... //// USB_MAX_EP0_PACKET_LENGTH (8) - Max Packet size for Endpoint 0. ////
.................... //// The hardware level driver (ex ////
.................... //// pic18_usb.h will define this value if ////
.................... //// not already overwritten). Increasing ////
.................... //// this size will speed up the ////
.................... //// enumeration process. ////
.................... //// ////
.................... //// USB_EPx_RX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this RX (PC to device) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_RX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for receiving ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_RX_ENABLE defined and ////
.................... //// USB_EPx_RX_SIZE defined (non 0) to enable a RX ////
.................... //// endpoint. ////
.................... //// *** NOTE *** Endpoint 0 is always enabled. ////
.................... //// ////
.................... //// USB_EPx_TX_ENABLE (USB_ENABLE_DISABLED) - Where x is the ////
.................... //// endpoint number. Change this define ////
.................... //// to specify what kind of transfer method ////
.................... //// this TX (device to PC) endpoint uses. ////
.................... //// Here is the list of valid transfer methods: ////
.................... //// USB_ENABLE_CONTROL ////
.................... //// USB_ENABLE_ISOCHRONOUS ////
.................... //// USB_ENABLE_BULK ////
.................... //// USB_ENABLE_INTERRUPT ////
.................... //// USB_ENABLE_DISABLED ////
.................... //// Don't forget that you must specify the ////
.................... //// transfer method properly in your endpoint ////
.................... //// descriptor, too. ////
.................... //// ////
.................... //// USB_EPx_TX_SIZE (0) - For some hardware it is important to know ////
.................... //// how much memory to reserve for transmitting ////
.................... //// packets. ////
.................... //// ////
.................... //// *** NOTE *** You must have both USB_EPx_TX_ENABLE defined and ////
.................... //// USB_EPx_TX_SIZE defined (non 0) to enable a TX ////
.................... //// endpoint. ////
.................... //// ////
.................... //// ////
.................... //// USB_HID_DEVICE (TRUE) - HID devices require extra code to handle ////
.................... //// HID requests. You can disable to save ////
.................... //// ROM space if you are not using a HID ////
.................... //// device. If you are not using a HID ////
.................... //// device you must provide your own O/S ////
.................... //// (Windows) driver. ////
.................... //// ////
.................... //// The other definitions should not be changed. ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// Version History: ////
.................... //// ////
.................... //// March 5th, 2009: ////
.................... //// Cleanup for Wizard. ////
.................... //// PIC24 Initial release. ////
.................... //// ////
.................... //// July 13th, 2005: ////
.................... //// usb_ep_tx_size[] and usb_ep_rx_size[] changed to 16bits ////
.................... //// ////
.................... //// June 20th, 2005: ////
.................... //// Initial 18fxx5x release ////
.................... //// ////
.................... //// May 13th, 2005: ////
.................... //// Beta release, only works with 18Fxx5x hardware layer. ////
.................... //// Now supports multiple interfaces (many defines in descriptors ////
.................... //// will have to be changed, see examples) ////
.................... //// ////
.................... //// Mar 21st, 2005: ////
.................... //// Initial Alpha Release with PIC18Fxx5x support. (ONLY TESTED ////
.................... //// WITH 18F4550) ////
.................... //// usb_gets() and usb_puts() changed (see usb.c) ////
.................... //// ////
.................... //// June 24th, 2004: ////
.................... //// Optimization and cleanup. ////
.................... //// The following definitions changed: ////
.................... //// USB_EPx_TX_ENABLE and USB_EPx_RX_ENABLE have changed. See usb.h ////
.................... //// USB_CONFIG_DESCRIPTORS[] removed ////
.................... //// USB_CONFIG_DESC_LEN changed to USB_DESC_CONFIG_LEN ////
.................... //// USB_INTERFACE_DESC_LEN changed to USB_DESC_INTERFACE_LEN ////
.................... //// USB_CLASS_DESC_LEN changed to USB_DESC_CLASS_LEN ////
.................... //// USB_ENDPOINT_DESC_LEN changed to USB_DESC_ENDPOINT_LEN ////
.................... //// USB_CONFIG_DESC_KEY changed to USB_DESC_CONFIG_TYPE ////
.................... //// USB_INTERFACE_DESC_KEY changed to USB_DESC_INTERFACE_TYPE ////
.................... //// USB_CLASS_DESC_KEY changed to USB_DESC_CLASS_TYPE ////
.................... //// USB_ENDPOINT_DESC_KEY changed to USB_DESC_ENDPOINT_TYPE ////
.................... //// USB_STRING_X[] arrays removed, see USB_STRING_DESC[] and ////
.................... //// USB_STRING_DESC_OFFSET[] ////
.................... //// dev_req, curr_config, status_device and getdesc_type global ////
.................... //// variables moved into struct USB_stack_status ////
.................... //// ////
.................... //// October 15th, 2003: Support for boot protocol added. ////
.................... //// Set USB_HID_BOOT_PROTOCOL to TRUE to support this. ////
.................... //// The array hid_protocol[] saves which protocol mode each ////
.................... //// interface is in. It is your applications job to send ////
.................... //// data that either fit the boot protocol or HID protocol. ////
.................... //// ////
.................... //// May 6th, 2003: Fixed a potential stack overflow using PCM ////
.................... //// ////
.................... //// October 29th, 2002: New definition added to USB_STATES ////
.................... //// ////
.................... //// August 2nd, 2002: Initial Public Release ////
.................... //// ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2009 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS ////
.................... //// C compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, ////
.................... //// reproduction or distribution is permitted without written ////
.................... //// permission. Derivative programs created using this software ////
.................... //// in object code form are not restricted in any way. ////
.................... ///////////////////////////////////////////////////////////////////////////
....................
.................... #IFNDEF __USB_PROTOTYPES__
.................... #DEFINE __USB_PROTOTYPES__
....................
.................... //// CONFIGURATION ////////////////////////////////////////////////////////////
....................
.................... #ifndef USB_CON_SENSE_PIN
.................... #define USB_CON_SENSE_PIN 0
.................... #endif
....................
.................... #IFNDEF USB_HID_BOOT_PROTOCOL
.................... #DEFINE USB_HID_BOOT_PROTOCOL FALSE
.................... #ENDIF
....................
.................... #IFNDEF USB_HID_IDLE
.................... #DEFINE USB_HID_IDLE FALSE
.................... #ENDIF
....................
.................... //should the compiler add the extra HID handler code? Defaults to yes.
.................... #IFNDEF USB_HID_DEVICE
.................... #DEFINE USB_HID_DEVICE TRUE
.................... #ENDIF
....................
.................... #IFNDEF USB_CDC_DEVICE
.................... #DEFINE USB_CDC_DEVICE FALSE
.................... #ENDIF
....................
.................... //set to false to opt for less RAM, true to opt for less ROM
.................... #ifndef USB_OPT_FOR_ROM
.................... #define USB_OPT_FOR_ROM TRUE
.................... #endif
....................
.................... #IFNDEF USB_MAX_EP0_PACKET_LENGTH
.................... #DEFINE USB_MAX_EP0_PACKET_LENGTH 8
.................... #ENDIF
....................
....................
.................... ////// USER-LEVEL API /////////////////////////////////////////////////////////
....................
.................... /**************************************************************
.................... /* usb_enumerated()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /* Returns: Returns a 1 if device is configured / enumerated,
.................... /* Returns a 0 if device is un-configured / not enumerated.
.................... /*
.................... /* Summary: See API section of USB.H for more documentation.
.................... /***************************************************************/
.................... int1 usb_enumerated(void);
....................
.................... /**************************************************************
.................... /* usb_wait_for_enumeration()
.................... /*
.................... /* Input: Global variable USB_Curr_Config
.................... /*
.................... /* Summary: Waits in-definately until device is configured / enumerated.
.................... /* See API section of USB.H for more information.
.................... /***************************************************************/
.................... void usb_wait_for_enumeration(void);
....................
.................... /****************************************************************************
.................... /* usb_gets(endpoint, ptr, max, timeout)
.................... /*
.................... /* Input: endpoint - endpoint to get data from
.................... /* ptr - place / array to store data to
.................... /* max - max amount of data to get from USB and store into ptr
.................... /* timeout - time in milliseconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Output: Amount of data returned. It may be less than max.
.................... /*
.................... /* Summary: Gets data from the host. Will get multiple-packet messages
.................... /* and finish when either it receives a 0-len packet or a packet
.................... /* of less size than maximum.
.................... /*
.................... /*****************************************************************************/
.................... unsigned int16 usb_gets(int8 endpoint, int8 * ptr, unsigned int16 max, unsigned int16 timeout);
....................
.................... /****************************************************************************
.................... /* usb_puts()
.................... /*
.................... /* Inputs: endpoint - endpoint to send data out
.................... /* ptr - points to array of data to send
.................... /* len - amount of data to send
.................... /* timeout - time in milli-seconds, for each packet, to wait before
.................... /* timeout. set to 0 for no timeout.
.................... /*
.................... /* Outputs: Returns TRUE if message sent succesfully, FALSE if it was not
.................... /* sent before timeout period expired.
.................... /*
.................... /* Summary: Used for sending multiple packets of data as one message. This
.................... /* function can still be used to send messages consiting of only one
.................... /* packet. See usb_put_packet() documentation for the rules about when
.................... /* multiple packet messages or 0-lenght packets are needed.
.................... /*
.................... /*****************************************************************************/
.................... int1 usb_puts(int8 endpoint, int8 * ptr, unsigned int16 len, unsigned int8 timeout);
....................
.................... /******************************************************************************
.................... /* usb_attached()
.................... /*
.................... /* Summary: Returns TRUE if the device is attached to a USB cable.
.................... /* See the API section of USB.H for more documentation.
.................... /*
.................... /*****************************************************************************/
.................... #if USB_CON_SENSE_PIN
.................... #define usb_attached() input(USB_CON_SENSE_PIN)
.................... #else
.................... #define usb_attached() TRUE
.................... #endif
....................
.................... ////// END USER-LEVEL API /////////////////////////////////////////////////////
....................
....................
.................... ////// STACK-LEVEL API USED BY HW DRIVERS ////////////////////////////////////
....................
.................... enum USB_STATES {GET_DESCRIPTOR=1,SET_ADDRESS=2,NONE=0};
....................
.................... enum USB_GETDESC_TYPES {USB_GETDESC_CONFIG_TYPE=0,USB_GETDESC_HIDREPORT_TYPE=1,USB_GETDESC_STRING_TYPE=2,USB_GETDESC_DEVICE_TYPE=3};
....................
.................... #if USB_OPT_FOR_ROM
.................... typedef struct {
.................... USB_STATES dev_req; //what did the last setup token set us up to do?. init at none
.................... int curr_config; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #else
.................... typedef struct {
.................... USB_STATES dev_req:2; //what did the last setup token set us up to do?. init at none
.................... int Curr_config:2; //our current config. start at none/powered (NOT THAT THIS LIMITS US TO 3 CONFIGURATIONS)
.................... int status_device:2; //Holds our state for Set_Feature and Clear_Feature
.................... USB_GETDESC_TYPES getdesc_type:2; //which get_descriptor() we are handling
.................... } TYPE_USB_STACK_STATUS;
.................... #endif
....................
.................... extern TYPE_USB_STACK_STATUS USB_stack_status;
....................
.................... /**************************************************************
.................... /* usb_token_reset()
.................... /*
.................... /* Output: No output (but many global registers are modified)
.................... /*
.................... /* Summary: Resets the token handler to initial (unconfigured) state.
.................... /***************************************************************/
.................... void usb_token_reset(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_setup_dne()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[] contains the the setup packet.
.................... /*
.................... /* Output: None (many globals are changed)
.................... /*
.................... /* Summary: This function is that handles the setup token.
.................... /* We must handle all relevant requests, such as Set_Configuration,
.................... /* Get_Descriptor, etc.
.................... /*
.................... /* usb_ep0_rx_buffer[] contains setup data packet, which has the
.................... /* following records:
.................... /* -------------------------------------------------------------------------------------------
.................... /* usb_ep0_rx_buffer[ 0 ]=bmRequestType; Where the setup packet goes
.................... /* bit7 (0) host-to-device
.................... /* (1) device-to-host
.................... /* bit6-5 (00) usb standard request;
.................... /* (01) class request;
.................... /* (10) vendor request
.................... /* (11) reserved
.................... /* bit4-0 (0000) device
.................... /* (0001) interface
.................... /* (0010) endpoint
.................... /* (0011) other element
.................... /* (0100) to (1111) reserved
.................... /* usb_ep0_rx_buffer[ 1 ]=bRequest ; the request
.................... /* usb_ep0_rx_buffer[2,3]=wValue ; a value which corresponds to request
.................... /* usb_ep0_rx_buffer[4,5]=wIndex ; could correspond to interface or endpoint...
.................... /* usb_ep0_rx_buffer[6,7]=wLength ; number of bytes in next data packet;
.................... /* for host-to-device, this exactly how many bytes in data packet.
.................... /* for device-to-host, this is the maximum bytes that can fit one packet.
.................... /***************************************************************/
.................... void usb_isr_tok_setup_dne(void);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_out_dne()
.................... /*
.................... /* Input: endpoint contains which endpoint we are receiving data (0..15)
.................... /*
.................... /* Summary: Processes out tokens (out is respective of the host, so actualy
.................... /* incoming to the pic), but not out setup tokens. Normally when
.................... /* data is received it is left in the buffer (user would use
.................... /* usb_kbhit() and usb_get_packet() to receive data), but certain
.................... /* libraries (like CDC) have to answer setup packets.
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_out_dne(int8 endpoint);
....................
.................... /**************************************************************
.................... /* usb_isr_tok_in_dne(endpoint)
.................... /*
.................... /* Input: endpoint - which endpoint we are processing a setup token.
.................... /*
.................... /* Summary: This handles an IN packet (HOST <- PIC). For endpoint 0, this
.................... /* is usually to setup a response packet to a setup packet. Endpoints 1..15
.................... /* are generally ignored, and the user has to use usb_tbe() to determine if
.................... /* if the buffer is ready for a new transmit packet (there are special cases,
.................... /* like CDC which handles the CDC protocl).
.................... /*
.................... /***************************************************************/
.................... void usb_isr_tok_in_dne(int8 endpoint);
....................
.................... ////// END STACK-LEVEL API USED BY HW DRIVERS /////////////////////////////////
....................
....................
.................... //CCS only supports one configuration at this time
.................... #DEFINE USB_NUM_CONFIGURATIONS 1 //DO NOT CHANGE
....................
.................... //PID values for tokens (see page 48 of USB Complete ed.1)
.................... #define PID_IN 0x09 //device to host transactions
.................... #define PID_OUT 0x01 //host to device transactions
.................... #define PID_SETUP 0x0D //host to device setup transaction
.................... #define PID_ACK 0x02 //receiver accepts error-free data packet
.................... #define PID_DATA0 0x03 //data packet with even sync bit
.................... #define PID_SOF 0x05 //start of framer marker and frame number
.................... #define PID_NAK 0x0A //receiver can't accept data or sender cant send data or has no data to transmit
.................... #define PID_DATA1 0x0B //data packet with odd sync bit
.................... #define PID_PRE 0x0C //preamble issued by host. enables downstream traffic to low-speed device
.................... #define PID_STALL 0x0E //a control request isnt supported or the endpoint is halted
....................
.................... //Key which identifies descritpors
.................... #DEFINE USB_DESC_DEVICE_TYPE 0x01 //#DEFINE USB_DEVICE_DESC_KEY 0x01
.................... #DEFINE USB_DESC_CONFIG_TYPE 0x02 //#DEFINE USB_CONFIG_DESC_KEY 0x02
.................... #DEFINE USB_DESC_STRING_TYPE 0x03 //#DEFINE USB_STRING_DESC_KEY 0x03
.................... #DEFINE USB_DESC_INTERFACE_TYPE 0x04 //#DEFINE USB_INTERFACE_DESC_KEY 0x04
.................... #DEFINE USB_DESC_ENDPOINT_TYPE 0x05 //#DEFINE USB_ENDPOINT_DESC_KEY 0x05
.................... #DEFINE USB_DESC_CLASS_TYPE 0x21 //#DEFINE USB_CLASS_DESC_KEY 0x21
.................... #DEFINE USB_DESC_HIDREPORT_TYPE 0x22
....................
.................... //The length of each descriptor
.................... #DEFINE USB_DESC_DEVICE_LEN 18 //#DEFINE USB_DEVICE_DESC_LEN 18
.................... #DEFINE USB_DESC_CONFIG_LEN 9 //#DEFINE USB_CONFIG_DESC_LEN 9
.................... #DEFINE USB_DESC_INTERFACE_LEN 9 //#DEFINE USB_INTERFACE_DESC_LEN 9
.................... #DEFINE USB_DESC_CLASS_LEN 9 //#DEFINE USB_CLASS_DESC_LEN 9
.................... #DEFINE USB_DESC_ENDPOINT_LEN 7 //#DEFINE USB_ENDPOINT_DESC_LEN 7
....................
.................... //Standard USB Setup bRequest Codes
.................... #define USB_STANDARD_REQUEST_GET_STATUS 0x00
.................... #define USB_STANDARD_REQUEST_CLEAR_FEATURE 0x01
.................... #define USB_STANDARD_REQUEST_SET_FEATURE 0x03
.................... #define USB_STANDARD_REQUEST_SET_ADDRESS 0x05
.................... #define USB_STANDARD_REQUEST_GET_DESCRIPTOR 0x06
.................... #define USB_STANDARD_REQUEST_SET_DESCRIPTOR 0x07
.................... #define USB_STANDARD_REQUEST_GET_CONFIGURATION 0x08
.................... #define USB_STANDARD_REQUEST_SET_CONFIGURATION 0x09
.................... #define USB_STANDARD_REQUEST_GET_INTERFACE 0x0A
.................... #define USB_STANDARD_REQUEST_SET_INTERFACE 0x0B
.................... #define USB_STANDARD_REQUEST_SYNCH_FRAME 0x0C
....................
.................... //HID Class Setup bRequest Codes
.................... #define USB_HID_REQUEST_GET_REPORT 0x01
.................... #define USB_HID_REQUEST_GET_IDLE 0x02
.................... #define USB_HID_REQUEST_GET_PROTOCOL 0x03
.................... #define USB_HID_REQUEST_SET_REPORT 0x09
.................... #define USB_HID_REQUEST_SET_IDLE 0x0A
.................... #define USB_HID_REQUEST_SET_PROTOCOL 0x0B
....................
.................... //types of endpoints as defined in the descriptor
.................... #define USB_ENDPOINT_TYPE_CONTROL 0x00
.................... #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
.................... #define USB_ENDPOINT_TYPE_BULK 0x02
.................... #define USB_ENDPOINT_TYPE_INTERRUPT 0x03
....................
.................... //types of endpoints used internally in this api
.................... #define USB_ENABLE_DISABLED -1
.................... #define USB_ENABLE_BULK USB_ENDPOINT_TYPE_BULK
.................... #define USB_ENABLE_ISOCHRONOUS USB_ENDPOINT_TYPE_ISOCHRONOUS
.................... #define USB_ENABLE_INTERRUPT USB_ENDPOINT_TYPE_INTERRUPT
.................... #define USB_ENABLE_CONTROL USB_ENDPOINT_TYPE_CONTROL
....................
....................
.................... //*** ENABLE RX ENDPOINTS AND BUFFERS
....................
.................... //--------- endpoint 0 defines ----------
.................... #define USB_EP0_TX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_ENABLE USB_ENABLE_CONTROL
.................... #define USB_EP0_RX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
.................... #define USB_EP0_TX_SIZE USB_MAX_EP0_PACKET_LENGTH //endpoint 0 is setup, and should always be the MAX_PACKET_LENGTH. Slow speed specifies 8
....................
.................... //--------- endpoint 1 defines ----------
.................... #ifndef USB_EP1_TX_ENABLE
.................... #define USB_EP1_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP1_RX_ENABLE
.................... #define USB_EP1_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP1_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_RX_SIZE
.................... #undef USB_EP1_RX_SIZE
.................... #endif
.................... #define USB_EP1_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_RX_SIZE
.................... #error You enabled EP1 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP1_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP1_TX_SIZE
.................... #undef USB_EP1_TX_SIZE
.................... #endif
.................... #define USB_EP1_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP1_TX_SIZE
.................... #error You enabled EP1 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 2 defines ----------
.................... #ifndef USB_EP2_TX_ENABLE
.................... #define USB_EP2_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP2_RX_ENABLE
.................... #define USB_EP2_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP2_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_RX_SIZE
.................... #undef USB_EP2_RX_SIZE
.................... #endif
.................... #define USB_EP2_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_RX_SIZE
.................... #error You enabled EP2 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP2_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP2_TX_SIZE
.................... #undef USB_EP2_TX_SIZE
.................... #endif
.................... #define USB_EP2_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP2_TX_SIZE
.................... #error You enabled EP2 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 3 defines ----------
.................... #ifndef USB_EP3_TX_ENABLE
.................... #define USB_EP3_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP3_RX_ENABLE
.................... #define USB_EP3_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP3_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_RX_SIZE
.................... #undef USB_EP3_RX_SIZE
.................... #endif
.................... #define USB_EP3_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_RX_SIZE
.................... #error You enabled EP3 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP3_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP3_TX_SIZE
.................... #undef USB_EP3_TX_SIZE
.................... #endif
.................... #define USB_EP3_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP3_TX_SIZE
.................... #error You enabled EP3 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 4 defines ----------
.................... #ifndef USB_EP4_TX_ENABLE
.................... #define USB_EP4_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP4_RX_ENABLE
.................... #define USB_EP4_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP4_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_RX_SIZE
.................... #undef USB_EP4_RX_SIZE
.................... #endif
.................... #define USB_EP4_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_RX_SIZE
.................... #error You enabled EP4 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP4_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP4_TX_SIZE
.................... #undef USB_EP4_TX_SIZE
.................... #endif
.................... #define USB_EP4_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP4_TX_SIZE
.................... #error You enabled EP4 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 5 defines ----------
.................... #ifndef USB_EP5_TX_ENABLE
.................... #define USB_EP5_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP5_RX_ENABLE
.................... #define USB_EP5_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP5_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_RX_SIZE
.................... #undef USB_EP5_RX_SIZE
.................... #endif
.................... #define USB_EP5_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_RX_SIZE
.................... #error You enabled EP5 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP5_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP5_TX_SIZE
.................... #undef USB_EP5_TX_SIZE
.................... #endif
.................... #define USB_EP5_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP5_TX_SIZE
.................... #error You enabled EP5 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 6 defines ----------
.................... #ifndef USB_EP6_TX_ENABLE
.................... #define USB_EP6_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP6_RX_ENABLE
.................... #define USB_EP6_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP6_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_RX_SIZE
.................... #undef USB_EP6_RX_SIZE
.................... #endif
.................... #define USB_EP6_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_RX_SIZE
.................... #error You enabled EP6 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP6_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP6_TX_SIZE
.................... #undef USB_EP6_TX_SIZE
.................... #endif
.................... #define USB_EP6_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP6_TX_SIZE
.................... #error You enabled EP6 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 7 defines ----------
.................... #ifndef USB_EP7_TX_ENABLE
.................... #define USB_EP7_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP7_RX_ENABLE
.................... #define USB_EP7_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP7_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_RX_SIZE
.................... #undef USB_EP7_RX_SIZE
.................... #endif
.................... #define USB_EP7_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_RX_SIZE
.................... #error You enabled EP7 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP7_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP7_TX_SIZE
.................... #undef USB_EP7_TX_SIZE
.................... #endif
.................... #define USB_EP7_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP7_TX_SIZE
.................... #error You enabled EP7 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 8 defines ----------
.................... #ifndef USB_EP8_TX_ENABLE
.................... #define USB_EP8_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP8_RX_ENABLE
.................... #define USB_EP8_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP8_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_RX_SIZE
.................... #undef USB_EP8_RX_SIZE
.................... #endif
.................... #define USB_EP8_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_RX_SIZE
.................... #error You enabled EP8 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP8_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP8_TX_SIZE
.................... #undef USB_EP8_TX_SIZE
.................... #endif
.................... #define USB_EP8_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP8_TX_SIZE
.................... #error You enabled EP8 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 9 defines ----------
.................... #ifndef USB_EP9_TX_ENABLE
.................... #define USB_EP9_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP9_RX_ENABLE
.................... #define USB_EP9_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP9_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_RX_SIZE
.................... #undef USB_EP9_RX_SIZE
.................... #endif
.................... #define USB_EP9_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_RX_SIZE
.................... #error You enabled EP9 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP9_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP9_TX_SIZE
.................... #undef USB_EP9_TX_SIZE
.................... #endif
.................... #define USB_EP9_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP9_TX_SIZE
.................... #error You enabled EP9 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 10 defines ----------
.................... #ifndef USB_EP10_TX_ENABLE
.................... #define USB_EP10_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP10_RX_ENABLE
.................... #define USB_EP10_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP10_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_RX_SIZE
.................... #undef USB_EP10_RX_SIZE
.................... #endif
.................... #define USB_EP10_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_RX_SIZE
.................... #error You enabled EP10 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP10_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP10_TX_SIZE
.................... #undef USB_EP10_TX_SIZE
.................... #endif
.................... #define USB_EP10_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP10_TX_SIZE
.................... #error You enabled EP10 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 11 defines ----------
.................... #ifndef USB_EP11_TX_ENABLE
.................... #define USB_EP11_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP11_RX_ENABLE
.................... #define USB_EP11_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP11_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_RX_SIZE
.................... #undef USB_EP11_RX_SIZE
.................... #endif
.................... #define USB_EP11_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_RX_SIZE
.................... #error You enabled EP11 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP11_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP11_TX_SIZE
.................... #undef USB_EP11_TX_SIZE
.................... #endif
.................... #define USB_EP11_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP11_TX_SIZE
.................... #error You enabled EP11 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 12 defines ----------
.................... #ifndef USB_EP12_TX_ENABLE
.................... #define USB_EP12_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP12_RX_ENABLE
.................... #define USB_EP12_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP12_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_RX_SIZE
.................... #undef USB_EP12_RX_SIZE
.................... #endif
.................... #define USB_EP12_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_RX_SIZE
.................... #error You enabled EP12 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP12_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP12_TX_SIZE
.................... #undef USB_EP12_TX_SIZE
.................... #endif
.................... #define USB_EP12_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP12_TX_SIZE
.................... #error You enabled EP12 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 13 defines ----------
.................... #ifndef USB_EP13_TX_ENABLE
.................... #define USB_EP13_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP13_RX_ENABLE
.................... #define USB_EP13_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP13_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_RX_SIZE
.................... #undef USB_EP13_RX_SIZE
.................... #endif
.................... #define USB_EP13_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_RX_SIZE
.................... #error You enabled EP13 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP13_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP13_TX_SIZE
.................... #undef USB_EP13_TX_SIZE
.................... #endif
.................... #define USB_EP13_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP13_TX_SIZE
.................... #error You enabled EP13 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 14 defines ----------
.................... #ifndef USB_EP14_TX_ENABLE
.................... #define USB_EP14_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP14_RX_ENABLE
.................... #define USB_EP14_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP14_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_RX_SIZE
.................... #undef USB_EP14_RX_SIZE
.................... #endif
.................... #define USB_EP14_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_RX_SIZE
.................... #error You enabled EP14 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP14_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP14_TX_SIZE
.................... #undef USB_EP14_TX_SIZE
.................... #endif
.................... #define USB_EP14_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP14_TX_SIZE
.................... #error You enabled EP14 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
....................
.................... //--------- endpoint 15 defines ----------
.................... #ifndef USB_EP15_TX_ENABLE
.................... #define USB_EP15_TX_ENABLE USB_ENABLE_DISABLED
.................... #endif
.................... #ifndef USB_EP15_RX_ENABLE
.................... #define USB_EP15_RX_ENABLE USB_ENABLE_DISABLED
.................... #endif
....................
.................... #if USB_EP15_RX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_RX_SIZE
.................... #undef USB_EP15_RX_SIZE
.................... #endif
.................... #define USB_EP15_RX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_RX_SIZE
.................... #error You enabled EP15 for RX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... #if USB_EP15_TX_ENABLE==USB_ENABLE_DISABLED
.................... #ifdef USB_EP15_TX_SIZE
.................... #undef USB_EP15_TX_SIZE
.................... #endif
.................... #define USB_EP15_TX_SIZE 0
.................... #else
.................... #ifndef USB_EP15_TX_SIZE
.................... #error You enabled EP15 for TX but didn't specify endpoint size
.................... #endif
.................... #endif
....................
.................... const int8 usb_ep_tx_type[16]={
.................... USB_EP0_TX_ENABLE, USB_EP1_TX_ENABLE, USB_EP2_TX_ENABLE,
.................... USB_EP3_TX_ENABLE, USB_EP4_TX_ENABLE, USB_EP5_TX_ENABLE,
.................... USB_EP6_TX_ENABLE, USB_EP7_TX_ENABLE, USB_EP8_TX_ENABLE,
.................... USB_EP9_TX_ENABLE, USB_EP10_TX_ENABLE, USB_EP11_TX_ENABLE,
.................... USB_EP12_TX_ENABLE, USB_EP13_TX_ENABLE, USB_EP14_TX_ENABLE,
.................... USB_EP15_TX_ENABLE
.................... };
....................
.................... const int8 usb_ep_rx_type[16]={
.................... USB_EP0_RX_ENABLE, USB_EP1_RX_ENABLE, USB_EP2_RX_ENABLE,
.................... USB_EP3_RX_ENABLE, USB_EP4_RX_ENABLE, USB_EP5_RX_ENABLE,
.................... USB_EP6_RX_ENABLE, USB_EP7_RX_ENABLE, USB_EP8_RX_ENABLE,
.................... USB_EP9_RX_ENABLE, USB_EP10_RX_ENABLE, USB_EP11_RX_ENABLE,
.................... USB_EP12_RX_ENABLE, USB_EP13_RX_ENABLE, USB_EP14_RX_ENABLE,
.................... USB_EP15_RX_ENABLE
.................... };
....................
.................... const unsigned int16 usb_ep_tx_size[16]={
.................... USB_EP0_TX_SIZE, USB_EP1_TX_SIZE, USB_EP2_TX_SIZE,
.................... USB_EP3_TX_SIZE, USB_EP4_TX_SIZE, USB_EP5_TX_SIZE,
.................... USB_EP6_TX_SIZE, USB_EP7_TX_SIZE, USB_EP8_TX_SIZE,
.................... USB_EP9_TX_SIZE, USB_EP10_TX_SIZE, USB_EP11_TX_SIZE,
.................... USB_EP12_TX_SIZE, USB_EP13_TX_SIZE, USB_EP14_TX_SIZE,
.................... USB_EP15_TX_SIZE
.................... };
....................
.................... const unsigned int16 usb_ep_rx_size[16]={
.................... USB_EP0_RX_SIZE, USB_EP1_RX_SIZE, USB_EP2_RX_SIZE,
.................... USB_EP3_RX_SIZE, USB_EP4_RX_SIZE, USB_EP5_RX_SIZE,
.................... USB_EP6_RX_SIZE, USB_EP7_RX_SIZE, USB_EP8_RX_SIZE,
.................... USB_EP9_RX_SIZE, USB_EP10_RX_SIZE, USB_EP11_RX_SIZE,
.................... USB_EP12_RX_SIZE, USB_EP13_RX_SIZE, USB_EP14_RX_SIZE,
.................... USB_EP15_RX_SIZE
.................... };
....................
.................... #ENDIF
....................
....................
.................... //if you are worried that the PIC is not receiving packets because a bug in the
.................... //DATA0/DATA1 synch code, you can set this to TRUE to ignore the DTS on
.................... //receiving.
.................... #ifndef USB_IGNORE_RX_DTS
.................... #define USB_IGNORE_RX_DTS FALSE
.................... #endif
....................
.................... #ifndef USB_IGNORE_TX_DTS
.................... #define USB_IGNORE_TX_DTS FALSE
.................... #endif
....................
.................... #if ((getenv("DEVICE")=="PIC18F87J50") || (getenv("DEVICE")=="PIC18F86J55") || \
.................... (getenv("DEVICE")=="PIC18F86J50") || (getenv("DEVICE")=="PIC18F85J50") || \
.................... (getenv("DEVICE")=="PIC18F67J50") || (getenv("DEVICE")=="PIC18F66J55") || \
.................... (getenv("DEVICE")=="PIC18F66J50") || (getenv("DEVICE")=="PIC18F65J50"))
.................... #define __USB_87J50__
.................... #define USB_TOTAL_RAM_SPACE ((int16)getenv("RAM")-0x400)
.................... #define USB_RAM_START 0x400
.................... #define USB_LAST_ALLOWED_ENDPOINT 16
.................... #elif ((getenv("DEVICE")=="PIC18F2450") || (getenv("DEVICE")=="PIC18F4450"))
.................... #define __USB_4450__
.................... #define USB_TOTAL_RAM_SPACE ((int16)0x100)
.................... #define USB_RAM_START 0x400
.................... #define USB_LAST_ALLOWED_ENDPOINT 3
.................... #elif ((getenv("DEVICE")=="PIC18F13K50") || (getenv("DEVICE")=="PIC18F14K50"))
.................... #define __USB_K50__
.................... #define USB_TOTAL_RAM_SPACE ((int16)0x200)
.................... #define USB_RAM_START 0x200
.................... #define USB_LAST_ALLOWED_ENDPOINT 8
.................... #elif ((getenv("DEVICE")=="PIC18F2455") || (getenv("DEVICE")=="PIC18F2550") || \
.................... (getenv("DEVICE")=="PIC18F4455") || (getenv("DEVICE")=="PIC18F4550") || \
.................... (getenv("DEVICE")=="PIC18F2458") || (getenv("DEVICE")=="PIC18F2553") || \
.................... (getenv("DEVICE")=="PIC18F4458") || (getenv("DEVICE")=="PIC18F4553") \
.................... )
.................... #define __USB_4550__
.................... #define USB_TOTAL_RAM_SPACE ((int16)0x400)
.................... #define USB_RAM_START 0x400
.................... #define USB_LAST_ALLOWED_ENDPOINT 16
.................... #else
.................... #error Unknown PIC device, USB not supported in this library.
.................... #endif
....................
.................... #if USB_EP15_TX_SIZE || USB_EP15_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 15
.................... #elif USB_EP14_TX_SIZE || USB_EP14_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 14
.................... #elif USB_EP13_TX_SIZE || USB_EP13_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 13
.................... #elif USB_EP12_TX_SIZE || USB_EP12_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 12
.................... #elif USB_EP11_TX_SIZE || USB_EP11_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 11
.................... #elif USB_EP10_TX_SIZE || USB_EP10_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 10
.................... #elif USB_EP9_TX_SIZE || USB_EP9_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 9
.................... #elif USB_EP8_TX_SIZE || USB_EP8_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 8
.................... #elif USB_EP7_TX_SIZE || USB_EP7_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 7
.................... #elif USB_EP6_TX_SIZE || USB_EP6_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 6
.................... #elif USB_EP5_TX_SIZE || USB_EP5_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 5
.................... #elif USB_EP4_TX_SIZE || USB_EP4_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 4
.................... #elif USB_EP3_TX_SIZE || USB_EP3_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 3
.................... #elif USB_EP2_TX_SIZE || USB_EP2_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 2
.................... #elif USB_EP1_TX_SIZE || USB_EP1_RX_SIZE
.................... #define USB_LAST_DEFINED_ENDPOINT 1
.................... #else
.................... #define USB_LAST_DEFINED_ENDPOINT 0
.................... #endif
....................
.................... #define USB_CONTROL_REGISTER_SIZE ((USB_LAST_DEFINED_ENDPOINT+1)*8)
....................
.................... #define USB_DATA_BUFFER_NEEDED (USB_EP0_TX_SIZE+USB_EP0_RX_SIZE+USB_EP1_TX_SIZE+\
.................... USB_EP1_RX_SIZE+USB_EP2_TX_SIZE+USB_EP2_RX_SIZE+\
.................... USB_EP3_TX_SIZE+USB_EP3_RX_SIZE+USB_EP4_TX_SIZE+\
.................... USB_EP4_RX_SIZE+USB_EP5_TX_SIZE+USB_EP5_RX_SIZE+\
.................... USB_EP6_TX_SIZE+USB_EP6_RX_SIZE+USB_EP7_TX_SIZE+\
.................... USB_EP7_RX_SIZE+USB_EP8_TX_SIZE+USB_EP8_RX_SIZE+\
.................... USB_EP9_TX_SIZE+USB_EP9_RX_SIZE+USB_EP10_TX_SIZE+\
.................... USB_EP10_RX_SIZE+USB_EP11_TX_SIZE+USB_EP11_RX_SIZE+\
.................... USB_EP12_TX_SIZE+USB_EP12_RX_SIZE+USB_EP13_TX_SIZE+\
.................... USB_EP13_RX_SIZE+USB_EP14_TX_SIZE+USB_EP14_RX_SIZE+\
.................... USB_EP15_TX_SIZE+USB_EP15_RX_SIZE)
....................
.................... #if ((USB_DATA_BUFFER_NEEDED+USB_CONTROL_REGISTER_SIZE) > USB_TOTAL_RAM_SPACE)
.................... #error You are trying to allocate more memory for endpoints than the PIC can handle
.................... #endif
....................
.................... #if (USB_LAST_DEFINED_ENDPOINT > USB_LAST_ALLOWED_ENDPOINT)
.................... #error You are trying ot use an invalid endpoint for this hardware!
.................... #endif
....................
.................... #define USB_DATA_BUFFER_LOCATION ((int16)USB_RAM_START+USB_CONTROL_REGISTER_SIZE)
....................
.................... typedef struct
.................... {
.................... int8 stat;
.................... int8 cnt;
.................... int16 addr;
.................... } STRUCT_BD;
....................
.................... struct
.................... {
.................... struct
.................... {
.................... STRUCT_BD out; //pc -> pic
.................... STRUCT_BD in; //pc <- pic
.................... } bd[USB_LAST_DEFINED_ENDPOINT+1];
.................... union
.................... {
.................... struct
.................... {
.................... int8 ep0_rx_buffer[USB_MAX_EP0_PACKET_LENGTH];
.................... int8 ep0_tx_buffer[USB_MAX_EP0_PACKET_LENGTH];
....................
.................... //these buffer definitions needed for CDC library
.................... #if USB_EP1_RX_SIZE
.................... int8 ep1_rx_buffer[USB_EP1_RX_SIZE];
.................... #endif
.................... #if USB_EP1_TX_SIZE
.................... int8 ep1_tx_buffer[USB_EP1_TX_SIZE];
.................... #endif
.................... #if USB_EP2_RX_SIZE
.................... int8 ep2_rx_buffer[USB_EP2_RX_SIZE];
.................... #endif
.................... #if USB_EP2_TX_SIZE
.................... int8 ep2_tx_buffer[USB_EP2_TX_SIZE];
.................... #endif
.................... };
.................... int8 general[USB_DATA_BUFFER_NEEDED];
.................... } buffer;
.................... } g_USBRAM;
.................... #locate g_USBRAM=USB_RAM_START
....................
.................... #define usb_ep0_rx_buffer g_USBRAM.buffer.ep0_rx_buffer
.................... #define usb_ep0_tx_buffer g_USBRAM.buffer.ep0_tx_buffer
....................
.................... //these buffer definitions needed for CDC library
.................... #define usb_ep1_rx_buffer g_USBRAM.buffer.ep1_rx_buffer
.................... #define usb_ep1_tx_buffer g_USBRAM.buffer.ep1_tx_buffer
.................... #define usb_ep2_rx_buffer g_USBRAM.buffer.ep2_rx_buffer
.................... #define usb_ep2_tx_buffer g_USBRAM.buffer.ep2_tx_buffer
....................
.................... #define debug_usb(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)
.................... //#define debug_usb printf
.................... //#define debug_putc putc_tbe
.................... #define debug_display_ram(x,y)
.................... /*
.................... void debug_display_ram(int8 len, int8 *ptr) {
.................... int8 max=16;
.................... debug_usb(debug_putc,"%U - ",len);
.................... if (max>len) {max=len;}
.................... while(max--) {
.................... debug_usb(debug_putc,"%X",*ptr);
.................... len--;
.................... ptr++;
.................... }
.................... if (len) {debug_usb(debug_putc,"...");}
.................... }
.................... */
....................
.................... //if you enable this it will keep a counter of the 6 possible errors the
.................... //pic can detect. disabling this will save you ROM, RAM and execution time.
.................... #if !defined(USB_USE_ERROR_COUNTER)
.................... #define USB_USE_ERROR_COUNTER FALSE
.................... #endif
....................
.................... #define USB_PING_PONG_MODE_OFF 0 //no ping pong
.................... #define USB_PING_PONG_MODE_E0 1 //ping pong endpoint 0 only
.................... #define USB_PING_PONG_MODE_ON 2 //ping pong all endpoints
....................
.................... //NOTE - PING PONG MODE IS NOT SUPPORTED BY CCS!
.................... #if !defined(USB_PING_PONG_MODE)
.................... #define USB_PING_PONG_MODE USB_PING_PONG_MODE_OFF
.................... #endif
....................
.................... #if USB_USE_ERROR_COUNTER
.................... int ERROR_COUNTER[6];
.................... #endif
....................
.................... //---pic18fxx5x memory locations
.................... #if defined(__USB_4550__) || defined(__USB_4450__)
.................... #byte UFRML = 0xF66
.................... #byte UFRMH = 0xF67
.................... #byte UIR = 0xF68
.................... #byte UIE = 0xF69
.................... #byte UEIR = 0xF6A
.................... #byte UEIE = 0xF6B
.................... #byte USTAT = 0xF6C
.................... #byte UCON = 0xF6D
.................... #byte UADDR = 0xF6E
.................... #byte UCFG = 0xF6F
.................... #define UEP0_LOC 0xF70
.................... #elif defined(__USB_K50__)
.................... #byte UFRML = 0xF5D
.................... #byte UFRMH = 0xF5E
.................... #byte UIR = 0xF62
.................... #byte UIE = 0xF60
.................... #byte UEIR = 0xF5F
.................... #byte UEIE = 0xF5B
.................... #byte USTAT = 0xF63
.................... #byte UCON = 0xF64
.................... #byte UADDR = 0xF5C
.................... #byte UCFG = 0xF61
.................... #define UEP0_LOC 0xF53
.................... #else
.................... #byte UFRML = 0xF60
.................... #byte UFRMH = 0xF61
.................... #byte UIR = 0xF62
.................... #byte UIE = 0xF5C
.................... #byte UEIR = 0xF63
.................... #byte UEIE = 0xF5D
.................... #byte USTAT = 0xF64
.................... #byte UCON = 0xF65
.................... #byte UADDR = 0xF5E
.................... #byte UCFG = 0xF5F
.................... #define UEP0_LOC 0xF4C
.................... #endif
....................
.................... int8 g_UEP[16];
.................... #locate g_UEP=UEP0_LOC
.................... #define UEP(x) g_UEP[x]
....................
.................... #BIT UIR_SOF = UIR.6
.................... #BIT UIR_STALL = UIR.5
.................... #BIT UIR_IDLE = UIR.4
.................... #BIT UIR_TRN = UIR.3
.................... #BIT UIR_ACTV = UIR.2
.................... #BIT UIR_UERR = UIR.1
.................... #BIT UIR_URST = UIR.0
....................
.................... #BIT UIE_SOF = UIE.6
.................... #BIT UIE_STALL = UIE.5
.................... #BIT UIE_IDLE = UIE.4
.................... #BIT UIE_TRN = UIE.3
.................... #BIT UIE_ACTV = UIE.2
.................... #BIT UIE_UERR = UIE.1
.................... #BIT UIE_URST = UIE.0
....................
.................... #bit UCON_PBRST=UCON.6
.................... #bit UCON_SE0=UCON.5
.................... #bit UCON_PKTDIS=UCON.4
.................... #bit UCON_USBEN=UCON.3
.................... #bit UCON_RESUME=UCON.2
.................... #bit UCON_SUSPND=UCON.1
....................
.................... #if (USB_PING_PONG_MODE==USB_PING_PONG_MODE_OFF)
.................... #define EP_BDxST_O(x) g_USBRAM.bd[x].out.stat
.................... #define EP_BDxCNT_O(x) g_USBRAM.bd[x].out.cnt
.................... #define EP_BDxADR_O(x) g_USBRAM.bd[x].out.addr
.................... #define EP_BDxST_I(x) g_USBRAM.bd[x].in.stat
.................... #define EP_BDxCNT_I(x) g_USBRAM.bd[x].in.cnt
.................... #define EP_BDxADR_I(x) g_USBRAM.bd[x].in.addr
.................... #else
.................... #error Right now this driver only supports no ping pong
.................... #endif
....................
.................... //See UEPn (0xF70-0xF7F)
.................... #define ENDPT_DISABLED 0x00 //endpoint not used
.................... #define ENDPT_IN_ONLY 0x02 //endpoint supports IN transactions only
.................... #define ENDPT_OUT_ONLY 0x04 //endpoint supports OUT transactions only
.................... #define ENDPT_CONTROL 0x06 //Supports IN, OUT and CONTROL transactions - Only use with EP0
.................... #define ENDPT_NON_CONTROL 0x0E //Supports both IN and OUT transactions
....................
.................... //Define the states that the USB interface can be in
.................... enum {USB_STATE_DETACHED=0, USB_STATE_ATTACHED=1, USB_STATE_POWERED=2, USB_STATE_DEFAULT=3,
.................... USB_STATE_ADDRESS=4, USB_STATE_CONFIGURED=5} usb_state=0;
....................
.................... //--BDendST has their PIDs upshifed 2
.................... #define USB_PIC_PID_IN 0x24 //device to host transactions
.................... #define USB_PIC_PID_OUT 0x04 //host to device transactions
.................... #define USB_PIC_PID_SETUP 0x34 //host to device setup transaction
....................
.................... #define USTAT_IN_E0 4
.................... #define USTAT_OUT_SETUP_E0 0
....................
.................... #define __USB_UIF_RESET 0x01
.................... #define __USB_UIF_ERROR 0x02
.................... #define __USB_UIF_ACTIVE 0x04
.................... #define __USB_UIF_TOKEN 0x08
.................... #define __USB_UIF_IDLE 0x10
.................... #define __USB_UIF_STALL 0x20
.................... #define __USB_UIF_SOF 0x40
....................
.................... #if USB_USE_ERROR_COUNTER
.................... #define STANDARD_INTS __USB_UIF_STALL|__USB_UIF_IDLE|__USB_UIF_TOKEN|__USB_UIF_ACTIVE|__USB_UIF_ERROR|__USB_UIF_RESET
.................... #else
.................... #define STANDARD_INTS __USB_UIF_STALL|__USB_UIF_IDLE|__USB_UIF_TOKEN|__USB_UIF_ACTIVE|__USB_UIF_RESET
.................... #endif
....................
.................... #define __USB_UCFG_UTEYE 0x80
.................... #if defined(__USB_4550__)
.................... #define __USB_UCFG_UOEMON 0x40
.................... #endif
.................... #define __USB_UCFG_UPUEN 0x10
.................... #define __USB_UCFG_UTRDIS 0x08
.................... #define __USB_UCFG_FSEN 0x04
....................
.................... #if USB_USE_FULL_SPEED
.................... #define __UCFG_VAL_ENABLED__ (__USB_UCFG_UPUEN | __USB_UCFG_FSEN | USB_PING_PONG_MODE)
.................... #else
.................... #define __UCFG_VAL_ENABLED__ (__USB_UCFG_UPUEN | USB_PING_PONG_MODE);
.................... #endif
....................
.................... #define __UCFG_VAL_DISABLED__ 0x08
....................
.................... int8 __setup_0_tx_size;
....................
.................... //interrupt handler, specific to PIC18Fxx5x peripheral only
.................... void usb_handle_interrupt();
.................... void usb_isr_rst();
.................... void usb_isr_uerr();
.................... void usb_isr_sof(void);
.................... void usb_isr_activity();
.................... void usb_isr_uidle();
.................... void usb_isr_tok_dne();
.................... void usb_isr_stall(void);
.................... void usb_init_ep0_setup(void);
....................
.................... //// BEGIN User Functions:
....................
.................... // see usb_hw_layer.h for more documentation
.................... int1 usb_kbhit(int8 en)
.................... {
.................... return((UEP(en)!=ENDPT_DISABLED)&&(!bit_test(EP_BDxST_O(en),7)));
.................... }
....................
.................... // see usb_hw_layer.h for documentation
.................... int1 usb_tbe(int8 en)
.................... {
.................... return((UEP(en)!=ENDPT_DISABLED)&&(!bit_test(EP_BDxST_I(en),7)));
*
0D06: CLRF 03
0D08: MOVLB 7
0D0A: MOVF x47,W
0D0C: ADDLW 70
0D0E: MOVWF FE9
0D10: MOVLW 0F
0D12: ADDWFC 03,W
0D14: MOVWF FEA
0D16: MOVF FEF,F
0D18: BZ 0D50
0D1A: CLRF x49
0D1C: MOVFF 747,748
0D20: CLRF x4B
0D22: MOVLW 08
0D24: MOVWF x4A
0D26: MOVLB 0
0D28: CALL 02BA
0D2C: MOVFF 02,749
0D30: MOVFF 01,748
0D34: MOVLW 04
0D36: MOVLB 7
0D38: ADDWF x48,F
0D3A: MOVLW 00
0D3C: ADDWFC x49,F
0D3E: MOVFF 748,FE9
0D42: MOVLW 04
0D44: ADDWF x49,W
0D46: MOVWF FEA
0D48: MOVFF FEF,748
0D4C: BTFSS x48.7
0D4E: BRA 0D54
0D50: MOVLW 00
0D52: BRA 0D56
0D54: MOVLW 01
0D56: MOVWF 01
.................... }
0D58: MOVLB 0
0D5A: RETLW 00
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_detach(void)
.................... {
.................... UCON = 0; //disable USB hardware
*
12F4: CLRF F6D
.................... UIE = 0; //disable USB interrupts
12F6: CLRF F69
.................... UCFG = __UCFG_VAL_DISABLED__;
12F8: MOVLW 08
12FA: MOVWF F6F
....................
.................... // set D+/D- to inputs
.................... #if defined(__USB_87J50__)
.................... set_tris_f(get_tris_f() | 0x18);
.................... #elif defined(__USB_K50__)
.................... set_tris_a(get_tris_a() | 0x3);
.................... #else
.................... set_tris_c(get_tris_c() | 0x30);
12FC: MOVF F94,W
12FE: IORLW 30
1300: MOVLB 6
1302: MOVWF F94
.................... #endif
....................
.................... usb_state = USB_STATE_DETACHED;
1304: CLRF 24
1306: CLRF 18
1308: BTFSC FF2.7
130A: BSF 18.7
130C: BCF FF2.7
....................
.................... usb_token_reset(); //clear the chapter9 stack
130E: MOVLB 0
1310: CALL 037E
1314: BTFSC 18.7
1316: BSF FF2.7
.................... //__usb_kbhit_status=0;
.................... }
1318: GOTO 131E (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_attach(void)
.................... {
*
1322: CLRF 18
1324: BTFSC FF2.7
1326: BSF 18.7
1328: BCF FF2.7
.................... usb_token_reset();
132A: CALL 037E
132E: BTFSC 18.7
1330: BSF FF2.7
.................... UCON = 0;
1332: CLRF F6D
.................... UCFG = __UCFG_VAL_ENABLED__;
1334: MOVLW 14
1336: MOVWF F6F
.................... UIE = 0; // Mask all USB interrupts
1338: CLRF F69
.................... UCON_USBEN = 1; // Enable module & attach to bus
133A: BSF F6D.3
.................... usb_state = USB_STATE_ATTACHED; // Defined in usbmmap.c & .h
133C: MOVLW 01
133E: MOVWF 24
.................... }
1340: GOTO 134A (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_init_cs(void)
.................... {
.................... usb_detach();
*
131C: BRA 12F4
.................... }
131E: GOTO 136A (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_task(void)
.................... {
.................... if (usb_attached())
.................... {
.................... if (UCON_USBEN==0)
*
1344: BTFSC F6D.3
1346: BRA 134A
.................... {
.................... debug_usb(debug_putc, "\r\n\nUSB TASK: ATTACH");
.................... usb_attach();
1348: BRA 1322
.................... }
.................... }
.................... else
.................... {
.................... if (UCON_USBEN==1)
.................... {
.................... debug_usb(debug_putc, "\r\n\nUSB TASK: DE-ATTACH");
.................... usb_detach();
.................... }
.................... }
....................
.................... if ((usb_state == USB_STATE_ATTACHED)&&(!UCON_SE0))
134A: DECFSZ 24,W
134C: BRA 1364
134E: BTFSC F6D.5
1350: BRA 1364
.................... {
.................... UIR=0;
1352: CLRF F68
.................... UIE=0;
1354: CLRF F69
.................... enable_interrupts(INT_USB);
1356: BSF FA0.5
.................... enable_interrupts(GLOBAL);
1358: MOVLW C0
135A: IORWF FF2,F
.................... UIE=__USB_UIF_IDLE | __USB_UIF_RESET; //enable IDLE and RESET USB ISR
135C: MOVLW 11
135E: MOVWF F69
.................... usb_state=USB_STATE_POWERED;
1360: MOVLW 02
1362: MOVWF 24
.................... debug_usb(debug_putc, "\r\n\nUSB TASK: POWERED");
.................... }
.................... }
1364: GOTO 136C (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_init(void)
.................... {
.................... usb_init_cs();
1368: BRA 131C
....................
.................... do
.................... {
.................... usb_task();
136A: BRA 1344
.................... } while (usb_state != USB_STATE_POWERED);
136C: MOVF 24,W
136E: SUBLW 02
1370: BNZ 136A
.................... }
1372: GOTO 1FE4 (RETURN)
....................
....................
.................... // see pic18_usb.h for documentation
.................... int1 usb_flush_in(int8 endpoint, int16 len, USB_DTS_BIT tgl)
.................... {
.................... int8 i;
....................
.................... debug_usb(debug_putc,"\r\nPUT %X %U %LU",endpoint, tgl, len);
....................
.................... if (usb_tbe(endpoint))
*
0D5C: MOVFF 742,747
0D60: RCALL 0D06
0D62: MOVF 01,F
0D64: BTFSC FD8.2
0D66: BRA 0E74
.................... {
.................... EP_BDxCNT_I(endpoint)=len;
0D68: MOVLB 7
0D6A: CLRF x49
0D6C: MOVFF 742,748
0D70: CLRF x4B
0D72: MOVLW 08
0D74: MOVWF x4A
0D76: MOVLB 0
0D78: CALL 02BA
0D7C: MOVFF 02,748
0D80: MOVFF 01,747
0D84: MOVLW 04
0D86: MOVLB 7
0D88: ADDWF x47,F
0D8A: MOVLW 00
0D8C: ADDWFC x48,F
0D8E: MOVLW 01
0D90: ADDWF x47,W
0D92: MOVWF 01
0D94: MOVLW 00
0D96: ADDWFC x48,W
0D98: MOVWF 03
0D9A: MOVFF 01,FE9
0D9E: MOVLW 04
0DA0: ADDWF 03,W
0DA2: MOVWF FEA
0DA4: MOVFF 743,FEF
....................
.................... debug_display_ram(len, EP_BDxADR_I(endpoint));
....................
.................... #if USB_IGNORE_TX_DTS
.................... i=0x80;
.................... #else
.................... if (tgl == USB_DTS_TOGGLE)
0DA8: MOVF x45,W
0DAA: SUBLW 02
0DAC: BNZ 0DEE
.................... {
.................... i = EP_BDxST_I(endpoint);
0DAE: CLRF x49
0DB0: MOVFF 742,748
0DB4: CLRF x4B
0DB6: MOVLW 08
0DB8: MOVWF x4A
0DBA: MOVLB 0
0DBC: CALL 02BA
0DC0: MOVFF 02,748
0DC4: MOVFF 01,747
0DC8: MOVLW 04
0DCA: MOVLB 7
0DCC: ADDWF x47,F
0DCE: MOVLW 00
0DD0: ADDWFC x48,F
0DD2: MOVFF 747,FE9
0DD6: MOVLW 04
0DD8: ADDWF x48,W
0DDA: MOVWF FEA
0DDC: MOVFF FEF,746
.................... if (bit_test(i,6))
0DE0: BTFSS x46.6
0DE2: BRA 0DE8
.................... tgl = USB_DTS_DATA0; //was DATA1, goto DATA0
0DE4: CLRF x45
.................... else
0DE6: BRA 0DEC
.................... tgl = USB_DTS_DATA1; //was DATA0, goto DATA1
0DE8: MOVLW 01
0DEA: MOVWF x45
.................... }
.................... else if (tgl == USB_DTS_USERX)
0DEC: BRA 0E22
0DEE: MOVF x45,W
0DF0: SUBLW 04
0DF2: BNZ 0E22
.................... {
.................... i = EP_BDxST_O(endpoint);
0DF4: CLRF x49
0DF6: MOVFF 742,748
0DFA: CLRF x4B
0DFC: MOVLW 08
0DFE: MOVWF x4A
0E00: MOVLB 0
0E02: CALL 02BA
0E06: MOVLB 7
0E08: MOVFF 01,FE9
0E0C: MOVLW 04
0E0E: ADDWF 02,W
0E10: MOVWF FEA
0E12: MOVFF FEF,746
.................... if (bit_test(i,6))
0E16: BTFSS x46.6
0E18: BRA 0E20
.................... tgl = USB_DTS_DATA1;
0E1A: MOVLW 01
0E1C: MOVWF x45
.................... else
0E1E: BRA 0E22
.................... tgl = USB_DTS_DATA0;
0E20: CLRF x45
.................... }
.................... if (tgl == USB_DTS_DATA1)
0E22: DECFSZ x45,W
0E24: BRA 0E2C
.................... i=0xC8; //DATA1, UOWN
0E26: MOVLW C8
0E28: MOVWF x46
.................... else //if (tgl == USB_DTS_DATA0)
0E2A: BRA 0E30
.................... i=0x88; //DATA0, UOWN
0E2C: MOVLW 88
0E2E: MOVWF x46
.................... #endif
....................
.................... //set BC8 and BC9
.................... if (bit_test(len,8)) {bit_set(i,0);}
0E30: BTFSC x44.0
0E32: BSF x46.0
.................... if (bit_test(len,9)) {bit_set(i,1);}
0E34: BTFSC x44.1
0E36: BSF x46.1
....................
.................... debug_usb(debug_putc, " %X", i);
....................
.................... EP_BDxST_I(endpoint) = i;//save changes
0E38: CLRF x49
0E3A: MOVFF 742,748
0E3E: CLRF x4B
0E40: MOVLW 08
0E42: MOVWF x4A
0E44: MOVLB 0
0E46: CALL 02BA
0E4A: MOVFF 02,748
0E4E: MOVFF 01,747
0E52: MOVLW 04
0E54: MOVLB 7
0E56: ADDWF x47,F
0E58: MOVLW 00
0E5A: ADDWFC x48,F
0E5C: MOVFF 747,FE9
0E60: MOVLW 04
0E62: ADDWF x48,W
0E64: MOVWF FEA
0E66: MOVFF 746,FEF
....................
.................... //putc('!');
....................
.................... return(1);
0E6A: MOVLW 01
0E6C: MOVWF 01
0E6E: BRA 0E7A
.................... }
.................... else
0E70: BRA 0E72
0E72: MOVLB 0
.................... {
.................... //putc('_');
.................... debug_usb(debug_putc,"\r\nPUT ERR");
.................... }
.................... return(0);
0E74: MOVLW 00
0E76: MOVWF 01
0E78: MOVLB 7
.................... }
0E7A: MOVLB 0
0E7C: RETLW 00
....................
.................... // see usb_hw_layer.h for documentation
.................... int1 usb_put_packet(int8 endpoint, int8 * ptr, int16 len, USB_DTS_BIT tgl)
.................... {
.................... int8 * buff_add;
....................
.................... if (usb_tbe(endpoint))
*
0F88: MOVFF 73A,747
0F8C: RCALL 0D06
0F8E: MOVF 01,F
0F90: BZ 1026
.................... {
.................... buff_add = EP_BDxADR_I(endpoint);
0F92: MOVLB 7
0F94: CLRF x49
0F96: MOVFF 73A,748
0F9A: CLRF x4B
0F9C: MOVLW 08
0F9E: MOVWF x4A
0FA0: MOVLB 0
0FA2: CALL 02BA
0FA6: MOVFF 02,743
0FAA: MOVFF 01,742
0FAE: MOVLW 04
0FB0: MOVLB 7
0FB2: ADDWF x42,F
0FB4: MOVLW 00
0FB6: ADDWFC x43,F
0FB8: MOVLW 02
0FBA: ADDWF x42,W
0FBC: MOVWF 01
0FBE: MOVLW 00
0FC0: ADDWFC x43,W
0FC2: MOVWF 03
0FC4: MOVFF 01,FE9
0FC8: MOVLW 04
0FCA: ADDWF 03,W
0FCC: MOVWF FEA
0FCE: MOVFF FEC,03
0FD2: MOVF FED,F
0FD4: MOVFF FEF,740
0FD8: MOVFF 03,741
.................... memcpy(buff_add, ptr, len);
0FDC: MOVFF 741,FEA
0FE0: MOVFF 740,FE9
0FE4: MOVFF 73C,FE2
0FE8: MOVFF 73B,FE1
0FEC: MOVFF 73E,02
0FF0: MOVFF 73D,01
0FF4: MOVF 01,F
0FF6: BZ 0FFC
0FF8: INCF 02,F
0FFA: BRA 1000
0FFC: MOVF 02,F
0FFE: BZ 100C
1000: MOVFF FE6,FEE
1004: DECFSZ 01,F
1006: BRA 1000
1008: DECFSZ 02,F
100A: BRA 1000
....................
.................... return(usb_flush_in(endpoint, len, tgl));
100C: MOVFF 73A,742
1010: MOVFF 73E,744
1014: MOVFF 73D,743
1018: MOVFF 73F,745
101C: MOVLB 0
101E: RCALL 0D5C
1020: MOVF 01,W
1022: BRA 102A
.................... }
.................... else
1024: BRA 1026
.................... {
.................... //putc('-');
.................... //printf("%X", EP_BDxST_I(endpoint));
.................... debug_usb(debug_putc,"\r\nPUT ERR");
.................... }
....................
.................... return(0);
1026: MOVLW 00
1028: MOVWF 01
.................... }
102A: RETLW 00
....................
.................... // see pic18_usb.h for documentation
.................... void usb_flush_out(int8 endpoint, USB_DTS_BIT tgl)
.................... {
.................... int8 i;
.................... int16 len;
....................
.................... #if USB_IGNORE_RX_DTS
.................... if (tgl == USB_DTS_STALL)
.................... {
.................... debug_usb(debug_putc, '*');
.................... EP_BDxCNT_O(endpoint) = 0x84;
.................... EP_BDxST_I(endpoint) = 0x84;
.................... return;
.................... }
.................... else
.................... i=0x80;
.................... #else
.................... i = EP_BDxST_O(endpoint);
*
0BEA: MOVLB 7
0BEC: CLRF x49
0BEE: MOVFF 6FD,748
0BF2: CLRF x4B
0BF4: MOVLW 08
0BF6: MOVWF x4A
0BF8: MOVLB 0
0BFA: CALL 02BA
0BFE: MOVLB 7
0C00: MOVFF 01,FE9
0C04: MOVLW 04
0C06: ADDWF 02,W
0C08: MOVWF FEA
0C0A: MOVFF FEF,6FF
0C0E: MOVLB 6
.................... if (tgl == USB_DTS_TOGGLE)
0C10: MOVF xFE,W
0C12: SUBLW 02
0C14: BNZ 0C22
.................... {
.................... if (bit_test(i,6))
0C16: BTFSS xFF.6
0C18: BRA 0C1E
.................... tgl = USB_DTS_DATA0; //was DATA1, goto DATA0
0C1A: CLRF xFE
.................... else
0C1C: BRA 0C22
.................... tgl = USB_DTS_DATA1; //was DATA0, goto DATA1
0C1E: MOVLW 01
0C20: MOVWF xFE
.................... }
.................... if (tgl == USB_DTS_STALL)
0C22: MOVF xFE,W
0C24: SUBLW 03
0C26: BNZ 0C64
.................... {
.................... i = 0x84;
0C28: MOVLW 84
0C2A: MOVWF xFF
.................... EP_BDxST_I(endpoint) = 0x84; //stall both in and out endpoints
0C2C: MOVLB 7
0C2E: CLRF x49
0C30: MOVFF 6FD,748
0C34: CLRF x4B
0C36: MOVLW 08
0C38: MOVWF x4A
0C3A: MOVLB 0
0C3C: CALL 02BA
0C40: MOVFF 02,703
0C44: MOVFF 01,702
0C48: MOVLW 04
0C4A: MOVLB 7
0C4C: ADDWF x02,F
0C4E: MOVLW 00
0C50: ADDWFC x03,F
0C52: MOVFF 702,FE9
0C56: MOVLW 04
0C58: ADDWF x03,W
0C5A: MOVWF FEA
0C5C: MOVLW 84
0C5E: MOVWF FEF
.................... }
.................... else if (tgl == USB_DTS_DATA1)
0C60: BRA 0C74
0C62: MOVLB 6
0C64: DECFSZ xFE,W
0C66: BRA 0C6E
.................... i = 0xC8; //DATA1, UOWN
0C68: MOVLW C8
0C6A: MOVWF xFF
.................... else //if (tgl == USB_DTS_DATA0)
0C6C: BRA 0C72
.................... i = 0x88; //DATA0, UOWN
0C6E: MOVLW 88
0C70: MOVWF xFF
0C72: MOVLB 7
.................... #endif
....................
.................... //bit_clear(__usb_kbhit_status,endpoint);
....................
.................... len = usb_ep_rx_size[endpoint];
0C74: BCF FD8.0
0C76: MOVLB 6
0C78: RLCF xFD,W
0C7A: CLRF 03
0C7C: MOVFF FF2,702
0C80: BCF FF2.7
0C82: MOVLB 0
0C84: CALL 011A
0C88: TBLRD*+
0C8A: MOVFF FF5,03
0C8E: MOVLB 7
0C90: BTFSC x02.7
0C92: BSF FF2.7
0C94: MOVWF x00
0C96: MOVFF 03,701
.................... EP_BDxCNT_O(endpoint) = len;
0C9A: CLRF x49
0C9C: MOVFF 6FD,748
0CA0: CLRF x4B
0CA2: MOVLW 08
0CA4: MOVWF x4A
0CA6: MOVLB 0
0CA8: CALL 02BA
0CAC: MOVFF 01,702
0CB0: MOVLW 01
0CB2: MOVLB 7
0CB4: ADDWF 01,W
0CB6: MOVWF 01
0CB8: MOVLW 00
0CBA: ADDWFC 02,W
0CBC: MOVWF 03
0CBE: MOVFF 01,FE9
0CC2: MOVLW 04
0CC4: ADDWF 03,W
0CC6: MOVWF FEA
0CC8: MOVFF 700,FEF
.................... if (bit_test(len,8)) {bit_set(i,0);}
0CCC: BTFSS x01.0
0CCE: BRA 0CD6
0CD0: MOVLB 6
0CD2: BSF xFF.0
0CD4: MOVLB 7
.................... if (bit_test(len,9)) {bit_set(i,1);}
0CD6: BTFSS x01.1
0CD8: BRA 0CE0
0CDA: MOVLB 6
0CDC: BSF xFF.1
0CDE: MOVLB 7
....................
.................... EP_BDxST_O(endpoint) = i;
0CE0: CLRF x49
0CE2: MOVFF 6FD,748
0CE6: CLRF x4B
0CE8: MOVLW 08
0CEA: MOVWF x4A
0CEC: MOVLB 0
0CEE: CALL 02BA
0CF2: MOVLB 7
0CF4: MOVFF 01,FE9
0CF8: MOVLW 04
0CFA: ADDWF 02,W
0CFC: MOVWF FEA
0CFE: MOVFF 6FF,FEF
.................... }
0D02: MOVLB 0
0D04: RETLW 00
....................
.................... // see pic18_usb.h for documentation
.................... int16 usb_rx_packet_size(int8 endpoint)
.................... {
.................... return(EP_BDxCNT_O(endpoint));
*
0EE6: MOVLB 7
0EE8: CLRF x49
0EEA: MOVFF 6FE,748
0EEE: CLRF x4B
0EF0: MOVLW 08
0EF2: MOVWF x4A
0EF4: MOVLB 0
0EF6: CALL 02BA
0EFA: MOVFF 02,700
0EFE: MOVFF 01,6FF
0F02: MOVLW 01
0F04: MOVLB 6
0F06: ADDWF 01,W
0F08: MOVWF 01
0F0A: MOVLW 00
0F0C: MOVLB 7
0F0E: ADDWFC 02,W
0F10: MOVWF 03
0F12: MOVFF 01,FE9
0F16: MOVLW 04
0F18: ADDWF 03,W
0F1A: MOVWF FEA
0F1C: CLRF 03
0F1E: MOVFF FEF,01
0F22: MOVFF 03,02
.................... }
0F26: MOVLB 0
0F28: GOTO 0F3A (RETURN)
....................
.................... /// END User Functions
....................
....................
.................... /// BEGIN Hardware layer functions required by USB.
....................
.................... /*****************************************************************************
.................... /* usb_get_packet_buffer(endpoint, *ptr, max)
.................... /*
.................... /* Input: endpoint - endpoint to get data from
.................... /* ptr - where to save data to local PIC RAM
.................... /* max - max amount of data to receive from buffer
.................... /*
.................... /* Output: the amount of data taken from the buffer.
.................... /*
.................... /* Summary: Gets a packet of data from the USB buffer and puts into local PIC
.................... /* RAM.
.................... /* Does not mark the endpoint as ready for more data. Once you are
.................... /* done with data, call usb_flush_out() to mark the endpoint ready
.................... /* to receive more data.
.................... /*
.................... /*****************************************************************************/
.................... static int16 usb_get_packet_buffer(int8 endpoint, int8 *ptr, int16 max)
.................... {
.................... int8 * al;
.................... int8 st;
.................... int16 i;
....................
.................... al = EP_BDxADR_O(endpoint);
.................... i = EP_BDxCNT_O(endpoint);
.................... st = EP_BDxST_O(endpoint);
....................
.................... //read BC8 and BC9
.................... if (bit_test(st,0)) {bit_set(i,8);}
.................... if (bit_test(st,1)) {bit_set(i,9);}
....................
.................... if (i < max) {max = i;}
....................
.................... memcpy(ptr, al ,max);
....................
.................... return(max);
.................... }
....................
.................... // see usb_hw_layer.h for documentation
.................... unsigned int16 usb_get_packet(int8 endpoint, int8 * ptr, unsigned int16 max)
.................... {
.................... max = usb_get_packet_buffer(endpoint, ptr, max);
.................... usb_flush_out(endpoint, USB_DTS_TOGGLE);
....................
.................... return(max);
.................... }
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_stall_ep(int8 endpoint)
.................... {
.................... int1 direction;
....................
.................... direction = bit_test(endpoint,7);
*
09B4: MOVLB 6
09B6: BCF xFE.0
09B8: BTFSC xFD.7
09BA: BSF xFE.0
.................... endpoint &= 0x7F;
09BC: BCF xFD.7
....................
.................... if (direction)
09BE: BTFSS xFE.0
09C0: BRA 09FC
.................... {
.................... EP_BDxST_I(endpoint) = 0x84;
09C2: MOVLB 7
09C4: CLRF x49
09C6: MOVFF 6FD,748
09CA: CLRF x4B
09CC: MOVLW 08
09CE: MOVWF x4A
09D0: MOVLB 0
09D2: RCALL 02BA
09D4: MOVFF 02,700
09D8: MOVFF 01,6FF
09DC: MOVLW 04
09DE: MOVLB 6
09E0: ADDWF xFF,F
09E2: MOVLW 00
09E4: MOVLB 7
09E6: ADDWFC x00,F
09E8: MOVFF 6FF,FE9
09EC: MOVLW 04
09EE: MOVLB 7
09F0: ADDWF x00,W
09F2: MOVWF FEA
09F4: MOVLW 84
09F6: MOVWF FEF
.................... }
.................... else
09F8: BRA 0A1E
09FA: MOVLB 6
.................... {
.................... EP_BDxST_O(endpoint) = 0x84;
09FC: MOVLB 7
09FE: CLRF x49
0A00: MOVFF 6FD,748
0A04: CLRF x4B
0A06: MOVLW 08
0A08: MOVWF x4A
0A0A: MOVLB 0
0A0C: RCALL 02BA
0A0E: MOVFF 01,FE9
0A12: MOVLW 04
0A14: MOVLB 7
0A16: ADDWF 02,W
0A18: MOVWF FEA
0A1A: MOVLW 84
0A1C: MOVWF FEF
.................... }
.................... }
0A1E: MOVLB 0
0A20: GOTO 0AD6 (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_unstall_ep(int8 endpoint)
.................... {
.................... int1 direction;
....................
.................... direction = bit_test(endpoint,7);
*
0946: MOVLB 6
0948: BCF xFE.0
094A: BTFSC xFD.7
094C: BSF xFE.0
.................... endpoint &= 0x7F;
094E: BCF xFD.7
....................
.................... if (direction)
0950: BTFSS xFE.0
0952: BRA 098E
.................... {
.................... #if USB_IGNORE_RX_DTS
.................... EP_BDxST_I(endpoint) = 0x80;
.................... #else
.................... EP_BDxST_I(endpoint) = 0x88;
0954: MOVLB 7
0956: CLRF x49
0958: MOVFF 6FD,748
095C: CLRF x4B
095E: MOVLW 08
0960: MOVWF x4A
0962: MOVLB 0
0964: RCALL 02BA
0966: MOVFF 02,700
096A: MOVFF 01,6FF
096E: MOVLW 04
0970: MOVLB 6
0972: ADDWF xFF,F
0974: MOVLW 00
0976: MOVLB 7
0978: ADDWFC x00,F
097A: MOVFF 6FF,FE9
097E: MOVLW 04
0980: MOVLB 7
0982: ADDWF x00,W
0984: MOVWF FEA
0986: MOVLW 88
0988: MOVWF FEF
.................... #endif
.................... }
.................... else
098A: BRA 09AE
098C: MOVLB 6
.................... {
.................... EP_BDxST_O(endpoint) = 0x00;
098E: MOVLB 7
0990: CLRF x49
0992: MOVFF 6FD,748
0996: CLRF x4B
0998: MOVLW 08
099A: MOVWF x4A
099C: MOVLB 0
099E: RCALL 02BA
09A0: MOVFF 01,FE9
09A4: MOVLW 04
09A6: MOVLB 7
09A8: ADDWF 02,W
09AA: MOVWF FEA
09AC: CLRF FEF
.................... }
.................... }
09AE: MOVLB 0
09B0: GOTO 0AC6 (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... int1 usb_endpoint_stalled(int8 endpoint)
.................... {
.................... int1 direction;
.................... int8 st;
....................
.................... direction = bit_test(endpoint,7);
*
0A24: MOVLB 6
0A26: BCF xFE.0
0A28: BTFSC xFD.7
0A2A: BSF xFE.0
.................... endpoint &= 0x7F;
0A2C: BCF xFD.7
....................
.................... if (direction)
0A2E: BTFSS xFE.0
0A30: BRA 0A68
.................... {
.................... st=EP_BDxST_I(endpoint);
0A32: MOVLB 7
0A34: CLRF x49
0A36: MOVFF 6FD,748
0A3A: CLRF x4B
0A3C: MOVLW 08
0A3E: MOVWF x4A
0A40: MOVLB 0
0A42: RCALL 02BA
0A44: MOVFF 02,701
0A48: MOVFF 01,700
0A4C: MOVLW 04
0A4E: MOVLB 7
0A50: ADDWF x00,F
0A52: MOVLW 00
0A54: ADDWFC x01,F
0A56: MOVFF 700,FE9
0A5A: MOVLW 04
0A5C: ADDWF x01,W
0A5E: MOVWF FEA
0A60: MOVFF FEF,6FF
0A64: MOVLB 6
.................... }
.................... else
0A66: BRA 0A8C
.................... {
.................... st=EP_BDxST_O(endpoint);
0A68: MOVLB 7
0A6A: CLRF x49
0A6C: MOVFF 6FD,748
0A70: CLRF x4B
0A72: MOVLW 08
0A74: MOVWF x4A
0A76: MOVLB 0
0A78: RCALL 02BA
0A7A: MOVLB 7
0A7C: MOVFF 01,FE9
0A80: MOVLW 04
0A82: ADDWF 02,W
0A84: MOVWF FEA
0A86: MOVFF FEF,6FF
0A8A: MOVLB 6
.................... }
....................
.................... return(bit_test(st,7) && bit_test(st,2));
0A8C: BTFSS xFF.7
0A8E: BRA 0A94
0A90: BTFSC xFF.2
0A92: BRA 0A98
0A94: MOVLW 00
0A96: BRA 0A9A
0A98: MOVLW 01
0A9A: MOVWF 01
.................... }
0A9C: MOVLB 0
0A9E: GOTO 0AEE (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_set_address(int8 address)
.................... {
.................... UADDR = address;
*
0F60: MOVFF 6FE,F6E
....................
.................... if (address)
0F64: MOVLB 6
0F66: MOVF xFE,F
0F68: BZ 0F70
.................... {
.................... usb_state = USB_STATE_ADDRESS;
0F6A: MOVLW 04
0F6C: MOVWF 24
.................... }
.................... else
0F6E: BRA 0F74
.................... {
.................... usb_state = USB_STATE_POWERED;
0F70: MOVLW 02
0F72: MOVWF 24
.................... }
.................... }
0F74: MOVLB 0
0F76: GOTO 0F84 (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_set_configured(int8 config)
.................... {
.................... int8 en;
.................... int16 addy;
.................... int8 new_uep;
.................... int16 len;
.................... int8 i;
....................
.................... if (config == 0)
*
055C: MOVLB 6
055E: MOVF xFD,F
0560: BNZ 056E
.................... {
.................... // if config=0 then set addressed state
.................... usb_state = USB_STATE_ADDRESS;
0562: MOVLW 04
0564: MOVWF 24
.................... usb_disable_endpoints();
0566: MOVLB 0
0568: RCALL 033E
.................... }
.................... else
056A: BRA 0786
056C: MOVLB 6
.................... {
.................... // else set configed state
.................... usb_state = USB_STATE_CONFIGURED;
056E: MOVLW 05
0570: MOVWF 24
.................... addy = (int16)USB_DATA_BUFFER_LOCATION+(2*USB_MAX_EP0_PACKET_LENGTH);
0572: MOVLW 04
0574: MOVLB 7
0576: MOVWF x00
0578: MOVLW 98
057A: MOVLB 6
057C: MOVWF xFF
.................... for (en=1; en<16; en++)
057E: MOVLW 01
0580: MOVWF xFE
0582: MOVF xFE,W
0584: SUBLW 0F
0586: BTFSS FD8.0
0588: BRA 0786
.................... {
.................... // enable and config endpoints based upon user configuration
.................... usb_disable_endpoint(en);
058A: MOVFF 6FE,706
058E: MOVLB 0
0590: RCALL 02DC
.................... new_uep = 0;
0592: MOVLB 7
0594: CLRF x01
.................... if (usb_ep_rx_type[en] != USB_ENABLE_DISABLED)
0596: CLRF 03
0598: MOVLB 6
059A: MOVF xFE,W
059C: MOVFF FF2,705
05A0: BCF FF2.7
05A2: MOVLB 0
05A4: RCALL 00CA
05A6: MOVLB 7
05A8: BTFSC x05.7
05AA: BSF FF2.7
05AC: SUBLW FF
05AE: BZ 0692
.................... {
.................... new_uep = 0x04;
05B0: MOVLW 04
05B2: MOVWF x01
.................... len = usb_ep_rx_size[en];
05B4: BCF FD8.0
05B6: MOVLB 6
05B8: RLCF xFE,W
05BA: CLRF 03
05BC: MOVFF FF2,705
05C0: BCF FF2.7
05C2: MOVLB 0
05C4: RCALL 011A
05C6: TBLRD*+
05C8: MOVFF FF5,03
05CC: MOVLB 7
05CE: BTFSC x05.7
05D0: BSF FF2.7
05D2: MOVWF x02
05D4: MOVFF 03,703
.................... EP_BDxCNT_O(en) = len;
05D8: CLRF x49
05DA: MOVFF 6FE,748
05DE: CLRF x4B
05E0: MOVLW 08
05E2: MOVWF x4A
05E4: MOVLB 0
05E6: RCALL 02BA
05E8: MOVFF 01,705
05EC: MOVLW 01
05EE: MOVLB 7
05F0: ADDWF 01,W
05F2: MOVWF 01
05F4: MOVLW 00
05F6: ADDWFC 02,W
05F8: MOVWF 03
05FA: MOVFF 01,FE9
05FE: MOVLW 04
0600: ADDWF 03,W
0602: MOVWF FEA
0604: MOVFF 702,FEF
.................... EP_BDxADR_O(en) = addy;
0608: CLRF x49
060A: MOVFF 6FE,748
060E: CLRF x4B
0610: MOVLW 08
0612: MOVWF x4A
0614: MOVLB 0
0616: RCALL 02BA
0618: MOVFF 01,705
061C: MOVLW 02
061E: MOVLB 7
0620: ADDWF 01,W
0622: MOVWF 01
0624: MOVLW 00
0626: ADDWFC 02,W
0628: MOVWF 03
062A: MOVFF 01,FE9
062E: MOVLW 04
0630: ADDWF 03,W
0632: MOVWF FEA
0634: MOVFF 700,FEC
0638: MOVF FED,F
063A: MOVFF 6FF,FEF
.................... addy += usb_ep_rx_size[en];
063E: BCF FD8.0
0640: MOVLB 6
0642: RLCF xFE,W
0644: CLRF 03
0646: MOVFF FF2,705
064A: BCF FF2.7
064C: MOVLB 0
064E: RCALL 011A
0650: TBLRD*+
0652: MOVFF FF5,03
0656: MOVLB 7
0658: BTFSC x05.7
065A: BSF FF2.7
065C: MOVLB 6
065E: ADDWF xFF,F
0660: MOVF 03,W
0662: MOVLB 7
0664: ADDWFC x00,F
.................... #if USB_IGNORE_RX_DTS
.................... i = 0x80;
.................... #else
.................... i = 0x88;
0666: MOVLW 88
0668: MOVWF x04
.................... #endif
.................... if (bit_test(len,8)) {bit_set(i,0);}
066A: BTFSC x03.0
066C: BSF x04.0
.................... if (bit_test(len,9)) {bit_set(i,1);}
066E: BTFSC x03.1
0670: BSF x04.1
.................... EP_BDxST_O(en) = i;
0672: CLRF x49
0674: MOVFF 6FE,748
0678: CLRF x4B
067A: MOVLW 08
067C: MOVWF x4A
067E: MOVLB 0
0680: RCALL 02BA
0682: MOVLB 7
0684: MOVFF 01,FE9
0688: MOVLW 04
068A: ADDWF 02,W
068C: MOVWF FEA
068E: MOVFF 704,FEF
.................... }
.................... if (usb_ep_tx_type[en] != USB_ENABLE_DISABLED)
0692: CLRF 03
0694: MOVLB 6
0696: MOVF xFE,W
0698: MOVFF FF2,705
069C: BCF FF2.7
069E: MOVLB 0
06A0: RCALL 00AA
06A2: MOVLB 7
06A4: BTFSC x05.7
06A6: BSF FF2.7
06A8: SUBLW FF
06AA: BZ 0748
.................... {
.................... new_uep |= 0x02;
06AC: BSF x01.1
.................... EP_BDxADR_I(en) = addy;
06AE: CLRF x49
06B0: MOVFF 6FE,748
06B4: CLRF x4B
06B6: MOVLW 08
06B8: MOVWF x4A
06BA: MOVLB 0
06BC: RCALL 02BA
06BE: MOVFF 02,706
06C2: MOVFF 01,705
06C6: MOVLW 04
06C8: MOVLB 7
06CA: ADDWF x05,F
06CC: MOVLW 00
06CE: ADDWFC x06,F
06D0: MOVLW 02
06D2: ADDWF x05,W
06D4: MOVWF 01
06D6: MOVLW 00
06D8: ADDWFC x06,W
06DA: MOVWF 03
06DC: MOVFF 01,FE9
06E0: MOVLW 04
06E2: ADDWF 03,W
06E4: MOVWF FEA
06E6: MOVFF 700,FEC
06EA: MOVF FED,F
06EC: MOVFF 6FF,FEF
.................... addy += usb_ep_tx_size[en];
06F0: BCF FD8.0
06F2: MOVLB 6
06F4: RLCF xFE,W
06F6: CLRF 03
06F8: MOVFF FF2,705
06FC: BCF FF2.7
06FE: MOVLB 0
0700: RCALL 00EA
0702: TBLRD*+
0704: MOVFF FF5,03
0708: MOVLB 7
070A: BTFSC x05.7
070C: BSF FF2.7
070E: MOVLB 6
0710: ADDWF xFF,F
0712: MOVF 03,W
0714: MOVLB 7
0716: ADDWFC x00,F
.................... EP_BDxST_I(en) = 0x40;
0718: CLRF x49
071A: MOVFF 6FE,748
071E: CLRF x4B
0720: MOVLW 08
0722: MOVWF x4A
0724: MOVLB 0
0726: RCALL 02BA
0728: MOVFF 02,706
072C: MOVFF 01,705
0730: MOVLW 04
0732: MOVLB 7
0734: ADDWF x05,F
0736: MOVLW 00
0738: ADDWFC x06,F
073A: MOVFF 705,FE9
073E: MOVLW 04
0740: ADDWF x06,W
0742: MOVWF FEA
0744: MOVLW 40
0746: MOVWF FEF
.................... }
.................... if (new_uep == 0x06) {new_uep = 0x0E;}
0748: MOVF x01,W
074A: SUBLW 06
074C: BNZ 0752
074E: MOVLW 0E
0750: MOVWF x01
.................... if (usb_ep_tx_type[en] != USB_ENABLE_ISOCHRONOUS) {new_uep |= 0x10;}
0752: CLRF 03
0754: MOVLB 6
0756: MOVF xFE,W
0758: MOVFF FF2,705
075C: BCF FF2.7
075E: MOVLB 0
0760: RCALL 00AA
0762: MOVLB 7
0764: BTFSC x05.7
0766: BSF FF2.7
0768: SUBLW 01
076A: BTFSS FD8.2
076C: BSF x01.4
....................
.................... UEP(en) = new_uep;
076E: CLRF 03
0770: MOVLB 6
0772: MOVF xFE,W
0774: ADDLW 70
0776: MOVWF FE9
0778: MOVLW 0F
077A: ADDWFC 03,W
077C: MOVWF FEA
077E: MOVFF 701,FEF
.................... }
0782: INCF xFE,F
0784: BRA 0582
0786: MOVLB 0
.................... }
.................... }
0788: GOTO 082C (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_disable_endpoint(int8 en)
.................... {
.................... UEP(en) = ENDPT_DISABLED;
*
02DC: CLRF 03
02DE: MOVLB 7
02E0: MOVF x06,W
02E2: ADDLW 70
02E4: MOVWF FE9
02E6: MOVLW 0F
02E8: ADDWFC 03,W
02EA: MOVWF FEA
02EC: CLRF FEF
.................... EP_BDxST_O(en) = 0; //clear state, deque if necessary
02EE: CLRF x49
02F0: MOVFF 706,748
02F4: CLRF x4B
02F6: MOVLW 08
02F8: MOVWF x4A
02FA: MOVLB 0
02FC: RCALL 02BA
02FE: MOVLB 7
0300: MOVFF 01,FE9
0304: MOVLW 04
0306: ADDWF 02,W
0308: MOVWF FEA
030A: CLRF FEF
.................... EP_BDxST_I(en) = 0; //clear state, deque if necessary
030C: CLRF x49
030E: MOVFF 706,748
0312: CLRF x4B
0314: MOVLW 08
0316: MOVWF x4A
0318: MOVLB 0
031A: RCALL 02BA
031C: MOVFF 02,708
0320: MOVFF 01,707
0324: MOVLW 04
0326: MOVLB 7
0328: ADDWF x07,F
032A: MOVLW 00
032C: ADDWFC x08,F
032E: MOVFF 707,FE9
0332: MOVLW 04
0334: ADDWF x08,W
0336: MOVWF FEA
0338: CLRF FEF
.................... }
033A: MOVLB 0
033C: RETLW 00
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_disable_endpoints(void)
.................... {
.................... int8 i;
....................
.................... for (i=1; i<16; i++)
033E: MOVLW 01
0340: MOVLB 7
0342: MOVWF x05
0344: MOVF x05,W
0346: SUBLW 0F
0348: BNC 0358
.................... usb_disable_endpoint(i);
034A: MOVFF 705,706
034E: MOVLB 0
0350: RCALL 02DC
0352: MOVLB 7
0354: INCF x05,F
0356: BRA 0344
....................
.................... //__usb_kbhit_status=0;
.................... }
0358: MOVLB 0
035A: RETLW 00
....................
.................... /// END Hardware layer functions required by USB.C
....................
....................
.................... /// BEGIN USB Interrupt Service Routine
....................
.................... static void usb_clear_trn(void)
.................... {
.................... UIR_TRN = 0;
*
03AA: BCF F68.3
.................... delay_cycles(6);
03AC: BRA 03AE
03AE: BRA 03B0
03B0: BRA 03B2
.................... }
03B2: RETLW 00
....................
.................... /*****************************************************************************
.................... /* usb_handle_interrupt()
.................... /*
.................... /* Summary: Checks the interrupt, and acts upon event. Processing finished
.................... /* tokens is the majority of this code, and is handled by usb.c
.................... /*
.................... /* NOTE: If you wish to change to a polling method (and not an interrupt
.................... /* method), then you must call this function rapidly. If there is more
.................... /* than 10ms latency the PC may think the USB device is stalled and
.................... /* disable it.
.................... /* To switch to a polling method, remove the #int_usb line above this
.................... /* fuction. Also, goto usb_init() and remove the code that enables the
.................... /* USB interrupt.
.................... /******************************************************************************/
.................... #int_usb
.................... void usb_isr()
.................... {
.................... int8 TRNAttempts;
....................
.................... if (usb_state == USB_STATE_DETACHED) return; //should never happen, though
*
1274: MOVF 24,F
1276: BNZ 127A
1278: BRA 12EE
.................... if (UIR)
127A: MOVF F68,F
127C: BZ 12EE
.................... {
.................... debug_usb(debug_putc,"\r\n\n[%X] ",UIR);
....................
.................... //activity detected. (only enable after sleep)
.................... if (UIR_ACTV && UIE_ACTV) {usb_isr_activity();}
127E: BTFSS F68.2
1280: BRA 128A
1282: BTFSS F69.2
1284: BRA 128A
1286: GOTO 0274
....................
.................... if (UCON_SUSPND) return;
128A: BTFSS F6D.1
128C: BRA 1290
128E: BRA 12EE
....................
.................... if (UIR_STALL && UIE_STALL) {usb_isr_stall();} //a stall handshake was sent
1290: BTFSS F68.5
1292: BRA 129C
1294: BTFSS F69.5
1296: BRA 129C
1298: GOTO 02A4
....................
.................... if (UIR_UERR && UIE_UERR) {usb_isr_uerr();} //error has been detected
129C: BTFSS F68.1
129E: BRA 12A8
12A0: BTFSS F69.1
12A2: BRA 12A8
12A4: GOTO 02B2
....................
.................... if (UIR_URST && UIE_URST) {usb_isr_rst();} //usb reset has been detected
12A8: BTFSS F68.0
12AA: BRA 12B4
12AC: BTFSS F69.0
12AE: BRA 12B4
12B0: GOTO 03B4
....................
.................... if (UIR_IDLE && UIE_IDLE) {usb_isr_uidle();} //idle time, we can go to sleep
12B4: BTFSS F68.4
12B6: BRA 12C0
12B8: BTFSS F69.4
12BA: BRA 12C0
12BC: GOTO 03DE
....................
.................... if (UIR_SOF && UIE_SOF) {usb_isr_sof();}
12C0: BTFSS F68.6
12C2: BRA 12CC
12C4: BTFSS F69.6
12C6: BRA 12CC
12C8: GOTO 03E8
....................
.................... TRNAttempts = 0;
12CC: MOVLB 6
12CE: CLRF xFA
.................... do
.................... {
.................... if (UIR_TRN && UIE_TRN)
12D0: BTFSS F68.3
12D2: BRA 12E0
12D4: BTFSS F69.3
12D6: BRA 12E0
.................... {
.................... usb_isr_tok_dne();
12D8: MOVLB 0
12DA: BRA 108A
.................... }
.................... else
12DC: BRA 12E2
12DE: MOVLB 6
.................... break;
12E0: BRA 12EC
.................... } while (TRNAttempts++ < 4);
12E2: MOVLB 6
12E4: MOVF xFA,W
12E6: INCF xFA,F
12E8: SUBLW 03
12EA: BC 12D0
12EC: MOVLB 0
.................... }
.................... }
....................
.................... // SOF interrupt not handled. user must add this depending on application
12EE: BCF FA1.5
12F0: GOTO 0064
.................... void usb_isr_sof(void)
.................... {
.................... debug_usb(debug_putc, "\r\nSOF");
....................
.................... UIR_SOF = 0;
*
03E8: BCF F68.6
.................... }
03EA: GOTO 12CC (RETURN)
....................
.................... /*****************************************************************************
.................... /* usb_isr_rst()
.................... /*
.................... /* Summary: The host (computer) sent us a RESET command. Reset USB device
.................... /* and token handler code to initial state.
.................... /*
.................... /******************************************************************************/
.................... void usb_isr_rst(void)
.................... {
.................... debug_usb(debug_putc,"R");
....................
.................... UEIR = 0;
*
03B4: CLRF F6A
.................... UIR = 0;
03B6: CLRF F68
.................... UEIE = 0x9F;
03B8: MOVLW 9F
03BA: MOVWF F6B
.................... UIE = STANDARD_INTS & ~__USB_UIF_ACTIVE;
03BC: MOVLW 3D
03BE: MOVWF F69
....................
.................... UADDR = 0;
03C0: CLRF F6E
....................
.................... usb_disable_endpoints();
03C2: RCALL 033E
....................
.................... usb_token_reset();
03C4: RCALL 037E
....................
.................... UEP(0) = ENDPT_CONTROL | 0x10;
03C6: MOVLW 16
03C8: MOVWF F70
....................
.................... while (UIR_TRN)
.................... {
03CA: BTFSS F68.3
03CC: BRA 03D2
.................... usb_clear_trn();
03CE: RCALL 03AA
.................... }
03D0: BRA 03CA
....................
.................... UCON_PKTDIS = 0; //SIE token and packet processing enabled
03D2: BCF F6D.4
....................
.................... usb_init_ep0_setup();
03D4: RCALL 0284
....................
.................... usb_state = USB_STATE_DEFAULT; //put usb mcu into default state
03D6: MOVLW 03
03D8: MOVWF 24
.................... }
03DA: GOTO 12B4 (RETURN)
....................
.................... /*****************************************************************************
.................... /* usb_init_ep0_setup()
.................... /*
.................... /* Summary: Configure EP0 to receive setup packets
.................... /*
.................... /*****************************************************************************/
.................... void usb_init_ep0_setup(void)
.................... {
.................... EP_BDxCNT_O(0) = USB_MAX_EP0_PACKET_LENGTH;
*
0284: MOVLW 40
0286: MOVLB 4
0288: MOVWF x01
.................... EP_BDxADR_O(0) = USB_DATA_BUFFER_LOCATION;
028A: MOVLW 04
028C: MOVWF x03
028E: MOVLW 18
0290: MOVWF x02
.................... #if USB_IGNORE_RX_DTS
.................... EP_BDxST_O(0) = 0x80; //give control to SIE, data toggle synch off
.................... #else
.................... EP_BDxST_O(0) = 0x88; //give control to SIE, DATA0, data toggle synch on
0292: MOVLW 88
0294: MOVWF x00
.................... #endif
....................
.................... EP_BDxST_I(0) = 0;
0296: CLRF x04
.................... EP_BDxADR_I(0) = USB_DATA_BUFFER_LOCATION + (int16)USB_MAX_EP0_PACKET_LENGTH;
0298: MOVLW 04
029A: MOVWF x07
029C: MOVLW 58
029E: MOVWF x06
.................... }
02A0: MOVLB 0
02A2: RETLW 00
....................
.................... /*******************************************************************************
.................... /* usb_isr_uerr()
.................... /*
.................... /* Summary: The USB peripheral had an error. If user specified, error counter
.................... /* will incerement. If having problems check the status of these 8 bytes.
.................... /*
.................... /* NOTE: This code is not enabled by default.
.................... /********************************************************************************/
.................... void usb_isr_uerr(void)
.................... {
.................... #if USB_USE_ERROR_COUNTER
.................... int ints;
.................... #endif
....................
.................... debug_usb(debug_putc,"E %X ",UEIR);
....................
.................... #if USB_USE_ERROR_COUNTER
.................... ints=UEIR & UEIE; //mask off the flags with the ones that are enabled
....................
.................... if ( bit_test(ints,0) )
.................... {
.................... //increment pid_error counter
.................... debug_usb(debug_putc,"PID ");
.................... ERROR_COUNTER[0]++;
.................... }
....................
.................... if ( bit_test(ints,1) )
.................... {
.................... //increment crc5 error counter
.................... debug_usb(debug_putc,"CRC5 ");
.................... ERROR_COUNTER[1]++;
.................... }
....................
.................... if ( bit_test(ints,2) )
.................... {
.................... //increment crc16 error counter
.................... debug_usb(debug_putc,"CRC16 ");
.................... ERROR_COUNTER[2]++;
.................... }
....................
.................... if ( bit_test(ints,3) )
.................... {
.................... //increment dfn8 error counter
.................... debug_usb(debug_putc,"DFN8 ");
.................... ERROR_COUNTER[3]++;
.................... }
....................
.................... if ( bit_test(ints,4) )
.................... {
.................... //increment bto error counter
.................... debug_usb(debug_putc,"BTO ");
.................... ERROR_COUNTER[4]++;
.................... }
....................
.................... if ( bit_test(ints,7) )
.................... {
.................... //increment bts error counter
.................... debug_usb(debug_putc,"BTS ");
.................... ERROR_COUNTER[5]++;
.................... }
.................... #endif
....................
.................... UEIR = 0;
*
02B2: CLRF F6A
.................... UIR_UERR = 0;
02B4: BCF F68.1
.................... }
02B6: GOTO 12A8 (RETURN)
....................
.................... /*****************************************************************************
.................... /* usb_isr_uidle()
.................... /*
.................... /* Summary: USB peripheral detected IDLE. Put the USB peripheral to sleep.
.................... /*
.................... /*****************************************************************************/
.................... void usb_isr_uidle(void)
.................... {
.................... debug_usb(debug_putc, "I");
....................
.................... UIE_ACTV = 1; //enable activity interrupt flag. (we are now suspended until we get an activity interrupt. nice)
*
03DE: BSF F69.2
.................... UIR_IDLE = 0; //clear idle interrupt flag
03E0: BCF F68.4
.................... UCON_SUSPND = 1; //set suspend. we are now suspended
03E2: BSF F6D.1
.................... }
03E4: GOTO 12C0 (RETURN)
....................
....................
.................... /******************************************************************************
.................... /* usb_isr_activity()
.................... /*
.................... /* Summary: USB peripheral detected activity on the USB device. Wake-up the USB
.................... /* peripheral.
.................... /*
.................... /*****************************************************************************/
.................... void usb_isr_activity(void)
.................... {
.................... debug_usb(debug_putc, "A");
....................
.................... UCON_SUSPND = 0; //turn off low power suspending
*
0274: BCF F6D.1
.................... UIE_ACTV = 0; //clear activity interupt enabling
0276: BCF F69.2
....................
.................... while(UIR_ACTV)
.................... UIR_ACTV = 0;
0278: BTFSS F68.2
027A: BRA 0280
027C: BCF F68.2
027E: BRA 0278
.................... }
0280: GOTO 128A (RETURN)
....................
.................... /******************************************************************************
.................... /* usb_isr_stall()
.................... /*
.................... /* Summary: Stall handshake detected.
.................... /*
.................... /*****************************************************************************/
.................... void usb_isr_stall(void)
.................... {
.................... debug_usb(debug_putc, "S");
....................
....................
.................... if (bit_test(UEP(0),0))
*
02A4: BTFSS F70.0
02A6: BRA 02AC
.................... {
.................... usb_init_ep0_setup();
02A8: RCALL 0284
.................... bit_clear(UEP(0), 0);
02AA: BCF F70.0
.................... }
....................
.................... UIR_STALL = 0;
02AC: BCF F68.5
.................... }
02AE: GOTO 129C (RETURN)
....................
.................... // see usb_hw_layer.h for documentation
.................... void usb_request_send_response(unsigned int8 len) {__setup_0_tx_size = len;}
*
03EE: MOVFF 700,25
03F2: RETLW 00
.................... void usb_request_get_data(void) {__setup_0_tx_size = 0xFE;}
*
0B0C: MOVLW FE
0B0E: MOVWF 25
0B10: RETLW 00
.................... void usb_request_stall(void) {__setup_0_tx_size = 0xFF;}
*
03F4: MOVLW FF
03F6: MOVWF 25
03F8: RETLW 00
....................
.................... /*****************************************************************************
.................... /* usb_isr_tok_dne()
.................... /*
.................... /* Summary: A Token (IN/OUT/SETUP) has been received by the USB peripheral.
.................... /* If a setup token on EP0 was received, run the chapter 9 code and
.................... /* handle the request.
.................... /* If an IN token on EP0 was received, continue transmitting any
.................... /* unfinished requests that may take more than one packet to transmit
.................... /* (if necessary).
.................... /* If an OUT token on any other EP was received, mark that EP as ready
.................... /* for a usb_get_packet().
.................... /* Does not handle any IN or OUT tokens on EP0.
.................... /*
.................... /*****************************************************************************/
.................... void usb_isr_tok_dne(void)
.................... {
.................... int8 en;
....................
.................... en = USTAT>>3;
*
108A: RRCF F6C,W
108C: MOVLB 6
108E: MOVWF xFB
1090: RRCF xFB,F
1092: RRCF xFB,F
1094: MOVLW 1F
1096: ANDWF xFB,F
....................
.................... debug_usb(debug_putc, "T ");
.................... debug_usb(debug_putc, "%X ", USTAT);
....................
.................... if (USTAT == USTAT_OUT_SETUP_E0)
1098: MOVF F6C,F
109A: BNZ 1138
.................... {
.................... //new out or setup token in the buffer
.................... int8 pidKey;
....................
.................... debug_usb(debug_putc,"%X ", EP_BDxST_O(0));
....................
.................... pidKey = EP_BDxST_O(0) & 0x3C; //save PID
109C: MOVLB 4
109E: MOVF x00,W
10A0: ANDLW 3C
10A2: MOVLB 6
10A4: MOVWF xFC
....................
.................... EP_BDxST_O(0) &= 0x43; //clear pid, prevent bdstal/pid confusion
10A6: MOVLW 43
10A8: MOVLB 4
10AA: ANDWF x00,F
.................... usb_clear_trn();
10AC: MOVLB 0
10AE: CALL 03AA
....................
.................... if (pidKey == USB_PIC_PID_SETUP)
10B2: MOVLB 6
10B4: MOVF xFC,W
10B6: SUBLW 34
10B8: BNZ 10FE
.................... {
.................... EP_BDxST_I(0)=0; // return the in buffer to us (dequeue any pending requests)
10BA: MOVLB 4
10BC: CLRF x04
....................
.................... debug_usb(debug_putc,"(%U) ", EP_BDxCNT_O(0));
.................... debug_display_ram(EP_BDxCNT_O(0), usb_ep0_rx_buffer);
....................
.................... usb_isr_tok_setup_dne();
10BE: MOVLB 0
10C0: BRA 0BC0
....................
.................... UCON_PKTDIS=0; // UCON,PKT_DIS ; Assuming there is nothing to dequeue, clear the packet disable bit
10C2: BCF F6D.4
....................
.................... //if setup_0_tx_size==0xFF - stall ep0 (unhandled request) (see usb_request_stall())
.................... //if setup_0_tx_size==0xFE - get EP0OUT ready for a data packet, leave EP0IN alone (see usb_request_get_data())
.................... //else setup_0_tx_size=size of response, get EP0OUT ready for a setup packet, mark EPOIN ready for transmit (see usb_request_send_response())
.................... if (__setup_0_tx_size == 0xFF)
10C4: INCFSZ 25,W
10C6: BRA 10D6
.................... usb_flush_out(0, USB_DTS_STALL);
10C8: MOVLB 6
10CA: CLRF xFD
10CC: MOVLW 03
10CE: MOVWF xFE
10D0: MOVLB 0
10D2: RCALL 0BEA
.................... else
10D4: BRA 10FA
.................... {
.................... usb_flush_out(0, USB_DTS_TOGGLE);
10D6: MOVLB 6
10D8: CLRF xFD
10DA: MOVLW 02
10DC: MOVWF xFE
10DE: MOVLB 0
10E0: RCALL 0BEA
.................... if (__setup_0_tx_size != 0xFE)
10E2: MOVF 25,W
10E4: SUBLW FE
10E6: BZ 10FA
.................... usb_flush_in(0 ,__setup_0_tx_size, USB_DTS_USERX);
10E8: MOVLB 7
10EA: CLRF x42
10EC: CLRF x44
10EE: MOVFF 25,743
10F2: MOVLW 04
10F4: MOVWF x45
10F6: MOVLB 0
10F8: RCALL 0D5C
.................... }
.................... //why was this here?
.................... //UCON_PKTDIS=0; // UCON,PKT_DIS ; Assuming there is nothing to dequeue, clear the packet disable bit
.................... }
.................... else if (pidKey == USB_PIC_PID_OUT)
10FA: BRA 1134
10FC: MOVLB 6
10FE: MOVF xFC,W
1100: SUBLW 04
1102: BNZ 1136
.................... {
.................... usb_isr_tok_out_dne(0);
1104: CLRF xFD
1106: MOVLB 0
1108: RCALL 0F42
.................... usb_flush_out(0, USB_DTS_TOGGLE);
110A: MOVLB 6
110C: CLRF xFD
110E: MOVLW 02
1110: MOVWF xFE
1112: MOVLB 0
1114: RCALL 0BEA
.................... if ((__setup_0_tx_size!=0xFE) && (__setup_0_tx_size!=0xFF))
1116: MOVF 25,W
1118: SUBLW FE
111A: BZ 1134
111C: INCFSZ 25,W
111E: BRA 1122
1120: BRA 1134
.................... {
.................... usb_flush_in(0,__setup_0_tx_size,USB_DTS_DATA1); //send response (usually a 0len)
1122: MOVLB 7
1124: CLRF x42
1126: CLRF x44
1128: MOVFF 25,743
112C: MOVLW 01
112E: MOVWF x45
1130: MOVLB 0
1132: RCALL 0D5C
1134: MOVLB 6
.................... }
.................... }
.................... }
.................... else if (USTAT == USTAT_IN_E0)
1136: BRA 126E
1138: MOVF F6C,W
113A: SUBLW 04
113C: BNZ 1178
.................... {
.................... //pic -> host transfer completed
.................... EP_BDxST_I(0) = EP_BDxST_I(0) & 0x43; //clear up any BDSTAL confusion
113E: MOVLW 43
1140: MOVLB 4
1142: ANDWF x04,F
.................... usb_clear_trn();
1144: MOVLB 0
1146: CALL 03AA
.................... __setup_0_tx_size = 0xFF;
114A: MOVLW FF
114C: MOVWF 25
.................... usb_isr_tok_in_dne(0);
114E: MOVLB 6
1150: CLRF xFD
1152: MOVLB 0
1154: RCALL 1058
.................... if (__setup_0_tx_size!=0xFF)
1156: INCFSZ 25,W
1158: BRA 115C
115A: BRA 1170
.................... usb_flush_in(0, __setup_0_tx_size, USB_DTS_TOGGLE);
115C: MOVLB 7
115E: CLRF x42
1160: CLRF x44
1162: MOVFF 25,743
1166: MOVLW 02
1168: MOVWF x45
116A: MOVLB 0
116C: RCALL 0D5C
.................... else
116E: BRA 1174
.................... usb_init_ep0_setup();
1170: CALL 0284
.................... }
.................... else
1174: BRA 126C
1176: MOVLB 6
.................... {
.................... if (!bit_test(USTAT, 2))
1178: BTFSC F6C.2
117A: BRA 11E6
.................... {
.................... EP_BDxST_O(en) = EP_BDxST_O(en) & 0x43; //clear up any BDSTAL confusion
117C: MOVLB 7
117E: CLRF x49
1180: MOVFF 6FB,748
1184: CLRF x4B
1186: MOVLW 08
1188: MOVWF x4A
118A: MOVLB 0
118C: CALL 02BA
1190: MOVFF 01,6FD
1194: MOVLB 6
1196: MOVFF 01,01
119A: MOVLW 04
119C: ADDWF 02,W
119E: MOVWF 03
11A0: MOVFF 01,6FD
11A4: MOVWF xFE
11A6: MOVLB 7
11A8: CLRF x49
11AA: MOVFF 6FB,748
11AE: CLRF x4B
11B0: MOVLW 08
11B2: MOVWF x4A
11B4: MOVLB 0
11B6: CALL 02BA
11BA: MOVFF 01,FE9
11BE: MOVLW 04
11C0: MOVLB 7
11C2: ADDWF 02,W
11C4: MOVWF FEA
11C6: MOVF FEF,W
11C8: ANDLW 43
11CA: MOVLB 6
11CC: MOVFF 6FE,FEA
11D0: MOVFF 6FD,FE9
11D4: MOVWF FEF
.................... usb_clear_trn();
11D6: MOVLB 0
11D8: CALL 03AA
.................... usb_isr_tok_out_dne(en);
11DC: MOVFF 6FB,6FD
11E0: RCALL 0F42
.................... }
.................... else
11E2: BRA 126C
11E4: MOVLB 6
.................... {
.................... EP_BDxST_I(en) = EP_BDxST_I(en) & 0x43; //clear up any BDSTAL confusion
11E6: MOVLB 7
11E8: CLRF x49
11EA: MOVFF 6FB,748
11EE: CLRF x4B
11F0: MOVLW 08
11F2: MOVWF x4A
11F4: MOVLB 0
11F6: CALL 02BA
11FA: MOVFF 02,6FE
11FE: MOVFF 01,6FD
1202: MOVLW 04
1204: MOVLB 6
1206: ADDWF xFD,F
1208: MOVLW 00
120A: ADDWFC xFE,F
120C: MOVFF 6FD,01
1210: MOVLW 04
1212: ADDWF xFE,W
1214: MOVWF 03
1216: MOVFF 6FD,6FD
121A: MOVWF xFE
121C: MOVLB 7
121E: CLRF x49
1220: MOVFF 6FB,748
1224: CLRF x4B
1226: MOVLW 08
1228: MOVWF x4A
122A: MOVLB 0
122C: CALL 02BA
1230: MOVFF 02,700
1234: MOVFF 01,6FF
1238: MOVLW 04
123A: MOVLB 6
123C: ADDWF xFF,F
123E: MOVLW 00
1240: MOVLB 7
1242: ADDWFC x00,F
1244: MOVFF 6FF,FE9
1248: MOVLW 04
124A: MOVLB 7
124C: ADDWF x00,W
124E: MOVWF FEA
1250: MOVF FEF,W
1252: ANDLW 43
1254: MOVLB 6
1256: MOVFF 6FE,FEA
125A: MOVFF 6FD,FE9
125E: MOVWF FEF
.................... usb_clear_trn();
1260: MOVLB 0
1262: CALL 03AA
.................... usb_isr_tok_in_dne(en);
1266: MOVFF 6FB,6FD
126A: RCALL 1058
126C: MOVLB 6
.................... }
.................... }
.................... }
126E: MOVLB 0
1270: GOTO 12DC (RETURN)
....................
.................... /// END USB Interrupt Service Routine
....................
.................... #ENDIF
....................
.................... #endif
....................
.................... #if defined(__PIC24_USB_H__)
.................... #include <pic24_usb.c>
.................... #endif
....................
.................... #if defined(__USBN960X_H__)
.................... #include <usbn960x.c>
.................... #endif
....................
....................
.................... #IFNDEF __USB_HARDWARE__
.................... #ERROR You must include USB hardware driver.
.................... #ENDIF
....................
.................... #IFNDEF __USB_DESCRIPTORS__
.................... #ERROR You must include USB descriptors.
.................... #ENDIF
....................
.................... TYPE_USB_STACK_STATUS USB_stack_status;
....................
.................... int8 USB_address_pending; //save previous state because packets can take several isrs
.................... int8 usb_getdesc_ptr; unsigned int8 usb_getdesc_len=0; //for reading string and config descriptors
....................
.................... #IF USB_HID_BOOT_PROTOCOL
.................... int8 hid_protocol[USB_NUM_HID_INTERFACES];
.................... #ENDIF
....................
.................... void usb_put_0len_0(void);
.................... void usb_match_registers(int8 endpoint, int16 *status, int16 *buffer, int8 *size);
....................
.................... void usb_isr_tkn_setup_StandardEndpoint(void);
.................... void usb_isr_tkn_setup_StandardDevice(void);
.................... void usb_isr_tkn_setup_StandardInterface(void);
.................... #IF USB_HID_DEVICE
.................... void usb_isr_tkn_setup_ClassInterface(void);
.................... #ENDIF
.................... void usb_Get_Descriptor(void);
.................... void usb_copy_desc_seg_to_ep(void);
.................... void usb_finish_set_address(void);
....................
.................... int8 USB_Interface[USB_MAX_NUM_INTERFACES]; //config state for all of our interfaces, NUM_INTERFACES defined with descriptors
....................
.................... /// BEGIN User Functions
....................
.................... // see usb.h for documentation
.................... int1 usb_enumerated(void)
.................... {
.................... return(USB_stack_status.curr_config);
.................... }
....................
.................... // see usb.h for documentation
.................... void usb_wait_for_enumeration(void)
.................... {
.................... while (USB_stack_status.curr_config == 0) {restart_wdt();}
.................... }
....................
.................... // see USB.H for documentation
.................... int1 usb_puts(int8 endpoint, int8 * ptr, unsigned int16 len, unsigned int8 timeout) {
.................... unsigned int16 i=0;
.................... int1 res;
.................... unsigned int16 this_packet_len;
.................... unsigned int16 packet_size;
.................... unsigned int32 timeout_1us;
....................
.................... packet_size = usb_ep_tx_size[endpoint];
....................
.................... //printf("\r\nUSB PUTS %U LEN=%LU MAX_PACK=%LU\r\n", endpoint, len, packet_size);
....................
.................... //send data packets until timeout or no more packets to send
.................... while (i < len)
.................... {
.................... timeout_1us = (int32)timeout*1000;
.................... if ((len - i) > packet_size) {this_packet_len = packet_size;}
.................... else {this_packet_len = len-i;}
.................... //putc('*');
.................... do
.................... {
.................... res = usb_put_packet(endpoint, ptr + i, this_packet_len, USB_DTS_TOGGLE); //send 64 byte packets
.................... //putc('.');
.................... if (!res)
.................... {
.................... delay_us(1);
.................... //delay_ms(500);
.................... timeout_1us--;
.................... }
.................... } while (!res && timeout_1us);
.................... i += packet_size;
.................... }
....................
....................
.................... //send 0len packet if needed
.................... if (i==len) {
.................... timeout_1us=(int32)timeout*1000;
.................... do {
.................... res = usb_put_packet(endpoint,0,0,USB_DTS_TOGGLE); //indicate end of message
.................... if (!res) {
.................... delay_us(1);
.................... timeout_1us--;
.................... }
.................... } while (!res && timeout_1us);
.................... }
....................
.................... return(res);
.................... }
....................
.................... // see usb.h for documentation
.................... unsigned int16 usb_gets(int8 endpoint, int8 * ptr, unsigned int16 max, unsigned int16 timeout) {
.................... unsigned int16 ret=0;
.................... unsigned int16 to;
.................... unsigned int16 len;
.................... unsigned int16 packet_size;
.................... unsigned int16 this_packet_max;
....................
.................... packet_size=usb_ep_rx_size[endpoint];
....................
.................... do {
.................... if (packet_size < max) {this_packet_max=packet_size;} else {this_packet_max=max;}
.................... to=0;
.................... do {
.................... if (usb_kbhit(endpoint)) {
.................... len=usb_get_packet(endpoint,ptr,this_packet_max);
.................... ptr+=len;
.................... max-=len;
.................... ret+=len;
.................... break;
.................... }
.................... else {
.................... to++;
.................... delay_ms(1);
.................... }
.................... } while (to!=timeout);
.................... } while ((len == packet_size) && (to!=timeout) && max);
....................
.................... return(ret);
.................... }
....................
.................... /// END User Functions
....................
....................
.................... /// BEGIN USB Token, standard and HID request handler (part of ISR)
....................
.................... // see usb.h for documentation
.................... void usb_token_reset(void)
.................... {
.................... unsigned int i;
....................
.................... for (i=0;i<USB_MAX_NUM_INTERFACES;i++)
*
037E: MOVLB 7
0380: CLRF x19
0382: MOVF x19,W
0384: SUBLW 01
0386: BNC 039C
.................... USB_Interface[i] = 0; //reset each interface to default
0388: CLRF 03
038A: MOVF x19,W
038C: ADDLW 29
038E: MOVWF FE9
0390: MOVLW 00
0392: ADDWFC 03,W
0394: MOVWF FEA
0396: CLRF FEF
....................
.................... #IF USB_HID_BOOT_PROTOCOL
.................... for (i=0;i<USB_NUM_HID_INTERFACES; i++)
.................... hid_protocol[i] = 1;
.................... #endif
....................
.................... #if USB_CDC_DEVICE
0398: INCF x19,F
039A: BRA 0382
.................... usb_cdc_init();
039C: MOVLB 0
039E: RCALL 035C
.................... #endif
....................
.................... USB_stack_status.curr_config = 0; //unconfigured device
03A0: CLRF 1E
....................
.................... USB_stack_status.status_device = 1; //previous state. init at none
03A2: MOVLW 01
03A4: MOVWF 1F
.................... USB_stack_status.dev_req = NONE; //previous token request state. init at none
03A6: CLRF 1D
.................... }
03A8: RETLW 00
....................
.................... //send a 0len packet to endpoint 0 (optimization)
.................... //notice that this doesnt return the status
.................... #define usb_put_0len_0() usb_request_send_response(0)
....................
.................... /**************************************************************
.................... /* usb_endpoint_is_valid(endpoint)
.................... /*
.................... /* Input: endpoint - endpoint to check.
.................... /* bit 7 is direction (set is IN, clear is OUT)
.................... /*
.................... /* Output: TRUE if endpoint is valid, FALSE if not
.................... /*
.................... /* Summary: Checks the dynamic configuration to see if requested
.................... /* endpoint is a valid endpoint.
.................... /***************************************************************/
.................... int1 usb_endpoint_is_valid(int8 endpoint)
.................... {
.................... int1 direction;
.................... direction = bit_test(endpoint,7);
*
08E8: MOVLB 6
08EA: BCF xFE.0
08EC: BTFSC xFD.7
08EE: BSF xFE.0
.................... endpoint &= 0x7F;
08F0: BCF xFD.7
.................... if (direction) { //IN
08F2: BTFSS xFE.0
08F4: BRA 091C
.................... return(usb_ep_tx_type[endpoint] != USB_ENABLE_DISABLED);
08F6: CLRF 03
08F8: MOVF xFD,W
08FA: MOVFF FF2,6FF
08FE: BCF FF2.7
0900: MOVLB 0
0902: CALL 00AA
0906: MOVLB 6
0908: BTFSC xFF.7
090A: BSF FF2.7
090C: SUBLW FF
090E: BNZ 0914
0910: MOVLW 00
0912: BRA 0916
0914: MOVLW 01
0916: MOVWF 01
0918: BRA 0940
.................... }
.................... else { //OUT
091A: BRA 0940
.................... return(usb_ep_rx_type[endpoint] != USB_ENABLE_DISABLED);
091C: CLRF 03
091E: MOVF xFD,W
0920: MOVFF FF2,6FF
0924: BCF FF2.7
0926: MOVLB 0
0928: CALL 00CA
092C: MOVLB 6
092E: BTFSC xFF.7
0930: BSF FF2.7
0932: SUBLW FF
0934: BNZ 093A
0936: MOVLW 00
0938: BRA 093C
093A: MOVLW 01
093C: MOVWF 01
093E: BRA 0940
.................... }
.................... }
0940: MOVLB 0
0942: GOTO 0AA8 (RETURN)
....................
.................... // see usb.h for documentation
.................... void usb_isr_tok_in_dne(int8 endpoint) {
.................... if (endpoint==0) {
*
1058: MOVLB 6
105A: MOVF xFD,F
105C: BNZ 107A
.................... if (USB_stack_status.dev_req == GET_DESCRIPTOR) {usb_copy_desc_seg_to_ep();} //check this, we are missing report descriptor?
105E: DECFSZ 1D,W
1060: BRA 106C
1062: MOVLB 0
1064: CALL 03FA
.................... else if (USB_stack_status.dev_req == SET_ADDRESS) {usb_finish_set_address();}
1068: BRA 1076
106A: MOVLB 6
106C: MOVF 1D,W
106E: SUBLW 02
1070: BNZ 1078
1072: MOVLB 0
1074: BRA 0F7A
1076: MOVLB 6
.................... }
.................... #if USB_CDC_DEVICE
.................... else if (endpoint==USB_CDC_DATA_IN_ENDPOINT) { //see ex_usb_serial.c example and usb_cdc.h driver
1078: BRA 1086
107A: MOVF xFD,W
107C: SUBLW 02
107E: BNZ 1086
.................... usb_isr_tok_in_cdc_data_dne();
1080: MOVLB 0
1082: BRA 104E
1084: MOVLB 6
.................... }
.................... #endif
.................... }
1086: MOVLB 0
1088: RETLW 00
....................
.................... // see usb.h for documentation
.................... void usb_isr_tok_out_dne(int8 endpoint)
.................... {
.................... //TODO:
.................... if (endpoint==0) {
*
0F42: MOVLB 6
0F44: MOVF xFD,F
0F46: BNZ 0F50
.................... debug_usb(debug_putc,"TOUT 0 ");
.................... #if USB_CDC_DEVICE
.................... usb_isr_tok_out_cdc_control_dne();
0F48: MOVLB 0
0F4A: BRA 0E7E
.................... #else
.................... usb_init_ep0_setup();
.................... #endif
.................... }
.................... #if USB_CDC_DEVICE
.................... else if (endpoint==USB_CDC_DATA_OUT_ENDPOINT) { //see ex_usb_serial.c example and usb_cdc.h driver
0F4C: BRA 0F5A
0F4E: MOVLB 6
0F50: MOVF xFD,W
0F52: SUBLW 02
0F54: BNZ 0F5C
.................... usb_isr_tok_out_cdc_data_dne();
0F56: MOVLB 0
0F58: BRA 0F2C
0F5A: MOVLB 6
.................... }
.................... #endif
.................... //else {
.................... // bit_set(__usb_kbhit_status,endpoint);
.................... //}
.................... }
0F5C: MOVLB 0
0F5E: RETLW 00
....................
....................
.................... //---- process setup message stage -----------//
....................
.................... // see usb.h for documentation
.................... void usb_isr_tok_setup_dne(void)
.................... {
.................... USB_stack_status.dev_req=NONE; // clear the device request..
*
0BC0: CLRF 1D
....................
.................... switch(usb_ep0_rx_buffer[0] & 0x7F) {
0BC2: MOVLB 4
0BC4: MOVF x18,W
0BC6: ANDLW 7F
0BC8: MOVLB 0
0BCA: BZ 0BDA
0BCC: XORLW 01
0BCE: BZ 0BDC
0BD0: XORLW 03
0BD2: BZ 0BDE
0BD4: XORLW 23
0BD6: BZ 0BE0
0BD8: BRA 0BE2
....................
.................... case 0x00: //standard to device
.................... debug_usb(debug_putc," d");
.................... usb_isr_tkn_setup_StandardDevice();
0BDA: BRA 078C
.................... break;
....................
.................... case 0x01: //standard to interface
.................... debug_usb(debug_putc," i");
.................... usb_isr_tkn_setup_StandardInterface();
0BDC: BRA 0840
.................... break;
....................
.................... case 0x02: //standard to endpoint
.................... debug_usb(debug_putc," e");
.................... usb_isr_tkn_setup_StandardEndpoint();
0BDE: BRA 0AA2
.................... break;
....................
.................... #IF USB_HID_DEVICE
.................... case 0x21: //class specific request. the only class this driver supports is HID
.................... debug_usb(debug_putc," hid");
.................... usb_isr_tkn_setup_ClassInterface();
.................... break;
.................... #endif
....................
.................... #if USB_CDC_DEVICE
.................... case 0x21:
.................... debug_usb(debug_putc," cdc");
.................... usb_isr_tkn_cdc();
0BE0: BRA 0B12
.................... break;
.................... #endif
.................... //TODO: IF YOU WANT VENDOR SPECIFC REQUEST SUPPORT YOU MUST ADD IT HERE
....................
.................... default:
.................... usb_request_stall();
0BE2: RCALL 03F4
.................... break;
0BE4: BRA 0BE6
.................... }
.................... }
0BE6: GOTO 10C2 (RETURN)
....................
.................... /**************************************************************
.................... /* usb_isr_tkn_setup_StandardDevice()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[1] == bRequest
.................... /*
.................... /* Summary: bmRequestType told us it was a Standard Device request.
.................... /* bRequest says which request. Only certain requests are valid,
.................... /* if a non-valid request was made then return with an Wrong-Statue (IDLE)
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /***************************************************************/
.................... void usb_isr_tkn_setup_StandardDevice(void) {
.................... switch(usb_ep0_rx_buffer[1]) {
*
078C: MOVLB 4
078E: MOVF x19,W
0790: MOVLB 0
0792: BZ 07AE
0794: XORLW 01
0796: BZ 07C2
0798: XORLW 02
079A: BZ 07DC
079C: XORLW 06
079E: BZ 07F4
07A0: XORLW 03
07A2: BZ 0806
07A4: XORLW 0E
07A6: BZ 0808
07A8: XORLW 01
07AA: BZ 0818
07AC: BRA 0838
....................
.................... case USB_STANDARD_REQUEST_GET_STATUS: //0
.................... debug_usb(debug_putc,"GS");
.................... usb_ep0_tx_buffer[0]=USB_stack_status.status_device;
07AE: MOVFF 1F,458
.................... usb_ep0_tx_buffer[1]=0;
07B2: MOVLB 4
07B4: CLRF x59
.................... usb_request_send_response(2);
07B6: MOVLW 02
07B8: MOVLB 7
07BA: MOVWF x00
07BC: MOVLB 0
07BE: RCALL 03EE
.................... break;
07C0: BRA 083C
....................
.................... case USB_STANDARD_REQUEST_CLEAR_FEATURE: //1
.................... if (usb_ep0_rx_buffer[2] == 1) {
07C2: MOVLB 4
07C4: DECFSZ x1A,W
07C6: BRA 07D6
.................... debug_usb(debug_putc,"CF");
.................... USB_stack_status.status_device &= 1;
07C8: MOVLW 01
07CA: ANDWF 1F,F
.................... usb_put_0len_0();
07CC: MOVLB 7
07CE: CLRF x00
07D0: MOVLB 0
07D2: RCALL 03EE
.................... }
.................... else
07D4: BRA 07DA
.................... usb_request_stall();
07D6: MOVLB 0
07D8: RCALL 03F4
.................... break;
07DA: BRA 083C
....................
.................... case USB_STANDARD_REQUEST_SET_FEATURE: //3
.................... if (usb_ep0_rx_buffer[2] == 1) {
07DC: MOVLB 4
07DE: DECFSZ x1A,W
07E0: BRA 07EE
.................... debug_usb(debug_putc,"SF");
.................... USB_stack_status.status_device |= 2;
07E2: BSF 1F.1
.................... usb_put_0len_0();
07E4: MOVLB 7
07E6: CLRF x00
07E8: MOVLB 0
07EA: RCALL 03EE
.................... }
.................... else
07EC: BRA 07F2
.................... usb_request_stall();
07EE: MOVLB 0
07F0: RCALL 03F4
.................... break;
07F2: BRA 083C
....................
.................... case USB_STANDARD_REQUEST_SET_ADDRESS: //5
.................... debug_usb(debug_putc,"SA");
.................... USB_stack_status.dev_req=SET_ADDRESS; //currently processing set_address request
07F4: MOVLW 02
07F6: MOVWF 1D
.................... USB_address_pending=usb_ep0_rx_buffer[2];
07F8: MOVFF 41A,26
.................... #ifdef __USBN__ //NATIONAL part handles this differently than pic16c7x5
.................... USB_stack_status.dev_req=NONE; //currently processing set_address request
.................... usb_set_address(USB_address_pending);
.................... USB_stack_status.curr_config=0; // make sure current configuration is 0
.................... #endif
.................... usb_put_0len_0();
07FC: MOVLB 7
07FE: CLRF x00
0800: MOVLB 0
0802: RCALL 03EE
.................... break;
0804: BRA 083C
....................
.................... case USB_STANDARD_REQUEST_GET_DESCRIPTOR: //6
.................... debug_usb(debug_putc,"GD");
.................... usb_Get_Descriptor();
0806: BRA 049C
.................... break;
....................
.................... case USB_STANDARD_REQUEST_GET_CONFIGURATION: //8
.................... debug_usb(debug_putc,"GC");
.................... usb_ep0_tx_buffer[0]=USB_stack_status.curr_config;
0808: MOVFF 1E,458
.................... usb_request_send_response(1);
080C: MOVLW 01
080E: MOVLB 7
0810: MOVWF x00
0812: MOVLB 0
0814: RCALL 03EE
.................... break;
0816: BRA 083C
....................
.................... case USB_STANDARD_REQUEST_SET_CONFIGURATION: //9
.................... if (usb_ep0_rx_buffer[2] <= USB_NUM_CONFIGURATIONS) {
0818: MOVLB 4
081A: MOVF x1A,W
081C: SUBLW 01
081E: BNC 0834
.................... USB_stack_status.curr_config=usb_ep0_rx_buffer[2];
0820: MOVFF 41A,1E
.................... usb_set_configured(usb_ep0_rx_buffer[2]);
0824: MOVFF 41A,6FD
0828: MOVLB 0
082A: BRA 055C
.................... debug_usb(debug_putc,"SC%U", USB_stack_status.curr_config);
.................... usb_put_0len_0();
082C: MOVLB 7
082E: CLRF x00
0830: MOVLB 0
0832: RCALL 03EE
.................... }
.................... break;
0834: MOVLB 0
0836: BRA 083C
....................
.................... default:
.................... usb_request_stall();
0838: RCALL 03F4
.................... break;
083A: BRA 083C
.................... }
.................... }
083C: GOTO 0BE6 (RETURN)
....................
.................... /**************************************************************
.................... /* usb_isr_tkn_setup_StandardInterface()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[1] == bRequest
.................... /*
.................... /* Summary: bmRequestType told us it was a Standard Interface request.
.................... /* bRequest says which request. Only certain requests are valid,
.................... /* if a non-valid request was made then return with an Wrong-Statue (IDLE)
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /***************************************************************/
.................... void usb_isr_tkn_setup_StandardInterface(void) {
.................... int8 curr_config;
....................
.................... curr_config=USB_stack_status.curr_config;
0840: MOVFF 1E,6FD
....................
.................... switch (usb_ep0_rx_buffer[1]) {
0844: MOVLB 4
0846: MOVF x19,W
0848: MOVLB 0
084A: BZ 0856
084C: XORLW 0A
084E: BZ 0868
0850: XORLW 01
0852: BZ 08B6
0854: BRA 08E0
.................... case USB_STANDARD_REQUEST_GET_STATUS:
.................... debug_usb(debug_putc,"GS");
.................... usb_ep0_tx_buffer[0]=0;
0856: MOVLB 4
0858: CLRF x58
.................... usb_ep0_tx_buffer[1]=0;
085A: CLRF x59
.................... usb_request_send_response(2);
085C: MOVLW 02
085E: MOVLB 7
0860: MOVWF x00
0862: MOVLB 0
0864: RCALL 03EE
.................... break;
0866: BRA 08E4
....................
.................... case USB_STANDARD_REQUEST_GET_INTERFACE:
.................... if ( curr_config && (usb_ep0_rx_buffer[4] < USB_NUM_INTERFACES[curr_config-1]) ) { //book says only supports configed state
0868: MOVLB 6
086A: MOVF xFD,F
086C: BZ 08B0
086E: MOVLW 01
0870: SUBWF xFD,W
0872: CLRF 03
0874: MOVFF FF2,6FE
0878: BCF FF2.7
087A: MOVLB 0
087C: RCALL 019E
087E: MOVLB 6
0880: BTFSC xFE.7
0882: BSF FF2.7
0884: MOVWF 01
0886: MOVLB 4
0888: SUBWF x1C,W
088A: BTFSS FD8.0
088C: BRA 0892
088E: MOVLB 6
0890: BRA 08B0
.................... debug_usb(debug_putc,"GI");
.................... usb_ep0_tx_buffer[0]=USB_Interface[usb_ep0_rx_buffer[4]];//our new outgoing byte
0892: CLRF 03
0894: MOVF x1C,W
0896: ADDLW 29
0898: MOVWF FE9
089A: MOVLW 00
089C: ADDWFC 03,W
089E: MOVWF FEA
08A0: MOVFF FEF,458
.................... usb_request_send_response(1);; //send byte back
08A4: MOVLW 01
08A6: MOVLB 7
08A8: MOVWF x00
08AA: MOVLB 0
08AC: RCALL 03EE
.................... }
.................... else
08AE: BRA 08B4
.................... usb_request_stall();
08B0: MOVLB 0
08B2: RCALL 03F4
.................... break;
08B4: BRA 08E4
....................
.................... case USB_STANDARD_REQUEST_SET_INTERFACE:
.................... if (curr_config) { //if configured state
08B6: MOVLB 6
08B8: MOVF xFD,F
08BA: BZ 08DA
.................... debug_usb(debug_putc,"SI");
.................... USB_Interface[usb_ep0_rx_buffer[4]]=usb_ep0_rx_buffer[2];
08BC: CLRF 03
08BE: MOVLB 4
08C0: MOVF x1C,W
08C2: ADDLW 29
08C4: MOVWF FE9
08C6: MOVLW 00
08C8: ADDWFC 03,W
08CA: MOVWF FEA
08CC: MOVFF 41A,FEF
.................... usb_put_0len_0();
08D0: MOVLB 7
08D2: CLRF x00
08D4: MOVLB 0
08D6: RCALL 03EE
.................... }
.................... else
08D8: BRA 08DE
.................... usb_request_stall();
08DA: MOVLB 0
08DC: RCALL 03F4
.................... break;
08DE: BRA 08E4
....................
.................... #IF USB_HID_DEVICE
.................... case USB_STANDARD_REQUEST_GET_DESCRIPTOR:
.................... debug_usb(debug_putc,"GD");
.................... usb_Get_Descriptor();
.................... break;
.................... #endif
....................
.................... // case USB_STANDARD_REQUEST_CLEAR_FEATURE:
.................... // case USB_STANDARD_REQUEST_SET_FEATURE:
.................... // let default take care of these, goto wrongstate
.................... default:
.................... usb_request_stall();
08E0: RCALL 03F4
.................... break;
08E2: BRA 08E4
.................... }
.................... }
08E4: GOTO 0BE6 (RETURN)
....................
.................... /**************************************************************
.................... /* usb_isr_tkn_setup_StandardEndpoint()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[1] == bRequest
.................... /*
.................... /* Summary: bmRequestType told us it was a Standard Endpoint request.
.................... /* bRequest says which request. Only certain requests are valid,
.................... /* if a non-valid request was made then return with an Wrong-Statue (IDLE)
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /***************************************************************/
.................... void usb_isr_tkn_setup_StandardEndpoint(void) {
.................... if (usb_endpoint_is_valid(usb_ep0_rx_buffer[4])) {
*
0AA2: MOVFF 41C,6FD
0AA6: BRA 08E8
0AA8: MOVF 01,F
0AAA: BZ 0B08
.................... switch(usb_ep0_rx_buffer[1]) {
0AAC: MOVLB 4
0AAE: MOVF x19,W
0AB0: XORLW 01
0AB2: MOVLB 0
0AB4: BZ 0AC0
0AB6: XORLW 02
0AB8: BZ 0AD0
0ABA: XORLW 03
0ABC: BZ 0AE0
0ABE: BRA 0B04
....................
.................... case USB_STANDARD_REQUEST_CLEAR_FEATURE:
.................... debug_usb(debug_putc,"CF");
.................... usb_unstall_ep(usb_ep0_rx_buffer[4]);
0AC0: MOVFF 41C,6FD
0AC4: BRA 0946
.................... usb_put_0len_0();
0AC6: MOVLB 7
0AC8: CLRF x00
0ACA: MOVLB 0
0ACC: RCALL 03EE
.................... break;
0ACE: BRA 0B08
....................
.................... case USB_STANDARD_REQUEST_SET_FEATURE:
.................... debug_usb(debug_putc,"SF");
.................... usb_stall_ep(usb_ep0_rx_buffer[4]);
0AD0: MOVFF 41C,6FD
0AD4: BRA 09B4
.................... usb_put_0len_0();
0AD6: MOVLB 7
0AD8: CLRF x00
0ADA: MOVLB 0
0ADC: RCALL 03EE
.................... break;
0ADE: BRA 0B08
....................
.................... case USB_STANDARD_REQUEST_GET_STATUS:
.................... debug_usb(debug_putc,"GS");
.................... usb_ep0_tx_buffer[0]=0;
0AE0: MOVLB 4
0AE2: CLRF x58
.................... usb_ep0_tx_buffer[1]=0;
0AE4: CLRF x59
.................... if (usb_endpoint_stalled(usb_ep0_rx_buffer[4])) {
0AE6: MOVFF 41C,6FD
0AEA: MOVLB 0
0AEC: BRA 0A24
0AEE: MOVF 01,F
0AF0: BZ 0AF8
.................... usb_ep0_tx_buffer[0]=1;
0AF2: MOVLW 01
0AF4: MOVLB 4
0AF6: MOVWF x58
.................... }
.................... usb_request_send_response(2);
0AF8: MOVLW 02
0AFA: MOVLB 7
0AFC: MOVWF x00
0AFE: MOVLB 0
0B00: RCALL 03EE
.................... break;
0B02: BRA 0B08
....................
.................... default:
.................... usb_request_stall();
0B04: RCALL 03F4
.................... break;
0B06: BRA 0B08
.................... }
.................... }
.................... }
0B08: GOTO 0BE6 (RETURN)
....................
.................... /**************************************************************
.................... /* usb_isr_tkn_setup_ClassInterface()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[1] == bRequest
.................... /*
.................... /* Summary: bmRequestType told us it was a Class request. The only Class this drivers supports is HID.
.................... /* bRequest says which request. Only certain requests are valid,
.................... /* if a non-valid request was made then return with an Wrong-Statue (IDLE)
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /* Only compiled if HID_DEVICE is TRUE
.................... /***************************************************************/
.................... #IF USB_HID_DEVICE
.................... void usb_isr_tkn_setup_ClassInterface(void) {
.................... switch(usb_ep0_rx_buffer[1]) {
....................
.................... #IF USB_HID_BOOT_PROTOCOL
.................... case USB_HID_REQUEST_GET_PROTOCOL: //03
.................... debug_usb(debug_putc,"GP");
.................... usb_ep0_tx_buffer[0]=hid_protocol[usb_ep0_rx_buffer[4]];
.................... usb_request_send_response(1);
.................... break;
.................... #ENDIF
....................
.................... #IF USB_HID_BOOT_PROTOCOL
.................... case USB_HID_REQUEST_SET_PROTOCOL: //0b
.................... debug_usb(debug_putc,"SP");
.................... hid_protocol[usb_ep0_rx_buffer[4]]=usb_ep0_rx_buffer[2];
.................... usb_put_0len_0(); //send 0len packet69
.................... break;
.................... #ENDIF
....................
.................... #IF USB_HID_IDLE
.................... case USB_HID_REQUEST_SET_IDLE: //0a
.................... #error TODO: if you want to support SET_IDLE, add code here
.................... #ENDIF
....................
.................... #IF USB_HID_IDLE
.................... case USB_HID_REQUEST_GET_IDLE: //02
.................... #error TODO: if you want to support GET_IDLE, add code here
.................... #ENDIF
....................
.................... default:
.................... usb_request_stall();
.................... break;
.................... }
.................... }
.................... #ENDIF
....................
.................... /**************************************************************
.................... /* usb_Get_Descriptor()
.................... /*
.................... /* Input: usb_ep0_rx_buffer[3] == wValue, which descriptor we want
.................... /* usb_ep0_rx_buffer[6,7] == Max length the host will accept
.................... /*
.................... /* Summary: Checks to see if we want a standard descriptor (Interface, Endpoint, Config, Device, String, etc.),
.................... /* or a class specific (HID) descriptor. Since some pics (especially the PIC167x5) doesn't have
.................... /* pointers to constants we must simulate or own by setting up global registers that say
.................... /* which constant array to deal with, which position to start in this array, and the length.
.................... /* Once these globals are setup the first packet is sent. If a descriptor takes more than one packet
.................... /* the PC will send an IN request to endpoint 0, and this will be handled by usb_isr_tok_in_dne()
.................... /* which will send the rest of the data.
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /***************************************************************/
.................... void usb_Get_Descriptor() {
.................... usb_getdesc_ptr=0;
*
049C: CLRF 27
.................... USB_stack_status.getdesc_type=USB_GETDESC_CONFIG_TYPE;
049E: CLRF 20
....................
.................... switch(usb_ep0_rx_buffer[3]) {
04A0: MOVLB 4
04A2: MOVF x1B,W
04A4: XORLW 01
04A6: MOVLB 0
04A8: BZ 04B8
04AA: XORLW 03
04AC: BZ 04C2
04AE: XORLW 01
04B0: BZ 04C8
04B2: XORLW 22
04B4: BZ 04FA
04B6: BRA 053C
.................... case USB_DESC_DEVICE_TYPE: //1
.................... usb_getdesc_len=USB_DESC_DEVICE_LEN;
04B8: MOVLW 12
04BA: MOVWF 28
.................... USB_stack_status.getdesc_type=USB_GETDESC_DEVICE_TYPE;
04BC: MOVLW 03
04BE: MOVWF 20
.................... break;
04C0: BRA 0540
....................
.................... //windows hosts will send a FF max len and expect you to send all configs without asking for them individually.
.................... case USB_DESC_CONFIG_TYPE: //2
.................... usb_getdesc_len=USB_TOTAL_CONFIG_LEN;
04C2: MOVLW 43
04C4: MOVWF 28
.................... break;
04C6: BRA 0540
....................
.................... case USB_DESC_STRING_TYPE: //3
.................... USB_stack_status.getdesc_type=USB_GETDESC_STRING_TYPE;
04C8: MOVLW 02
04CA: MOVWF 20
.................... usb_getdesc_ptr=USB_STRING_DESC_OFFSET[usb_ep0_rx_buffer[2]];
04CC: CLRF 03
04CE: MOVLB 4
04D0: MOVF x1A,W
04D2: ADDLW 21
04D4: MOVWF FE9
04D6: MOVLW 00
04D8: ADDWFC 03,W
04DA: MOVWF FEA
04DC: MOVFF FEF,27
.................... usb_getdesc_len=USB_STRING_DESC[usb_getdesc_ptr];
04E0: CLRF 03
04E2: MOVF 27,W
04E4: MOVFF FF2,6FD
04E8: BCF FF2.7
04EA: MOVLB 0
04EC: RCALL 01EA
04EE: MOVLB 6
04F0: BTFSC xFD.7
04F2: BSF FF2.7
04F4: MOVWF 28
.................... break;
04F6: MOVLB 0
04F8: BRA 0540
....................
.................... #IF USB_HID_DEVICE || USB_CDC_DEVICE
.................... case USB_DESC_CLASS_TYPE: //0x21
.................... //TODO does this work for multiple interfaces or multiple languages?
.................... //usb_getdesc_ptr=USB_CLASS_DESCRIPTORS[0][usb_ep0_rx_buffer[4]][usb_ep0_rx_buffer[2]];
.................... usb_getdesc_ptr=USB_CLASS_DESCRIPTORS[0][0][usb_ep0_rx_buffer[2]];
04FA: CLRF 03
04FC: MOVLB 4
04FE: MOVF x1A,W
0500: MOVFF FF2,6FD
0504: BCF FF2.7
0506: MOVLB 0
0508: RCALL 01B0
050A: MOVLB 6
050C: BTFSC xFD.7
050E: BSF FF2.7
0510: MOVWF 27
.................... if (usb_getdesc_ptr!=0xFF) {
0512: INCFSZ 27,W
0514: BRA 0518
0516: BRA 0536
.................... usb_getdesc_len=USB_CONFIG_DESC[usb_getdesc_ptr];
0518: CLRF 03
051A: MOVF 27,W
051C: MOVFF FF2,6FD
0520: BCF FF2.7
0522: MOVLB 0
0524: RCALL 014A
0526: MOVLB 6
0528: BTFSC xFD.7
052A: BSF FF2.7
052C: MOVWF 28
.................... break;
052E: MOVLB 0
0530: BRA 0540
.................... }
.................... else {
0532: BRA 053C
0534: MOVLB 6
.................... usb_request_stall();
0536: MOVLB 0
0538: RCALL 03F4
.................... return;
053A: BRA 0558
.................... }
.................... #endif
....................
.................... #IF USB_HID_DEVICE
.................... case USB_DESC_HIDREPORT_TYPE: //0x22
.................... usb_getdesc_ptr=USB_CLASS_SPECIFIC_DESC_LOOKUP[0][usb_ep0_rx_buffer[4]];
.................... if (usb_getdesc_ptr !=0xFF) {
.................... USB_stack_status.getdesc_type=USB_GETDESC_HIDREPORT_TYPE;
.................... usb_getdesc_len=USB_CLASS_SPECIFIC_DESC_LOOKUP_SIZE[0][usb_ep0_rx_buffer[4]];
.................... break;
.................... }
.................... else {
.................... usb_request_stall();
.................... return;
.................... }
.................... #endif
....................
.................... default:
.................... usb_request_stall();
053C: RCALL 03F4
.................... return;
053E: BRA 0558
.................... }
.................... if (usb_ep0_rx_buffer[7]==0) {
0540: MOVLB 4
0542: MOVF x1F,F
0544: BNZ 0550
.................... if (usb_getdesc_len > usb_ep0_rx_buffer[6])
0546: MOVF 28,W
0548: SUBWF x1E,W
054A: BC 0550
.................... usb_getdesc_len = usb_ep0_rx_buffer[6];
054C: MOVFF 41E,28
.................... }
.................... USB_stack_status.dev_req=GET_DESCRIPTOR;
0550: MOVLW 01
0552: MOVWF 1D
.................... usb_copy_desc_seg_to_ep();
0554: MOVLB 0
0556: RCALL 03FA
.................... }
0558: GOTO 083C (RETURN)
....................
.................... /**************************************************************
.................... /* usb_finish_set_address()
.................... /*
.................... /* Input: USB_address_pending holds the address we were asked to set to.
.................... /*
.................... /* Summary: Sets the address.
.................... /*
.................... /* This code should only be run on the PIC USB peripheral, and not the
.................... /* National peripheral.
.................... /*
.................... /* Part of usb_isr_tok_setup_dne()
.................... /***************************************************************/
.................... void usb_finish_set_address() {
.................... debug_usb(debug_putc," FSA ");
.................... USB_stack_status.curr_config=0; // make sure current configuration is 0
*
0F7A: CLRF 1E
....................
.................... #ifdef __PIC__
.................... USB_stack_status.dev_req=NONE; // no request pending
0F7C: CLRF 1D
.................... usb_set_address(USB_address_pending);
0F7E: MOVFF 26,6FE
0F82: BRA 0F60
.................... #endif
.................... }
0F84: GOTO 1076 (RETURN)
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... ///
.................... /// The following function retrieve data from constant arrays. This may
.................... /// look un-optimized, but remember that you can't create a pointer to
.................... /// a constant array.
.................... ///
.................... ///////////////////////////////////////////////////////////////////////////
.................... void usb_copy_desc_seg_to_ep(void) {
.................... unsigned int i=0;
*
03FA: MOVLB 6
03FC: CLRF xFE
.................... char c;
....................
.................... while ((usb_getdesc_len)&&(i<USB_MAX_EP0_PACKET_LENGTH))
.................... {
03FE: MOVF 28,F
0400: BZ 0486
0402: MOVF xFE,W
0404: SUBLW 3F
0406: BNC 0486
.................... switch(USB_stack_status.getdesc_type) {
0408: MOVF 20,W
040A: MOVLB 0
040C: BZ 0418
040E: XORLW 02
0410: BZ 0432
0412: XORLW 01
0414: BZ 044C
0416: BRA 0466
.................... case USB_GETDESC_CONFIG_TYPE:
.................... c=USB_CONFIG_DESC[usb_getdesc_ptr];
0418: CLRF 03
041A: MOVF 27,W
041C: MOVFF FF2,700
0420: BCF FF2.7
0422: RCALL 014A
0424: MOVLB 7
0426: BTFSC x00.7
0428: BSF FF2.7
042A: MOVFF FE8,6FF
.................... break;
042E: MOVLB 0
0430: BRA 0466
....................
.................... #IF USB_HID_DEVICE
.................... case USB_GETDESC_HIDREPORT_TYPE:
.................... c=USB_CLASS_SPECIFIC_DESC[usb_getdesc_ptr];
.................... break;
.................... #endif
....................
.................... case USB_GETDESC_STRING_TYPE:
.................... c=USB_STRING_DESC[usb_getdesc_ptr];
0432: CLRF 03
0434: MOVF 27,W
0436: MOVFF FF2,700
043A: BCF FF2.7
043C: RCALL 01EA
043E: MOVLB 7
0440: BTFSC x00.7
0442: BSF FF2.7
0444: MOVFF FE8,6FF
.................... break;
0448: MOVLB 0
044A: BRA 0466
....................
.................... case USB_GETDESC_DEVICE_TYPE:
.................... c=USB_DEVICE_DESC[usb_getdesc_ptr];
044C: CLRF 03
044E: MOVF 27,W
0450: MOVFF FF2,700
0454: BCF FF2.7
0456: RCALL 01C8
0458: MOVLB 7
045A: BTFSC x00.7
045C: BSF FF2.7
045E: MOVFF FE8,6FF
.................... break;
0462: MOVLB 0
0464: BRA 0466
.................... }
.................... usb_getdesc_ptr++;
0466: INCF 27,F
.................... usb_getdesc_len--;
0468: DECF 28,F
.................... usb_ep0_tx_buffer[i++]=c;
046A: MOVLB 6
046C: MOVF xFE,W
046E: INCF xFE,F
0470: ADDLW 58
0472: CLRF 03
0474: BTFSC FD8.0
0476: INCF 03,F
0478: MOVWF FE9
047A: MOVLW 04
047C: ADDWF 03,W
047E: MOVWF FEA
0480: MOVFF 6FF,FEF
.................... }
0484: BRA 03FE
....................
.................... if ((!usb_getdesc_len)&&(i!=USB_MAX_EP0_PACKET_LENGTH)) {
0486: MOVF 28,F
0488: BNZ 0492
048A: MOVF xFE,W
048C: SUBLW 40
048E: BZ 0492
.................... USB_stack_status.dev_req = NONE;
0490: CLRF 1D
.................... }
....................
.................... usb_request_send_response(i);
0492: MOVFF 6FE,700
0496: MOVLB 0
0498: RCALL 03EE
.................... }
049A: RETLW 00
....................
.................... #ENDIF
....................
....................
.................... struct {
.................... unsigned int32 dwDTERrate; //data terminal rate, in bits per second
.................... unsigned int8 bCharFormat; //num of stop bits (0=1, 1=1.5, 2=2)
.................... unsigned int8 bParityType; //parity (0=none, 1=odd, 2=even, 3=mark, 4=space)
.................... unsigned int8 bDataBits; //data bits (5,6,7,8 or 16)
.................... } __attribute__((__packed__)) usb_cdc_line_coding;
....................
.................... //length of time, in ms, of break signal as we received in a SendBreak message.
.................... //if ==0xFFFF, send break signal until we receive a 0x0000.
.................... unsigned int16 usb_cdc_break;
....................
.................... unsigned int8 usb_cdc_encapsulated_cmd[8];
....................
.................... unsigned int8 usb_cdc_put_buffer[USB_CDC_DATA_IN_SIZE];
.................... #define usb_cdc_put_buffer_free() usb_tbe(USB_CDC_DATA_IN_ENDPOINT)
.................... #if USB_CDC_DATA_IN_SIZE>=0x100
.................... unsigned int16 usb_cdc_put_buffer_nextin=0;
.................... // int16 usb_cdc_last_data_packet_size;
.................... #else
.................... unsigned int8 usb_cdc_put_buffer_nextin=0;
.................... // int8 usb_cdc_last_data_packet_size;
.................... #endif
....................
.................... struct {
.................... int1 got;
.................... #if USB_CDC_DATA_OUT_SIZE>=0x100
.................... unsigned int16 len;
.................... unsigned int16 index;
.................... #else
.................... unsigned int8 len;
.................... unsigned int8 index;
.................... #endif
.................... } usb_cdc_get_buffer_status;
....................
.................... #if defined(__PIC__)
.................... #define usb_cdc_get_buffer_status_buffer usb_ep2_rx_buffer
.................... #else
.................... unsigned int8 usb_cdc_get_buffer_status_buffer[USB_CDC_DATA_OUT_SIZE];
.................... #endif
....................
.................... int1 usb_cdc_got_set_line_coding;
....................
.................... struct {
.................... int1 dte_present; //1=DTE present, 0=DTE not present
.................... int1 active; //1=activate carrier, 0=deactivate carrier
.................... unsigned int reserved:6;
.................... } usb_cdc_carrier;
....................
.................... unsigned int8 g_LastCDCDataPacketSize;
....................
.................... enum {USB_CDC_OUT_NOTHING=0, USB_CDC_OUT_COMMAND=1, USB_CDC_OUT_LINECODING=2, USB_CDC_WAIT_0LEN=3} __usb_cdc_state=0;
....................
.................... #if defined(__PCH__)
.................... #byte INTCON=0xFF2
.................... #bit INT_GIE=INTCON.7
.................... #else
.................... #word SR=0x42
.................... #endif
....................
.................... //handle OUT token done interrupt on endpoint 0 [read encapsulated cmd and line coding data]
.................... void usb_isr_tok_out_cdc_control_dne(void) {
.................... debug_usb(debug_putc,"CDC %X ",__usb_cdc_state);
....................
.................... switch (__usb_cdc_state) {
*
0E7E: MOVF x83,W
0E80: XORLW 01
0E82: BZ 0E8A
0E84: XORLW 03
0E86: BZ 0EB2
0E88: BRA 0EDA
.................... //printf(putc_tbe,"@%X@\r\n", __usb_cdc_state);
.................... case USB_CDC_OUT_COMMAND:
.................... //usb_get_packet(0, usb_cdc_encapsulated_cmd, 8);
.................... memcpy(usb_cdc_encapsulated_cmd, usb_ep0_rx_buffer,8);
0E8A: CLRF FEA
0E8C: MOVLW 34
0E8E: MOVWF FE9
0E90: MOVLW 04
0E92: MOVWF FE2
0E94: MOVLW 18
0E96: MOVWF FE1
0E98: MOVLW 08
0E9A: MOVWF 01
0E9C: MOVFF FE6,FEE
0EA0: DECFSZ 01,F
0EA2: BRA 0E9C
.................... #if USB_MAX_EP0_PACKET_LENGTH==8
.................... __usb_cdc_state=USB_CDC_WAIT_0LEN;
.................... usb_request_get_data();
.................... #else
.................... usb_put_0len_0();
0EA4: MOVLB 7
0EA6: CLRF x00
0EA8: MOVLB 0
0EAA: CALL 03EE
.................... __usb_cdc_state=0;
0EAE: CLRF x83
.................... #endif
.................... break;
0EB0: BRA 0EE2
....................
.................... #if USB_MAX_EP0_PACKET_LENGTH==8
.................... case USB_CDC_WAIT_0LEN:
.................... usb_put_0len_0();
.................... __usb_cdc_state=0;
.................... break;
.................... #endif
....................
.................... case USB_CDC_OUT_LINECODING:
.................... //usb_get_packet(0, &usb_cdc_line_coding, 7);
.................... //printf(putc_tbe,"\r\n!GSLC FIN!\r\n");
.................... memcpy(&usb_cdc_line_coding, usb_ep0_rx_buffer,7);
0EB2: CLRF FEA
0EB4: MOVLW 2B
0EB6: MOVWF FE9
0EB8: MOVLW 04
0EBA: MOVWF FE2
0EBC: MOVLW 18
0EBE: MOVWF FE1
0EC0: MOVLW 07
0EC2: MOVWF 01
0EC4: MOVFF FE6,FEE
0EC8: DECFSZ 01,F
0ECA: BRA 0EC4
.................... __usb_cdc_state=0;
0ECC: CLRF x83
.................... usb_put_0len_0();
0ECE: MOVLB 7
0ED0: CLRF x00
0ED2: MOVLB 0
0ED4: CALL 03EE
.................... break;
0ED8: BRA 0EE2
....................
.................... default:
.................... __usb_cdc_state=0;
0EDA: CLRF x83
.................... usb_init_ep0_setup();
0EDC: CALL 0284
.................... break;
0EE0: BRA 0EE2
.................... }
.................... }
0EE2: GOTO 0F4C (RETURN)
....................
.................... //handle IN token on 0 (setup packet)
.................... void usb_isr_tkn_cdc(void) {
.................... //make sure the request goes to a CDC interface
.................... if ((usb_ep0_rx_buffer[4] == 1) || (usb_ep0_rx_buffer[4] == 0)) {
*
0B12: MOVLB 4
0B14: DECFSZ x1C,W
0B16: BRA 0B1A
0B18: BRA 0B1E
0B1A: MOVF x1C,F
0B1C: BNZ 0BBA
.................... //printf(putc_tbe,"!%X!\r\n", usb_ep0_rx_buffer[1]);
.................... switch(usb_ep0_rx_buffer[1]) {
0B1E: MOVF x19,W
0B20: MOVLB 0
0B22: BZ 0B3A
0B24: XORLW 01
0B26: BZ 0B42
0B28: XORLW 21
0B2A: BZ 0B64
0B2C: XORLW 01
0B2E: BZ 0B6E
0B30: XORLW 03
0B32: BZ 0B94
0B34: XORLW 01
0B36: BZ 0BA2
0B38: BRA 0BB4
.................... case 0x00: //send_encapsulated_command
.................... __usb_cdc_state=USB_CDC_OUT_COMMAND;
0B3A: MOVLW 01
0B3C: MOVWF x83
.................... usb_request_get_data();
0B3E: RCALL 0B0C
.................... break;
0B40: BRA 0BB8
....................
.................... case 0x01: //get_encapsulated_command
.................... memcpy(usb_ep0_tx_buffer, usb_cdc_encapsulated_cmd, 8);
0B42: MOVLW 04
0B44: MOVWF FEA
0B46: MOVLW 58
0B48: MOVWF FE9
0B4A: CLRF FE2
0B4C: MOVLW 34
0B4E: MOVWF FE1
0B50: MOVLW 08
0B52: MOVWF 01
0B54: MOVFF FE6,FEE
0B58: DECFSZ 01,F
0B5A: BRA 0B54
.................... usb_request_send_response(usb_ep0_rx_buffer[6]); //send wLength bytes
0B5C: MOVFF 41E,700
0B60: RCALL 03EE
.................... break;
0B62: BRA 0BB8
....................
.................... case 0x20: //set_line_coding
.................... debug_usb(debug_putc,"!GSLC!");
.................... __usb_cdc_state=USB_CDC_OUT_LINECODING;
0B64: MOVLW 02
0B66: MOVWF x83
.................... usb_cdc_got_set_line_coding=TRUE;
0B68: BSF x80.0
.................... usb_request_get_data();
0B6A: RCALL 0B0C
.................... break;
0B6C: BRA 0BB8
....................
.................... case 0x21: //get_line_coding
.................... memcpy(usb_ep0_tx_buffer, &usb_cdc_line_coding, sizeof(usb_cdc_line_coding));
0B6E: MOVLW 04
0B70: MOVWF FEA
0B72: MOVLW 58
0B74: MOVWF FE9
0B76: CLRF FE2
0B78: MOVLW 2B
0B7A: MOVWF FE1
0B7C: MOVLW 07
0B7E: MOVWF 01
0B80: MOVFF FE6,FEE
0B84: DECFSZ 01,F
0B86: BRA 0B80
.................... usb_request_send_response(sizeof(usb_cdc_line_coding)); //send wLength bytes
0B88: MOVLW 07
0B8A: MOVLB 7
0B8C: MOVWF x00
0B8E: MOVLB 0
0B90: RCALL 03EE
.................... break;
0B92: BRA 0BB8
....................
.................... case 0x22: //set_control_line_state
.................... usb_cdc_carrier=usb_ep0_rx_buffer[2];
0B94: MOVFF 41A,81
.................... usb_put_0len_0();
0B98: MOVLB 7
0B9A: CLRF x00
0B9C: MOVLB 0
0B9E: RCALL 03EE
.................... break;
0BA0: BRA 0BB8
....................
.................... case 0x23: //send_break
.................... usb_cdc_break=make16(usb_ep0_rx_buffer[2],usb_ep0_rx_buffer[3]);
0BA2: MOVFF 41A,33
0BA6: MOVFF 41B,32
.................... usb_put_0len_0();
0BAA: MOVLB 7
0BAC: CLRF x00
0BAE: MOVLB 0
0BB0: RCALL 03EE
.................... break;
0BB2: BRA 0BB8
....................
.................... default:
.................... usb_request_stall();
0BB4: RCALL 03F4
.................... break;
0BB6: BRA 0BB8
0BB8: MOVLB 4
.................... }
.................... }
.................... }
0BBA: MOVLB 0
0BBC: GOTO 0BE6 (RETURN)
....................
.................... //handle OUT token done interrupt on endpoint 3 [buffer incoming received chars]
.................... void usb_isr_tok_out_cdc_data_dne(void) {
.................... usb_cdc_get_buffer_status.got=TRUE;
*
0F2C: BSF x7D.0
.................... usb_cdc_get_buffer_status.index=0;
0F2E: CLRF x7F
.................... #if (defined(__PIC__) && __PIC__)
.................... usb_cdc_get_buffer_status.len=usb_rx_packet_size(USB_CDC_DATA_OUT_ENDPOINT);
0F30: MOVLW 02
0F32: MOVLB 6
0F34: MOVWF xFE
0F36: MOVLB 0
0F38: BRA 0EE6
0F3A: MOVFF 01,7E
.................... #else
.................... usb_cdc_get_buffer_status.len=usb_get_packet_buffer(
.................... USB_CDC_DATA_OUT_ENDPOINT,&usb_cdc_get_buffer_status_buffer[0],USB_CDC_DATA_OUT_SIZE);
.................... #endif
.................... }
0F3E: GOTO 0F5A (RETURN)
....................
.................... //handle IN token done interrupt on endpoint 2 [transmit buffered characters]
.................... void usb_isr_tok_in_cdc_data_dne(void)
.................... {
.................... //putc('!');
.................... if (usb_cdc_put_buffer_nextin /* || (g_LastCDCDataPacketSize == USB_CDC_DATA_IN_SIZE)*/ )
*
104E: MOVF x7C,F
1050: BZ 1054
.................... {
.................... //printf("FL3 %LU\r\n", (int16)usb_cdc_put_buffer_nextin);
.................... usb_cdc_flush_out_buffer();
1052: RCALL 102C
.................... }
.................... }
1054: GOTO 1084 (RETURN)
....................
.................... void usb_cdc_flush_out_buffer(void)
.................... {
.................... //printf(putc_tbe, "FL %U\r\n", usb_cdc_put_buffer_nextin);
.................... usb_put_packet(USB_CDC_DATA_IN_ENDPOINT,usb_cdc_put_buffer,usb_cdc_put_buffer_nextin,USB_DTS_TOGGLE);
*
102C: MOVLW 02
102E: MOVLB 7
1030: MOVWF x3A
1032: CLRF x3C
1034: MOVLW 3C
1036: MOVWF x3B
1038: CLRF x3E
103A: MOVFF 7C,73D
103E: MOVLW 02
1040: MOVWF x3F
1042: MOVLB 0
1044: RCALL 0F88
.................... g_LastCDCDataPacketSize = usb_cdc_put_buffer_nextin;
1046: MOVFF 7C,82
.................... usb_cdc_put_buffer_nextin=0;
104A: CLRF x7C
.................... }
104C: RETLW 00
....................
.................... void usb_cdc_init(void)
.................... {
.................... usb_cdc_line_coding.dwDTERrate = 9600;
*
035C: CLRF 2E
035E: CLRF 2D
0360: MOVLW 25
0362: MOVWF 2C
0364: MOVLW 80
0366: MOVWF 2B
.................... usb_cdc_line_coding.bCharFormat = 0;
0368: CLRF 2F
.................... usb_cdc_line_coding.bParityType = 0;
036A: CLRF 30
.................... usb_cdc_line_coding.bDataBits = 8;
036C: MOVLW 08
036E: MOVWF 31
.................... (int8)usb_cdc_carrier = 0;
0370: CLRF x81
.................... usb_cdc_got_set_line_coding = FALSE;
0372: BCF x80.0
.................... usb_cdc_break = 0;
0374: CLRF 33
0376: CLRF 32
.................... usb_cdc_put_buffer_nextin = 0;
0378: CLRF x7C
.................... usb_cdc_get_buffer_status.got = 0;
037A: BCF x7D.0
.................... }
037C: RETLW 00
....................
.................... ////////////////// END USB CONTROL HANDLING //////////////////////////////////
....................
.................... ////////////////// BEGIN USB<->RS232 CDC LIBRARY /////////////////////////////
....................
.................... void usb_cdc_get_discard(void)
.................... {
.................... usb_cdc_get_buffer_status.got = FALSE;
.................... usb_flush_out(USB_CDC_DATA_OUT_ENDPOINT, USB_DTS_TOGGLE);
.................... }
....................
.................... char usb_cdc_getc(void)
.................... {
.................... char c;
....................
.................... while (!usb_cdc_kbhit()) {}
....................
.................... c=usb_cdc_get_buffer_status_buffer[usb_cdc_get_buffer_status.index++];
....................
.................... if (usb_cdc_get_buffer_status.index >= usb_cdc_get_buffer_status.len)
.................... {
.................... usb_cdc_get_discard();
.................... }
....................
.................... return(c);
.................... }
....................
.................... void usb_cdc_putc_fast(char c)
.................... {
.................... #if defined(__PCH__)
.................... int1 old_gie;
....................
.................... //disable global interrupts
.................... old_gie = INT_GIE;
*
1376: MOVLB 6
1378: BCF xDD.0
137A: BTFSC FF2.7
137C: BSF xDD.0
.................... INT_GIE = 0;
137E: BCF FF2.7
.................... #else
.................... int16 oldSR;
....................
.................... oldSR = SR;
.................... SR |= 0xE0;
.................... #endif
....................
.................... if (usb_cdc_put_buffer_nextin >= USB_CDC_DATA_IN_SIZE) {
1380: MOVLB 0
1382: MOVF x7C,W
1384: SUBLW 3F
1386: BC 138C
.................... usb_cdc_put_buffer_nextin = USB_CDC_DATA_IN_SIZE-1; //we just overflowed the buffer!
1388: MOVLW 3F
138A: MOVWF x7C
.................... }
.................... usb_cdc_put_buffer[usb_cdc_put_buffer_nextin++] = c;
138C: MOVF x7C,W
138E: INCF x7C,F
1390: CLRF 03
1392: ADDLW 3C
1394: MOVWF FE9
1396: MOVLW 00
1398: ADDWFC 03,W
139A: MOVWF FEA
139C: MOVFF 6DC,FEF
....................
.................... //renable global interrupts
.................... #if defined(__PCH__)
.................... INT_GIE = old_gie;
13A0: BCF FF2.7
13A2: MOVLB 6
13A4: BTFSC xDD.0
13A6: BSF FF2.7
13A8: CLRF 18
13AA: BTFSC FF2.7
13AC: BSF 18.7
13AE: BCF FF2.7
.................... #else
.................... SR = oldSR;
.................... #endif
....................
.................... /*
.................... if (usb_tbe(USB_CDC_DATA_IN_ENDPOINT)) {
.................... if (usb_cdc_put_buffer_nextin)
.................... usb_cdc_flush_out_buffer();
.................... }
.................... */
.................... if (usb_cdc_put_buffer_free()) {
13B0: MOVLW 02
13B2: MOVLB 7
13B4: MOVWF x47
13B6: MOVLB 0
13B8: RCALL 0D06
13BA: BTFSC 18.7
13BC: BSF FF2.7
13BE: MOVF 01,F
13C0: BZ 13D0
13C2: CLRF 18
13C4: BTFSC FF2.7
13C6: BSF 18.7
13C8: BCF FF2.7
.................... //printf("FL2 %LU\r\n", (int16)usb_cdc_put_buffer_nextin);
.................... usb_cdc_flush_out_buffer();
13CA: RCALL 102C
13CC: BTFSC 18.7
13CE: BSF FF2.7
.................... }
.................... //putc('*');
.................... }
13D0: GOTO 140A (RETURN)
....................
.................... void usb_cdc_putc(char c)
.................... {
.................... while (!usb_cdc_putready())
.................... {
13D4: MOVF x7C,W
13D6: SUBLW 3F
13D8: BC 1404
13DA: CLRF 18
13DC: BTFSC FF2.7
13DE: BSF 18.7
13E0: BCF FF2.7
.................... if (usb_cdc_put_buffer_free())
13E2: MOVLW 02
13E4: MOVLB 7
13E6: MOVWF x47
13E8: MOVLB 0
13EA: RCALL 0D06
13EC: BTFSC 18.7
13EE: BSF FF2.7
13F0: MOVF 01,F
13F2: BZ 1402
13F4: CLRF 18
13F6: BTFSC FF2.7
13F8: BSF 18.7
13FA: BCF FF2.7
.................... {
.................... //printf("FL1 %LU\r\n", (int16)usb_cdc_put_buffer_nextin);
.................... usb_cdc_flush_out_buffer();
13FC: RCALL 102C
13FE: BTFSC 18.7
1400: BSF FF2.7
.................... }
.................... //delay_ms(500);
.................... //printf(putc_tbe,"TBE=%U CNT=%U LST=%U\r\n",usb_tbe(USB_CDC_DATA_IN_ENDPOINT), usb_cdc_put_buffer_nextin, usb_cdc_last_data_packet_size);
.................... }
1402: BRA 13D4
.................... //putc('.');
.................... //putc(c);
.................... usb_cdc_putc_fast(c);
1404: MOVFF 6DB,6DC
1408: BRA 1376
.................... }
140A: RETLW 00
....................
.................... #include <ctype.h>
.................... ////////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2003 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS C ////
.................... //// compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, reproduction ////
.................... //// or distribution is permitted without written permission. ////
.................... //// Derivative programs created using this software in object code ////
.................... //// form are not restricted in any way. ////
.................... ////////////////////////////////////////////////////////////////////////////
....................
.................... #ifndef _CTYPE
.................... #define _CTYPE
....................
.................... #define islower(x) isamong(x,"abcdefghijklmnopqrstuvwxyz")
.................... #define isupper(x) isamong(x,"ABCDEFGHIJKLMNOPQRSTUVWXYZ")
.................... #define isalnum(x) isamong(x,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
.................... #define isalpha(x) isamong(x,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
.................... #define isdigit(x) isamong(x,"0123456789")
.................... #define isspace(x) ((x)==' ')
.................... #define isxdigit(x) isamong(x,"0123456789ABCDEFabcdef")
.................... #define iscntrl(x) ((x)<' ')
.................... #define isprint(x) ((x)>=' ')
.................... #define isgraph(x) ((x)>' ')
.................... #define ispunct(x) (((x)>' ')&&!isalnum(x))
....................
.................... #endif
....................
....................
....................
.................... BYTE gethex1_usb()
.................... {
.................... char digit;
....................
.................... digit = usb_cdc_getc();
....................
.................... usb_cdc_putc(digit);
....................
.................... if(digit<='9')
.................... return(digit-'0');
.................... else
.................... return((toupper(digit)-'A')+10);
.................... }
....................
.................... BYTE gethex_usb() {
.................... unsigned int8 lo,hi;
....................
.................... hi = gethex1_usb();
.................... lo = gethex1_usb();
.................... if(lo==0xdd)
.................... return(hi);
.................... else
.................... return( hi*16+lo );
.................... }
....................
.................... void get_string_usb(char* s, unsigned int max) {
.................... unsigned int len;
.................... char c;
....................
.................... --max;
.................... len=0;
.................... do {
.................... c=usb_cdc_getc();
.................... if(c==8) { // Backspace
.................... if(len>0) {
.................... len--;
.................... usb_cdc_putc(c);
.................... usb_cdc_putc(' ');
.................... usb_cdc_putc(c);
.................... }
.................... } else if ((c>=' ')&&(c<='~'))
.................... if(len<max) {
.................... s[len++]=c;
.................... usb_cdc_putc(c);
.................... }
.................... } while(c!=13);
.................... s[len]=0;
.................... }
....................
....................
.................... // stdlib.h is required for the ato_ conversions
.................... // in the following functions
.................... #ifdef _STDLIB
....................
.................... signed int get_int_usb() {
.................... char s[7];
.................... signed int i;
....................
.................... get_string_usb(s, 7);
....................
.................... i=atoi(s);
.................... return(i);
.................... }
....................
.................... signed long get_long_usb() {
.................... char s[13];
.................... signed long l;
....................
.................... get_string_usb(s, 13);
.................... l=atol(s);
.................... return(l);
.................... }
....................
.................... float get_float_usb() {
.................... char s[20];
.................... float f;
....................
.................... get_string_usb(s, 20);
.................... f = atof(s);
.................... return(f);
.................... }
....................
.................... #endif
....................
.................... #include <math.h>
.................... ////////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2008 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS C ////
.................... //// compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, reproduction ////
.................... //// or distribution is permitted without written permission. ////
.................... //// Derivative programs created using this software in object code ////
.................... //// form are not restricted in any way. ////
.................... ////////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// History: ////
.................... //// * 9/20/2001 : Improvments are made to sin/cos code. ////
.................... //// The code now is small, much faster, ////
.................... //// and more accurate. ////
.................... //// * 2/21/2007 : Compiler handles & operator differently and does
.................... //// not return generic (int8 *) so type cast is done ////
.................... //// ////
.................... ////////////////////////////////////////////////////////////////////////////
....................
.................... #ifndef MATH_H
.................... #define MATH_H
....................
.................... #ifdef PI
.................... #undef PI
.................... #endif
.................... #define PI 3.1415926535897932
....................
....................
.................... #define SQRT2 1.4142135623730950
....................
.................... //float const ps[4] = {5.9304945, 21.125224, 8.9403076, 0.29730279};
.................... //float const qs[4] = {1.0000000, 15.035723, 17.764134, 2.4934718};
....................
.................... ///////////////////////////// Round Functions //////////////////////////////
....................
.................... float32 CEIL_FLOOR(float32 x, unsigned int8 n)
.................... {
.................... float32 y, res;
.................... unsigned int16 l;
.................... int1 s;
....................
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y <= 32768.0)
.................... res = (float32)(unsigned int16)y;
....................
.................... else if (y < 10000000.0)
.................... {
.................... l = (unsigned int16)(y/32768.0);
.................... y = 32768.0*(y/32768.0 - (float32)l);
.................... res = 32768.0*(float32)l;
.................... res += (float32)(unsigned int16)y;
.................... }
....................
.................... else
.................... res = y;
....................
.................... y = y - (float32)(unsigned int16)y;
....................
.................... if (s)
.................... res = -res;
....................
.................... if (y != 0)
.................... {
.................... if (s == 1 && n == 0)
.................... res -= 1.0;
....................
.................... if (s == 0 && n == 1)
.................... res += 1.0;
.................... }
.................... if (x == 0)
.................... res = 0;
....................
.................... return (res);
.................... }
....................
.................... // Overloaded Functions to take care for new Data types in PCD
.................... // Overloaded function CEIL_FLOOR() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 CEIL_FLOOR(float48 x, unsigned int8 n)
.................... {
.................... float48 y, res;
.................... unsigned int16 l;
.................... int1 s;
....................
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y <= 32768.0)
.................... res = (float48)(unsigned int16)y;
....................
.................... else if (y < 10000000.0)
.................... {
.................... l = (unsigned int16)(y/32768.0);
.................... y = 32768.0*(y/32768.0 - (float48)l);
.................... res = 32768.0*(float32)l;
.................... res += (float48)(unsigned int16)y;
.................... }
....................
.................... else
.................... res = y;
....................
.................... y = y - (float48)(unsigned int16)y;
....................
.................... if (s)
.................... res = -res;
....................
.................... if (y != 0)
.................... {
.................... if (s == 1 && n == 0)
.................... res -= 1.0;
....................
.................... if (s == 0 && n == 1)
.................... res += 1.0;
.................... }
.................... if (x == 0)
.................... res = 0;
....................
.................... return (res);
.................... }
....................
....................
.................... // Overloaded function CEIL_FLOOR() for data type - Float64
.................... float64 CEIL_FLOOR(float64 x, unsigned int8 n)
.................... {
.................... float64 y, res;
.................... unsigned int16 l;
.................... int1 s;
....................
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y <= 32768.0)
.................... res = (float64)(unsigned int16)y;
....................
.................... else if (y < 10000000.0)
.................... {
.................... l = (unsigned int16)(y/32768.0);
.................... y = 32768.0*(y/32768.0 - (float64)l);
.................... res = 32768.0*(float64)l;
.................... res += (float64)(unsigned int16)y;
.................... }
....................
.................... else
.................... res = y;
....................
.................... y = y - (float64)(unsigned int16)y;
....................
.................... if (s)
.................... res = -res;
....................
.................... if (y != 0)
.................... {
.................... if (s == 1 && n == 0)
.................... res -= 1.0;
....................
.................... if (s == 0 && n == 1)
.................... res += 1.0;
.................... }
.................... if (x == 0)
.................... res = 0;
....................
.................... return (res);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float floor(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : rounds down the number x.
.................... // Date : N/A
.................... //
.................... float32 floor(float32 x)
.................... {
.................... return CEIL_FLOOR(x, 0);
.................... }
.................... // Following 2 functions are overloaded functions of floor() for PCD
.................... // Overloaded function floor() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 floor(float48 x)
.................... {
.................... return CEIL_FLOOR(x, 0);
.................... }
....................
.................... // Overloaded function floor() for data type - Float64
.................... float64 floor(float64 x)
.................... {
.................... return CEIL_FLOOR(x, 0);
.................... }
.................... #endif
....................
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float ceil(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : rounds up the number x.
.................... // Date : N/A
.................... //
.................... float32 ceil(float32 x)
.................... {
.................... return CEIL_FLOOR(x, 1);
.................... }
.................... // Following 2 functions are overloaded functions of ceil() for PCD
.................... // Overloaded function ceil() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 ceil(float48 x)
.................... {
.................... return CEIL_FLOOR(x, 1);
.................... }
....................
.................... // Overloaded function ceil() for data type - Float64
.................... float64 ceil(float64 x)
.................... {
.................... return CEIL_FLOOR(x, 1);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float fabs(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the absolute value of floating point number x
.................... // Returns : returns the absolute value of x
.................... // Date : N/A
.................... //
.................... #define fabs abs
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float fmod(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the floating point remainder of x/y
.................... // Returns : returns the value of x= i*y, for some integer i such that, if y
.................... // is non zero, the result has the same isgn of x na dmagnitude less than the
.................... // magnitude of y. If y is zero then a domain error occurs.
.................... // Date : N/A
.................... //
....................
.................... float fmod(float32 x,float32 y)
.................... {
.................... float32 i;
.................... if (y!=0.0)
.................... {
.................... i=(x/y < 0.0)? ceil(x/y): floor(x/y);
.................... return(x-(i*y));
.................... }
.................... else
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... }
.................... //Overloaded function for fmod() for PCD
.................... // Overloaded function fmod() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 fmod(float48 x,float48 y)
.................... {
.................... float48 i;
.................... if (y!=0.0)
.................... {
.................... i=(x/y < 0.0)? ceil(x/y): floor(x/y);
.................... return(x-(i*y));
.................... }
.................... else
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... }
.................... // Overloaded function fmod() for data type - Float64
.................... float64 fmod(float64 x,float64 y)
.................... {
.................... float64 i;
.................... if (y!=0.0)
.................... {
.................... i=(x/y < 0.0)? ceil(x/y): floor(x/y);
.................... return(x-(i*y));
.................... }
.................... else
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... }
.................... #endif
.................... //////////////////// Exponential and logarithmic functions ////////////////////
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float exp(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the value (e^x)
.................... // Date : N/A
.................... //
.................... #define LN2 0.6931471805599453
....................
.................... float const pe[6] = {0.000207455774, 0.00127100575, 0.00965065093,
.................... 0.0554965651, 0.240227138, 0.693147172};
....................
....................
.................... float32 exp(float32 x)
.................... {
.................... float32 y, res, r;
.................... #if defined(__PCD__)
.................... int8 data1;
.................... #endif
.................... signed int8 n;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x > 88.722838)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... n = (signed int16)(x/LN2);
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... n = -n;
.................... y = -y;
.................... }
....................
.................... res = 0.0;
.................... #if !defined(__PCD__)
.................... *((unsigned int8 *)(&res)) = n + 0x7F;
.................... #endif
....................
.................... #if defined(__PCD__) // Takes care of IEEE format for PCD
.................... data1 = n+0x7F;
.................... if(bit_test(data1,0))
.................... bit_set(*(((unsigned int8 *)(&res)+2)),7);
.................... rotate_right(&data1,1);
.................... bit_clear(data1,7);
.................... *(((unsigned int8 *)(&res)+3)) = data1;
.................... #endif
....................
.................... y = y/LN2 - (float32)n;
....................
.................... r = pe[0]*y + pe[1];
.................... r = r*y + pe[2];
.................... r = r*y + pe[3];
.................... r = r*y + pe[4];
.................... r = r*y + pe[5];
....................
.................... res = res*(1.0 + y*r);
....................
.................... if (s)
.................... res = 1.0/res;
.................... return(res);
.................... }
....................
....................
.................... //Overloaded function for exp() for PCD
.................... // Overloaded function exp() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 exp(float48 x)
.................... {
.................... float48 y, res, r;
.................... int8 data1;
.................... signed int8 n;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x > 88.722838)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... n = (signed int16)(x/LN2);
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... n = -n;
.................... y = -y;
.................... }
....................
.................... res = 0.0;
....................
.................... data1 = n+0x7F;
.................... if(bit_test(data1,0))
.................... bit_set(*(((unsigned int8 *)(&res)+4)),7);
.................... rotate_right(&data1,1);
.................... bit_clear(data1,7);
.................... *(((unsigned int8 *)(&res)+5)) = data1;
....................
.................... y = y/LN2 - (float48)n;
....................
.................... r = pe[0]*y + pe[1];
.................... r = r*y + pe[2];
.................... r = r*y + pe[3];
.................... r = r*y + pe[4];
.................... r = r*y + pe[5];
....................
.................... res = res*(1.0 + y*r);
....................
.................... if (s)
.................... res = 1.0/res;
.................... return(res);
.................... }
....................
.................... // Overloaded function exp() for data type - Float64
.................... float64 exp(float64 x)
.................... {
.................... float64 y, res, r;
.................... unsigned int16 data1, data2;
.................... unsigned int16 *p;
.................... signed int16 n;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x > 709.7827128)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... n = (signed int16)(x/LN2);
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... n = -n;
.................... y = -y;
.................... }
....................
.................... res = 0.0;
....................
.................... #if !defined(__PCD__)
.................... *((unsigned int16 *)(&res)) = n + 0x7F;
.................... #endif
.................... p= (((unsigned int16 *)(&res))+3);
.................... data1 = *p;
.................... data2 = *p;
.................... data1 = n + 0x3FF;
.................... data1 = data1 <<4;
.................... if(bit_test(data2,15))
.................... bit_set(data1,15);
.................... data2 = data2 & 0x000F;
.................... data1 ^= data2;
....................
.................... *(((unsigned int16 *)(&res)+3)) = data1;
....................
....................
.................... y = y/LN2 - (float64)n;
....................
.................... r = pe[0]*y + pe[1];
.................... r = r*y + pe[2];
.................... r = r*y + pe[3];
.................... r = r*y + pe[4];
.................... r = r*y + pe[5];
....................
.................... res = res*(1.0 + y*r);
....................
.................... if (s)
.................... res = 1.0/res;
.................... return(res);
.................... }
....................
.................... #ENDIF
....................
....................
.................... /************************************************************/
....................
.................... float32 const pl[4] = {0.45145214, -9.0558803, 26.940971, -19.860189};
.................... float32 const ql[4] = {1.0000000, -8.1354259, 16.780517, -9.9300943};
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float log(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the the natural log of x
.................... // Date : N/A
.................... //
.................... float32 log(float32 x)
.................... {
.................... float32 y, res, r, y2;
.................... #if defined(__PCD__)
.................... unsigned int8 data1,data2;
.................... #endif
.................... signed int8 n;
.................... #ifdef _ERRNO
.................... if(x <0)
.................... {
.................... errno=EDOM;
.................... }
.................... if(x ==0)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... y = x;
....................
.................... if (y != 1.0)
.................... {
.................... #if !defined(__PCD__)
.................... *((unsigned int8 *)(&y)) = 0x7E;
.................... #endif
....................
.................... #if defined(__PCD__) // Takes care of IEEE format
.................... data2 = *(((unsigned int8 *)(&y))+3);
.................... *(((unsigned int8 *)(&y))+3) = 0x3F;
.................... data1 = *(((unsigned int8 *)(&y))+2);
.................... bit_clear(data1,7);
.................... *(((unsigned int8 *)(&y))+2) = data1;
.................... if(bit_test(data2,7))
.................... bit_set(*(((unsigned int8 *)(&y))+3),7);
.................... #endif
....................
.................... y = (y - 1.0)/(y + 1.0);
....................
.................... y2=y*y;
....................
.................... res = pl[0]*y2 + pl[1];
.................... res = res*y2 + pl[2];
.................... res = res*y2 + pl[3];
....................
.................... r = ql[0]*y2 + ql[1];
.................... r = r*y2 + ql[2];
.................... r = r*y2 + ql[3];
....................
.................... res = y*res/r;
.................... #if !defined(__PCD__)
.................... n = *((unsigned int8 *)(&x)) - 0x7E;
.................... #endif
.................... #if defined(__PCD__)
.................... data1 = *(((unsigned int8 *)(&x)+3));
.................... rotate_left(&data1,1);
.................... data2 = *(((unsigned int8 *)(&x)+2));
.................... if(bit_test (data2,7))
.................... bit_set(data1,0);
.................... n = data1 - 0x7E;
.................... #endif
....................
.................... if (n<0)
.................... r = -(float32)-n;
.................... else
.................... r = (float32)n;
....................
.................... res += r*LN2;
.................... }
....................
.................... else
.................... res = 0.0;
....................
.................... return(res);
.................... }
....................
.................... //Overloaded function for log() for PCD
.................... // Overloaded function log() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 log(float48 x)
.................... {
.................... float48 y, res, r, y2;
.................... unsigned int8 data1,data2;
.................... signed int8 n;
.................... #ifdef _ERRNO
.................... if(x <0)
.................... {
.................... errno=EDOM;
.................... }
.................... if(x ==0)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... y = x;
....................
.................... if (y != 1.0)
.................... {
....................
.................... #if !defined(__PCD__)
.................... *((unsigned int8 *)(&y)) = 0x7E;
.................... #endif
.................... data2 = *(((unsigned int8 *)(&y))+5);
.................... *(((unsigned int8 *)(&y))+5) = 0x3F;
.................... data1 = *(((unsigned int8 *)(&y))+4);
.................... bit_clear(data1,7);
.................... *(((unsigned int8 *)(&y))+4) = data1;
....................
.................... if(bit_test(data2,7))
.................... bit_set(*(((unsigned int8 *)(&y))+4),7);
.................... y = (y - 1.0)/(y + 1.0);
....................
.................... y2=y*y;
....................
.................... res = pl[0]*y2 + pl[1];
.................... res = res*y2 + pl[2];
.................... res = res*y2 + pl[3];
....................
.................... r = ql[0]*y2 + ql[1];
.................... r = r*y2 + ql[2];
.................... r = r*y2 + ql[3];
....................
.................... res = y*res/r;
....................
.................... data1 = *(((unsigned int8 *)(&x)+5));
.................... rotate_left(&data1,1);
.................... data2 = *(((unsigned int8 *)(&x)+4));
.................... if(bit_test (data2,7))
.................... bit_set(data1,0);
....................
.................... n = data1 - 0x7E;
....................
.................... if (n<0)
.................... r = -(float48)-n;
.................... else
.................... r = (float48)n;
....................
.................... res += r*LN2;
.................... }
....................
.................... else
.................... res = 0.0;
....................
.................... return(res);
.................... }
....................
.................... // Overloaded function log() for data type - Float48
.................... #if defined(__PCD__)
.................... float32 const pl_64[4] = {0.45145214, -9.0558803, 26.940971, -19.860189};
.................... float32 const ql_64[4] = {1.0000000, -8.1354259, 16.780517, -9.9300943};
.................... #endif
.................... float64 log(float64 x)
.................... {
.................... float64 y, res, r, y2;
.................... unsigned int16 data1,data2;
.................... unsigned int16 *p;
.................... signed int16 n;
.................... #ifdef _ERRNO
.................... if(x <0)
.................... {
.................... errno=EDOM;
.................... }
.................... if(x ==0)
.................... {
.................... errno=ERANGE;
.................... return(0);
.................... }
.................... #endif
.................... y = x;
....................
.................... if (y != 1.0)
.................... {
.................... #if !defined(__PCD__)
.................... *((unsigned int8 *)(&y)) = 0x7E;
.................... #endif
.................... p= (((unsigned int16 *)(&y))+3);
.................... data1 = *p;
.................... data2 = *p;
.................... data1 = 0x3FE;
.................... data1 = data1 <<4;
.................... if(bit_test (data2,15))
.................... bit_set(data1,15);
.................... data2 = data2 & 0x000F;
.................... data1 ^=data2;
....................
.................... *p = data1;
....................
.................... y = (y - 1.0)/(y + 1.0);
....................
.................... y2=y*y;
....................
.................... res = pl_64[0]*y2 + pl_64[1];
.................... res = res*y2 + pl_64[2];
.................... res = res*y2 + pl_64[3];
....................
.................... r = ql_64[0]*y2 + ql_64[1];
.................... r = r*y2 + ql_64[2];
.................... r = r*y2 + ql_64[3];
....................
.................... res = y*res/r;
....................
.................... p= (((unsigned int16 *)(&x))+3);
.................... data1 = *p;
.................... bit_clear(data1,15);
.................... data1 = data1 >>4;
.................... n = data1 - 0x3FE;
....................
....................
.................... if (n<0)
.................... r = -(float64)-n;
.................... else
.................... r = (float64)n;
....................
.................... res += r*LN2;
.................... }
....................
.................... else
.................... res = 0.0;
....................
.................... return(res);
.................... }
.................... #endif
....................
....................
.................... #define LN10 2.3025850929940456
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float log10(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the the log base 10 of x
.................... // Date : N/A
.................... //
.................... float32 log10(float32 x)
.................... {
.................... float32 r;
....................
.................... r = log(x);
.................... r = r/LN10;
.................... return(r);
.................... }
....................
.................... //Overloaded functions for log10() for PCD
.................... // Overloaded function log10() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 log10(float48 x)
.................... {
.................... float48 r;
....................
.................... r = log(x);
.................... r = r/LN10;
.................... return(r);
.................... }
....................
.................... // Overloaded function log10() for data type - Float64
.................... float64 log10(float64 x)
.................... {
.................... float64 r;
....................
.................... r = log(x);
.................... r = r/LN10;
.................... return(r);
.................... }
.................... #endif
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float modf(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description :breaks the argument value int integral and fractional parts,
.................... // ach of which have the same sign as the argument. It stores the integral part
.................... // as a float in the object pointed to by the iptr
.................... // Returns : returns the signed fractional part of value.
.................... // Date : N/A
.................... //
....................
.................... float32 modf(float32 value,float32 *iptr)
.................... {
.................... *iptr=(value < 0.0)? ceil(value): floor(value);
.................... return(value - *iptr);
.................... }
.................... //Overloaded functions for modf() for PCD
.................... // Overloaded function modf() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 modf(float48 value,float48 *iptr)
.................... {
.................... *iptr=(value < 0.0)? ceil(value): floor(value);
.................... return(value - *iptr);
.................... }
.................... // Overloaded function modf() for data type - Float64
.................... float64 modf(float64 value,float64 *iptr)
.................... {
.................... *iptr=(value < 0.0)? ceil(value): floor(value);
.................... return(value - *iptr);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float pwr(float x,float y)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the value (x^y)
.................... // Date : N/A
.................... //
.................... float32 pwr(float32 x,float32 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
.................... //Overloaded functions for pwr() for PCD
.................... // Overloaded function pwr() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 pwr(float48 x,float48 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
.................... // Overloaded function pwr() for data type - Float64
.................... float64 pwr(float64 x,float64 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
.................... #endif
....................
.................... //////////////////// Power functions ////////////////////
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float pow(float x,float y)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the value (x^y)
.................... // Date : N/A
.................... //
.................... float32 pow(float32 x,float32 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
.................... //Overloaded functions for pow() for PCD
.................... // Overloaded function for pow() data type - Float48
.................... #if defined(__PCD__)
.................... float48 pow(float48 x,float48 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
....................
.................... // Overloaded function pow() for data type - Float64
.................... float64 pow(float64 x,float64 y)
.................... {
.................... if(x>=0)
.................... return( exp(y*log(x)) );
.................... else
.................... return( -exp(y*log(-x)) );
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float sqrt(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the square root of x
.................... // Date : N/A
.................... //
.................... float32 sqrt(float32 x)
.................... {
.................... float32 y, res;
.................... #if defined(__PCD__)
.................... unsigned int16 data1,data2;
.................... #endif
.................... BYTE *p;
....................
.................... #ifdef _ERRNO
.................... if(x < 0)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
....................
.................... if( x<=0.0)
*
19C2: MOVFF 6DF,6ED
19C6: MOVFF 6DE,6EC
19CA: MOVFF 6DD,6EB
19CE: MOVFF 6DC,6EA
19D2: MOVLB 6
19D4: CLRF xF1
19D6: CLRF xF0
19D8: CLRF xEF
19DA: CLRF xEE
19DC: MOVLB 0
19DE: RCALL 1948
19E0: BC 19E4
19E2: BNZ 19EE
.................... return(0.0);
19E4: CLRF 00
19E6: CLRF 01
19E8: CLRF 02
19EA: CLRF 03
19EC: BRA 1ADE
....................
.................... y=x;
19EE: MOVFF 6DF,6E3
19F2: MOVFF 6DE,6E2
19F6: MOVFF 6DD,6E1
19FA: MOVFF 6DC,6E0
....................
.................... #if !defined(__PCD__)
.................... p=&y;
19FE: MOVLW 06
1A00: MOVLB 6
1A02: MOVWF xE9
1A04: MOVLW E0
1A06: MOVWF xE8
.................... (*p)=(BYTE)((((unsigned int16)(*p)) + 127) >> 1);
1A08: MOVFF 6E8,FE9
1A0C: MOVFF 6E9,FEA
1A10: MOVF FEF,W
1A12: CLRF xED
1A14: MOVWF xEC
1A16: MOVLW 7F
1A18: ADDWF xEC,F
1A1A: MOVLW 00
1A1C: ADDWFC xED,F
1A1E: BCF FD8.0
1A20: RRCF xED,W
1A22: RRCF xEC,W
1A24: MOVFF 6E9,FEA
1A28: MOVFF 6E8,FE9
1A2C: MOVWF FEF
.................... #endif
....................
.................... #if defined(__PCD__)
.................... p = (((unsigned int8 *)(&y))+3);
.................... data1 = *(((unsigned int8 *)(&y))+3);
.................... data2 = *(((unsigned int8 *)(&y))+2);
.................... rotate_left(&data1,1);
.................... if(bit_test(data2,7))
.................... bit_set(data1,0);
.................... data1 = ((data1+127) >>1);
.................... bit_clear(data2,7);
.................... if(bit_test(data1,0))
.................... bit_set(data2,7);
.................... data1 = data1 >>1;
.................... *(((unsigned int8 *)(&y))+3) = data1;
.................... *(((unsigned int8 *)(&y))+2) = data2;
....................
.................... #endif
....................
.................... do {
.................... res=y;
1A2E: MOVFF 6E3,6E7
1A32: MOVFF 6E2,6E6
1A36: MOVFF 6E1,6E5
1A3A: MOVFF 6E0,6E4
.................... y+=(x/y);
1A3E: MOVFF 6DF,6ED
1A42: MOVFF 6DE,6EC
1A46: MOVFF 6DD,6EB
1A4A: MOVFF 6DC,6EA
1A4E: MOVFF 6E3,6F1
1A52: MOVFF 6E2,6F0
1A56: MOVFF 6E1,6EF
1A5A: MOVFF 6E0,6EE
1A5E: MOVLB 0
1A60: RCALL 16BA
1A62: BCF FD8.1
1A64: MOVFF 6E3,6ED
1A68: MOVFF 6E2,6EC
1A6C: MOVFF 6E1,6EB
1A70: MOVFF 6E0,6EA
1A74: MOVFF 03,6F1
1A78: MOVFF 02,6F0
1A7C: MOVFF 01,6EF
1A80: MOVFF 00,6EE
1A84: RCALL 1442
1A86: MOVFF 03,6E3
1A8A: MOVFF 02,6E2
1A8E: MOVFF 01,6E1
1A92: MOVFF 00,6E0
....................
.................... #if !defined(__PCD__)
.................... (*p)--;
1A96: MOVLB 6
1A98: MOVFF 6E8,FE9
1A9C: MOVFF 6E9,FEA
1AA0: DECF FEF,F
.................... #endif
....................
.................... #if defined(__PCD__)
.................... data1 = *(((unsigned int8 *)(&y))+3);
.................... data2 = *(((unsigned int8 *)(&y))+2);
.................... rotate_left(&data1,1);
.................... if(bit_test(data2,7))
.................... bit_set(data1,0);
.................... data1--;
.................... bit_clear(data2,7);
.................... if(bit_test(data1,0))
.................... bit_set(data2,7);
.................... data1 = data1 >>1;
.................... *(((unsigned int8 *)(&y))+3) = data1;
.................... *(((unsigned int8 *)(&y))+2) = data2;
....................
.................... #endif
.................... } while(res != y);
1AA2: MOVFF 6E7,6ED
1AA6: MOVFF 6E6,6EC
1AAA: MOVFF 6E5,6EB
1AAE: MOVFF 6E4,6EA
1AB2: MOVFF 6E3,6F1
1AB6: MOVFF 6E2,6F0
1ABA: MOVFF 6E1,6EF
1ABE: MOVFF 6E0,6EE
1AC2: MOVLB 0
1AC4: RCALL 1948
1AC6: BTFSC FD8.2
1AC8: BRA 1ACE
1ACA: MOVLB 6
1ACC: BRA 1A2E
....................
.................... return(res);
1ACE: MOVFF 6E4,00
1AD2: MOVFF 6E5,01
1AD6: MOVFF 6E6,02
1ADA: MOVFF 6E7,03
.................... }
1ADE: GOTO 1CCA (RETURN)
.................... //Overloaded functions for sqrt() for PCD
.................... // Overloaded function sqrt() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 sqrt(float48 x)
.................... {
.................... float48 y, res;
.................... unsigned int16 data1,data2;
.................... BYTE *p;
....................
.................... #ifdef _ERRNO
.................... if(x < 0)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
....................
.................... if( x<=0.0)
.................... return(0.0);
....................
.................... y=x;
....................
.................... #if !defined(__PCD__)
.................... p=&y;
.................... (*p)=(BYTE)((((unsigned int16)(*p)) + 127) >> 1);
.................... #endif
....................
.................... #if defined(__PCD__)
.................... p = (((unsigned int8 *)(&y))+5);
.................... data1 = *(((unsigned int8 *)(&y))+5);
.................... data2 = *(((unsigned int8 *)(&y))+4);
.................... rotate_left(&data1,1);
.................... if(bit_test(data2,7))
.................... bit_set(data1,0);
.................... data1 = ((data1+127) >>1);
.................... bit_clear(data2,7);
.................... if(bit_test(data1,0))
.................... bit_set(data2,7);
.................... data1 = data1 >>1;
.................... *(((unsigned int8 *)(&y))+5) = data1;
.................... *(((unsigned int8 *)(&y))+4) = data2;
....................
.................... #endif
....................
.................... do {
.................... res=y;
.................... y+=(x/y);
....................
.................... #if !defined(__PCD__)
.................... (*p)--;
.................... #endif
....................
.................... data1 = *(((unsigned int8 *)(&y))+5);
.................... data2 = *(((unsigned int8 *)(&y))+4);
.................... rotate_left(&data1,1);
.................... if(bit_test(data2,7))
.................... bit_set(data1,0);
.................... data1--;
.................... bit_clear(data2,7);
.................... if(bit_test(data1,0))
.................... bit_set(data2,7);
.................... data1 = data1 >>1;
.................... *(((unsigned int8 *)(&y))+5) = data1;
.................... *(((unsigned int8 *)(&y))+4) = data2;
....................
.................... } while(res != y);
....................
.................... return(res);
.................... }
....................
.................... // Overloaded function sqrt() for data type - Float64
.................... float64 sqrt(float64 x)
.................... {
.................... float64 y, res;
.................... unsigned int16 *p;
.................... unsigned int16 temp1,temp2;
....................
.................... #ifdef _ERRNO
.................... if(x < 0)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
....................
.................... if( x<=0.0)
.................... return(0.0);
....................
.................... y=x;
.................... p= (((unsigned int16 *)(&y))+3);
.................... temp1 = *p;
.................... temp2 = *p;
.................... bit_clear(temp1,15);
.................... temp1 = (temp1>>4)+1023;
.................... temp1 = temp1 >> 1;
.................... temp1 = (temp1<<4) & 0xFFF0;
.................... if(bit_test(temp2,15))
.................... bit_set(temp1,15);
.................... temp2 = temp2 & 0x000F;
.................... temp1 ^= temp2;
....................
.................... (*p) = temp1;
....................
.................... do {
.................... res=y;
.................... y+=(x/y);
.................... temp1 = *p;
.................... temp2 = *p;
.................... bit_clear(temp1,15);
.................... temp1 = (temp1>>4);
.................... temp1--;
.................... temp1 = (temp1<<4) & 0xFFF0;
.................... if(bit_test(temp2,15))
.................... bit_set(temp1,15);
.................... temp2 = temp2 & 0x000F;
.................... temp1 ^= temp2;
.................... (*p) = temp1;
....................
.................... } while(res != y);
....................
.................... return(res);
.................... }
.................... #endif
....................
.................... ////////////////////////////// Trig Functions //////////////////////////////
.................... #ifdef PI_DIV_BY_TWO
.................... #undef PI_DIV_BY_TWO
.................... #endif
.................... #define PI_DIV_BY_TWO 1.5707963267948966
.................... #ifdef TWOBYPI
.................... #undef TWOBYPI
.................... #define TWOBYPI 0.6366197723675813
.................... #endif
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float cos(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the cosine value of the angle x, which is in radian
.................... // Date : 9/20/2001
.................... //
.................... float32 cos(float32 x)
.................... {
.................... float32 y, t, t2 = 1.0;
.................... unsigned int8 quad, i;
.................... float32 frac;
.................... float32 p[4] = {
.................... -0.499999993585,
.................... 0.041666636258,
.................... -0.0013888361399,
.................... 0.00002476016134
.................... };
....................
.................... if (x < 0) x = -x; // absolute value of input
....................
.................... quad = (unsigned int8)(x / PI_DIV_BY_TWO); // quadrant
.................... frac = (x / PI_DIV_BY_TWO) - quad; // fractional part of input
.................... quad = quad % 4; // quadrant (0 to 3)
....................
.................... if (quad == 0 || quad == 2)
.................... t = frac * PI_DIV_BY_TWO;
.................... else if (quad == 1)
.................... t = (1-frac) * PI_DIV_BY_TWO;
.................... else // should be 3
.................... t = (frac-1) * PI_DIV_BY_TWO;
....................
.................... y = 0.999999999781;
.................... t = t * t;
.................... for (i = 0; i <= 3; i++)
.................... {
.................... t2 = t2 * t;
.................... y = y + p[i] * t2;
.................... }
....................
.................... if (quad == 2 || quad == 1)
.................... y = -y; // correct sign
....................
.................... return (y);
.................... }
....................
....................
.................... //Overloaded functions for cos() for PCD
.................... // Overloaded function cos() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 cos(float48 x)
.................... {
.................... float48 y, t, t2 = 1.0;
.................... unsigned int8 quad, i;
.................... float48 frac;
.................... float48 p[4] = {
.................... -0.499999993585,
.................... 0.041666636258,
.................... -0.0013888361399,
.................... 0.00002476016134
.................... };
....................
.................... if (x < 0) x = -x; // absolute value of input
....................
.................... quad = (unsigned int8)(x / PI_DIV_BY_TWO); // quadrant
.................... frac = (x / PI_DIV_BY_TWO) - quad; // fractional part of input
.................... quad = quad % 4; // quadrant (0 to 3)
....................
.................... if (quad == 0 || quad == 2)
.................... t = frac * PI_DIV_BY_TWO;
.................... else if (quad == 1)
.................... t = (1-frac) * PI_DIV_BY_TWO;
.................... else // should be 3
.................... t = (frac-1) * PI_DIV_BY_TWO;
....................
.................... y = 0.999999999781;
.................... t = t * t;
.................... for (i = 0; i <= 3; i++)
.................... {
.................... t2 = t2 * t;
.................... y = y + p[i] * t2;
.................... }
....................
.................... if (quad == 2 || quad == 1)
.................... y = -y; // correct sign
....................
.................... return (y);
.................... }
....................
.................... // Overloaded function cos() for data type - Float48
.................... float64 cos(float64 x)
.................... {
.................... float64 y, t, t2 = 1.0;
.................... unsigned int8 quad, i;
.................... float64 frac;
.................... float64 p[4] = {
.................... -0.499999993585,
.................... 0.041666636258,
.................... -0.0013888361399,
.................... 0.00002476016134
.................... };
....................
.................... if (x < 0) x = -x; // absolute value of input
....................
.................... quad = (unsigned int8)(x / PI_DIV_BY_TWO); // quadrant
.................... frac = (x / PI_DIV_BY_TWO) - quad; // fractional part of input
.................... quad = quad % 4; // quadrant (0 to 3)
....................
.................... if (quad == 0 || quad == 2)
.................... t = frac * PI_DIV_BY_TWO;
.................... else if (quad == 1)
.................... t = (1-frac) * PI_DIV_BY_TWO;
.................... else // should be 3
.................... t = (frac-1) * PI_DIV_BY_TWO;
....................
.................... y = 0.999999999781;
.................... t = t * t;
.................... for (i = 0; i <= 3; i++)
.................... {
.................... t2 = t2 * t;
.................... y = y + p[i] * t2;
.................... }
....................
.................... if (quad == 2 || quad == 1)
.................... y = -y; // correct sign
....................
.................... return (y);
.................... }
....................
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float sin(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the sine value of the angle x, which is in radian
.................... // Date : 9/20/2001
.................... //
.................... float32 sin(float32 x)
.................... {
.................... return cos(x - PI_DIV_BY_TWO);
.................... }
....................
.................... //Overloaded functions for sin() for PCD
.................... // Overloaded function sin() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 sin(float48 x)
.................... {
.................... return cos(x - PI_DIV_BY_TWO);
.................... }
....................
.................... // Overloaded function sin() for data type - Float48
.................... float64 sin(float64 x)
.................... {
.................... return cos(x - PI_DIV_BY_TWO);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float tan(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the tangent value of the angle x, which is in radian
.................... // Date : 9/20/2001
.................... //
.................... float32 tan(float32 x)
.................... {
.................... float32 c, s;
....................
.................... c = cos(x);
.................... if (c == 0.0)
.................... return (1.0e+36);
....................
.................... s = sin(x);
.................... return(s/c);
.................... }
.................... //Overloaded functions for tan() for PCD
.................... // Overloaded function tan() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 tan(float48 x)
.................... {
.................... float48 c, s;
....................
.................... c = cos(x);
.................... if (c == 0.0)
.................... return (1.0e+36);
....................
.................... s = sin(x);
.................... return(s/c);
.................... }
....................
.................... // Overloaded function tan() for data type - Float48
.................... float64 tan(float64 x)
.................... {
.................... float64 c, s;
....................
.................... c = cos(x);
.................... if (c == 0.0)
.................... return (1.0e+36);
....................
.................... s = sin(x);
.................... return(s/c);
.................... }
.................... #endif
....................
.................... float32 const pas[3] = {0.49559947, -4.6145309, 5.6036290};
.................... float32 const qas[3] = {1.0000000, -5.5484666, 5.6036290};
....................
.................... float32 ASIN_COS(float32 x, unsigned int8 n)
.................... {
.................... float32 y, res, r, y2;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x <-1 || x > 1)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 0.5)
.................... {
.................... y = sqrt((1.0 - y)/2.0);
.................... n += 2;
.................... }
....................
.................... y2=y*y;
....................
.................... res = pas[0]*y2 + pas[1];
.................... res = res*y2 + pas[2];
....................
.................... r = qas[0]*y2 + qas[1];
.................... r = r*y2 + qas[2];
....................
.................... res = y*res/r;
....................
.................... if (n & 2) // |x| > 0.5
.................... res = PI_DIV_BY_TWO - 2.0*res;
.................... if (s)
.................... res = -res;
.................... if (n & 1) // take arccos
.................... res = PI_DIV_BY_TWO - res;
....................
.................... return(res);
.................... }
....................
.................... //Overloaded functions for ASIN_COS() for PCD
.................... // Overloaded function ASIN_COS() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 ASIN_COS(float48 x, unsigned int8 n)
.................... {
.................... float48 y, res, r, y2;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x <-1 || x > 1)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 0.5)
.................... {
.................... y = sqrt((1.0 - y)/2.0);
.................... n += 2;
.................... }
....................
.................... y2=y*y;
....................
.................... res = pas[0]*y2 + pas[1];
.................... res = res*y2 + pas[2];
....................
.................... r = qas[0]*y2 + qas[1];
.................... r = r*y2 + qas[2];
....................
.................... res = y*res/r;
....................
.................... if (n & 2) // |x| > 0.5
.................... res = PI_DIV_BY_TWO - 2.0*res;
.................... if (s)
.................... res = -res;
.................... if (n & 1) // take arccos
.................... res = PI_DIV_BY_TWO - res;
....................
.................... return(res);
.................... }
....................
.................... // Overloaded function ASIN_COS() for data type - Float64
.................... float64 ASIN_COS(float64 x, unsigned int8 n)
.................... {
.................... float64 y, res, r, y2;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x <-1 || x > 1)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 0.5)
.................... {
.................... y = sqrt((1.0 - y)/2.0);
.................... n += 2;
.................... }
....................
.................... y2=y*y;
....................
.................... res = pas[0]*y2 + pas[1];
.................... res = res*y2 + pas[2];
....................
.................... r = qas[0]*y2 + qas[1];
.................... r = r*y2 + qas[2];
....................
.................... res = y*res/r;
....................
.................... if (n & 2) // |x| > 0.5
.................... res = PI_DIV_BY_TWO - 2.0*res;
.................... if (s)
.................... res = -res;
.................... if (n & 1) // take arccos
.................... res = PI_DIV_BY_TWO - res;
....................
.................... return(res);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float asin(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arcsine value of the value x.
.................... // Date : N/A
.................... //
.................... float32 asin(float32 x)
.................... {
.................... float32 r;
....................
.................... r = ASIN_COS(x, 0);
.................... return(r);
.................... }
.................... //Overloaded functions for asin() for PCD
.................... // Overloaded function asin() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 asin(float48 x)
.................... {
.................... float48 r;
....................
.................... r = ASIN_COS(x, 0);
.................... return(r);
.................... }
....................
.................... // Overloaded function asin() for data type - Float64
.................... float64 asin(float64 x)
.................... {
.................... float64 r;
....................
.................... r = ASIN_COS(x, 0);
.................... return(r);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float acos(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arccosine value of the value x.
.................... // Date : N/A
.................... //
.................... float32 acos(float32 x)
.................... {
.................... float32 r;
....................
.................... r = ASIN_COS(x, 1);
.................... return(r);
.................... }
.................... //Overloaded functions for acos() for PCD
.................... // Overloaded function acos() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 acos(float48 x)
.................... {
.................... float48 r;
....................
.................... r = ASIN_COS(x, 1);
.................... return(r);
.................... }
....................
.................... // Overloaded function acos() for data type - Float64
.................... float64 acos(float64 x)
.................... {
.................... float64 r;
....................
.................... r = ASIN_COS(x, 1);
.................... return(r);
.................... }
.................... #endif
....................
.................... float32 const pat[4] = {0.17630401, 5.6710795, 22.376096, 19.818457};
.................... float32 const qat[4] = {1.0000000, 11.368190, 28.982246, 19.818457};
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float atan(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arctangent value of the value x.
.................... // Date : N/A
.................... //
.................... float32 atan(float32 x)
.................... {
.................... float32 y, res, r;
.................... int1 s, flag;
....................
.................... s = 0;
.................... flag = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 1.0)
.................... {
.................... y = 1.0/y;
.................... flag = 1;
.................... }
....................
.................... res = pat[0]*y*y + pat[1];
.................... res = res*y*y + pat[2];
.................... res = res*y*y + pat[3];
....................
.................... r = qat[0]*y*y + qat[1];
.................... r = r*y*y + qat[2];
.................... r = r*y*y + qat[3];
....................
.................... res = y*res/r;
....................
....................
.................... if (flag) // for |x| > 1
.................... res = PI_DIV_BY_TWO - res;
.................... if (s)
.................... res = -res;
....................
.................... return(res);
.................... }
.................... //Overloaded functions for atan() for PCD
.................... // Overloaded function atan() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 atan(float48 x)
.................... {
.................... float48 y, res, r;
.................... int1 s, flag;
....................
.................... s = 0;
.................... flag = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 1.0)
.................... {
.................... y = 1.0/y;
.................... flag = 1;
.................... }
....................
.................... res = pat[0]*y*y + pat[1];
.................... res = res*y*y + pat[2];
.................... res = res*y*y + pat[3];
....................
.................... r = qat[0]*y*y + qat[1];
.................... r = r*y*y + qat[2];
.................... r = r*y*y + qat[3];
....................
.................... res = y*res/r;
....................
....................
.................... if (flag) // for |x| > 1
.................... res = PI_DIV_BY_TWO - res;
.................... if (s)
.................... res = -res;
....................
.................... return(res);
.................... }
....................
.................... // Overloaded function atan() for data type - Float64
.................... float64 atan(float64 x)
.................... {
.................... float64 y, res, r;
.................... int1 s, flag;
....................
.................... s = 0;
.................... flag = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 1.0)
.................... {
.................... y = 1.0/y;
.................... flag = 1;
.................... }
....................
.................... res = pat[0]*y*y + pat[1];
.................... res = res*y*y + pat[2];
.................... res = res*y*y + pat[3];
....................
.................... r = qat[0]*y*y + qat[1];
.................... r = r*y*y + qat[2];
.................... r = r*y*y + qat[3];
....................
.................... res = y*res/r;
....................
....................
.................... if (flag) // for |x| > 1
.................... res = PI_DIV_BY_TWO - res;
.................... if (s)
.................... res = -res;
....................
.................... return(res);
.................... }
.................... #endif
....................
.................... /////////////////////////////////////////////////////////////////////////////
.................... // float atan2(float y, float x)
.................... /////////////////////////////////////////////////////////////////////////////
.................... // Description :computes the principal value of arc tangent of y/x, using the
.................... // signs of both the arguments to determine the quadrant of the return value
.................... // Returns : returns the arc tangent of y/x.
.................... // Date : N/A
.................... //
....................
.................... float32 atan2(float32 y,float32 x)
.................... {
.................... float32 z;
.................... int1 sign;
.................... unsigned int8 quad;
.................... sign=0;
.................... quad=0; //quadrant
.................... quad=((y<=0.0)?((x<=0.0)?3:4):((x<0.0)?2:1));
.................... if(y<0.0)
.................... {
.................... sign=1;
.................... y=-y;
.................... }
.................... if(x<0.0)
.................... {
.................... x=-x;
.................... }
.................... if (x==0.0)
.................... {
.................... if(y==0.0)
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... else
.................... {
.................... if(sign)
.................... {
.................... return (-(PI_DIV_BY_TWO));
.................... }
.................... else
.................... {
.................... return (PI_DIV_BY_TWO);
.................... }
.................... }
.................... }
.................... else
.................... {
.................... z=y/x;
.................... switch(quad)
.................... {
.................... case 1:
.................... {
.................... return atan(z);
.................... break;
.................... }
.................... case 2:
.................... {
.................... // return (atan(z)+PI_DIV_BY_TWO); //2L3122
.................... return (PI-atan(z));
.................... break;
.................... }
.................... case 3:
.................... {
.................... return (atan(z)-PI);
.................... break;
.................... }
.................... case 4:
.................... {
.................... return (-atan(z));
.................... break;
.................... }
.................... }
.................... }
.................... }
....................
.................... //Overloaded functions for atan2() for PCD
.................... // Overloaded function atan2() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 atan2(float48 y,float48 x)
.................... {
.................... float48 z;
.................... int1 sign;
.................... unsigned int8 quad;
.................... sign=0;
.................... quad=0; //quadrant
.................... quad=((y<=0.0)?((x<=0.0)?3:4):((x<0.0)?2:1));
.................... if(y<0.0)
.................... {
.................... sign=1;
.................... y=-y;
.................... }
.................... if(x<0.0)
.................... {
.................... x=-x;
.................... }
.................... if (x==0.0)
.................... {
.................... if(y==0.0)
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... else
.................... {
.................... if(sign)
.................... {
.................... return (-(PI_DIV_BY_TWO));
.................... }
.................... else
.................... {
.................... return (PI_DIV_BY_TWO);
.................... }
.................... }
.................... }
.................... else
.................... {
.................... z=y/x;
.................... switch(quad)
.................... {
.................... case 1:
.................... {
.................... return atan(z);
.................... break;
.................... }
.................... case 2:
.................... {
.................... // return (atan(z)+PI_DIV_BY_TWO); //2L3122
.................... return (PI-atan(z));
.................... break;
.................... }
.................... case 3:
.................... {
.................... return (atan(z)-PI);
.................... break;
.................... }
.................... case 4:
.................... {
.................... return (-atan(z));
.................... break;
.................... }
.................... }
.................... }
.................... }
....................
.................... // Overloaded function atan2() for data type - Float64
.................... float64 atan2(float64 y,float64 x)
.................... {
.................... float64 z;
.................... int1 sign;
.................... unsigned int8 quad;
.................... sign=0;
.................... quad=0; //quadrant
.................... quad=((y<=0.0)?((x<=0.0)?3:4):((x<0.0)?2:1));
.................... if(y<0.0)
.................... {
.................... sign=1;
.................... y=-y;
.................... }
.................... if(x<0.0)
.................... {
.................... x=-x;
.................... }
.................... if (x==0.0)
.................... {
.................... if(y==0.0)
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... else
.................... {
.................... if(sign)
.................... {
.................... return (-(PI_DIV_BY_TWO));
.................... }
.................... else
.................... {
.................... return (PI_DIV_BY_TWO);
.................... }
.................... }
.................... }
.................... else
.................... {
.................... z=y/x;
.................... switch(quad)
.................... {
.................... case 1:
.................... {
.................... return atan(z);
.................... break;
.................... }
.................... case 2:
.................... {
.................... // return (atan(z)+PI_DIV_BY_TWO); //2L3122
.................... return (PI-atan(z));
.................... break;
.................... }
.................... case 3:
.................... {
.................... return (atan(z)-PI);
.................... break;
.................... }
.................... case 4:
.................... {
.................... return (-atan(z));
.................... break;
.................... }
.................... }
.................... }
.................... }
.................... #endif
....................
.................... //////////////////// Hyperbolic functions ////////////////////
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float cosh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic cosine value of x
.................... // Returns : returns the hyperbolic cosine value of x
.................... // Date : N/A
.................... //
....................
.................... float32 cosh(float32 x)
.................... {
.................... return ((exp(x)+exp(-x))/2);
.................... }
.................... //Overloaded functions for cosh() for PCD
.................... // Overloaded function cosh() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 cosh(float48 x)
.................... {
.................... return ((exp(x)+exp(-x))/2);
.................... }
....................
.................... // Overloaded function cosh() for data type - Float64
.................... float64 cosh(float64 x)
.................... {
.................... return ((exp(x)+exp(-x))/2);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float sinh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic sine value of x
.................... // Returns : returns the hyperbolic sine value of x
.................... // Date : N/A
.................... //
....................
.................... float32 sinh(float32 x)
.................... {
....................
.................... return ((exp(x) - exp(-x))/2);
.................... }
.................... //Overloaded functions for sinh() for PCD
.................... // Overloaded function sinh() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 sinh(float48 x)
.................... {
....................
.................... return ((exp(x) - exp(-x))/2);
.................... }
....................
.................... // Overloaded function sinh() for data type - Float48
.................... float64 sinh(float64 x)
.................... {
....................
.................... return ((exp(x) - exp(-x))/2);
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float tanh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic tangent value of x
.................... // Returns : returns the hyperbolic tangent value of x
.................... // Date : N/A
.................... //
....................
.................... float32 tanh(float32 x)
.................... {
.................... return(sinh(x)/cosh(x));
.................... }
.................... //Overloaded functions for tanh() for PCD
.................... // Overloaded function tanh() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 tanh(float48 x)
.................... {
.................... return(sinh(x)/cosh(x));
.................... }
....................
.................... // Overloaded function tanh() for data type - Float64
.................... float64 tanh(float64 x)
.................... {
.................... return(sinh(x)/cosh(x));
.................... }
.................... #endif
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float frexp(float x, signed int *exp)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : breaks a floating point number into a normalized fraction and an integral
.................... // power of 2. It stores the integer in the signed int object pointed to by exp.
.................... // Returns : returns the value x, such that x is a double with magnitude in the interval
.................... // [1/2,1) or zero, and value equals x times 2 raised to the power *exp.If value is zero,
.................... // both parts of the result are zero.
.................... // Date : N/A
.................... //
....................
.................... #define LOG2 .30102999566398119521
.................... float32 frexp(float32 x, signed int8 *exp)
.................... {
.................... float32 res;
.................... int1 sign = 0;
.................... if(x == 0.0)
.................... {
.................... *exp=0;
.................... return (0.0);
.................... }
.................... if(x < 0.0)
.................... {
.................... x=-x;
.................... sign=1;
.................... }
.................... if (x > 1.0)
.................... {
.................... *exp=(ceil(log10(x)/LOG2));
.................... res=x/(pow(2, *exp));
.................... if (res == 1)
.................... {
.................... *exp=*exp+1;
.................... res=.5;
.................... }
.................... }
.................... else
.................... {
.................... if(x < 0.5)
.................... {
.................... *exp=-1;
.................... res=x*2;
.................... }
.................... else
.................... {
.................... *exp=0;
.................... res=x;
.................... }
.................... }
.................... if(sign)
.................... {
.................... res=-res;
.................... }
.................... return res;
.................... }
....................
.................... //Overloaded functions for frexp() for PCD
.................... // Overloaded function frexp() for data type - Float48
.................... #if defined(__PCD__)
.................... float48 frexp(float48 x, signed int8 *exp)
.................... {
.................... float48 res;
.................... int1 sign = 0;
.................... if(x == 0.0)
.................... {
.................... *exp=0;
.................... return (0.0);
.................... }
.................... if(x < 0.0)
.................... {
.................... x=-x;
.................... sign=1;
.................... }
.................... if (x > 1.0)
.................... {
.................... *exp=(ceil(log10(x)/LOG2));
.................... res=x/(pow(2, *exp));
.................... if (res == 1)
.................... {
.................... *exp=*exp+1;
.................... res=.5;
.................... }
.................... }
.................... else
.................... {
.................... if(x < 0.5)
.................... {
.................... *exp=-1;
.................... res=x*2;
.................... }
.................... else
.................... {
.................... *exp=0;
.................... res=x;
.................... }
.................... }
.................... if(sign)
.................... {
.................... res=-res;
.................... }
.................... return res;
.................... }
....................
.................... // Overloaded function frexp() for data type - Float64
.................... float64 frexp(float64 x, signed int8 *exp)
.................... {
.................... float64 res;
.................... int1 sign = 0;
.................... if(x == 0.0)
.................... {
.................... *exp=0;
.................... return (0.0);
.................... }
.................... if(x < 0.0)
.................... {
.................... x=-x;
.................... sign=1;
.................... }
.................... if (x > 1.0)
.................... {
.................... *exp=(ceil(log10(x)/LOG2));
.................... res=x/(pow(2, *exp));
.................... if (res == 1)
.................... {
.................... *exp=*exp+1;
.................... res=.5;
.................... }
.................... }
.................... else
.................... {
.................... if(x < 0.5)
.................... {
.................... *exp=-1;
.................... res=x*2;
.................... }
.................... else
.................... {
.................... *exp=0;
.................... res=x;
.................... }
.................... }
.................... if(sign)
.................... {
.................... res=-res;
.................... }
.................... return res;
.................... }
.................... #endif
....................
.................... //////////////////////////////////////////////////////////////////////////////
.................... // float ldexp(float x, signed int *exp)
.................... //////////////////////////////////////////////////////////////////////////////
.................... // Description : multiplies a floating point number by an integral power of 2.
.................... // Returns : returns the value of x times 2 raised to the power exp.
.................... // Date : N/A
.................... //
....................
.................... float32 ldexp(float32 value, signed int8 exp)
.................... {
.................... return (value * pow(2,exp));
.................... }
.................... //Overloaded functions for ldexp() for PCD
.................... // Overloaded function ldexp() for data type - Float48
....................
.................... #if defined(__PCD__)
.................... float48 ldexp(float48 value, signed int8 exp)
.................... {
.................... return (value * pow(2,exp));
.................... }
.................... // Overloaded function ldexp() for data type - Float64
.................... float64 ldexp(float64 value, signed int8 exp)
.................... {
.................... return (value * pow(2,exp));
.................... }
.................... #endif
....................
.................... #endif
....................
....................
.................... float quadraticerror(float average, float buf[], int16 size) // compute average quadratic error
.................... {
.................... int16 i;
.................... float err=0;
1AE2: MOVLB 6
1AE4: CLRF xD4
1AE6: CLRF xD5
1AE8: CLRF xD6
1AEA: CLRF xD7
....................
.................... for(i=0; i<size; i++) err += (buf[i]-average)*(buf[i]-average); // sum quadratic errors
1AEC: CLRF xD3
1AEE: CLRF xD2
1AF0: MOVF xD3,W
1AF2: SUBWF xD1,W
1AF4: BTFSS FD8.0
1AF6: BRA 1C48
1AF8: BNZ 1B02
1AFA: MOVF xD0,W
1AFC: SUBWF xD2,W
1AFE: BTFSC FD8.0
1B00: BRA 1C48
1B02: RLCF xD2,W
1B04: MOVWF 02
1B06: RLCF xD3,W
1B08: MOVWF 03
1B0A: RLCF 02,F
1B0C: RLCF 03,F
1B0E: MOVLW FC
1B10: ANDWF 02,F
1B12: MOVF 02,W
1B14: ADDWF xCE,W
1B16: MOVWF FE9
1B18: MOVF xCF,W
1B1A: ADDWFC 03,W
1B1C: MOVWF FEA
1B1E: MOVFF FEF,6D8
1B22: MOVFF FEC,6D9
1B26: MOVFF FEC,6DA
1B2A: MOVFF FEC,6DB
1B2E: MOVFF FEA,6DD
1B32: MOVFF FE9,6DC
1B36: BSF FD8.1
1B38: MOVFF 6DB,6ED
1B3C: MOVFF 6DA,6EC
1B40: MOVFF 6D9,6EB
1B44: MOVFF 6D8,6EA
1B48: MOVFF 6CD,6F1
1B4C: MOVFF 6CC,6F0
1B50: MOVFF 6CB,6EF
1B54: MOVFF 6CA,6EE
1B58: MOVLB 0
1B5A: RCALL 1442
1B5C: MOVFF 6DD,FEA
1B60: MOVFF 6DC,FE9
1B64: MOVFF 00,6D8
1B68: MOVFF 01,6D9
1B6C: MOVFF 02,6DA
1B70: MOVFF 03,6DB
1B74: MOVLB 6
1B76: RLCF xD2,W
1B78: MOVWF 02
1B7A: RLCF xD3,W
1B7C: MOVWF 03
1B7E: RLCF 02,F
1B80: RLCF 03,F
1B82: MOVLW FC
1B84: ANDWF 02,F
1B86: MOVF 02,W
1B88: ADDWF xCE,W
1B8A: MOVWF FE9
1B8C: MOVF xCF,W
1B8E: ADDWFC 03,W
1B90: MOVWF FEA
1B92: MOVFF FEF,6DE
1B96: MOVFF FEC,6DF
1B9A: MOVFF FEC,6E0
1B9E: MOVFF FEC,6E1
1BA2: MOVFF FEA,6E3
1BA6: MOVFF FE9,6E2
1BAA: BSF FD8.1
1BAC: MOVFF 6E1,6ED
1BB0: MOVFF 6E0,6EC
1BB4: MOVFF 6DF,6EB
1BB8: MOVFF 6DE,6EA
1BBC: MOVFF 6CD,6F1
1BC0: MOVFF 6CC,6F0
1BC4: MOVFF 6CB,6EF
1BC8: MOVFF 6CA,6EE
1BCC: MOVLB 0
1BCE: RCALL 1442
1BD0: MOVFF 6E3,FEA
1BD4: MOVFF 6E2,FE9
1BD8: MOVFF 6DB,6E7
1BDC: MOVFF 6DA,6E6
1BE0: MOVFF 6D9,6E5
1BE4: MOVFF 6D8,6E4
1BE8: MOVFF 03,6EB
1BEC: MOVFF 02,6EA
1BF0: MOVFF 01,6E9
1BF4: MOVFF 00,6E8
1BF8: RCALL 1852
1BFA: MOVFF FEA,6D9
1BFE: MOVFF FE9,6D8
1C02: BCF FD8.1
1C04: MOVFF 6D7,6ED
1C08: MOVFF 6D6,6EC
1C0C: MOVFF 6D5,6EB
1C10: MOVFF 6D4,6EA
1C14: MOVFF 03,6F1
1C18: MOVFF 02,6F0
1C1C: MOVFF 01,6EF
1C20: MOVFF 00,6EE
1C24: RCALL 1442
1C26: MOVFF 6D9,FEA
1C2A: MOVFF 6D8,FE9
1C2E: MOVFF 03,6D7
1C32: MOVFF 02,6D6
1C36: MOVFF 01,6D5
1C3A: MOVFF 00,6D4
1C3E: MOVLB 6
1C40: INCF xD2,F
1C42: BTFSC FD8.2
1C44: INCF xD3,F
1C46: BRA 1AF0
.................... err = sqrt((1/(float)size)*err);
1C48: MOVFF 6D1,6D9
1C4C: MOVFF 6D0,6D8
1C50: MOVLB 0
1C52: CALL 140C
1C56: MOVLB 6
1C58: CLRF xED
1C5A: CLRF xEC
1C5C: CLRF xEB
1C5E: MOVLW 7F
1C60: MOVWF xEA
1C62: MOVFF 03,6F1
1C66: MOVFF 02,6F0
1C6A: MOVFF 01,6EF
1C6E: MOVFF 00,6EE
1C72: MOVLB 0
1C74: RCALL 16BA
1C76: MOVFF 00,6D8
1C7A: MOVFF 01,6D9
1C7E: MOVFF 02,6DA
1C82: MOVFF 03,6DB
1C86: MOVFF 03,6E7
1C8A: MOVFF 02,6E6
1C8E: MOVFF 01,6E5
1C92: MOVFF 00,6E4
1C96: MOVFF 6D7,6EB
1C9A: MOVFF 6D6,6EA
1C9E: MOVFF 6D5,6E9
1CA2: MOVFF 6D4,6E8
1CA6: RCALL 1852
1CA8: MOVFF 00,6D8
1CAC: MOVFF 01,6D9
1CB0: MOVFF 02,6DA
1CB4: MOVFF 03,6DB
1CB8: MOVFF 03,6DF
1CBC: MOVFF 02,6DE
1CC0: MOVFF 01,6DD
1CC4: MOVFF 00,6DC
1CC8: BRA 19C2
1CCA: MOVFF 03,6D7
1CCE: MOVFF 02,6D6
1CD2: MOVFF 01,6D5
1CD6: MOVFF 00,6D4
.................... return err;
1CDA: MOVFF 6D4,00
1CDE: MOVFF 6D5,01
1CE2: MOVFF 6D6,02
1CE6: MOVFF 6D7,03
.................... }
1CEA: RETLW 00
....................
.................... void main()
.................... {
*
1F62: CLRF FF8
1F64: BCF FD0.7
1F66: BSF 08.7
1F68: CLRF FEA
1F6A: CLRF FE9
1F6C: MOVF FC1,W
1F6E: ANDLW C0
1F70: IORLW 0F
1F72: MOVWF FC1
1F74: MOVLW 07
1F76: MOVWF FB4
1F78: CLRF 21
1F7A: MOVLW 04
1F7C: MOVWF 22
1F7E: MOVLW 0C
1F80: MOVWF 23
1F82: CLRF 24
1F84: CLRF 28
1F86: CLRF x7C
1F88: CLRF x83
....................
.................... float x[BUFLEN], y[BUFLEN], z[BUFLEN];
.................... float xavg, yavg, zavg;
.................... int i;
.................... port_b_pullups(FALSE);
1F8A: BSF FF1.7
.................... setup_psp(PSP_DISABLED);
1F8C: BCF FB0.4
.................... setup_spi(SPI_SS_DISABLED);
1F8E: BCF FC6.5
1F90: BCF F94.7
1F92: BSF F93.0
1F94: BCF F93.1
1F96: MOVLW 01
1F98: MOVWF FC6
1F9A: MOVLW 00
1F9C: MOVWF FC7
.................... setup_wdt(WDT_OFF);
1F9E: BCF FD1.0
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
1FA0: MOVLW 87
1FA2: MOVWF FD5
.................... setup_timer_1(T1_DISABLED);
1FA4: CLRF FCD
.................... setup_timer_2(T2_DISABLED,0,1);
1FA6: MOVLW 00
1FA8: MOVWF FCA
1FAA: MOVLW 00
1FAC: MOVWF FCB
.................... setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
1FAE: CLRF FB1
.................... setup_comparator(NC_NC_NC_NC);
1FB0: MOVLW 07
1FB2: MOVWF FB4
1FB4: MOVF F92,W
1FB6: MOVWF F92
1FB8: MOVLW 13
1FBA: MOVWF 00
1FBC: DECFSZ 00,F
1FBE: BRA 1FBC
1FC0: BRA 1FC2
1FC2: MOVF FB4,W
1FC4: BCF FA1.6
.................... setup_vref(FALSE);
1FC6: CLRF FB5
.................... enable_interrupts(INT_TIMER0);
1FC8: BSF FF2.5
.................... enable_interrupts(GLOBAL);
1FCA: MOVLW C0
1FCC: IORWF FF2,F
....................
.................... setup_adc_ports(AN0_TO_AN2|VSS_VREF);
1FCE: MOVF FC1,W
1FD0: ANDLW C0
1FD2: IORLW 1C
1FD4: MOVWF FC1
.................... setup_adc(ADC_CLOCK_DIV_32);
1FD6: BCF FC0.0
1FD8: BSF FC0.1
1FDA: BCF FC0.2
1FDC: BSF FC0.7
1FDE: BSF FC2.0
....................
.................... usb_init(); // initialise USB module
1FE0: GOTO 1368
....................
.................... while(!usb_cdc_connected());
1FE4: BTFSS x80.0
1FE6: BRA 1FE4
.................... time=0;
1FE8: CLRF 1C
1FEA: CLRF 1B
1FEC: CLRF 1A
1FEE: CLRF 19
.................... set_timer0(0);
1FF0: CLRF FD7
1FF2: CLRF FD6
.................... printf(usb_cdc_putc,"time[s] X Xerr Y Yerr Z Zerr \n\r");
1FF4: MOVLB 3
1FF6: CLRF xB1
1FF8: MOVF xB1,W
1FFA: MOVLB 0
1FFC: CALL 021E
2000: MOVLB 3
2002: INCF xB1,F
2004: MOVWF 00
2006: MOVFF FE8,6DB
200A: MOVLB 0
200C: CALL 13D4
2010: MOVLW 25
2012: MOVLB 3
2014: SUBWF xB1,W
2016: BNZ 1FF8
....................
.................... while(usb_cdc_connected()) // pockej nez se pripoji seriovy port PC
.................... {
2018: MOVLB 0
201A: BTFSS x80.0
201C: BRA 25DE
.................... for(i=0; i <BUFLEN; i++)
201E: MOVLB 3
2020: CLRF xB0
2022: MOVF xB0,W
2024: SUBLW 63
2026: BTFSS FD8.0
2028: BRA 2300
.................... {
.................... set_adc_channel(0);
202A: MOVLW 00
202C: MOVWF 01
202E: MOVF FC2,W
2030: ANDLW C3
2032: IORWF 01,W
2034: MOVWF FC2
.................... delay_us(10);
2036: MOVLW 13
2038: MOVWF 00
203A: DECFSZ 00,F
203C: BRA 203A
203E: BRA 2040
2040: CLRF 18
2042: BTFSC FF2.7
2044: BSF 18.7
2046: BCF FF2.7
.................... x[i]=read_adc();
2048: MOVLB 7
204A: CLRF x49
204C: MOVFF 3B0,748
2050: CLRF x4B
2052: MOVLW 04
2054: MOVWF x4A
2056: MOVLB 0
2058: CALL 02BA
205C: BTFSC 18.7
205E: BSF FF2.7
2060: MOVFF 02,03
2064: MOVF 01,W
2066: ADDLW 84
2068: MOVWF FE9
206A: MOVLW 00
206C: ADDWFC 02,W
206E: MOVWF FEA
2070: BSF FC2.1
2072: BTFSC FC2.1
2074: BRA 2072
2076: MOVFF FC4,6D9
207A: MOVFF FC3,6D8
207E: MOVLB 0
2080: CALL 140C
2084: MOVFF 00,FEF
2088: MOVFF 01,FEC
208C: MOVFF 02,FEC
2090: MOVFF 03,FEC
2094: CLRF 18
2096: BTFSC FF2.7
2098: BSF 18.7
209A: BCF FF2.7
.................... xavg+=x[i];
209C: MOVLB 7
209E: CLRF x49
20A0: MOVFF 3B0,748
20A4: CLRF x4B
20A6: MOVLW 04
20A8: MOVWF x4A
20AA: MOVLB 0
20AC: CALL 02BA
20B0: BTFSC 18.7
20B2: BSF FF2.7
20B4: MOVFF 02,03
20B8: MOVF 01,W
20BA: ADDLW 84
20BC: MOVWF FE9
20BE: MOVLW 00
20C0: ADDWFC 02,W
20C2: MOVWF FEA
20C4: MOVFF FEF,00
20C8: MOVFF FEC,01
20CC: MOVFF FEC,02
20D0: MOVFF FEC,03
20D4: MOVFF FEA,3B2
20D8: MOVFF FE9,3B1
20DC: BCF FD8.1
20DE: MOVFF 3A7,6ED
20E2: MOVFF 3A6,6EC
20E6: MOVFF 3A5,6EB
20EA: MOVFF 3A4,6EA
20EE: MOVFF 03,6F1
20F2: MOVFF 02,6F0
20F6: MOVFF 01,6EF
20FA: MOVFF 00,6EE
20FE: CALL 1442
2102: MOVFF 3B2,FEA
2106: MOVFF 3B1,FE9
210A: MOVFF 03,3A7
210E: MOVFF 02,3A6
2112: MOVFF 01,3A5
2116: MOVFF 00,3A4
....................
.................... set_adc_channel(1);
211A: MOVLW 04
211C: MOVWF 01
211E: MOVF FC2,W
2120: ANDLW C3
2122: IORWF 01,W
2124: MOVWF FC2
.................... delay_us(10);
2126: MOVLW 13
2128: MOVWF 00
212A: DECFSZ 00,F
212C: BRA 212A
212E: BRA 2130
2130: CLRF 18
2132: BTFSC FF2.7
2134: BSF 18.7
2136: BCF FF2.7
.................... y[i]=read_adc();
2138: MOVLB 7
213A: CLRF x49
213C: MOVFF 3B0,748
2140: CLRF x4B
2142: MOVLW 04
2144: MOVWF x4A
2146: MOVLB 0
2148: CALL 02BA
214C: BTFSC 18.7
214E: BSF FF2.7
2150: MOVFF 02,03
2154: MOVF 01,W
2156: ADDLW 14
2158: MOVWF FE9
215A: MOVLW 02
215C: ADDWFC 02,W
215E: MOVWF FEA
2160: BSF FC2.1
2162: BTFSC FC2.1
2164: BRA 2162
2166: MOVFF FC4,6D9
216A: MOVFF FC3,6D8
216E: MOVLB 0
2170: CALL 140C
2174: MOVFF 00,FEF
2178: MOVFF 01,FEC
217C: MOVFF 02,FEC
2180: MOVFF 03,FEC
2184: CLRF 18
2186: BTFSC FF2.7
2188: BSF 18.7
218A: BCF FF2.7
.................... yavg+=y[i];
218C: MOVLB 7
218E: CLRF x49
2190: MOVFF 3B0,748
2194: CLRF x4B
2196: MOVLW 04
2198: MOVWF x4A
219A: MOVLB 0
219C: CALL 02BA
21A0: BTFSC 18.7
21A2: BSF FF2.7
21A4: MOVFF 02,03
21A8: MOVF 01,W
21AA: ADDLW 14
21AC: MOVWF FE9
21AE: MOVLW 02
21B0: ADDWFC 02,W
21B2: MOVWF FEA
21B4: MOVFF FEF,00
21B8: MOVFF FEC,01
21BC: MOVFF FEC,02
21C0: MOVFF FEC,03
21C4: MOVFF FEA,3B2
21C8: MOVFF FE9,3B1
21CC: BCF FD8.1
21CE: MOVFF 3AB,6ED
21D2: MOVFF 3AA,6EC
21D6: MOVFF 3A9,6EB
21DA: MOVFF 3A8,6EA
21DE: MOVFF 03,6F1
21E2: MOVFF 02,6F0
21E6: MOVFF 01,6EF
21EA: MOVFF 00,6EE
21EE: CALL 1442
21F2: MOVFF 3B2,FEA
21F6: MOVFF 3B1,FE9
21FA: MOVFF 03,3AB
21FE: MOVFF 02,3AA
2202: MOVFF 01,3A9
2206: MOVFF 00,3A8
....................
.................... set_adc_channel(2);
220A: MOVLW 08
220C: MOVWF 01
220E: MOVF FC2,W
2210: ANDLW C3
2212: IORWF 01,W
2214: MOVWF FC2
.................... delay_us(10);
2216: MOVLW 13
2218: MOVWF 00
221A: DECFSZ 00,F
221C: BRA 221A
221E: BRA 2220
2220: CLRF 18
2222: BTFSC FF2.7
2224: BSF 18.7
2226: BCF FF2.7
.................... z[i]=read_adc();
2228: MOVLB 7
222A: CLRF x49
222C: MOVFF 3B0,748
2230: CLRF x4B
2232: MOVLW 04
2234: MOVWF x4A
2236: MOVLB 0
2238: CALL 02BA
223C: BTFSC 18.7
223E: BSF FF2.7
2240: MOVFF 02,03
2244: MOVF 01,W
2246: ADDLW 20
2248: MOVWF FE9
224A: MOVLW 05
224C: ADDWFC 02,W
224E: MOVWF FEA
2250: BSF FC2.1
2252: BTFSC FC2.1
2254: BRA 2252
2256: MOVFF FC4,6D9
225A: MOVFF FC3,6D8
225E: MOVLB 0
2260: CALL 140C
2264: MOVFF 00,FEF
2268: MOVFF 01,FEC
226C: MOVFF 02,FEC
2270: MOVFF 03,FEC
2274: CLRF 18
2276: BTFSC FF2.7
2278: BSF 18.7
227A: BCF FF2.7
.................... zavg+=z[i];
227C: MOVLB 7
227E: CLRF x49
2280: MOVFF 3B0,748
2284: CLRF x4B
2286: MOVLW 04
2288: MOVWF x4A
228A: MOVLB 0
228C: CALL 02BA
2290: BTFSC 18.7
2292: BSF FF2.7
2294: MOVFF 02,03
2298: MOVF 01,W
229A: ADDLW 20
229C: MOVWF FE9
229E: MOVLW 05
22A0: ADDWFC 02,W
22A2: MOVWF FEA
22A4: MOVFF FEF,00
22A8: MOVFF FEC,01
22AC: MOVFF FEC,02
22B0: MOVFF FEC,03
22B4: MOVFF FEA,3B2
22B8: MOVFF FE9,3B1
22BC: BCF FD8.1
22BE: MOVFF 3AF,6ED
22C2: MOVFF 3AE,6EC
22C6: MOVFF 3AD,6EB
22CA: MOVFF 3AC,6EA
22CE: MOVFF 03,6F1
22D2: MOVFF 02,6F0
22D6: MOVFF 01,6EF
22DA: MOVFF 00,6EE
22DE: CALL 1442
22E2: MOVFF 3B2,FEA
22E6: MOVFF 3B1,FE9
22EA: MOVFF 03,3AF
22EE: MOVFF 02,3AE
22F2: MOVFF 01,3AD
22F6: MOVFF 00,3AC
.................... }
22FA: MOVLB 3
22FC: INCF xB0,F
22FE: BRA 2022
....................
.................... xavg=xavg/BUFLEN;
2300: MOVFF 3A7,6ED
2304: MOVFF 3A6,6EC
2308: MOVFF 3A5,6EB
230C: MOVFF 3A4,6EA
2310: MOVLB 6
2312: CLRF xF1
2314: CLRF xF0
2316: MOVLW 48
2318: MOVWF xEF
231A: MOVLW 85
231C: MOVWF xEE
231E: MOVLB 0
2320: CALL 16BA
2324: MOVFF 03,3A7
2328: MOVFF 02,3A6
232C: MOVFF 01,3A5
2330: MOVFF 00,3A4
.................... yavg=yavg/BUFLEN;
2334: MOVFF 3AB,6ED
2338: MOVFF 3AA,6EC
233C: MOVFF 3A9,6EB
2340: MOVFF 3A8,6EA
2344: MOVLB 6
2346: CLRF xF1
2348: CLRF xF0
234A: MOVLW 48
234C: MOVWF xEF
234E: MOVLW 85
2350: MOVWF xEE
2352: MOVLB 0
2354: CALL 16BA
2358: MOVFF 03,3AB
235C: MOVFF 02,3AA
2360: MOVFF 01,3A9
2364: MOVFF 00,3A8
.................... zavg=zavg/BUFLEN;
2368: MOVFF 3AF,6ED
236C: MOVFF 3AE,6EC
2370: MOVFF 3AD,6EB
2374: MOVFF 3AC,6EA
2378: MOVLB 6
237A: CLRF xF1
237C: CLRF xF0
237E: MOVLW 48
2380: MOVWF xEF
2382: MOVLW 85
2384: MOVWF xEE
2386: MOVLB 0
2388: CALL 16BA
238C: MOVFF 03,3AF
2390: MOVFF 02,3AE
2394: MOVFF 01,3AD
2398: MOVFF 00,3AC
....................
.................... // odesli namerene hodnoty
.................... printf(usb_cdc_putc, "%7.3f %4.3f %4.3f %4.3f %4.3f %4.3f %4.3f \n\r",((time << 16) + get_timer0())/15625.0, xavg, quadraticerror(xavg,x,BUFLEN), yavg, quadraticerror(yavg,y,BUFLEN), zavg, quadraticerror(zavg,z,BUFLEN)); //konstanta k je kvuli prevodu do rozzumnych jednotek [s]
239C: MOVFF 1A,3B5
23A0: MOVFF 19,3B4
23A4: MOVLB 3
23A6: CLRF xB2
23A8: CLRF xB3
23AA: MOVF FD6,W
23AC: MOVFF FD7,03
23B0: ADDWF xB2,F
23B2: MOVF FD7,W
23B4: ADDWFC xB3,F
23B6: MOVLW 00
23B8: ADDWFC xB4,F
23BA: ADDWFC xB5,F
23BC: MOVFF 3B5,6C5
23C0: MOVFF 3B4,6C4
23C4: MOVFF 3B3,6C3
23C8: MOVFF 3B2,6C2
23CC: MOVLB 0
23CE: GOTO 1818
23D2: MOVFF 03,6ED
23D6: MOVFF 02,6EC
23DA: MOVFF 01,6EB
23DE: MOVFF 00,6EA
23E2: MOVLB 6
23E4: CLRF xF1
23E6: MOVLW 24
23E8: MOVWF xF0
23EA: MOVLW 74
23EC: MOVWF xEF
23EE: MOVLW 8C
23F0: MOVWF xEE
23F2: MOVLB 0
23F4: CALL 16BA
23F8: MOVFF 00,3B2
23FC: MOVFF 01,3B3
2400: MOVFF 02,3B4
2404: MOVFF 03,3B5
2408: MOVFF 3A7,6CD
240C: MOVFF 3A6,6CC
2410: MOVFF 3A5,6CB
2414: MOVFF 3A4,6CA
2418: MOVLB 6
241A: CLRF xCF
241C: MOVLW 84
241E: MOVWF xCE
2420: CLRF xD1
2422: MOVLW 64
2424: MOVWF xD0
2426: MOVLB 0
2428: CALL 1AE2
242C: MOVFF 00,3B6
2430: MOVFF 01,3B7
2434: MOVFF 02,3B8
2438: MOVFF 03,3B9
243C: MOVFF 3AB,6CD
2440: MOVFF 3AA,6CC
2444: MOVFF 3A9,6CB
2448: MOVFF 3A8,6CA
244C: MOVLW 02
244E: MOVLB 6
2450: MOVWF xCF
2452: MOVLW 14
2454: MOVWF xCE
2456: CLRF xD1
2458: MOVLW 64
245A: MOVWF xD0
245C: MOVLB 0
245E: CALL 1AE2
2462: MOVFF 00,3BA
2466: MOVFF 01,3BB
246A: MOVFF 02,3BC
246E: MOVFF 03,3BD
2472: MOVFF 3AF,6CD
2476: MOVFF 3AE,6CC
247A: MOVFF 3AD,6CB
247E: MOVFF 3AC,6CA
2482: MOVLW 05
2484: MOVLB 6
2486: MOVWF xCF
2488: MOVLW 20
248A: MOVWF xCE
248C: CLRF xD1
248E: MOVLW 64
2490: MOVWF xD0
2492: MOVLB 0
2494: CALL 1AE2
2498: MOVFF 00,3BE
249C: MOVFF 01,3BF
24A0: MOVFF 02,3C0
24A4: MOVFF 03,3C1
24A8: MOVLW 06
24AA: MOVWF FE9
24AC: MOVFF 3B5,6D1
24B0: MOVFF 3B4,6D0
24B4: MOVFF 3B3,6CF
24B8: MOVFF 3B2,6CE
24BC: MOVLW 03
24BE: MOVLB 6
24C0: MOVWF xD2
24C2: MOVLB 0
24C4: RCALL 1DB0
24C6: MOVLW 20
24C8: MOVLB 6
24CA: MOVWF xDB
24CC: MOVLB 0
24CE: CALL 13D4
24D2: MOVLW 03
24D4: MOVWF FE9
24D6: MOVFF 3A7,6D1
24DA: MOVFF 3A6,6D0
24DE: MOVFF 3A5,6CF
24E2: MOVFF 3A4,6CE
24E6: MOVLB 6
24E8: MOVWF xD2
24EA: MOVLB 0
24EC: RCALL 1DB0
24EE: MOVLW 20
24F0: MOVLB 6
24F2: MOVWF xDB
24F4: MOVLB 0
24F6: CALL 13D4
24FA: MOVLW 03
24FC: MOVWF FE9
24FE: MOVFF 3B9,6D1
2502: MOVFF 3B8,6D0
2506: MOVFF 3B7,6CF
250A: MOVFF 3B6,6CE
250E: MOVLB 6
2510: MOVWF xD2
2512: MOVLB 0
2514: RCALL 1DB0
2516: MOVLW 20
2518: MOVLB 6
251A: MOVWF xDB
251C: MOVLB 0
251E: CALL 13D4
2522: MOVLW 03
2524: MOVWF FE9
2526: MOVFF 3AB,6D1
252A: MOVFF 3AA,6D0
252E: MOVFF 3A9,6CF
2532: MOVFF 3A8,6CE
2536: MOVLB 6
2538: MOVWF xD2
253A: MOVLB 0
253C: RCALL 1DB0
253E: MOVLW 20
2540: MOVLB 6
2542: MOVWF xDB
2544: MOVLB 0
2546: CALL 13D4
254A: MOVLW 03
254C: MOVWF FE9
254E: MOVFF 3BD,6D1
2552: MOVFF 3BC,6D0
2556: MOVFF 3BB,6CF
255A: MOVFF 3BA,6CE
255E: MOVLB 6
2560: MOVWF xD2
2562: MOVLB 0
2564: RCALL 1DB0
2566: MOVLW 20
2568: MOVLB 6
256A: MOVWF xDB
256C: MOVLB 0
256E: CALL 13D4
2572: MOVLW 03
2574: MOVWF FE9
2576: MOVFF 3AF,6D1
257A: MOVFF 3AE,6D0
257E: MOVFF 3AD,6CF
2582: MOVFF 3AC,6CE
2586: MOVLB 6
2588: MOVWF xD2
258A: MOVLB 0
258C: RCALL 1DB0
258E: MOVLW 20
2590: MOVLB 6
2592: MOVWF xDB
2594: MOVLB 0
2596: CALL 13D4
259A: MOVLW 03
259C: MOVWF FE9
259E: MOVFF 3C1,6D1
25A2: MOVFF 3C0,6D0
25A6: MOVFF 3BF,6CF
25AA: MOVFF 3BE,6CE
25AE: MOVLB 6
25B0: MOVWF xD2
25B2: MOVLB 0
25B4: CALL 1DB0
25B8: MOVLW 20
25BA: MOVLB 6
25BC: MOVWF xDB
25BE: MOVLB 0
25C0: CALL 13D4
25C4: MOVLW 0A
25C6: MOVLB 6
25C8: MOVWF xDB
25CA: MOVLB 0
25CC: CALL 13D4
25D0: MOVLW 0D
25D2: MOVLB 6
25D4: MOVWF xDB
25D6: MOVLB 0
25D8: CALL 13D4
.................... }
25DC: BRA 201A
.................... }
25DE: SLEEP
 
Configuration Fuses:
Word 1: CE3C IESO FCMEN HSPLL PLL5 CPUDIV4 USBDIV
Word 2: 0E39 NOBROWNOUT WDT128 NOWDT BORV20 NOPUT VREGEN
Word 3: 8700 PBADEN CCP2C1 MCLR LPT1OSC
Word 4: 00A1 STVREN NODEBUG NOLVP NOXINST ICPRT
Word 5: C00F NOPROTECT NOCPD NOCPB
Word 6: E00F NOWRT NOWRTD NOWRTC NOWRTB
Word 7: 400F NOEBTR NOEBTRB
/Designs/Data_loggers/galileo_experiment/SW/main.pjt
0,0 → 1,37
[PROJECT]
Target=D:\svnKaklik\programy\C\PIC_C\mereni\inertial\main.hex
Development_Mode=
Processor_Text=PIC18F4550
ToolSuite=CCS
Processor=0x4550
[D:\svnKaklik\programy\C\PIC_C\mereni\inertial\main]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
[mru-list]
1=D:\svnKaklik\programy\C\PIC_C\mereni\inertial\main.c
[Windows]
0=0000 %S 0 0 796 451 3 0
[Opened Files]
1=main.c
2=
3=C:\Program Files\PICC\devices\18F4550.h
4=C:\Program Files\PICC\drivers\usb_cdc.h
5=C:\Program Files\PICC\drivers\pic18_usb.h
6=C:\Program Files\PICC\drivers\usb_hw_layer.h
7=C:\Program Files\PICC\drivers\usb_desc_cdc.h
8=C:\Program Files\PICC\drivers\usb.h
9=C:\Program Files\PICC\drivers\usb.c
10=C:\Program Files\PICC\drivers\pic18_usb.c
11=C:\Program Files\PICC\drivers\ctype.h
12=C:\Program Files\PICC\drivers\math.h
13=
[Target Data]
OptionString=-p +FH
FileList=D:\MLAB\Designs\galileo_experiment\SW\main.c
[Units]
Count=1
1=main.c (main)
/Designs/Data_loggers/galileo_experiment/SW/main.h
0,0 → 1,35
#include <18F4550.h>
#device adc=10
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES HSPLL //Crystal/Resonator with PLL enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES BORV20 //Brownout reset at 2.0V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES MCLR //Master Clear pin enabled
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL5 //Divide By 5(20MHz oscillator input)
#FUSES CPUDIV4 //System Clock by 4
#FUSES USBDIV //USB clock source comes from PLL divide by 2
#FUSES VREGEN //USB voltage regulator enabled
#FUSES ICPRT //ICPRT enabled
 
#use delay(clock=24000000)
 
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/olbramovice_benesov.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/olbramovice_benesov.txt
0,0 → 1,10654
time[s] X Xerr Y Yerr Z Zerr
+ 0.046 510.910 2.646 552.180 2.597 248.150 4.109
+ 12.875 514.109 6.392 560.061 6.748 237.821 11.422
+ 13.033 515.931 5.912 567.050 6.471 237.418 10.110
+ 13.192 517.089 5.853 557.280 7.377 253.744 8.993
+ 13.350 515.690 5.926 554.002 6.857 265.697 3.506
+ 13.510 516.376 5.717 556.970 7.063 259.167 6.161
+ 13.668 517.093 6.134 563.079 6.929 241.881 6.941
+ 13.826 516.271 6.027 561.080 6.338 251.268 5.215
+ 13.985 515.632 5.894 554.930 6.318 264.422 9.390
+ 14.143 514.946 5.638 560.559 6.288 243.974 5.047
+ 14.301 515.339 6.819 560.425 6.507 256.879 7.839
+ 14.459 514.833 6.750 560.954 7.869 249.908 4.882
+ 14.618 514.988 6.200 561.229 6.869 244.699 19.327
+ 14.775 512.580 6.711 558.472 6.630 253.637 12.615
+ 14.933 513.685 6.254 559.254 6.050 253.386 6.745
+ 15.092 512.366 6.530 555.832 6.715 262.903 4.588
+ 15.251 515.423 6.259 562.868 8.746 252.869 10.219
+ 15.408 518.514 6.265 558.758 6.962 248.468 5.048
+ 15.566 518.205 5.816 556.457 6.360 257.664 4.368
+ 15.724 514.262 5.694 560.664 6.982 248.286 6.294
+ 15.882 512.552 6.114 560.226 6.524 250.922 5.640
+ 16.041 511.955 7.349 556.422 7.313 265.439 12.470
+ 16.198 512.049 6.273 563.464 8.085 246.154 7.843
+ 16.355 512.750 6.353 558.424 6.667 246.551 14.265
+ 16.512 517.047 5.817 562.484 6.608 257.595 9.555
+ 16.669 517.460 6.449 559.004 6.834 247.995 14.705
+ 16.827 517.294 6.616 551.640 6.575 270.189 9.745
+ 16.985 513.673 6.425 559.316 6.844 253.591 9.396
+ 17.142 513.066 7.742 563.103 10.164 222.235 8.068
+ 17.299 511.700 6.330 534.881 7.587 245.442 14.222
+ 17.457 509.587 8.569 565.588 15.197 282.174 4.506
+ 17.614 513.085 8.008 556.415 13.653 248.591 19.331
+ 17.769 510.100 7.157 546.354 6.218 233.045 9.633
+ 17.925 523.111 6.859 560.293 12.685 252.600 5.250
+ 18.084 508.701 6.249 546.163 12.249 273.556 4.761
+ 18.241 512.397 6.703 553.761 8.874 256.975 7.340
+ 18.400 508.194 5.546 564.407 6.100 250.539 5.160
+ 18.558 513.011 6.261 556.004 6.434 255.395 13.724
+ 18.715 507.650 5.838 556.530 6.395 245.813 9.921
+ 18.872 510.166 6.809 551.085 7.744 249.418 12.027
+ 19.028 526.331 7.193 558.780 11.920 238.684 32.839
+ 19.184 519.833 5.973 564.137 8.111 259.316 7.266
+ 19.342 512.768 5.809 547.031 10.075 268.203 11.271
+ 19.501 515.017 6.062 561.040 7.178 246.932 18.879
+ 19.658 511.050 6.839 549.090 10.063 238.219 9.840
+ 19.815 515.990 6.200 529.160 6.830 261.252 7.374
+ 19.975 514.159 5.858 556.601 8.140 259.702 7.036
+ 20.132 511.901 6.951 560.336 6.514 244.227 5.033
+ 20.290 513.899 6.338 560.673 7.458 249.522 6.569
+ 20.448 511.829 6.043 556.816 9.988 255.835 8.149
+ 20.605 508.518 7.730 556.728 7.734 257.488 7.660
+ 20.762 511.775 6.917 559.137 6.675 243.814 6.101
+ 20.920 511.977 7.017 560.581 7.740 258.388 7.784
+ 21.077 511.899 6.200 556.715 7.711 256.543 5.647
+ 21.236 510.269 6.101 558.227 6.329 245.975 3.894
+ 21.394 510.812 7.219 559.042 7.121 248.409 8.647
+ 21.550 521.648 6.693 557.040 7.912 265.484 8.166
+ 21.708 520.996 6.250 561.100 7.694 251.824 9.802
+ 21.866 517.610 6.387 560.461 8.393 256.298 8.392
+ 22.024 527.196 6.330 559.394 7.234 245.482 9.398
+ 22.182 516.072 5.839 560.594 7.927 261.614 7.785
+ 22.338 524.590 5.732 559.366 7.147 251.746 6.110
+ 22.496 521.265 6.107 560.893 7.972 250.577 5.721
+ 22.653 524.652 5.720 561.899 6.519 257.615 4.113
+ 22.811 523.836 5.675 558.599 6.897 254.466 5.441
+ 22.969 525.718 5.714 558.456 6.246 253.834 5.359
+ 23.127 528.027 5.682 560.974 6.541 254.278 6.488
+ 23.285 530.190 6.041 557.399 7.304 257.232 8.258
+ 23.442 521.211 5.994 559.424 6.502 250.732 6.253
+ 23.600 526.222 5.861 563.794 6.906 250.017 5.296
+ 23.758 523.022 5.780 560.088 7.488 257.770 5.762
+ 23.916 534.300 5.753 558.700 6.672 250.277 7.952
+ 24.072 524.623 5.824 563.807 7.629 248.362 5.817
+ 24.229 530.426 5.778 560.818 6.355 252.213 8.219
+ 24.387 528.384 6.561 558.568 7.360 256.702 6.284
+ 24.545 522.243 6.033 561.365 6.386 253.297 6.541
+ 24.703 525.212 6.921 559.853 6.578 248.633 4.276
+ 24.861 519.292 6.187 555.328 7.660 257.876 5.289
+ 25.020 528.212 5.958 560.183 6.793 256.618 3.750
+ 25.179 523.162 5.857 559.611 6.803 247.666 5.766
+ 25.337 523.111 6.024 555.846 7.086 259.946 9.343
+ 25.494 529.671 5.928 561.338 8.601 237.859 18.435
+ 25.651 518.126 6.090 559.293 8.471 253.658 19.666
+ 25.807 527.811 6.435 561.113 7.526 255.816 9.779
+ 25.965 523.088 6.664 556.861 6.767 255.008 14.419
+ 26.122 522.760 6.775 558.318 8.715 255.360 16.244
+ 26.278 518.257 5.749 564.073 7.270 246.373 9.299
+ 26.435 528.402 6.085 561.820 7.038 257.913 9.686
+ 26.593 526.344 7.364 562.558 7.444 253.189 4.302
+ 26.750 522.083 6.486 562.475 8.159 252.901 10.947
+ 26.907 530.590 6.153 561.094 6.924 246.319 3.498
+ 27.066 527.695 6.080 564.511 6.319 252.623 6.804
+ 27.224 525.707 6.385 557.385 6.182 258.896 10.304
+ 27.382 529.287 5.863 565.213 6.056 254.358 8.462
+ 27.539 529.232 6.361 558.902 6.126 257.053 7.969
+ 27.696 534.022 5.945 565.179 6.833 244.870 5.051
+ 27.854 535.090 6.639 567.151 8.900 243.818 10.515
+ 28.011 533.291 5.990 560.271 7.185 257.358 7.508
+ 28.169 519.992 5.748 562.202 7.558 260.973 9.481
+ 28.326 535.830 6.472 564.222 7.643 249.189 4.403
+ 28.484 524.388 6.100 565.602 6.846 253.081 12.576
+ 28.641 529.603 6.189 564.526 6.899 241.880 11.802
+ 28.798 536.276 6.493 554.245 11.813 257.548 26.015
+ 28.954 528.422 6.789 560.692 8.572 255.465 8.364
+ 29.112 526.874 6.626 558.007 7.859 255.694 10.538
+ 29.269 524.678 6.300 565.110 6.027 256.656 11.641
+ 29.426 520.896 6.107 565.071 7.483 246.246 8.196
+ 29.584 529.459 5.906 562.400 7.242 255.372 7.115
+ 29.742 531.634 6.180 564.594 8.576 258.333 7.441
+ 29.900 515.666 7.046 558.866 7.465 258.613 5.014
+ 30.059 515.416 9.011 563.668 11.211 243.966 12.956
+ 30.215 514.814 6.392 562.126 9.904 244.689 19.059
+ 30.372 517.268 5.908 559.671 8.489 256.356 4.497
+ 30.531 505.112 6.677 569.406 9.081 236.233 6.092
+ 30.688 515.351 5.995 567.304 7.457 250.882 6.652
+ 30.847 506.913 6.997 555.553 7.297 271.068 20.158
+ 31.004 511.189 7.166 564.635 8.782 251.700 10.148
+ 31.160 522.531 6.441 567.896 9.497 233.837 19.096
+ 31.318 509.495 7.356 557.009 10.239 259.388 11.038
+ 31.476 510.584 7.874 558.210 9.684 261.043 11.215
+ 31.633 514.205 6.571 559.242 7.892 261.280 10.846
+ 31.791 513.732 6.414 561.712 6.833 256.732 8.192
+ 31.949 505.307 6.049 561.247 7.630 246.027 11.788
+ 32.107 523.663 7.362 565.232 10.943 249.620 17.695
+ 32.263 521.756 8.098 565.732 17.647 262.986 27.592
+ 32.419 526.697 9.993 563.137 10.622 248.189 20.269
+ 32.575 509.957 7.715 562.781 10.810 240.961 15.653
+ 32.732 504.579 6.183 560.787 7.855 260.189 15.637
+ 32.889 501.585 9.143 561.367 10.113 241.591 16.914
+ 33.046 504.315 8.899 561.153 12.451 265.375 24.790
+ 33.202 510.423 6.800 564.211 10.650 251.163 22.370
+ 33.358 520.424 6.784 564.762 7.859 251.141 8.059
+ 33.516 515.424 7.279 564.277 9.417 255.021 9.546
+ 33.672 507.884 7.088 567.972 6.726 231.930 10.900
+ 33.830 506.688 6.119 555.749 8.434 278.519 16.595
+ 33.988 509.236 6.002 563.857 8.563 262.705 16.399
+ 34.145 514.612 6.323 567.528 8.968 234.397 13.540
+ 34.303 513.876 6.555 567.755 13.279 261.374 15.141
+ 34.461 521.698 5.710 564.237 7.988 246.723 8.226
+ 34.618 522.277 5.945 569.422 7.404 264.667 8.946
+ 34.776 506.002 8.760 557.394 12.871 263.106 8.969
+ 34.932 499.870 6.818 570.194 8.452 242.731 18.333
+ 35.089 514.328 9.500 564.822 7.045 265.237 12.615
+ 35.247 526.163 8.789 558.788 7.089 273.102 22.603
+ 35.404 511.241 7.913 562.687 7.476 265.681 9.730
+ 35.561 511.492 9.025 563.896 7.348 252.166 8.000
+ 35.717 510.174 8.468 571.779 13.162 210.701 22.064
+ 35.873 510.231 9.588 559.297 7.226 265.617 6.875
+ 36.031 523.282 9.957 558.513 19.378 262.356 29.480
+ 36.187 516.702 7.755 563.885 8.492 269.723 18.321
+ 36.344 501.677 10.555 563.058 7.849 250.867 15.847
+ 36.500 526.106 6.307 573.690 10.815 226.898 17.733
+ 36.657 522.841 6.261 562.016 9.976 263.729 17.609
+ 36.815 514.388 7.592 560.460 7.925 262.437 11.528
+ 36.973 511.993 6.164 564.174 12.507 256.064 18.453
+ 37.130 511.449 5.910 568.851 8.513 242.470 9.520
+ 37.287 507.404 8.312 561.728 6.830 263.344 6.150
+ 37.444 510.684 5.777 563.497 8.043 253.673 11.489
+ 37.601 511.926 10.016 566.585 13.792 234.026 20.669
+ 37.757 513.349 11.999 566.775 15.217 260.850 30.925
+ 37.913 523.203 8.526 568.177 8.294 261.068 15.373
+ 38.070 521.622 10.139 563.021 13.935 260.770 19.017
+ 38.226 512.246 7.297 563.900 6.728 255.597 13.281
+ 38.383 525.952 8.996 571.599 8.239 234.076 29.213
+ 38.540 515.649 7.209 560.806 7.558 269.110 11.460
+ 38.698 522.086 8.680 562.668 8.738 256.721 9.789
+ 38.855 517.960 6.647 567.266 8.342 243.657 15.025
+ 39.013 518.659 11.831 563.812 13.560 264.406 25.294
+ 39.168 519.676 8.442 566.038 11.683 248.604 9.918
+ 39.325 519.196 7.503 566.950 8.381 264.296 24.969
+ 39.483 516.512 7.528 566.139 9.813 255.822 5.703
+ 39.641 519.295 7.740 567.221 7.044 255.808 9.231
+ 39.798 523.773 6.449 567.612 7.297 253.668 7.200
+ 39.956 521.387 7.394 565.496 8.999 259.666 8.450
+ 40.113 518.793 6.189 568.745 8.231 250.786 9.707
+ 40.271 520.788 6.508 567.717 8.037 254.877 7.673
+ 40.428 517.657 6.726 568.747 8.430 252.558 5.668
+ 40.586 523.716 6.181 569.047 7.719 253.765 6.257
+ 40.744 518.347 6.264 569.170 7.150 253.687 4.276
+ 40.902 521.083 6.016 571.611 6.538 257.386 8.169
+ 41.060 517.820 6.067 568.676 6.808 254.003 8.437
+ 41.219 515.428 6.916 570.116 7.365 255.910 14.728
+ 41.375 518.624 7.367 564.241 7.907 259.429 9.805
+ 41.532 517.906 6.441 570.342 7.136 250.364 11.936
+ 41.690 517.759 6.481 572.383 6.775 253.903 5.816
+ 41.848 519.037 6.888 568.853 7.737 258.909 11.727
+ 42.007 521.860 9.109 570.008 7.259 256.429 13.192
+ 42.164 510.938 6.391 570.770 7.816 255.364 19.930
+ 42.320 517.809 7.031 576.377 11.517 244.873 10.208
+ 42.478 515.628 6.324 573.083 8.802 248.438 12.099
+ 42.636 520.106 6.802 567.840 9.417 262.284 13.071
+ 42.793 517.101 6.642 569.398 8.580 262.942 9.977
+ 42.951 520.641 6.487 571.494 7.259 250.049 8.741
+ 43.108 520.096 7.669 574.305 13.674 245.760 11.569
+ 43.264 521.771 6.146 572.113 7.554 252.937 8.581
+ 43.423 513.917 6.625 570.691 6.932 257.129 11.521
+ 43.582 518.479 6.576 572.296 8.444 254.471 9.025
+ 43.739 519.444 9.084 576.493 7.835 249.084 13.837
+ 43.895 511.014 17.993 569.925 19.301 250.790 41.914
+ 44.051 507.980 6.261 572.109 23.696 268.567 50.898
+ 44.207 518.879 6.285 566.751 14.600 249.045 10.606
+ 44.364 508.598 6.668 571.357 8.969 254.110 17.010
+ 44.520 513.176 8.456 574.653 12.687 252.911 14.676
+ 44.677 518.301 7.964 572.796 16.366 239.809 21.940
+ 44.834 511.643 6.478 569.018 9.445 267.218 11.496
+ 44.991 510.746 6.567 573.190 7.428 249.432 9.281
+ 45.148 511.907 5.965 568.731 8.330 254.084 7.619
+ 45.305 511.109 6.848 570.657 10.628 254.070 11.186
+ 45.463 513.971 6.789 576.196 11.676 259.350 15.195
+ 45.621 518.639 7.253 568.762 9.569 258.453 19.087
+ 45.778 512.006 6.748 570.287 8.844 252.254 9.908
+ 45.935 514.280 8.989 569.202 17.445 257.242 24.304
+ 46.091 512.662 8.219 570.372 12.529 256.432 32.370
+ 46.248 513.756 9.598 572.013 12.292 262.434 14.736
+ 46.405 510.797 7.151 569.700 8.964 260.624 9.904
+ 46.563 512.498 7.210 573.687 9.052 247.756 13.919
+ 46.720 513.825 10.352 574.556 8.323 246.257 9.354
+ 46.878 512.818 6.896 571.845 17.781 266.352 17.113
+ 47.035 512.238 8.518 570.028 7.935 259.153 7.272
+ 47.192 511.712 7.241 572.410 10.561 251.271 10.636
+ 47.350 511.087 6.365 572.354 7.123 247.722 13.085
+ 47.507 508.990 7.197 571.293 7.909 259.577 10.626
+ 47.665 509.259 5.933 568.863 8.507 260.485 14.947
+ 47.823 512.152 7.199 567.058 7.506 255.494 9.055
+ 47.981 512.661 7.920 573.110 13.918 243.974 26.343
+ 48.136 513.996 7.390 568.531 10.210 252.829 14.739
+ 48.293 511.740 5.943 570.475 7.284 254.948 8.030
+ 48.450 513.947 6.626 574.344 8.767 248.459 6.401
+ 48.608 513.539 6.683 571.203 7.124 257.384 10.047
+ 48.766 516.925 6.275 573.392 7.413 254.953 11.686
+ 48.924 514.269 5.920 571.533 7.788 262.369 11.019
+ 49.083 508.752 6.084 573.625 7.388 252.113 11.610
+ 49.240 514.847 6.066 573.026 9.250 254.951 7.151
+ 49.399 520.338 6.709 574.910 7.962 253.249 11.568
+ 49.557 509.433 6.822 569.819 7.808 261.932 6.632
+ 49.715 507.944 6.175 573.208 7.144 249.979 8.165
+ 49.872 514.349 6.661 570.392 8.461 253.759 14.808
+ 50.029 514.143 6.415 570.033 8.827 263.447 9.581
+ 50.187 514.371 6.281 571.740 6.659 253.844 8.393
+ 50.345 512.363 6.163 572.627 8.034 252.918 14.464
+ 50.501 504.383 6.727 571.056 7.426 252.839 11.057
+ 50.658 514.023 8.370 573.210 13.630 252.038 15.036
+ 50.816 514.920 7.855 572.942 10.213 259.660 8.727
+ 50.974 509.569 6.303 573.669 8.464 249.076 11.175
+ 51.132 514.785 7.561 573.106 7.647 263.580 5.227
+ 51.291 514.457 7.138 571.221 7.259 254.535 10.207
+ 51.449 507.664 6.658 568.992 7.249 256.815 8.032
+ 51.607 509.026 6.760 569.269 8.157 259.938 6.093
+ 51.765 512.050 6.886 576.342 9.219 247.239 16.110
+ 51.921 514.170 6.599 566.923 8.237 254.722 7.022
+ 52.078 516.131 6.160 571.719 10.344 256.837 12.304
+ 52.237 517.811 7.815 572.287 7.536 260.728 13.205
+ 52.394 510.948 6.825 575.692 13.830 254.247 20.076
+ 52.550 516.709 7.397 573.957 9.513 252.182 9.801
+ 52.708 510.437 7.026 568.509 8.240 263.001 10.526
+ 52.865 509.264 6.655 575.175 9.508 244.210 11.330
+ 53.022 518.322 6.199 571.131 10.221 254.842 18.020
+ 53.180 509.943 7.447 563.261 8.925 261.148 19.566
+ 53.335 517.149 8.129 575.642 11.231 246.331 15.156
+ 53.493 507.411 7.887 574.576 14.110 255.323 17.522
+ 53.649 511.694 7.760 569.305 7.459 253.283 6.573
+ 53.807 513.836 6.383 573.033 11.715 267.322 16.523
+ 53.964 508.268 8.481 570.830 6.848 250.513 10.704
+ 54.120 510.682 7.890 573.458 7.506 254.965 14.878
+ 54.277 512.546 7.979 570.494 10.318 252.629 15.695
+ 54.434 507.915 6.946 571.514 8.000 259.596 6.243
+ 54.591 511.749 6.640 571.425 7.410 256.566 6.737
+ 54.748 510.557 6.698 574.164 7.107 254.785 7.047
+ 54.905 511.505 5.977 571.321 7.122 247.427 9.565
+ 55.062 513.605 6.387 574.143 8.708 254.244 10.521
+ 55.220 512.316 5.706 571.951 8.199 251.962 12.583
+ 55.379 513.013 6.353 572.659 8.899 255.419 12.531
+ 55.538 507.860 7.205 569.856 10.360 259.934 11.751
+ 55.696 511.818 6.903 572.868 8.213 257.139 7.498
+ 55.853 510.978 6.341 569.458 7.792 255.211 5.508
+ 56.012 506.489 6.551 572.094 9.551 255.182 11.011
+ 56.170 512.974 7.798 572.421 7.569 259.011 7.840
+ 56.328 509.199 6.589 571.454 8.118 244.620 10.914
+ 56.485 505.692 5.823 572.644 6.493 252.276 4.389
+ 56.643 508.076 5.960 568.786 8.260 265.692 8.096
+ 56.800 508.980 6.938 572.397 10.445 260.756 14.237
+ 56.957 501.099 10.095 570.994 20.673 256.217 40.955
+ 57.113 502.711 6.735 575.959 10.206 251.002 27.102
+ 57.270 507.237 6.388 570.429 7.387 264.290 11.415
+ 57.428 510.442 6.978 573.014 9.118 251.372 10.580
+ 57.585 501.314 6.715 571.700 9.963 246.603 8.763
+ 57.742 501.653 8.063 564.907 13.565 256.166 12.353
+ 57.899 498.956 6.462 573.489 8.109 263.331 17.012
+ 58.056 499.689 6.007 572.194 7.083 262.173 4.970
+ 58.215 506.596 6.022 570.982 7.281 250.901 10.728
+ 58.373 498.065 7.116 571.309 7.626 261.969 8.051
+ 58.530 495.740 7.506 572.843 6.126 246.049 7.559
+ 58.688 501.897 8.940 575.978 9.630 245.090 22.397
+ 58.843 500.869 7.139 568.859 10.812 258.280 19.133
+ 59.001 502.418 5.989 569.048 8.332 253.112 6.897
+ 59.158 495.924 6.775 572.510 7.961 255.581 7.464
+ 59.315 499.759 6.691 566.445 6.593 254.225 18.411
+ 59.472 499.067 10.146 573.364 10.370 252.382 28.161
+ 59.629 498.760 8.359 568.353 9.397 265.453 13.202
+ 59.785 501.287 7.769 571.333 7.700 249.524 10.021
+ 59.944 492.042 5.518 571.133 7.712 258.335 8.295
+ 60.102 496.000 6.548 570.221 9.984 253.743 12.374
+ 60.259 498.900 6.038 574.752 9.615 254.207 11.606
+ 60.416 496.229 6.498 572.517 8.919 255.212 5.867
+ 60.575 495.732 6.571 567.935 7.689 262.992 19.460
+ 60.732 494.527 6.170 572.689 7.105 258.829 9.211
+ 60.890 494.575 5.992 572.916 7.887 260.838 3.696
+ 61.049 492.855 6.332 572.509 9.485 252.768 19.044
+ 61.206 492.358 5.484 575.965 6.981 258.067 5.621
+ 61.364 498.603 5.767 570.239 7.299 257.080 6.833
+ 61.523 501.476 7.580 571.962 11.926 258.560 30.469
+ 61.679 494.174 6.810 573.359 9.300 254.765 13.101
+ 61.836 494.691 6.914 572.713 11.451 254.967 13.393
+ 61.993 499.286 7.504 577.747 9.480 254.739 12.498
+ 62.149 499.372 6.782 568.417 8.652 259.617 13.245
+ 62.307 501.003 6.218 570.644 10.891 255.666 23.779
+ 62.464 503.670 6.380 572.136 8.746 253.426 14.920
+ 62.621 501.896 6.010 570.881 6.775 259.124 10.642
+ 62.778 494.339 6.841 570.318 7.183 251.921 7.808
+ 62.936 508.493 6.387 574.963 9.341 260.389 12.330
+ 63.092 500.864 6.732 573.519 8.189 257.253 16.800
+ 63.249 499.058 6.858 574.425 11.693 247.102 22.851
+ 63.406 497.520 5.942 572.804 11.344 261.531 18.009
+ 63.563 499.955 5.771 572.068 7.286 250.955 10.467
+ 63.722 491.929 6.702 575.040 7.031 263.199 11.196
+ 63.880 499.939 5.875 569.610 7.261 256.882 8.823
+ 64.037 494.639 7.631 575.486 8.682 259.028 15.179
+ 64.194 498.516 7.166 569.104 10.803 251.160 13.224
+ 64.352 492.955 5.530 570.261 6.691 253.941 11.068
+ 64.509 495.009 5.942 572.492 7.363 252.029 12.928
+ 64.667 497.240 6.314 575.715 9.700 258.580 13.004
+ 64.825 496.442 6.664 571.407 7.753 257.895 11.389
+ 64.981 495.574 6.258 571.854 8.777 251.468 18.874
+ 65.138 497.955 6.329 574.548 8.311 261.124 10.949
+ 65.296 497.729 5.996 572.255 7.714 251.801 8.931
+ 65.454 493.617 7.409 570.982 8.486 256.698 11.768
+ 65.612 497.886 6.092 569.539 6.642 265.957 6.633
+ 65.770 499.218 6.649 572.435 7.300 255.789 10.172
+ 65.927 497.872 6.250 573.614 7.938 256.957 10.734
+ 66.086 494.748 6.419 574.286 8.082 255.339 13.963
+ 66.243 497.667 5.909 570.892 8.965 262.383 10.419
+ 66.401 498.556 5.593 577.528 7.821 252.633 9.433
+ 66.558 499.835 6.505 571.595 8.706 259.616 11.464
+ 66.715 496.518 6.425 573.106 7.569 254.046 10.761
+ 66.872 497.685 6.685 572.051 6.460 257.520 4.453
+ 67.030 499.436 6.402 572.510 6.774 255.315 10.315
+ 67.188 492.404 6.158 571.925 9.553 253.383 6.220
+ 67.346 495.594 6.456 572.769 8.311 253.703 15.639
+ 67.503 499.055 6.276 574.137 7.030 251.527 14.713
+ 67.661 491.370 6.357 571.601 8.283 260.495 13.556
+ 67.819 498.673 5.995 575.066 10.928 251.714 21.395
+ 67.975 500.176 5.775 573.880 8.291 252.427 5.779
+ 68.134 491.531 6.562 572.378 7.881 254.754 8.346
+ 68.291 499.375 7.542 572.593 8.008 256.047 11.713
+ 68.448 496.913 6.258 573.586 7.454 259.710 7.197
+ 68.606 496.159 6.007 572.055 8.107 258.367 11.962
+ 68.764 494.091 5.731 572.390 7.323 257.933 15.531
+ 68.921 493.070 5.960 570.943 7.603 254.359 4.541
+ 69.079 495.750 7.082 571.369 10.013 257.493 9.653
+ 69.235 502.167 5.781 572.413 7.507 255.674 6.813
+ 69.393 499.001 6.289 574.164 7.276 255.076 7.346
+ 69.551 498.330 6.053 572.521 6.925 260.150 10.913
+ 69.709 499.813 6.191 572.015 7.290 261.781 10.819
+ 69.868 498.018 7.130 571.370 9.912 248.627 10.884
+ 70.025 494.370 6.064 571.863 9.795 254.476 10.009
+ 70.183 497.463 5.666 571.928 8.555 263.944 5.907
+ 70.342 496.224 6.350 570.879 8.688 261.059 8.373
+ 70.499 499.772 5.753 572.658 8.008 252.070 4.931
+ 70.657 493.527 5.846 572.826 8.869 251.210 18.299
+ 70.814 496.795 5.897 571.358 7.024 253.802 15.536
+ 70.971 489.638 7.076 569.463 7.481 258.388 7.837
+ 71.128 495.656 8.326 569.164 12.119 260.783 20.616
+ 71.285 494.696 5.959 571.171 8.230 257.087 14.881
+ 71.442 491.277 8.828 573.141 11.043 249.620 17.163
+ 71.599 495.392 7.151 574.311 9.812 265.216 12.290
+ 71.756 499.593 9.571 572.353 9.956 245.362 14.601
+ 71.913 497.125 5.675 571.103 8.042 255.263 5.070
+ 72.070 491.291 6.503 572.691 8.274 260.972 5.351
+ 72.229 498.272 6.080 575.276 6.957 258.769 7.711
+ 72.387 496.522 6.739 575.222 8.594 255.397 14.585
+ 72.544 499.245 6.092 573.902 6.842 256.034 16.801
+ 72.701 495.402 6.355 567.879 8.340 268.810 11.275
+ 72.860 501.814 7.218 570.088 8.827 257.048 6.416
+ 73.018 500.208 6.107 572.650 7.178 250.670 8.726
+ 73.174 489.172 7.408 574.796 7.609 257.816 13.996
+ 73.331 498.551 6.952 569.528 8.915 257.228 12.079
+ 73.488 493.695 6.708 572.705 7.178 259.592 8.194
+ 73.646 504.847 6.555 575.767 8.269 256.855 5.203
+ 73.804 497.528 8.719 572.797 7.776 255.238 19.304
+ 73.961 495.875 8.079 569.468 10.454 268.412 15.636
+ 74.118 499.398 7.209 574.444 13.478 250.864 13.629
+ 74.275 490.504 6.609 573.574 7.594 258.458 12.604
+ 74.432 496.365 6.274 570.325 8.168 253.494 10.738
+ 74.589 500.103 6.528 571.623 11.011 263.134 21.949
+ 74.746 502.691 6.373 574.556 6.360 253.991 14.359
+ 74.904 491.656 6.898 568.085 7.891 253.499 18.376
+ 75.060 493.706 9.035 571.610 9.296 261.335 9.998
+ 75.217 499.067 6.099 572.106 8.579 253.253 5.017
+ 75.375 502.070 6.449 571.911 7.337 254.792 8.313
+ 75.533 500.570 6.062 572.679 8.163 258.647 9.452
+ 75.692 498.205 6.871 570.986 7.019 264.036 10.743
+ 75.849 499.622 6.447 574.219 9.415 247.210 12.845
+ 76.007 500.966 7.602 573.912 10.376 258.822 27.012
+ 76.163 509.639 8.735 574.089 10.047 257.418 11.545
+ 76.320 504.596 6.280 571.860 8.076 259.974 9.150
+ 76.477 504.055 7.480 573.678 10.139 259.689 14.953
+ 76.635 505.650 6.978 572.566 11.014 260.006 20.488
+ 76.792 504.476 7.366 576.545 9.649 257.040 17.824
+ 76.948 505.814 6.714 575.375 9.440 257.070 9.238
+ 77.105 513.658 8.309 573.423 19.535 252.400 44.017
+ 77.261 503.906 5.991 575.444 6.298 256.404 6.384
+ 77.419 506.109 6.006 578.614 10.541 256.804 10.346
+ 77.577 504.781 9.261 574.856 11.475 259.398 22.188
+ 77.735 505.287 8.589 575.828 9.213 261.053 18.491
+ 77.891 508.652 6.735 576.168 11.189 251.760 21.619
+ 78.048 510.146 7.172 582.301 6.375 247.017 11.505
+ 78.206 515.581 6.419 578.823 9.031 258.590 19.500
+ 78.363 510.545 7.147 580.698 11.478 270.975 22.615
+ 78.520 512.775 7.794 578.967 9.941 253.049 22.692
+ 78.677 510.967 6.337 587.589 11.581 244.900 27.252
+ 78.833 506.889 7.041 583.165 19.595 248.539 32.184
+ 78.989 505.428 7.617 575.071 9.347 268.955 10.162
+ 79.146 512.744 9.445 572.550 9.605 251.729 19.063
+ 79.302 512.167 10.708 578.705 13.690 260.137 30.541
+ 79.460 508.441 11.180 588.507 29.412 277.101 69.071
+ 79.614 508.924 8.354 582.525 8.751 255.911 16.206
+ 79.771 508.729 6.509 584.045 10.965 252.459 21.745
+ 79.928 509.917 10.491 576.970 11.589 269.134 18.223
+ 80.086 512.169 7.880 583.149 13.595 249.061 10.147
+ 80.243 514.261 12.065 571.311 14.893 265.250 19.446
+ 80.400 508.752 7.725 582.513 9.399 252.372 5.842
+ 80.557 506.027 6.675 585.285 11.456 260.043 13.301
+ 80.715 516.740 7.421 577.072 10.501 267.500 9.021
+ 80.873 510.997 6.968 587.340 12.699 267.185 13.850
+ 81.031 507.230 7.783 584.873 17.952 253.041 26.361
+ 81.186 505.472 11.793 590.198 21.448 245.120 17.679
+ 81.342 507.554 9.215 581.762 14.456 263.331 23.936
+ 81.498 511.475 5.943 574.377 10.307 262.613 15.379
+ 81.657 513.794 7.640 579.683 10.383 263.366 9.384
+ 81.814 513.917 6.914 590.226 8.515 256.863 14.349
+ 81.972 517.109 6.708 592.032 14.155 254.678 28.928
+ 82.129 504.701 8.097 583.340 12.082 267.016 20.997
+ 82.285 506.007 6.706 580.223 7.986 260.590 5.250
+ 82.442 517.230 7.343 584.162 15.114 248.415 15.769
+ 82.598 510.172 6.210 581.921 9.398 258.714 14.817
+ 82.755 514.041 8.053 584.309 9.654 248.487 22.660
+ 82.911 515.200 6.324 580.123 9.074 258.304 5.713
+ 83.071 501.152 7.956 584.401 9.451 254.533 22.688
+ 83.227 518.621 8.739 594.714 13.139 258.025 12.962
+ 83.385 514.876 7.104 585.647 16.755 263.300 34.196
+ 83.540 513.598 6.120 580.566 8.566 260.283 16.929
+ 83.698 510.496 6.740 572.145 10.011 238.892 14.541
+ 83.855 512.334 6.648 576.081 7.294 267.768 11.105
+ 84.012 515.473 6.515 578.990 7.023 258.757 10.506
+ 84.171 505.974 8.646 588.049 11.399 252.797 21.859
+ 84.328 518.249 7.006 570.210 11.042 265.828 15.337
+ 84.486 509.922 6.833 571.372 7.998 260.658 17.683
+ 84.642 516.329 6.016 572.503 10.378 263.216 10.322
+ 84.802 506.173 7.321 573.965 16.437 258.182 19.840
+ 84.958 516.281 8.900 589.269 11.769 245.121 22.270
+ 85.115 508.492 8.167 587.332 19.750 254.261 26.312
+ 85.270 515.894 10.248 582.103 31.284 202.702 47.185
+ 85.426 518.709 19.949 571.821 48.734 300.517 78.179
+ 85.579 515.067 6.749 571.298 13.149 254.335 15.439
+ 85.736 506.950 6.584 570.433 17.897 263.503 15.651
+ 85.893 504.469 9.041 568.084 11.644 254.745 24.903
+ 86.049 525.124 8.007 574.610 14.444 221.047 25.309
+ 86.205 511.161 7.426 574.816 14.386 267.280 16.792
+ 86.361 515.981 6.816 573.398 14.479 257.772 13.235
+ 86.519 513.009 7.361 573.264 8.526 260.617 12.069
+ 86.677 512.530 7.167 572.492 9.421 255.826 11.952
+ 86.834 515.075 6.186 575.594 14.236 242.028 23.964
+ 86.992 517.160 6.791 572.456 7.606 259.250 5.460
+ 87.151 511.261 6.481 573.154 8.951 259.272 9.940
+ 87.308 511.762 6.197 574.501 8.166 258.502 18.807
+ 87.465 510.887 6.545 574.355 11.465 256.835 16.676
+ 87.622 514.248 7.440 576.603 7.571 256.668 12.807
+ 87.781 508.902 6.422 570.176 7.891 262.626 9.714
+ 87.937 511.749 6.524 572.881 9.633 259.726 12.467
+ 88.094 512.307 6.343 567.228 12.655 259.667 20.573
+ 88.251 513.393 9.996 572.582 12.160 260.036 12.876
+ 88.410 509.943 7.731 568.465 8.290 255.860 10.192
+ 88.568 507.759 6.645 570.634 8.972 259.368 6.988
+ 88.725 513.667 7.811 572.446 6.560 256.633 12.064
+ 88.883 513.626 8.198 572.034 12.408 250.596 18.463
+ 89.040 510.536 6.365 573.130 7.924 258.095 9.687
+ 89.198 511.545 7.115 573.511 8.014 250.461 14.152
+ 89.354 514.345 6.960 571.885 9.257 255.914 14.551
+ 89.512 511.233 6.413 571.318 10.018 258.809 16.349
+ 89.670 507.692 5.647 571.593 9.158 256.848 8.117
+ 89.828 512.566 5.906 570.515 7.879 251.978 9.089
+ 89.985 514.935 5.797 573.065 8.526 257.839 7.155
+ 90.144 509.999 7.133 573.050 10.422 263.608 23.133
+ 90.301 512.410 8.565 570.770 8.930 255.656 10.111
+ 90.459 513.164 6.975 573.087 9.278 257.416 15.754
+ 90.617 506.831 7.568 572.650 9.521 255.144 14.720
+ 90.773 510.388 6.696 573.556 7.323 251.881 7.186
+ 90.931 514.963 7.683 572.275 7.984 263.988 6.758
+ 91.089 509.369 8.057 568.722 11.056 263.499 12.958
+ 91.246 517.783 5.956 572.217 7.192 257.665 5.365
+ 91.406 513.927 6.382 573.432 7.233 256.756 6.229
+ 91.564 511.849 5.966 573.594 7.581 256.717 5.425
+ 91.723 509.528 6.705 571.016 6.530 258.287 4.557
+ 91.881 510.915 5.987 574.170 6.290 253.192 4.800
+ 92.039 516.509 6.429 572.401 8.279 252.451 11.505
+ 92.196 514.695 6.347 571.524 7.747 259.534 7.807
+ 92.354 518.167 7.250 573.585 7.239 252.625 7.528
+ 92.512 513.071 6.012 571.205 8.904 259.886 9.091
+ 92.671 511.230 7.353 569.262 8.541 258.298 12.628
+ 92.827 514.182 6.987 577.262 10.285 252.353 12.496
+ 92.986 506.831 7.781 571.272 7.294 259.023 11.444
+ 93.144 513.888 8.803 571.162 6.950 257.410 12.656
+ 93.301 516.688 6.235 574.371 9.310 258.494 5.716
+ 93.460 511.766 6.368 573.053 6.810 255.924 5.099
+ 93.618 510.797 6.593 575.950 6.977 256.799 13.780
+ 93.775 510.968 6.430 573.389 6.750 258.148 8.819
+ 93.933 515.159 6.746 578.393 6.531 244.511 7.653
+ 94.091 510.771 9.102 574.694 13.343 256.395 18.943
+ 94.249 509.867 10.349 575.126 15.680 258.283 24.122
+ 94.404 513.628 6.462 574.971 9.692 251.972 7.366
+ 94.563 513.416 6.675 573.699 8.016 258.139 7.102
+ 94.720 511.914 6.444 574.937 7.808 251.321 9.587
+ 94.878 510.409 5.738 572.999 8.477 263.103 15.420
+ 95.035 513.014 6.103 572.620 11.571 257.461 21.442
+ 95.192 511.990 7.180 574.016 7.581 250.654 13.549
+ 95.350 513.149 7.133 575.170 6.946 258.026 5.738
+ 95.509 512.261 7.031 573.441 7.626 259.680 5.694
+ 95.667 514.612 6.794 572.464 8.899 254.856 10.809
+ 95.825 512.226 6.486 575.384 7.002 257.418 7.813
+ 95.984 513.322 7.564 574.583 7.361 254.914 9.889
+ 96.141 509.263 7.431 575.345 9.932 256.399 10.360
+ 96.299 509.302 5.976 571.333 7.413 260.754 8.167
+ 96.456 513.343 6.007 575.503 6.659 249.157 6.831
+ 96.614 512.323 5.992 573.175 6.973 255.301 10.834
+ 96.773 513.913 5.561 574.891 8.001 257.813 10.013
+ 96.931 507.649 6.200 573.699 9.347 264.388 9.397
+ 97.088 513.356 6.784 572.297 6.842 253.503 6.103
+ 97.247 510.343 6.480 575.053 7.830 252.295 11.072
+ 97.404 510.933 6.150 572.310 8.047 260.172 5.056
+ 97.563 513.089 6.018 573.043 6.983 252.071 11.172
+ 97.721 508.500 7.299 571.240 7.405 263.680 6.007
+ 97.880 512.765 7.569 573.842 10.604 258.686 11.701
+ 98.038 514.297 6.707 573.938 7.837 252.626 16.070
+ 98.195 519.383 5.907 574.609 7.492 255.496 7.954
+ 98.352 515.863 5.988 575.486 6.843 256.884 6.430
+ 98.511 515.868 6.746 568.504 6.710 269.858 8.816
+ 98.669 502.928 8.284 571.785 8.839 259.878 13.809
+ 98.825 520.879 7.676 574.637 12.448 239.378 39.700
+ 98.981 519.848 7.110 575.596 11.111 252.873 15.895
+ 99.139 511.238 6.286 574.936 8.615 249.538 7.728
+ 99.296 528.902 6.076 572.219 8.107 257.695 10.809
+ 99.455 517.759 7.918 572.512 7.164 264.246 9.769
+ 99.613 520.627 7.111 574.375 7.262 258.792 4.759
+ 99.771 520.716 7.657 575.993 7.637 252.707 4.508
+ 99.930 517.837 6.344 572.550 7.428 256.447 8.813
+100.087 524.388 6.616 575.205 7.434 250.514 17.798
+100.244 528.243 5.892 574.412 8.114 262.365 12.150
+100.402 518.222 5.609 571.824 7.176 259.243 6.627
+100.560 528.572 6.045 576.708 9.937 255.862 9.332
+100.717 526.385 6.585 576.177 7.212 248.418 7.380
+100.874 517.343 6.471 578.381 10.010 253.434 17.204
+101.031 533.053 7.814 574.943 7.977 268.734 11.393
+101.189 523.850 6.339 571.949 7.344 254.997 6.814
+101.347 531.028 5.638 572.879 7.593 247.670 15.607
+101.504 522.720 5.831 574.138 7.309 256.416 5.294
+101.662 531.647 6.299 574.471 6.128 256.604 9.234
+101.821 527.856 7.383 573.134 8.870 259.956 16.620
+101.978 526.648 5.902 577.211 7.687 257.429 5.272
+102.137 527.836 5.998 575.772 7.570 247.734 8.679
+102.295 532.618 7.089 581.027 6.692 256.537 6.407
+102.453 531.846 6.969 573.000 8.850 260.195 16.712
+102.610 533.918 6.378 577.020 6.920 257.012 3.445
+102.769 525.979 6.099 576.130 7.129 256.310 8.854
+102.926 530.309 5.959 572.151 7.007 246.023 9.527
+103.083 535.243 5.866 582.931 6.643 252.380 5.066
+103.241 531.022 6.063 575.499 7.017 254.743 3.733
+103.398 527.560 6.075 575.795 7.075 258.577 7.678
+103.557 529.125 5.890 575.918 7.898 255.595 8.735
+103.714 521.271 6.575 575.119 6.654 246.436 4.785
+103.871 537.712 5.914 579.291 8.696 247.204 10.081
+104.029 527.257 6.463 574.103 14.442 260.122 18.698
+104.185 527.952 8.225 567.361 9.979 265.911 13.129
+104.343 524.289 6.025 574.983 8.719 250.169 10.960
+104.500 523.852 5.931 578.199 6.583 250.271 9.486
+104.657 524.008 6.675 574.412 7.030 243.892 11.434
+104.814 536.210 6.153 576.244 7.602 256.028 7.840
+104.972 517.632 7.692 577.462 9.892 252.670 19.171
+105.128 521.576 6.247 579.554 8.212 248.266 7.784
+105.285 537.985 5.585 574.785 6.906 256.832 7.891
+105.443 526.899 7.367 576.537 7.014 253.058 3.902
+105.600 525.959 6.395 575.645 7.001 257.430 8.075
+105.757 521.759 7.178 575.346 7.393 258.284 9.227
+105.915 537.497 7.321 576.923 11.395 248.842 26.180
+106.071 522.035 6.262 575.669 10.963 260.468 16.850
+106.229 535.560 6.673 574.416 8.512 253.024 12.239
+106.386 534.785 5.874 572.184 7.652 260.290 4.931
+106.544 523.787 6.522 574.401 7.245 250.442 9.407
+106.702 523.247 5.769 575.044 7.024 249.324 15.520
+106.858 535.482 7.343 578.250 10.212 249.803 11.396
+107.016 529.044 7.162 574.072 9.142 252.538 8.723
+107.173 528.830 7.706 575.160 9.432 256.685 9.743
+107.330 539.178 6.074 577.741 8.092 258.396 8.235
+107.487 525.491 7.381 573.517 7.508 254.473 16.254
+107.644 528.634 5.967 572.165 6.511 256.304 18.702
+107.801 521.226 7.292 574.091 7.366 257.423 7.655
+107.958 523.072 6.150 576.960 9.317 239.454 16.422
+108.115 533.680 6.482 570.849 8.745 253.164 11.857
+108.273 530.566 5.991 572.548 8.175 259.781 6.663
+108.431 530.215 6.647 571.175 6.914 267.707 6.320
+108.589 534.542 7.713 581.031 12.176 246.957 10.259
+108.746 527.055 6.717 576.260 7.724 247.349 8.877
+108.902 526.800 6.954 576.312 8.828 242.643 14.380
+109.059 525.358 6.808 574.093 7.241 273.346 4.915
+109.217 529.063 6.521 576.131 7.727 251.543 10.641
+109.375 533.310 6.142 576.451 8.026 251.285 9.651
+109.532 535.003 6.874 576.614 7.778 254.922 13.396
+109.689 525.880 6.549 574.806 8.218 256.659 9.751
+109.846 525.688 6.786 576.718 10.435 257.436 16.887
+110.003 533.046 6.606 577.717 7.692 246.144 4.734
+110.161 526.930 7.532 576.577 7.359 250.671 8.618
+110.318 528.229 7.244 575.915 7.675 249.676 9.201
+110.475 532.952 6.618 573.149 7.435 262.746 5.706
+110.634 516.149 6.366 576.771 7.988 256.567 5.932
+110.793 535.461 6.165 574.877 7.409 248.935 14.266
+110.950 528.214 6.358 576.238 8.616 242.989 6.539
+111.107 522.812 6.350 574.642 7.897 253.059 12.802
+111.265 526.418 5.918 572.776 6.695 259.900 6.468
+111.423 524.894 6.224 579.377 7.696 246.209 5.485
+111.581 529.329 6.493 572.313 7.924 268.562 15.207
+111.737 533.313 6.359 576.253 7.299 243.695 8.817
+111.894 531.573 7.681 576.812 7.480 253.986 15.657
+112.052 523.695 7.125 572.558 8.233 260.409 13.110
+112.208 526.137 6.110 578.905 10.643 245.014 9.581
+112.366 526.241 6.213 576.109 7.879 257.010 13.251
+112.523 531.552 6.482 574.381 9.043 253.930 13.399
+112.679 519.315 7.012 576.093 7.045 252.859 10.635
+112.837 537.823 6.880 573.341 9.047 261.778 14.271
+112.994 533.528 13.724 574.963 14.710 244.647 16.603
+113.150 522.235 6.607 575.839 7.727 255.036 12.096
+113.308 525.882 6.648 574.848 7.519 254.800 6.538
+113.465 528.108 6.990 579.828 7.374 237.628 9.848
+113.623 520.281 6.529 574.188 7.632 263.786 7.918
+113.781 529.972 6.459 569.811 6.939 257.707 13.240
+113.938 529.359 7.084 574.718 6.717 251.157 11.168
+114.096 525.403 7.281 575.557 10.133 267.391 16.449
+114.252 528.394 7.010 577.685 8.225 248.333 8.261
+114.410 528.084 6.417 577.266 6.622 250.613 7.561
+114.567 519.140 7.455 574.882 8.366 258.966 8.770
+114.724 516.551 6.196 573.308 7.368 260.029 10.524
+114.882 530.275 6.957 577.393 9.079 240.980 18.060
+115.039 528.432 7.311 572.293 8.880 257.949 12.315
+115.196 524.434 5.750 571.583 9.566 253.799 13.368
+115.352 533.324 6.966 575.635 7.640 255.458 9.055
+115.509 529.253 6.605 574.186 6.855 254.454 7.255
+115.667 516.062 5.994 574.901 6.867 258.514 8.961
+115.824 538.720 9.373 574.489 8.484 239.185 15.381
+115.980 522.697 6.489 575.564 10.789 254.351 11.524
+116.138 522.577 5.960 573.935 7.786 264.803 8.666
+116.296 538.165 6.589 573.959 7.836 253.718 4.822
+116.455 527.721 7.174 574.789 7.910 255.347 5.618
+116.612 529.837 6.658 580.848 8.163 243.633 8.897
+116.769 527.008 6.709 572.638 8.441 267.756 10.832
+116.927 540.280 14.990 571.776 21.758 247.307 41.662
+117.084 520.572 7.383 573.767 10.756 272.173 6.741
+117.242 524.545 8.914 576.567 9.299 245.631 14.241
+117.398 528.705 6.092 582.305 9.430 244.906 23.508
+117.556 523.087 6.555 570.863 15.426 272.799 16.208
+117.712 527.030 7.998 574.808 17.110 239.818 20.436
+117.867 538.880 6.083 573.398 8.651 269.418 10.328
+118.025 529.358 6.734 576.564 7.323 248.254 16.118
+118.181 514.353 6.031 578.375 8.348 241.852 10.328
+118.340 511.743 6.118 572.183 6.509 263.038 3.524
+118.499 516.907 6.555 573.251 9.123 252.990 10.689
+118.656 530.079 6.204 572.542 7.235 266.589 7.015
+118.814 531.180 7.786 574.065 8.728 251.615 12.859
+118.972 536.131 9.462 580.700 7.794 240.836 23.446
+119.128 524.031 8.007 568.847 7.114 269.118 7.359
+119.284 527.480 6.036 577.368 8.929 248.521 5.327
+119.442 519.804 7.064 578.283 8.293 252.755 6.662
+119.599 526.548 12.975 572.842 9.190 251.767 24.374
+119.756 528.135 6.848 575.738 11.408 255.527 24.431
+119.912 531.421 7.670 575.217 8.607 260.035 14.186
+120.070 538.734 14.097 577.812 12.308 267.830 21.004
+120.226 523.867 6.946 577.908 9.520 251.378 15.167
+120.382 525.018 5.903 575.339 7.760 253.923 8.395
+120.541 526.030 7.145 574.293 6.173 260.059 7.145
+120.698 518.470 7.674 577.363 7.783 249.910 6.384
+120.857 520.424 6.221 570.943 8.976 258.669 17.274
+121.013 537.604 8.716 576.729 14.512 252.246 18.291
+121.169 523.356 6.449 573.677 8.948 256.892 10.876
+121.327 527.223 7.476 574.926 8.696 257.388 11.696
+121.485 529.052 6.413 572.669 11.043 256.003 17.081
+121.642 522.760 6.690 572.576 9.564 258.610 8.947
+121.800 518.767 6.297 575.845 7.143 255.416 12.890
+121.957 529.727 5.868 575.878 7.551 248.464 5.054
+122.114 523.127 6.073 572.828 7.944 254.664 7.332
+122.272 517.401 5.918 574.248 7.971 258.296 8.911
+122.429 522.554 6.061 573.892 7.506 256.132 7.238
+122.588 518.975 7.121 570.378 7.440 259.501 9.961
+122.744 518.509 7.017 575.883 7.348 246.725 7.882
+122.902 518.615 7.071 572.908 6.929 252.437 9.600
+123.059 518.196 9.375 573.119 18.480 247.334 28.518
+123.214 510.452 7.276 574.181 7.571 250.433 17.524
+123.371 516.194 5.792 575.591 9.488 255.064 14.851
+123.529 509.622 5.782 571.006 8.246 254.810 11.502
+123.686 512.046 6.348 569.810 7.329 256.408 8.390
+123.844 509.270 6.807 574.088 6.525 260.024 14.637
+124.001 513.162 6.772 570.490 12.048 263.150 21.534
+124.159 514.181 9.146 570.994 11.916 253.821 20.164
+124.317 510.651 5.829 566.169 7.955 271.608 9.584
+124.474 507.266 6.587 570.231 7.299 257.456 6.694
+124.631 504.872 7.156 576.532 7.801 247.484 11.200
+124.789 507.998 5.978 571.645 10.580 253.794 10.157
+124.948 506.600 8.655 576.286 10.916 254.717 14.723
+125.106 509.566 6.440 570.332 6.938 263.097 16.912
+125.262 506.215 6.655 573.813 7.819 257.171 14.373
+125.419 506.092 6.387 574.288 7.202 249.151 6.421
+125.577 503.980 6.294 571.782 10.032 269.571 22.530
+125.734 508.549 6.809 573.977 9.099 253.875 9.065
+125.890 505.335 6.833 572.129 8.114 254.168 19.700
+126.047 511.613 6.485 576.941 7.793 261.021 11.207
+126.205 501.886 7.441 573.859 8.566 257.250 7.511
+126.363 502.278 5.966 571.288 6.910 261.572 16.645
+126.520 510.472 5.744 573.133 7.410 256.525 6.521
+126.678 500.074 7.409 577.151 6.617 249.535 10.781
+126.835 495.970 8.152 572.121 8.512 259.865 12.434
+126.992 499.209 5.675 569.601 8.788 257.648 10.454
+127.150 499.452 7.114 565.646 8.065 261.956 6.527
+127.308 501.364 7.983 572.716 9.310 253.599 9.463
+127.465 493.153 6.617 576.287 8.087 254.596 6.822
+127.622 503.011 5.924 572.812 8.863 258.125 6.765
+127.781 500.900 7.736 575.768 9.892 263.831 10.935
+127.939 498.389 6.571 571.517 7.938 268.018 9.033
+128.096 488.683 9.741 572.715 11.375 249.660 18.938
+128.253 494.576 8.224 578.377 8.823 257.436 10.253
+128.411 494.185 7.141 573.943 8.119 255.264 8.990
+128.568 491.851 7.730 569.319 9.558 263.492 11.198
+128.726 506.008 6.327 575.093 9.581 261.394 11.323
+128.884 488.920 9.665 566.871 16.832 247.893 13.350
+129.041 499.419 6.350 564.898 11.801 254.218 23.035
+129.199 498.974 5.884 573.719 11.482 256.922 7.714
+129.357 497.139 6.882 570.957 7.067 253.689 4.909
+129.514 503.511 7.439 574.289 7.425 251.066 8.303
+129.672 488.175 7.294 567.593 8.229 259.050 16.375
+129.827 505.891 8.831 570.145 8.335 243.330 14.261
+129.983 494.039 5.972 576.001 10.327 251.753 10.484
+130.141 487.970 8.657 567.590 11.100 268.447 24.220
+130.297 497.649 7.410 571.936 8.533 241.714 8.387
+130.454 494.986 6.897 572.459 9.246 264.547 5.801
+130.612 493.529 6.592 575.014 8.212 245.075 7.374
+130.769 501.385 6.569 574.510 8.133 263.970 17.048
+130.925 472.703 8.494 577.045 14.569 266.069 21.647
+131.082 488.777 18.125 577.640 16.199 228.610 17.663
+131.238 497.207 9.312 576.926 9.278 259.756 20.118
+131.394 495.732 7.221 571.579 8.780 260.697 5.576
+131.553 497.227 7.992 566.845 7.976 264.727 14.970
+131.710 489.252 14.542 573.228 7.293 259.267 9.866
+131.866 500.222 9.765 575.842 14.484 247.692 24.738
+132.022 475.322 7.170 574.918 8.115 266.346 17.031
+132.178 498.643 7.771 564.729 11.809 259.123 14.324
+132.336 491.996 6.827 573.977 17.222 257.071 24.617
+132.493 495.530 8.203 573.729 8.332 257.640 9.412
+132.650 499.185 7.979 572.397 12.270 257.136 11.339
+132.807 496.731 7.331 572.054 11.430 252.931 17.230
+132.963 484.137 33.186 563.830 21.266 263.329 20.381
+133.119 503.021 9.870 583.838 17.071 238.613 34.413
+133.274 494.250 5.777 577.618 11.487 256.616 8.568
+133.432 497.442 5.445 570.926 8.952 264.136 16.192
+133.589 494.474 6.564 569.249 9.032 257.151 13.620
+133.745 497.554 12.732 573.872 11.099 250.761 17.401
+133.902 487.795 9.848 571.478 9.222 252.687 20.528
+134.058 493.917 10.446 571.144 14.224 242.376 31.648
+134.214 497.719 7.416 575.631 7.383 259.163 10.741
+134.373 492.297 7.506 567.796 10.247 273.951 9.963
+134.530 495.143 8.904 577.258 9.813 259.509 11.417
+134.687 491.971 5.971 575.252 7.767 252.215 12.589
+134.845 494.249 7.823 576.442 16.042 245.412 20.882
+135.001 475.882 8.585 569.654 10.462 238.834 17.824
+135.157 499.258 9.451 574.806 15.920 262.208 16.946
+135.313 494.782 7.261 577.548 7.720 251.382 10.218
+135.470 495.827 7.774 575.195 9.681 267.243 12.758
+135.626 496.578 7.381 568.552 7.316 243.862 9.040
+135.783 488.415 9.458 576.125 13.576 247.568 10.203
+135.941 487.734 7.109 573.361 10.018 272.295 10.284
+136.099 502.217 13.649 575.223 29.523 283.483 53.112
+136.254 510.862 7.297 583.142 13.702 247.884 12.687
+136.411 486.038 11.522 568.851 8.493 260.898 21.803
+136.568 493.430 6.062 567.488 11.152 260.049 15.792
+136.726 504.064 12.029 585.624 12.978 254.560 26.427
+136.882 487.920 8.360 561.806 12.571 254.635 35.717
+137.038 475.639 30.737 592.498 56.307 205.446 92.001
+137.190 509.436 8.026 580.345 8.369 265.934 21.807
+137.347 499.434 8.815 572.553 8.452 253.539 13.269
+137.504 506.264 6.395 576.335 7.477 258.755 16.957
+137.662 509.332 6.179 573.293 8.130 255.647 12.265
+137.819 503.293 10.095 567.603 7.429 257.436 24.478
+137.974 483.363 6.527 572.736 9.132 236.694 14.839
+138.129 488.733 8.571 565.467 9.413 242.406 21.481
+138.285 498.867 11.539 580.194 14.224 256.704 35.604
+138.441 497.198 5.550 574.152 7.439 254.967 16.614
+138.598 496.842 6.840 569.871 8.446 264.719 6.598
+138.756 506.498 12.094 584.678 7.701 256.257 15.484
+138.913 498.385 9.910 576.806 9.480 257.952 14.936
+139.070 500.833 9.034 577.388 16.419 254.209 26.726
+139.226 488.218 8.494 572.593 10.433 265.062 23.777
+139.382 496.372 7.606 571.716 8.641 257.230 7.765
+139.540 497.193 10.834 579.867 10.268 248.902 16.330
+139.697 498.561 8.805 574.698 8.555 260.809 5.694
+139.855 502.355 6.897 565.517 9.678 261.748 9.358
+140.012 483.133 17.820 576.805 13.110 256.347 18.827
+140.168 505.731 12.452 573.488 10.317 253.643 25.350
+140.325 492.047 8.808 572.424 10.659 258.586 11.832
+140.483 497.830 7.476 571.244 9.575 254.265 12.350
+140.640 499.448 7.293 569.062 6.739 270.022 15.284
+140.797 490.804 9.221 576.000 7.864 249.960 7.720
+140.953 491.348 7.356 582.140 7.466 246.399 11.690
+141.110 501.783 8.028 577.551 10.432 252.174 27.307
+141.266 501.077 6.543 574.945 10.108 244.381 18.547
+141.423 493.710 6.779 568.309 9.557 271.163 8.003
+141.580 503.327 7.095 570.873 8.206 269.741 9.903
+141.737 493.033 8.303 583.718 7.610 241.977 14.553
+141.893 503.190 6.736 570.837 9.092 246.969 13.807
+142.050 487.911 7.189 570.758 10.630 252.739 20.192
+142.206 496.869 7.210 568.257 8.934 264.827 6.670
+142.364 499.308 9.586 574.302 9.009 256.278 21.757
+142.520 498.323 8.004 572.233 7.934 251.282 11.240
+142.678 497.103 7.034 570.312 7.849 257.122 12.298
+142.835 501.801 6.312 575.643 7.978 255.901 10.070
+142.992 492.218 6.919 577.206 8.691 255.129 14.897
+143.148 496.652 7.281 572.802 10.133 258.361 22.717
+143.305 489.366 8.492 571.958 9.747 256.053 10.722
+143.462 499.533 6.743 568.839 7.853 260.890 7.127
+143.620 498.665 6.067 574.278 7.565 252.618 14.814
+143.777 501.446 6.840 576.732 7.174 250.996 8.083
+143.934 488.034 6.626 571.457 7.015 260.640 7.383
+144.091 482.470 12.727 567.824 7.534 251.866 8.550
+144.248 506.984 6.584 579.558 9.965 243.768 31.054
+144.404 494.719 6.575 573.115 8.250 259.757 13.649
+144.562 495.557 7.133 573.191 8.294 256.947 14.267
+144.719 489.765 6.250 565.691 6.724 263.579 8.700
+144.877 498.527 8.894 573.626 7.849 251.645 12.683
+145.033 498.535 6.820 571.486 7.831 249.866 6.034
+145.189 492.875 7.052 573.954 9.847 249.378 35.053
+145.345 501.208 6.625 572.089 8.966 267.303 9.248
+145.503 497.622 9.176 567.831 9.207 250.343 14.792
+145.659 501.206 5.888 572.368 7.853 247.343 12.105
+145.816 496.692 7.783 572.963 7.802 242.253 14.469
+145.973 494.526 7.521 569.519 8.187 246.662 9.858
+146.129 494.565 7.571 568.995 12.980 259.926 14.331
+146.287 498.625 7.065 573.699 7.291 253.779 8.450
+146.444 493.126 6.898 572.847 9.900 260.067 17.114
+146.600 492.551 7.080 572.848 8.151 251.740 13.910
+146.757 494.375 9.346 565.068 6.873 259.287 8.456
+146.915 494.893 7.097 569.170 7.630 257.332 4.305
+147.073 499.978 6.845 574.181 8.286 247.253 12.849
+147.229 488.359 8.457 572.921 14.864 257.772 24.154
+147.386 498.793 7.472 571.219 10.205 244.827 14.001
+147.542 499.127 6.113 571.612 7.398 258.498 13.360
+147.699 505.141 7.174 570.406 6.834 254.085 5.642
+147.857 490.411 7.013 575.004 8.509 254.720 6.356
+148.014 496.784 7.713 572.560 8.874 249.927 8.057
+148.172 489.147 7.952 570.505 9.281 265.209 11.165
+148.329 500.411 6.346 572.765 8.500 251.412 14.342
+148.484 505.084 6.080 578.857 8.209 250.474 11.443
+148.642 505.700 6.964 576.348 7.771 255.924 7.191
+148.799 499.097 6.263 570.833 7.683 267.469 11.461
+148.957 508.030 8.210 572.818 8.824 254.374 16.494
+149.114 496.800 6.295 574.548 7.180 259.153 8.757
+149.271 498.778 7.571 573.765 8.640 249.071 15.957
+149.427 507.707 5.834 572.227 6.553 261.810 10.234
+149.586 503.017 6.405 571.622 9.427 268.528 6.540
+149.744 504.160 6.447 572.516 7.850 253.755 8.797
+149.900 500.841 6.066 571.855 8.469 258.717 9.950
+150.058 503.568 7.186 572.658 6.466 248.287 9.301
+150.216 504.915 7.307 572.666 6.523 256.772 11.505
+150.373 500.079 7.194 571.206 11.469 261.587 14.410
+150.530 507.570 6.205 571.972 9.822 255.205 8.409
+150.687 507.775 5.663 572.979 8.125 259.692 5.469
+150.846 509.797 6.184 574.359 6.940 252.646 8.053
+151.003 504.008 6.226 572.153 10.168 254.856 16.602
+151.160 502.500 6.106 574.971 6.488 257.318 17.185
+151.317 506.635 8.498 573.729 15.822 259.423 15.993
+151.473 507.756 6.448 574.427 6.777 263.034 8.213
+151.630 514.047 5.987 575.504 6.752 255.290 9.180
+151.788 512.430 6.587 573.935 7.305 253.462 4.418
+151.946 512.834 7.322 568.949 8.887 257.634 11.414
+152.104 519.708 6.035 572.109 6.875 256.756 12.496
+152.263 511.907 7.075 572.151 9.944 250.477 23.278
+152.419 514.669 8.357 578.551 14.704 248.724 25.935
+152.576 512.956 7.304 572.995 7.627 264.747 10.843
+152.735 513.849 8.500 573.500 7.799 254.667 16.502
+152.891 512.418 7.112 571.885 7.807 258.326 14.778
+153.049 510.104 6.011 573.598 6.700 257.123 9.122
+153.206 514.151 6.358 574.586 10.607 262.101 10.637
+153.364 518.101 6.537 573.825 6.781 259.441 6.679
+153.523 515.171 9.753 572.818 7.716 259.544 9.044
+153.680 511.671 5.928 574.988 9.321 260.195 5.104
+153.839 516.476 6.609 571.869 7.363 258.972 5.240
+153.998 508.334 6.363 576.608 9.358 248.939 9.177
+154.155 512.873 6.065 569.656 6.660 259.449 8.495
+154.314 517.448 7.903 577.346 12.532 248.184 20.186
+154.472 513.834 9.272 575.533 12.177 259.331 15.887
+154.629 517.108 6.975 574.525 11.402 255.603 13.869
+154.786 508.901 7.205 577.745 9.019 252.366 9.630
+154.942 515.449 8.046 572.427 8.718 256.523 9.263
+155.100 514.024 6.938 572.664 7.547 271.405 6.360
+155.258 512.280 7.285 574.526 9.609 242.104 14.361
+155.415 509.272 7.410 571.425 8.171 258.481 8.466
+155.572 519.762 5.907 571.924 6.833 255.854 6.477
+155.730 512.177 5.684 571.379 7.180 261.128 6.509
+155.889 510.991 5.767 575.933 7.437 261.431 7.797
+156.047 512.219 7.199 579.519 7.904 244.834 17.645
+156.204 512.022 7.475 572.985 8.021 263.588 9.601
+156.363 515.080 10.083 573.779 16.432 241.055 18.367
+156.519 515.930 8.537 572.547 16.265 255.290 23.378
+156.675 516.369 6.376 575.005 7.015 249.452 7.792
+156.833 513.213 7.517 571.830 6.639 269.664 10.643
+156.991 512.022 7.318 572.258 7.006 257.086 7.688
+157.149 512.890 8.175 572.762 10.272 259.960 11.878
+157.306 516.698 6.928 574.667 7.791 250.399 8.436
+157.463 512.797 8.813 574.446 9.722 244.064 6.523
+157.620 515.448 6.408 572.494 8.128 261.510 7.923
+157.777 513.994 6.727 570.205 6.935 258.305 11.147
+157.937 508.009 5.761 571.852 7.219 261.613 5.734
+158.094 513.120 7.098 574.608 6.580 241.966 7.129
+158.253 514.281 8.633 575.556 9.593 254.239 13.336
+158.410 514.272 6.548 572.695 9.511 255.182 12.062
+158.569 513.602 8.409 572.597 9.937 258.941 17.474
+158.726 514.216 6.160 571.546 6.727 260.309 10.312
+158.884 512.262 7.067 573.645 7.790 254.623 8.375
+159.043 513.342 8.694 571.496 6.918 254.866 9.861
+159.200 509.833 6.559 568.035 8.004 264.318 10.996
+159.357 509.978 6.280 576.120 7.394 251.203 10.681
+159.516 516.209 6.282 576.121 8.636 253.902 7.604
+159.674 517.262 6.636 573.921 7.001 257.969 7.941
+159.832 513.882 6.720 571.069 7.110 263.159 5.358
+159.990 511.528 9.392 570.710 9.317 260.971 17.636
+160.147 508.905 7.851 571.977 9.198 249.209 10.217
+160.304 517.989 9.515 573.269 9.730 241.752 22.584
+160.461 514.409 8.475 573.752 7.970 265.267 18.195
+160.617 519.764 9.006 574.597 10.274 255.692 19.037
+160.775 512.827 7.232 572.616 9.160 273.366 22.711
+160.932 510.498 6.333 575.036 7.829 254.743 9.216
+161.090 510.275 8.976 575.490 12.418 253.847 10.433
+161.247 511.092 6.701 572.984 7.403 248.918 16.497
+161.404 515.860 9.002 569.449 11.577 255.829 18.539
+161.561 507.628 10.412 575.124 10.430 261.038 18.273
+161.719 512.766 6.597 576.291 7.673 262.420 7.841
+161.878 513.377 7.789 575.133 8.424 255.004 7.910
+162.035 508.713 6.789 577.081 7.641 249.790 8.915
+162.192 510.347 10.671 571.800 9.376 262.167 10.553
+162.350 517.353 10.230 567.838 18.785 251.711 24.923
+162.507 507.093 8.781 572.208 13.445 269.717 27.403
+162.663 510.960 8.097 572.862 13.162 257.067 22.080
+162.819 509.479 7.117 581.068 10.749 247.120 8.018
+162.977 509.384 6.864 570.520 8.891 260.541 10.518
+163.134 511.443 8.424 569.995 7.554 266.185 17.136
+163.291 516.764 6.550 574.669 8.637 263.441 7.767
+163.449 507.157 8.197 575.836 7.167 258.434 15.996
+163.605 512.801 8.158 576.938 7.967 241.784 7.675
+163.762 511.298 7.834 571.039 9.145 257.897 9.266
+163.920 511.713 7.280 572.960 9.778 266.409 9.399
+164.076 509.917 6.137 577.009 6.943 250.414 13.353
+164.234 515.959 7.130 572.280 9.944 260.254 12.894
+164.392 519.789 6.398 580.072 10.342 246.742 16.131
+164.550 512.917 8.506 570.660 9.280 260.917 11.778
+164.707 513.049 8.282 563.576 10.335 282.059 13.109
+164.864 510.050 8.332 571.815 7.715 253.920 15.577
+165.021 513.260 9.352 574.848 9.399 243.909 9.015
+165.178 508.802 7.179 577.038 8.186 252.289 9.537
+165.335 514.588 7.983 568.890 8.973 264.752 11.989
+165.492 514.095 6.147 574.028 8.504 259.307 9.110
+165.651 517.610 7.142 573.840 7.391 259.753 14.348
+165.809 510.476 6.395 575.258 6.909 263.007 12.622
+165.967 511.444 7.681 574.412 11.298 261.690 9.321
+166.124 507.444 6.651 572.324 7.068 255.426 9.422
+166.281 510.694 10.562 579.243 16.859 251.434 29.988
+166.436 515.227 10.789 575.892 14.488 233.164 14.166
+166.593 512.262 8.061 570.598 8.948 279.321 11.464
+166.751 512.882 7.392 571.126 6.727 268.893 12.359
+166.909 515.978 6.119 574.791 6.408 258.028 5.289
+167.069 511.809 6.450 575.098 7.671 240.550 17.174
+167.227 508.008 7.585 570.341 7.752 264.055 15.684
+167.383 512.030 7.235 577.343 8.341 252.090 20.404
+167.541 510.850 6.506 574.833 6.406 262.670 8.870
+167.699 514.068 6.632 569.448 7.841 255.826 6.514
+167.857 516.660 5.936 576.154 6.993 253.678 13.648
+168.015 512.116 6.028 572.701 6.996 257.556 10.308
+168.173 520.281 6.011 576.987 6.758 257.025 9.369
+168.331 506.982 5.892 572.349 8.655 254.650 13.368
+168.488 509.779 5.923 574.133 7.141 254.216 4.425
+168.646 513.057 6.160 573.921 7.111 254.562 7.559
+168.804 511.970 6.329 572.349 7.577 260.505 12.511
+168.962 514.339 6.829 573.783 7.401 261.505 10.977
+169.120 513.853 5.971 572.367 6.982 257.925 5.574
+169.279 511.998 6.735 574.623 9.847 252.839 11.480
+169.438 517.700 6.351 573.446 8.722 256.828 7.860
+169.596 511.047 6.268 571.374 9.181 258.028 21.176
+169.754 512.900 5.577 571.533 7.536 267.420 5.972
+169.912 513.159 5.846 575.025 8.232 243.474 9.564
+170.069 517.291 7.889 574.530 6.912 259.234 7.702
+170.226 509.482 6.515 576.015 9.758 249.952 8.633
+170.384 510.664 8.384 568.580 8.719 268.969 18.172
+170.541 511.796 6.399 575.145 8.853 259.369 20.051
+170.699 513.328 7.489 571.501 9.683 265.963 16.155
+170.854 514.353 6.474 576.495 8.087 242.799 4.884
+171.012 516.703 6.896 575.644 7.571 257.528 13.008
+171.169 519.637 8.881 574.676 14.383 262.025 35.364
+171.326 508.696 10.216 577.076 11.630 272.300 17.001
+171.484 513.727 6.996 563.810 9.397 284.903 10.388
+171.642 513.427 5.868 577.388 10.540 237.059 13.431
+171.799 513.984 8.119 579.493 9.081 247.270 11.955
+171.956 517.109 8.652 574.655 8.321 234.292 26.932
+172.112 507.771 7.557 573.746 14.277 265.392 23.415
+172.268 523.197 7.347 570.757 10.390 258.183 22.851
+172.426 511.632 6.911 573.717 7.986 257.701 7.694
+172.583 511.826 8.102 571.697 9.154 260.397 12.084
+172.740 511.088 7.020 577.167 9.870 249.933 13.883
+172.897 524.770 7.357 577.461 8.708 254.519 15.876
+173.053 526.537 7.463 574.714 7.594 254.145 8.668
+173.211 499.865 8.597 570.307 7.026 257.271 13.597
+173.368 520.578 6.532 576.313 11.246 273.362 15.902
+173.525 517.475 12.271 569.553 15.939 242.283 24.953
+173.681 515.444 8.235 576.245 7.190 239.622 12.806
+173.839 508.484 6.597 573.262 7.260 261.416 24.479
+173.996 511.444 7.208 567.352 9.847 277.534 8.855
+174.153 509.164 7.325 575.133 9.853 269.305 17.107
+174.309 518.571 7.859 585.591 8.950 220.893 14.175
+174.466 512.365 7.291 573.845 9.515 237.198 13.083
+174.623 508.553 5.968 570.908 8.701 266.822 9.587
+174.781 512.425 6.355 567.669 8.080 289.368 14.778
+174.940 506.374 7.851 571.906 7.695 258.213 11.997
+175.097 509.803 7.930 576.259 8.220 228.932 19.094
+175.253 524.018 6.950 576.502 9.228 257.059 12.874
+175.411 516.380 9.349 573.935 8.653 272.020 24.775
+175.568 522.323 6.944 565.829 8.868 276.110 13.625
+175.726 519.953 7.366 576.678 9.586 247.631 14.346
+175.883 514.119 6.129 578.376 7.407 248.886 6.868
+176.042 517.121 8.255 574.543 7.391 248.258 8.599
+176.199 516.991 9.382 567.985 7.771 269.822 15.835
+176.356 510.849 6.966 570.009 10.903 257.778 15.615
+176.513 514.958 6.193 573.600 9.054 253.767 11.535
+176.671 517.959 6.422 576.866 6.985 246.877 8.731
+176.829 518.449 6.142 575.408 7.647 253.898 5.211
+176.988 513.674 6.600 569.534 6.913 265.609 8.662
+177.145 512.196 6.084 571.995 7.471 262.756 7.752
+177.304 513.882 7.001 572.259 7.196 259.937 7.078
+177.462 516.568 5.854 574.702 8.015 248.099 6.564
+177.620 513.585 6.076 572.137 10.065 257.741 10.374
+177.779 516.245 6.787 571.001 11.803 252.197 15.730
+177.936 519.952 7.414 573.400 8.099 260.882 8.123
+178.093 511.659 6.769 572.504 7.785 253.828 7.155
+178.251 515.306 7.066 570.095 8.031 254.238 6.550
+178.407 514.203 7.496 570.531 7.552 254.662 10.977
+178.566 515.882 6.837 574.585 9.662 265.626 6.649
+178.724 515.528 7.309 572.645 6.938 256.266 10.884
+178.882 506.535 6.777 570.986 7.354 253.312 8.035
+179.039 523.285 6.288 573.169 7.309 255.553 7.536
+179.197 515.382 5.891 573.491 7.338 257.055 6.994
+179.356 508.683 6.386 572.254 6.613 265.270 5.556
+179.514 516.886 6.164 569.942 7.202 252.992 11.056
+179.673 509.958 8.099 572.439 8.050 256.159 8.354
+179.830 509.989 6.681 576.544 6.922 248.341 9.097
+179.987 508.079 7.178 569.465 10.300 258.983 6.923
+180.144 516.540 5.991 572.244 9.031 256.759 21.425
+180.302 513.575 6.733 571.072 7.953 262.297 7.877
+180.459 517.665 5.628 571.150 6.946 256.962 7.926
+180.616 518.596 6.235 574.871 6.968 249.729 6.228
+180.774 508.035 7.124 572.448 7.978 262.077 9.634
+180.932 505.840 6.189 573.694 8.676 248.320 11.877
+181.089 512.348 6.293 568.107 7.084 264.983 14.658
+181.247 501.983 8.379 578.581 11.331 243.649 17.995
+181.404 528.699 6.917 570.485 13.128 275.646 18.140
+181.561 507.997 6.672 567.254 8.911 268.386 11.985
+181.719 513.450 6.633 574.522 6.762 263.383 5.771
+181.878 510.994 9.648 570.495 10.431 249.703 18.696
+182.034 510.979 6.302 577.415 9.448 245.377 18.560
+182.190 509.499 6.615 578.574 9.000 245.283 7.579
+182.348 508.475 6.529 569.255 10.867 272.682 20.428
+182.505 510.334 6.043 573.762 8.827 250.616 13.183
+182.662 515.693 5.941 572.407 7.142 262.306 7.931
+182.820 505.286 10.033 572.844 10.485 255.643 11.749
+182.978 520.812 8.236 574.108 11.738 252.846 20.581
+183.135 505.768 6.956 572.211 7.107 266.158 5.488
+183.293 504.787 8.599 570.432 7.896 252.741 6.574
+183.451 509.727 6.748 573.254 6.751 264.187 6.377
+183.609 513.767 6.148 570.132 7.030 259.571 4.598
+183.768 509.617 7.266 574.081 9.273 256.105 7.287
+183.926 503.926 8.501 576.920 7.651 243.801 4.703
+184.084 511.139 7.555 572.699 13.736 257.528 18.751
+184.240 505.261 6.098 574.757 9.252 263.215 15.612
+184.398 508.212 5.817 572.227 7.451 261.922 9.935
+184.556 508.082 6.866 571.332 9.745 252.959 15.757
+184.712 506.670 7.346 572.583 9.935 248.409 15.163
+184.869 508.786 6.090 571.745 7.123 264.594 4.752
+185.027 509.757 9.404 577.067 14.293 250.845 24.898
+185.183 507.197 6.263 574.540 8.001 253.118 11.819
+185.340 503.952 6.458 570.705 6.986 261.371 13.388
+185.497 513.509 6.778 576.677 7.613 246.123 10.058
+185.655 514.875 6.291 569.356 9.018 261.161 13.592
+185.812 513.118 8.649 570.163 7.617 248.001 12.065
+185.970 510.931 7.833 572.421 8.793 253.420 14.691
+186.127 519.879 6.273 567.294 8.372 272.064 5.608
+186.286 503.348 6.605 573.453 8.794 256.580 18.678
+186.442 522.543 7.706 570.164 8.049 253.765 9.556
+186.599 525.045 9.110 576.531 10.409 251.757 21.590
+186.756 518.700 6.602 573.775 7.935 255.117 15.583
+186.914 533.917 5.614 568.297 10.005 266.501 23.929
+187.070 524.679 6.667 576.843 8.354 249.705 13.033
+187.227 516.356 6.879 578.428 9.258 249.967 12.331
+187.384 524.443 7.045 567.524 8.532 256.089 7.235
+187.541 518.574 6.984 573.765 9.636 258.910 14.537
+187.698 523.995 6.373 574.957 6.527 256.229 8.015
+187.856 522.639 6.308 572.669 8.049 251.702 14.806
+188.013 529.316 6.262 575.226 8.151 252.387 12.726
+188.170 526.443 5.851 570.172 6.844 252.393 9.949
+188.328 520.644 6.772 570.221 7.439 268.043 6.808
+188.485 531.556 5.777 572.382 6.626 249.910 6.779
+188.643 527.575 5.755 571.243 8.020 256.519 6.312
+188.801 534.075 6.517 579.562 8.324 251.795 11.782
+188.959 531.820 8.271 572.115 12.664 252.967 18.442
+189.116 524.798 6.566 570.771 7.876 260.119 8.052
+189.273 526.448 6.204 572.977 6.314 246.011 3.678
+189.431 537.714 6.149 574.479 7.256 261.520 7.747
+189.589 525.807 7.876 572.534 7.686 255.185 10.657
+189.746 539.418 6.493 576.445 8.347 263.511 6.631
+189.905 525.944 9.122 575.904 14.018 255.195 17.597
+190.060 533.389 5.924 573.949 7.503 250.991 8.956
+190.218 526.773 7.289 571.669 7.074 254.049 10.367
+190.375 529.887 6.353 576.306 8.540 252.540 7.854
+190.532 529.678 6.529 572.673 7.982 259.885 5.886
+190.692 528.486 6.504 575.006 7.765 257.098 10.827
+190.849 530.884 7.009 574.560 7.810 248.981 14.538
+191.006 536.718 6.505 585.105 7.872 243.759 12.586
+191.162 534.727 7.459 577.301 8.030 245.517 12.001
+191.320 528.687 6.884 567.143 6.997 280.115 11.390
+191.477 531.616 7.888 573.701 7.419 263.201 8.606
+191.634 526.436 6.611 573.807 7.138 249.442 6.908
+191.792 535.324 7.430 577.098 8.204 232.344 9.313
+191.949 522.753 6.675 580.771 9.812 269.143 10.838
+192.107 524.557 8.353 569.257 9.507 269.261 12.903
+192.265 529.385 7.163 575.412 7.935 261.152 8.246
+192.422 527.613 6.828 573.584 6.614 250.461 5.646
+192.580 525.316 6.554 575.665 7.601 257.834 12.911
+192.737 539.253 7.826 578.996 7.314 247.168 8.432
+192.895 517.842 8.450 568.980 8.184 267.491 9.090
+193.052 528.488 6.030 574.079 9.123 251.004 8.832
+193.208 534.894 6.857 577.770 7.420 237.660 13.980
+193.365 534.839 8.168 576.367 8.222 246.816 12.246
+193.522 533.768 6.731 574.553 8.099 268.688 9.138
+193.679 532.217 6.869 575.585 8.393 260.326 7.023
+193.837 530.252 6.901 572.285 8.762 263.833 10.651
+193.994 522.772 7.028 572.883 11.015 250.338 10.272
+194.152 527.727 7.513 576.268 7.401 247.243 4.925
+194.310 532.057 6.141 573.812 6.883 261.192 7.811
+194.468 537.160 6.094 570.678 7.443 261.351 6.940
+194.625 528.221 6.931 572.536 7.344 249.613 7.792
+194.783 527.842 7.889 576.485 8.540 255.476 10.636
+194.939 535.418 8.167 575.234 7.836 237.964 11.204
+195.096 527.034 6.484 573.692 8.993 260.699 13.551
+195.254 529.690 6.011 566.167 8.152 272.537 8.626
+195.412 530.736 6.254 573.881 6.935 253.815 8.143
+195.568 534.357 7.162 570.438 7.732 253.028 14.604
+195.724 531.333 6.511 573.594 7.174 255.280 4.099
+195.882 532.473 7.082 578.696 9.654 252.502 22.404
+196.040 530.944 6.552 575.227 9.059 269.865 15.012
+196.196 524.119 5.985 572.842 7.505 257.768 11.111
+196.354 526.961 7.179 578.118 7.872 250.617 4.843
+196.513 529.459 6.107 578.321 7.668 246.426 11.562
+196.671 525.764 6.092 573.163 7.963 259.794 7.129
+196.829 519.927 6.832 571.901 11.199 263.728 16.638
+196.986 530.859 6.811 580.099 8.145 245.487 14.407
+197.143 552.868 10.255 574.451 9.160 256.474 12.825
+197.301 524.938 6.989 574.374 8.232 255.924 17.025
+197.457 526.669 6.694 574.673 9.412 262.189 7.932
+197.614 531.396 6.658 573.146 6.787 252.581 7.070
+197.772 529.654 6.115 575.451 7.749 252.625 5.852
+197.930 549.106 9.085 576.584 9.978 253.266 8.458
+198.086 531.021 7.818 569.755 9.778 262.722 14.451
+198.243 528.810 7.087 572.667 7.985 266.047 8.524
+198.400 531.268 6.221 579.016 7.568 242.660 8.033
+198.556 539.852 7.905 576.700 9.773 247.506 5.217
+198.714 532.728 9.108 573.447 7.991 256.225 12.253
+198.871 532.867 6.224 572.044 7.952 266.742 15.282
+199.029 534.658 6.125 570.800 10.067 270.557 7.827
+199.187 524.936 7.097 574.098 7.721 246.375 8.755
+199.343 529.149 5.710 574.061 7.558 253.483 4.380
+199.501 528.351 6.298 574.890 8.371 255.814 7.847
+199.659 508.763 7.051 571.758 10.792 253.268 22.851
+199.816 514.947 6.403 571.587 8.519 265.722 6.927
+199.975 522.739 7.597 571.075 9.203 254.277 20.283
+200.132 512.037 6.324 574.620 9.329 248.962 16.871
+200.289 513.800 7.248 572.056 7.019 255.109 7.104
+200.446 516.748 5.883 569.920 7.211 263.611 8.737
+200.604 513.987 6.524 574.429 7.627 248.766 10.781
+200.762 515.999 6.079 572.274 8.618 258.697 8.186
+200.921 512.870 8.364 573.182 9.403 250.097 11.211
+201.078 511.868 6.423 575.001 9.718 259.021 12.807
+201.236 519.518 7.908 569.910 15.478 250.640 17.307
+201.392 514.195 7.961 572.449 8.989 256.296 9.564
+201.549 513.261 6.644 572.264 9.311 257.232 7.621
+201.708 513.172 6.672 574.242 7.507 248.132 7.333
+201.865 516.741 6.983 573.202 8.055 266.991 13.427
+202.023 514.727 8.414 567.962 12.586 253.949 21.193
+202.179 511.567 6.038 574.549 8.686 248.679 7.373
+202.337 515.105 6.346 572.345 8.076 257.556 12.934
+202.494 509.831 8.018 576.553 7.544 245.445 14.371
+202.651 515.048 6.000 566.185 7.937 268.634 9.128
+202.809 518.060 8.240 573.621 10.030 261.376 14.728
+202.965 513.440 9.393 577.876 12.333 240.383 9.415
+203.122 508.804 7.482 567.448 10.948 264.413 12.218
+203.280 511.518 6.204 565.254 8.415 264.614 13.485
+203.437 515.695 7.578 573.342 8.931 265.216 12.304
+203.595 513.386 7.254 568.503 6.950 270.122 14.753
+203.751 511.943 6.997 587.795 9.961 219.601 8.975
+203.909 512.149 7.790 575.808 8.022 262.826 10.334
+204.068 513.711 6.637 567.948 7.416 275.808 7.517
+204.226 518.587 8.055 571.389 9.770 260.358 15.229
+204.382 515.705 6.809 579.414 9.366 237.213 17.001
+204.537 511.447 7.982 572.104 10.072 244.172 12.503
+204.695 512.194 7.147 573.341 7.215 257.041 6.480
+204.854 515.251 6.776 572.223 8.203 268.430 10.738
+205.012 515.562 6.952 575.612 9.786 258.254 10.009
+205.170 517.215 7.103 574.506 8.427 248.122 11.212
+205.328 512.972 7.254 576.875 7.666 245.371 17.261
+205.484 511.479 7.177 566.638 9.466 268.043 10.816
+205.641 518.754 5.962 578.226 9.511 261.230 23.584
+205.799 511.877 6.695 574.022 7.336 250.622 17.442
+205.955 510.108 6.255 571.770 8.732 250.456 6.623
+206.113 507.211 9.061 574.497 11.491 257.764 23.624
+206.270 529.282 8.806 569.725 18.993 276.407 31.973
+206.425 513.362 7.340 578.307 14.066 236.964 16.925
+206.581 512.883 7.946 581.313 9.048 245.559 9.639
+206.738 514.608 7.659 570.123 8.488 260.655 8.367
+206.895 525.106 7.045 573.891 7.319 257.596 7.905
+207.053 516.271 9.796 567.589 9.287 270.225 22.279
+207.210 502.052 9.307 576.335 7.278 246.812 24.411
+207.366 512.720 7.723 572.343 8.294 252.918 17.810
+207.524 524.417 7.619 576.333 7.839 245.749 13.180
+207.681 515.374 7.227 573.783 9.465 252.617 12.759
+207.838 515.353 7.503 570.267 7.968 268.946 6.525
+207.996 516.303 7.279 573.682 8.554 260.989 17.874
+208.153 520.453 6.711 573.656 6.545 265.899 18.302
+208.310 497.504 6.830 571.906 7.479 239.819 8.183
+208.467 511.505 6.493 569.829 7.775 265.518 17.247
+208.623 518.915 5.669 572.838 7.494 260.925 11.076
+208.782 515.809 7.614 576.248 10.095 250.229 19.674
+208.938 524.838 6.253 575.192 8.283 247.032 7.571
+209.096 510.108 7.150 571.542 8.776 254.690 7.313
+209.253 513.181 5.957 573.735 6.801 261.446 4.586
+209.412 516.691 5.986 573.597 6.976 261.894 9.318
+209.571 519.407 7.271 574.486 8.040 247.888 10.847
+209.728 514.344 6.742 574.544 7.524 253.178 10.343
+209.886 520.363 7.761 571.355 8.147 257.521 10.811
+210.044 522.343 7.144 572.353 8.359 263.705 7.526
+210.202 510.683 6.152 574.553 7.586 261.527 7.691
+210.360 509.386 6.660 568.515 6.920 262.835 6.090
+210.518 513.713 5.695 574.905 7.631 246.958 5.072
+210.676 512.277 8.235 570.449 7.048 256.179 8.400
+210.833 513.792 6.770 577.724 7.682 244.211 7.701
+210.991 516.617 6.263 573.757 7.673 263.422 7.109
+211.150 511.386 5.721 572.647 8.644 258.614 6.257
+211.308 512.803 5.940 571.946 6.702 254.806 5.153
+211.467 513.018 7.854 573.719 7.477 255.758 4.755
+211.625 512.100 6.683 571.797 8.029 257.137 5.167
+211.784 509.271 6.567 571.158 8.540 260.101 11.105
+211.941 520.422 5.888 577.201 7.724 246.731 9.101
+212.098 519.374 7.014 574.102 12.149 259.097 21.206
+212.256 518.403 6.471 566.611 8.809 277.291 11.811
+212.413 518.704 6.221 574.416 7.450 258.732 10.360
+212.571 514.967 6.110 575.984 6.721 248.477 9.435
+212.729 512.929 6.009 574.869 6.877 250.884 7.678
+212.888 512.759 6.397 574.178 9.350 250.678 14.640
+213.046 517.327 6.236 571.831 6.740 268.226 14.414
+213.203 515.173 6.229 574.858 6.268 254.312 4.519
+213.361 516.811 7.138 574.418 6.882 254.163 13.329
+213.518 519.498 6.017 571.864 6.661 258.821 5.720
+213.676 517.265 5.731 573.508 7.370 257.638 5.948
+213.836 516.802 5.855 571.745 7.097 264.426 7.691
+213.993 526.798 6.511 572.837 7.790 248.394 8.324
+214.151 527.008 6.063 576.188 7.099 255.683 5.893
+214.309 524.120 6.631 571.111 6.878 263.436 8.496
+214.467 520.501 6.219 575.241 6.200 253.924 5.123
+214.625 525.195 6.769 575.702 6.352 251.409 5.612
+214.783 526.782 7.193 578.377 8.898 249.434 10.271
+214.941 516.827 5.885 573.853 7.290 260.164 11.454
+215.099 523.128 5.698 572.728 6.663 258.321 5.080
+215.258 531.361 6.036 572.787 8.041 256.583 10.542
+215.415 525.803 6.708 575.557 7.505 251.135 9.522
+215.572 529.848 5.979 575.365 8.180 250.821 8.553
+215.729 527.338 6.331 574.473 6.799 258.618 8.336
+215.886 521.633 5.999 572.284 8.527 250.966 9.814
+216.043 525.726 6.514 574.552 7.528 251.569 8.355
+216.200 525.507 6.533 578.035 8.875 250.195 17.040
+216.357 527.815 6.944 572.610 8.377 254.732 17.992
+216.513 533.258 6.029 572.076 6.581 255.127 4.419
+216.671 526.762 6.049 571.520 8.680 254.301 16.262
+216.827 530.267 9.003 572.815 10.003 251.733 13.574
+216.983 530.122 7.610 575.308 9.226 251.787 12.652
+217.141 522.821 6.511 572.113 7.157 258.257 11.203
+217.299 534.728 6.648 573.181 7.669 255.192 7.741
+217.456 529.127 6.337 577.581 7.651 249.001 13.541
+217.613 525.881 7.356 576.215 8.000 254.880 6.748
+217.770 527.068 7.262 572.242 7.574 262.618 6.230
+217.928 533.570 6.212 573.312 6.999 245.096 8.029
+218.086 527.625 6.123 574.503 7.139 255.821 7.743
+218.243 529.486 5.819 571.005 6.808 261.828 7.259
+218.401 535.164 6.150 577.330 6.424 255.598 6.617
+218.559 530.641 6.776 576.183 7.357 245.566 4.899
+218.717 534.456 8.602 579.331 9.896 257.115 8.250
+218.874 535.644 6.692 577.373 7.760 250.911 15.603
+219.031 524.616 7.411 572.333 8.586 260.419 9.999
+219.190 532.746 6.605 572.713 7.067 265.894 8.015
+219.348 525.717 5.825 574.637 8.634 253.858 11.324
+219.505 527.167 6.077 575.286 8.178 223.378 11.188
+219.662 535.511 6.021 571.192 7.266 257.883 7.864
+219.820 528.205 6.462 566.882 8.400 275.148 7.963
+219.977 529.992 7.477 575.498 10.550 250.381 23.976
+220.133 523.599 6.076 577.435 6.852 243.713 6.147
+220.290 530.286 5.885 573.884 6.577 244.627 7.118
+220.448 527.702 6.378 573.788 6.961 262.156 6.298
+220.607 529.597 6.192 573.867 6.929 260.791 7.383
+220.765 525.426 6.341 568.528 8.401 264.387 10.133
+220.922 532.214 12.365 584.345 11.251 227.933 22.395
+221.078 522.932 6.481 574.753 7.290 254.899 6.737
+221.237 526.709 6.727 572.497 8.184 255.109 16.608
+221.393 522.107 6.843 577.295 6.742 254.701 5.041
+221.551 534.351 6.339 577.903 8.230 253.567 4.219
+221.709 523.013 6.806 564.289 7.419 263.015 8.669
+221.865 536.400 7.164 573.032 12.349 257.370 21.615
+222.023 541.074 5.823 574.310 8.013 241.923 10.361
+222.179 524.590 6.110 569.683 7.817 267.459 9.206
+222.337 537.866 6.968 574.016 8.807 247.494 14.690
+222.493 521.608 10.574 590.830 15.044 214.694 24.262
+222.649 536.916 7.887 574.388 9.729 251.866 17.257
+222.806 536.949 11.150 568.743 14.744 284.828 19.207
+222.963 536.029 7.700 576.067 7.216 257.008 10.761
+223.120 528.900 7.824 579.210 10.982 255.320 20.782
+223.276 530.989 8.981 575.402 8.760 249.063 11.024
+223.434 530.080 6.704 573.674 7.476 259.660 10.783
+223.592 525.690 6.366 571.296 7.097 261.806 7.988
+223.749 527.286 8.938 573.963 9.331 258.058 13.014
+223.905 536.672 8.191 578.249 10.915 242.250 12.448
+224.062 531.006 7.478 573.682 8.272 262.602 21.619
+224.221 522.990 6.686 567.676 8.222 273.606 9.152
+224.378 536.729 5.899 579.216 6.279 246.966 7.464
+224.536 532.707 7.008 576.982 6.408 234.689 6.116
+224.694 526.847 7.071 568.649 8.153 279.796 11.388
+224.851 540.928 7.138 577.646 8.910 247.857 14.455
+225.008 529.609 6.270 574.416 7.796 252.728 8.551
+225.164 525.986 6.471 572.364 7.858 246.157 4.812
+225.322 523.929 5.968 574.983 8.671 260.061 14.029
+225.481 535.129 6.737 571.099 7.247 257.760 21.184
+225.637 521.461 6.497 577.571 7.196 259.407 11.169
+225.795 529.554 6.734 579.505 6.796 248.634 12.260
+225.952 539.085 7.392 582.915 9.332 252.566 13.233
+226.109 521.130 6.940 570.869 7.290 260.095 25.625
+226.265 528.201 7.427 575.558 8.057 248.990 10.714
+226.422 537.702 6.250 577.155 6.851 252.739 10.215
+226.579 536.267 6.433 573.151 7.297 259.877 9.803
+226.737 525.142 6.086 572.891 7.962 257.278 5.233
+226.895 522.231 7.242 577.168 8.269 246.802 6.435
+227.052 532.892 6.903 577.831 8.355 254.478 11.009
+227.211 521.149 6.785 572.948 7.404 260.014 6.272
+227.369 525.461 6.908 572.879 6.768 254.010 11.051
+227.527 521.644 7.196 573.768 8.672 255.290 17.979
+227.683 518.856 6.589 580.897 8.492 235.292 19.037
+227.839 536.198 7.798 576.689 8.267 266.632 7.811
+227.996 524.932 7.428 575.556 9.146 255.616 17.677
+228.152 519.189 6.338 567.795 8.100 261.466 11.413
+228.309 529.211 6.701 577.048 7.494 257.954 8.631
+228.466 538.952 7.883 574.650 14.823 240.039 24.360
+228.623 524.249 9.888 571.316 8.362 252.660 9.817
+228.779 527.162 6.349 570.843 7.803 260.926 7.216
+228.937 539.381 6.272 574.288 11.415 253.539 9.175
+229.095 534.033 9.663 576.522 9.232 256.955 28.087
+229.250 522.580 7.079 577.245 7.650 247.969 8.924
+229.408 535.655 7.029 575.872 10.207 253.419 20.430
+229.565 530.436 7.668 578.968 7.925 261.674 15.090
+229.722 528.984 6.408 574.149 7.762 251.056 11.701
+229.879 533.309 7.345 575.351 7.563 258.690 9.682
+230.037 531.623 7.870 580.323 10.190 257.176 12.158
+230.194 528.736 6.251 569.803 7.363 255.371 10.271
+230.351 531.377 6.319 576.138 7.550 248.953 5.093
+230.510 535.143 7.735 572.161 13.822 261.849 15.856
+230.665 528.851 10.889 572.731 15.011 246.648 15.136
+230.822 533.688 8.027 577.877 6.808 261.076 12.236
+230.980 527.556 6.916 577.488 8.443 253.020 16.347
+231.137 527.275 6.469 577.344 7.001 253.730 6.482
+231.295 532.802 7.388 574.053 6.874 255.647 8.250
+231.453 536.738 6.574 573.690 6.982 252.896 10.037
+231.610 529.277 7.005 574.626 6.606 254.928 5.789
+231.768 526.092 6.124 578.206 6.905 260.619 12.207
+231.926 536.041 7.477 574.452 12.398 256.256 19.922
+232.083 517.590 7.809 573.984 10.001 258.272 11.333
+232.241 521.805 7.833 574.629 8.069 266.652 8.271
+232.398 532.418 6.165 575.576 7.142 248.416 8.042
+232.554 528.504 7.049 575.365 8.337 251.734 11.218
+232.712 527.085 7.396 574.403 6.707 255.787 5.922
+232.870 537.210 6.092 573.584 7.546 246.997 3.729
+233.029 513.862 6.915 572.695 8.480 260.050 7.085
+233.186 519.318 6.218 574.127 6.616 256.470 6.740
+233.344 522.573 6.642 575.451 7.246 247.864 7.650
+233.502 520.345 7.837 569.154 6.410 260.218 7.433
+233.660 523.043 6.567 575.681 7.207 256.402 11.462
+233.818 523.410 5.990 569.536 6.435 261.594 3.977
+233.977 518.554 6.685 576.555 10.499 246.245 22.212
+234.135 510.045 6.261 571.775 7.256 260.812 10.621
+234.292 516.310 6.170 571.467 6.423 253.818 5.978
+234.450 519.603 5.713 573.904 6.049 254.728 10.910
+234.608 508.046 6.061 571.209 7.671 260.077 10.699
+234.766 511.140 6.000 571.092 7.394 262.700 8.812
+234.924 516.171 6.816 573.781 6.456 253.317 7.505
+235.082 509.961 10.008 572.507 10.302 260.143 11.386
+235.240 516.919 6.840 574.285 9.981 253.891 9.434
+235.398 510.659 6.037 574.572 8.092 258.218 9.735
+235.557 515.706 6.842 575.095 8.924 257.942 7.432
+235.714 508.667 7.393 577.171 9.254 252.689 8.653
+235.872 513.916 6.817 575.041 8.091 258.606 8.650
+236.029 509.859 6.080 572.080 10.922 255.416 11.032
+236.186 507.548 6.200 572.590 8.831 263.694 11.660
+236.344 509.565 5.670 571.945 7.974 249.766 7.477
+236.501 508.995 6.358 574.429 6.696 258.967 8.826
+236.658 509.259 6.618 570.674 6.806 256.589 4.819
+236.816 513.292 6.121 572.176 9.467 251.655 7.419
+236.974 505.092 7.144 571.691 7.199 260.476 8.832
+237.131 505.620 7.772 571.586 6.808 256.454 6.722
+237.288 501.046 7.043 570.835 8.870 256.044 5.310
+237.446 504.990 6.304 572.928 7.768 260.110 9.122
+237.605 502.719 5.781 571.719 7.145 252.501 8.963
+237.762 500.187 5.668 569.927 7.257 265.835 5.260
+237.921 507.641 7.160 569.899 9.698 248.868 14.354
+238.078 505.716 6.971 577.569 9.310 250.008 11.582
+238.235 500.777 6.613 575.995 9.128 258.840 8.490
+238.393 502.237 5.971 571.500 9.039 268.518 12.383
+238.550 500.132 6.087 573.075 7.707 259.615 17.136
+238.707 496.711 7.204 570.480 14.842 247.966 20.812
+238.863 493.607 10.497 576.284 10.575 237.809 3.907
+239.021 491.456 8.841 573.472 12.582 265.218 12.819
+239.178 499.444 7.783 572.674 10.326 263.192 13.187
+239.335 493.294 5.604 570.706 7.767 255.311 9.119
+239.491 496.402 7.057 572.957 7.966 259.073 13.350
+239.648 487.634 8.909 567.029 10.239 251.390 7.567
+239.806 502.596 7.068 565.420 10.503 263.143 7.496
+239.964 498.075 7.169 572.034 6.150 254.181 8.524
+240.121 495.010 7.650 572.500 7.339 250.251 7.795
+240.278 493.100 5.719 570.055 7.969 258.382 15.600
+240.435 493.381 6.337 570.870 10.032 259.123 16.493
+240.592 492.623 10.975 577.518 15.101 260.681 38.435
+240.748 488.516 10.440 570.705 16.820 255.576 20.466
+240.903 497.385 7.414 574.687 9.416 250.555 22.053
+241.060 489.183 9.359 576.506 10.059 260.355 12.304
+241.218 496.561 7.672 571.845 8.364 271.093 13.631
+241.375 492.195 7.710 578.868 7.226 251.900 12.432
+241.532 498.452 7.794 569.178 8.709 253.029 7.166
+241.689 494.374 7.531 572.861 9.715 249.570 17.952
+241.845 495.783 7.959 581.008 8.829 246.795 11.635
+242.002 481.807 8.792 570.250 10.294 271.218 22.615
+242.159 502.018 6.634 577.732 10.526 254.132 18.126
+242.316 497.250 6.827 573.207 7.759 251.231 14.377
+242.473 494.552 6.150 569.362 8.354 257.462 9.733
+242.630 488.605 8.359 576.373 8.342 254.444 11.309
+242.787 502.076 5.928 568.903 8.852 259.724 10.000
+242.944 486.000 9.571 568.069 11.917 246.307 15.885
+243.100 497.570 6.518 574.420 9.245 249.143 8.737
+243.259 498.635 6.378 572.384 7.652 264.651 9.712
+243.417 497.786 5.810 570.453 7.083 262.916 4.554
+243.575 493.757 5.954 574.074 8.192 250.789 9.442
+243.732 499.397 7.752 575.050 6.564 260.677 12.988
+243.890 488.224 7.191 576.650 7.428 255.076 7.354
+244.048 497.702 8.055 567.756 14.145 261.190 9.948
+244.205 503.147 6.478 574.337 8.437 256.901 13.021
+244.362 497.541 6.203 573.773 7.390 251.219 7.461
+244.520 509.525 5.975 572.917 7.576 257.592 7.443
+244.678 507.785 6.846 574.539 7.894 250.835 9.827
+244.835 510.187 7.042 573.625 6.932 256.868 5.335
+244.994 505.581 5.870 571.346 8.219 254.728 10.200
+245.152 506.985 6.320 574.863 7.129 252.487 12.664
+245.311 506.129 5.414 569.778 6.646 258.374 9.217
+245.468 510.431 6.495 573.077 6.915 259.283 8.747
+245.626 511.514 6.660 570.770 7.973 260.452 14.891
+245.782 516.085 6.093 575.447 6.612 248.454 6.446
+245.941 512.570 5.858 573.534 6.550 260.994 3.344
+246.101 512.125 5.728 572.865 8.275 256.509 7.966
+246.258 516.231 6.184 573.958 6.996 252.485 5.021
+246.417 514.062 6.446 573.509 7.547 255.974 10.229
+246.575 513.240 6.535 570.925 8.182 260.169 12.348
+246.733 513.222 6.343 571.809 6.381 255.631 10.262
+246.892 518.332 5.936 575.428 8.236 255.326 7.536
+247.050 512.673 6.186 572.824 7.658 258.933 9.076
+247.207 508.906 7.114 569.118 7.971 254.469 12.868
+247.364 519.419 5.779 572.451 7.335 254.494 10.613
+247.523 518.644 5.824 571.204 8.558 260.854 7.836
+247.681 519.776 6.001 572.962 7.315 254.298 16.609
+247.839 520.957 6.731 569.259 7.159 270.763 7.379
+247.997 506.499 8.253 578.202 13.204 235.727 28.230
+248.153 522.925 6.034 572.102 8.932 270.357 19.020
+248.310 512.899 9.323 572.611 9.666 242.953 16.027
+248.467 517.729 5.853 577.816 7.221 252.169 13.236
+248.624 521.977 5.874 573.018 8.069 259.541 8.892
+248.783 515.969 5.859 566.500 7.790 274.075 12.732
+248.942 518.179 5.929 571.675 7.055 253.020 7.482
+249.099 516.731 6.523 572.416 8.490 249.680 6.941
+249.257 522.697 6.913 572.644 9.355 241.896 21.935
+249.413 521.887 7.701 572.206 15.677 271.629 23.243
+249.569 526.648 7.098 571.682 6.855 264.436 7.937
+249.726 527.446 6.415 577.096 6.222 244.514 6.636
+249.884 526.524 6.182 576.771 7.926 253.215 5.733
+250.042 529.995 6.191 575.717 7.905 259.442 11.643
+250.200 534.120 5.653 572.057 6.549 255.864 6.287
+250.357 523.541 6.083 573.090 7.179 255.808 9.190
+250.514 543.845 6.928 577.131 7.491 249.308 5.201
+250.673 535.498 7.975 575.961 6.320 262.623 9.955
+250.830 526.475 6.288 573.269 6.683 258.066 7.081
+250.989 525.134 6.414 577.012 7.208 256.770 5.790
+251.147 544.041 6.097 575.210 9.750 243.637 18.750
+251.304 533.050 6.676 579.632 8.639 262.916 12.616
+251.461 533.440 6.258 578.096 7.498 259.379 21.362
+251.617 524.434 7.000 571.651 8.000 251.973 7.352
+251.773 527.474 6.284 575.316 7.483 255.139 6.778
+251.932 534.874 6.053 571.363 7.554 262.621 12.203
+252.090 525.658 6.434 571.983 8.833 254.206 18.164
+252.247 533.686 6.959 581.459 8.092 259.842 12.626
+252.404 525.296 6.048 573.344 7.641 247.198 5.586
+252.562 529.603 5.873 575.823 6.823 256.912 5.572
+252.721 525.846 6.241 573.738 7.132 253.679 7.717
+252.878 523.138 6.333 574.217 7.535 248.776 6.112
+253.035 530.751 5.834 580.732 6.932 252.707 9.549
+253.192 535.727 6.234 577.327 8.735 249.937 11.541
+253.351 533.437 5.903 573.413 8.485 268.649 8.450
+253.508 530.734 6.452 574.944 7.630 258.636 7.311
+253.666 522.437 8.639 570.019 11.483 255.046 10.626
+253.823 536.394 7.411 577.930 8.977 244.160 18.545
+253.979 539.053 10.497 574.069 10.562 257.111 17.661
+254.137 529.980 8.377 569.530 10.697 252.171 17.745
+254.294 519.529 11.471 567.775 11.014 260.381 21.325
+254.451 524.945 12.558 576.477 24.913 263.183 32.573
+254.607 522.239 6.030 572.854 7.029 258.871 9.335
+254.764 535.912 6.419 577.508 8.005 251.248 9.021
+254.922 534.969 6.370 571.685 8.615 256.552 7.175
+255.079 530.559 7.041 576.886 6.704 255.195 8.144
+255.237 533.395 6.049 576.148 7.790 273.972 14.859
+255.395 528.614 7.365 576.681 8.396 258.799 17.507
+255.551 523.146 6.479 578.316 7.401 245.348 9.053
+255.708 530.041 6.337 576.053 8.305 242.423 7.702
+255.866 529.390 6.430 575.830 8.059 271.584 4.958
+256.024 534.083 6.506 574.438 8.191 261.475 9.481
+256.182 537.330 7.708 576.614 7.803 258.644 11.073
+256.340 522.693 7.053 573.906 8.239 250.896 10.228
+256.497 523.426 6.500 575.789 9.016 252.858 10.724
+256.654 526.184 5.810 572.498 7.931 261.428 10.212
+256.811 521.321 6.772 575.865 8.555 249.984 13.491
+256.968 533.563 5.669 577.498 8.506 247.909 4.898
+257.127 539.495 6.931 574.445 7.919 268.269 7.574
+257.285 530.794 7.320 574.544 8.434 248.422 15.758
+257.441 520.828 6.409 569.635 7.233 260.854 4.777
+257.600 532.138 6.407 576.146 8.040 251.778 8.974
+257.758 530.821 6.668 576.331 7.147 258.197 8.353
+257.916 523.538 6.799 572.983 7.711 252.042 15.388
+258.073 533.625 8.135 575.199 8.674 255.390 7.842
+258.229 541.896 6.086 575.112 8.684 257.423 10.849
+258.387 526.839 5.960 574.951 6.956 263.174 7.369
+258.545 524.578 6.309 575.949 6.734 251.091 4.442
+258.703 520.115 6.703 579.429 8.151 247.730 8.610
+258.860 527.371 6.910 574.634 7.684 249.447 6.464
+259.019 528.563 6.630 573.736 6.914 262.404 6.107
+259.177 527.885 7.137 574.587 12.740 258.054 15.855
+259.334 529.998 7.760 572.985 9.075 258.750 12.645
+259.492 522.430 6.453 577.509 7.503 245.417 3.885
+259.649 526.444 7.287 574.765 7.130 256.784 9.041
+259.806 518.324 5.906 571.687 7.283 258.117 4.897
+259.964 520.563 6.078 574.186 7.012 254.211 12.141
+260.122 525.125 6.118 572.321 7.152 257.802 10.851
+260.281 537.371 6.551 573.353 8.311 251.888 9.268
+260.439 530.743 6.239 574.133 10.056 260.888 7.984
+260.597 524.147 6.056 575.971 9.806 256.278 16.269
+260.753 522.211 6.180 576.319 7.932 252.782 3.931
+260.911 523.082 6.371 575.123 8.975 260.467 10.937
+261.068 527.240 7.778 574.181 7.899 249.674 5.489
+261.225 532.032 8.789 570.721 9.193 248.786 17.141
+261.382 518.850 6.809 573.017 9.842 263.277 9.234
+261.540 524.458 7.264 576.620 9.682 251.172 13.390
+261.697 529.904 5.755 573.076 7.023 259.031 8.738
+261.855 524.659 5.793 573.820 6.825 252.820 9.466
+262.012 529.846 6.020 576.118 9.643 257.548 5.854
+262.170 528.358 7.268 575.531 8.131 259.335 11.849
+262.327 520.513 6.252 573.865 10.196 253.403 12.877
+262.485 529.865 6.774 575.128 7.412 265.904 9.068
+262.642 526.538 8.067 572.771 11.522 260.039 24.267
+262.799 522.665 6.005 578.427 8.699 247.990 10.551
+262.956 531.046 6.958 574.464 7.665 250.569 10.074
+263.114 520.040 6.670 571.904 7.843 256.015 14.097
+263.271 526.310 6.604 576.779 7.760 250.200 9.684
+263.428 531.443 6.070 573.667 7.609 264.752 8.585
+263.585 525.204 6.104 578.096 7.535 243.427 9.145
+263.743 523.042 6.609 574.531 8.828 264.524 8.168
+263.900 529.320 7.244 568.265 8.070 271.255 8.136
+264.057 523.523 8.443 577.512 11.281 253.802 14.307
+264.214 520.365 6.735 569.505 9.048 266.848 9.855
+264.372 534.483 6.714 577.325 9.225 235.078 20.939
+264.529 525.004 6.846 572.543 7.838 257.430 9.892
+264.686 534.630 6.152 573.775 8.925 254.464 8.651
+264.844 539.276 7.249 577.577 8.120 260.834 9.572
+265.001 538.092 12.022 574.565 6.426 257.488 8.073
+265.158 526.331 10.095 575.295 13.579 258.074 23.486
+265.314 523.873 6.957 574.623 10.371 254.470 12.741
+265.472 536.718 6.419 576.036 8.445 250.804 15.603
+265.629 529.707 6.517 577.070 8.248 265.028 14.903
+265.787 520.147 5.993 572.860 7.458 255.680 7.581
+265.944 520.481 5.642 575.978 8.706 251.726 11.558
+266.101 532.374 6.876 582.449 10.234 254.007 18.279
+266.258 531.493 8.352 572.824 10.371 247.460 13.226
+266.415 524.305 7.376 576.298 7.041 263.034 5.795
+266.574 526.113 6.148 572.693 6.719 263.870 5.605
+266.732 526.301 6.319 576.806 10.518 239.158 7.372
+266.890 526.083 6.914 578.138 9.350 243.491 15.992
+267.046 522.040 7.676 568.751 7.238 265.864 11.293
+267.205 520.770 6.810 576.837 8.251 257.618 6.428
+267.363 533.697 6.799 570.718 8.555 260.886 11.677
+267.520 525.307 7.341 572.877 7.949 247.568 4.317
+267.678 524.543 6.051 574.628 6.747 254.645 7.019
+267.836 528.685 5.880 572.876 8.192 257.766 5.617
+267.994 525.776 5.959 575.098 7.153 253.637 5.587
+268.152 525.127 6.878 575.591 8.383 251.356 5.522
+268.310 533.191 6.250 575.176 8.375 250.183 9.923
+268.467 528.071 6.110 575.931 8.529 255.601 17.392
+268.625 525.580 6.362 573.069 6.621 255.236 7.319
+268.782 524.565 5.709 570.960 6.968 260.652 8.500
+268.940 525.105 6.028 573.749 7.123 250.436 4.906
+269.097 524.291 5.996 575.797 7.669 253.204 7.041
+269.254 528.133 6.550 574.728 8.640 254.302 10.611
+269.412 524.741 6.636 572.227 9.701 256.753 6.775
+269.570 522.277 6.193 573.322 8.666 259.087 13.722
+269.727 522.892 6.639 574.583 7.181 258.430 5.800
+269.885 522.908 6.220 573.915 7.363 254.794 8.567
+270.043 515.319 6.328 574.089 6.487 254.017 5.856
+270.202 526.153 6.578 575.990 7.409 257.480 10.556
+270.360 527.501 6.243 572.619 7.548 262.734 9.331
+270.519 518.785 6.098 570.616 6.541 268.077 5.893
+270.678 511.907 5.731 572.856 6.502 260.760 10.918
+270.836 520.599 5.703 576.568 8.048 247.637 9.680
+270.992 521.496 6.954 576.615 7.698 248.216 5.073
+271.151 519.555 5.956 573.626 6.656 256.492 6.933
+271.309 522.535 6.616 573.346 7.739 261.744 10.409
+271.467 513.105 6.306 571.973 7.768 262.057 7.982
+271.626 522.401 7.130 575.289 7.514 245.010 15.928
+271.783 512.254 6.034 575.123 7.377 251.130 5.919
+271.941 513.792 6.107 573.501 7.620 261.631 9.579
+272.099 518.587 5.953 576.765 9.533 255.726 9.967
+272.257 513.625 6.485 571.537 7.474 257.037 8.831
+272.415 522.416 7.670 575.095 6.929 253.780 5.449
+272.573 514.324 6.061 576.251 7.555 254.117 6.557
+272.732 510.923 5.711 573.142 7.401 264.011 4.615
+272.891 513.329 6.314 573.381 7.271 260.300 3.961
+273.051 515.373 6.402 574.223 6.920 257.963 6.245
+273.210 510.593 6.744 573.242 9.155 254.689 10.621
+273.366 515.175 6.535 576.142 9.717 255.086 9.264
+273.524 514.001 6.211 573.461 7.945 261.600 6.276
+273.683 511.690 6.657 570.684 9.361 265.766 6.371
+273.842 514.007 6.153 575.476 6.317 253.827 10.554
+274.001 512.650 6.160 573.894 6.630 257.248 8.401
+274.160 510.106 5.916 572.629 8.137 259.162 8.182
+274.317 513.861 6.991 572.566 8.074 261.241 9.465
+274.475 512.578 6.578 576.165 7.888 257.322 6.889
+274.633 516.505 5.707 575.261 7.836 250.963 10.725
+274.791 517.025 6.343 574.392 7.109 255.299 5.186
+274.949 513.830 6.012 574.814 7.552 257.853 7.164
+275.108 509.398 6.308 569.938 9.406 268.288 11.968
+275.266 505.064 5.844 575.639 8.545 250.592 18.779
+275.422 515.120 6.126 572.566 8.484 255.015 6.197
+275.581 520.911 5.822 574.535 7.370 247.210 6.145
+275.739 514.939 5.738 575.815 8.423 262.012 8.255
+275.898 517.859 5.786 570.818 7.131 264.880 7.757
+276.056 520.038 7.769 575.898 7.153 254.898 5.870
+276.215 511.820 6.270 574.779 7.172 253.339 10.327
+276.373 510.278 6.126 574.087 8.381 258.753 12.483
+276.531 518.502 5.587 573.750 6.657 255.707 8.593
+276.688 518.375 6.069 575.747 7.697 258.277 8.914
+276.846 514.393 6.592 575.767 6.646 256.942 9.277
+277.003 515.264 6.003 576.757 8.524 257.369 11.716
+277.161 514.512 6.595 577.067 6.906 246.453 12.931
+277.318 508.925 6.280 571.170 6.849 259.024 9.192
+277.477 515.949 6.502 575.501 6.752 262.780 9.568
+277.635 514.729 7.370 574.345 7.519 254.567 5.349
+277.793 511.277 5.833 573.563 7.830 259.895 12.435
+277.950 514.292 6.010 580.815 7.654 235.888 8.258
+278.108 520.082 6.519 573.848 7.845 259.718 7.469
+278.266 514.490 6.399 567.588 7.758 282.777 10.840
+278.424 511.794 6.837 574.385 7.768 258.237 13.375
+278.580 518.277 5.706 578.653 6.194 240.472 14.945
+278.737 514.102 6.189 578.176 6.738 249.314 5.956
+278.896 509.841 6.672 574.921 6.644 267.403 7.120
+279.054 517.048 5.943 569.039 7.460 278.404 6.328
+279.213 515.700 6.365 574.650 7.018 256.574 14.759
+279.371 510.587 6.211 574.956 6.747 242.625 10.401
+279.528 512.265 5.501 575.229 6.787 251.586 10.115
+279.687 513.182 5.806 571.152 6.908 271.795 5.593
+279.846 514.511 5.862 574.101 6.688 261.117 7.743
+280.004 509.245 5.743 575.621 7.987 250.781 7.997
+280.160 511.882 8.354 577.116 7.715 248.547 8.320
+280.317 509.588 9.142 571.941 8.261 256.735 4.035
+280.476 513.235 6.007 573.259 6.157 269.567 10.943
+280.635 513.102 5.945 573.732 7.546 261.565 4.483
+280.794 508.271 6.606 575.907 7.511 255.525 4.357
+280.951 507.932 6.240 575.449 7.964 250.985 10.060
+281.108 512.099 6.373 574.554 8.243 256.539 11.248
+281.267 505.761 6.924 571.955 8.094 269.915 7.801
+281.425 510.177 6.757 574.949 9.767 261.529 11.152
+281.582 508.911 6.021 573.309 8.263 257.905 12.692
+281.740 513.099 6.489 576.073 6.715 245.909 4.448
+281.898 510.881 6.092 574.480 8.052 254.199 7.807
+282.055 508.638 6.519 576.154 8.081 257.802 8.680
+282.213 515.726 6.378 574.961 8.300 263.948 6.014
+282.373 502.187 6.591 573.109 8.777 257.889 14.256
+282.530 509.301 5.985 576.111 8.117 248.558 14.059
+282.687 507.053 6.396 573.571 7.078 251.085 14.952
+282.843 510.020 6.008 577.765 6.898 253.450 6.890
+283.001 504.050 5.834 571.497 7.155 253.104 8.020
+283.158 505.570 6.715 574.475 6.648 260.711 12.548
+283.316 505.175 8.218 573.764 7.455 253.907 10.675
+283.473 507.941 7.591 572.467 8.222 255.089 16.929
+283.630 512.709 8.407 573.874 16.752 266.740 26.674
+283.787 508.497 7.161 573.188 9.484 269.867 13.457
+283.945 505.335 10.006 571.161 10.241 262.388 11.935
+284.102 499.993 6.919 574.481 7.269 248.083 14.984
+284.259 503.729 6.818 581.634 7.739 259.670 11.022
+284.418 500.847 6.905 569.946 14.531 253.846 12.445
+284.574 503.458 15.102 575.419 13.927 252.208 39.215
+284.729 514.344 7.623 572.554 12.633 256.822 17.258
+284.887 506.043 7.456 578.265 11.745 248.238 15.077
+285.044 506.170 5.892 576.002 8.382 252.532 6.326
+285.203 512.561 6.662 576.480 8.680 262.875 16.397
+285.360 506.905 7.686 578.484 8.211 248.598 9.780
+285.517 504.479 6.517 569.664 9.078 265.946 24.628
+285.674 508.314 7.075 571.246 15.350 263.979 30.559
+285.831 509.033 7.737 573.402 6.759 266.409 6.638
+285.989 509.610 6.730 573.564 7.927 255.184 7.878
+286.146 508.776 8.351 573.535 7.227 250.801 11.318
+286.303 514.047 6.094 573.345 11.628 270.608 14.728
+286.462 512.730 8.852 576.833 9.484 261.756 19.919
+286.619 511.557 6.155 575.758 9.626 248.987 13.805
+286.776 510.545 6.457 575.037 7.983 253.639 15.463
+286.933 509.155 6.408 572.890 13.970 245.986 16.063
+287.089 497.721 6.782 574.388 7.432 269.169 9.014
+287.246 513.307 6.550 575.203 7.530 252.571 5.548
+287.405 500.363 7.185 573.062 8.048 263.725 7.229
+287.562 504.823 6.795 574.140 7.679 260.017 9.686
+287.720 509.538 6.894 574.861 8.043 248.060 9.348
+287.878 506.305 6.155 580.738 7.355 251.720 13.445
+288.035 495.693 10.653 576.927 8.999 263.537 17.845
+288.191 509.386 6.257 574.189 6.756 247.605 13.703
+288.349 507.133 10.016 573.151 7.225 264.546 8.248
+288.506 499.181 11.331 572.211 9.519 250.565 9.998
+288.663 504.791 9.037 576.712 9.593 250.805 20.328
+288.820 499.637 6.687 572.517 18.731 249.828 24.784
+288.976 495.996 8.256 580.005 18.332 263.578 19.697
+289.132 505.870 7.344 576.780 16.514 250.695 14.627
+289.289 507.458 7.961 574.827 10.027 256.817 17.082
+289.446 506.014 12.118 579.668 11.332 251.178 20.023
+289.604 497.660 9.411 577.426 10.966 268.441 10.617
+289.761 498.036 9.438 573.914 7.538 260.074 19.098
+289.918 495.780 7.273 575.929 7.612 261.800 17.844
+290.075 500.097 8.147 579.049 10.213 231.278 16.431
+290.231 498.711 7.487 572.310 7.340 249.202 10.415
+290.389 500.087 7.837 567.403 12.260 274.392 17.160
+290.545 500.320 7.255 569.904 9.246 260.833 12.328
+290.702 505.093 6.218 579.179 9.008 248.498 13.150
+290.858 504.820 6.441 576.151 9.825 255.235 12.723
+291.017 496.508 9.507 572.061 6.687 262.602 14.705
+291.174 498.175 6.816 568.320 8.236 268.926 8.859
+291.331 498.811 11.096 576.923 9.030 246.769 10.850
+291.488 502.138 6.832 576.189 7.672 245.757 5.775
+291.646 498.981 6.924 572.551 8.942 266.727 12.233
+291.804 502.579 7.752 574.355 9.630 263.577 17.200
+291.960 503.575 8.381 573.913 8.222 258.565 10.344
+292.117 499.595 7.483 573.749 8.465 248.775 12.322
+292.274 501.215 8.044 575.387 9.190 263.397 7.284
+292.431 489.452 7.970 570.143 10.079 254.574 21.951
+292.587 515.374 9.925 579.291 12.267 250.355 14.954
+292.743 506.483 10.174 574.752 18.130 246.313 16.549
+292.899 502.564 6.281 575.027 9.182 265.563 5.599
+293.058 499.685 7.267 572.380 6.873 261.815 6.392
+293.216 501.186 12.440 575.903 8.736 254.918 18.056
+293.372 498.051 10.168 579.819 9.094 247.459 8.424
+293.528 495.620 6.146 569.038 7.963 258.444 4.344
+293.687 507.196 6.642 569.820 8.796 250.024 8.646
+293.844 502.102 6.189 571.048 7.237 256.560 7.892
+294.002 500.171 7.316 572.930 7.061 256.695 8.680
+294.159 506.621 6.304 575.069 7.179 256.697 11.059
+294.317 490.886 8.461 569.590 9.194 259.227 15.999
+294.472 497.298 7.361 573.456 7.318 246.982 12.671
+294.630 511.173 6.530 569.074 10.715 279.409 11.875
+294.789 513.141 7.476 575.470 8.680 258.554 9.827
+294.946 498.071 7.332 575.554 7.471 257.265 7.715
+295.104 501.220 10.040 571.955 7.576 262.402 10.076
+295.262 509.732 7.592 576.039 9.757 251.854 7.685
+295.420 500.697 8.795 574.150 9.978 272.258 11.828
+295.576 506.237 10.507 572.121 9.607 244.842 11.085
+295.734 511.382 7.030 574.741 7.139 256.358 15.582
+295.892 506.013 6.879 571.287 6.871 264.113 12.190
+296.049 505.960 5.857 571.162 7.938 256.491 4.637
+296.207 504.819 6.045 575.681 9.502 258.934 5.376
+296.365 497.038 8.082 573.936 7.369 244.629 7.913
+296.520 487.600 6.881 572.649 7.569 257.936 15.283
+296.676 516.796 5.805 575.896 6.716 257.479 8.378
+296.835 517.948 5.805 572.979 6.765 263.104 8.452
+296.994 509.619 6.369 573.749 7.571 254.381 5.235
+297.152 503.346 7.461 574.427 7.079 254.823 9.950
+297.308 503.143 6.683 574.944 8.969 253.398 5.312
+297.467 508.321 6.245 569.879 9.470 265.794 11.277
+297.624 511.203 7.251 576.478 7.384 252.327 7.123
+297.781 516.322 5.883 574.684 8.708 260.733 6.289
+297.940 507.443 6.795 575.096 7.708 256.037 11.196
+298.098 520.744 5.888 574.771 6.433 255.990 6.678
+298.257 511.907 6.433 574.357 7.163 260.899 7.701
+298.415 514.079 5.685 573.603 7.415 253.959 9.061
+298.573 508.630 7.137 572.106 7.752 266.029 7.062
+298.732 513.116 6.322 573.521 6.979 259.210 11.773
+298.891 515.051 7.031 574.905 7.333 254.392 6.714
+299.050 510.910 7.836 572.819 8.201 258.433 11.099
+299.207 513.819 6.336 573.328 6.399 262.404 14.611
+299.366 513.208 7.265 576.983 8.573 257.634 11.569
+299.523 519.312 6.258 569.399 10.297 249.746 12.714
+299.681 514.813 6.687 574.454 9.200 252.677 9.214
+299.838 520.778 6.620 573.624 6.389 258.116 8.087
+299.995 512.497 7.244 570.456 8.134 257.511 12.311
+300.153 509.245 5.671 572.394 6.592 259.285 10.065
+300.310 507.712 6.464 573.084 7.263 253.282 6.685
+300.468 514.147 6.010 574.060 6.955 251.362 7.120
+300.626 510.271 9.438 574.420 10.820 261.753 22.498
+300.782 517.102 6.975 569.054 12.195 260.287 9.525
+300.940 514.731 6.010 573.390 6.904 255.242 9.804
+301.099 512.997 5.851 574.243 7.040 255.212 6.434
+301.257 514.570 6.217 571.862 7.538 252.452 5.602
+301.416 517.165 7.111 572.678 9.098 256.384 10.617
+301.574 508.891 6.288 568.436 8.781 261.123 13.783
+301.731 520.739 7.186 573.634 8.952 252.561 6.904
+301.889 519.027 6.274 577.146 8.273 251.305 8.416
+302.047 516.780 6.678 570.751 8.216 254.283 10.274
+302.205 512.417 6.466 572.907 7.201 265.542 5.534
+302.364 512.164 6.046 571.929 9.167 257.975 11.404
+302.521 505.921 7.036 574.939 6.751 246.479 8.089
+302.678 517.019 7.373 577.579 8.218 250.014 14.261
+302.835 512.970 6.257 571.055 8.706 265.420 11.958
+302.993 515.069 6.914 573.400 7.507 265.784 10.695
+303.152 519.680 8.428 574.864 8.852 261.337 8.865
+303.309 514.476 6.726 573.298 6.935 246.463 7.878
+303.467 509.644 6.033 570.163 7.592 259.844 7.567
+303.625 509.606 7.371 575.261 8.872 262.718 11.923
+303.782 516.966 6.205 571.212 7.540 259.667 9.276
+303.940 517.599 6.879 579.042 6.590 244.046 5.726
+304.098 521.936 5.940 571.580 7.036 249.530 7.477
+304.256 514.719 6.766 574.725 6.797 261.435 8.793
+304.414 516.827 6.014 571.217 9.085 273.384 13.312
+304.572 513.938 7.106 570.042 7.283 255.553 10.107
+304.730 513.749 6.504 575.210 7.208 243.895 9.358
+304.888 507.727 6.024 573.652 9.183 244.788 10.669
+305.046 515.717 6.615 572.886 6.494 250.767 4.932
+305.205 522.597 6.645 569.708 7.034 276.057 8.183
+305.363 519.685 6.554 568.117 6.705 270.760 10.488
+305.520 506.476 7.389 579.731 8.218 236.917 4.941
+305.677 517.484 7.947 572.887 8.093 240.219 9.073
+305.834 514.244 5.845 567.878 6.513 264.822 7.565
+305.993 511.692 6.653 569.878 6.813 275.328 7.785
+306.150 516.676 8.200 578.518 8.150 235.593 9.991
+306.306 514.216 6.470 578.815 9.757 236.435 16.653
+306.465 514.882 6.443 567.438 7.782 278.954 9.985
+306.623 516.368 9.161 573.644 7.927 253.139 9.943
+306.780 515.243 6.525 571.296 8.344 266.351 8.826
+306.937 510.742 6.535 572.573 8.137 237.483 11.269
+307.094 518.717 8.246 571.435 7.050 257.364 9.394
+307.253 514.467 6.344 570.734 8.040 271.243 13.033
+307.411 512.544 6.370 568.757 7.010 269.002 4.976
+307.571 511.555 7.177 572.977 9.447 256.780 7.099
+307.729 515.975 6.928 575.809 10.743 241.917 8.510
+307.885 517.369 6.583 573.608 8.720 242.269 15.317
+308.043 516.223 5.922 565.106 7.077 274.562 8.819
+308.201 518.712 6.475 568.921 6.764 273.905 10.370
+308.359 514.277 6.609 568.539 8.413 254.019 9.638
+308.517 515.262 6.134 576.035 7.094 232.640 11.141
+308.674 520.512 6.990 570.280 7.623 255.416 18.949
+308.831 512.555 7.277 566.582 7.065 278.224 7.333
+308.989 522.795 6.369 572.285 6.858 247.482 8.689
+309.146 516.657 9.051 570.752 10.068 256.234 7.192
+309.304 512.986 6.243 570.367 6.905 257.142 7.891
+309.463 511.319 7.626 569.713 8.847 264.701 6.639
+309.621 515.183 7.373 569.837 6.870 256.057 9.649
+309.778 513.401 5.989 568.988 6.843 250.830 3.897
+309.937 513.704 8.053 573.409 8.428 260.328 15.468
+310.094 519.817 5.872 566.184 6.322 266.773 6.705
+310.252 518.938 7.267 569.361 9.044 252.207 12.979
+310.409 510.019 6.480 569.593 6.139 250.662 6.332
+310.567 509.410 5.802 572.066 7.001 252.886 8.290
+310.724 519.174 6.514 569.620 7.620 261.988 10.739
+310.883 516.991 6.074 575.096 7.146 249.259 6.668
+311.041 509.769 7.283 572.931 9.545 249.852 16.970
+311.199 521.827 6.425 565.299 6.771 278.408 9.836
+311.357 522.388 6.646 569.823 8.540 255.454 7.920
+311.514 507.393 7.729 572.918 8.279 250.334 14.330
+311.671 518.653 5.884 566.989 8.838 258.283 6.257
+311.830 517.176 7.147 574.229 11.818 253.732 15.186
+311.988 514.881 6.771 568.552 6.990 263.977 8.351
+312.146 518.568 6.526 568.605 6.489 251.249 9.349
+312.303 520.115 6.398 570.466 8.326 251.762 5.959
+312.462 510.401 6.136 570.304 6.659 259.367 7.902
+312.619 516.404 7.265 568.063 8.034 256.643 6.054
+312.777 518.434 5.523 572.140 9.080 247.856 9.483
+312.934 514.644 6.736 568.521 8.532 258.698 5.644
+313.092 516.996 7.043 570.845 6.541 255.797 10.778
+313.251 518.090 6.748 567.908 6.736 263.738 10.217
+313.409 505.040 9.610 570.159 9.809 240.707 22.626
+313.565 519.020 6.344 573.101 10.588 251.197 12.602
+313.723 519.500 7.575 567.571 9.101 264.852 15.134
+313.880 513.825 5.805 566.115 7.144 263.678 6.855
+314.039 512.568 6.943 572.011 7.542 254.626 11.408
+314.197 518.985 8.286 571.020 10.615 247.446 13.251
+314.353 509.229 7.274 570.530 14.080 252.404 12.172
+314.510 518.942 7.176 566.705 7.908 268.184 7.686
+314.667 515.559 7.298 569.197 6.770 253.091 8.118
+314.826 513.255 6.755 566.462 7.301 263.380 5.771
+314.985 513.112 7.091 569.724 9.343 255.823 11.603
+315.142 519.641 6.694 567.997 7.957 255.068 14.912
+315.299 503.576 6.180 570.090 11.803 261.410 19.173
+315.456 511.525 8.039 571.251 9.469 257.674 24.027
+315.613 512.665 5.954 568.842 11.543 266.376 7.959
+315.771 511.796 6.533 573.078 7.726 255.723 22.231
+315.928 510.327 7.425 571.060 11.555 258.537 26.021
+316.084 520.783 9.218 571.830 7.197 240.335 16.317
+316.241 507.917 9.618 570.368 8.191 261.423 13.120
+316.398 516.059 7.394 562.573 8.236 270.004 17.504
+316.556 511.900 6.744 567.755 7.510 270.060 17.304
+316.712 515.399 7.710 574.907 7.634 237.120 10.994
+316.869 513.984 7.757 570.509 6.850 248.311 4.431
+317.027 519.819 6.913 567.415 7.943 275.143 8.553
+317.185 508.268 6.595 566.364 11.527 257.751 18.985
+317.341 510.042 7.433 576.043 7.348 240.127 7.731
+317.499 506.740 5.968 569.380 6.886 252.831 9.501
+317.656 509.207 6.434 570.653 6.294 255.718 6.453
+317.814 513.132 5.870 569.806 7.019 259.067 7.335
+317.972 513.431 5.578 571.018 6.294 249.590 5.226
+318.131 510.734 6.772 568.180 9.335 258.975 16.403
+318.288 508.597 8.293 572.551 13.518 256.339 17.802
+318.444 515.146 6.686 572.295 8.956 258.263 7.360
+318.602 512.031 6.166 573.663 8.323 260.942 11.835
+318.760 513.360 7.183 570.526 7.542 256.639 4.814
+318.918 511.203 8.051 571.255 7.605 251.836 4.503
+319.075 515.902 6.746 574.552 8.124 250.468 18.241
+319.232 512.589 8.569 570.075 11.753 263.994 17.147
+319.389 510.685 7.615 573.550 6.405 262.459 8.836
+319.546 517.226 5.643 571.225 7.897 252.054 10.013
+319.703 509.482 7.458 570.572 8.527 258.340 14.463
+319.861 514.564 7.290 571.755 6.463 257.633 18.652
+320.018 511.305 12.950 576.617 11.105 257.166 17.942
+320.175 516.283 7.623 572.336 7.059 256.601 8.245
+320.333 509.202 7.617 573.213 8.276 255.356 7.547
+320.490 518.372 6.293 570.682 7.351 257.993 15.306
+320.648 514.633 6.640 573.076 10.251 258.689 9.799
+320.807 514.146 6.484 572.800 7.481 261.896 15.070
+320.964 517.751 5.826 572.028 9.157 247.158 17.716
+321.120 513.747 6.498 570.430 10.319 258.781 21.197
+321.278 521.517 8.122 575.064 12.740 257.017 26.012
+321.434 516.325 7.469 568.140 7.647 272.990 6.428
+321.592 514.733 10.813 571.641 10.648 258.529 18.686
+321.750 521.917 9.320576.076 9.408 257.655 17.707
+321.907 526.149 14.177 579.270 15.919 245.576 28.299
+322.062 516.361 9.247 572.902 11.639 268.515 21.722
+322.219 514.973 6.767 572.639 8.438 259.625 10.844
+322.377 510.519 8.139 575.706 11.197 248.346 13.532
+322.533 505.615 12.050 573.127 8.352 244.003 18.064
+322.690 507.666 7.640 571.501 9.016 260.540 15.376
+322.847 518.986 6.273 569.855 11.443 255.815 16.008
+323.004 512.269 6.702 573.868 9.107 257.158 13.278
+323.162 511.012 6.079 573.748 7.263 258.341 12.273
+323.320 513.260 7.833 571.777 10.717 256.313 6.876
+323.478 514.442 7.046 573.417 9.870 252.203 8.811
+323.635 508.964 7.057 572.934 7.237 258.302 6.464
+323.793 512.119 8.169 574.659 10.895 256.393 13.316
+323.951 514.751 6.511 573.116 10.644 258.083 14.978
+324.109 514.107 6.468 569.791 9.360 257.900 14.231
+324.266 517.161 6.382 574.498 7.060 258.329 12.376
+324.424 517.391 7.652 573.235 8.670 258.793 11.998
+324.581 509.533 7.989 573.872 11.795 254.327 20.350
+324.738 512.665 8.452 568.618 13.516 262.333 11.125
+324.896 515.076 6.700 574.336 9.300 254.673 21.981
+325.054 511.000 6.823 574.203 8.300 261.826 8.741
+325.212 515.340 8.774 573.162 6.698 252.788 8.347
+325.369 522.443 7.890 573.571 8.602 260.077 11.894
+325.527 512.304 7.893 574.555 10.764 254.650 15.035
+325.684 516.933 7.230 573.045 7.962 260.906 18.340
+325.841 513.849 6.835 572.980 6.678 257.529 10.926
+326.000 512.618 5.868 571.809 6.998 258.995 7.042
+326.158 517.546 7.423 576.068 7.621 247.989 9.176
+326.315 512.575 6.767 572.120 7.111 256.209 7.985
+326.473 512.155 9.497 575.541 10.198 260.682 19.373
+326.630 517.751 5.929 571.515 7.806 259.516 8.208
+326.787 513.687 6.028 576.455 6.721 254.685 6.390
+326.946 510.616 7.079 574.234 10.328 256.296 8.962
+327.104 516.396 6.838 571.912 6.805 256.862 12.645
+327.263 512.604 7.094 572.379 7.680 258.868 7.108
+327.421 510.226 10.344 575.243 12.558 252.298 21.578
+327.579 512.762 7.710 573.242 13.950 263.273 17.599
+327.735 518.187 7.731 571.542 7.599 257.182 9.649
+327.893 514.891 6.722 576.125 7.679 259.301 9.221
+328.051 517.098 5.892 574.071 6.845 255.863 13.136
+328.209 507.021 8.162 572.810 10.636 253.128 19.140
+328.365 513.340 7.137 569.128 8.462 255.001 11.495
+328.523 513.263 5.839 573.991 8.054 258.710 16.379
+328.680 516.832 7.642 572.340 7.105 259.367 8.531
+328.839 512.888 5.999 568.523 7.471 259.723 7.586
+328.997 509.298 7.633 572.845 10.535 262.997 20.553
+329.154 538.743 27.188 570.008 48.237 248.440 74.042
+329.307 507.747 9.247 574.830 20.344 262.814 19.078
+329.464 514.637 6.935 572.278 21.848 267.138 25.731
+329.620 511.216 7.578 573.792 8.547 256.701 17.471
+329.777 520.762 15.050 575.427 11.374 251.557 20.822
+329.934 511.927 7.348 577.934 15.414 247.135 15.984
+330.090 515.859 8.176 573.779 8.092 264.681 9.210
+330.247 515.738 7.155 574.807 6.490 256.706 6.297
+330.405 516.927 6.617 575.008 8.178 253.387 9.126
+330.562 512.309 6.428 569.760 6.614 258.423 5.039
+330.721 512.053 8.913 573.877 6.879 252.524 10.088
+330.879 518.580 9.317 570.288 8.426 260.285 12.688
+331.035 512.915 6.597 575.383 9.183 256.432 16.475
+331.192 516.089 6.763 573.083 7.023 257.234 12.908
+331.350 512.800 6.729 574.210 7.533 252.902 9.096
+331.507 514.288 6.833 572.752 8.684 261.179 8.922
+331.665 518.562 6.688 572.887 8.293 256.701 6.414
+331.822 504.385 8.480 573.638 7.177 252.717 6.913
+331.979 512.893 6.487 573.036 7.489 253.457 6.300
+332.137 516.049 6.432 572.150 7.124 255.574 5.623
+332.296 513.940 6.073 571.951 7.706 260.985 9.114
+332.454 514.839 6.789 574.669 6.583 264.369 5.934
+332.613 516.098 5.908 572.506 6.813 253.043 7.812
+332.771 510.921 7.533 574.585 8.832 247.540 6.973
+332.928 508.169 6.280 574.805 7.185 255.385 16.720
+333.086 514.501 10.451 566.868 12.504 268.143 13.033
+333.245 513.845 8.783 567.698 13.344 275.421 23.683
+333.401 515.928 11.208 574.527 7.701 249.764 13.582
+333.559 511.019 6.318 575.735 6.670 249.387 6.885
+333.716 512.750 8.480 571.207 10.846 255.823 19.265
+333.874 513.267 7.302 565.082 9.666 278.588 16.134
+334.032 513.122 6.316 572.460 6.428 257.295 8.572
+334.190 515.281 6.842 576.574 7.080 242.462 15.368
+334.347 516.362 5.653 575.025 8.773 252.704 7.055
+334.505 515.853 8.481 572.510 7.518 270.017 5.527
+334.665 513.658 6.776 571.435 7.345 267.640 9.648
+334.823 513.726 6.656 577.214 6.534 244.796 10.110
+334.981 517.707 6.502 573.282 7.543 257.587 9.914
+335.139 512.097 6.286 572.232 9.227 266.365 14.361
+335.297 517.041 6.758 572.962 8.790 263.023 12.834
+335.455 512.420 7.692 575.009 10.951 249.790 15.168
+335.612 511.594 9.387 575.570 13.966 252.077 17.509
+335.769 515.776 6.675 574.045 9.174 249.080 7.371
+335.927 512.927 6.491 572.550 7.695 263.640 5.474
+336.086 516.009 6.963 574.555 8.087 259.516 10.024
+336.243 521.030 5.854 575.535 6.485 252.975 3.809
+336.402 514.480 7.105 574.545 7.689 258.369 13.708
+336.560 522.094 7.859 574.445 8.475 260.983 7.992
+336.717 515.430 6.527 574.224 8.169 263.279 6.860
+336.876 509.604 6.133 575.122 6.996 256.682 9.864
+337.033 511.256 7.616 570.231 9.263 253.146 11.393
+337.190 514.352 5.880 575.292 7.581 251.931 4.313
+337.348 513.413 6.316 574.362 8.829 259.129 17.347
+337.506 516.264 6.009 574.003 9.357 253.141 14.669
+337.664 514.622 5.521 573.160 6.293 258.241 6.789
+337.823 514.956 5.839 573.721 7.226 258.742 8.617
+337.981 513.019 5.850 575.297 7.321 247.207 5.694
+338.140 510.820 6.171 573.313 6.600 258.712 4.790
+338.298 516.158 6.941 571.573 7.218 257.037 15.615
+338.456 516.171 6.116 574.025 7.884 255.930 9.728
+338.613 510.741 6.099 575.120 7.517 260.249 9.119
+338.770 513.597 6.988 572.871 10.692 257.832 14.218
+338.928 518.726 6.125 574.248 7.382 252.258 7.801
+339.086 511.567 6.537 572.962 8.639 265.662 10.524
+339.244 513.955 5.651 576.289 8.634 252.196 9.295
+339.401 512.549 7.565 576.802 6.533 257.301 10.291
+339.559 514.355 6.680 572.948 7.891 261.083 7.624
+339.718 520.213 6.916 575.559 7.595 259.440 8.635
+339.876 511.652 7.542 579.685 7.472 247.124 11.375
+340.033 511.976 6.926 573.866 9.916 258.021 12.916
+340.191 516.399 6.581 572.728 8.541 264.450 9.825
+340.349 512.654 8.331 576.907 7.397 260.484 12.997
+340.507 513.476 6.071 576.069 7.931 255.444 11.981
+340.664 517.084 6.821 578.310 7.933 252.574 8.464
+340.821 513.270 8.152 575.853 15.617 246.725 33.396
+340.976 512.852 7.103 577.318 8.823 259.947 11.789
+341.134 516.688 6.341 576.653 7.394 255.549 7.290
+341.292 515.296 6.644 578.156 7.769 258.015 8.663
+341.450 512.473 6.638 576.301 8.868 262.740 13.449
+341.608 511.204 8.374 578.803 9.061 251.157 13.494
+341.765 511.942 7.797 579.478 14.197 252.821 17.400
+341.921 519.359 5.845 580.734 10.026 265.888 30.592
+342.079 509.603 8.073 578.457 8.318 260.448 10.226
+342.236 509.056 9.486 585.694 11.183 253.464 14.077
+342.394 520.200 7.429 593.076 11.234 262.694 11.951
+342.552 514.592 8.044 582.470 10.555 262.296 17.283
+342.709 506.975 9.339 584.134 11.158 250.652 28.138
+342.865 518.749 6.500 585.841 8.769 259.516 17.573
+343.021 517.327 5.857 597.368 8.054 248.895 5.977
+343.178 508.393 11.995 578.233 16.257 264.449 30.929
+343.334 513.934 9.759 583.432 11.963 265.204 19.252
+343.491 507.499 8.395 582.284 13.985 267.812 14.313
+343.647 507.675 8.592 590.332 16.758 258.288 24.676
+343.803 514.726 10.404 584.333 10.279 257.152 11.630
+343.962 519.387 11.820 586.293 12.193 270.421 17.524
+344.119 509.503 12.253 586.533 12.232 266.244 33.544
+344.274 514.815 7.914 583.855 14.490 257.902 13.874
+344.432 507.098 10.762 589.288 11.937 259.129 21.934
+344.589 513.771 7.697 590.492 15.892 257.531 17.691
+344.745 508.687 7.487 581.315 8.706 280.075 22.821
+344.902 515.986 7.139 583.613 9.642 255.760 17.455
+345.059 510.349 7.296 585.166 8.011 264.557 9.556
+345.216 520.353 7.566 584.991 13.172 254.155 8.338
+345.373 510.953 11.300 579.729 14.123 262.751 38.146
+345.528 507.509 10.790 584.997 16.562 258.027 18.458
+345.685 518.715 9.474 584.100 13.209 255.730 24.177
+345.841 504.187 9.094 585.411 8.283 259.347 20.191
+345.998 516.521 6.204 589.244 10.733 253.503 14.240
+346.157 521.595 6.775 583.212 14.263 266.715 15.756
+346.314 514.315 15.599 570.742 31.236 278.917 50.528
+346.469 510.323 14.171 587.057 27.926 241.059 65.840
+346.623 522.523 9.743 582.670 11.196 264.520 20.228
+346.779 511.865 7.136 580.056 13.253 266.685 21.290
+346.936 515.478 6.865 587.290 8.422 266.096 14.872
+347.094 514.344 9.894 579.012 14.628 251.270 23.425
+347.250 520.203 7.688 586.860 10.672 256.632 22.340
+347.408 508.512 9.320 581.078 18.963 264.266 21.831
+347.564 522.575 8.974 584.540 9.795 268.832 20.351
+347.720 506.215 6.596 579.865 7.099 263.698 22.401
+347.877 509.562 7.372 580.288 12.228 249.587 17.318
+348.034 513.325 6.245 583.822 8.359 269.625 10.605
+348.192 516.433 8.243 581.388 9.805 252.816 18.143
+348.349 512.334 11.164 590.753 20.154 265.438 27.129
+348.504 524.983 9.649 576.077 10.412 255.934 16.469
+348.662 506.079 7.402 573.140 9.801 268.749 13.443
+348.818 515.000 6.705 566.771 7.416 243.787 21.851
+348.976 517.520 8.444 576.837 10.435 257.207 15.562
+349.134 507.295 8.555 579.018 17.339 256.512 29.042
+349.290 521.893 5.956 580.320 12.110 258.885 6.833
+349.448 517.978 9.274 577.453 10.211 264.018 9.935
+349.605 511.719 7.581 582.404 10.517 252.950 27.429
+349.761 504.037 7.183 576.024 13.377 267.849 44.976
+349.917 507.550 7.469 573.850 6.848 250.068 18.145
+350.074 516.615 6.658 573.258 10.439 263.140 16.291
+350.231 512.906 6.237 577.252 11.771 252.921 14.987
+350.388 518.899 6.454 579.142 9.424 257.889 9.413
+350.547 512.579 7.169 574.531 12.864 256.528 37.567
+350.704 518.315 7.354 577.685 9.089 254.055 20.911
+350.861 510.303 6.707 575.796 10.009 264.820 16.195
+351.017 511.733 9.499 577.658 14.244 232.568 39.275
+351.174 516.887 6.527 575.236 7.710 258.825 22.139
+351.331 507.428 13.019 575.442 11.865 257.318 15.754
+351.487 514.194 11.267 572.674 11.889 242.993 46.530
+351.643 519.211 15.987 575.516 35.544 301.089 66.655
+351.797 525.162 8.089 575.675 10.452 255.840 14.915
+351.953 514.171 8.013 577.356 9.285 251.998 21.756
+352.109 516.871 5.881 571.873 8.322 253.370 11.027
+352.268 507.548 7.784 577.498 7.906 245.493 9.061
+352.424 507.965 6.684 571.025 8.987 260.834 15.635
+352.581 523.389 7.756 569.590 9.156 268.968 8.391
+352.739 514.763 6.357 576.616 7.041 257.789 7.572
+352.899 516.687 6.815 574.186 6.908 257.087 7.739
+353.057 513.356 6.463 574.301 7.301 259.000 8.278
+353.216 517.883 6.063 576.743 6.884 257.530 11.957
+353.374 514.258 8.461 573.737 7.740 260.905 14.053
+353.531 510.462 6.883 577.217 7.568 251.089 16.484
+353.688 514.934 7.623 575.482 12.351 256.250 16.728
+353.845 515.669 6.397 573.604 9.333 258.672 13.007
+354.003 516.326 7.084 572.596 9.405 256.256 13.813
+354.160 518.883 6.326 569.586 8.227 256.182 16.149
+354.317 517.718 7.761 574.456 8.666 253.351 4.143
+354.475 508.327 6.123 574.004 8.418 255.313 10.342
+354.633 510.803 6.348 573.760 6.867 257.853 5.705
+354.791 514.758 6.014 573.527 7.077 259.278 5.844
+354.951 515.157 6.513 578.005 6.498 256.542 5.267
+355.109 517.461 6.279 572.960 7.906 258.515 11.579
+355.268 512.624 7.055 575.239 7.673 255.565 12.694
+355.425 516.746 5.809 571.442 8.779 256.135 12.704
+355.583 511.267 8.915 577.524 11.001 256.691 14.829
+355.739 516.922 6.929 573.045 6.726 261.476 6.701
+355.897 516.719 7.074 572.740 7.499 255.554 8.953
+356.056 516.827 7.200 575.307 8.539 255.215 9.230
+356.213 515.358 5.894 572.693 7.118 257.592 8.861
+356.371 517.863 6.776 572.616 7.178 264.685 13.342
+356.528 515.118 7.591 573.336 8.768 258.576 11.977
+356.686 513.241 6.893 574.753 9.730 251.225 15.988
+356.843 517.332 5.671 572.317 7.879 260.662 8.874
+357.000 513.983 7.683 576.313 6.731 258.066 9.127
+357.159 512.209 6.569 570.813 7.387 259.270 7.279
+357.317 515.992 6.545 572.408 7.380 255.172 9.841
+357.475 515.009 7.271 571.574 7.888 258.561 8.825
+357.633 514.300 6.410 574.655 7.235 259.855 9.683
+357.791 515.613 6.474 572.686 6.974 259.138 7.533
+357.949 511.906 8.688 575.096 6.349 256.231 8.793
+358.107 511.479 5.719 574.641 8.260 258.492 7.514
+358.265 510.134 6.851 576.076 8.021 249.004 12.227
+358.422 513.781 6.074 576.430 7.442 260.910 8.628
+358.580 514.797 9.181 574.054 9.016 256.459 14.273
+358.737 514.438 6.544 576.170 6.618 254.174 7.768
+358.895 515.544 8.632 573.871 8.048 267.821 6.553
+359.054 509.515 6.938 571.968 6.539 262.118 7.491
+359.212 513.085 8.266 576.019 7.634 254.871 7.909
+359.369 510.380 7.216 573.770 7.518 251.578 15.990
+359.526 512.643 6.076 570.747 7.524 261.645 4.854
+359.686 517.376 7.703 571.017 7.261 265.236 7.278
+359.845 511.623 8.265 571.440 9.858 272.932 27.723
+360.000 517.686 7.107 575.614 7.668 245.049 14.053
+360.157 517.826 6.353 570.956 8.429 257.720 11.758
+360.316 509.368 6.870 571.149 6.129 262.437 10.433
+360.474 513.393 7.249 572.741 8.950 260.304 15.269
+360.630 515.153 7.285 573.197 7.882 256.213 5.406
+360.788 516.431 6.246 578.052 9.739 251.642 7.469
+360.946 511.234 6.133 572.600 7.832 255.876 7.610
+361.103 516.442 6.690 576.006 7.760 259.708 6.981
+361.262 513.084 6.242 571.930 8.003 258.027 18.891
+361.419 514.560 8.172 572.909 11.603 262.530 16.920
+361.576 513.285 10.649 569.169 8.507 264.455 15.053
+361.734 512.062 6.876 572.931 6.645 255.134 7.875
+361.891 518.770 6.875 575.519 9.827 260.601 13.452
+362.048 511.857 6.662 573.995 9.830 259.286 12.838
+362.205 515.008 6.308 575.790 9.227 250.682 12.207
+362.364 514.720 7.880 574.748 6.813 263.776 10.157
+362.521 515.037 8.070 577.247 6.905 253.817 10.109
+362.679 513.100 7.084 574.142 7.076 260.678 8.948
+362.837 512.141 7.648 573.521 8.604 257.496 7.958
+362.994 515.691 5.815 574.445 7.004 258.224 5.996
+363.152 518.336 5.933 576.404 6.718 250.752 6.436
+363.311 515.323 6.078 574.914 7.547 261.467 7.673
+363.469 515.543 6.146 573.929 7.691 258.784 12.066
+363.627 515.975 7.003 572.439 7.861 255.657 8.744
+363.784 515.279 6.032 575.634 6.763 255.406 10.841
+363.943 520.752 6.414 579.156 7.093 251.794 9.464
+364.100 519.067 6.072 574.011 7.119 259.927 8.962
+364.258 516.970 6.289 574.600 6.668 256.179 5.316
+364.417 513.979 5.842 575.186 10.802 258.801 17.347
+364.574 516.409 7.980 574.571 11.361 255.098 10.804
+364.732 518.194 5.912 573.495 8.453 252.001 9.885
+364.889 515.352 6.268 573.644 6.933 260.740 6.554
+365.048 516.493 5.978 575.126 7.930 259.537 11.024
+365.206 518.824 6.267 574.461 8.246 258.535 9.916
+365.364 516.148 6.162 575.574 6.633 255.145 9.815
+365.521 519.071 5.737 575.815 7.491 257.581 11.737
+365.679 513.780 7.458 575.578 6.460 265.795 8.131
+365.837 513.287 6.442 574.235 6.851 258.847 7.145
+365.995 517.332 6.488 575.472 6.868 259.258 8.701
+366.153 524.423 8.715 574.564 7.956 256.772 11.915
+366.310 514.694 6.957 577.695 8.254 254.977 15.005
+366.467 520.686 8.293 575.547 8.411 257.909 13.517
+366.624 521.216 7.032 578.495 8.131 254.269 10.000
+366.781 513.292 6.766 573.294 6.877 260.282 5.594
+366.939 519.092 7.917 577.263 9.117 254.452 13.199
+367.096 517.730 5.881 579.222 8.513 248.714 11.281
+367.253 518.547 7.732 576.682 9.699 260.007 12.335
+367.411 513.915 7.388 580.256 8.353 242.790 13.986
+367.568 524.969 7.095 573.532 7.247 262.047 9.500
+367.726 518.739 6.647 571.725 6.666 276.250 10.719
+367.884 522.677 6.799 575.807 6.318 254.182 7.270
+368.041 520.186 7.723 580.038 6.713 241.371 9.504
+368.198 517.111 6.200 574.540 7.407 249.423 11.539
+368.356 518.041 6.297 573.825 6.305 274.414 9.636
+368.516 512.160 6.801 573.788 7.096 264.234 5.765
+368.674 512.901 9.332 575.607 9.622 262.642 11.229
+368.832 503.419 6.707 578.316 6.661 240.586 11.731
+368.989 521.014 7.078 575.143 11.538 255.725 13.444
+369.147 513.100 6.677 573.701 7.150 258.667 9.958
+369.306 519.511 8.643 571.727 12.241 268.886 24.985
+369.463 512.185 6.288 574.317 8.376 262.828 9.516
+369.621 525.821 12.829 578.463 10.534 253.638 15.195
+369.778 503.868 12.261 571.474 7.271 257.536 13.027
+369.935 500.678 11.331 570.974 8.845 257.355 16.645
+370.092 510.316 8.319 572.549 10.434 266.003 17.680
+370.249 512.243 6.164 577.275 9.458 258.950 5.949
+370.408 510.182 11.602 579.052 10.928 259.719 13.001
+370.566 507.331 8.742 575.270 9.969 259.387 7.819
+370.724 516.343 7.757 575.732 11.900 245.783 7.876
+370.882 507.623 6.212 575.397 8.452 267.817 18.970
+371.039 512.126 6.756 573.684 9.931 261.858 16.372
+371.196 507.921 9.048 575.946 8.467 255.738 15.457
+371.352 506.629 7.466 573.379 7.952 245.767 16.197
+371.508 502.686 10.919 573.193 11.117 257.907 11.286
+371.667 509.426 5.901 575.382 10.388 261.819 11.698
+371.825 517.054 7.272 575.443 11.237 257.028 18.121
+371.982 510.010 11.899 571.814 10.178 258.980 15.839
+372.139 514.340 7.232 576.268 14.747 254.469 19.119
+372.295 516.263 10.790 572.622 17.921 251.174 34.982
+372.450 512.532 6.539 575.746 6.347 250.941 11.983
+372.609 510.695 8.040 574.437 11.664 268.809 13.713
+372.766 518.467 16.398 577.584 12.374 250.118 18.006
+372.923 511.404 9.352 571.545 14.509 267.411 30.578
+373.078 518.174 6.840 571.685 8.707 252.594 14.369
+373.235 507.791 8.078 579.366 8.926 235.825 11.506
+373.392 507.307 5.827 574.443 8.933 257.518 14.278
+373.549 512.753 9.141 575.814 12.569 255.185 10.905
+373.706 517.057 6.126 576.318 8.167 262.841 10.848
+373.864 509.780 7.427 569.683 11.761 265.548 9.823
+374.021 502.237 14.213 574.426 7.940 251.705 9.709
+374.178 508.132 9.057 568.014 17.569 258.887 24.875
+374.336 513.201 12.809 573.720 8.889 247.688 18.111
+374.493 503.032 7.833 571.907 8.346 270.086 11.302
+374.651 503.730 6.680 571.949 6.950 266.020 3.843
+374.810 511.967 6.368 572.829 9.678 263.170 11.639
+374.969 505.289 9.653 581.708 11.520 233.181 14.132
+375.124 517.132 7.945 576.267 10.253 241.171 14.442
+375.281 507.641 6.741 569.182 7.518 271.611 10.784
+375.440 507.376 6.376 569.701 7.497 282.096 4.991
+375.599 503.043 8.108 573.767 8.669 246.920 5.487
+375.756 503.880 6.737 570.907 6.631 246.539 8.359
+375.913 505.548 6.663 575.789 10.990 253.795 12.050
+376.070 505.165 7.206 572.668 8.871 266.968 10.487
+376.229 502.801 6.856 569.936 7.282 267.859 9.901
+376.388 502.018 7.264 575.459 8.697 258.598 11.634
+376.545 497.410 7.056 572.714 7.726 257.516 14.721
+376.702 500.204 6.810 571.877 7.991 245.695 14.975
+376.858 496.502 9.113 571.988 8.309 265.207 14.835
+377.015 506.225 7.219 578.619 8.872 247.242 20.429
+377.172 501.322 7.521 577.106 7.938 259.762 15.362
+377.329 495.523 6.404 568.951 10.644 264.597 14.405
+377.487 501.435 6.408 574.839 7.683 257.275 10.528
+377.644 490.544 5.969 571.058 12.009 254.892 6.223
+377.802 490.875 12.491 566.080 18.054 244.278 10.276
+377.958 503.038 9.341 570.430 11.621 247.692 16.658
+378.114 500.310 14.358 564.704 11.241 253.596 25.632
+378.270 500.083 9.666 570.297 11.129 247.936 10.949
+378.427 493.290 6.137 575.333 11.091 257.139 14.914
+378.584 493.442 10.831 565.203 9.684 253.161 9.056
+378.742 500.334 8.638 569.222 10.145 251.251 10.730
+378.898 505.433 6.801 574.852 8.075 257.862 13.527
+379.056 494.514 8.950 567.938 8.521 251.838 19.238
+379.213 498.235 7.867 577.689 11.392 256.868 19.954
+379.369 500.662 8.186 571.606 8.710 256.488 9.094
+379.525 498.216 6.844 568.916 7.676 254.384 6.927
+379.683 499.392 8.360 570.809 9.258 255.863 6.135
+379.840 495.643 6.326 572.468 7.752 252.858 6.013
+379.998 496.126 12.868 570.364 9.606 251.288 22.091
+380.153 492.971 10.061 568.833 11.316 252.242 23.248
+380.310 501.409 5.831 574.878 9.199 274.812 12.708
+380.468 496.824 8.075 573.198 8.102 263.398 8.506
+380.624 499.248 9.382 569.272 8.250 247.583 11.390
+380.781 499.172 6.162 577.442 8.981 248.235 18.019
+380.938 506.821 6.578 574.844 9.392 261.662 13.267
+381.096 486.868 6.828 573.168 15.651 255.316 26.288
+381.251 500.938 7.580 575.591 7.112 249.393 11.331
+381.409 501.309 7.540 573.986 8.421 268.463 10.282
+381.568 497.123 7.039 566.439 8.621 261.804 5.624
+381.726 499.401 7.602 569.664 9.796 259.148 13.018
+381.883 496.464 7.751 568.376 6.825 255.541 17.204
+382.039 494.054 11.080 576.583 9.237 243.785 10.210
+382.197 496.180 6.825 573.295 7.142 268.927 13.189
+382.354 500.611 7.656 570.633 10.715 254.509 8.531
+382.512 497.366 6.424 573.906 8.270 255.585 6.209
+382.670 498.253 7.618 579.279 9.182 250.595 14.914
+382.826 498.872 6.572 570.692 9.776 258.066 16.567
+382.983 493.558 7.853 570.217 10.261 257.690 19.189
+383.139 498.745 6.749 571.742 9.343 254.346 21.095
+383.295 500.437 8.018 573.477 10.278 253.283 23.203
+383.452 493.374 6.230 572.874 7.707 261.242 14.696
+383.609 499.903 8.593 575.268 10.521 257.572 21.560
+383.767 499.049 8.628 573.092 10.359 260.765 16.034
+383.924 499.450 7.541 581.191 11.487 248.587 13.693
+384.081 499.554 8.855 581.531 9.643 267.955 9.430
+384.238 495.305 9.247 578.585 10.644 261.809 17.713
+384.395 497.013 9.745 576.535 15.642 260.358 18.449
+384.551 500.910 9.007 581.915 7.796 260.163 11.837
+384.708 497.919 7.312 582.939 9.768 269.061 10.032
+384.865 498.779 10.286 578.319 10.872 253.620 15.929
+385.021 499.817 9.118 576.143 14.448 260.676 9.741
+385.178 498.198 15.414 576.821 31.731 263.446 23.092
+385.332 497.752 14.228 587.128 19.214 258.404 38.884
+385.488 500.457 8.602 586.591 9.125 265.464 15.186
+385.645 504.524 9.015 587.666 8.449 264.034 22.271
+385.801 499.425 8.903 587.176 17.436 251.620 36.948
+385.957 496.554 8.223 576.251 8.891 260.366 17.537
+386.113 503.325 8.509 583.552 9.095 262.413 33.078
+386.270 501.573 14.343 583.785 9.481 264.184 47.904
+386.427 508.595 6.208 590.147 10.925 256.261 22.374
+386.584 499.035 8.764 594.641 11.722 263.392 18.513
+386.741 506.180 8.707 587.986 13.643 266.733 20.328
+386.897 504.721 9.117 598.259 9.694 256.717 17.371
+387.053 494.817 6.623 596.442 14.180 249.737 14.855
+387.211 504.378 10.655 590.214 14.921 266.307 7.602
+387.368 514.803 13.874 595.932 9.631 244.943 24.884
+387.525 511.028 11.026 595.739 10.288 254.729 28.467
+387.683 504.340 7.309 589.097 12.963 293.587 21.969
+387.841 501.133 9.595 592.881 8.447 262.185 16.247
+387.997 506.351 8.553 586.878 8.206 265.201 18.973
+388.154 506.813 8.665 587.928 11.470 248.222 19.114
+388.310 517.668 8.873 592.859 11.576 269.392 12.368
+388.468 497.746 10.815 589.478 20.222 291.623 38.246
+388.624 528.097 8.810 599.814 22.713 227.936 48.375
+388.779 496.071 6.953 593.848 14.273 266.379 21.078
+388.936 509.250 12.056 582.338 31.003 273.473 39.827
+389.091 506.322 8.790 589.843 15.399 263.814 17.807
+389.247 503.453 6.501 590.488 14.421 264.258 17.939
+389.404 505.534 8.085 600.834 14.491 258.012 17.940
+389.560 499.615 9.668 591.378 10.343 269.830 17.275
+389.717 513.576 7.452 585.683 20.657 263.858 9.590
+389.874 506.435 6.683 587.326 10.982 270.938 12.513
+390.032 510.924 7.487 585.593 11.011 267.079 18.905
+390.189 514.919 9.525 589.366 11.002 254.420 19.962
+390.346 514.289 8.701 596.903 8.716 260.154 11.520
+390.503 510.562 10.249 592.479 14.556 272.971 6.315
+390.661 496.565 7.876 591.814 10.343 256.719 20.497
+390.819 519.735 7.802 592.638 7.897 261.617 9.798
+390.976 509.337 7.964 587.786 9.828 256.376 16.925
+391.133 504.173 7.722 587.157 8.759 267.513 9.335
+391.290 516.411 6.625 581.061 9.066 266.295 8.894
+391.448 516.924 7.398 585.840 7.920 267.903 6.582
+391.606 518.639 7.260 588.318 7.286 254.419 11.133
+391.763 511.696 8.787 584.773 11.134 259.824 12.962
+391.920 530.727 7.869 588.537 11.361 273.758 16.186
+392.077 524.897 8.579 583.605 9.571 249.267 25.940
+392.234 511.509 9.764 588.286 22.140 229.632 39.463
+392.389 507.705 8.669 579.612 10.524 273.196 34.681
+392.546 518.527 7.018 581.716 8.125 259.832 18.974
+392.702 527.745 7.030 585.367 12.740 254.068 16.446
+392.860 516.827 6.678 582.083 9.702 261.570 9.255
+393.017 516.438 8.617 584.730 14.651 256.265 13.368
+393.173 524.134 6.149 577.597 6.905 262.642 16.368
+393.331 515.411 7.115 580.656 8.573 276.716 21.739
+393.488 529.244 8.898 588.146 10.689 240.527 24.602
+393.644 518.372 9.057 585.371 8.649 250.865 18.896
+393.801 519.443 6.216 574.283 12.315 272.888 17.230
+393.958 521.174 6.151 584.152 7.378 253.368 7.255
+394.116 511.471 6.564 582.071 9.360 254.313 15.558
+394.273 524.194 6.795 574.900 7.887 282.673 5.831
+394.430 515.232 9.383 582.709 13.001 236.356 10.916
+394.588 516.502 14.493 587.257 16.916 252.083 20.750
+394.744 521.025 6.805 578.512 7.155 277.290 7.209
+394.902 514.900 7.414 580.655 9.481 259.512 22.403
+395.059 521.749 8.348 582.946 9.703 249.045 14.147
+395.216 520.177 7.540 585.079 11.674 255.710 22.516
+395.373 518.341 5.973 580.550 8.316 266.337 7.727
+395.531 515.413 6.983 582.205 7.331 252.713 9.765
+395.689 515.104 7.276 583.042 7.422 262.897 12.270
+395.847 511.211 5.867 573.580 6.630 262.729 12.960
+396.004 523.082 6.553 588.135 8.394 243.537 9.269
+396.160 520.130 7.399 582.001 10.129 246.675 14.182
+396.318 515.301 5.914 575.420 7.016 269.386 5.782
+396.477 521.523 6.579 574.904 8.947 273.943 16.414
+396.633 521.575 6.597 583.319 7.527 231.339 9.056
+396.791 512.075 6.307 577.613 10.380 261.943 12.979
+396.949 523.340 6.260 581.026 7.177 265.639 5.751
+397.109 514.513 7.406 572.000 7.362 264.176 13.532
+397.266 520.665 6.663 579.600 7.824 248.181 14.875
+397.422 513.736 6.041 591.916 6.922 244.961 8.376
+397.580 512.097 6.622 571.329 9.373 272.369 13.977
+397.737 519.841 8.264 580.083 12.250 259.883 12.187
+397.894 516.018 6.303 582.190 12.224 237.848 15.880
+398.050 525.460 7.669 582.421 12.941 258.448 11.402
+398.209 516.584 6.284 574.784 7.730 266.794 9.987
+398.367 521.365 6.720 575.477 8.996 266.677 19.681
+398.525 516.353 7.306 574.464 6.491 254.416 15.104
+398.682 513.473 6.463 579.354 9.713 269.764 15.846
+398.838 513.664 5.796 573.193 6.957 253.107 14.896
+398.996 513.776 8.816 576.691 18.940 256.201 29.345
+399.151 522.267 6.090 577.457 7.649 259.042 13.777
+399.308 515.312 5.989 576.444 10.996 251.750 15.926
+399.465 521.043 6.149 575.454 10.855 259.717 17.950
+399.623 518.260 6.557 577.024 8.376 268.097 7.062
+399.780 513.092 8.409 587.430 9.312 250.470 11.652
+399.937 521.170 6.906 585.694 8.019 248.394 14.491
+400.093 518.181 8.091 573.457 16.953 272.424 33.970
+400.248 518.161 5.997 573.444 8.663 260.134 4.915
+400.407 510.241 6.977 579.204 7.324 256.031 10.680
+400.566 508.712 5.923 574.272 8.079 258.470 10.876
+400.723 512.757 6.196 575.592 6.333 259.814 4.670
+400.883 512.137 5.865 579.085 6.606 261.368 8.389
+401.040 521.851 5.923 579.250 7.853 256.593 12.347
+401.199 522.208 6.675 577.692 8.821 260.685 11.931
+401.356 522.242 6.322 575.647 7.303 267.776 6.843
+401.515 516.422 5.666 581.736 6.346 255.987 9.973
+401.674 510.444 6.561 579.237 7.874 256.509 11.115
+401.832 509.334 5.754 576.732 9.247 262.435 5.465
+401.990 511.923 6.418 580.027 7.237 255.144 11.859
+402.148 515.079 6.866 580.620 7.705 249.241 10.642
+402.307 518.140 5.990 581.116 7.491 256.902 8.816
+402.465 518.181 6.018 573.581 7.063 270.179 12.499
+402.624 517.601 7.522 576.595 9.563 256.331 22.030
+402.780 517.396 5.757 581.586 7.080 248.043 3.870
+402.938 515.204 6.054 580.325 7.509 259.310 9.745
+403.097 514.492 5.689 576.183 6.202 258.613 8.315
+403.256 510.804 5.642 574.941 6.164 270.846 3.826
+403.415 515.608 6.852 581.789 11.299 244.398 21.796
+403.572 517.706 6.160 580.648 6.541 246.113 7.869
+403.729 516.517 6.216 574.866 6.435 270.071 5.243
+403.888 519.195 5.859 578.428 6.841 263.830 10.988
+404.046 520.761 5.774 580.444 6.089 252.068 5.720
+404.204 518.027 6.797 575.954 7.069 266.060 10.414
+404.364 513.980 5.704 577.059 6.357 269.200 7.486
+404.522 510.149 6.129 579.580 6.383 251.532 5.203
+404.680 514.321 5.820 577.875 6.274 258.795 8.111
+404.839 515.353 5.631 577.628 6.297 267.738 5.687
+404.998 521.583 6.569 580.586 6.243 251.767 6.576
+405.155 517.515 5.816 580.255 6.347 253.567 4.688
+405.314 516.515 5.790 576.642 6.547 265.815 5.354
+405.472 522.275 5.726 578.366 6.564 259.838 7.064
+405.630 517.762 5.858 578.943 6.361 253.478 5.057
+405.790 509.307 5.582 575.499 6.383 266.114 7.364
+405.948 511.373 7.130 577.555 6.896 258.161 9.544
+406.105 512.033 5.779 580.395 7.600 252.821 8.700
+406.264 515.710 5.927 575.004 6.205 263.348 3.267
+406.423 515.687 5.781 577.480 6.123 264.103 5.181
+406.583 516.676 5.662 577.254 6.131 253.031 4.648
+406.740 517.046 5.887 580.352 6.738 248.790 4.498
+406.899 515.110 5.972 574.493 6.655 263.067 5.764
+407.059 515.461 6.043 573.725 6.829 267.200 7.663
+407.216 514.934 5.880 578.047 6.119 250.102 6.491
+407.374 515.219 5.681 579.850 6.580 252.581 6.650
+407.532 514.632 5.735 574.838 6.259 266.735 4.848
+407.692 512.866 5.699 575.158 6.716 261.447 5.760
+407.850 511.348 5.585 578.501 6.250 252.114 5.452
+408.008 511.793 5.724 577.545 6.883 254.561 6.552
+408.166 516.298 5.995 574.155 6.352 265.575 4.205
+408.325 516.373 5.966 574.921 6.266 264.165 4.490
+408.483 514.123 5.769 577.059 6.160 248.411 4.417
+408.641 515.011 5.671 575.840 6.309 253.794 4.324
+408.801 516.290 5.737 575.308 8.814 270.587 9.223
+408.958 516.612 5.882 574.913 6.746 256.585 5.814
+409.116 513.296 6.068 577.769 7.105 246.395 8.942
+409.274 509.302 5.809 573.417 6.353 261.793 5.923
+409.433 512.993 5.546 572.654 7.055 267.237 3.848
+409.592 514.120 5.630 575.256 6.172 254.882 6.314
+409.750 515.121 5.698 575.652 6.096 252.798 4.064
+409.908 514.441 5.562 571.836 6.620 258.208 4.359
+410.068 514.864 5.831 574.428 6.116 262.022 3.767
+410.227 515.048 5.841 575.664 6.822 253.030 6.132
+410.386 515.260 5.669 571.446 6.401 259.800 3.249
+410.546 513.112 5.987 572.684 7.491 264.198 5.267
+410.705 515.331 5.741 575.906 7.247 254.992 9.539
+410.863 514.263 5.703 574.419 6.655 255.489 4.755
+411.022 513.542 5.537 573.234 6.389 262.474 4.458
+411.181 514.415 5.682 574.152 6.206 260.224 3.734
+411.340 515.064 5.772 574.251 6.393 256.962 4.643
+411.500 514.180 5.623 573.242 6.821 259.929 4.696
+411.659 515.111 5.573 573.632 6.458 261.369 4.187
+411.817 513.761 8.709 574.256 19.355 256.933 3.822
+411.974 513.957 5.834 574.552 6.734 252.589 4.745
+412.132 514.279 5.705 573.605 6.380 259.025 3.782
+412.293 513.922 5.914 572.456 6.285 260.900 6.654
+412.452 515.069 5.856 574.564 6.395 257.099 5.274
+412.611 512.470 6.104 575.255 6.715 253.611 12.944
+412.769 513.154 6.179 573.252 6.595 261.076 7.479
+412.928 515.211 5.724 573.002 6.410 263.020 6.897
+413.086 516.322 5.676 573.920 6.358 258.200 6.219
+413.244 515.333 5.946 573.709 7.009 255.112 4.447
+413.403 513.833 5.832 573.357 6.550 257.461 4.316
+413.562 515.518 5.646 571.773 6.220 264.254 4.241
+413.721 514.645 5.584 572.927 6.563 257.962 9.179
+413.880 512.406 5.801 573.299 6.641 252.769 6.007
+414.039 512.454 6.172 569.553 6.776 271.207 6.807
+414.198 515.754 6.709 572.485 8.499 264.052 11.047
+414.356 516.007 5.748 578.164 6.224 244.690 4.921
+414.515 513.640 5.686 573.401 6.351 257.856 4.676
+414.674 518.676 5.807 570.374 6.671 269.518 4.257
+414.833 516.976 5.738 574.023 6.716 261.305 5.609
+414.992 512.439 6.340 576.710 6.699 248.593 6.605
+415.151 512.324 5.787 574.477 6.701 258.375 7.963
+415.309 513.233 6.336 572.034 7.408 271.433 4.639
+415.468 511.872 6.430 576.420 6.622 250.984 6.065
+415.625 515.078 5.878 573.844 6.198 250.789 4.851
+415.783 518.200 6.099 574.468 7.246 257.317 5.472
+415.942 516.542 5.880 573.014 6.918 265.393 8.658
+416.100 511.795 7.349 570.990 6.989 263.033 6.514
+416.259 518.458 6.295 573.789 6.731 258.550 10.189
+416.418 513.424 5.641 575.168 8.343 265.045 6.617
+416.577 513.664 5.759 574.721 7.403 259.550 6.864
+416.736 512.686 6.204 573.877 6.877 256.885 5.760
+416.896 514.076 5.799 573.218 6.513 258.138 5.560
+417.054 513.660 5.547 573.772 6.217 256.851 3.805
+417.213 511.706 6.096 574.557 7.572 249.618 10.056
+417.371 515.117 6.195 572.085 7.410 262.796 5.948
+417.530 515.231 6.831 572.260 6.517 261.117 6.037
+417.688 519.872 6.211 578.302 7.350 250.751 7.552
+417.846 524.318 7.379 575.203 9.552 251.987 12.785
+418.003 516.953 7.043 571.992 7.424 271.439 8.276
+418.162 524.989 5.643 572.629 8.642 253.854 8.194
+418.319 511.569 7.881 578.776 8.648 246.368 6.767
+418.476 510.015 6.474 572.577 8.205 254.013 11.040
+418.634 509.450 5.815 568.895 6.216 268.940 5.807
+418.793 507.534 5.948 573.089 6.864 258.169 5.788
+418.951 512.485 6.259 575.581 6.205 249.411 8.021
+419.108 516.314 5.740 574.495 6.251 254.664 5.817
+419.268 515.393 6.021 573.255 6.106 264.636 5.048
+419.427 517.634 6.292 571.402 7.138 265.096 4.908
+419.586 518.426 5.887 576.954 6.980 251.400 9.434
+419.743 515.434 6.565 575.739 7.106 248.534 6.867
+419.900 513.514 5.763 569.617 6.548 269.535 7.369
+420.059 515.605 5.966 571.516 6.206 263.555 3.661
+420.218 513.746 5.963 574.645 6.650 245.825 4.907
+420.377 515.357 6.347 573.876 7.245 249.348 8.797
+420.535 514.033 7.240 570.258 9.122 272.313 12.171
+420.693 509.280 7.003 572.512 8.342 253.793 8.729
+420.851 509.402 6.296 573.835 6.640 254.407 6.202
+421.008 510.144 6.011 573.788 7.067 250.874 5.447
+421.167 516.371 5.929 572.697 6.591 262.138 5.109
+421.326 517.693 5.516 571.177 6.267 267.991 3.800
+421.485 515.517 5.914 571.251 6.191 253.059 4.973
+421.644 515.095 5.631 574.202 6.188 254.690 4.995
+421.802 519.221 5.676 573.142 6.425 257.336 5.752
+421.960 517.462 5.849 572.711 6.824 261.963 6.543
+422.119 508.684 5.680 570.267 6.782 260.579 10.399
+422.276 510.686 6.134 574.132 6.320 250.665 7.621
+422.434 517.566 5.841 571.601 6.384 258.336 5.495
+422.593 517.175 5.602 574.196 6.784 256.643 5.964
+422.751 512.821 5.588 573.002 6.324 253.496 4.898
+422.909 518.208 5.794 572.740 6.378 261.545 8.758
+423.067 518.242 5.691 573.887 6.421 253.915 5.698
+423.225 514.422 6.188 574.188 7.158 250.759 9.924
+423.384 514.544 5.810 570.991 7.430 260.337 4.928
+423.543 518.225 5.629 570.189 7.396 265.793 5.277
+423.702 514.712 6.138 575.011 7.214 249.687 11.672
+423.859 512.887 5.630 574.280 6.433 254.326 4.632
+424.017 516.368 5.673 571.172 6.222 263.093 5.116
+424.177 512.543 5.805 573.581 6.370 256.940 5.021
+424.336 512.065 5.687 574.715 6.302 248.369 8.737
+424.493 515.430 5.764 573.547 7.130 253.683 9.708
+424.651 519.074 5.751 570.545 6.403 267.556 6.088
+424.809 516.220 5.752 570.575 6.309 262.055 7.243
+424.967 518.572 6.596 576.735 7.051 245.200 8.849
+425.125 515.385 7.035 574.757 6.712 245.762 11.349
+425.283 510.453 5.905 569.207 6.520 266.147 6.677
+425.441 509.714 6.644 570.452 7.074 260.671 5.893
+425.598 510.497 5.806 573.694 6.345 248.576 5.213
+425.756 513.385 6.132 574.556 6.616 250.695 4.868
+425.915 514.573 5.623 571.475 6.334 261.957 4.867
+426.076 512.675 5.800 571.364 6.089 262.439 4.215
+426.234 514.536 5.492 572.303 6.771 251.204 6.492
+426.392 517.815 5.688 574.063 6.203 250.462 6.605
+426.550 513.428 5.825 572.750 6.482 258.544 5.954
+426.709 515.294 5.868 571.787 7.168 262.275 4.139
+426.868 513.663 7.041 573.207 6.513 252.192 3.435
+427.025 514.366 5.770 571.552 6.203 251.711 7.335
+427.184 515.993 5.790 570.785 6.558 261.647 4.914
+427.343 515.469 5.725 571.677 8.070 260.796 5.043
+427.502 512.044 6.052 571.206 6.926 256.487 6.571
+427.660 509.520 6.044 572.882 6.800 252.524 5.360
+427.819 513.125 6.234 571.138 6.968 259.675 11.576
+427.978 512.501 6.751 569.161 6.825 260.616 5.402
+428.136 514.155 6.105 570.651 6.306 254.906 5.865
+428.295 514.461 6.072 571.676 6.713 253.689 4.331
+428.453 515.484 5.694 572.036 6.794 259.936 8.230
+428.611 514.344 5.788 570.840 7.057 257.929 8.085
+428.769 514.043 5.875 572.868 6.398 253.259 5.262
+428.928 511.480 5.879 573.898 6.574 248.382 6.902
+429.085 512.204 5.734 567.719 6.146 261.813 5.408
+429.245 512.022 5.724 564.787 6.696 273.198 4.971
+429.403 516.560 5.544 572.267 6.520 251.622 6.208
+429.561 517.775 5.635 572.082 6.476 254.896 4.856
+429.720 509.937 5.845 569.840 6.477 255.268 6.566
+429.878 513.569 5.838 570.288 6.209 256.532 6.042
+430.037 512.775 5.636 570.832 6.149 259.195 6.759
+430.196 510.957 5.505 570.268 6.515 255.512 4.655
+430.354 514.939 5.505 571.722 6.597 253.945 3.739
+430.513 515.529 5.458 570.447 6.619 261.679 3.832
+430.672 513.245 5.660 569.654 6.213 263.056 5.377
+430.831 515.092 5.580 572.786 6.530 248.080 5.629
+430.989 512.760 5.575 572.887 6.105 257.560 4.704
+431.148 512.877 5.591 566.828 6.576 268.535 4.486
+431.308 513.868 6.661 570.538 7.103 263.195 8.602
+431.466 515.398 6.652 573.355 9.587 249.061 16.999
+431.623 513.674 5.981 571.833 7.800 255.080 13.830
+431.781 511.756 5.720 568.868 7.778 270.200 4.713
+431.940 512.287 5.889 570.828 6.208 261.462 7.095
+432.099 514.872 6.509 575.128 8.040 248.444 7.005
+432.256 512.938 5.908 572.961 6.816 253.724 5.667
+432.415 516.069 5.698 569.549 7.589 266.107 5.582
+432.575 518.480 6.307 571.005 7.502 262.101 6.848
+432.733 513.264 6.039 574.810 6.632 248.821 8.184
+432.890 515.082 6.160 572.608 7.968 252.178 6.686
+433.049 513.420 6.007 572.026 6.922 263.221 8.726
+433.207 513.704 6.065 572.620 6.218 263.352 4.537
+433.366 512.397 6.351 572.976 7.191 254.123 8.813
+433.524 509.974 6.663 572.899 7.596 250.811 5.074
+433.683 513.499 6.194 571.699 6.735 258.438 5.260
+433.843 516.145 5.986 572.397 7.089 258.734 7.329
+434.001 514.621 6.063 572.354 7.784 253.937 9.105
+434.160 514.086 6.899 569.883 6.919 258.409 7.113
+434.319 517.030 6.370 571.998 6.306 256.254 8.283
+434.477 514.900 6.723 571.610 6.703 254.372 9.693
+434.635 516.009 5.763 569.186 7.223 257.863 6.507
+434.793 515.020 6.194 569.351 6.618 257.038 7.739
+434.951 514.050 5.652 568.563 6.783 254.200 5.663
+435.110 513.600 5.636 567.375 6.020 257.982 4.281
+435.270 514.006 5.960 566.773 6.312 258.239 8.802
+435.428 513.380 5.715 567.177 6.404 253.582 7.611
+435.586 512.523 6.060 571.101 6.988 250.525 4.669
+435.744 511.285 5.836 568.951 7.004 257.105 8.624
+435.902 516.962 5.814 567.859 7.563 260.631 7.108
+436.060 517.179 6.159 568.738 6.308 248.816 5.775
+436.218 515.701 5.994 569.387 6.492 254.428 5.214
+436.378 516.187 5.717 565.393 6.513 264.154 6.780
+436.537 518.861 5.804 566.134 6.227 262.901 3.824
+436.696 515.878 5.496 568.881 6.442 256.129 6.360
+436.855 514.428 6.095 568.608 6.399 248.631 5.827
+437.013 511.654 5.649 567.256 6.298 254.256 4.545
+437.171 512.116 5.499 565.392 6.332 259.922 3.602
+437.331 513.021 5.820 566.574 6.283 256.109 6.013
+437.490 512.620 5.766 569.765 6.472 250.561 7.963
+437.647 515.616 5.671 568.067 6.773 249.785 5.670
+437.807 515.256 6.064 566.520 6.048 262.667 3.826
+437.966 518.582 5.766 565.505 6.131 263.846 5.776
+438.125 518.915 5.563 571.735 6.728 248.348 7.133
+438.282 517.919 5.795 569.007 6.558 250.233 5.157
+438.442 514.489 5.658 566.550 6.393 265.362 4.224
+438.601 514.174 5.533 565.545 6.654 265.613 6.709
+438.759 512.201 5.869 571.475 6.098 247.966 4.138
+438.917 511.762 5.577 570.484 6.478 250.449 5.986
+439.075 515.447 5.656 568.454 6.244 256.694 3.438
+439.235 514.994 5.805 568.244 6.127 261.957 8.227
+439.393 514.840 5.971 568.742 6.253 257.069 5.705
+439.552 517.558 5.698 569.447 6.435 253.160 6.504
+439.710 516.355 5.952 570.584 6.562 254.801 5.750
+439.869 514.033 5.733 570.195 7.613 258.168 9.120
+440.028 512.410 5.900 567.362 6.757 264.371 7.844
+440.185 510.314 8.026 568.783 9.352 252.213 13.087
+440.342 508.193 5.810 573.117 6.971 244.942 7.033
+440.499 511.422 5.869 569.311 6.605 257.609 7.175
+440.658 516.024 5.596 565.703 6.554 270.816 4.808
+440.817 513.600 6.001 570.027 6.324 258.528 5.435
+440.976 516.536 6.284 569.980 6.305 256.265 4.745
+441.136 516.725 6.189 569.429 6.687 255.432 5.014
+441.294 516.647 5.759 568.884 6.257 254.564 3.825
+441.452 515.236 5.630 569.958 6.398 258.035 5.371
+441.612 512.322 5.678 567.819 6.237 258.020 4.229
+441.770 514.823 5.799 571.378 6.685 253.470 3.966
+441.928 515.338 5.377 572.933 6.512 250.854 4.354
+442.088 515.773 5.705 569.829 6.391 259.988 6.169
+442.247 514.487 6.151 565.798 6.334 270.679 5.007
+442.407 516.294 5.560 569.438 6.550 257.226 6.136
+442.565 515.083 5.638 574.784 6.341 244.292 4.268
+442.724 516.710 5.919 568.967 6.620 258.772 8.820
+442.882 519.627 5.488 568.689 6.175 262.447 5.141
+443.041 516.796 5.807 570.376 6.923 255.134 6.722
+443.199 517.138 5.608 569.743 6.382 253.431 4.642
+443.357 521.731 5.604 570.487 6.591 257.124 5.692
+443.516 519.587 5.545 569.134 6.374 262.261 5.242
+443.675 516.805 5.675 570.681 6.378 257.302 6.380
+443.833 515.278 6.570 571.606 6.566 244.913 7.516
+443.990 516.442 6.214 568.686 6.714 258.679 5.771
+444.149 515.384 5.709 566.816 6.588 269.516 5.531
+444.308 517.473 5.777 572.118 6.617 246.145 5.698
+444.466 517.394 5.659 572.981 6.187 245.071 4.849
+444.625 516.714 5.635 564.689 6.479 271.060 6.031
+444.785 514.957 5.571 565.747 6.316 271.370 4.309
+444.943 515.049 5.778 572.187 6.173 247.303 3.889
+445.102 514.090 5.521 574.471 6.232 238.523 3.633
+445.260 516.750 5.609 568.364 6.310 265.285 5.102
+445.420 518.477 5.835 566.283 6.465 273.092 3.435
+445.579 519.614 5.925 574.672 5.989 240.280 7.033
+445.735 522.816 5.780 572.976 6.297 239.832 6.220
+445.894 516.558 6.041 566.649 6.785 264.268 8.411
+446.053 516.205 5.603 564.476 6.224 278.762 5.781
+446.212 512.522 5.547 569.054 6.027 255.567 8.217
+446.370 509.135 5.526 573.840 6.113 238.045 4.233
+446.528 514.791 6.263 570.348 6.422 256.080 6.468
+446.686 518.097 5.729 565.893 6.395 275.390 5.931
+446.845 516.531 5.490 569.408 6.207 260.203 6.435
+447.004 515.485 5.698 575.964 6.346 234.612 6.443
+447.161 515.444 5.630 569.709 6.477 256.776 3.843
+447.321 519.594 6.041 563.397 8.771 276.197 7.913
+447.478 516.746 5.748 570.744 7.009 256.372 7.119
+447.636 514.207 6.021 574.877 6.469 239.123 9.309
+447.793 516.342 5.560 569.618 6.351 255.061 6.988
+447.953 521.163 5.693 568.436 6.621 270.330 4.230
+448.111 517.911 5.771 570.984 6.685 252.203 6.994
+448.269 512.649 5.606 571.229 6.469 247.292 7.721
+448.427 511.806 5.614 566.142 6.202 262.042 5.692
+448.586 512.508 5.792 567.981 6.735 265.840 5.551
+448.745 511.005 5.620 571.629 6.416 253.618 5.380
+448.903 512.920 6.576 571.866 6.873 249.026 6.766
+449.061 518.499 5.742 569.818 7.020 259.290 3.916
+449.220 518.875 5.868 569.638 6.408 265.312 5.506
+449.379 515.688 5.731 568.446 6.136 258.973 4.999
+449.538 519.016 5.787 570.804 6.468 245.819 4.479
+449.696 520.050 5.890 571.298 6.647 254.048 11.859
+449.854 513.100 7.594 567.893 8.722 255.780 6.549
+450.013 514.671 6.144 567.468 7.644 260.717 5.859
+450.173 513.946 5.829 569.034 6.814 257.917 7.534
+450.331 513.139 5.615 572.020 6.448 250.679 5.223
+450.489 512.841 6.190 569.010 6.279 258.616 5.455
+450.648 514.558 5.853 571.450 6.456 256.616 4.868
+450.806 516.245 5.821 571.244 6.433 250.656 5.154
+450.965 513.982 5.585 569.342 6.025 256.806 5.525
+451.124 522.539 5.589 569.333 6.409 261.328 3.770
+451.284 517.095 6.219 570.743 7.065 261.323 9.759
+451.442 515.921 6.542 575.127 6.601 248.153 5.295
+451.600 517.499 6.296 570.721 7.739 252.421 6.014
+451.759 514.505 5.782 565.157 7.018 271.354 5.127
+451.918 513.965 5.728 570.621 6.403 259.083 9.423
+452.076 515.119 6.233 574.206 6.444 244.790 4.663
+452.236 513.041 5.438 567.402 6.541 260.807 6.401
+452.394 516.600 5.492 570.144 6.154 257.188 7.101
+452.552 517.516 6.622 572.211 7.464 248.511 8.586
+452.708 515.575 5.501 572.762 6.637 251.525 5.972
+452.866 519.315 6.347 570.377 6.956 254.995 6.917
+453.025 515.353 6.537 568.343 7.610 263.149 8.022
+453.183 515.213 5.711 569.473 6.633 267.611 8.299
+453.341 515.122 6.233 570.704 6.651 252.436 4.970
+453.499 510.851 5.943 574.037 6.570 242.834 8.005
+453.655 512.408 6.020 569.770 6.120 260.068 6.707
+453.814 517.524 6.095 569.387 6.893 269.870 4.273
+453.973 513.395 6.413 569.083 6.379 256.268 7.578
+454.131 514.504 5.807 574.720 7.003 241.822 4.791
+454.289 519.995 5.571 572.987 6.661 252.818 4.419
+454.447 519.399 5.614 567.559 6.540 268.428 5.302
+454.607 515.454 6.757 568.515 6.759 265.984 7.299
+454.764 514.644 5.520 573.105 6.243 247.869 4.996
+454.922 511.036 5.607 572.621 6.941 246.908 5.793
+455.081 512.430 5.611 567.906 6.377 265.369 6.332
+455.239 515.344 5.647 567.589 6.168 267.273 8.536
+455.397 510.673 5.755 573.385 6.994 244.302 5.994
+455.554 511.126 5.753 571.243 6.455 243.363 6.323
+455.713 513.131 5.706 570.302 6.225 265.033 4.876
+455.872 513.751 5.809 566.903 6.701 270.380 5.587
+456.031 512.967 5.703 573.149 6.279 251.163 4.929
+456.189 513.559 5.608 573.651 6.644 246.561 4.660
+456.348 516.645 5.587 570.886 6.511 258.425 3.638
+456.507 518.646 6.006 567.348 6.681 267.924 5.451
+456.666 513.146 5.635 570.153 6.310 259.369 6.701
+456.824 508.811 5.773 570.161 6.194 249.283 3.744
+456.982 506.838 5.638 570.801 6.688 255.852 4.806
+457.140 504.158 5.869 567.068 7.002 258.738 6.792
+457.298 506.851 6.253 570.790 6.262 255.317 4.053
+457.456 506.498 6.327 569.658 7.842 253.343 4.626
+457.614 509.705 6.364 572.046 6.300 251.383 6.267
+457.773 510.757 6.138 570.090 6.805 263.913 5.304
+457.932 511.837 6.036 565.820 6.570 266.719 4.900
+458.090 511.508 5.751 570.788 6.729 253.377 5.171
+458.248 509.835 6.585 570.877 7.138 251.453 4.803
+458.406 507.868 6.562 568.428 6.755 258.174 5.666
+458.564 506.738 6.238 567.524 7.479 259.821 6.521
+458.722 503.727 6.074 568.495 6.752 258.198 5.485
+458.880 500.757 5.967 573.125 7.388 249.322 6.509
+459.038 498.987 5.830 569.991 8.075 254.293 9.186
+459.196 500.399 6.169 565.969 6.966 264.632 4.522
+459.355 501.554 6.304 568.569 7.354 255.906 6.429
+459.513 504.915 5.997 572.035 6.593 243.949 6.660
+459.670 506.189 6.317 568.010 7.250 260.619 7.151
+459.829 509.181 6.402 566.970 7.297 268.216 5.489
+459.988 510.101 5.597 569.679 6.275 255.612 6.256
+460.145 503.171 5.874 573.006 6.509 243.456 5.383
+460.304 501.311 5.513 567.640 6.898 259.104 6.559
+460.462 498.383 5.614 566.516 6.206 270.921 4.717
+460.621 495.943 5.753 568.335 6.464 252.749 6.987
+460.778 492.399 5.610 569.863 7.566 248.077 6.581
+460.936 505.344 6.025 569.318 6.447 256.470 7.272
+461.095 502.293 5.504 571.543 6.654 263.494 5.566
+461.253 503.002 5.439 565.665 6.446 261.474 6.646
+461.410 503.310 5.338 567.266 6.388 258.664 5.931
+461.569 504.873 5.824 568.462 6.476 261.886 4.137
+461.728 498.878 5.599 568.674 6.250 257.148 4.350
+461.886 498.128 6.363 567.906 6.320 257.941 5.595
+462.045 498.981 5.747 568.869 6.775 257.009 4.454
+462.204 494.849 6.275 567.468 6.483 254.760 7.344
+462.362 497.828 5.629 570.074 6.606 253.027 5.693
+462.521 502.358 5.936 569.060 7.036 261.220 4.024
+462.680 503.413 6.011 565.110 6.388 271.082 3.846
+462.839 497.624 8.359 573.961 9.958 253.020 16.980
+462.996 496.276 9.460 575.149 10.241 251.860 28.858
+463.152 499.792 5.987 567.471 8.935 268.708 5.704
+463.311 497.207 5.928 567.734 6.899 266.687 7.001
+463.468 492.182 5.916 572.517 6.135 242.886 4.547
+463.626 498.141 5.355 569.645 7.181 252.588 3.778
+463.784 497.781 5.628 566.046 6.359 270.665 3.972
+463.943 498.127 5.553 569.420 8.239 264.616 5.140
+464.101 495.501 5.477 573.274 6.428 252.916 5.251
+464.259 498.095 6.692 570.472 6.922 248.669 5.270
+464.418 498.840 5.520 567.554 6.926 265.136 7.638
+464.576 508.728 6.836 569.585 7.881 266.071 6.062
+464.734 496.657 5.757 570.695 6.906 247.500 9.965
+464.891 497.926 6.017 571.117 7.177 251.905 16.539
+465.049 497.529 5.774 566.091 6.625 269.779 6.817
+465.208 496.255 6.189 567.341 6.460 268.317 5.866
+465.365 493.632 6.465 571.583 6.854 248.473 7.071
+465.522 495.906 6.511 573.225 7.712 246.344 5.066
+465.680 498.419 6.010 566.422 6.904 270.343 7.670
+465.839 496.974 5.642 567.954 6.918 262.953 7.141
+465.997 488.009 5.835 570.539 6.299 248.519 6.695
+466.154 495.980 5.913 569.495 7.282 252.305 5.132
+466.313 495.219 6.432 566.084 6.186 272.233 5.900
+466.472 489.592 6.385 567.800 6.837 259.322 8.579
+466.629 498.145 6.172 572.418 6.855 251.393 8.439
+466.787 503.381 5.794 572.524 7.222 249.803 4.932
+466.946 504.563 5.811 567.405 7.025 265.888 5.946
+467.105 497.115 6.046 566.714 6.500 266.938 5.925
+467.263 491.891 5.734 571.047 6.664 250.859 4.681
+467.420 492.608 5.965 573.390 6.841 245.208 4.852
+467.577 489.326 5.329 568.693 7.111 263.602 6.673
+467.737 492.253 6.942 566.967 6.395 267.856 4.720
+467.895 493.102 7.155 567.929 6.337 255.968 4.718
+468.054 493.901 6.708 570.139 7.451 245.589 8.673
+468.211 502.649 5.583 570.261 6.916 265.135 5.550
+468.371 500.886 5.793 565.742 6.485 268.681 5.624
+468.529 501.668 6.561 570.917 7.754 251.576 4.621
+468.687 496.526 5.744 573.439 6.908 247.995 7.586
+468.845 500.225 5.985 565.934 7.446 268.249 4.796
+469.004 497.892 6.726 565.079 6.683 271.132 5.303
+469.163 490.318 6.290 571.020 6.905 250.971 6.760
+469.320 491.623 6.006 567.260 6.469 256.949 4.762
+469.479 496.596 5.926 569.082 7.694 258.329 4.336
+469.637 496.946 5.596 569.900 7.184 254.583 4.408
+469.795 500.179 5.694 568.579 6.630 255.325 4.502
+469.954 498.581 6.488 567.145 6.592 264.543 4.508
+470.113 508.875 6.238 567.601 6.692 262.525 5.320
+470.271 502.838 5.637 571.036 6.277 252.685 3.853
+470.429 498.548 5.628 569.380 6.439 254.906 3.967
+470.588 499.585 6.254 568.303 6.492 268.759 5.495
+470.747 495.525 5.850 570.063 6.559 260.517 4.503
+470.904 491.815 6.160 573.260 6.511 242.525 5.201
+471.063 494.558 5.961 568.522 7.249 255.895 8.177
+471.221 495.905 6.169 566.995 7.031 271.568 5.364
+471.381 499.109 5.431 570.919 6.596 254.095 4.898
+471.540 496.331 5.849 568.619 7.043 258.780 7.025
+471.698 500.693 5.682 568.536 6.609 260.237 5.022
+471.856 510.726 5.769 570.615 6.912 256.202 4.861
+472.015 498.027 6.038 568.406 6.631 259.822 6.125
+472.173 496.030 5.456 567.244 6.799 259.438 5.355
+472.332 497.970 6.297 571.422 6.772 255.884 3.687
+472.491 491.549 5.796 570.204 7.105 260.758 8.174
+472.648 495.285 5.920 568.082 7.174 251.197 8.560
+472.806 497.572 5.508 567.240 6.480 264.412 4.745
+472.964 500.005 5.690 567.272 7.005 262.124 4.049
+473.122 496.160 6.012 572.752 6.833 247.321 7.519
+473.280 494.121 5.761 568.167 6.186 259.783 3.759
+473.440 503.891 6.128 567.401 6.871 266.547 6.388
+473.599 502.018 6.618 569.904 6.797 259.395 5.789
+473.757 497.100 5.759 568.989 7.094 254.603 5.226
+473.915 499.431 5.580 567.669 7.128 261.286 5.932
+474.074 500.384 6.149 568.886 7.007 258.102 7.719
+474.232 495.783 8.817 571.928 6.536 251.021 5.450
+474.390 496.367 5.855 565.399 6.797 263.980 5.348
+474.549 496.153 7.087 567.734 6.610 268.549 4.537
+474.708 493.751 6.326 570.277 7.174 257.255 6.379
+474.865 491.497 5.446 571.462 7.234 249.402 4.612
+475.024 501.975 5.785 567.114 7.099 261.004 7.151
+475.183 503.469 6.636 566.421 6.630 267.630 5.874
+475.340 491.814 5.856 568.854 6.387 257.126 3.514
+475.499 492.028 6.699 574.068 6.834 239.031 7.824
+475.656 499.720 5.731 567.970 6.567 259.090 6.264
+475.816 493.797 5.722 562.129 6.656 282.510 4.304
+475.974 492.258 6.280 568.681 8.762 256.065 14.135
+476.131 503.402 5.720 572.446 7.225 249.010 10.937
+476.290 503.254 5.675 569.874 6.974 257.460 6.652
+476.448 501.192 6.025 569.418 7.971 263.654 7.400
+476.607 500.271 5.768 565.514 6.979 268.086 4.399
+476.765 494.102 5.746 569.655 6.131 256.390 3.892
+476.923 490.211 5.552 573.716 7.071 248.303 5.044
+477.082 490.482 6.637 568.937 7.149 266.603 7.680
+477.241 496.714 5.821 562.809 6.676 266.786 8.633
+477.399 489.017 7.116 567.248 7.247 259.297 9.723
+477.556 496.090 5.520 567.672 6.303 247.162 12.931
+477.714 503.560 5.472 569.476 6.339 257.611 3.595
+477.873 510.865 5.679 566.184 6.195 264.156 4.545
+478.033 501.118 5.760 564.521 7.230 268.921 6.268
+478.191 497.651 5.872 566.975 6.242 245.989 5.867
+478.349 494.046 5.536 569.839 6.617 244.599 6.002
+478.507 496.600 6.197 562.808 6.664 266.416 6.701
+478.666 494.956 5.942 564.388 6.658 267.004 6.530
+478.824 492.119 6.069 565.623 7.612 252.920 4.151
+478.982 496.691 6.311 569.016 6.965 254.419 6.012
+479.140 501.776 5.551 565.060 6.342 268.434 4.832
+479.299 499.077 5.633 565.900 7.077 265.784 5.078
+479.457 499.680 5.716 568.389 6.213 251.537 4.048
+479.615 498.896 5.813 569.133 6.422 256.535 4.448
+479.774 500.228 6.052 565.641 7.524 268.365 7.058
+479.932 497.032 6.228 568.926 6.989 256.863 4.350
+480.090 493.900 5.836 571.839 6.748 243.768 10.749
+480.248 499.239 5.535 566.608 6.805 261.387 6.242
+480.407 495.542 5.905 564.236 6.539 268.463 7.226
+480.565 495.545 5.971 569.502 6.827 253.674 7.363
+480.722 498.025 5.446 570.995 6.622 249.826 3.847
+480.880 499.770 5.604 567.030 6.190 259.698 4.002
+481.039 498.247 5.609 563.630 6.608 268.697 5.051
+481.198 498.922 5.648 567.386 6.655 257.676 4.881
+481.355 501.249 5.729 568.833 6.850 246.996 3.886
+481.515 498.592 6.263 568.018 6.502 263.109 5.783
+481.674 503.535 5.638 566.330 6.946 266.451 8.292
+481.832 498.485 6.502 569.013 7.742 251.154 10.097
+481.989 496.684 6.330 569.710 6.849 251.051 5.903
+482.148 503.056 5.845 564.917 7.051 269.270 8.128
+482.306 497.540 5.651 567.439 6.633 266.472 8.412
+482.463 494.885 5.594 570.194 6.469 248.784 4.131
+482.621 499.678 5.454 569.632 6.779 254.387 4.115
+482.779 499.436 5.447 566.456 6.822 272.263 4.330
+482.938 498.804 5.598 569.454 6.744 258.092 6.653
+483.095 494.198 5.673 571.914 6.870 243.930 6.824
+483.253 498.311 7.667 566.879 6.289 260.979 4.911
+483.412 502.013 6.711 567.248 6.700 268.769 6.607
+483.571 503.660 5.642 572.032 6.580 256.007 7.103
+483.729 501.166 5.815 569.940 6.787 250.210 8.460
+483.886 501.011 5.949 569.509 7.223 261.432 6.288
+484.045 496.810 5.788 566.825 6.373 265.564 5.075
+484.203 493.798 5.521 569.708 6.422 254.475 4.106
+484.362 495.968 6.614 570.017 6.727 253.744 5.055
+484.520 498.599 5.788 568.090 6.738 262.557 3.854
+484.679 496.376 5.817 568.341 6.845 259.515 4.836
+484.837 497.683 5.610 568.933 6.830 254.385 5.558
+484.996 496.506 6.121 568.409 6.685 259.323 5.475
+485.155 503.885 5.988 569.434 6.721 259.903 5.399
+485.314 500.968 5.496 568.154 6.897 250.519 9.198
+485.470 501.829 5.764 568.011 7.629 255.525 8.073
+485.628 499.108 5.746 567.490 6.608 262.425 7.784
+485.785 497.231 5.695 566.694 6.663 261.254 5.347
+485.943 493.782 5.480 569.017 6.188 255.622 5.082
+486.101 497.427 5.982 570.110 6.500 252.176 4.309
+486.259 497.134 5.464 564.041 7.607 263.191 7.382
+486.416 494.211 5.690 570.020 6.449 258.931 7.099
+486.573 498.692 5.728 570.010 6.487 248.559 5.633
+486.731 503.236 5.608 569.230 6.977 253.225 5.590
+486.890 500.812 5.827 565.922 6.737 273.852 5.115
+487.049 501.778 5.607 567.879 6.289 264.178 3.868
+487.208 494.757 5.771 572.508 6.438 243.051 4.108
+487.366 503.457 5.823 566.795 7.309 258.430 5.189
+487.526 500.104 5.857 568.558 7.612 271.664 7.729
+487.683 491.281 6.290 570.955 6.932 252.946 7.438
+487.841 490.912 7.914 569.079 6.771 255.049 6.812
+487.999 500.609 5.738 567.470 6.298 261.980 5.423
+488.157 499.546 6.081 569.214 6.921 261.069 4.348
+488.316 500.275 5.540 566.462 7.172 256.050 5.533
+488.475 495.862 6.221 566.874 7.541 259.780 10.682
+488.632 496.718 6.122 569.508 7.057 257.347 7.060
+488.790 497.447 6.601 570.665 7.159 254.113 6.541
+488.948 496.334 6.276 564.676 6.405 260.441 9.448
+489.107 501.043 6.386 567.256 7.119 266.654 6.895
+489.265 498.050 6.465 572.262 7.270 253.726 8.998
+489.422 494.560 6.693 572.142 6.570 246.527 7.344
+489.580 501.885 6.550 566.031 7.971 266.965 7.645
+489.739 498.768 6.125 569.000 6.753 263.329 4.734
+489.897 496.117 6.176 568.990 6.953 252.253 4.337
+490.055 497.771 6.211 569.029 6.332 253.542 5.151
+490.213 499.277 5.461 569.690 6.903 259.815 5.595
+490.372 499.342 6.273 567.166 6.576 258.388 5.147
+490.531 495.873 5.648 567.501 6.617 258.253 7.194
+490.689 496.638 6.218 566.705 6.722 257.512 4.453
+490.847 497.746 5.610 567.827 6.375 260.785 6.426
+491.005 497.347 6.028 569.168 6.564 253.587 5.571
+491.164 498.663 5.650 565.631 6.317 262.975 6.118
+491.323 499.316 5.598 568.326 6.289 259.169 5.868
+491.481 499.263 5.494 571.013 6.457 253.941 4.893
+491.640 498.262 5.841 568.160 6.349 258.509 6.102
+491.798 502.592 5.666 567.631 6.405 262.485 3.908
+491.957 497.855 5.704 568.776 6.234 258.434 4.178
+492.115 495.818 5.801 569.457 6.202 252.594 6.248
+492.274 501.008 5.633 569.494 6.394 255.845 6.762
+492.433 497.600 5.457 568.175 6.364 272.408 6.141
+492.591 497.506 6.499 568.551 6.390 263.974 10.719
+492.749 505.005 6.015 577.105 6.964 232.409 20.630
+492.906 498.930 6.951 570.651 6.665 250.784 13.076
+493.064 498.379 5.944 562.256 7.161 280.817 8.706
+493.222 496.273 5.772 567.042 6.180 262.328 6.489
+493.380 497.672 5.959 572.040 6.609 244.443 5.050
+493.538 501.096 5.478 566.910 6.212 261.084 5.550
+493.698 503.981 5.796 566.549 6.392 270.390 6.187
+493.856 499.379 5.732 571.755 7.410 247.253 5.744
+494.013 495.853 5.455 568.857 6.218 251.252 4.131
+494.172 501.468 5.444 565.358 6.275 267.512 5.937
+494.330 501.054 5.696 568.143 6.970 261.005 7.752
+494.488 497.000 5.994 572.611 7.247 245.350 7.366
+494.645 494.090 6.190 566.626 7.231 259.433 6.472
+494.804 501.790 5.822 566.476 7.120 271.204 6.704
+494.962 503.257 6.122 570.434 7.167 252.162 7.656
+495.119 503.372 5.790 570.884 7.770 252.251 5.033
+495.278 499.673 5.505 567.488 6.647 270.772 5.292
+495.437 498.096 5.527 570.924 6.145 261.147 4.556
+495.595 489.850 6.084 572.529 6.328 244.941 4.365
+495.754 497.178 5.606 563.755 6.280 259.549 9.999
+495.912 496.821 6.028 564.797 7.463 265.515 5.358
+496.071 487.278 7.018 570.418 7.114 257.395 8.503
+496.228 498.302 6.888 569.294 6.313 248.863 6.683
+496.385 507.303 6.018 566.743 6.811 262.998 6.163
+496.545 499.903 5.562 567.307 6.394 268.060 4.791
+496.703 496.769 6.336 571.063 6.560 250.540 4.104
+496.861 490.557 5.567 569.140 6.499 244.025 4.688
+497.019 498.715 5.480 565.851 6.163 268.790 6.937
+497.178 502.437 5.589 566.768 7.238 266.007 5.512
+497.337 498.194 6.870 569.317 6.757 246.730 9.464
+497.493 495.122 6.059 569.743 7.226 250.197 6.886
+497.651 502.321 6.846 565.157 6.735 264.852 9.140
+497.808 499.953 6.327 566.671 6.919 264.288 7.503
+497.966 496.289 6.414 570.256 7.035 252.262 6.593
+498.123 493.562 6.629 572.672 7.228 251.822 6.979
+498.280 499.805 5.898 567.016 6.551 254.238 12.078
+498.438 500.778 6.002 566.120 7.803 262.032 7.652
+498.596 503.327 7.360 568.941 6.573 259.870 8.821
+498.753 502.103 8.617 570.549 7.601 254.828 5.647
+498.911 499.441 7.194 569.845 6.491 253.638 5.712
+499.069 496.624 5.690 567.708 6.597 259.596 7.323
+499.227 496.126 6.354 567.227 7.208 267.625 5.588
+499.385 494.751 5.812 569.662 7.853 252.806 6.965
+499.544 492.387 8.276 567.426 7.395 252.668 7.574
+499.701 510.153 6.752 565.474 6.299 268.526 6.021
+499.860 509.521 6.218 569.984 9.061 262.165 8.736
+500.017 502.675 7.021 573.929 6.548 245.861 7.643
+500.174 499.526 6.379 569.989 6.356 255.188 5.578
+500.334 498.935 5.541 565.289 6.504 266.541 3.924
+500.492 495.769 6.693 566.962 6.728 263.025 7.656
+500.650 492.877 6.593 570.129 6.469 247.260 4.355
+500.808 498.448 6.779 569.451 6.727 253.412 7.823
+500.965 497.354 7.069 563.514 7.582 261.744 10.118
+501.123 499.273 5.764 567.735 6.304 266.527 5.201
+501.282 500.642 6.509 568.207 6.670 256.755 4.777
+501.441 498.076 6.576 569.322 6.340 253.497 4.422
+501.599 502.690 5.944 567.743 6.962 257.474 4.159
+501.758 499.196 6.236 567.237 6.687 267.454 8.978
+501.916 500.472 5.933 569.602 6.497 259.364 5.676
+502.075 497.754 5.897 570.136 8.086 256.943 6.160
+502.233 492.757 5.673 567.981 6.326 255.909 5.146
+502.392 494.397 6.509 567.189 6.085 261.119 11.135
+502.549 495.074 8.438 569.751 6.934 255.921 5.842
+502.707 497.060 5.706 568.937 6.557 255.539 5.896
+502.866 497.420 5.536 567.709 6.558 261.985 7.763
+503.024 498.734 6.376 564.377 6.256 262.849 6.625
+503.183 500.477 5.981 568.413 7.637 260.758 8.866
+503.341 497.304 6.598 569.204 6.625 256.347 8.010
+503.498 484.753 5.965 568.982 6.496 250.443 4.839
+503.656 499.807 5.670 567.889 6.587 254.234 5.889
+503.816 506.988 6.032 568.818 6.756 264.172 4.127
+503.975 493.339 5.742 567.418 6.735 262.191 6.417
+504.133 488.683 6.999 569.924 7.365 246.081 14.115
+504.289 499.856 5.960 570.829 6.294 254.390 10.219
+504.448 499.028 5.796 565.638 6.405 269.683 3.973
+504.606 495.390 6.817 567.616 7.013 266.196 5.418
+504.765 502.443 6.355 567.356 7.244 250.301 7.129
+504.922 497.354 5.877 569.933 6.866 253.803 6.341
+505.079 495.543 5.589 565.849 6.949 263.488 6.336
+505.238 504.895 6.035 567.858 6.691 264.354 5.802
+505.396 501.919 5.983 570.928 6.780 253.953 11.637
+505.554 490.889 5.696 570.149 6.903 254.149 6.886
+505.712 493.398 6.008 567.181 7.120 264.201 4.919
+505.871 500.034 6.557 568.491 7.029 268.282 7.151
+506.029 496.550 5.733 570.314 6.363 250.352 9.574
+506.186 496.515 5.822 572.763 8.205 255.413 13.807
+506.344 508.315 5.655 568.187 6.116 264.334 4.314
+506.503 501.063 6.370 569.451 6.473 261.603 5.579
+506.661 495.670 6.005 572.164 7.370 253.006 7.042
+506.819 500.376 6.017 569.541 6.838 254.420 13.343
+506.976 496.323 5.658 569.045 6.394 259.204 6.862
+507.134 496.523 5.973 570.860 6.387 256.602 12.186
+507.293 500.245 6.637 567.828 6.872 260.806 10.855
+507.450 495.812 6.248 569.258 6.439 255.828 5.322
+507.609 495.248 5.639 568.882 6.206 257.918 7.117
+507.767 497.222 5.573 569.018 6.167 260.319 5.442
+507.926 499.172 5.580 567.130 6.798 264.343 6.009
+508.084 497.131 6.087 571.631 6.196 253.113 5.081
+508.242 501.651 6.565 571.906 7.372 249.141 6.365
+508.400 501.106 5.845 568.289 6.775 262.241 6.882
+508.558 500.731 6.132 568.942 6.677 256.602 6.664
+508.716 501.307 5.573 572.119 6.926 250.546 9.353
+508.874 499.253 5.731 568.931 6.217 258.275 4.365
+509.033 494.232 6.406 567.209 6.496 260.942 4.315
+509.192 502.592 5.857 569.692 6.314 259.789 4.839
+509.351 500.895 5.568 568.626 6.149 258.107 3.789
+509.509 502.549 5.482 570.486 6.233 254.731 4.448
+509.667 499.975 5.366 569.814 6.798 251.057 4.804
+509.826 501.579 5.635 566.818 6.382 266.400 4.032
+509.984 504.025 5.530 566.768 6.146 263.244 5.024
+510.143 503.230 6.273 572.067 6.331 246.912 7.224
+510.301 505.952 5.895 570.100 6.678 254.729 4.832
+510.460 501.109 5.501 566.331 6.948 268.457 6.760
+510.617 505.541 6.095 568.983 6.603 257.924 6.085
+510.776 508.115 6.052 572.799 6.549 247.499 5.731
+510.935 502.461 5.716 568.028 6.346 261.795 4.067
+511.094 505.934 6.532 566.280 7.013 266.358 5.450
+511.252 504.299 5.728 571.092 6.480 251.263 8.527
+511.409 502.993 7.085 569.781 6.589 248.332 5.603
+511.567 509.539 5.877 567.817 6.400 258.223 5.936
+511.727 507.405 5.847 565.748 6.693 270.142 5.063
+511.885 504.144 6.311 569.577 6.133 253.751 4.539
+512.043 508.241 6.057 570.935 6.683 247.657 7.109
+512.201 509.682 6.014 568.889 6.735 261.686 6.227
+512.360 502.726 6.615 568.268 7.190 262.816 6.731
+512.518 501.137 6.213 569.022 6.767 256.658 4.787
+512.676 506.011 5.597 571.070 6.981 250.596 5.682
+512.834 508.020 5.660 568.400 6.375 257.715 7.459
+512.993 507.920 6.426 568.184 7.699 259.647 7.033
+513.151 510.179 5.855 567.941 8.506 255.516 5.927
+513.309 509.851 5.628 567.499 6.973 258.275 5.804
+513.467 509.658 5.716 568.775 6.415 259.052 5.188
+513.625 510.736 5.865 568.917 7.129 254.860 6.232
+513.784 510.337 5.892 566.279 6.276 260.468 6.647
+513.943 507.783 5.665 568.262 6.699 263.374 6.381
+514.100 507.617 6.587 570.792 6.045 248.223 8.459
+514.258 510.796 5.992 569.778 6.166 255.522 4.882
+514.417 504.388 6.213 567.927 8.106 265.045 7.879
+514.575 511.433 5.540 569.409 6.623 258.870 5.124
+514.733 509.354 6.099 569.614 7.199 256.858 7.774
+514.891 512.693 5.983 570.646 6.578 254.228 5.983
+515.050 512.897 5.660 569.686 6.150 258.332 4.470
+515.210 513.219 5.536 567.816 6.335 262.443 4.291
+515.369 513.872 5.707 570.788 6.839 261.424 7.006
+515.528 511.358 5.565 571.427 7.631 252.844 6.676
+515.685 512.953 5.850 570.964 6.324 250.998 4.939
+515.845 513.589 6.059 568.349 6.403 261.760 4.295
+516.004 516.655 5.722 570.003 7.011 262.847 4.899
+516.163 512.946 6.451 569.760 7.279 253.188 10.123
+516.321 513.709 6.488 571.877 7.615 250.271 16.727
+516.478 515.927 6.270 569.418 6.758 261.052 5.586
+516.637 512.509 6.394 567.364 6.630 268.540 8.007
+516.795 513.855 6.156 568.103 6.300 252.795 8.274
+516.953 515.968 5.764 568.501 7.078 249.627 7.515
+517.111 514.669 5.928 567.595 6.854 266.246 8.155
+517.269 517.856 6.380 567.666 8.103 259.612 11.898
+517.427 516.118 6.050 569.696 6.861 254.336 8.529
+517.585 518.161 5.727 568.137 6.559 257.073 7.719
+517.743 518.711 6.175 571.161 6.116 252.710 6.223
+517.902 518.407 6.252 569.491 6.978 257.657 6.276
+518.061 513.944 5.823 566.744 6.275 263.656 6.695
+518.220 514.409 6.045 570.167 9.030 254.646 9.773
+518.377 514.614 5.893 569.501 6.850 256.336 10.375
+518.536 512.416 5.633 569.655 6.274 258.053 7.422
+518.695 514.134 5.893 569.406 6.435 258.280 6.060
+518.853 514.971 6.765 568.594 6.930 259.472 5.424
+519.012 515.639 5.818 570.096 6.623 252.554 9.431
+519.169 515.966 5.737 570.121 6.140 253.025 5.657
+519.329 516.989 5.772 567.061 6.558 270.060 9.907
+519.488 519.119 5.379 568.480 6.567 264.570 5.711
+519.646 515.691 5.665 571.174 6.103 251.435 6.745
+519.804 516.536 5.586 570.861 6.220 252.794 7.355
+519.962 517.945 5.738 568.438 6.947 262.497 6.633
+520.121 513.299 5.724 566.134 6.835 268.754 9.313
+520.278 516.043 5.982 574.141 6.613 245.847 6.548
+520.435 517.600 6.026 573.071 6.334 242.898 7.140
+520.594 513.516 6.347 566.440 6.618 273.309 5.877
+520.753 518.365 5.698 566.894 7.371 265.253 6.340
+520.911 518.913 5.748 572.289 6.355 251.892 7.421
+521.069 517.789 5.957 572.102 7.273 244.968 4.131
+521.227 521.967 6.146 572.061 6.430 259.509 6.940
+521.385 519.999 5.668 566.200 6.362 272.785 7.718
+521.543 517.430 5.782 571.062 6.717 248.297 6.745
+521.700 515.014 6.427 574.980 6.851 245.012 5.065
+521.860 517.040 6.606 567.309 6.361 268.260 11.489
+522.020 519.260 5.946 570.133 6.458 267.832 6.615
+522.178 518.732 5.597 572.431 6.609 248.398 4.428
+522.335 517.907 6.142 569.224 6.785 245.913 5.216
+522.494 519.479 5.585 566.442 6.469 272.179 9.363
+522.652 523.584 5.940 566.854 6.337 264.431 5.199
+522.810 518.845 5.705 577.868 6.576 238.124 8.806
+522.967 518.058 6.258 571.228 7.285 242.231 8.033
+523.124 518.920 6.530 566.412 8.934 269.612 14.745
+523.281 520.379 6.265 569.654 6.503 268.066 12.140
+523.440 521.353 6.386 570.436 8.461 253.320 9.101
+523.597 522.523 5.782 572.524 7.608 243.513 7.525
+523.755 524.675 6.334 571.495 6.433 254.855 6.703
+523.914 523.186 6.317 567.665 6.711 266.778 10.070
+524.072 523.581 5.919 569.316 7.203 263.487 9.860
+524.229 522.755 6.156 574.613 7.785 236.804 6.866
+524.387 521.527 9.892 574.506 10.597 248.008 10.866
+524.544 527.345 9.996 568.175 9.389 274.360 19.442
+524.700 523.683 6.661 567.931 8.296 252.683 13.839
+524.857 524.126 6.059 574.789 6.983 235.146 9.951
+525.013 528.021 7.609 570.087 6.622 249.601 7.420
+525.171 525.600 6.581 563.870 7.692 278.146 9.500
+525.330 527.026 6.125 569.168 6.574 260.981 6.432
+525.488 527.800 5.982 579.161 6.365 235.789 5.734
+525.647 526.888 7.701 571.941 7.043 250.627 8.209
+525.803 527.638 5.827 569.029 7.678 267.136 9.996
+525.962 530.576 6.680 568.470 6.878 267.061 11.276
+526.120 531.905 6.303 573.624 6.352 239.240 5.973
+526.278 530.819 7.262 573.716 8.063 246.752 10.508
+526.435 527.248 7.073 569.927 6.420 264.267 5.899
+526.594 530.242 6.428 566.549 6.834 263.772 7.394
+526.752 532.362 5.747 570.055 7.915 258.217 6.423
+526.910 527.383 6.502 574.680 7.834 250.062 12.703
+527.067 528.673 6.820 572.806 9.441 259.980 11.526
+527.225 533.776 5.924 571.088 6.367 264.219 6.780
+527.383 530.827 7.310 571.170 6.502 256.262 6.300
+527.541 529.538 6.313 573.271 7.384 247.182 8.336
+527.698 532.215 6.581 570.762 7.563 258.901 14.021
+527.855 533.762 6.273 566.087 6.892 268.939 8.597
+528.013 535.407 7.101 572.050 6.261 253.219 10.370
+528.170 531.774 6.280 571.850 7.336 243.912 11.149
+528.327 531.157 8.137 569.748 13.735 258.439 16.523
+528.484 534.331 7.308 568.747 7.993 273.464 10.004
+528.642 536.443 6.140 570.597 6.475 255.344 5.852
+528.800 537.224 6.172 573.756 6.461 242.953 12.404
+528.957 531.262 6.788 566.517 6.550 260.679 7.330
+529.115 530.232 6.543 564.875 7.703 266.716 17.282
+529.272 534.882 7.121 573.058 6.547 252.447 10.948
+529.429 536.618 6.266 573.950 8.555 249.754 10.133
+529.586 539.116 6.940 568.919 7.278 262.667 11.055
+529.744 527.541 6.665 571.249 6.887 266.536 8.048
+529.901 533.545 6.843 571.652 7.874 251.265 11.479
+530.058 543.075 6.755 571.716 8.180 253.742 13.198
+530.215 534.810 6.771 570.797 6.368 254.187 12.560
+530.373 533.398 6.274 571.198 6.427 257.351 7.955
+530.531 532.444 6.030 570.742 6.584 259.063 6.490
+530.690 538.774 7.130 570.597 7.122 264.430 7.874
+530.846 532.397 6.382 576.826 8.638 254.414 11.514
+531.004 533.834 8.186 573.648 12.127 252.794 15.272
+531.160 534.368 7.603 572.396 11.019 245.557 9.032
+531.318 531.883 6.645 566.404 8.389 263.115 13.159
+531.475 535.448 6.361 567.964 8.334 260.211 15.093
+531.632 535.664 7.081 576.599 8.947 244.172 5.114
+531.790 539.226 8.040 566.876 8.441 259.721 10.131
+531.947 533.782 6.937 563.538 10.251 269.447 9.237
+532.104 536.867 8.074 569.295 7.515 254.384 15.456
+532.260 536.948 6.250 573.773 6.562 246.613 8.643
+532.417 531.699 6.860 567.537 7.345 259.106 14.184
+532.575 534.887 5.711 570.145 6.843 265.981 11.909
+532.732 539.808 6.310 571.261 7.100 248.729 8.548
+532.889 532.258 7.337 569.682 7.811 245.347 9.192
+533.047 533.112 6.956 565.526 10.266 270.303 10.684
+533.205 538.421 6.063 569.515 7.066 259.833 6.280
+533.362 535.984 6.179 569.845 8.757 252.058 6.936
+533.520 539.049 7.806 574.448 9.407 254.870 10.652
+533.678 535.440 6.461 568.174 8.275 268.618 8.767
+533.836 534.614 7.345 568.591 7.559 266.216 11.421
+533.994 538.496 6.170 571.116 6.241 245.082 6.533
+534.152 536.875 6.644 573.241 7.051 250.780 5.781
+534.311 531.828 5.835 574.362 6.903 256.567 8.713
+534.468 533.928 6.340 567.953 8.412 261.735 8.408
+534.626 535.339 6.662 570.869 7.988 254.257 14.015
+534.782 537.693 6.477 575.288 7.107 246.322 6.360
+534.940 538.537 6.899 570.772 6.677 262.273 5.807
+535.098 542.985 7.020 572.977 8.658 271.292 24.164
+535.256 537.319 7.944 577.199 7.307 247.902 15.764
+535.412 533.853 6.170 573.722 7.150 242.749 6.732
+535.570 537.808 6.202 566.007 6.986 270.017 6.727
+535.730 529.008 7.070 566.770 6.979 270.440 6.785
+535.888 533.730 6.983 575.137 9.110 241.634 22.064
+536.045 535.047 6.670 570.451 9.076 246.556 11.278
+536.203 537.260 7.558 568.224 9.132 265.875 20.392
+536.360 534.112 7.923 571.112 9.301 263.008 9.475
+536.517 534.701 7.690 574.881 8.012 243.650 19.964
+536.673 533.727 7.219 573.368 7.226 256.196 14.981
+536.831 529.277 11.097 564.373 9.399 277.491 9.786
+536.988 531.602 6.476 572.953 10.571 246.084 22.991
+537.145 541.196 6.662 578.829 9.170 231.160 14.107
+537.302 540.492 8.230 570.058 8.524 265.811 8.381
+537.460 534.154 6.438 567.440 8.039 270.918 13.768
+537.617 536.671 7.589 573.784 7.515 245.909 16.950
+537.772 533.616 6.853 573.087 8.642 254.329 16.491
+537.930 534.936 7.679 571.360 7.152 269.523 8.741
+538.088 530.559 8.582 570.563 8.425 255.185 13.393
+538.244 529.465 8.136 572.855 8.801 244.781 17.659
+538.399 533.024 6.504 573.798 6.998 249.537 8.978
+538.557 537.640 6.127 572.968 6.560 263.495 6.582
+538.716 529.766 6.828 571.829 7.079 263.744 5.451
+538.873 536.547 8.966 573.908 7.206 249.387 11.146
+539.030 542.235 6.310 575.439 7.543 251.273 12.102
+539.189 531.812 7.141 569.954 7.360 270.072 4.820
+539.348 534.118 6.272 573.749 6.767 258.040 9.906
+539.506 532.741 6.152 575.257 7.347 252.130 7.701
+539.665 532.097 7.292 568.362 7.023 267.131 5.714
+539.823 535.011 7.099 570.903 8.278 254.221 5.786
+539.981 534.180 6.246 573.069 8.483 248.002 7.287
+540.138 534.141 6.474 572.260 7.260 251.350 7.196
+540.296 537.341 7.549 572.852 9.404 261.083 6.773
+540.453 538.433 8.199 573.098 7.861 255.740 7.080
+540.610 541.904 7.593 571.991 7.735 249.397 17.328
+540.767 542.729 7.234 575.699 10.559 247.013 12.786
+540.925 535.287 7.188 573.797 8.409 259.770 11.135
+541.083 532.422 6.799 568.108 11.113 275.217 9.088
+541.240 532.654 7.149 576.211 6.457 246.592 4.962
+541.397 533.116 6.592 572.872 6.959 246.315 4.954
+541.556 532.401 7.369 568.698 7.984 262.633 7.547
+541.714 535.574 6.529 569.477 8.063 261.496 5.262
+541.872 540.455 6.543 575.134 6.570 247.274 7.788
+542.029 537.324 6.684 573.751 7.297 246.692 10.486
+542.187 533.593 6.712 566.017 7.526 271.066 7.431
+542.344 539.765 5.954 573.350 8.070 264.910 6.997
+542.502 534.807 6.865 579.093 7.208 236.609 16.013
+542.658 533.708 6.484 574.950 6.614 242.476 8.867
+542.816 538.907 6.470 568.219 7.219 270.644 7.403
+542.974 530.929 6.997 569.332 7.114 264.786 8.158
+543.131 534.339 6.531 576.993 6.675 242.017 6.028
+543.288 537.063 6.069 575.860 6.995 246.940 6.366
+543.447 530.930 5.977 562.728 7.683 279.519 7.651
+543.605 536.639 6.539 571.317 7.069 252.635 11.603
+543.762 540.406 6.046 575.933 6.716 236.776 5.337
+543.921 539.824 9.084 571.469 10.140 255.707 14.405
+544.078 534.418 7.193 569.624 7.770 266.127 12.698
+544.235 531.224 5.978 571.916 7.099 253.721 4.204
+544.394 535.692 6.210 573.159 7.423 244.577 8.403
+544.551 531.486 6.994 574.541 8.296 251.825 11.871
+544.708 533.604 6.483 569.485 6.832 261.558 10.995
+544.867 533.726 6.173 569.784 7.435 267.265 11.090
+545.024 534.417 6.272 572.657 8.173 250.572 10.999
+545.181 535.224 6.447 572.256 6.785 248.455 7.677
+545.339 535.872 6.560 570.292 7.746 267.064 5.585
+545.498 538.238 6.473 569.752 8.756 257.520 11.820
+545.654 536.192 7.305 572.407 7.908 250.125 6.757
+545.812 536.632 7.206 570.254 8.768 257.321 6.221
+545.971 526.546 6.595 570.162 7.219 259.103 7.005
+546.129 533.305 7.655 573.491 7.736 250.541 14.603
+546.286 535.823 6.965 569.924 6.807 256.345 8.038
+546.443 537.128 7.063 570.129 8.662 254.983 11.168
+546.601 532.771 7.629 569.361 9.124 262.399 9.710
+546.758 535.857 6.725 567.963 9.021 261.284 6.756
+546.915 535.448 7.766 571.029 8.786 251.872 10.720
+547.073 536.484 7.511 570.330 7.058 251.178 7.576
+547.231 532.944 7.251 569.073 10.088 252.041 9.722
+547.388 533.359 6.973 568.970 6.298 258.470 6.824
+547.547 541.753 6.794 570.209 6.775 265.284 7.419
+547.705 526.927 7.311 572.282 8.023 254.592 8.771
+547.861 531.049 6.842 573.472 8.929 241.355 16.157
+548.017 534.640 6.654 572.864 10.324 258.163 15.247
+548.175 530.456 9.642 572.338 10.002 250.321 8.373
+548.331 535.264 7.158 571.143 8.281 250.553 13.451
+548.487 535.352 7.451 573.161 7.455 252.475 8.021
+548.644 533.943 6.436 568.931 6.582 262.584 7.368
+548.803 537.359 8.383 569.329 7.009 263.375 11.365
+548.960 534.293 6.886 575.543 7.169 247.153 6.776
+549.117 531.243 8.130 572.405 6.692 245.771 12.577
+549.274 538.502 8.371 571.224 8.116 261.517 14.095
+549.431 535.155 7.557 571.602 10.820 254.205 12.630
+549.589 530.821 6.977 571.466 14.140 239.322 26.996
+549.745 535.798 8.392 573.394 9.253 251.203 20.224
+549.901 531.948 6.720 566.564 8.204 272.122 7.070
+550.060 535.879 6.624 568.165 6.980 265.371 8.341
+550.218 533.138 6.410 573.191 9.111 243.363 13.581
+550.374 531.761 6.686 569.561 7.488 257.073 8.699
+550.532 538.027 7.054 570.045 6.585 263.080 7.488
+550.690 528.510 7.096 570.800 11.218 255.630 12.389
+550.846 532.835 5.990 571.808 7.891 246.166 20.731
+551.002 536.578 7.597 569.188 11.165 257.601 16.041
+551.160 531.745 8.150 570.221 9.279 263.926 11.371
+551.316 533.567 7.133 570.772 10.421 256.269 12.240
+551.475 540.915 6.123 572.267 8.509 248.032 12.086
+551.633 528.569 7.530 569.852 8.371 257.560 12.067
+551.791 535.145 8.902 571.908 11.743 260.105 12.185
+551.948 544.671 7.077 573.809 6.492 247.081 6.006
+552.106 524.996 6.770 570.638 7.663 253.770 9.288
+552.264 533.940 6.079 570.756 7.339 265.607 8.287
+552.423 536.549 7.595 571.037 6.608 256.876 8.873
+552.580 531.275 6.320 572.790 6.913 240.818 8.148
+552.737 531.052 6.517 567.658 7.693 257.588 12.363
+552.895 535.430 6.226 566.796 7.083 276.345 9.216
+553.052 532.374 6.309 571.188 7.802 245.863 9.830
+553.209 538.283 6.739 577.601 8.643 233.628 7.829
+553.366 531.512 6.816 567.616 7.762 264.296 14.935
+553.523 535.585 6.476 569.976 8.151 265.903 5.753
+553.681 536.035 6.266 571.309 6.790 249.839 6.014
+553.840 537.210 7.010 571.093 7.675 252.928 7.707
+553.998 530.282 6.820 568.751 6.543 263.359 7.547
+554.156 532.432 7.586 569.997 8.375 257.593 8.127
+554.313 532.164 11.646 573.910 10.525 246.815 12.344
+554.470 532.971 6.364 570.959 7.099 251.868 9.296
+554.628 535.919 6.231 571.749 8.196 263.008 15.307
+554.785 532.339 8.258 566.507 7.548 266.110 8.753
+554.942 534.523 6.354 569.155 7.116 249.331 7.721
+555.099 535.725 7.672 572.101 8.938 247.623 6.732
+555.256 535.957 7.262 568.921 8.612 260.006 8.817
+555.415 537.949 8.122 567.769 8.064 262.110 8.745
+555.572 532.289 7.082 572.227 7.008 262.331 6.521
+555.729 537.182 6.898 568.632 7.616 252.693 14.035
+555.886 539.681 8.125 570.426 9.996 259.916 16.919
+556.042 528.296 6.236 567.364 8.207 266.809 10.744
+556.200 531.113 7.246 569.853 10.234 248.138 26.303
+556.356 532.711 7.659 570.568 8.729 252.441 26.294
+556.512 524.127 9.342 567.285 8.787 262.224 17.966
+556.668 531.871 7.617 568.752 10.527 256.112 18.645
+556.825 537.688 6.308 571.957 9.307 250.531 7.014
+556.982 537.736 6.857 571.829 6.677 254.045 5.851
+557.140 541.377 8.099 566.198 7.358 258.210 11.787
+557.299 543.223 6.339 570.772 7.424 266.702 9.705
+557.456 540.302 6.941 573.907 6.928 248.687 7.924
+557.613 534.143 7.601 572.749 9.454 255.366 9.634
+557.771 534.021 6.519 569.347 7.711 267.383 4.688
+557.928 525.690 6.750 569.873 7.183 252.463 6.027
+558.086 532.066 6.615 569.388 6.930 249.194 10.048
+558.244 537.730 6.447 570.983 6.765 254.161 8.687
+558.402 535.997 6.364 570.989 8.093 259.581 6.069
+558.560 539.100 6.233 571.659 6.334 257.415 5.042
+558.719 541.541 7.309 571.946 6.815 254.904 10.372
+558.877 542.535 9.911 568.989 7.222 261.489 7.604
+559.036 534.995 6.836 566.739 6.705 266.234 5.986
+559.194 540.050 6.176 573.837 7.802 248.442 6.067
+559.352 536.070 6.484 572.928 7.162 249.944 5.953
+559.510 530.300 6.421 567.829 7.529 268.299 6.267
+559.668 535.743 7.022 571.118 6.753 257.863 8.437
+559.826 534.137 6.509 575.551 7.193 242.118 7.222
+559.983 523.501 6.312 567.705 8.139 255.961 8.530
+560.141 530.215 5.987 567.477 6.052 273.679 6.705
+560.299 540.382 6.696 573.784 7.643 255.436 5.800
+560.456 538.013 7.118 573.797 6.610 242.614 7.018
+560.614 532.750 6.332 570.028 7.476 266.166 6.278
+560.773 533.377 9.191 570.240 11.413 273.011 6.306
+560.932 540.003 7.955 573.492 6.767 243.540 15.044
+561.088 536.360 7.028 574.855 7.959 242.785 7.413
+561.246 530.653 6.358 570.768 7.703 267.517 5.151
+561.405 530.706 7.230 569.017 7.040 269.165 6.544
+561.562 535.627 6.647 574.580 6.767 241.421 6.477
+561.720 533.516 7.652 574.485 6.768 246.214 8.521
+561.878 531.665 6.263 567.684 7.536 271.812 6.183
+562.036 533.286 7.113 569.026 6.831 266.708 6.948
+562.194 532.732 6.748 573.050 6.915 247.387 9.076
+562.351 537.067 7.413 574.380 8.730 249.183 9.178
+562.508 535.160 6.408 572.553 6.563 257.241 7.326
+562.666 538.421 7.963 575.295 8.331 257.152 7.941
+562.823 539.994 8.883 564.973 8.711 259.301 9.197
+562.982 538.310 7.866 568.719 7.185 271.063 9.374
+563.138 543.573 6.825 577.287 7.416 241.400 6.738
+563.295 538.605 6.436 572.932 6.819 249.184 7.899
+563.452 533.676 5.864 566.869 6.704 256.961 8.349
+563.611 534.236 6.805 569.388 7.533 266.879 6.538
+563.770 525.452 7.623 570.353 7.296 261.768 7.864
+563.927 531.974 7.713 572.043 8.670 244.157 7.735
+564.084 532.709 7.295 569.750 7.720 255.051 11.108
+564.241 529.217 6.694 566.777 6.407 270.080 12.427
+564.399 538.722 6.312 570.067 8.256 248.390 7.767
+564.556 543.207 7.720 575.310 6.890 240.053 6.371
+564.713 536.282 6.563 570.203 7.631 258.820 8.161
+564.871 542.612 6.489 565.832 7.270 278.198 8.731
+565.029 532.756 6.470 572.848 7.694 253.392 4.863
+565.186 534.527 8.187 578.238 8.139 237.253 8.095
+565.342 526.055 7.036 574.402 9.426 254.052 7.369
+565.500 526.650 6.116 568.844 6.820 263.650 5.456
+565.658 532.076 6.928 569.348 7.344 255.736 7.953
+565.816 535.240 7.098 574.923 7.552 244.157 11.952
+565.972 538.262 6.212 572.399 8.971 252.711 10.550
+566.131 537.392 6.965 567.344 6.748 269.527 5.831
+566.289 536.914 6.944 568.203 6.438 261.005 6.434
+566.447 537.039 6.250 571.242 7.775 252.600 7.193
+566.603 537.690 7.790 572.172 7.404 251.716 6.134
+566.761 534.316 7.710 572.271 7.011 255.167 6.733
+566.920 544.283 7.001 570.122 7.273 268.491 5.080
+567.078 541.452 6.520 572.921 7.577 246.534 8.643
+567.235 533.294 7.147 576.079 7.330 244.045 9.798
+567.392 537.573 6.537 567.620 7.715 265.940 4.250
+567.551 541.205 7.197 567.136 7.770 268.459 6.178
+567.710 547.742 12.555 571.851 15.581 237.224 20.566
+567.866 533.257 9.753 572.318 13.417 247.782 29.645
+568.023 547.102 8.710 567.053 7.368 274.067 8.504
+568.180 537.781 6.828 564.960 6.563 268.640 4.449
+568.338 540.347 7.531 571.229 9.416 244.026 9.968
+568.495 537.123 6.130 578.112 7.084 231.610 6.961
+568.652 538.961 7.529 568.671 8.763 258.026 12.279
+568.809 537.019 8.005 563.436 9.253 279.920 8.361
+568.966 537.120 9.158 575.384 7.868 237.069 24.210
+569.122 543.591 8.863 576.053 8.499 243.930 11.208
+569.279 539.166 6.924 565.610 7.611 272.269 5.883
+569.439 537.201 6.741 568.046 8.143 270.622 6.456
+569.596 540.722 6.107 572.970 6.455 245.256 5.139
+569.754 534.257 6.008 571.319 7.060 244.682 8.749
+569.912 531.922 6.803 568.433 6.903 269.946 4.031
+570.070 535.979 6.830 569.154 6.712 263.549 7.320
+570.228 533.209 6.246 572.061 7.377 250.655 9.651
+570.385 531.492 6.742 573.510 6.847 250.746 6.981
+570.543 531.934 5.904 570.285 7.395 258.817 5.781
+570.701 534.979 6.324 569.662 7.104 258.508 8.307
+570.860 538.209 6.437 570.116 7.594 257.915 9.024
+571.017 533.992 7.396 571.621 8.920 251.989 7.502
+571.176 539.119 6.140 571.506 6.822 260.469 5.663
+571.334 538.351 6.156 571.385 8.025 256.634 12.110
+571.492 534.093 6.642 568.603 6.895 266.266 8.857
+571.650 533.470 6.965 571.146 6.802 255.572 5.096
+571.807 531.834 6.548 573.261 7.591 251.025 8.396
+571.964 533.808 6.298 570.452 6.621 257.840 5.211
+572.123 527.918 6.864 567.564 6.145 261.118 7.614
+572.281 533.169 6.304 570.215 6.488 256.951 7.756
+572.439 534.321 6.267 571.622 6.698 248.659 6.038
+572.597 534.543 7.070 570.166 9.342 254.666 9.866
+572.754 537.725 6.135 568.361 6.998 266.326 5.371
+572.913 539.477 6.541 569.493 6.979 256.823 8.476
+573.071 537.004 7.523 573.065 8.062 243.368 7.181
+573.229 532.430 7.569 568.200 7.192 258.113 8.070
+573.386 534.954 5.929 569.312 6.832 269.241 6.015
+573.545 536.489 6.099 570.383 7.550 254.002 9.087
+573.702 533.854 7.929 572.763 7.305 251.310 6.904
+573.859 531.248 6.905 572.127 7.699 258.093 5.842
+574.018 534.502 7.594 568.081 6.653 266.600 9.752
+574.175 536.805 6.373 570.620 6.433 256.456 9.533
+574.333 533.498 6.397 575.936 7.394 244.214 3.993
+574.490 532.845 5.840 571.289 6.679 254.012 6.194
+574.650 538.288 6.456 568.192 6.295 275.500 5.617
+574.808 537.842 7.897 570.982 7.171 252.345 16.311
+574.964 534.838 6.891 578.089 7.192 240.493 5.832
+575.123 530.458 6.601 570.290 8.468 262.654 6.497
+575.281 532.204 6.908 568.083 7.130 273.626 8.006
+575.438 535.032 6.552 573.540 7.990 243.996 11.784
+575.595 530.790 6.929 573.385 6.240 248.390 7.330
+575.753 533.408 6.227 569.793 6.289 264.563 6.616
+575.912 535.804 6.572 572.988 7.121 264.575 3.533
+576.071 531.668 6.961 574.689 7.200 251.735 7.941
+576.227 532.136 6.339 572.736 7.004 252.977 7.144
+576.386 537.711 6.212 570.247 7.289 264.389 7.936
+576.544 532.857 6.806 571.762 7.686 261.583 12.801
+576.702 529.008 6.114 573.427 7.055 250.145 6.002
+576.860 533.780 6.419 575.844 8.334 255.391 16.966
+577.017 538.097 6.303 572.268 6.886 258.463 9.297
+577.175 533.401 7.855 569.652 6.815 269.204 8.849
+577.333 530.744 6.257 570.016 6.827 259.482 6.572
+577.491 525.907 6.489 577.130 7.259 241.264 12.254
+577.648 527.379 6.141 569.861 6.930 260.922 8.139
+577.807 529.873 6.207 568.838 7.604 274.279 6.883
+577.965 527.898 6.188 575.128 6.493 252.152 5.762
+578.123 526.339 6.499 577.261 6.980 244.301 4.962
+578.281 526.683 6.530 571.482 7.020 262.943 12.344
+578.439 531.466 6.348 569.224 7.702 272.059 5.259
+578.598 524.284 8.191 573.682 9.767 258.550 12.002
+578.755 522.052 6.934 576.196 7.147 245.905 15.103
+578.913 523.760 6.739 571.512 8.135 256.439 4.760
+579.071 522.337 7.127 572.425 6.331 262.014 7.621
+579.229 523.453 6.479 572.574 6.900 256.860 4.539
+579.388 530.434 6.267 570.195 6.716 266.958 5.792
+579.547 526.554 6.193 574.202 6.638 258.979 4.705
+579.705 522.555 6.731 575.412 8.367 246.789 6.843
+579.863 526.635 6.288 570.524 6.895 259.297 5.696
+580.022 525.226 6.192 568.775 7.188 272.043 5.615
+580.180 522.222 6.826 574.737 6.322 244.210 7.403
+580.337 521.042 7.622 572.607 7.683 255.742 5.861
+580.495 518.500 7.938 569.386 7.679 261.817 12.026
+580.652 518.615 6.495 573.613 8.733 259.788 21.984
+580.810 522.386 6.474 575.236 7.839 251.267 9.565
+580.967 517.773 6.343 569.332 6.959 264.792 8.501
+581.126 520.127 6.021 573.643 6.939 261.217 5.583
+581.285 527.051 6.507 576.206 6.799 250.482 7.780
+581.442 527.970 6.037 571.742 6.554 251.854 9.238
+581.600 524.799 6.504 567.327 8.485 268.728 8.220
+581.757 523.448 6.033 574.223 6.098 253.857 9.037
+581.914 520.474 7.596 576.402 10.895 250.288 16.590
+582.072 519.914 5.952 566.784 6.507 261.052 7.782
+582.230 512.059 6.655 574.337 7.257 250.910 11.253
+582.389 517.250 6.979 572.083 6.576 247.249 13.967
+582.546 519.392 7.162 573.450 7.399 248.962 9.328
+582.704 522.144 6.563 572.054 8.181 272.959 12.345
+582.861 524.611 6.392 568.210 7.904 274.229 14.164
+583.018 522.226 6.649 572.782 8.338 257.092 6.322
+583.176 520.792 7.097 578.247 6.355 238.930 9.536
+583.334 518.117 6.559 577.022 8.323 252.729 11.070
+583.491 518.261 6.314 571.220 6.613 254.077 3.646
+583.649 519.112 9.890 568.812 8.414 257.750 20.250
+583.807 516.091 6.146 572.088 6.142 251.827 11.164
+583.965 517.720 6.462 568.690 8.850 265.338 7.332
+584.124 518.737 5.664 571.056 6.809 262.013 5.117
+584.283 515.917 5.800 572.510 6.196 259.660 4.619
+584.442 515.509 5.914 573.385 6.443 251.036 5.419
+584.601 517.145 5.706 571.023 6.451 261.720 4.570
+584.760 514.861 5.669 570.450 6.604 266.037 6.721
+584.918 514.218 5.994 576.604 7.156 245.530 5.388
+585.076 515.032 7.252 574.796 6.569 241.265 7.387
+585.234 521.420 6.109 564.688 7.985 278.422 11.459
+585.393 520.274 5.748 567.516 6.839 274.374 8.208
+585.550 516.482 6.002 576.445 6.648 241.413 9.622
+585.707 512.684 5.652 576.004 6.361 242.194 3.992
+585.866 514.846 6.243 566.890 6.274 278.521 5.847
+586.026 514.628 5.796 566.778 6.989 271.315 6.603
+586.184 513.346 5.753 575.187 7.512 240.793 9.721
+586.341 514.603 6.114 577.271 7.425 239.107 4.836
+586.500 518.636 6.020 568.902 6.810 269.961 8.478
+586.659 521.776 6.352 566.259 6.774 275.199 4.417
+586.817 519.127 5.824 577.642 7.697 245.802 8.595
+586.974 522.701 6.295 573.116 6.473 248.498 10.778
+587.132 522.417 6.056 569.021 7.124 274.655 7.043
+587.291 519.104 6.077 572.420 6.181 264.436 6.777
+587.449 513.931 6.076 577.444 6.782 232.794 7.780
+587.607 512.289 6.196 570.014 6.719 258.767 10.964
+587.767 515.192 5.691 567.740 6.555 273.567 8.902
+587.924 512.042 5.986 573.387 7.093 252.745 5.709
+588.083 513.940 5.935 572.473 6.632 253.337 7.560
+588.241 516.019 6.283 570.444 6.052 260.683 5.783
+588.400 519.910 6.054 572.844 6.736 259.246 5.179
+588.559 521.149 6.028 571.948 7.292 257.562 11.757
+588.718 518.171 5.890 569.119 6.685 260.885 6.166
+588.876 515.441 6.045 571.941 6.724 247.388 6.494
+589.035 512.354 7.020 570.379 8.094 261.513 11.654
+589.193 509.093 5.805 566.963 7.667 269.045 5.805
+589.351 512.621 6.013 570.419 6.628 257.810 10.580
+589.509 513.836 5.657 577.614 6.811 240.988 5.380
+589.668 515.698 7.029 573.196 7.324 260.109 5.963
+589.828 518.827 6.275 568.212 8.037 271.611 9.234
+589.986 515.788 5.978 572.752 6.244 260.266 7.779
+590.144 514.657 6.818 576.607 7.647 239.012 4.249
+590.302 516.746 6.453 571.136 7.039 245.930 8.259
+590.460 516.977 5.665 567.521 6.916 272.859 8.581
+590.618 517.879 5.675 569.845 7.061 262.058 11.838
+590.775 516.258 5.710 573.328 6.829 249.950 7.939
+590.933 515.672 6.040 573.453 6.065 253.679 4.696
+591.092 517.146 5.861 572.514 6.246 261.596 6.838
+591.251 513.361 5.996 571.865 6.893 260.456 5.110
+591.410 515.663 6.140 570.938 6.319 253.054 9.613
+591.567 516.726 5.533 569.319 6.629 255.630 6.908
+591.725 516.147 5.933 571.183 6.763 255.126 9.168
+591.883 518.321 6.012 572.351 6.801 262.741 5.539
+592.043 518.433 5.650 569.413 7.486 264.317 9.060
+592.201 516.474 6.097 570.734 6.332 261.043 9.937
+592.359 513.504 5.964 575.487 6.451 243.120 7.284
+592.516 512.755 5.914 571.654 7.101 250.341 13.688
+592.675 517.927 5.895 566.486 6.978 275.403 6.125
+592.833 518.019 6.496 573.594 7.206 254.544 7.676
+592.991 518.310 5.817 577.076 6.806 241.135 8.429
+593.149 515.543 5.939 568.950 7.594 259.951 13.891
+593.308 516.565 5.817 566.229 6.479 273.449 5.717
+593.467 516.295 5.798 571.852 7.474 261.164 5.573
+593.626 514.463 5.899 574.788 6.698 245.151 6.071
+593.784 517.234 5.622 572.117 6.609 254.221 6.070
+593.944 515.112 6.239 570.401 6.926 271.902 8.494
+594.102 516.181 5.772 571.034 6.555 262.339 4.972
+594.260 516.051 5.960 575.790 6.823 242.893 5.553
+594.418 514.830 5.996 571.387 6.264 252.928 3.637
+594.577 514.048 5.845 569.424 6.566 268.839 4.453
+594.736 514.750 5.669 570.424 7.061 261.698 6.270
+594.895 515.187 5.856 573.284 7.373 246.797 10.258
+595.053 517.061 5.963 570.542 6.113 257.458 5.793
+595.212 517.400 5.547 569.915 6.172 267.744 4.825
+595.371 517.774 5.719 570.529 6.356 261.307 6.439
+595.529 516.677 5.471 573.915 6.185 249.563 4.197
+595.687 515.816 5.692 571.439 6.399 257.385 6.307
+595.847 515.998 6.437 567.144 6.240 268.763 5.506
+596.007 516.530 5.695 571.461 6.538 257.797 6.746
+596.165 513.495 5.558 574.634 6.414 245.798 4.426
+596.323 517.544 6.544 569.276 8.380 261.898 12.123
+596.481 515.735 5.712 569.102 6.656 271.029 10.203
+596.640 513.167 5.932 574.161 6.968 245.670 10.975
+596.797 515.311 6.192 576.291 7.594 246.296 8.652
+596.955 518.163 6.568 571.143 7.694 267.343 8.922
+597.113 517.481 5.746 569.911 6.942 270.553 5.430
+597.271 518.694 5.752 574.389 7.156 252.245 7.841
+597.429 517.986 5.614 574.263 6.601 247.662 8.977
+597.587 515.629 5.931 569.962 6.103 261.556 4.848
+597.747 513.006 5.543 568.709 6.246 270.095 4.170
+597.905 513.830 5.778 573.077 6.334 251.960 6.047
+598.063 512.538 5.784 575.570 6.270 237.839 6.475
+598.221 511.825 5.626 568.905 6.303 263.468 5.922
+598.380 514.578 5.570 569.689 6.453 271.964 4.178
+598.540 514.405 5.766 572.076 6.695 260.929 6.820
+598.698 515.484 5.643 572.450 6.511 246.559 5.239
+598.856 517.154 5.576 573.244 6.257 254.855 4.601
+599.015 515.431 5.740 570.492 6.104 267.988 5.362
+599.175 516.514 6.139 570.955 7.119 261.059 9.702
+599.333 516.255 5.748 574.149 8.104 246.440 6.976
+599.491 515.192 6.016 570.941 6.040 257.764 7.165
+599.650 513.282 6.062 569.629 6.116 266.597 4.005
+599.809 513.582 5.670 572.246 6.325 252.955 5.364
+599.968 513.115 5.663 573.712 6.418 252.039 5.452
+600.126 514.561 6.162 571.387 6.367 261.020 4.682
+600.286 513.175 5.687 571.733 7.012 261.420 5.014
+600.445 511.841 5.530 572.757 6.508 254.634 4.955
+600.602 514.198 5.679 573.797 6.498 251.006 5.273
+600.761 516.432 6.317 572.518 7.666 259.280 9.591
+600.920 516.744 5.802 570.275 6.707 266.672 5.069
+601.080 516.907 5.509 572.342 6.113 255.856 8.673
+601.237 516.419 5.579 573.053 6.038 251.058 3.495
+601.395 514.964 5.867 571.250 7.264 257.510 9.385
+601.553 516.089 5.644 568.712 6.178 265.065 4.240
+601.712 515.380 5.637 572.507 6.895 255.520 9.079
+601.869 516.233 5.799 574.675 6.192 249.005 4.832
+602.028 515.662 5.632 570.946 6.874 260.620 3.804
+602.188 513.196 5.625 570.279 6.476 266.036 6.254
+602.348 513.002 5.627 572.362 6.264 256.600 4.378
+602.506 515.320 5.575 572.793 6.592 251.026 5.056
+602.665 520.163 5.797 572.988 7.433 259.490 8.891
+602.823 517.401 6.001 572.019 6.421 258.574 4.631
+602.981 515.404 5.699 571.250 6.377 256.875 6.692
+603.140 518.474 5.587 570.332 6.684 265.138 9.974
+603.298 515.694 5.997 571.743 6.550 253.401 5.394
+603.457 515.727 5.639 572.797 7.733 254.164 4.795
+603.615 514.407 5.879 571.278 6.586 258.071 5.107
+603.774 515.404 5.721 570.782 6.785 258.590 11.951
+603.933 517.264 6.304 570.877 7.107 267.075 6.215
+604.093 516.102 6.338 573.658 6.379 257.070 6.842
+604.251 514.841 6.320 574.756 7.146 254.800 4.543
+604.410 513.718 6.364 570.137 7.670 261.298 10.485
+604.569 515.217 6.030 570.521 6.972 262.493 11.871
+604.726 515.422 5.637 573.315 6.317 250.114 6.183
+604.885 514.904 7.209 572.793 7.233 251.781 4.098
+605.043 516.089 5.736 571.128 6.331 259.987 4.238
+605.202 518.330 5.854 570.691 6.745 266.779 6.853
+605.360 515.923 5.546 572.736 6.006 254.017 4.377
+605.518 513.769 5.756 573.757 6.039 250.220 4.129
+605.677 515.577 5.727 571.177 6.492 258.162 5.240
+605.837 514.455 5.593 568.871 6.631 265.591 8.115
+605.995 513.714 5.700 571.138 6.726 260.205 4.976
+606.154 513.247 6.094 572.681 6.702 249.132 7.262
+606.311 516.602 5.441 571.716 6.416 253.531 5.156
+606.470 517.296 5.868 570.617 6.605 265.095 6.212
+606.630 517.292 6.153 569.006 6.671 265.450 6.304
+606.788 518.192 5.971 571.070 6.966 250.954 6.413
+606.945 515.732 5.739 573.480 6.967 251.199 5.148
+607.105 511.597 6.028 571.234 7.061 263.762 8.175
+607.263 513.735 6.033 568.872 6.692 266.107 4.290
+607.422 512.007 5.738 575.258 6.066 246.641 7.038
+607.579 513.220 5.676 575.582 6.396 245.736 3.972
+607.738 519.992 5.836 567.435 7.279 270.507 7.947
+607.896 513.980 5.722 568.874 6.314 270.925 3.753
+608.055 514.409 5.821 575.538 6.888 247.039 7.503
+608.213 513.074 5.604 576.395 6.761 236.830 7.579
+608.371 511.970 5.502 570.994 7.112 263.878 3.989
+608.530 516.509 5.933 566.240 6.065 275.608 6.555
+608.689 514.725 5.862 572.632 6.629 259.726 5.960
+608.847 514.607 5.758 577.586 6.327 241.947 4.869
+609.006 516.016 7.658 572.075 8.080 257.029 9.365
+609.164 514.570 5.588 566.350 6.362 274.130 4.144
+609.324 514.535 5.832 571.083 6.734 263.501 7.817
+609.482 513.485 6.164 574.690 6.578 245.255 8.871
+609.639 515.354 5.988 571.096 6.911 249.702 3.271
+609.799 514.263 5.739 569.151 7.103 267.797 5.550
+609.959 512.782 5.858 570.301 6.312 268.558 6.446
+610.117 514.397 5.804 572.783 6.177 254.035 4.223
+610.276 513.934 5.696 573.767 6.976 247.860 10.592
+610.434 513.579 5.817 570.357 7.807 258.858 5.151
+610.594 512.675 6.155 571.443 6.902 264.198 7.872
+610.753 514.766 6.263 570.594 6.971 263.282 8.564
+610.911 513.677 6.091 575.296 7.879 248.082 6.992
+611.068 516.786 6.622 573.893 8.059 250.240 13.653
+611.226 514.057 5.846 572.489 7.237 257.702 5.446
+611.386 513.940 6.073 569.164 6.666 267.157 3.904
+611.546 513.139 5.516 571.691 6.917 258.001 6.314
+611.705 512.771 6.253 573.107 8.106 253.350 5.532
+611.863 514.337 5.549 571.801 6.957 255.083 7.542
+612.022 512.973 6.029 570.338 6.674 262.550 5.901
+612.180 512.459 5.622 571.683 6.448 254.755 4.504
+612.338 515.044 5.898 572.216 7.287 257.437 4.532
+612.497 517.380 5.571 571.372 6.315 255.424 7.192
+612.655 516.243 5.912 572.873 6.041 255.164 4.492
+612.813 514.502 5.768 570.848 6.189 256.461 4.396
+612.972 514.985 5.475 571.388 6.663 259.524 6.492
+613.131 514.289 6.149 571.143 7.263 257.595 8.942
+613.289 518.022 5.574 572.451 6.360 258.335 5.063
+613.448 518.040 5.880 572.534 6.417 254.713 8.199
+613.605 516.690 5.988 571.475 7.854 260.417 5.002
+613.764 515.386 5.762 571.754 6.259 256.664 7.069
+613.923 513.903 5.518 572.467 6.443 254.926 5.266
+614.082 513.189 5.560 570.294 6.276 258.669 4.835
+614.242 515.291 5.577 569.993 6.394 262.746 4.425
+614.401 515.002 5.519 572.509 6.163 256.357 5.558
+614.560 514.790 5.668 573.795 6.217 250.893 5.756
+614.718 516.587 5.611 571.218 6.673 260.278 5.884
+614.877 519.745 5.708 568.992 6.777 266.302 4.517
+615.037 519.027 5.612 571.779 6.097 260.353 4.450
+615.195 515.140 5.909 573.427 6.618 250.353 7.689
+615.354 514.341 6.073 571.954 6.689 255.513 5.740
+615.513 514.703 5.528 571.059 6.658 261.635 5.973
+615.672 515.347 5.525 570.490 6.064 260.956 5.445
+615.831 515.373 5.568 573.574 6.170 256.349 5.061
+615.990 517.763 5.531 573.415 6.235 253.443 6.768
+616.148 515.537 5.482 571.084 6.239 258.194 4.409
+616.307 516.985 5.793 570.670 6.576 260.462 5.523
+616.467 515.629 5.893 572.486 6.352 258.684 5.332
+616.626 515.686 5.765 572.434 6.586 253.996 4.951
+616.786 516.016 5.563 572.784 6.185 257.159 6.302
+616.944 516.030 5.557 571.877 6.246 258.141 4.190
+617.104 514.070 5.581 571.478 6.320 262.531 7.081
+617.262 515.870 5.473 572.414 6.400 257.415 4.206
+617.420 516.178 5.740 574.444 6.339 249.454 5.802
+617.579 515.941 5.827 572.474 6.471 257.434 5.772
+617.738 512.389 5.569 571.794 6.381 258.984 4.297
+617.898 514.983 5.460 570.808 6.520 259.589 4.883
+618.057 515.539 5.571 572.628 6.374 256.305 5.229
+618.216 516.835 5.875 571.306 6.230 257.863 6.619
+618.375 516.928 5.714 570.843 6.686 260.698 5.881
+618.534 515.349 5.943 571.558 6.647 258.147 7.026
+618.692 514.783 5.717 569.885 6.296 261.571 3.554
+618.852 513.537 5.529 570.278 6.262 260.785 8.636
+619.010 512.905 5.536 573.352 6.403 253.167 6.263
+619.169 512.779 5.744 572.483 6.634 256.611 6.179
+619.330 514.097 5.523 570.254 6.321 265.996 4.852
+619.490 515.271 5.831 571.942 6.568 258.990 5.126
+619.649 515.262 5.439 573.239 6.074 251.139 3.880
+619.807 518.172 6.944 574.602 7.294 250.081 6.189
+619.966 517.771 5.743 571.116 6.400 263.310 4.550
+620.125 516.917 5.889 568.881 7.082 266.523 7.280
+620.284 517.149 5.739 574.158 6.221 254.505 4.853
+620.442 515.661 5.886 574.661 6.723 249.195 7.633
+620.599 518.186 5.741 571.526 7.096 256.651 4.030
+620.758 515.611 5.993 567.675 6.467 270.346 4.957
+620.917 511.706 5.837 570.986 7.065 263.123 6.668
+621.075 507.657 5.536 576.709 6.454 245.371 5.603
+621.232 506.176 5.460 574.787 6.482 245.453 3.337
+621.391 512.721 5.490 571.987 6.310 258.624 5.148
+621.551 514.157 5.502 569.369 6.386 270.786 4.448
+621.710 514.801 5.946 570.513 6.267 263.477 6.035
+621.868 515.428 6.045 575.745 6.627 243.344 9.561
+622.026 520.154 6.135 573.267 6.939 253.133 7.937
+622.184 517.651 5.819 567.362 6.438 275.151 5.202
+622.343 515.966 5.634 569.883 6.228 263.401 7.087
+622.501 515.859 5.520 574.448 6.235 248.864 6.247
+622.659 513.368 5.642 572.324 6.315 249.178 4.583
+622.818 509.133 5.696 569.313 6.157 259.801 5.087
+622.977 511.601 5.428 570.423 6.639 263.648 6.835
+623.136 510.666 5.600 571.054 6.369 259.616 6.670
+623.293 512.456 5.671 571.140 6.407 253.856 5.743
+623.452 512.874 5.930 571.351 6.386 253.368 8.490
+623.611 514.658 5.362 570.583 6.220 259.463 4.060
+623.770 512.816 5.835 569.705 6.335 265.314 4.029
+623.930 513.818 5.471 571.467 6.201 259.213 3.871
+624.089 515.958 5.937 571.274 7.004 253.922 7.856
+624.246 517.199 6.005 569.872 6.536 255.579 7.088
+624.404 516.202 5.780 569.688 6.020 267.225 4.742
+624.564 518.532 5.818 570.247 6.479 261.512 5.464
+624.723 517.465 5.527 572.422 6.100 256.115 3.837
+624.881 516.044 5.738 572.454 6.197 249.151 4.235
+625.040 512.600 5.739 570.924 6.441 257.761 7.317
+625.199 512.846 5.677 570.909 6.317 263.677 4.515
+625.359 514.908 5.565 571.219 6.899 259.436 4.674
+625.518 516.209 5.591 571.902 6.381 259.044 7.716
+625.676 512.282 5.726 571.499 6.112 255.700 4.348
+625.835 515.802 5.499 572.995 6.792 253.907 5.138
+625.994 515.978 5.547 571.580 6.463 260.779 3.689
+626.154 518.019 5.781 570.035 6.583 263.977 5.518
+626.312 517.870 5.913 572.920 7.732 254.389 8.040
+626.470 516.038 6.026 574.419 6.455 249.333 7.325
+626.628 516.570 5.638 570.844 6.181 260.603 3.762
+626.787 518.805 5.670 569.478 6.104 265.606 5.052
+626.947 516.468 5.504 574.204 6.364 256.916 5.382
+627.105 516.334 5.531 574.532 6.238 249.299 5.085
+627.264 515.053 5.656 571.465 6.249 258.033 3.650
+627.424 514.890 5.649 570.634 6.131 263.420 3.976
+627.584 515.299 5.522 572.706 6.338 257.604 4.248
+627.742 514.263 5.539 573.557 6.307 255.126 3.886
+627.901 515.312 5.771 571.555 6.592 257.841 3.986
+628.060 518.693 5.680 571.865 6.363 261.408 6.428
+628.219 516.007 5.529 572.778 6.260 255.434 5.381
+628.378 514.450 5.754 572.097 6.313 260.434 5.581
+628.537 515.204 5.723 572.121 6.442 258.404 6.153
+628.696 515.682 6.064 572.741 7.902 259.054 7.860
+628.854 515.506 5.560 573.707 6.477 255.830 6.429
+629.012 515.775 6.005 573.597 6.532 255.738 4.444
+629.171 517.117 5.591 572.616 6.402 260.217 4.259
+629.330 517.191 5.662 570.456 6.256 261.802 6.242
+629.489 515.031 5.785 572.544 6.563 257.268 6.038
+629.647 513.000 5.659 573.995 6.757 253.652 4.887
+629.806 515.370 5.813 571.440 6.577 258.316 6.079
+629.965 515.913 5.403 571.644 6.053 263.563 7.365
+630.123 513.939 5.539 573.186 6.392 254.905 4.982
+630.281 512.279 5.794 573.571 6.291 254.779 5.080
+630.441 513.792 5.591 571.325 6.500 259.757 5.765
+630.600 514.767 5.819 571.603 6.502 262.497 5.644
+630.758 511.817 5.770 572.306 6.625 257.805 5.069
+630.917 510.998 5.786 573.683 6.242 252.998 4.417
+631.076 511.120 5.791 572.226 6.456 256.140 6.246
+631.235 512.621 5.839 571.402 6.318 260.771 5.523
+631.393 512.986 5.610 571.504 6.511 259.147 5.940
+631.552 512.799 5.540 574.185 6.308 253.491 6.642
+631.711 511.658 5.580 573.411 6.846 256.394 6.002
+631.870 512.486 5.642 571.604 6.569 260.403 4.704
+632.029 511.504 5.907 571.696 6.399 262.424 4.600
+632.187 511.045 5.687 573.327 6.465 255.674 6.856
+632.344 510.600 5.933 572.173 6.410 253.016 4.543
+632.503 510.166 6.290 571.261 6.366 260.220 4.006
+632.662 510.611 5.746 569.042 6.629 261.932 4.900
+632.820 509.156 6.153 570.730 6.077 258.989 4.575
+632.979 508.301 5.593 571.117 6.509 258.369 7.051
+633.137 506.463 5.585 572.361 6.348 254.063 5.951
+633.295 505.244 5.640 572.443 6.164 253.400 5.234
+633.453 510.832 6.110 568.884 6.508 263.524 4.780
+633.612 508.788 6.035 569.768 6.821 257.805 8.923
+633.769 504.127 5.882 572.097 6.684 252.198 5.598
+633.928 503.881 5.539 571.851 6.278 249.862 5.573
+634.087 509.618 5.602 570.338 6.721 265.098 5.272
+634.245 507.216 5.585 571.143 7.221 263.581 5.313
+634.403 508.682 5.858 572.351 6.187 254.525 4.729
+634.562 505.686 5.682 571.053 7.089 253.165 6.821
+634.719 506.556 5.649 570.160 6.415 262.231 5.266
+634.878 506.345 6.609 572.361 6.433 256.302 7.920
+635.035 506.353 6.702 570.243 7.404 257.823 5.473
+635.194 506.853 6.358 570.272 6.642 259.498 4.760
+635.353 508.208 5.512 568.862 6.159 262.035 4.386
+635.511 502.172 5.828 571.628 6.824 255.100 5.969
+635.669 499.141 5.571 572.406 6.345 256.091 4.518
+635.828 501.361 5.593 570.004 6.470 260.780 4.455
+635.986 502.553 5.634 570.870 6.608 256.317 3.800
+636.145 503.465 5.781 570.798 7.506 254.813 5.170
+636.304 504.894 5.595 570.208 6.380 262.258 5.725
+636.463 503.719 5.627 569.192 6.550 260.182 4.654
+636.622 503.097 6.396 570.001 6.268 257.101 4.621
+636.780 503.700 5.386 570.450 6.337 258.781 4.662
+636.939 503.737 5.872 569.584 6.638 262.247 6.332
+637.098 502.507 5.548 571.255 6.878 262.502 5.194
+637.256 502.175 5.562 568.762 6.615 256.425 4.134
+637.414 499.621 5.622 571.717 6.508 259.234 6.646
+637.573 501.436 5.997 569.707 7.289 258.902 6.567
+637.731 500.684 5.690 571.287 6.446 257.359 8.242
+637.889 503.796 5.777 570.162 6.702 262.123 7.555
+638.047 504.817 6.993 568.761 6.232 261.351 6.693
+638.205 502.028 6.633 569.807 6.578 260.283 7.789
+638.364 499.110 6.448 571.378 6.934 258.692 5.629
+638.522 499.081 5.549 569.603 6.457 261.096 4.576
+638.681 497.450 5.978 569.666 6.497 259.391 5.042
+638.840 496.964 6.953 571.056 7.161 258.793 6.930
+638.998 496.629 5.796 572.330 6.290 257.837 8.880
+639.157 500.056 6.235 571.043 6.674 260.918 4.253
+639.316 498.410 6.904 570.200 6.842 262.449 5.978
+639.474 497.384 5.990 571.802 8.336 257.894 5.826
+639.633 502.333 5.476 573.358 7.856 257.238 5.369
+639.791 498.193 5.854 569.033 7.047 264.912 10.673
+639.949 507.341 5.500 571.060 6.231 267.839 4.208
+640.107 498.703 5.922 572.850 6.787 253.088 6.134
+640.266 497.937 6.095 572.828 6.899 255.750 5.396
+640.425 499.859 6.193 569.788 6.796 266.257 4.848
+640.585 497.518 6.298 570.827 6.654 263.922 8.132
+640.743 497.135 6.132 570.488 6.827 252.549 4.866
+640.901 494.921 5.657 571.394 7.851 257.945 5.304
+641.060 495.949 6.352 569.954 6.352 261.509 5.264
+641.219 492.409 7.051 571.139 7.122 262.725 10.933
+641.377 494.304 5.535 571.771 7.560 258.867 5.651
+641.535 495.023 6.239 573.757 7.109 260.168 5.357
+641.695 495.470 6.168 571.237 7.228 259.731 5.921
+641.854 499.434 6.360 570.672 6.862 262.947 5.847
+642.012 497.024 6.181 571.416 6.323 263.339 5.004
+642.171 498.060 5.526 572.774 6.485 256.023 6.059
+642.330 501.440 7.709 571.727 6.891 257.690 7.193
+642.488 496.524 7.069 571.107 7.974 268.256 4.999
+642.646 495.785 6.321 571.921 7.098 259.212 4.255
+642.804 493.847 7.376 574.209 7.046 256.442 5.398
+642.963 492.418 6.488 572.322 6.725 258.414 4.565
+643.122 491.024 6.212 570.313 6.499 262.964 5.962
+643.280 493.480 6.916 571.553 7.358 261.919 5.779
+643.439 493.744 6.047 573.645 7.122 259.269 5.636
+643.597 494.707 5.811 572.346 6.902 262.682 7.677
+643.755 497.157 7.046 573.363 7.302 258.616 7.284
+643.913 493.161 7.050 570.383 7.256 259.506 5.103
+644.072 493.451 7.347 569.803 6.143 264.215 4.817
+644.230 496.574 6.813 571.678 7.374 261.412 8.390
+644.387 494.205 5.607 572.706 6.616 255.084 6.508
+644.546 498.252 6.185 571.067 6.316 262.070 5.234
+644.706 493.822 6.967 571.280 6.673 265.100 6.923
+644.863 493.888 9.614 570.752 6.467 258.651 4.461
+645.021 491.838 6.156 571.407 6.986 257.536 8.392
+645.179 491.878 6.134 570.714 6.775 264.515 6.571
+645.338 494.588 5.986 569.977 7.346 261.125 7.641
+645.495 494.275 6.058 572.099 6.602 259.771 7.746
+645.653 491.542 6.062 571.191 7.496 259.037 4.557
+645.812 495.385 6.579 570.211 6.424 259.400 7.532
+645.970 494.393 7.225 571.302 6.622 261.304 6.520
+646.129 496.964 5.923 572.083 6.536 259.363 4.562
+646.289 495.809 6.233 569.920 6.452 262.903 5.782
+646.447 493.548 6.010 569.379 6.431 261.219 5.129
+646.606 496.725 5.978 571.233 6.484 258.312 4.676
+646.765 496.667 6.365 570.122 6.075 260.863 7.425
+646.924 495.646 6.117 572.391 6.687 261.578 4.071
+647.082 496.536 6.024 569.834 6.921 259.585 4.871
+647.241 492.885 6.287 573.148 7.333 263.355 7.113
+647.400 490.778 5.906 571.001 6.797 260.993 6.456
+647.559 494.967 7.427 571.200 6.619 258.159 5.631
+647.717 494.479 5.483 572.382 6.326 254.291 9.156
+647.876 496.604 5.567 570.313 7.122 260.552 7.910
+648.034 494.766 5.605 571.293 7.250 265.055 8.960
+648.192 496.217 6.321 573.043 7.110 259.550 5.626
+648.350 495.822 6.250 572.710 6.614 255.815 5.514
+648.509 496.628 5.652 571.547 6.600 260.578 4.226
+648.668 496.426 5.597 568.445 6.267 262.385 4.228
+648.827 496.944 5.644 569.254 6.795 265.873 5.241
+648.986 495.139 5.768 572.362 6.958 255.638 5.348
+649.144 494.061 5.635 572.033 7.294 254.976 5.784
+649.302 494.640 6.023 571.890 6.929 257.929 5.436
+649.462 494.836 6.459 569.898 6.544 268.669 5.677
+649.621 494.268 5.678 570.699 6.740 263.306 4.786
+649.780 491.052 6.132 574.837 6.693 252.683 5.858
+649.937 494.320 6.279 573.798 6.608 255.806 6.981
+650.096 493.273 5.698 570.838 7.619 264.408 9.081
+650.254 493.382 5.805 572.258 8.071 266.614 8.154
+650.411 497.153 5.823 572.672 7.589 253.406 5.702
+650.569 497.101 6.889 570.816 6.823 254.134 4.492
+650.728 496.671 6.043 571.138 7.190 262.651 6.343
+650.887 493.166 7.108 569.081 7.364 264.936 7.368
+651.044 495.261 6.668 572.600 6.519 255.849 4.584
+651.202 496.312 6.399 571.016 7.086 258.148 4.897
+651.360 498.653 5.671 571.700 7.135 256.691 5.692
+651.519 494.236 5.787 569.557 6.849 263.096 6.802
+651.677 493.962 6.567 571.615 6.385 258.780 5.655
+651.836 494.709 5.780 570.926 6.432 262.197 7.744
+651.993 493.517 5.725 570.579 6.284 257.492 6.983
+652.152 491.985 5.889 570.475 6.552 258.454 5.745
+652.312 491.719 5.593 572.394 6.175 258.304 6.797
+652.470 495.987 5.639 569.914 7.127 262.633 5.758
+652.629 493.359 6.718 569.909 7.280 261.276 5.741
+652.788 494.913 5.576 572.319 6.739 253.292 7.110
+652.946 493.259 5.545 571.933 6.813 256.032 14.072
+653.104 499.142 5.924 568.939 6.636 266.610 4.591
+653.263 496.261 6.419 569.539 6.586 262.516 4.469
+653.421 497.272 5.551 572.325 6.356 253.945 8.158
+653.578 498.552 5.900 571.353 6.574 260.769 5.278
+653.737 494.285 5.973 569.613 6.424 264.817 7.193
+653.895 495.662 6.447 569.996 6.640 258.858 6.574
+654.053 495.956 6.264 571.350 6.443 260.078 7.016
+654.211 494.039 5.778 569.463 7.104 258.700 4.442
+654.369 494.830 5.817 570.234 7.170 259.207 5.655
+654.529 493.138 5.663 571.252 8.016 260.112 9.003
+654.687 494.131 5.580 569.982 6.472 259.161 6.890
+654.845 496.401 6.573 570.459 6.576 259.261 4.653
+655.003 495.144 5.673 570.394 6.543 260.982 7.720
+655.161 497.701 6.365 570.394 6.687 260.699 3.713
+655.320 499.427 6.485 572.403 6.689 258.667 7.965
+655.477 498.654 6.165 572.174 7.982 258.176 10.362
+655.635 499.786 6.977 569.561 7.149 258.971 6.071
+655.794 496.867 5.752 570.225 6.435 263.169 7.278
+655.952 496.598 6.123 572.042 6.519 259.641 7.674
+656.110 496.896 6.298 572.930 6.674 253.606 4.537
+656.269 495.989 5.773 571.619 7.169 259.836 8.229
+656.428 495.439 6.668 569.746 6.415 264.228 6.890
+656.586 495.034 6.034 571.887 6.718 258.362 5.200
+656.744 494.270 5.916 572.318 6.624 256.333 6.117
+656.902 496.682 6.553 571.463 6.439 257.063 5.716
+657.061 497.546 6.640 569.224 7.154 265.540 5.197
+657.220 496.965 5.657 569.232 7.628 266.325 4.095
+657.379 493.659 6.704 572.872 6.539 252.783 7.263
+657.537 501.786 6.748 570.988 6.506 256.587 4.210
+657.696 500.287 6.275 570.789 6.719 262.945 5.435
+657.855 499.132 6.841 569.117 7.032 271.339 7.567
+658.013 494.031 5.502 573.931 6.322 253.693 5.667
+658.171 494.700 6.456 571.099 6.983 256.266 6.885
+658.329 494.687 6.305 569.981 6.710 261.922 6.711
+658.488 495.766 5.834 571.359 6.311 262.489 6.721
+658.646 495.647 5.728 572.853 7.119 256.084 6.401
+658.805 493.816 8.295 571.588 7.507 259.830 8.666
+658.962 497.718 5.705 569.085 7.352 266.308 6.945
+659.121 496.007 5.897 573.110 6.356 261.953 7.241
+659.280 496.900 6.151 573.231 7.417 256.589 5.845
+659.439 496.179 5.665 571.452 7.200 262.315 4.946
+659.598 499.411 6.226 570.074 6.838 258.783 9.872
+659.756 495.474 5.960 573.080 6.518 257.847 5.046
+659.914 498.634 5.501 569.980 6.493 259.598 7.427
+660.073 499.786 6.687 569.909 7.440 259.926 5.093
+660.231 496.497 5.997 570.989 7.182 257.619 6.572
+660.390 498.335 5.671 570.969 6.543 259.306 5.178
+660.549 496.353 5.537 571.629 6.464 260.493 3.689
+660.708 497.843 6.036 572.706 7.028 256.854 6.178
+660.867 500.028 5.806 571.727 6.906 261.668 5.048
+661.026 498.330 5.936 569.627 6.973 258.866 5.388
+661.184 496.673 6.088 569.816 6.139 256.038 4.657
+661.343 495.106 6.337 571.858 6.548 259.070 5.652
+661.502 498.371 5.449 569.138 6.770 260.760 6.325
+661.660 500.173 5.413 568.541 6.529 258.267 5.791
+661.819 501.131 5.671 571.065 6.758 260.602 4.842
+661.977 494.501 5.779 571.620 7.268 256.486 5.883
+662.136 499.745 5.959 568.386 7.340 259.024 6.738
+662.295 496.157 5.616 568.283 6.763 261.730 7.790
+662.453 498.171 5.665 570.562 6.984 261.837 5.805
+662.611 499.261 6.211 571.775 6.404 253.918 5.337
+662.770 498.932 6.487 572.527 6.350 256.229 4.391
+662.929 497.259 6.425 568.645 6.722 266.312 6.194
+663.088 499.142 5.505 571.056 6.701 264.463 4.753
+663.246 494.071 5.639 573.860 7.224 253.644 8.055
+663.404 496.210 5.823 572.528 6.842 252.106 5.410
+663.563 495.812 5.590 568.265 7.189 268.511 5.655
+663.722 502.548 6.459 569.992 7.633 268.215 6.599
+663.879 500.355 6.913 574.219 8.261 252.432 5.723
+664.036 498.773 6.626 570.622 6.690 251.324 6.908
+664.194 495.737 6.247 569.846 6.758 267.523 5.479
+664.354 495.507 5.455 568.748 6.690 265.615 4.504
+664.511 499.975 6.419 573.177 6.843 253.066 5.029
+664.669 498.519 6.430 572.691 7.958 251.200 7.468
+664.826 498.175 5.834 569.866 6.808 263.412 5.711
+664.985 496.181 6.225 566.868 7.491 268.434 6.731
+665.144 494.741 5.663 572.138 6.648 252.424 6.763
+665.301 495.047 7.903 572.671 7.238 252.764 4.417
+665.458 498.470 7.034 569.776 7.837 263.417 7.837
+665.616 497.824 6.571 569.677 6.876 266.114 5.038
+665.776 498.318 7.675 571.126 7.657 256.361 6.255
+665.933 495.573 7.980 573.701 9.482 254.803 11.169
+666.089 503.395 5.713 569.737 7.121 258.788 5.513
+666.248 497.924 6.354 569.977 7.652 264.737 6.947
+666.408 494.239 5.577 570.219 7.149 261.097 5.049
+666.566 495.012 8.647 574.162 6.813 248.700 7.357
+666.723 497.800 6.213 571.081 6.901 259.057 4.928
+666.882 500.158 6.656 567.260 6.711 274.130 5.937
+667.040 497.431 7.885 569.232 7.239 259.381 8.947
+667.197 494.124 7.613 574.972 7.234 249.283 5.012
+667.354 495.681 6.963 569.519 6.608 258.872 6.544
+667.512 498.626 7.022 566.455 6.709 272.198 5.196
+667.671 499.706 5.370 570.474 6.367 260.562 4.899
+667.829 496.727 7.571 569.754 7.210 252.975 5.851
+667.987 496.677 7.908 570.837 7.746 259.309 8.130
+668.145 498.466 6.009 568.818 6.871 266.843 4.648
+668.304 497.174 8.201 569.878 6.840 264.858 6.712
+668.461 493.731 6.462 571.848 6.896 255.858 5.394
+668.619 494.517 6.679 572.358 6.980 251.218 6.344
+668.778 496.345 6.481 572.003 6.516 262.092 4.464
+668.938 496.773 6.701 568.760 6.884 266.090 5.338
+669.097 496.987 6.598 569.277 7.195 261.150 6.282
+669.255 496.019 6.402 570.952 7.764 251.921 5.104
+669.413 495.590 6.994 570.699 7.706 258.949 5.559
+669.572 497.725 6.873 568.987 6.911 269.999 6.970
+669.731 502.977 6.530 569.899 7.008 266.350 6.041
+669.891 499.969 7.053 572.409 7.346 253.533 8.809
+670.049 495.669 6.796 570.304 6.609 258.595 8.368
+670.207 493.366 5.932 569.643 6.510 269.595 4.370
+670.366 490.623 5.839 571.836 6.843 260.326 3.847
+670.524 490.826 7.082 573.108 7.322 253.133 4.879
+670.681 495.988 6.757 570.801 7.527 257.651 4.136
+670.840 497.479 6.596 569.538 7.507 266.706 8.122
+670.997 498.814 5.868 570.515 6.976 262.227 5.998
+671.156 501.628 6.408 573.555 6.992 254.702 7.751
+671.314 501.006 6.582 572.225 6.372 256.287 5.245
+671.473 501.200 6.471 570.042 7.839 268.892 7.633
+671.631 503.852 7.069 571.000 7.990 261.038 9.732
+671.789 496.678 7.487 575.350 7.781 251.730 11.616
+671.946 495.336 6.476 572.793 8.510 260.897 13.178
+672.105 491.523 6.890 566.958 6.392 267.489 7.653
+672.262 492.555 6.334 570.369 7.904 259.034 4.236
+672.421 495.085 6.753 575.543 8.020 256.640 5.153
+672.579 498.120 6.701 574.305 7.383 258.816 8.842
+672.737 499.681 6.980 571.073 7.824 261.448 7.367
+672.895 501.836 6.005 572.700 7.120 265.544 5.299
+673.054 501.628 5.781 574.637 6.549 256.125 7.956
+673.212 499.546 6.165 573.106 7.311 256.641 5.981
+673.370 498.175 6.507 570.471 7.712 260.726 5.028
+673.529 495.211 7.115 570.844 6.591 262.307 6.295
+673.687 495.462 6.100 571.008 7.535 255.533 5.889
+673.846 500.044 6.388 571.380 7.194 259.195 5.569
+674.005 498.810 6.141 572.003 6.498 263.082 4.727
+674.165 496.398 6.359 568.030 6.771 261.120 4.432
+674.324 496.103 5.924 572.020 7.424 261.461 7.991
+674.482 498.811 6.059 571.590 6.319 254.294 6.007
+674.640 501.508 5.776 572.035 6.467 259.762 5.939
+674.799 498.705 6.305 570.910 7.549 264.027 4.380
+674.958 496.837 6.771 571.829 7.266 256.360 4.648
+675.117 498.298 7.266 572.688 6.815 256.143 5.366
+675.275 499.663 5.925 570.376 6.947 262.431 7.094
+675.433 502.186 5.683 572.723 6.466 260.784 6.468
+675.592 500.381 6.556 572.037 6.544 253.697 4.992
+675.749 497.653 6.337 572.920 6.792 254.737 6.075
+675.908 497.116 5.682 569.219 6.152 263.277 5.103
+676.067 497.691 6.136 570.202 6.469 261.952 5.430
+676.226 494.206 6.717 572.582 6.939 253.639 5.319
+676.384 498.002 6.417 570.135 6.662 254.506 5.134
+676.543 499.530 5.983 568.221 7.602 260.355 7.520
+676.700 503.915 6.417 570.602 7.447 266.833 6.189
+676.859 499.299 6.010 568.766 7.525 256.548 7.394
+677.018 496.943 8.183 572.507 6.352 255.925 6.946
+677.176 503.749 6.496 569.545 6.738 262.609 5.909
+677.334 500.817 6.043 569.785 6.240 265.106 4.881
+677.493 500.368 6.323 569.677 6.633 256.391 6.235
+677.652 500.313 7.128 570.376 6.894 256.233 5.302
+677.811 499.483 6.432 570.463 7.035 260.952 8.312
+677.968 495.174 7.118 570.764 7.034 261.779 5.898
+678.128 495.281 6.087 567.957 6.662 258.307 6.573
+678.286 497.892 6.134 569.799 6.919 260.093 6.813
+678.445 502.868 6.991 571.308 7.543 256.140 7.917
+678.603 497.618 6.042 567.753 6.458 256.631 6.534
+678.761 501.826 6.450 563.047 6.847 265.616 5.710
+678.920 501.508 6.231 565.760 7.055 262.466 7.571
+679.078 498.655 6.315 569.107 7.201 246.624 6.983
+679.234 504.926 7.535 570.081 7.603 254.256 5.136
+679.392 505.909 5.709 564.540 6.188 275.192 7.776
+679.551 498.699 6.189 567.575 7.035 263.021 5.386
+679.709 497.727 6.315 572.085 7.635 243.070 8.068
+679.866 498.547 8.528 568.310 7.894 253.140 6.958
+680.024 502.325 5.663 565.323 6.759 272.291 3.407
+680.183 496.203 6.788 571.073 7.590 260.182 7.187
+680.340 498.362 5.648 570.410 6.782 247.491 4.439
+680.498 504.793 6.570 572.804 6.754 256.954 9.665
+680.655 501.488 6.657 567.918 6.841 267.429 8.685
+680.813 503.234 6.678 568.509 7.657 263.084 8.931
+680.970 499.792 6.713 571.425 7.951 254.310 7.405
+681.128 502.727 6.538 569.094 7.894 258.523 6.283
+681.286 502.227 6.784 571.091 7.295 256.015 8.663
+681.445 499.632 6.058 570.941 6.408 262.390 5.112
+681.604 497.856 6.847 570.319 7.424 257.373 8.978
+681.762 498.998 6.891 573.943 7.112 255.073 7.619
+681.921 500.800 7.372 576.659 7.294 257.100 5.478
+682.080 500.338 6.412 569.736 6.816 266.951 7.336
+682.238 500.813 5.786 570.807 9.025 260.069 10.290
+682.396 500.608 6.061 574.458 6.771 248.010 7.081
+682.554 502.106 6.763 572.844 6.943 253.520 9.744
+682.712 496.721 6.245 566.728 8.404 272.325 9.342
+682.870 499.867 6.035 572.297 8.059 261.493 8.667
+683.026 500.718 6.453 575.453 7.192 246.164 4.214
+683.185 502.547 6.446 573.474 7.241 255.291 6.077
+683.343 501.015 5.972 568.224 6.919 273.662 7.232
+683.501 500.660 5.945 569.672 6.460 264.976 6.808
+683.658 500.266 5.823 574.306 6.503 249.339 4.795
+683.816 501.532 6.254 572.123 6.642 255.563 4.106
+683.974 502.435 5.841 571.681 6.466 264.695 4.408
+684.133 499.964 6.557 570.836 6.356 261.087 6.201
+684.291 495.629 6.062 571.258 6.447 249.410 7.834
+684.449 503.826 6.251 569.012 7.085 269.254 5.411
+684.609 502.118 5.835 569.670 7.070 267.762 10.702
+684.767 499.591 6.357 574.446 7.253 247.267 5.402
+684.925 505.165 5.592 572.244 6.392 255.112 4.613
+685.084 502.851 5.544 566.342 6.499 273.981 4.260
+685.243 503.878 6.523 572.323 6.771 257.299 10.368
+685.401 501.688 6.219 576.383 6.639 243.743 8.712
+685.559 501.836 5.712 571.403 7.071 259.567 9.370
+685.717 503.738 5.928 565.604 6.567 280.455 8.084
+685.874 500.427 6.744 571.046 6.830 256.734 10.250
+686.031 497.434 6.689 576.810 6.867 237.657 7.064
+686.189 502.584 6.216 572.738 7.078 256.426 4.768
+686.348 504.535 6.022 565.797 6.969 281.404 5.566
+686.506 501.825 5.847 571.698 6.393 255.624 4.614
+686.664 501.568 5.664 573.037 6.571 249.886 4.751
+686.822 505.075 6.133 571.920 6.593 259.658 5.377
+686.981 503.820 5.483 568.229 6.516 268.086 4.782
+687.140 503.498 5.592 570.092 6.555 259.730 4.730
+687.297 502.735 5.546 574.400 6.212 246.937 5.237
+687.455 503.697 5.803 571.684 7.231 254.539 4.787
+687.615 500.097 5.450 567.396 6.471 267.945 5.688
+687.774 501.810 5.607 569.944 6.245 261.979 3.948
+687.933 503.588 5.708 573.589 6.409 254.119 6.637
+688.091 504.785 5.476 573.745 6.524 252.961 6.751
+688.249 507.247 5.685 570.157 6.676 262.119 8.583
+688.407 509.552 5.455 569.141 6.815 267.111 8.153
+688.564 506.885 5.714 574.291 6.483 253.161 3.766
+688.721 507.168 5.658 574.242 6.483 252.441 5.148
+688.880 506.571 5.745 571.922 6.190 259.114 3.692
+689.039 507.515 5.623 570.469 6.222 267.151 4.256
+689.198 505.735 5.868 571.734 6.402 259.731 5.871
+689.356 505.967 5.506 575.687 6.287 249.077 4.863
+689.513 505.979 5.545 574.076 6.151 253.940 4.944
+689.672 508.179 5.772 568.500 6.356 270.159 5.022
+689.832 506.151 5.550 571.595 6.292 260.271 3.792
+689.990 509.751 5.412 574.676 6.233 247.542 3.978
+690.148 510.857 5.579 573.336 6.841 256.965 5.137
+690.308 511.298 5.579 570.133 6.483 270.719 3.468
+690.467 512.173 5.758 569.111 6.953 265.447 7.877
+690.624 511.141 5.869 575.071 7.738 247.504 7.088
+690.781 510.431 5.762 572.360 6.636 257.775 7.235
+690.940 506.014 6.057 572.673 6.588 265.017 4.419
+691.099 507.110 6.418 572.186 6.775 256.540 4.523
+691.257 507.041 5.600 573.691 6.331 253.655 4.474
+691.414 508.980 5.426 574.357 6.189 254.526 4.067
+691.573 513.809 5.468 572.573 6.174 264.205 3.924
+691.733 512.918 5.654 571.225 6.060 268.812 3.685
+691.891 509.349 5.969 576.492 6.800 248.638 4.244
+692.050 510.843 5.574 576.284 6.855 248.786 7.166
+692.208 512.058 5.765 569.952 6.359 269.277 3.503
+692.368 509.740 5.551 573.219 6.093 264.322 3.479
+692.526 510.707 5.535 576.322 6.015 247.413 3.487
+692.684 512.297 5.476 573.863 6.181 257.614 4.310
+692.844 511.343 5.594 573.038 6.112 264.706 5.241
+693.003 511.053 5.503 575.470 6.106 256.957 5.336
+693.161 512.040 5.577 575.604 6.383 254.329 5.580
+693.320 513.740 5.665 574.076 6.223 256.093 5.157
+693.479 512.557 5.761 573.190 6.190 264.390 5.610
+693.638 513.015 5.529 573.382 6.245 258.763 4.836
+693.797 513.840 5.587 575.913 6.460 251.617 6.302
+693.956 514.348 5.717 573.699 6.184 260.396 4.653
+694.116 514.983 5.527 572.937 6.105 264.533 4.375
+694.275 513.429 5.699 574.599 6.292 253.765 4.306
+694.433 513.144 5.461 577.546 6.212 252.397 4.166
+694.591 514.471 5.719 573.165 6.178 263.634 4.618
+694.750 515.974 5.675 573.861 6.422 261.696 4.661
+694.909 515.329 5.831 576.648 6.396 247.496 3.966
+695.067 516.263 5.574 572.926 6.544 261.435 6.226
+695.226 518.822 5.572 571.689 6.660 265.974 7.779
+695.385 516.768 5.639 577.166 6.689 256.409 6.390
+695.543 511.617 5.602 577.351 6.385 246.794 5.302
+695.701 515.916 5.784 572.973 6.238 258.587 4.621
+695.861 516.169 5.483 570.769 6.339 268.755 4.607
+696.019 515.821 5.519 575.317 6.168 254.967 4.087
+696.177 517.158 5.561 577.333 6.291 247.149 4.438
+696.335 518.931 5.593 573.283 6.389 264.881 6.039
+696.495 518.569 5.855 571.582 6.411 265.628 5.449
+696.653 518.505 6.295 575.115 6.755 253.366 3.883
+696.811 517.565 5.887 574.841 6.613 252.533 4.404
+696.970 515.705 5.578 573.758 6.150 264.855 5.436
+697.130 516.347 5.647 572.857 6.845 261.028 3.648
+697.289 513.983 5.384 574.618 6.271 254.180 4.571
+697.448 514.299 5.745 575.466 6.426 256.321 3.806
+697.608 515.873 5.613 574.784 6.275 262.883 3.881
+697.767 518.228 5.560 573.457 6.528 261.548 5.004
+697.925 518.432 5.777 574.214 6.228 252.475 4.530
+698.083 518.394 5.815 574.882 6.320 254.984 5.297
+698.242 516.684 5.621 572.988 6.489 263.809 4.305
+698.401 516.516 5.791 574.959 6.636 258.728 4.962
+698.560 515.395 5.670 575.869 7.234 251.437 4.128
+698.718 517.214 6.058 573.288 7.003 264.364 9.601
+698.876 516.622 6.584 573.432 6.440 259.773 12.821
+699.034 514.666 6.097 576.214 7.261 252.877 8.249
+699.192 514.486 7.005 574.592 7.405 252.018 6.978
+699.350 515.894 5.835 570.345 6.451 270.450 5.558
+699.509 516.509 5.695 572.203 6.565 264.934 6.132
+699.667 517.305 5.723 574.462 6.588 253.009 4.848
+699.826 519.643 5.694 577.214 6.277 249.730 4.219
+699.984 517.126 5.836 573.882 6.330 262.407 5.228
+700.144 518.401 5.508 572.798 6.027 264.134 5.063
+700.303 516.114 5.775 576.318 6.572 256.701 7.166
+700.460 516.831 6.024 575.483 6.488 254.117 5.232
+700.619 515.228 5.625 573.644 6.543 261.781 6.852
+700.779 516.112 5.492 571.476 6.318 263.037 3.921
+700.937 515.461 5.516 574.594 6.114 252.650 3.605
+701.096 515.374 5.619 575.696 6.288 254.386 4.052
+701.254 517.983 5.632 573.737 6.195 261.003 4.808
+701.414 516.579 5.754 573.087 6.392 259.450 4.255
+701.573 520.145 5.541 572.350 6.483 253.654 3.606
+701.731 520.831 6.402 575.163 6.412 256.586 5.744
+701.890 519.838 5.753 576.701 7.277 257.705 4.578
+702.049 517.338 5.704 575.527 6.278 257.037 6.729
+702.208 513.963 5.632 571.715 6.459 259.590 3.970
+702.367 516.179 5.441 572.247 6.142 259.375 4.504
+702.526 516.841 5.868 574.472 6.152 260.033 4.446
+702.684 515.118 5.617 573.724 6.496 255.940 5.564
+702.843 514.021 5.826 575.617 6.376 258.339 3.888
+703.003 516.850 5.963 570.836 6.287 265.793 4.971
+703.162 524.388 6.367 577.638 7.573 252.287 7.089
+703.319 524.933 6.295 579.026 7.342 241.772 6.449
+703.478 517.749 5.689 573.920 7.990 262.557 5.370
+703.637 522.017 5.810 570.939 6.259 275.555 5.293
+703.796 520.460 5.729 574.039 6.688 259.795 4.799
+703.954 517.234 5.746 576.800 6.475 251.767 3.245
+704.112 514.592 5.942 576.868 6.449 249.707 6.523
+704.271 513.605 5.752 574.498 6.034 265.687 4.262
+704.431 516.996 5.829 568.365 6.621 268.096 3.922
+704.589 522.769 6.917 578.133 7.204 245.040 11.596
+704.746 522.947 6.759 580.281 6.173 242.190 9.577
+704.904 516.479 6.382 572.112 7.075 266.011 11.236
+705.062 521.124 6.274 567.711 6.219 275.270 4.127
+705.220 520.611 5.658 576.067 6.339 253.642 3.926
+705.378 518.256 5.430 576.610 6.026 251.556 4.435
+705.536 517.322 5.489 574.726 6.114 262.595 6.616
+705.695 517.093 5.502 571.087 6.218 267.055 4.868
+705.853 517.371 6.076 572.870 6.532 250.160 4.507
+706.010 518.073 6.123 578.188 6.339 248.061 5.863
+706.169 517.340 5.956 573.872 7.091 260.220 5.474
+706.328 517.733 5.759 572.028 6.212 271.402 5.673
+706.487 520.737 5.599 574.770 6.424 254.984 6.078
+706.645 521.157 5.750 576.367 6.265 245.109 8.714
+706.802 521.271 5.854 575.323 6.264 259.181 6.096
+706.961 518.762 5.748 571.363 6.152 275.041 4.042
+707.120 521.187 5.567 575.143 6.173 255.470 5.365
+707.277 522.831 5.730 577.901 6.223 249.364 3.588
+707.436 520.018 5.515 575.899 6.245 256.053 4.359
+707.596 519.960 5.651 571.729 6.082 268.980 3.679
+707.755 520.389 5.624 573.527 6.376 260.519 3.532
+707.914 522.233 5.754 577.235 6.001 248.435 3.667
+708.072 522.112 5.490 576.312 6.083 254.214 5.010
+708.231 519.261 5.630 572.143 6.352 269.332 3.922
+708.389 521.142 5.602 573.511 5.995 260.513 4.606
+708.547 523.131 5.618 578.895 6.143 247.935 3.848
+708.705 524.331 5.491 575.699 6.308 255.229 3.994
+708.863 521.963 5.677 573.487 5.964 267.172 3.433
+709.023 524.349 5.547 575.474 6.135 260.391 3.660
+709.181 522.183 5.754 577.244 6.013 251.393 3.424
+709.339 520.571 5.529 575.732 6.135 258.963 4.055
+709.498 523.705 5.430 574.347 6.106 262.649 3.197
+709.657 521.737 5.536 575.133 6.068 257.536 4.569
+709.814 521.747 5.479 575.971 6.122 252.515 3.592
+709.973 521.457 5.566 575.189 6.082 258.185 4.810
+710.132 523.944 5.561 574.961 6.044 260.251 3.879
+710.290 521.799 5.540 576.089 6.122 259.332 4.611
+710.449 521.848 5.567 574.690 6.366 257.143 3.743
+710.607 522.508 5.631 575.626 6.082 256.261 4.970
+710.766 521.885 5.664 575.026 6.052 260.072 4.235
+710.925 521.438 5.673 574.780 6.092 259.820 3.727
+711.083 520.044 5.590 575.897 5.992 255.618 3.410
+711.241 519.750 5.540 575.369 5.983 256.386 3.703
+711.399 522.787 5.728 574.753 6.189 261.733 3.489
+711.558 519.727 5.699 575.737 6.299 257.487 4.111
+711.717 520.527 5.601 575.407 6.090 254.304 3.675
+711.875 523.005 5.578 574.954 6.034 260.033 3.552
+712.034 521.540 5.550 574.679 6.221 262.140 3.407
+712.193 520.755 5.639 576.256 6.105 253.911 4.832
+712.350 520.697 5.632 575.972 6.194 258.359 3.812
+712.510 520.417 5.601 573.159 6.029 262.863 3.730
+712.668 519.594 5.558 576.441 5.961 253.108 4.507
+712.826 520.276 5.606 575.324 6.095 255.041 3.582
+712.985 520.492 5.545 573.863 6.313 261.880 4.050
+713.144 520.634 5.791 575.628 6.073 260.368 3.675
+713.303 522.766 5.677 576.896 6.239 255.083 3.505
+713.461 519.817 5.671 575.899 6.137 253.750 3.564
+713.619 519.678 5.650 573.999 6.416 260.937 4.147
+713.779 520.166 5.633 573.880 6.260 263.559 4.216
+713.937 518.751 5.683 575.868 6.111 255.535 4.036
+714.095 518.827 5.471 576.598 6.199 253.785 4.871
+714.254 517.078 5.622 574.386 6.467 260.027 4.607
+714.413 515.350 5.535 573.293 6.118 262.900 3.570
+714.572 517.653 5.639 575.263 6.351 254.679 4.818
+714.730 518.256 5.496 576.362 6.054 252.526 3.418
+714.888 519.802 5.585 574.523 6.128 258.835 3.457
+715.048 519.088 5.553 575.205 6.059 264.498 3.815
+715.206 519.350 5.582 575.322 6.298 259.215 4.365
+715.364 516.553 5.642 574.603 6.331 253.712 3.664
+715.524 515.175 5.579 574.656 6.135 260.047 3.293
+715.683 514.971 5.548 573.406 6.271 261.540 3.896
+715.842 513.099 5.415 574.454 6.222 255.925 3.119
+716.001 510.411 5.523 574.434 6.024 254.879 3.713
+716.160 511.334 5.503 574.314 6.059 261.218 3.152
+716.319 513.933 5.579 574.263 6.142 260.122 3.351
+716.478 513.219 5.537 575.962 6.127 257.821 3.783
+716.637 515.362 5.432 574.799 5.996 256.308 3.952
+716.796 514.203 5.593 574.228 6.147 257.553 3.652
+716.955 514.432 5.503 573.792 6.092 258.385 3.598
+717.115 513.594 5.492 573.668 6.406 259.403 3.524
+717.274 512.526 5.500 574.616 6.077 259.344 3.759
+717.433 511.715 5.448 577.106 6.170 256.003 3.592
+717.592 511.487 5.509 574.131 6.415 256.870 4.102
+717.750 512.754 5.661 573.071 6.142 260.658 4.911
+717.910 512.757 5.519 574.530 6.059 259.596 3.805
+718.068 511.957 5.502 576.025 6.255 255.566 4.040
+718.226 510.819 5.490 574.550 6.288 259.115 4.584
+718.385 512.878 5.491 571.925 6.417 262.101 3.855
+718.545 512.928 5.751 575.439 5.989 257.851 3.734
+718.704 512.509 5.486 577.224 6.074 254.858 4.446
+718.863 513.015 5.519 574.162 6.223 259.848 3.513
+719.022 513.170 5.572 571.261 6.110 260.988 3.651
+719.182 514.221 5.522 573.852 6.108 257.489 3.719
+719.341 514.822 5.370 575.798 6.147 255.604 3.646
+719.499 515.138 5.576 574.668 6.074 257.476 3.894
+719.660 514.801 5.571 575.676 6.189 262.304 3.284
+719.819 514.468 5.626 573.146 6.370 257.813 4.165
+719.978 515.274 5.495 575.571 6.088 255.468 3.940
+720.136 515.562 5.516 574.885 6.112 258.304 3.463
+720.295 515.235 5.513 574.438 6.023 259.603 3.651
+720.455 515.322 5.413 574.424 6.185 257.696 3.525
+720.614 514.753 5.547 574.504 6.082 257.057 3.315
+720.774 515.247 5.512 574.445 6.149 259.880 3.181
+720.933 517.112 5.586 574.074 5.983 259.468 3.592
+721.092 516.681 5.498 574.870 6.295 257.414 3.583
+721.251 516.256 5.553 574.638 6.098 256.544 3.869
+721.410 515.992 5.719 574.486 6.134 258.805 4.171
+721.569 516.840 5.462 574.664 6.211 259.428 3.528
+721.728 515.508 5.516 574.576 6.189 257.974 3.247
+721.888 514.765 5.592 574.325 6.162 258.149 3.668
+722.048 515.807 5.618 574.283 6.087 257.441 3.631
+722.206 516.108 5.416 575.452 6.161 257.324 4.419
+722.365 516.821 5.437 574.564 6.166 259.973 3.449
+722.525 516.308 5.507 573.875 6.153 259.169 3.555
+722.684 515.833 5.546 574.838 5.993 257.081 3.371
+722.843 516.158 5.499 573.878 6.100 257.480 3.978
+723.002 516.411 5.516 573.428 6.098 260.644 4.170
+723.161 516.054 5.463 574.234 6.132 259.826 3.704
+723.320 514.970 5.442 572.822 6.062 257.828 3.661
+723.479 515.089 5.397 573.118 6.091 257.238 3.132
+723.639 514.020 5.564 572.461 6.133 258.332 3.898
+723.798 514.110 5.572 572.844 6.172 259.143 4.014
+723.958 514.151 5.530 573.958 6.323 258.411 4.915
+724.117 513.451 5.595 574.369 6.129 256.014 3.630
+724.276 516.624 5.478 574.383 6.020 258.240 3.584
+724.435 516.906 5.542 573.803 6.096 262.092 3.654
+724.595 516.059 5.540 574.938 6.181 259.430 3.470
+724.754 516.220 5.432 573.579 6.066 257.664 4.376
+724.914 515.072 5.496 573.895 6.193 259.496 3.390
+725.073 514.350 5.441 573.719 6.365 258.715 4.324
+725.232 515.183 5.364 575.037 6.053 258.327 3.438
+725.391 515.241 5.522 574.530 5.964 258.713 3.542
+725.550 514.372 5.540 574.805 6.028 257.947 3.461
+725.710 516.093 5.543 574.468 6.123 259.029 3.461
+725.869 515.540 5.675 574.414 6.010 258.560 3.936
+726.028 516.235 5.491 575.214 6.106 257.765 4.417
+726.186 516.272 5.481 574.452 6.118 257.797 4.036
+726.345 515.522 5.404 574.234 6.253 258.228 4.148
+726.504 515.355 5.449 574.192 6.351 258.632 4.489
+726.663 514.813 5.510 575.111 6.283 258.756 3.785
+726.822 515.608 5.432 574.771 6.290 257.897 3.592
+726.982 515.856 5.538 575.327 5.988 258.828 4.081
+727.141 516.028 5.402 573.963 6.226 259.138 3.614
+727.300 514.990 5.490 574.489 6.132 257.611 3.378
+727.460 514.379 5.544 574.874 6.156 260.076 3.945
+727.619 514.743 5.553 573.638 6.298 260.130 3.788
+727.779 515.137 5.570 574.126 6.064 260.271 3.418
+727.938 515.131 5.578 574.131 6.240 257.682 4.033
+728.097 516.011 5.516 574.351 5.971 257.886 3.786
+728.256 516.240 5.499 574.363 5.996 261.128 3.081
+728.416 515.602 5.798 574.593 6.108 257.941 3.638
+728.575 515.456 5.436 574.706 5.966 255.199 3.522
+728.733 515.174 5.499 573.707 6.256 257.222 3.154
+728.894 514.951 5.473 573.457 6.154 261.372 3.673
+729.053 515.389 5.564 574.304 6.052 258.343 4.428
+729.211 515.623 5.604 574.643 6.249 254.813 3.656
+729.370 515.056 5.467 574.386 6.020 257.308 3.926
+729.530 514.980 5.413 573.593 6.235 260.813 3.701
+729.689 516.669 5.469 574.066 6.219 257.098 3.772
+729.848 516.906 5.517 575.460 6.115 254.280 5.854
+730.006 514.569 5.484 574.434 6.330 256.902 3.762
+730.165 514.935 5.650 573.324 6.384 261.549 4.356
+730.325 514.789 6.099 573.453 6.846 260.395 5.001
+730.484 514.867 5.450 574.544 6.393 254.413 5.216
+730.643 514.538 5.609 573.475 6.665 257.974 4.370
+730.802 516.215 5.471 572.724 6.254 260.509 4.460
+730.960 521.942 5.632 574.407 6.431 258.655 6.982
+731.118 519.379 5.653 575.214 6.261 253.416 5.017
+731.277 511.643 5.798 572.952 6.384 257.584 4.611
+731.436 516.756 5.613 573.059 6.341 259.455 3.355
+731.595 516.207 5.692 573.010 6.918 259.714 4.642
+731.754 515.402 5.898 573.780 7.334 256.537 8.447
+731.912 516.654 5.883 575.057 6.929 257.065 6.902
+732.071 516.186 5.527 573.750 6.331 259.230 4.985
+732.229 516.421 5.810 573.147 6.262 257.732 3.898
+732.388 517.514 5.704 575.961 6.240 256.297 5.234
+732.548 520.405 5.617 574.289 6.345 258.973 4.229
+732.706 518.804 5.486 574.523 6.374 259.439 4.467
+732.865 517.618 5.843 573.845 6.089 257.594 3.943
+733.023 517.156 5.454 573.788 6.193 256.735 3.830
+733.183 516.501 5.618 573.637 6.103 258.337 3.993
+733.341 517.855 5.447 573.256 6.713 257.843 4.563
+733.499 517.098 5.754 573.532 6.668 256.888 7.298
+733.658 515.191 5.480 573.115 6.774 257.358 5.062
+733.817 514.691 6.019 571.611 6.715 261.503 5.729
+733.976 516.147 6.035 572.626 6.273 258.265 5.099
+734.135 516.131 5.550 574.036 6.467 255.472 6.472
+734.294 518.621 5.566 575.100 6.581 256.634 4.527
+734.452 521.546 5.720 574.051 6.224 259.706 4.114
+734.611 521.385 5.578 574.720 6.347 257.477 3.958
+734.769 517.583 5.522 575.197 6.023 258.294 4.826
+734.928 517.355 5.558 574.452 6.188 258.562 4.119
+735.087 515.283 5.685 574.554 6.255 259.825 4.384
+735.246 512.382 5.606 573.575 6.284 257.268 4.355
+735.405 513.673 5.658 574.725 6.389 255.952 4.175
+735.564 514.746 5.426 574.327 6.047 256.529 3.549
+735.723 517.227 5.759 573.793 6.199 260.405 3.996
+735.882 517.032 5.538 573.918 6.055 258.294 3.735
+736.041 519.860 5.497 573.789 6.068 256.512 3.610
+736.199 517.778 5.643 574.617 6.020 260.295 3.660
+736.359 517.527 5.538 573.096 6.098 259.092 3.391
+736.519 517.265 5.694 573.561 6.172 258.450 3.678
+736.678 516.892 5.551 573.905 6.092 257.514 3.803
+736.836 516.439 5.628 574.119 6.070 257.375 3.748
+736.995 514.344 5.567 572.861 6.235 260.153 5.121
+737.155 513.923 5.450 573.468 6.210 258.191 5.080
+737.314 515.289 5.506 574.904 6.255 255.111 3.762
+737.473 515.872 5.529 574.629 5.984 256.871 3.803
+737.633 516.718 5.449 572.856 6.049 264.538 3.263
+737.792 518.317 5.696 574.538 6.140 256.905 3.740
+737.950 518.773 5.510 574.735 6.058 252.479 3.289
+738.109 518.937 5.508 573.597 6.074 262.084 3.810
+738.269 518.679 5.484 571.896 5.981 263.720 3.665
+738.427 516.716 5.447 575.129 6.106 255.637 4.260
+738.585 514.537 5.518 575.001 6.145 252.046 3.739
+738.744 513.335 5.490 572.420 6.290 261.280 3.596
+738.904 514.943 5.492 572.374 6.095 264.172 3.920
+739.063 515.139 5.562 575.483 6.010 250.301 4.760
+739.220 516.361 5.582 575.924 6.056 251.513 3.689
+739.379 517.823 5.527 573.489 6.119 260.915 3.622
+739.539 515.458 5.509 571.234 6.128 266.479 4.289
+739.698 517.734 5.705 574.732 6.086 257.434 4.034
+739.855 517.637 5.572 576.187 6.121 253.194 3.510
+740.014 517.236 5.478 572.931 6.053 259.321 3.381
+740.173 516.842 5.529 572.599 6.071 262.593 3.782
+740.332 516.278 5.421 574.606 6.247 255.645 3.448
+740.491 516.452 5.522 574.686 6.100 255.516 3.705
+740.649 515.854 5.454 574.336 5.984 257.375 3.692
+740.809 515.958 5.520 571.843 6.238 263.923 4.295
+740.968 516.089 5.517 572.558 5.981 260.459 3.913
+741.126 515.310 5.502 575.035 6.308 253.124 3.984
+741.284 516.583 5.569 572.910 6.237 254.691 3.555
+741.443 516.865 5.502 572.509 6.100 261.886 3.534
+741.603 516.288 5.490 573.085 6.089 260.528 3.518
+741.761 516.452 5.473 574.880 6.063 252.785 3.794
+741.918 517.814 5.482 574.578 6.366 252.927 3.482
+742.077 517.488 5.671 571.515 6.065 264.189 3.789
+742.236 516.944 5.445 572.995 5.963 261.731 3.741
+742.395 516.329 5.571 574.800 6.023 254.227 3.601
+742.553 516.753 5.484 574.338 6.316 254.332 4.716
+742.713 516.567 5.541 572.083 6.063 263.233 3.289
+742.873 516.625 5.507 572.560 5.965 261.622 3.526
+743.031 515.806 5.442 573.995 6.379 253.626 4.049
+743.190 515.868 5.523 573.930 6.143 255.506 3.636
+743.349 515.778 5.548 572.489 6.461 261.135 3.568
+743.508 517.567 5.533 572.834 6.044 259.751 3.765
+743.668 518.545 5.491 573.708 6.090 259.447 3.716
+743.826 517.775 5.426 575.627 6.197 255.454 3.480
+743.985 517.367 5.593 573.786 6.078 260.064 4.263
+744.144 516.513 5.532 572.907 6.112 260.900 4.031
+744.303 515.815 5.387 573.919 6.126 256.379 3.906
+744.462 515.868 5.559 575.029 6.258 255.993 3.627
+744.622 516.118 5.671 574.860 6.362 256.989 3.776
+744.782 515.371 5.424 574.098 6.168 259.919 4.251
+744.941 516.513 5.412 574.401 6.055 257.329 3.612
+745.100 518.175 5.539 573.884 6.175 258.423 3.579
+745.260 519.571 5.841 573.278 6.434 262.614 4.887
+745.418 518.125 6.092 573.682 6.930 259.936 8.214
+745.576 514.891 5.984 575.286 6.483 255.989 7.434
+745.734 516.278 6.030 574.232 7.865 258.279 10.774
+745.892 516.662 6.219 572.582 7.521 259.552 9.063
+746.050 513.586 6.465 574.045 6.671 258.465 4.264
+746.208 514.025 6.105 575.070 6.894 254.504 6.201
+746.367 516.500 5.910 573.650 6.345 258.015 4.624
+746.526 517.495 5.915 576.026 6.331 259.620 4.853
+746.685 517.925 5.743 574.400 6.083 259.136 4.262
+746.844 515.669 5.802 576.334 7.058 259.901 4.246
+747.003 518.096 5.977 574.873 7.002 256.169 5.964
+747.162 517.210 5.733 575.008 6.133 259.881 5.366
+747.321 514.172 5.867 575.380 6.655 261.748 3.995
+747.480 515.731 5.754 574.623 6.493 258.637 5.903
+747.638 516.507 5.637 575.806 6.365 251.836 5.549
+747.796 516.475 5.643 574.598 6.224 255.168 5.468
+747.955 510.414 6.817 571.956 6.727 260.641 7.851
+748.112 522.094 6.981 577.549 7.357 260.616 14.853
+748.270 520.321 5.748 573.025 6.577 260.146 7.647
+748.427 522.783 6.802 577.050 6.447 247.911 3.970
+748.585 537.417 5.662 576.010 6.609 259.259 4.595
+748.744 536.134 6.221 575.750 6.467 263.832 7.143
+748.902 531.821 6.031 575.907 6.839 253.918 4.703
+749.061 533.618 5.804 575.619 6.291 255.689 6.920
+749.220 538.326 6.065 576.586 7.153 261.896 11.662
+749.378 535.563 6.870 576.745 8.402 260.409 11.218
+749.535 530.625 7.213 578.827 6.529 254.044 11.440
+749.693 530.136 6.206 576.618 6.185 252.050 6.089
+749.851 537.991 6.403 572.876 6.340 254.810 7.906
+750.009 534.259 5.935 570.288 6.430 264.998 6.308
+750.169 538.332 8.333 577.072 7.079 255.570 6.494
+750.326 532.673 6.896 578.620 10.144 253.255 12.753
+750.483 522.216 7.901 571.316 8.952 256.472 5.932
+750.641 525.642 7.346 571.223 10.485 270.314 11.554
+750.800 522.736 6.217 570.522 7.709 262.643 7.233
+750.957 518.587 5.957 575.695 6.188 246.256 4.318
+751.115 520.085 6.675 573.597 7.463 254.022 4.773
+751.273 521.270 5.945 572.676 6.279 262.350 4.840
+751.433 521.212 5.903 575.416 9.345 261.633 6.796
+751.591 521.162 6.357 573.074 8.039 260.646 6.311
+751.749 509.341 6.446 571.470 6.897 255.176 7.606
+751.908 504.393 6.740 573.384 7.174 263.711 3.886
+752.067 501.653 5.914 571.033 6.759 258.577 20.193
+752.224 500.486 5.728 572.270 7.473 256.325 10.046
+752.381 498.974 5.513 573.812 6.481 253.243 9.680
+752.539 503.709 5.949 574.348 7.164 260.602 7.670
+752.698 502.347 5.807 573.753 7.348 255.966 5.909
+752.856 504.533 5.596 573.627 7.293 257.249 4.226
+753.015 507.085 5.617 573.776 6.467 261.202 4.412
+753.173 507.290 5.648 571.887 6.462 262.232 3.849
+753.332 505.682 5.969 570.789 6.375 262.812 10.529
+753.490 498.506 8.986 574.008 9.232 259.588 8.374
+753.648 507.035 8.196 574.250 6.624 256.915 11.966
+753.805 497.300 7.160 574.322 8.978 253.839 19.573
+753.962 497.213 5.395 577.283 6.869 262.178 14.935
+754.119 501.992 5.832 572.902 7.065 263.531 12.876
+754.277 508.969 5.967 575.259 6.763 255.455 6.236
+754.435 509.799 5.776 568.652 6.439 256.594 6.094
+754.595 514.188 5.673 574.016 7.555 259.355 7.250
+754.753 516.231 5.856 575.340 6.982 257.743 9.371
+754.911 516.492 5.918 575.123 7.309 253.577 9.457
+755.069 514.194 5.704 572.611 7.222 261.815 5.111
+755.228 515.382 5.832 573.206 6.115 261.178 4.707
+755.387 509.883 5.742 569.282 6.304 255.051 7.176
+755.545 512.268 5.964 571.352 7.995 256.150 10.205
+755.703 512.172 6.356 574.103 7.270 258.811 8.016
+755.862 509.661 5.693 575.911 7.069 264.818 4.953
+756.021 515.756 5.749 575.259 7.383 258.638 11.420
+756.179 517.677 5.584 575.042 6.451 254.866 7.179
+756.337 516.716 5.819 575.570 6.849 257.348 5.249
+756.496 517.057 5.956 574.295 6.095 262.493 5.408
+756.655 520.420 5.704 573.033 7.017 258.144 3.757
+756.813 521.354 6.082 575.210 8.958 253.931 6.869
+756.971 517.693 6.356 572.892 6.889 258.779 7.574
+757.129 518.566 5.773 573.858 6.617 262.737 12.931
+757.288 515.525 5.930 574.078 6.972 256.937 5.296
+757.446 512.825 5.658 575.350 6.936 254.369 6.404
+757.605 513.168 5.653 570.493 6.488 264.283 6.451
+757.765 517.371 5.462 574.165 7.570 260.862 4.836
+757.923 517.963 6.634 574.891 6.896 254.448 5.043
+758.081 517.789 5.960 575.709 7.666 257.864 5.549
+758.240 519.457 6.215 574.007 7.497 261.418 6.674
+758.399 518.704 6.100 574.080 7.854 259.974 5.855
+758.558 521.287 5.740 573.520 6.366 258.059 11.065
+758.716 515.752 6.087 576.315 7.100 256.880 9.522
+758.874 517.407 6.461 574.063 6.528 258.968 4.664
+759.033 516.734 5.658 573.620 7.219 256.589 8.446
+759.190 516.437 6.081 575.306 7.012 255.495 7.680
+759.350 512.204 5.774 572.913 6.911 260.284 4.121
+759.509 514.132 6.963 574.009 7.907 261.072 8.734
+759.668 518.461 7.085 574.260 6.774 258.390 4.909
+759.826 518.654 7.373 575.452 6.721 257.313 5.123
+759.984 520.076 5.924 575.574 7.276 255.603 5.710
+760.142 519.900 6.046 573.935 6.551 258.156 7.902
+760.300 518.149 6.286 573.309 6.286 257.021 5.313
+760.459 520.901 6.300 573.503 6.568 256.550 5.097
+760.617 517.649 6.580 574.785 6.938 259.775 5.448
+760.776 515.246 5.914 573.477 7.238 257.407 5.364
+760.935 514.372 5.775 571.994 7.093 256.164 5.426
+761.094 511.893 7.358 574.139 6.584 255.281 6.899
+761.251 519.549 5.643 573.581 6.730 258.732 4.792
+761.409 519.285 6.079 574.855 9.763 256.757 7.338
+761.567 517.292 5.888 573.198 6.626 257.077 5.587
+761.726 517.242 5.632 574.062 6.413 257.000 4.728
+761.884 516.522 6.204 574.620 6.575 258.450 8.884
+762.043 515.855 5.833 574.626 6.494 257.184 6.729
+762.201 517.908 6.143 574.796 6.765 252.771 8.578
+762.359 519.979 6.997 575.758 6.574 259.407 6.605
+762.517 519.029 5.528 572.697 6.675 259.144 5.759
+762.676 519.700 6.396 574.347 7.394 254.491 5.903
+762.835 516.897 6.939 576.293 7.091 253.404 9.361
+762.993 513.079 5.964 571.693 6.391 265.234 4.279
+763.153 516.270 6.819 575.047 9.424 258.462 10.701
+763.311 514.832 6.557 576.080 7.681 249.614 5.519
+763.469 516.218 5.960 573.100 7.785 254.666 9.299
+763.627 519.852 6.145 574.561 6.686 263.806 5.429
+763.786 518.628 5.696 572.935 7.621 262.228 5.219
+763.944 516.836 5.605 575.079 6.424 256.422 4.235
+764.102 517.648 5.715 575.140 6.881 254.634 4.252
+764.261 517.776 6.215 573.491 7.225 263.396 6.015
+764.420 514.827 6.105 573.064 6.506 265.024 4.319
+764.579 518.848 6.557 575.260 8.555 254.870 7.440
+764.738 518.458 6.259 574.912 6.669 253.488 4.755
+764.896 514.534 6.342 574.609 6.472 260.824 8.813
+765.054 518.985 5.898 571.426 6.644 261.078 5.677
+765.212 517.419 5.962 574.064 7.058 256.610 4.713
+765.371 516.304 5.909 574.720 6.327 255.886 5.148
+765.530 516.823 5.521 573.757 6.367 257.128 7.785
+765.688 517.528 6.211 574.017 6.225 263.141 5.015
+765.847 518.445 5.900 574.100 6.851 255.831 6.063
+766.005 518.474 5.689 575.211 6.352 254.408 6.034
+766.164 517.144 5.535 574.402 6.740 260.394 7.374
+766.322 513.751 6.086 574.554 7.222 263.493 6.019
+766.480 518.217 5.798 574.585 6.699 257.474 3.888
+766.639 519.682 6.376 577.505 7.844 253.184 9.745
+766.796 514.836 6.580 575.505 7.750 258.541 11.556
+766.955 518.728 6.459 572.415 6.733 264.355 6.122
+767.113 518.417 5.711 575.004 8.533 258.353 6.926
+767.271 517.424 6.928 575.920 8.004 253.813 7.945
+767.428 516.314 5.885 574.549 6.712 256.758 6.734
+767.587 517.893 6.485 573.575 6.506 261.467 9.523
+767.745 518.449 6.630 574.345 6.672 258.004 10.283
+767.903 515.104 6.154 575.093 6.641 254.840 5.314
+768.063 515.331 5.800 574.351 7.305 258.108 4.915
+768.222 518.563 5.665 573.493 6.731 261.181 5.398
+768.381 517.655 6.087 575.294 6.489 259.861 8.144
+768.539 517.036 5.863 574.843 8.029 258.298 6.934
+768.696 519.640 5.890 575.148 6.240 259.773 9.326
+768.854 517.686 5.813 573.631 7.625 260.477 4.704
+769.013 517.126 5.945 573.756 7.251 259.164 9.134
+769.171 512.641 6.490 574.157 6.392 257.641 7.251
+769.330 514.466 6.484 575.081 7.461 258.496 11.330
+769.488 522.864 6.245 575.040 7.999 256.954 5.840
+769.646 515.168 6.082 571.990 6.719 256.739 5.695
+769.805 515.891 5.927 574.219 6.169 258.157 5.859
+769.964 518.059 6.158 574.892 6.451 255.431 8.204
+770.122 514.620 5.652 575.899 6.514 259.874 6.166
+770.281 520.396 5.804 574.189 6.355 256.768 7.379
+770.439 516.814 5.742 573.821 6.507 258.477 5.449
+770.597 518.908 5.546 574.728 6.731 254.874 3.948
+770.755 519.759 5.864 576.077 6.820 257.288 7.760
+770.914 514.967 5.663 573.770 6.430 258.342 7.422
+771.072 515.359 6.428 573.237 6.772 258.923 11.147
+771.231 516.083 5.791 573.752 6.628 255.079 8.956
+771.389 517.220 5.997 574.487 6.331 256.560 7.227
+771.547 515.912 6.000 573.174 7.017 259.455 7.774
+771.705 516.579 6.117 573.871 7.188 258.644 4.812
+771.864 519.505 6.192 574.428 7.440 252.926 5.595
+772.022 518.555 5.842 574.274 6.258 259.249 3.893
+772.181 519.765 5.695 574.562 7.870 260.482 3.979
+772.338 519.287 6.123 573.515 6.303 258.314 5.036
+772.498 516.772 5.678 572.465 6.827 256.303 9.003
+772.656 513.737 5.935 570.184 6.899 257.603 15.093
+772.814 516.737 5.702 571.371 6.472 263.756 9.255
+772.972 523.307 6.606 570.683 8.115 252.537 6.650
+773.130 522.133 6.100 573.336 6.417 257.275 6.192
+773.288 535.141 6.454 575.893 6.527 256.602 8.432
+773.445 534.941 5.808 573.108 6.322 252.256 7.032
+773.603 536.819 6.046 574.551 6.108 257.092 8.999
+773.761 537.478 6.072 574.865 6.629 258.840 5.660
+773.920 532.404 6.534 574.518 7.145 252.978 9.725
+774.077 535.884 6.430 573.305 7.046 257.129 10.233
+774.235 531.608 6.060 575.283 7.086 259.991 5.518
+774.394 534.216 6.470 574.082 7.139 252.209 9.726
+774.552 529.802 8.125 574.560 8.302 256.712 10.085
+774.710 541.278 6.466 572.495 6.952 258.797 7.183
+774.868 530.242 9.605 575.565 10.090 252.798 15.020
+775.024 543.432 8.034 575.925 10.306 262.318 19.355
+775.180 538.074 7.298 574.049 11.133 257.763 16.966
+775.338 540.110 6.086 571.800 7.431 259.577 5.169
+775.496 536.601 6.205 574.878 7.372 257.145 6.434
+775.656 528.926 6.162 574.408 6.450 263.041 6.208
+775.815 529.509 5.945 572.114 6.831 263.530 4.327
+775.973 516.135 6.585 576.031 8.606 247.285 9.487
+776.130 510.861 6.647 571.860 8.237 254.022 8.730
+776.287 506.548 18.305 573.908 16.904 263.000 22.523
+776.443 508.605 10.288 569.849 24.026 260.760 28.574
+776.599 498.936 10.738 576.988 13.988 260.747 12.601
+776.756 503.089 7.044 570.639 8.685 261.397 12.303
+776.913 502.770 6.718 569.956 10.292 252.444 12.496
+777.071 503.157 6.649 576.029 11.604 262.774 9.219
+777.230 507.861 5.547 570.080 7.429 257.987 9.274
+777.387 497.988 6.082 575.960 6.475 259.499 6.870
+777.545 499.159 7.545 575.849 9.439 256.825 20.061
+777.701 504.371 9.555 575.978 15.404 254.768 16.870
+777.857 493.273 7.745 574.339 11.505 262.097 28.438
+778.013 491.032 7.204 576.443 10.174 253.581 18.231
+778.170 492.220 7.912 569.474 7.821 263.965 8.485
+778.328 485.662 6.666 577.394 8.158 267.029 7.800
+778.485 502.706 7.045 581.574 7.817 253.420 13.914
+778.642 508.227 6.695 576.655 8.594 254.684 16.864
+778.799 514.312 7.279 578.176 9.424 264.516 7.686
+778.957 515.353 6.700 575.751 8.304 259.325 9.164
+779.114 512.843 6.635 575.227 8.142 256.493 4.614
+779.272 514.778 5.938 577.972 7.435 259.144 8.180
+779.431 509.487 5.985 573.999 6.855 261.561 8.639
+779.588 503.474 5.918 576.250 7.177 260.185 9.630
+779.746 508.594 6.865 577.472 11.311 252.451 4.995
+779.904 509.506 6.311 575.344 7.390 260.184 4.520
+780.063 517.155 5.621 575.153 7.908 262.341 5.646
+780.222 519.871 6.773 577.651 8.303 254.403 10.745
+780.379 514.798 7.635 575.286 9.341 259.774 11.586
+780.536 520.258 6.097 578.112 7.526 255.247 10.961
+780.695 522.912 6.128 577.131 6.769 266.852 5.541
+780.855 519.669 5.602 579.141 7.970 262.078 6.235
+781.013 519.486 5.802 576.961 7.447 256.930 7.045
+781.172 518.464 6.698 579.089 7.475 258.609 6.254
+781.330 516.514 6.732 573.510 9.571 257.296 5.857
+781.488 517.045 6.258 576.985 9.255 255.452 6.298
+781.646 515.970 6.230 578.889 6.622 256.434 5.330
+781.806 516.889 5.829 576.608 6.459 258.904 5.374
+781.965 514.968 6.462 581.766 7.123 252.549 8.127
+782.123 517.239 7.347 577.097 8.031 263.595 12.972
+782.280 518.802 6.258 576.841 7.789 253.995 13.484
+782.439 518.148 6.281 581.968 7.171 260.790 5.711
+782.598 519.211 6.602 579.629 7.333 260.507 7.473
+782.757 515.772 7.936 581.996 6.840 261.075 9.311
+782.914 517.067 7.006 585.180 8.309 261.280 6.371
+783.073 517.930 7.278 585.681 7.654 259.662 7.231
+783.232 516.329 8.846 579.866 7.457 263.026 9.763
+783.390 518.103 7.072 582.498 9.258 261.900 14.405
+783.547 519.381 6.887 585.295 9.743 253.159 13.015
+783.705 514.933 7.439 584.513 12.553 256.231 14.779
+783.863 517.739 8.014 581.895 7.839 270.892 10.864
+784.020 518.007 6.329 587.559 8.709 260.698 16.298
+784.177 517.760 7.460 584.885 9.562 255.127 9.509
+784.334 515.517 7.009 586.968 7.549 263.211 8.487
+784.492 519.775 7.294 585.979 8.898 265.422 9.667
+784.649 516.857 7.553 586.479 7.837 259.894 9.110
+784.807 516.668 6.071 584.274 8.095 258.748 7.569
+784.966 515.326 6.296 583.582 7.351 264.957 13.911
+785.123 517.583 6.300 586.315 7.154 260.909 5.700
+785.283 516.335 7.381 586.973 8.180 259.959 10.660
+785.440 517.593 6.606 584.789 9.043 263.409 10.354
+785.599 516.365 6.135 585.668 6.707 258.784 8.141
+785.756 518.573 6.879 589.006 7.604 261.367 12.251
+785.915 513.365 7.333 587.080 8.251 260.673 11.393
+786.074 517.743 8.323 586.840 7.618 265.296 7.718
+786.232 514.967 6.768 587.498 9.621 258.432 10.685
+786.391 516.009 6.830 586.455 9.455 262.384 7.414
+786.549 514.190 8.017 586.294 8.199 263.953 10.940
+786.707 519.601 7.680 587.993 11.596 258.869 13.100
+786.865 515.206 6.716 587.389 8.150 261.638 8.789
+787.022 517.302 6.145 584.133 8.091 263.206 9.418
+787.180 517.033 8.547 585.481 6.786 261.802 5.361
+787.339 514.380 8.822 584.294 8.031 258.478 11.134
+787.497 513.983 8.321 586.933 11.378 261.674 12.418
+787.655 517.829 8.736 583.909 9.432 266.846 15.658
+787.812 513.708 7.144 585.779 13.456 262.098 17.462
+787.969 517.547 6.885 586.737 7.645 258.971 9.634
+788.128 515.065 6.525 584.497 7.334 263.869 4.423
+788.286 519.040 5.943 586.445 7.713 262.538 7.059
+788.444 516.010 6.099 586.194 7.035 259.305 6.466
+788.603 517.040 6.828 585.652 9.004 261.653 5.690
+788.760 516.970 6.039 585.426 7.081 264.226 6.594
+788.920 514.889 7.359 583.934 7.622 263.502 5.791
+789.079 515.758 5.960 584.529 7.811 261.795 11.922
+789.237 515.287 7.079 586.685 7.877 260.378 8.368
+789.394 518.062 6.150 586.116 6.928 260.303 6.124
+789.553 517.070 6.598 585.771 7.149 260.043 13.444
+789.711 516.890 5.820 586.547 6.769 260.060 6.781
+789.869 516.618 6.264 583.515 6.973 264.230 10.415
+790.028 515.376 6.549 584.665 7.828 255.442 7.649
+790.186 513.443 5.943 584.616 7.161 263.774 10.324
+790.343 516.334 6.687 585.626 6.527 258.527 8.450
+790.501 514.583 6.106 582.986 6.950 263.365 10.542
+790.660 518.595 5.802 583.689 6.750 262.093 4.543
+790.819 516.135 5.936 585.706 7.315 261.680 8.238
+790.977 516.581 5.607 583.277 6.894 261.446 3.871
+791.136 516.005 6.291 583.532 6.717 260.304 5.446
+791.295 515.590 5.813 580.405 7.315 261.683 6.242
+791.454 516.345 5.917 582.094 6.995 261.276 4.590
+791.613 515.693 6.157 584.491 7.351 258.352 9.567
+791.771 516.527 5.785 582.994 7.603 263.023 5.824
+791.931 516.415 5.958 582.319 7.195 256.680 7.701
+792.090 515.694 7.264 582.723 7.125 259.236 5.284
+792.248 517.316 5.648 582.107 7.176 261.482 7.132
+792.406 516.623 6.498 579.411 6.570 259.174 7.116
+792.564 517.146 6.873 581.504 7.434 262.181 7.027
+792.723 516.841 5.863 581.935 8.181 265.171 8.276
+792.881 516.378 6.454 582.249 7.165 260.681 7.280
+793.039 517.533 5.926 581.112 6.695 258.706 8.529
+793.196 516.505 6.493 580.561 7.453 259.657 6.578
+793.355 517.835 6.502 582.955 7.809 260.326 13.430
+793.514 515.978 5.718 580.879 6.980 258.933 8.338
+793.672 516.759 6.179 580.638 6.566 258.169 11.358
+793.830 517.627 5.840 579.026 6.922 262.081 5.863
+793.990 517.056 6.036 579.580 7.205 260.800 6.511
+794.148 516.690 6.115 578.865 7.643 259.438 4.688
+794.307 517.296 5.962 579.608 6.435 259.194 4.146
+794.467 515.873 5.693 579.476 6.940 260.591 5.298
+794.625 517.178 5.884 579.914 6.672 259.595 9.145
+794.783 516.431 6.191 579.099 6.619 259.245 5.295
+794.942 518.334 6.325 577.331 7.635 257.852 5.201
+795.101 518.583 5.750 578.093 7.204 259.328 10.426
+795.260 516.275 5.674 578.170 7.079 258.143 5.531
+795.419 517.972 5.743 578.751 7.178 259.011 6.516
+795.578 517.049 5.722 578.857 6.690 256.980 3.798
+795.737 515.900 5.819 577.858 7.293 259.189 5.948
+795.896 517.139 5.594 578.838 7.470 258.621 5.202
+796.055 517.141 5.884 577.538 6.833 262.576 8.527
+796.213 518.181 7.278 575.075 9.748 261.495 7.626
+796.371 517.161 5.733 580.700 6.810 259.174 10.748
+796.529 516.471 6.424 576.677 6.604 256.071 8.087
+796.687 516.074 6.265 580.976 8.444 256.990 7.511
+796.846 515.690 7.328 579.359 7.755 258.319 5.908
+797.005 516.257 6.368 580.413 8.825 258.203 3.819
+797.163 516.822 7.220 580.384 6.924 259.452 10.559
+797.322 518.398 6.777 579.823 7.739 259.474 7.151
+797.480 515.154 7.172 579.648 8.173 258.394 6.587
+797.638 517.141 7.949 579.766 9.114 257.903 15.432
+797.794 516.641 8.002 579.987 7.219 258.849 6.687
+797.952 517.146 7.291 581.439 8.563 258.358 8.812
+798.110 516.591 8.049 581.234 10.177 259.223 14.663
+798.267 515.815 6.341 582.722 9.458 259.272 9.174
+798.425 515.788 6.428 579.557 6.953 261.722 7.902
+798.584 514.887 5.948 580.035 8.020 261.317 9.929
+798.743 516.668 7.081 579.390 8.131 261.373 14.172
+798.900 515.436 6.527 581.783 9.335 255.703 18.009
+799.057 517.014 6.442 581.837 8.258 259.187 10.391
+799.216 516.570 7.457 582.018 9.374 260.551 11.947
+799.374 516.385 9.210 582.930 10.177 260.525 12.814
+799.532 514.853 7.153 579.469 9.996 260.735 14.103
+799.690 517.038 7.593 577.884 8.316 265.107 11.810
+799.849 517.130 6.609 580.458 6.967 257.391 12.098
+800.007 515.731 6.226 582.364 7.745 256.703 6.842
+800.165 516.697 8.477 580.323 8.695 257.937 9.721
+800.323 516.577 6.233 581.683 9.965 262.819 11.247
+800.481 514.855 8.282 582.116 11.546 261.088 8.472
+800.639 516.488 6.830 582.401 8.116 258.690 8.214
+800.796 515.734 7.068 581.574 9.131 259.586 10.535
+800.955 516.097 8.032 582.775 9.810 260.535 7.271
+801.112 517.281 7.725 582.247 7.917 257.785 17.646
+801.269 514.962 7.764 581.752 7.183 264.167 12.013
+801.427 516.259 9.259 583.847 10.936 259.451 15.663
+801.585 515.072 8.296 583.498 10.787 264.664 14.813
+801.742 517.910 7.830 585.865 8.911 257.716 15.667
+801.899 517.019 6.817 582.828 7.668 260.257 12.157
+802.057 516.210 6.303 583.738 8.507 261.572 11.667
+802.215 515.772 8.676 587.997 12.042 257.045 15.786
+802.372 515.067 6.348 585.260 9.358 259.710 8.331
+802.530 515.730 10.473 587.862 8.032 263.437 11.542
+802.688 515.457 6.242 585.468 9.743 262.184 8.259
+802.847 516.454 5.810 589.734 8.817 259.131 16.326
+803.004 516.734 8.619 585.467 10.253 261.951 7.302
+803.163 515.577 6.903 587.254 8.969 261.279 11.398
+803.320 517.475 7.106 587.422 9.390 262.112 8.368
+803.478 515.434 7.514 585.714 9.081 260.981 15.940
+803.635 516.234 7.018 587.567 7.763 259.929 8.181
+803.793 517.062 7.118 587.045 10.704 261.579 8.948
+803.951 514.560 8.147 588.470 7.613 257.445 7.193
+804.109 515.325 6.696 588.764 6.888 258.584 11.254
+804.267 515.253 6.744 588.247 8.265 261.705 9.695
+804.425 516.112 7.219 588.072 7.906 265.687 7.132
+804.584 515.931 7.241 586.610 7.824 263.626 10.205
+804.742 515.999 6.501 587.966 9.054 259.446 10.214
+804.901 514.960 5.908 588.499 6.842 262.774 6.401
+805.060 516.099 5.708 587.825 8.292 263.217 7.423
+805.218 516.731 6.792 586.788 7.687 262.582 10.197
+805.376 516.767 5.768 586.227 7.432 262.065 8.484
+805.535 516.687 7.538 587.382 7.569 262.930 7.629
+805.694 516.007 6.921 584.983 6.740 260.779 10.920
+805.852 516.430 6.977 586.479 8.574 260.907 7.859
+806.009 517.364 5.602 586.004 7.036 260.559 5.742
+806.168 516.543 5.801 584.040 7.583 261.915 7.436
+806.326 516.955 7.415 583.900 8.135 261.199 8.478
+806.485 516.439 6.291 583.049 6.949 259.892 7.115
+806.643 515.414 6.193 584.670 7.521 260.538 8.373
+806.801 516.114 6.102 581.776 8.291 258.735 6.982
+806.960 515.701 6.028 583.877 7.861 259.047 5.267
+807.118 516.697 5.995 584.418 7.792 258.450 7.791
+807.277 517.137 6.562 580.864 9.400 259.684 6.168
+807.435 517.911 5.914 580.098 9.109 260.336 9.753
+807.594 517.409 6.068 583.431 7.438 260.223 7.541
+807.752 516.834 5.929 582.334 6.483 260.142 8.565
+807.910 516.078 6.209 579.513 7.246 257.751 6.365
+808.069 516.150 6.211 582.405 7.358 261.487 6.782
+808.227 517.291 6.118 580.644 6.974 259.344 6.868
+808.386 517.062 6.685 580.786 6.842 257.353 4.885
+808.544 517.090 5.581 581.117 6.710 258.853 7.597
+808.703 518.180 6.047 578.691 6.716 259.898 5.830
+808.861 517.691 5.875 575.166 6.408 257.999 6.893
+809.020 516.947 5.806 577.911 6.333 260.360 5.600
+809.180 516.829 5.609 573.039 6.976 257.113 4.234
+809.338 517.298 5.553 577.770 7.009 257.871 5.824
+809.498 516.573 5.702 577.777 6.760 261.588 5.329
+809.657 516.735 5.604 574.057 7.460 257.875 5.840
+809.815 517.067 5.876 576.840 6.730 256.828 7.799
+809.973 517.010 5.638 576.658 6.449 256.908 5.564
+810.131 516.940 5.616 575.776 6.180 259.079 4.222
+810.290 517.619 5.523 574.977 6.151 258.720 4.617
+810.449 517.206 5.776 574.009 6.234 256.627 4.691
+810.607 517.382 5.637 573.690 6.223 258.286 4.530
+810.766 517.183 5.565 574.776 6.330 257.892 5.128
+810.925 516.871 5.794 574.457 6.294 259.418 5.598
+811.084 517.188 5.590 574.144 6.463 258.734 4.738
+811.242 516.921 5.742 572.611 6.172 257.517 6.401
+811.401 517.289 5.771 573.286 6.457 257.605 4.851
+811.560 517.282 5.684 574.432 6.455 258.026 5.619
+811.719 517.622 5.561 579.694 6.096 259.620 4.374
+811.877 517.896 5.594 574.386 6.187 258.396 3.583
+812.037 517.139 5.504 572.603 6.320 260.003 4.263
+812.196 516.651 5.730 575.026 6.256 258.810 4.917
+812.355 516.556 5.790 575.880 6.601 258.998 4.496
+812.514 517.595 5.698 577.458 6.273 259.790 5.591
+812.673 517.476 5.466 579.154 6.421 259.867 6.773
+812.832 515.704 5.625 589.131 7.084 260.288 4.594
+812.990 514.457 8.660 584.561 15.731 253.632 20.555
+813.148 516.624 6.014 585.115 7.787 261.086 5.746
+813.307 516.536 5.673 580.521 7.614 260.590 3.725
+813.466 517.915 5.671 575.035 6.256 256.345 4.697
+813.625 517.709 5.602 577.070 6.745 260.033 5.022
+813.784 516.817 5.498 575.550 6.057 259.110 4.234
+813.943 517.078 5.460 579.945 6.208 260.331 3.092
+814.103 517.360 5.592 578.139 6.062 259.303 4.624
+814.262 516.853 5.546 581.121 6.247 260.223 5.763
+814.420 517.118 6.044 580.161 6.275 258.522 5.627
+814.579 516.681 5.785 581.651 6.419 259.585 9.731
+814.737 516.656 5.570 580.896 6.280 261.185 4.732
+814.896 517.006 5.512 580.019 6.252 258.491 4.695
+815.054 516.600 5.610 580.840 6.192 258.764 4.566
+815.214 516.316 5.549 581.208 6.118 259.607 3.708
+815.373 516.353 5.414 581.302 6.114 260.216 3.933
+815.531 516.633 5.641 582.323 6.246 260.022 4.959
+815.690 515.796 5.466 581.193 6.081 260.540 3.941
+815.849 516.498 5.489 583.722 6.128 260.365 5.245
+816.007 517.985 5.609 575.147 6.205 259.743 4.059
+816.166 516.639 5.440 574.791 6.203 258.657 5.879
+816.325 517.016 5.544 572.367 6.070 258.106 4.400
+816.483 516.440 5.397 573.143 6.078 257.581 4.563
+816.642 517.734 5.421 572.501 6.018 257.025 4.084
+816.801 517.557 5.468 571.515 6.048 259.200 3.546
+816.960 517.235 5.448 572.095 6.008 257.762 4.282
+817.118 517.442 5.521 570.491 5.962 257.127 4.006
+817.276 516.764 5.438 571.404 6.019 258.591 5.761
+817.435 516.957 5.408 571.774 6.066 258.035 3.848
+817.594 516.649 5.454 573.077 6.073 257.410 4.103
+817.752 517.126 5.447 571.880 6.022 258.924 4.258
+817.911 517.071 5.480 580.938 6.776 260.919 7.016
+818.069 517.310 5.536 568.469 6.139 256.039 3.381
+818.228 517.303 5.624 572.744 6.520 259.270 3.924
+818.387 516.953 5.465 569.917 5.927 256.872 4.257
+818.546 517.079 5.550 565.859 6.034 256.788 3.827
+818.705 517.420 5.519 570.238 6.030 258.747 4.694
+818.864 517.444 5.428 566.432 5.959 255.237 3.904
+819.021 518.004 5.436 569.254 5.985 255.592 4.346
+819.179 518.470 5.592 570.902 6.065 258.575 3.523
+819.338 518.004 5.456 571.409 5.971 259.805 4.091
+819.496 517.490 5.398 571.334 6.060 254.628 3.875
+819.654 517.484 5.496 571.703 5.982 257.336 3.869
+819.812 517.374 5.464 569.887 5.985 258.483 3.865
+819.971 516.773 5.505 572.368 5.944 257.854 3.746
+820.130 517.257 5.568 573.063 6.043 256.648 3.905
+820.288 517.552 5.572 572.650 6.042 258.526 3.798
+820.447 517.535 5.462 572.836 5.974 258.995 3.945
+820.607 517.965 5.472 571.758 6.046 256.819 3.642
+820.765 517.639 5.458 573.207 5.978 257.048 3.792
+820.925 516.816 5.437 573.772 5.994 257.880 3.677
+821.085 516.618 5.542 574.107 6.012 258.078 3.518
+821.243 517.236 5.473 573.121 5.959 257.780 3.512
+821.402 517.322 5.548 572.511 5.999 258.037 3.681
+821.560 516.903 5.480 571.845 6.025 257.780 3.591
+821.719 517.459 5.417 571.568 5.975 257.737 3.423
+821.878 517.144 5.430 571.595 5.942 256.867 3.780
+822.037 516.991 5.498 569.926 6.051 258.248 3.276
+822.196 516.739 5.471 571.719 5.951 257.422 3.501
+822.355 515.587 5.501 570.477 6.163 256.094 3.613
+822.514 516.435 6.148 569.594 6.250 257.540 3.880
+822.673 513.514 6.560 569.226 6.172 259.845 3.907
+822.832 515.925 5.496 569.782 6.156 257.508 5.174
+822.992 514.679 5.597 568.557 6.025 256.705 4.020
+823.151 512.896 5.370 568.515 6.073 255.667 3.538
+823.310 514.679 5.429 569.235 5.973 260.086 3.522
+823.469 515.126 5.404 569.702 6.019 258.580 4.554
+823.628 515.241 5.555 569.787 5.964 256.685 3.316
+823.787 515.232 5.475 570.477 6.023 257.326 4.201
+823.946 515.722 5.615 570.154 6.059 258.053 3.925
+824.105 515.357 5.420 570.531 6.106 256.840 3.845
+824.264 514.793 5.408 569.765 5.990 257.138 3.682
+824.423 515.488 5.382 570.237 6.192 257.601 4.094
+824.582 514.594 5.475 570.642 6.017 258.006 3.768
+824.742 515.175 5.593 569.796 6.211 257.210 3.958
+824.900 514.431 5.711 569.088 6.168 256.642 5.347
+825.059 514.704 5.399 570.250 6.044 258.696 3.237
+825.218 514.707 5.390 571.042 6.026 257.727 4.435
+825.377 514.747 5.461 569.180 6.028 257.827 3.656
+825.536 514.987 5.492 569.761 5.936 257.578 4.162
+825.695 514.229 5.447 570.217 5.895 257.105 3.283
+825.855 515.702 5.428 569.252 6.091 259.021 3.608
+826.015 514.597 5.470 570.142 6.044 257.710 3.796
+826.173 515.006 5.601 570.421 5.896 256.987 4.517
+826.333 515.630 5.480 570.394 6.017 256.589 3.647
+826.492 515.216 5.486 569.783 6.091 259.055 3.887
+826.651 514.642 5.633 570.367 6.042 258.420 4.681
+826.810 514.456 5.442 570.163 6.033 256.484 3.876
+826.969 515.094 5.392 570.231 5.949 259.314 3.723
+827.128 514.351 5.494 569.732 6.027 259.103 5.275
+827.287 513.663 5.553 569.357 6.219 255.561 3.919
+827.445 517.016 7.049 569.653 6.655 257.315 3.407
+827.605 515.140 6.230 569.686 6.510 256.943 6.685
+827.764 514.481 5.493 569.456 6.508 258.289 4.395
+827.922 514.534 5.517 569.924 5.992 258.252 4.989
+828.082 514.535 5.491 570.669 6.101 257.832 4.700
+828.241 514.635 5.448 569.656 5.991 258.288 4.365
+828.400 515.126 5.415 569.976 6.111 257.082 3.992
+828.558 515.671 5.435 570.169 6.089 257.310 3.728
+828.717 515.136 5.452 570.991 5.986 257.793 4.663
+828.876 515.231 5.474 570.069 6.170 258.007 3.782
+829.036 515.292 5.463 569.670 5.940 258.120 4.164
+829.194 515.562 5.679 571.226 6.068 257.401 3.943
+829.353 514.795 5.561 570.972 6.193 257.914 4.479
+829.513 514.568 5.539 570.309 6.077 258.609 4.263
+829.671 515.395 5.430 570.163 5.940 257.036 4.608
+829.830 515.074 5.489 570.001 5.994 256.880 3.997
+829.989 514.570 5.520 569.860 6.102 258.338 3.749
+830.148 515.065 5.532 569.738 6.029 258.113 3.717
+830.308 514.620 5.497 570.537 6.007 256.891 4.242
+830.467 514.986 5.420 570.125 5.989 256.788 3.930
+830.626 514.369 5.654 570.321 6.013 258.547 3.526
+830.786 514.323 5.450 570.283 6.047 258.135 4.073
+830.945 514.333 5.406 569.942 5.990 257.681 3.399
+831.105 515.103 5.840 570.889 6.077 258.306 4.822
+831.264 515.161 5.632 569.718 6.159 257.263 3.853
+831.423 514.371 5.633 569.927 6.019 258.912 3.977
+831.581 515.553 5.529 570.099 5.985 257.029 4.439
+831.740 514.595 5.395 570.211 6.062 258.610 4.145
+831.900 514.966 5.485 569.532 5.947 258.626 3.922
+832.059 514.649 5.528 570.265 6.006 258.196 3.814
+832.217 514.696 5.438 570.552 5.997 256.532 4.184
+832.376 514.967 5.508 569.985 6.009 257.535 4.213
+832.536 514.849 5.439 570.289 6.009 257.815 4.321
+832.695 515.068 5.440 570.192 5.940 257.348 4.257
+832.853 514.910 5.503 570.022 5.975 258.093 4.330
+833.012 514.749 5.395 571.500 6.014 257.850 3.972
+833.170 514.937 5.486 570.485 6.031 257.108 3.773
+833.330 514.569 5.549 571.034 5.980 257.231 4.218
+833.488 514.835 5.595 569.300 6.315 257.132 3.891
+833.647 515.348 5.442 570.743 5.942 259.021 4.431
+833.806 515.113 5.515 570.047 6.034 257.070 3.972
+833.965 515.111 5.472 570.540 5.903 257.270 4.093
+834.124 515.591 5.510 570.625 5.992 258.242 3.736
+834.283 514.996 5.527 570.476 5.999 257.962 3.473
+834.442 515.469 5.451 570.214 6.050 257.119 4.650
+834.601 515.134 5.527 570.192 6.071 257.431 4.439
+834.759 515.571 5.435 570.642 6.137 258.334 4.497
+834.918 516.075 5.583 570.376 5.966 258.563 3.425
+835.078 515.270 5.447 570.263 5.963 257.865 4.285
+835.236 514.882 5.564 570.792 5.939 256.558 4.378
+835.395 515.158 5.431 570.458 6.009 257.695 4.319
+835.554 515.501 5.463 570.924 5.981 257.687 4.383
+835.713 515.145 5.510 571.279 6.117 257.066 5.050
+835.872 515.121 5.443 571.042 6.186 257.610 3.747
+836.031 515.021 5.523 570.220 5.983 259.136 4.317
+836.189 515.290 5.430 570.592 5.987 257.311 3.880
+836.349 514.852 5.442 571.006 5.918 257.503 4.341
+836.507 514.698 5.496 570.220 6.055 256.515 4.198
+836.666 514.647 5.366 569.702 5.992 257.455 4.096
+836.825 515.276 5.405 570.027 5.925 259.074 3.319
+836.985 515.272 5.384 570.450 6.046 257.790 4.090
+837.144 514.742 5.509 569.664 6.031 256.827 3.833
+837.303 514.537 5.401 570.436 6.035 257.318 4.345
+837.462 514.505 5.546 570.324 5.956 257.973 4.317
+837.621 514.725 5.419 569.913 5.922 257.669 4.115
+837.780 514.417 5.474 570.359 5.945 257.386 3.756
+837.939 514.514 5.465 570.303 6.122 257.683 3.906
+838.098 514.735 5.525 570.533 5.995 258.026 4.563
+838.258 515.257 5.491 570.075 5.931 257.470 3.933
+838.417 515.132 5.472 570.350 5.970 256.894 4.578
+838.576 514.841 5.378 570.003 5.963 258.218 3.502
+838.735 515.048 5.447 570.060 5.964 258.142 3.986
+838.894 515.080 5.509 570.530 5.981 257.421 3.849
+839.052 515.670 5.401 569.615 5.901 257.294 3.642
+839.211 514.686 5.413 569.966 5.950 256.682 4.083
+839.369 516.346 5.516 569.999 5.954 257.436 3.458
+839.528 515.363 5.482 569.950 5.924 257.954 3.911
+839.687 514.933 5.432 570.359 5.990 257.659 3.899
+839.845 514.869 5.436 570.383 5.960 257.016 3.642
+840.005 515.648 5.381 570.103 6.034 257.370 3.614
+840.164 515.256 5.585 571.001 5.967 258.163 3.803
+840.322 515.532 5.385 570.670 6.059 256.611 3.770
+840.481 515.235 5.485 570.906 6.048 257.846 4.512
+840.641 516.002 5.484 570.419 5.963 257.598 3.876
+840.799 515.240 5.435 570.444 6.101 257.656 4.288
+840.958 515.082 5.478 570.534 6.006 257.796 3.321
+841.117 515.550 5.354 570.345 5.894 256.287 4.468
+841.276 515.005 5.380 571.013 5.958 257.832 4.152
+841.435 515.030 5.446 569.940 5.948 259.408 3.724
+841.594 515.230 5.383 570.689 6.016 256.654 3.470
+841.753 515.442 5.480 570.676 6.085 257.066 4.979
+841.911 514.914 5.432 570.636 5.999 257.590 4.003
+842.070 515.109 5.417 570.256 6.029 257.155 4.621
+842.229 515.171 5.375 569.702 5.961 258.551 3.830
+842.388 514.561 5.473 569.657 5.971 256.905 4.089
+842.546 514.995 5.424 569.786 5.893 257.839 4.009
+842.706 514.590 5.572 570.287 6.066 257.178 3.213
+842.865 515.075 5.435 570.462 5.983 256.391 4.159
+843.023 514.930 5.513 570.214 5.954 257.023 4.147
+843.182 514.569 5.411 570.552 6.035 257.610 4.364
+843.341 514.765 5.552 570.195 6.003 258.106 4.003
+843.500 514.677 5.519 570.152 6.056 257.171 3.876
+843.659 515.186 5.410 570.201 6.001 257.661 4.782
+843.817 514.851 5.496 570.492 5.929 257.516 4.272
+843.977 514.418 5.381 569.524 5.952 258.565 3.878
+844.135 515.734 5.441 569.765 6.005 257.105 3.882
+844.294 515.327 5.411 570.217 6.014 257.131 4.498
+844.453 515.293 5.471 570.762 5.982 258.031 3.870
+844.612 515.363 5.293 570.167 6.028 257.970 4.751
+844.771 515.233 5.401 569.961 6.073 257.559 4.765
+844.930 515.512 5.467 571.099 5.960 257.295 3.783
+845.088 515.335 5.482 570.081 5.955 258.123 4.264
+845.247 514.903 5.450 571.030 6.010 258.821 3.581
+845.406 515.179 5.558 570.690 5.950 257.448 4.492
+845.565 514.791 5.485 569.876 5.985 257.064 3.984
+845.724 514.927 5.476 570.118 5.943 257.530 4.767
+845.882 514.989 5.441 570.351 5.933 258.155 3.931
+846.041 515.580 5.348 570.533 5.992 257.921 3.508
+846.200 515.435 5.387 570.035 6.233 256.459 4.376
+846.359 514.964 5.506 569.880 6.003 257.004 3.970
+846.519 514.399 5.474 570.528 6.038 258.310 3.877
+846.678 515.374 5.410 570.395 6.111 258.153 4.223
+846.837 514.673 5.380 570.644 5.999 258.151 4.065
+846.995 515.016 5.533 570.916 5.979 256.901 3.406
+847.155 515.770 5.589 569.859 6.296 256.739 4.694
+847.314 515.057 5.633 569.918 5.993 257.827 4.072
+847.473 515.120 5.440 571.569 6.074 257.768 4.228
+847.631 514.371 5.552 569.515 5.960 257.247 3.720
+847.790 514.713 5.444 570.055 6.020 258.762 4.473
+847.950 514.787 5.378 570.210 5.938 258.927 4.347
+848.109 514.907 5.521 570.802 6.003 257.669 4.730
+848.267 514.649 5.415 570.278 6.000 257.036 4.153
+848.426 514.506 5.504 570.162 5.955 257.420 4.300
+848.585 514.925 5.493 570.791 5.995 257.544 4.011
+848.744 514.799 5.431 570.237 5.952 257.755 4.514
+848.903 514.888 5.473 569.982 5.877 256.547 3.984
+849.061 514.008 5.380 569.999 5.941 257.295 4.287
+849.220 515.530 5.436 570.810 5.972 257.992 3.888
+849.379 515.085 5.528 570.288 6.007 257.669 3.984
+849.537 515.180 5.416 569.892 5.936 256.276 4.082
+849.696 515.441 5.485 569.678 6.001 257.342 4.326
+849.855 514.714 5.489 570.386 5.988 257.833 4.246
+850.014 515.897 5.497 571.073 5.945 258.488 4.863
+850.173 515.009 5.537 570.500 6.009 257.684 4.073
+850.331 515.380 5.401 570.335 6.089 257.306 3.888
+850.490 514.893 5.494 570.763 6.176 258.043 3.961
+850.649 514.789 5.451 571.047 5.996 258.700 4.290
+850.808 514.667 5.363 570.230 5.954 257.677 4.467
+850.967 514.626 5.436 570.352 5.983 256.916 3.720
+851.126 514.996 5.415 569.313 6.088 257.739 4.791
+851.285 514.370 5.471 569.493 5.906 258.987 5.701
+851.444 513.943 5.427 570.334 5.985 257.149 4.668
+851.602 514.839 5.368 570.643 6.169 257.521 3.962
+851.761 514.948 5.582 569.906 5.988 256.795 4.285
+851.920 515.599 5.584 569.999 6.160 257.697 4.513
+852.079 515.266 5.427 570.410 6.003 257.237 4.517
+852.238 515.182 5.440 570.084 6.030 257.342 3.928
+852.396 515.171 5.449 570.340 6.085 256.763 4.770
+852.555 514.811 5.497 570.343 6.016 257.517 3.501
+852.714 514.518 5.531 570.123 6.160 258.455 3.668
+852.873 515.175 5.569 571.091 6.028 256.574 5.048
+853.032 515.261 5.442 570.270 5.978 257.535 3.737
+853.191 514.842 5.526 569.952 6.032 258.215 4.372
+853.350 514.568 5.561 570.809 5.946 257.382 6.198
+853.509 515.145 5.564 571.028 5.991 257.843 4.939
+853.667 515.541 5.525 570.220 5.994 257.408 3.963
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/plot.gp
0,0 → 1,19
set terminal png
set xlabel "time[s]"
set ylabel "acceleration [g]"
#set yrange [-1:1]
set autoscale y
 
 
#plot data transformed to G units. (3,3V/1024 * 0.8V/G)
k=3.3/1024.0*0.8 # sensitivity constant
zero_gravity=512.0
 
set output "sobeslav_tabor.png"
plot "sobeslav_tabor.txt" using 1:(($2-zero_gravity)*k):($3*k) with errorbars title "X", "" using 1:(($4-zero_gravity)*k):($5*k) with errorbars title "Y", "" using 1:(($6-zero_gravity)*k):($7*k) with errorbars title "Z"
 
set output "tabor_olbramovice.png"
plot "tabor_olbramovice.txt" using 1:(($2-zero_gravity)*k):($3*k) with errorbars title "X", "" using 1:(($4-zero_gravity)*k):($5*k) with errorbars title "Y", "" using 1:(($6-zero_gravity)*k):($7*k) with errorbars title "Z"
 
set output "olbramovice_benesov.png"
plot "olbramovice_benesov.txt" using 1:(($2-zero_gravity)*k):($3*k) with errorbars title "X", "" using 1:(($4-zero_gravity)*k):($5*k) with errorbars title "Y", "" using 1:(($6-zero_gravity)*k):($7*k) with errorbars title "Z"
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/sobeslav_tabor.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/sobeslav_tabor.txt
0,0 → 1,7516
time[s] X Xerr Y Yerr Z Zerr
+ 0.046 473.890 6.872 532.000 8.687 234.710 7.143
+ 36.855 491.998 8.301 528.890 7.523 243.507 10.614
+ 37.013 484.870 11.103 527.368 10.576 245.245 10.324
+ 37.171 472.998 10.415 531.113 15.568 255.832 13.671
+ 37.328 507.560 14.224 521.681 9.275 240.888 16.570
+ 37.484 480.195 9.528 525.366 9.038 242.018 11.094
+ 37.640 495.072 6.807 535.513 11.970 253.550 7.336
+ 37.797 493.460 8.822 528.755 9.465 241.515 13.170
+ 37.953 499.164 13.158 527.657 12.693 264.725 12.399
+ 38.108 478.171 14.375 531.586 11.909 216.727 18.358
+ 38.264 497.611 10.331 541.385 10.139 254.107 8.122
+ 38.420 481.596 9.740 536.693 7.595 256.071 6.603
+ 38.578 489.296 11.327 532.667 9.156 254.970 6.038
+ 38.735 490.702 9.594 538.136 9.546 240.299 13.929
+ 38.891 503.607 14.932 531.641 7.071 239.763 16.721
+ 39.046 490.436 11.052 529.726 9.241 247.277 12.023
+ 39.204 488.504 9.922 529.177 8.956 259.212 7.060
+ 39.361 493.155 8.246 532.781 7.241 257.002 9.090
+ 39.518 488.641 12.690 537.947 10.876 240.420 17.286
+ 39.674 487.976 10.399 540.049 8.907 235.414 6.140
+ 39.831 498.499 10.493 533.740 7.603 253.154 7.265
+ 39.988 483.255 14.560 534.887 10.390 257.291 18.777
+ 40.144 489.872 16.587 536.049 12.744 250.872 23.112
+ 40.300 491.218 13.775 535.120 7.862 252.428 8.574
+ 40.456 491.622 8.430 535.851 10.267 247.634 5.483
+ 40.613 489.936 6.519 530.988 6.787 253.266 7.130
+ 40.771 492.159 8.485 536.369 8.497 243.912 10.078
+ 40.928 492.781 8.425 533.623 7.159 248.039 8.602
+ 41.085 484.697 13.785 533.456 15.099 238.490 12.979
+ 41.240 503.957 13.382 536.334 11.656 238.614 18.716
+ 41.396 500.379 10.057 532.893 13.252 252.646 14.751
+ 41.553 484.273 9.101 535.968 8.940 243.686 14.275
+ 41.709 493.702 14.335 537.909 9.563 245.836 12.366
+ 41.866 495.087 7.606 534.359 9.614 252.038 8.835
+ 42.023 486.170 11.688 539.193 11.618 248.330 20.960
+ 42.181 486.411 9.835 536.361 9.314 243.413 12.274
+ 42.337 490.174 11.270 536.273 10.110 245.714 10.059
+ 42.493 488.131 6.810 539.152 10.644 244.247 6.053
+ 42.650 495.871 10.049 536.531 9.115 252.652 6.794
+ 42.807 489.198 6.903 536.315 7.337 245.906 5.779
+ 42.964 492.002 9.901 533.663 7.239 238.369 12.595
+ 43.122 491.730 7.964 538.116 9.547 252.133 17.241
+ 43.278 491.807 14.397 536.571 6.734 244.281 20.860
+ 43.435 490.288 8.567 532.375 6.764 251.532 7.220
+ 43.591 491.382 7.200 534.803 6.241 251.195 7.027
+ 43.748 493.193 8.952 536.938 7.779 243.332 11.654
+ 43.904 494.511 9.919 537.609 12.005 247.573 7.456
+ 44.060 488.285 7.573 534.536 7.127 246.395 7.163
+ 44.217 495.072 6.500 535.475 7.070 248.093 7.498
+ 44.374 495.640 8.041 534.744 7.849 250.270 9.322
+ 44.530 491.026 7.100 537.187 6.503 246.672 6.367
+ 44.688 492.980 8.627 537.701 7.903 236.046 6.847
+ 44.844 488.319 7.504 534.867 8.231 250.710 8.928
+ 45.000 489.473 11.451 534.678 6.937 252.237 6.302
+ 45.158 492.604 10.619 534.426 9.089 256.092 10.698
+ 45.316 493.596 9.198 537.544 6.482 246.200 5.541
+ 45.473 494.475 8.382 537.715 7.515 237.342 5.294
+ 45.630 496.554 6.030 537.467 6.371 242.563 4.403
+ 45.788 491.555 8.149 536.174 6.326 246.085 4.018
+ 45.945 486.525 7.779 535.091 7.663 253.180 13.259
+ 46.102 491.875 7.837 533.991 6.692 251.671 4.799
+ 46.259 491.998 6.659 536.379 6.404 242.666 5.765
+ 46.416 492.640 6.720 535.183 6.427 246.076 5.283
+ 46.574 495.796 7.491 535.161 7.170 250.280 4.216
+ 46.731 493.657 6.686 535.951 6.945 249.482 9.138
+ 46.887 496.756 8.116 537.059 7.452 251.304 8.463
+ 47.044 497.297 10.795 539.080 7.002 246.573 12.199
+ 47.201 491.513 7.940 538.370 6.428 251.465 9.140
+ 47.358 500.235 7.564 534.473 6.008 260.384 9.774
+ 47.515 502.602 5.885 538.304 7.105 247.013 8.301
+ 47.672 499.716 8.880 537.753 6.419 238.550 17.363
+ 47.828 503.117 10.743 535.567 7.736 246.065 10.753
+ 47.985 499.351 7.814 534.985 8.331 250.480 9.162
+ 48.142 501.763 6.317 534.019 7.201 255.974 4.726
+ 48.300 496.567 6.227 534.890 7.169 249.219 6.444
+ 48.458 504.345 7.710 540.138 6.773 241.062 5.864
+ 48.617 507.643 13.119 537.731 6.880 244.720 14.025
+ 48.773 507.456 8.017 538.967 6.246 246.327 6.610
+ 48.930 515.494 10.851 535.269 10.531 236.283 19.961
+ 49.088 504.555 6.584 537.592 8.047 243.822 8.112
+ 49.244 503.845 10.305 534.845 6.116 259.258 3.716
+ 49.402 498.978 15.205 536.898 8.663 239.962 19.681
+ 49.558 500.289 6.977 538.209 8.149 242.989 16.196
+ 49.714 505.882 8.659 537.312 7.407 240.119 13.967
+ 49.871 506.808 10.078 538.303 7.745 251.061 12.350
+ 50.029 508.498 12.319 536.273 8.047 252.240 6.800
+ 50.185 500.345 8.424 534.722 7.345 243.312 6.711
+ 50.343 504.223 10.085 540.107 7.573 252.423 5.348
+ 50.501 509.322 6.205 536.261 6.840 247.564 4.325
+ 50.658 508.163 6.586 537.502 6.688 248.635 12.159
+ 50.816 512.081 7.737 535.325 7.718 247.426 6.545
+ 50.973 507.940 8.251 531.033 8.830 246.064 11.948
+ 51.129 508.829 7.926 537.700 7.797 238.370 12.599
+ 51.286 519.318 10.092 536.527 10.450 257.183 7.445
+ 51.444 508.243 8.506 538.765 9.255 228.791 13.889
+ 51.599 514.912 7.341 540.417 10.389 254.357 8.003
+ 51.756 511.129 10.315 536.464 11.264 247.863 10.549
+ 51.913 502.771 14.376 533.124 6.598 241.078 8.103
+ 52.069 515.997 7.878 536.591 7.611 239.730 12.518
+ 52.226 505.769 11.420 538.706 8.341 239.477 8.701
+ 52.382 516.727 8.725 534.277 6.272 246.534 6.362
+ 52.540 505.307 8.498 532.912 6.290 248.035 8.838
+ 52.697 507.323 10.234 538.949 7.213 233.690 6.976
+ 52.854 505.733 8.242 540.009 6.939 253.776 6.226
+ 53.011 508.047 9.826 537.440 6.338 250.497 12.116
+ 53.169 513.580 10.661 536.124 7.091 247.604 9.687
+ 53.326 498.675 13.037 538.841 10.988 244.586 7.584
+ 53.482 520.076 13.564 538.808 9.014 253.135 12.826
+ 53.639 501.230 8.341 543.058 6.793 254.951 5.332
+ 53.797 504.482 7.426 531.530 8.159 250.079 8.549
+ 53.954 506.344 7.913 542.835 8.873 240.070 9.233
+ 54.110 510.613 14.164 534.148 7.359 252.840 14.936
+ 54.266 505.066 7.451 531.511 6.656 255.768 8.804
+ 54.423 505.080 7.614 538.095 6.588 238.127 7.712
+ 54.580 510.340 9.974 539.471 6.062 241.371 7.002
+ 54.736 511.843 8.584 534.174 8.544 244.243 7.384
+ 54.893 501.858 7.825 534.391 5.944 246.452 4.943
+ 55.050 503.548 8.595 534.074 6.458 254.244 4.474
+ 55.207 502.605 7.269 536.330 6.491 244.542 4.748
+ 55.364 506.776 8.813 533.433 6.100 248.525 6.064
+ 55.521 503.127 7.903 535.704 7.896 243.365 8.491
+ 55.677 505.701 6.181 535.947 7.259 246.163 4.472
+ 55.835 501.747 10.256 534.729 6.201 248.421 5.255
+ 55.992 503.027 5.767 534.517 5.944 250.264 4.313
+ 56.150 501.540 7.175 532.725 7.658 246.082 4.864
+ 56.307 501.315 9.444 535.847 7.334 256.770 9.616
+ 56.464 497.983 11.833 535.268 6.394 222.667 5.662
+ 56.621 505.549 7.321 534.562 6.972 253.816 6.566
+ 56.779 505.695 6.850 534.565 7.686 260.888 7.612
+ 56.937 506.907 9.979 532.055 7.528 254.708 5.475
+ 57.095 494.319 8.467 538.560 6.510 233.587 8.394
+ 57.251 488.813 8.178 536.195 7.914 237.365 5.308
+ 57.408 504.468 9.229 530.212 7.531 247.833 10.706
+ 57.566 497.904 9.997 532.392 7.719 255.468 6.783
+ 57.723 498.969 8.705 536.464 6.994 238.274 6.312
+ 57.881 500.069 9.127 535.344 6.329 246.422 10.157
+ 58.038 494.950 12.439 533.763 7.971 250.364 9.125
+ 58.194 491.339 7.409 536.287 9.194 238.283 11.495
+ 58.350 490.213 9.928 537.682 10.947 241.432 8.730
+ 58.507 493.552 10.402 535.996 8.604 252.234 7.919
+ 58.664 485.625 10.325 533.450 7.492 247.712 7.806
+ 58.820 495.056 9.488 534.084 6.885 246.987 6.147
+ 58.977 498.730 13.487 533.780 9.474 252.379 9.457
+ 59.133 494.177 9.729 535.717 6.791 237.793 9.745
+ 59.289 482.681 14.204 533.177 9.198 240.917 9.648
+ 59.445 496.536 10.578 533.311 10.508 249.489 12.487
+ 59.603 495.785 13.234 532.363 6.623 252.624 15.330
+ 59.759 492.147 6.761 533.713 6.330 241.026 5.350
+ 59.916 492.651 7.988 532.137 9.185 247.650 5.675
+ 60.073 492.476 8.541 533.591 7.528 243.496 9.422
+ 60.230 491.584 7.948 532.686 7.058 253.565 7.371
+ 60.387 492.375 12.425 529.306 10.084 248.815 10.442
+ 60.544 493.533 11.089 532.863 16.091 244.448 26.434
+ 60.699 482.145 9.775 532.568 8.008 244.184 18.494
+ 60.855 493.561 12.217 531.365 9.063 251.761 8.451
+ 61.011 493.825 11.350 528.063 10.690 250.657 7.540
+ 61.168 491.228 7.995 526.930 10.176 243.826 11.504
+ 61.325 488.052 12.402 528.819 12.903 247.558 10.362
+ 61.481 502.940 13.297 517.288 13.816 236.685 16.329
+ 61.637 481.539 15.294 523.972 8.069 241.786 15.167
+ 61.793 491.455 12.056 518.939 13.429 249.727 8.579
+ 61.949 498.644 9.501 517.859 10.442 252.827 8.566
+ 62.106 491.416 9.184 527.108 7.910 245.388 9.276
+ 62.262 490.624 11.551 521.331 9.996 237.373 13.746
+ 62.419 482.306 8.735 528.623 9.178 239.713 10.544
+ 62.575 501.263 24.217 529.986 11.419 253.967 24.392
+ 62.731 488.302 12.922 526.959 10.844 249.619 6.632
+ 62.888 491.083 9.473 526.949 6.867 249.556 10.152
+ 63.044 489.920 9.797 526.419 8.828 248.685 7.816
+ 63.200 493.339 12.025 536.674 8.868 248.046 7.459
+ 63.357 497.363 11.217 526.576 6.777 244.120 7.995
+ 63.513 487.313 7.420 528.195 8.723 247.771 10.119
+ 63.670 491.983 11.572 523.922 9.210 246.517 6.587
+ 63.827 485.099 7.657 526.599 9.311 250.765 5.804
+ 63.985 503.011 12.840 529.756 8.968 258.357 14.818
+ 64.142 482.020 9.716 531.187 9.627 234.173 8.552
+ 64.299 507.640 8.728 534.261 6.662 252.301 9.544
+ 64.455 483.536 9.457 532.032 9.723 233.223 9.729
+ 64.611 489.785 11.079 530.770 10.661 254.752 8.530
+ 64.769 490.377 9.484 527.637 8.624 246.137 9.161
+ 64.926 486.213 11.525 532.436 9.105 250.491 10.089
+ 65.083 493.272 9.125 528.674 10.142 254.574 8.958
+ 65.240 488.252 10.633 535.996 8.079 235.435 10.147
+ 65.397 495.322 9.613 532.450 9.187 249.934 9.294
+ 65.553 470.103 8.925 531.054 9.868 232.739 12.325
+ 65.709 494.051 13.903 533.600 12.041 248.317 14.352
+ 65.866 488.520 8.283 532.096 9.463 257.543 6.752
+ 66.023 488.475 7.385 533.151 7.520 247.975 6.242
+ 66.181 495.694 9.341 532.791 7.530 254.289 10.127
+ 66.338 489.066 11.898 533.478 10.300 244.942 11.868
+ 66.495 488.740 8.694 535.264 10.053 241.419 7.683
+ 66.651 485.697 19.185 536.052 7.820 253.024 10.920
+ 66.807 490.657 11.983 533.340 11.575 249.980 10.891
+ 66.964 495.766 9.553 533.303 9.599 249.059 9.237
+ 67.121 489.437 7.806 530.343 9.766 247.750 8.666
+ 67.277 494.914 9.978 535.253 9.444 249.257 9.752
+ 67.433 492.999 8.063 534.042 8.983 252.662 9.150
+ 67.589 487.850 7.762 535.910 6.842 234.156 7.953
+ 67.745 494.968 11.816 533.319 7.901 247.701 17.275
+ 67.902 498.029 12.458 534.423 13.623 254.097 16.801
+ 68.057 501.330 16.697 533.704 9.334 244.161 13.283
+ 68.213 496.353 8.594 536.267 16.467 242.171 11.654
+ 68.370 489.443 9.976 536.872 8.078 244.551 8.639
+ 68.526 491.544 11.792 530.658 7.791 242.495 14.605
+ 68.683 492.065 9.398 535.016 7.907 255.594 7.835
+ 68.839 491.630 17.189 535.180 11.793 235.055 19.066
+ 68.994 491.596 9.617 535.161 10.769 240.360 11.533
+ 69.151 496.825 7.091 536.561 9.519 256.953 8.225
+ 69.308 497.778 12.856 536.035 9.537 243.549 12.131
+ 69.465 492.607 11.291 535.150 11.737 241.505 7.536
+ 69.622 490.826 11.632 537.561 8.291 248.045 12.548
+ 69.779 487.428 9.864 534.505 11.718 255.680 11.002
+ 69.936 492.194 7.987 532.585 9.448 258.436 13.236
+ 70.092 487.892 12.435 536.545 9.900 246.414 14.760
+ 70.248 493.018 8.474 536.645 10.192 239.914 9.628
+ 70.405 502.800 11.926 538.136 7.136 240.239 7.112
+ 70.562 495.628 10.645 534.451 9.860 253.552 8.707
+ 70.719 494.356 8.069 534.934 11.416 246.715 7.886
+ 70.876 489.933 9.365 534.109 8.987 246.667 6.594
+ 71.033 483.669 11.472 534.761 12.177 238.956 11.096
+ 71.192 490.266 13.829 533.717 7.071 242.719 9.784
+ 71.348 494.522 10.680 536.007 10.958 254.107 8.270
+ 71.506 494.575 8.269 536.030 8.858 262.321 6.228
+ 71.663 496.055 11.053 537.240 14.022 248.273 12.688
+ 71.819 492.440 10.780 539.032 9.061 237.482 13.329
+ 71.975 489.524 7.449 535.870 8.784 244.274 10.366
+ 72.133 494.615 11.967 534.018 6.630 255.062 11.924
+ 72.290 492.336 10.049 533.010 10.083 260.960 18.106
+ 72.447 488.423 11.665 534.640 10.049 240.089 8.617
+ 72.604 494.754 7.957 536.306 8.203 247.010 5.169
+ 72.762 495.947 9.743 537.863 9.259 246.340 8.423
+ 72.919 497.249 12.565 535.418 7.827 252.853 7.084
+ 73.075 495.762 7.566 536.034 6.966 244.288 9.073
+ 73.233 487.757 6.471 537.400 8.116 244.872 6.917
+ 73.389 487.077 11.071 531.854 8.003 248.518 11.730
+ 73.546 489.890 15.242 534.738 6.995 254.565 14.969
+ 73.703 491.598 11.350 531.307 10.429 261.475 6.070
+ 73.861 493.856 11.115 535.653 7.326 247.804 8.113
+ 74.017 495.488 9.029 535.106 8.165 239.868 7.762
+ 74.174 485.244 18.136 536.311 14.457 236.518 11.792
+ 74.329 480.012 11.755 533.143 7.990 248.655 11.048
+ 74.486 487.780 12.174 532.451 7.955 259.516 11.205
+ 74.644 492.567 9.093 535.004 7.037 253.425 5.576
+ 74.801 489.325 8.545 535.870 11.173 240.824 6.132
+ 74.958 491.293 12.060 537.698 8.459 239.028 6.366
+ 75.115 491.052 11.271 537.127 7.333 246.370 4.926
+ 75.272 492.550 11.431 536.581 9.090 249.503 13.238
+ 75.429 494.405 11.652 533.235 11.258 253.945 11.054
+ 75.586 493.774 7.425 536.812 11.138 249.529 13.349
+ 75.743 493.597 11.544 535.288 7.823 239.335 9.392
+ 75.900 489.316 12.197 535.373 7.900 247.853 8.658
+ 76.056 501.353 8.867 537.263 10.012 251.188 9.189
+ 76.212 497.253 9.663 534.852 8.270 234.011 10.152
+ 76.369 492.492 10.513 534.618 12.032 252.240 10.590
+ 76.527 494.274 8.729 537.906 12.493 248.842 10.175
+ 76.684 486.012 8.203 535.139 7.984 253.588 9.689
+ 76.841 488.740 11.578 534.881 8.624 258.705 6.831
+ 76.999 489.787 8.455 538.848 11.593 239.537 9.422
+ 77.156 490.067 7.653 538.838 11.116 239.675 9.574
+ 77.313 498.000 9.787 535.648 10.913 264.276 11.322
+ 77.470 491.490 13.559 535.836 12.653 243.692 22.320
+ 77.626 491.074 11.019 535.048 10.498 237.896 15.697
+ 77.782 488.790 12.377 540.840 14.729 246.718 14.236
+ 77.939 490.867 10.972 534.758 14.635 247.107 15.321
+ 78.095 498.088 9.260 531.687 10.661 267.671 8.145
+ 78.251 493.180 9.551 536.666 15.203 245.566 12.217
+ 78.407 494.371 10.228 540.556 11.937 232.895 11.881
+ 78.564 495.993 7.856 535.155 9.331 248.398 6.687
+ 78.721 488.930 9.048 532.301 9.298 250.274 7.234
+ 78.877 488.309 8.227 534.033 9.944 253.022 6.821
+ 79.034 493.413 12.704 535.180 8.362 251.690 15.690
+ 79.190 488.624 8.642 536.431 9.956 244.736 8.987
+ 79.346 489.956 8.472 534.614 9.271 251.197 6.818
+ 79.503 495.509 7.459 535.126 7.944 252.952 11.056
+ 79.660 493.665 9.353 536.361 8.656 248.929 7.564
+ 79.817 495.426 7.539 535.353 8.786 248.569 5.005
+ 79.973 489.374 6.825 535.433 11.235 240.255 12.703
+ 80.131 486.243 10.378 533.684 7.883 250.362 12.490
+ 80.287 490.392 10.567 535.826 8.497 245.413 8.663
+ 80.443 494.633 9.833 535.718 8.415 250.134 6.871
+ 80.601 494.616 8.162 533.487 8.467 254.171 7.255
+ 80.758 492.076 7.321 536.464 8.716 237.981 6.948
+ 80.915 492.070 8.280 536.684 8.609 239.249 11.088
+ 81.072 489.680 7.553 535.356 8.403 249.512 4.848
+ 81.229 492.156 6.189 535.153 7.567 246.385 6.259
+ 81.386 492.341 9.039 534.201 7.522 250.533 5.182
+ 81.543 489.823 8.201 536.172 7.717 247.955 6.675
+ 81.700 491.198 8.146 536.281 10.136 245.359 9.137
+ 81.856 496.192 7.119 534.122 7.200 246.493 5.564
+ 82.014 493.941 7.313 536.601 8.093 246.254 7.937
+ 82.170 496.589 6.784 534.286 7.987 246.372 8.173
+ 82.326 488.215 8.939 536.582 8.968 251.873 9.550
+ 82.482 482.442 8.764 534.695 7.419 243.278 6.821
+ 82.639 498.884 11.365 535.267 12.642 248.132 16.444
+ 82.796 497.708 8.628 536.512 9.776 248.561 9.047
+ 82.952 494.467 9.492 537.075 6.898 240.035 6.045
+ 83.109 492.234 7.620 536.120 8.186 250.110 6.216
+ 83.265 492.252 7.782 535.591 7.560 247.761 8.089
+ 83.422 492.932 10.229 535.085 6.882 250.437 6.697
+ 83.579 492.999 13.185 535.270 10.530 242.674 9.544
+ 83.736 487.120 8.854 535.982 7.248 243.406 9.791
+ 83.894 492.491 7.341 533.749 9.654 256.494 7.861
+ 84.050 491.744 7.013 536.057 7.705 248.154 6.294
+ 84.207 493.287 8.561 538.100 10.129 244.381 9.131
+ 84.364 492.372 8.927 536.941 6.640 244.033 13.321
+ 84.520 492.863 8.533 535.969 7.981 242.790 8.701
+ 84.676 486.468 9.751 535.869 8.475 245.217 10.344
+ 84.833 489.534 8.659 535.858 10.272 245.342 11.007
+ 84.990 492.305 7.898 534.078 8.465 248.053 8.379
+ 85.146 493.153 7.094 535.560 6.827 253.730 6.267
+ 85.303 494.441 7.118 536.855 7.672 249.767 6.426
+ 85.460 498.284 9.638 537.958 7.201 238.317 8.913
+ 85.617 496.822 10.303 536.629 6.915 251.133 4.080
+ 85.774 492.388 6.818 534.116 7.262 252.401 7.462
+ 85.931 492.833 7.217 536.071 8.088 246.094 9.525
+ 86.087 490.838 8.578 536.250 7.407 249.730 6.802
+ 86.243 490.448 8.632 534.992 8.404 242.627 7.499
+ 86.399 495.294 6.841 535.159 7.895 253.416 8.848
+ 86.556 495.242 10.315 536.661 7.400 246.694 9.561
+ 86.712 493.912 6.980 536.216 6.617 246.666 6.687
+ 86.869 495.119 9.012 536.012 12.412 243.406 11.901
+ 87.026 497.061 8.583 536.600 7.566 248.694 14.679
+ 87.183 489.040 10.182 536.856 6.738 245.216 19.729
+ 87.339 491.070 10.750 535.008 11.000 247.362 6.824
+ 87.497 498.480 15.077 535.030 10.518 248.673 9.134
+ 87.653 494.464 7.479 537.150 8.587 247.476 9.762
+ 87.810 489.574 10.669 536.561 9.017 243.324 8.474
+ 87.967 494.825 9.513 534.345 9.298 246.053 13.770
+ 88.123 487.288 6.679 535.753 8.132 243.000 7.673
+ 88.281 496.352 7.094 535.407 7.795 255.970 6.452
+ 88.438 494.823 8.516 535.324 8.189 250.779 6.794
+ 88.595 496.708 8.434 536.393 6.629 251.697 8.115
+ 88.752 495.127 10.201 534.374 8.601 248.127 12.367
+ 88.908 490.021 9.721 538.683 7.623 239.381 10.485
+ 89.065 491.630 6.210 535.946 6.299 253.253 7.398
+ 89.223 496.466 5.746 537.149 6.786 251.492 9.246
+ 89.380 503.284 12.542 537.191 7.657 243.844 11.834
+ 89.536 497.212 9.485 536.222 6.623 249.878 7.167
+ 89.693 498.382 9.811 539.502 6.581 245.308 10.188
+ 89.850 505.343 8.600 536.535 7.354 250.983 11.539
+ 90.007 508.543 6.158 532.815 6.673 250.949 11.747
+ 90.165 509.325 8.706 538.368 7.098 235.989 12.964
+ 90.320 495.983 6.920 536.883 7.322 232.539 9.470
+ 90.477 506.739 7.234 534.688 6.069 255.215 8.290
+ 90.635 506.357 8.066 535.247 6.187 250.752 6.070
+ 90.792 509.963 6.966 536.512 6.804 240.957 4.388
+ 90.949 513.189 5.719 536.095 5.846 245.869 3.743
+ 91.108 507.361 6.585 537.681 6.646 239.658 4.946
+ 91.265 509.413 7.119 537.556 5.932 243.326 4.598
+ 91.422 505.394 5.564 537.405 6.142 243.043 3.954
+ 91.580 506.583 6.411 537.354 6.222 251.750 6.732
+ 91.738 503.135 9.944 536.843 6.485 246.967 6.456
+ 91.896 503.441 21.197 534.408 10.103 251.979 20.160
+ 92.053 504.754 12.464 536.524 11.856 246.819 46.454
+ 92.208 511.037 9.967 537.025 7.930 245.678 11.574
+ 92.365 500.470 6.109 535.120 8.858 246.056 12.928
+ 92.522 494.974 7.394 537.241 7.043 247.160 5.560
+ 92.681 498.199 5.945 534.562 6.523 254.071 6.394
+ 92.840 491.972 6.652 533.365 7.608 252.480 10.865
+ 92.998 491.909 8.578 535.063 6.467 246.734 4.941
+ 93.155 494.609 6.667 538.120 6.711 240.507 3.758
+ 93.313 488.716 7.138 535.531 5.997 245.175 4.835
+ 93.470 479.807 6.420 533.295 6.098 250.851 4.848
+ 93.627 471.898 6.284 533.583 5.931 249.708 3.908
+ 93.785 471.978 5.812 535.895 6.262 252.107 3.557
+ 93.945 474.339 6.171 533.909 6.116 253.601 3.973
+ 94.102 477.003 8.189 535.809 6.930 250.586 6.256
+ 94.259 477.330 6.523 536.308 6.156 247.385 4.550
+ 94.416 477.913 5.655 536.503 5.789 247.423 5.487
+ 94.574 473.059 6.149 533.805 6.200 250.564 4.292
+ 94.732 470.200 6.530 534.718 6.015 251.415 4.822
+ 94.890 469.692 5.978 535.237 5.955 251.704 4.636
+ 95.048 472.736 5.538 533.352 6.213 254.517 4.500
+ 95.206 476.307 5.833 535.053 5.891 252.235 4.036
+ 95.364 489.393 5.466 537.970 5.800 252.252 4.494
+ 95.521 486.983 6.016 538.899 5.984 245.562 7.158
+ 95.679 491.909 5.487 538.909 5.922 245.805 5.015
+ 95.836 489.379 5.743 537.139 5.800 248.808 4.541
+ 95.993 487.843 5.407 536.691 5.823 248.768 4.241
+ 96.150 488.938 5.533 534.826 5.679 252.717 3.476
+ 96.308 488.469 5.445 534.698 6.055 247.137 5.674
+ 96.466 491.134 5.545 537.037 6.002 243.861 4.000
+ 96.623 493.631 5.402 535.950 6.232 246.768 3.745
+ 96.781 495.886 5.799 536.189 6.125 248.737 3.666
+ 96.939 495.028 5.719 536.051 5.793 248.667 3.192
+ 97.097 491.620 5.699 536.200 6.127 247.206 3.952
+ 97.255 493.646 5.430 536.572 5.730 247.122 3.941
+ 97.413 493.576 5.412 536.675 5.965 246.701 3.397
+ 97.571 492.265 5.363 536.146 6.022 248.817 4.182
+ 97.728 493.342 5.599 535.171 6.138 248.278 3.390
+ 97.887 495.033 5.639 535.411 5.756 247.932 3.976
+ 98.045 492.150 5.803 536.814 5.863 247.299 4.685
+ 98.202 491.551 5.645 537.228 5.787 245.623 3.779
+ 98.360 492.145 5.338 537.542 5.819 245.426 4.656
+ 98.517 493.671 6.741 536.705 5.868 248.894 4.938
+ 98.675 493.206 5.807 534.717 5.950 251.788 4.450
+ 98.832 492.922 5.620 535.257 5.915 247.597 4.767
+ 98.990 492.569 5.632 536.772 5.809 243.866 4.493
+ 99.148 493.065 5.548 537.617 6.120 246.738 4.985
+ 99.305 488.350 8.605 537.066 6.762 248.597 8.642
+ 99.462 493.773 6.459 536.570 5.913 253.885 4.795
+ 99.619 491.967 5.439 535.745 6.422 248.878 4.493
+ 99.776 492.429 5.610 535.187 6.008 247.158 4.265
+ 99.934 493.134 5.635 536.181 6.185 247.191 4.274
+100.092 490.181 6.218 537.421 6.775 247.611 3.767
+100.250 494.761 5.915 536.364 5.788 246.796 5.275
+100.408 493.337 5.645 535.713 6.006 249.607 4.448
+100.566 491.243 6.045 536.607 6.086 250.436 5.297
+100.724 492.952 6.127 536.516 5.791 249.754 3.521
+100.882 492.719 5.639 536.815 6.052 249.047 4.364
+101.040 491.287 5.652 537.018 6.235 247.840 3.740
+101.198 493.592 5.770 536.230 6.053 249.278 3.603
+101.356 492.665 5.520 537.502 5.891 243.462 3.219
+101.515 492.626 5.530 536.405 5.934 246.074 3.384
+101.673 492.456 5.482 536.994 5.772 247.830 4.065
+101.831 490.854 5.456 537.560 5.962 249.648 4.047
+101.988 493.818 5.588 536.255 5.803 251.276 3.942
+102.146 491.258 5.402 535.202 5.859 248.442 4.079
+102.303 491.932 5.471 537.332 5.798 243.994 3.561
+102.462 495.189 5.410 538.803 5.792 245.979 3.893
+102.619 493.481 5.557 536.248 5.762 250.119 3.838
+102.777 493.324 5.609 536.582 6.369 248.911 3.934
+102.936 494.363 5.887 536.885 5.791 249.899 4.029
+103.093 488.063 5.411 536.468 5.994 244.289 3.809
+103.251 494.180 6.258 536.814 6.147 252.052 3.476
+103.410 492.221 5.674 535.628 5.842 249.060 4.120
+103.568 492.202 5.900 538.046 5.774 245.580 3.792
+103.726 495.382 5.563 535.910 5.969 248.765 3.718
+103.884 492.453 6.015 537.049 5.915 245.007 5.035
+104.042 493.394 5.863 537.090 6.091 250.240 5.382
+104.200 493.074 6.504 537.390 5.988 249.242 3.318
+104.357 490.880 5.818 537.993 5.691 246.682 3.899
+104.515 493.518 5.287 536.389 6.222 248.326 3.847
+104.673 492.085 5.355 534.924 6.152 249.353 5.331
+104.831 493.310 5.749 537.849 6.267 247.313 3.450
+104.988 495.013 6.245 537.218 6.043 249.413 3.971
+105.145 492.180 5.422 537.312 5.808 244.244 3.925
+105.302 494.481 5.624 537.783 5.874 247.952 4.293
+105.460 493.044 5.383 536.537 6.056 249.099 3.760
+105.618 493.340 5.541 536.445 6.286 247.231 3.987
+105.776 491.273 5.885 536.444 5.960 249.792 4.092
+105.933 491.472 5.502 537.614 5.781 247.877 3.451
+106.091 493.334 5.835 536.996 5.988 246.658 3.769
+106.248 492.013 5.604 536.140 5.908 247.116 3.963
+106.406 492.120 5.933 535.701 5.948 248.861 3.771
+106.563 492.321 5.317 536.887 6.271 248.678 3.990
+106.721 495.833 5.366 536.838 5.823 249.136 3.607
+106.879 488.858 5.738 536.398 6.075 247.721 3.625
+107.037 491.588 5.468 536.614 5.868 246.647 4.774
+107.194 493.325 5.341 536.656 5.819 248.936 3.759
+107.352 493.433 5.521 536.666 5.947 249.999 3.287
+107.512 492.184 5.412 536.496 5.999 247.440 3.960
+107.669 490.991 5.597 537.295 6.042 245.564 3.639
+107.827 492.609 5.725 536.993 5.774 245.895 3.518
+107.986 492.726 5.738 535.550 5.824 248.848 3.606
+108.144 493.477 5.598 536.175 5.687 251.588 3.558
+108.301 493.134 5.831 536.461 5.721 247.385 3.388
+108.459 492.201 5.390 537.304 5.808 247.753 4.317
+108.616 490.362 5.588 536.623 5.881 245.187 4.622
+108.774 492.223 5.282 537.106 5.933 249.601 3.979
+108.932 493.032 5.831 536.751 6.205 249.866 3.800
+109.089 494.070 5.759 535.997 6.031 249.838 3.559
+109.248 492.250 6.650 536.970 5.889 244.978 5.037
+109.405 492.302 5.623 536.369 5.876 245.829 3.607
+109.563 493.743 5.475 536.073 5.698 249.038 4.045
+109.721 491.997 5.709 537.190 6.392 248.930 3.724
+109.879 493.330 5.648 537.111 5.797 249.409 3.798
+110.037 491.913 5.746 535.621 5.858 248.584 4.025
+110.194 491.389 5.354 537.266 6.298 245.775 3.876
+110.352 491.683 5.276 537.422 5.999 245.247 3.564
+110.510 493.716 5.716 536.814 5.830 249.382 3.714
+110.668 494.787 5.736 536.078 5.767 250.183 3.654
+110.826 493.017 5.589 536.360 6.230 247.231 3.649
+110.984 490.880 5.471 536.643 6.035 246.382 3.708
+111.142 491.898 5.757 536.926 5.697 248.483 3.653
+111.300 492.589 5.285 537.649 5.816 249.634 3.784
+111.459 493.035 5.695 536.036 6.037 249.416 3.883
+111.616 494.620 5.429 537.270 5.698 246.624 4.001
+111.774 492.656 5.609 536.752 5.880 246.316 3.777
+111.932 491.836 5.634 536.497 5.839 244.353 4.217
+112.089 492.428 5.727 536.125 5.715 249.333 3.902
+112.247 491.954 5.596 536.581 5.626 249.763 3.297
+112.405 492.399 5.583 535.885 5.653 248.747 3.397
+112.563 492.124 5.496 536.788 5.943 247.977 3.370
+112.721 492.961 5.610 537.807 5.866 248.609 3.674
+112.879 493.649 5.868 537.128 5.920 244.346 4.047
+113.037 491.606 5.498 537.511 6.258 247.743 4.907
+113.195 492.986 5.492 535.685 5.769 250.137 3.842
+113.353 492.569 5.502 536.996 5.862 250.061 3.513
+113.512 494.145 5.830 537.790 6.094 246.560 4.729
+113.669 492.461 5.413 537.028 6.431 247.775 4.898
+113.827 492.404 5.786 537.670 5.792 246.647 3.725
+113.986 492.394 5.709 536.906 5.892 247.736 5.184
+114.144 493.934 5.784 536.019 5.856 251.627 4.976
+114.302 492.679 5.859 537.980 5.829 245.286 4.092
+114.459 492.976 5.709 538.109 5.854 248.192 4.825
+114.617 493.189 5.723 537.041 5.805 247.431 3.609
+114.775 491.651 5.946 537.450 5.886 246.824 3.141
+114.933 494.096 5.424 536.704 5.968 251.448 3.804
+115.091 491.940 5.996 537.447 6.429 246.024 3.812
+115.249 493.629 5.793 537.544 6.372 248.050 3.971
+115.407 492.526 5.545 536.545 5.797 249.970 3.922
+115.565 492.815 5.719 536.425 5.725 247.189 3.919
+115.723 493.388 5.675 536.304 5.861 246.851 3.855
+115.881 494.303 5.596 537.033 5.783 248.668 3.285
+116.039 492.993 5.431 536.390 5.904 247.566 3.596
+116.197 491.009 5.364 536.393 5.777 249.355 3.562
+116.355 492.420 5.587 536.853 5.827 245.893 3.543
+116.513 493.094 5.496 537.088 5.729 247.078 3.036
+116.671 496.121 5.879 536.320 5.962 251.270 3.320
+116.829 491.751 5.608 536.883 5.828 249.202 3.827
+116.987 493.387 5.577 536.838 5.856 244.992 4.093
+117.145 492.903 5.606 537.078 5.926 248.669 3.363
+117.303 492.249 5.520 536.160 5.942 247.116 3.654
+117.461 494.322 5.852 536.591 5.744 252.291 4.053
+117.618 492.763 6.114 537.066 5.776 246.452 4.011
+117.776 494.477 5.345 538.130 5.627 244.754 3.635
+117.933 492.524 5.745 537.591 5.841 248.967 3.283
+118.091 490.775 5.575 535.956 5.651 248.079 3.687
+118.249 493.007 5.827 535.729 6.125 250.880 4.385
+118.408 492.640 5.615 536.347 5.954 247.798 3.580
+118.566 495.586 6.738 537.433 5.864 248.048 3.901
+118.723 491.325 5.913 537.374 5.965 246.680 3.520
+118.881 492.443 5.467 537.053 5.880 247.286 3.825
+119.039 493.734 5.573 535.760 6.216 249.202 4.607
+119.197 493.527 6.199 536.677 6.076 250.212 4.559
+119.355 491.865 5.772 536.906 6.096 247.662 5.281
+119.512 492.198 5.667 537.449 5.751 244.646 4.356
+119.670 492.992 5.673 536.784 5.928 249.346 4.204
+119.828 492.999 5.581 535.917 5.919 251.193 3.539
+119.986 491.720 5.954 538.369 5.886 246.491 4.109
+120.144 494.587 5.533 538.033 5.879 247.214 3.955
+120.301 490.395 5.395 536.650 6.008 246.922 4.882
+120.459 493.664 5.903 537.206 6.103 247.989 4.403
+120.617 493.076 5.670 536.612 5.894 249.339 3.398
+120.775 491.210 5.670 537.596 5.756 245.093 3.408
+120.934 494.472 5.484 536.396 5.727 249.420 3.396
+121.091 491.714 5.536 537.684 5.712 245.654 3.224
+121.249 494.107 6.019 537.276 5.902 244.006 3.530
+121.408 494.911 5.466 537.292 5.932 251.250 3.456
+121.565 491.289 5.230 537.432 5.734 247.142 3.092
+121.723 493.632 5.455 536.664 5.879 250.031 3.363
+121.881 492.386 5.449 536.966 5.697 246.580 3.394
+122.040 492.213 5.324 537.089 5.874 246.115 3.329
+122.197 494.732 5.688 538.030 5.792 247.251 3.671
+122.355 491.557 6.440 537.140 5.811 248.412 3.845
+122.513 493.405 6.098 535.501 5.826 249.354 3.792
+122.670 493.504 5.510 536.095 5.696 250.713 4.208
+122.828 492.675 5.661 537.531 5.812 242.837 4.150
+122.986 492.456 5.517 538.155 5.863 245.768 3.328
+123.144 493.744 5.590 536.061 5.779 251.447 3.721
+123.302 491.987 5.439 536.630 5.886 247.924 3.329
+123.460 493.089 5.919 536.876 5.943 248.429 3.520
+123.618 493.080 5.528 537.758 5.831 246.544 3.686
+123.776 492.910 5.960 537.617 5.968 246.545 3.503
+123.933 493.059 5.456 536.946 5.766 252.605 4.029
+124.091 492.220 5.366 537.589 6.033 245.816 3.970
+124.249 493.532 5.711 536.966 5.941 247.468 4.163
+124.406 491.195 5.369 536.439 5.688 249.164 4.258
+124.564 493.242 5.600 537.504 6.128 249.291 4.210
+124.722 492.992 5.273 537.915 6.107 250.412 3.447
+124.880 492.609 5.660 536.909 5.933 247.814 3.736
+125.038 494.566 5.456 535.949 5.740 250.548 3.147
+125.197 491.995 5.676 537.819 5.952 246.115 4.453
+125.355 493.680 5.699 538.388 5.796 247.061 3.767
+125.513 495.846 5.294 536.813 6.029 248.610 3.603
+125.672 493.358 5.525 537.328 5.809 247.846 3.905
+125.830 491.873 5.578 536.193 5.741 250.438 4.057
+125.987 492.508 6.052 537.822 5.756 246.934 3.437
+126.144 493.795 5.470 536.668 6.063 245.489 3.698
+126.302 492.048 5.667 538.736 6.046 247.094 4.190
+126.460 494.330 6.077 536.767 5.818 249.570 3.557
+126.619 492.963 5.792 537.017 5.739 247.425 3.599
+126.777 490.789 5.632 535.450 5.891 246.984 4.967
+126.934 492.107 5.685 537.244 5.974 246.749 5.120
+127.092 494.001 5.778 537.802 5.968 246.767 4.275
+127.250 493.350 8.050 536.598 5.878 246.877 4.383
+127.407 493.123 6.309 536.706 5.787 250.318 4.356
+127.565 492.261 5.684 537.437 5.857 247.653 4.555
+127.722 489.832 5.999 538.694 5.936 244.936 4.406
+127.880 493.318 5.375 536.176 6.053 249.199 3.253
+128.038 491.703 5.421 535.351 5.900 250.332 3.803
+128.196 491.347 5.440 536.723 5.825 249.243 3.130
+128.355 494.773 5.377 536.547 5.878 250.742 4.140
+128.512 494.537 5.416 537.435 6.129 245.507 3.827
+128.670 493.685 6.124 538.244 5.959 246.085 4.106
+128.828 493.626 5.648 538.222 5.741 248.590 3.732
+128.985 491.666 5.299 536.352 5.999 247.635 3.341
+129.143 491.496 5.455 536.413 5.930 251.996 3.883
+129.301 491.235 6.054 537.474 6.194 248.459 3.305
+129.459 494.132 5.318 537.424 5.866 247.214 3.659
+129.617 494.061 5.364 536.824 6.126 248.382 3.686
+129.775 493.080 5.586 537.658 5.824 248.753 3.860
+129.934 493.630 5.546 537.836 5.984 248.707 4.168
+130.091 494.046 5.571 537.478 6.202 249.277 3.866
+130.249 495.350 5.432 539.114 6.477 246.032 3.763
+130.407 491.283 5.540 538.011 5.924 244.730 4.598
+130.565 491.652 6.509 537.210 5.903 250.987 4.696
+130.723 493.186 5.865 538.032 6.046 254.419 3.763
+130.880 492.351 5.568 537.940 6.204 248.714 4.947
+131.038 492.473 5.950 540.109 5.967 246.457 4.614
+131.196 494.284 6.782 539.141 6.320 245.194 4.861
+131.352 493.642 6.281 540.591 6.023 251.291 6.119
+131.511 492.146 5.658 541.456 6.304 248.992 5.533
+131.669 493.681 6.010 539.754 5.965 249.509 4.049
+131.826 492.186 5.848 541.997 5.861 244.705 4.109
+131.984 492.151 5.564 540.410 5.853 249.007 3.534
+132.143 490.791 6.635 539.864 6.885 250.420 4.598
+132.300 492.897 6.549 543.238 6.278 250.014 3.749
+132.458 494.679 5.755 539.062 5.985 249.560 5.196
+132.616 490.046 5.953 541.600 6.226 245.195 3.893
+132.774 492.970 5.639 542.036 5.903 247.371 4.138
+132.932 494.269 5.678 541.330 6.082 249.083 3.660
+133.091 493.372 5.596 540.553 5.899 248.770 3.758
+133.249 493.593 5.494 541.315 5.878 251.027 4.367
+133.407 492.345 5.666 541.663 6.101 245.340 3.181
+133.565 491.923 5.651 540.756 5.931 250.243 3.597
+133.723 493.409 6.240 540.757 5.824 249.712 4.788
+133.881 492.934 5.559 542.147 5.766 248.057 3.792
+134.038 491.879 5.824 541.351 5.898 247.250 5.092
+134.196 494.538 5.604 541.683 5.763 247.922 2.915
+134.355 491.895 5.625 542.276 6.288 247.299 4.093
+134.512 492.989 5.587 541.442 5.857 251.033 4.319
+134.671 494.219 5.715 540.884 6.222 248.670 4.634
+134.828 491.642 6.039 541.668 5.925 245.236 5.375
+134.986 493.286 5.524 542.306 5.791 247.532 4.143
+135.144 491.972 5.801 540.843 6.007 248.955 3.337
+135.303 493.359 6.186 541.228 5.986 251.479 3.948
+135.460 492.193 5.341 541.392 6.078 249.404 3.414
+135.618 490.431 5.803 543.124 6.267 245.784 3.965
+135.775 493.954 5.839 543.471 6.186 250.337 3.612
+135.933 492.729 5.488 543.594 6.100 250.343 4.312
+136.091 493.067 5.598 543.926 5.818 248.703 4.164
+136.249 493.790 5.707 543.269 6.279 249.017 3.565
+136.407 493.417 5.752 543.942 5.986 249.790 3.745
+136.566 492.474 6.042 544.519 6.154 249.647 4.368
+136.723 493.034 6.204 543.985 6.244 251.576 4.092
+136.880 493.020 6.081 543.549 5.955 247.545 3.807
+137.038 492.230 5.912 544.265 5.914 246.325 3.743
+137.195 493.842 5.758 543.922 5.813 250.163 3.900
+137.353 494.698 5.797 544.599 6.151 249.871 3.708
+137.511 494.267 7.224 546.306 6.046 246.578 4.379
+137.669 493.722 6.970 544.693 6.482 251.015 7.303
+137.825 491.187 7.030 545.657 6.181 250.810 4.482
+137.982 492.791 6.229 545.786 6.142 248.988 5.188
+138.141 493.287 5.716 544.787 6.268 245.859 4.269
+138.299 492.942 6.262 545.357 6.033 248.608 4.577
+138.457 493.689 5.621 546.173 6.050 251.796 3.689
+138.615 493.356 5.707 545.461 6.077 249.177 4.183
+138.773 494.363 5.444 545.574 6.044 248.721 4.396
+138.931 494.033 5.805 546.175 6.288 250.357 3.722
+139.088 493.000 5.600 545.411 6.427 247.773 3.680
+139.246 493.310 5.451 544.704 5.939 249.417 3.918
+139.403 492.793 5.453 545.257 6.055 250.034 3.713
+139.561 492.667 5.732 545.632 6.324 249.570 3.698
+139.719 493.226 5.779 544.966 5.844 248.635 4.001
+139.876 491.942 6.047 545.979 5.835 245.986 3.398
+140.035 495.919 5.502 545.679 5.777 250.529 3.451
+140.193 494.929 5.522 545.206 6.153 249.855 3.592
+140.351 491.279 5.558 545.132 5.939 247.308 4.560
+140.509 493.462 5.626 546.121 6.062 250.133 3.836
+140.667 492.504 5.373 546.761 6.244 247.391 4.365
+140.824 494.475 5.777 545.107 6.530 250.063 4.962
+140.982 492.584 5.594 544.461 6.764 250.820 4.265
+141.140 492.825 5.382 546.024 6.826 248.658 4.617
+141.297 492.338 5.654 544.910 5.924 248.646 3.437
+141.455 492.083 5.636 546.609 5.988 248.436 3.923
+141.612 492.830 5.961 545.216 6.070 248.694 3.230
+141.770 490.778 5.527 545.482 6.012 247.806 3.320
+141.928 496.447 5.608 545.644 6.119 251.228 3.473
+142.086 493.004 5.874 544.846 6.170 248.622 4.050
+142.244 491.970 5.909 545.248 5.978 248.176 3.610
+142.403 492.189 5.678 546.292 5.860 249.021 3.899
+142.561 491.991 5.645 545.702 6.018 249.130 4.794
+142.719 491.969 5.456 545.457 5.887 251.251 3.615
+142.877 489.499 5.727 545.004 6.278 250.052 3.698
+143.035 491.725 5.522 544.910 6.234 246.500 3.488
+143.193 492.797 5.727 544.509 5.980 250.635 3.498
+143.351 492.388 5.592 546.185 6.329 248.926 3.389
+143.509 492.463 5.507 545.001 6.280 249.019 3.609
+143.667 491.804 5.770 544.620 6.301 249.400 3.813
+143.825 492.028 5.595 545.126 6.289 249.334 4.732
+143.983 491.480 5.500 544.291 6.116 248.463 3.680
+144.141 490.874 5.527 544.343 6.069 249.984 4.224
+144.298 492.888 5.659 544.363 5.892 248.469 3.781
+144.456 489.478 6.694 544.223 6.142 248.984 3.438
+144.614 491.394 6.027 544.222 5.972 250.819 3.633
+144.772 490.364 5.590 543.482 6.032 249.428 3.784
+144.930 491.803 5.594 543.774 5.917 249.804 4.323
+145.088 490.858 5.716 544.427 5.897 249.448 3.284
+145.246 490.818 5.828 544.784 5.990 248.244 3.732
+145.405 490.998 5.638 544.267 5.916 247.702 3.520
+145.563 489.550 5.567 543.062 5.876 250.227 4.116
+145.720 493.535 5.330 543.990 5.989 251.582 3.480
+145.879 489.575 5.400 544.229 6.041 247.465 3.613
+146.037 490.405 5.956 542.412 5.938 247.554 4.168
+146.194 490.604 5.966 544.024 5.861 249.355 4.358
+146.351 489.176 5.614 543.030 6.051 249.293 4.049
+146.509 490.621 5.499 543.010 6.334 250.022 3.739
+146.667 489.786 5.571 543.260 6.111 246.730 4.332
+146.825 490.087 5.648 542.192 6.333 250.607 4.815
+146.983 489.600 5.652 543.082 6.023 249.546 4.397
+147.140 491.666 6.630 541.400 6.286 248.525 4.766
+147.298 486.396 5.846 543.544 6.156 246.915 4.022
+147.456 493.154 6.128 542.355 5.844 248.219 4.578
+147.613 491.461 5.673 543.143 5.888 251.672 3.802
+147.771 490.824 5.698 542.331 5.938 249.636 3.464
+147.929 492.558 5.427 542.333 5.920 251.716 3.696
+148.087 490.815 5.663 542.003 6.210 247.037 3.519
+148.245 490.918 5.844 543.000 5.968 244.290 3.935
+148.402 491.579 5.782 541.480 5.960 250.032 3.978
+148.560 490.055 5.805 541.174 6.028 250.270 3.525
+148.717 491.140 7.197 540.861 6.223 247.802 3.607
+148.875 490.021 5.728 541.088 5.913 247.898 3.834
+149.033 492.980 6.312 541.350 5.950 250.069 4.114
+149.191 493.549 5.546 542.913 5.924 248.610 3.433
+149.348 490.675 6.703 541.039 6.762 250.866 3.939
+149.506 490.516 6.100 539.920 6.159 248.708 4.004
+149.663 491.745 6.228 539.409 5.976 247.027 3.817
+149.821 491.507 6.995 539.794 6.222 251.790 4.014
+149.979 494.035 6.414 541.328 5.879 248.927 3.455
+150.136 491.020 5.810 540.783 6.494 247.569 4.191
+150.294 495.970 6.158 539.917 6.026 246.085 4.152
+150.452 494.739 5.807 539.939 5.892 249.070 5.723
+150.610 490.637 5.911 539.669 6.044 247.940 5.127
+150.768 488.966 5.809 538.656 5.849 248.329 3.579
+150.927 496.779 6.867 539.386 6.281 251.773 4.184
+151.084 494.077 5.898 538.063 6.246 247.717 3.757
+151.242 493.380 6.640 539.820 5.904 247.197 3.951
+151.400 497.243 6.271 539.798 5.774 247.212 3.977
+151.557 498.442 6.128 539.088 6.282 252.002 5.031
+151.715 494.624 6.238 540.050 5.938 249.120 3.303
+151.873 495.526 6.000 539.000 6.343 249.571 3.773
+152.031 494.425 6.253 538.870 6.732 249.325 3.920
+152.189 494.314 5.761 537.638 6.283 249.403 3.746
+152.347 493.873 6.551 539.236 5.955 246.954 3.678
+152.505 494.568 6.018 538.132 6.034 249.779 5.187
+152.664 497.035 5.993 538.931 6.145 249.587 5.587
+152.822 492.190 6.321 539.079 6.525 246.505 4.009
+152.979 495.271 8.050 538.980 7.148 250.785 4.555
+153.137 495.982 7.900 538.619 6.367 247.657 3.893
+153.293 492.609 6.909 539.546 6.068 246.836 5.832
+153.451 493.826 5.808 537.555 6.213 249.408 5.239
+153.609 493.908 5.919 538.735 6.496 251.104 6.354
+153.766 494.449 6.079 538.467 6.774 248.421 3.761
+153.924 493.894 6.881 540.304 6.787 246.784 7.252
+154.081 493.458 7.816 537.863 6.362 247.977 3.572
+154.239 492.774 6.610 537.898 6.345 249.059 4.859
+154.395 491.697 7.377 537.669 6.157 248.540 4.879
+154.552 492.647 7.878 537.846 6.332 247.465 4.284
+154.708 494.416 7.630 538.618 6.014 249.944 4.888
+154.866 493.054 7.311 538.036 8.037 247.899 6.665
+155.023 495.850 8.470 538.010 6.107 250.099 4.980
+155.180 496.578 8.466 538.640 7.130 249.291 6.280
+155.337 495.315 6.052 539.466 6.504 250.512 4.621
+155.494 497.313 6.663 538.314 6.346 249.175 4.707
+155.652 495.993 9.083 537.903 6.562 248.971 9.501
+155.808 496.979 5.878 537.589 6.742 248.889 4.937
+155.966 496.039 7.133 538.035 5.906 250.388 4.052
+156.123 492.550 8.389 538.610 7.079 247.033 4.925
+156.280 493.815 6.827 537.316 6.284 248.550 6.077
+156.438 488.598 6.053 538.433 6.355 245.755 5.773
+156.596 490.416 5.868 537.644 6.132 249.087 3.233
+156.754 493.394 6.442 537.886 6.160 247.660 3.609
+156.912 493.164 6.712 537.458 7.006 247.176 4.099
+157.070 492.611 7.176 537.494 6.593 248.631 4.913
+157.227 488.636 5.807 538.324 6.805 246.406 4.362
+157.384 490.896 6.285 537.593 6.055 249.724 4.671
+157.542 489.789 6.221 537.986 6.694 248.447 3.803
+157.699 496.277 5.833 538.629 6.665 250.604 4.643
+157.856 496.462 6.808 536.826 5.813 249.376 5.005
+158.014 494.104 6.963 537.678 6.290 249.893 6.335
+158.171 497.021 6.351 537.446 6.945 248.838 6.830
+158.328 497.310 6.629 537.764 6.701 251.018 4.254
+158.485 492.143 7.634 536.647 6.444 248.320 4.687
+158.643 494.151 6.691 538.676 6.040 250.273 3.568
+158.801 492.971 6.169 537.576 6.250 247.242 6.054
+158.959 495.469 6.524 537.435 6.468 249.332 3.770
+159.116 496.014 7.912 538.954 7.277 246.283 3.800
+159.273 497.170 6.490 537.389 6.636 248.542 4.610
+159.431 489.461 7.115 538.223 6.583 248.225 3.477
+159.589 491.924 9.918 538.072 6.342 248.362 5.877
+159.746 492.019 5.645 537.900 6.412 247.463 4.893
+159.903 494.790 6.273 538.329 6.087 249.564 4.829
+160.061 493.947 6.368 537.973 6.122 248.345 4.681
+160.219 495.709 5.429 538.039 5.798 247.833 3.938
+160.377 497.217 6.918 538.810 6.121 249.358 4.080
+160.534 493.292 6.054 537.878 5.911 245.913 3.215
+160.692 495.192 5.718 538.258 5.880 249.319 4.862
+160.850 493.861 6.683 537.872 6.449 247.843 4.166
+161.007 491.148 5.806 538.648 6.086 247.218 3.783
+161.165 496.091 6.175 537.246 6.074 248.102 4.974
+161.324 492.430 7.326 538.542 6.115 246.041 4.022
+161.481 497.264 6.242 537.945 6.670 249.830 4.434
+161.639 491.182 5.918 537.949 6.227 246.018 4.251
+161.798 493.751 5.589 536.189 6.044 251.180 4.406
+161.955 491.587 5.692 537.531 6.086 246.171 4.387
+162.113 494.355 6.258 536.275 6.109 250.991 3.689
+162.272 492.683 5.773 538.872 6.483 248.099 4.563
+162.430 494.006 5.982 538.418 5.980 250.381 4.703
+162.587 493.650 7.688 538.894 6.108 248.493 6.568
+162.745 493.306 5.774 536.878 6.688 247.334 3.728
+162.902 490.383 5.829 537.608 6.142 248.363 4.408
+163.060 493.413 6.249 536.316 5.959 250.463 4.842
+163.217 491.244 5.877 537.303 6.086 248.854 4.474
+163.375 492.672 6.037 537.243 5.911 245.368 5.607
+163.533 492.086 5.675 536.742 6.388 245.333 6.695
+163.691 491.700 5.757 537.557 6.269 244.153 4.576
+163.849 491.077 6.132 537.065 5.920 250.021 3.555
+164.007 492.410 7.403 537.530 6.230 249.360 9.223
+164.164 491.354 8.352 536.155 5.797 249.523 4.940
+164.322 490.803 6.420 537.901 6.758 243.955 4.437
+164.479 491.558 6.072 537.939 6.566 247.539 6.182
+164.637 491.465 5.604 537.079 6.577 249.985 5.317
+164.795 490.604 6.778 537.020 5.949 249.559 4.781
+164.953 492.916 6.694 537.700 6.378 247.535 4.615
+165.111 488.909 6.401 537.117 5.853 247.405 4.437
+165.269 494.599 6.184 537.501 6.297 250.884 4.456
+165.427 490.996 6.090 537.205 6.096 248.118 3.433
+165.586 491.289 5.676 536.162 5.891 250.571 4.632
+165.743 490.982 6.312 538.261 7.278 241.815 5.974
+165.901 490.579 5.908 538.572 5.968 244.208 3.537
+166.059 494.545 6.125 538.075 5.871 250.992 4.533
+166.217 497.075 5.837 539.120 5.960 248.939 4.280
+166.375 494.580 5.613 537.721 5.793 247.999 3.587
+166.534 494.265 6.737 538.477 6.290 248.160 4.976
+166.691 491.372 6.697 538.984 6.438 248.111 4.172
+166.849 494.093 5.358 538.279 5.948 246.631 3.682
+167.006 492.980 5.710 538.362 6.075 245.956 4.861
+167.164 493.009 6.243 536.543 5.931 248.909 3.242
+167.322 494.840 8.695 539.425 5.914 248.879 5.305
+167.480 490.748 6.592 538.004 6.560 244.338 3.535
+167.638 494.317 6.864 538.610 5.879 249.363 3.997
+167.795 490.693 5.548 538.686 6.423 246.713 3.629
+167.953 494.906 7.877 538.606 5.694 250.907 6.236
+168.111 496.569 7.064 539.276 6.288 245.749 6.044
+168.268 493.735 5.934 538.832 6.040 247.267 4.928
+168.426 494.177 8.957 539.118 5.802 249.872 3.540
+168.583 492.181 6.819 540.421 6.335 248.338 4.997
+168.741 492.001 6.363 538.784 6.086 248.633 4.029
+168.898 493.480 6.173 541.387 5.848 247.296 5.881
+169.056 494.074 6.357 540.583 6.103 248.152 4.772
+169.214 493.940 6.239 542.065 5.950 246.501 5.420
+169.372 494.859 6.732 541.030 5.934 249.785 3.856
+169.529 496.228 7.245 541.300 6.481 251.407 3.295
+169.687 492.432 6.881 542.123 6.205 246.444 4.067
+169.844 498.874 7.094 542.791 5.832 252.514 4.741
+170.002 497.628 6.658 542.158 6.445 247.015 5.385
+170.160 498.086 6.138 542.421 6.637 246.250 5.890
+170.318 497.330 6.180 543.544 7.094 246.242 7.260
+170.475 496.313 5.746 542.965 6.142 252.022 3.953
+170.633 493.453 5.718 543.819 6.877 249.170 5.917
+170.790 498.554 6.453 543.858 6.126 249.091 4.954
+170.947 495.935 5.862 543.628 6.126 245.240 3.525
+171.105 495.119 5.950 543.156 5.839 246.792 4.770
+171.262 495.381 6.235 543.521 6.224 245.527 4.737
+171.420 492.923 5.720 542.695 6.001 252.325 4.404
+171.577 495.619 6.933 545.517 7.103 247.963 7.826
+171.734 490.986 6.535 545.595 6.743 247.309 8.590
+171.891 491.259 7.171 543.846 6.478 249.353 6.398
+172.048 492.382 6.491 544.668 6.670 250.713 4.311
+172.206 491.783 5.764 544.246 7.354 249.797 5.260
+172.364 489.777 6.310 544.722 6.776 247.987 4.663
+172.522 494.767 6.001 544.547 6.193 250.169 6.378
+172.680 499.047 6.740 544.405 6.234 250.611 5.902
+172.837 492.880 8.320 543.924 8.045 247.686 3.748
+172.994 491.598 6.515 544.379 7.054 248.766 6.338
+173.152 498.526 10.276 543.963 7.269 254.877 8.417
+173.309 487.215 6.562 545.069 6.272 241.218 4.206
+173.466 493.192 7.216 544.680 6.143 246.402 6.535
+173.623 493.201 7.394 543.486 6.501 251.624 4.327
+173.780 494.272 6.220 541.884 5.965 255.236 3.948
+173.938 488.642 7.034 545.448 6.540 240.232 8.627
+174.095 493.736 6.283 544.374 6.168 246.272 5.307
+174.253 492.327 8.163 543.323 6.292 250.182 7.901
+174.409 484.493 6.198 543.523 6.446 246.701 4.101
+174.567 490.914 7.089 545.085 6.565 246.177 4.653
+174.724 491.699 9.252 544.510 5.930 245.201 5.935
+174.881 489.467 6.528 543.115 6.509 250.902 5.509
+175.039 492.874 7.089 545.401 6.127 242.729 4.739
+175.197 495.718 7.753 543.254 5.958 252.717 4.791
+175.355 492.037 7.078 543.812 7.156 249.297 8.022
+175.511 496.020 6.087 545.958 6.133 245.553 5.472
+175.670 494.370 6.081 544.149 6.221 250.825 4.375
+175.828 494.733 5.755 544.051 6.121 250.608 5.394
+175.985 498.087 6.113 543.210 6.349 248.596 6.937
+176.143 499.670 6.645 545.592 6.785 249.165 4.688
+176.301 496.156 7.561 545.426 6.391 247.931 5.201
+176.458 496.001 6.178 543.594 6.917 251.409 3.991
+176.616 495.030 6.476 543.326 7.742 253.454 5.031
+176.774 496.230 7.951 542.403 6.470 252.794 4.372
+176.930 492.762 7.157 543.354 6.471 246.597 8.066
+177.086 496.627 7.383 543.223 6.844 249.056 8.190
+177.243 493.056 6.794 543.602 6.532 252.360 5.529
+177.401 491.790 7.262 542.256 7.318 247.633 7.474
+177.558 494.847 21.067 544.832 11.366 244.666 32.331
+177.713 490.078 11.714 544.178 10.426 247.796 17.695
+177.870 491.750 7.119 543.601 8.062 250.927 6.298
+178.027 493.147 6.871 543.516 7.936 255.979 6.075
+178.185 492.731 6.720 540.785 6.787 248.419 7.399
+178.341 494.527 11.681 544.508 6.475 241.074 7.043
+178.499 494.495 6.735 544.545 8.067 251.260 8.142
+178.655 489.924 8.039 542.725 7.160 253.622 6.756
+178.812 498.489 7.393 543.647 6.512 254.506 7.168
+178.969 488.534 6.369 543.846 7.960 245.265 8.181
+179.126 493.985 6.956 545.188 8.453 241.902 8.734
+179.283 497.139 6.216 544.221 6.327 253.599 8.300
+179.440 490.161 7.012 542.082 6.310 249.766 7.593
+179.597 495.661 6.732 544.390 8.353 251.217 10.529
+179.754 490.506 7.679 544.403 7.415 243.152 7.034
+179.911 493.965 7.032 542.174 6.831 257.331 4.393
+180.069 493.339 6.502 541.961 7.245 253.333 4.648
+180.226 505.123 10.631 541.969 8.280 250.813 20.658
+180.382 479.661 39.015 546.219 18.937 216.698 30.568
+180.535 493.176 15.960 542.112 8.874 250.117 15.408
+180.692 497.211 10.428 541.671 7.636 264.981 10.518
+180.850 499.142 9.365 540.426 7.085 258.179 6.787
+181.007 496.731 11.128 546.934 8.798 239.231 10.907
+181.163 496.377 7.075 545.009 6.708 241.512 7.395
+181.320 502.403 6.248 540.090 6.332 258.495 4.299
+181.478 496.904 6.723 542.890 7.664 251.434 3.365
+181.636 499.739 6.666 543.649 6.813 246.144 4.234
+181.794 501.107 6.677 544.346 6.051 244.191 4.717
+181.951 498.381 6.422 543.313 5.975 247.071 5.137
+182.108 502.453 6.145 542.643 6.038 247.770 3.360
+182.266 502.194 7.003 543.406 6.032 251.167 6.210
+182.423 499.291 5.976 544.454 5.896 252.691 4.021
+182.581 495.072 5.870 545.014 6.375 243.666 5.896
+182.738 496.590 6.275 542.370 6.651 241.786 3.868
+182.896 498.765 6.571 544.503 6.080 252.827 5.528
+183.055 500.347 7.637 543.865 6.703 251.938 6.441
+183.212 501.513 6.537 543.938 6.160 242.149 4.860
+183.370 495.845 6.626 544.679 6.524 244.041 5.021
+183.529 496.288 7.343 542.476 6.611 265.790 5.105
+183.688 500.082 6.168 542.414 5.978 248.117 9.692
+183.845 493.050 7.160 543.384 6.795 232.011 9.288
+184.002 493.130 7.947 542.973 6.314 245.710 7.151
+184.160 500.931 6.589 540.289 6.502 267.317 5.418
+184.317 494.059 6.822 544.423 6.344 244.063 8.711
+184.474 494.790 7.093 545.584 6.398 235.300 8.374
+184.632 493.447 6.520 543.165 6.388 246.733 7.755
+184.789 493.974 6.635 542.381 6.360 252.567 5.581
+184.947 498.379 7.967 543.213 6.288 246.195 7.917
+185.103 498.003 6.090 542.962 6.722 245.182 4.982
+185.260 497.190 7.095 543.869 6.456 248.131 5.836
+185.418 496.491 9.444 542.058 6.357 249.351 7.404
+185.575 493.354 6.389 542.630 6.552 248.903 5.475
+185.732 496.133 6.352 543.036 6.952 249.739 4.593
+185.890 492.671 7.518 543.720 7.344 244.567 4.463
+186.047 494.356 7.158 542.307 7.649 248.965 6.419
+186.204 495.223 7.474 543.573 7.509 250.459 4.143
+186.361 493.222 8.153 542.055 6.566 249.744 7.432
+186.517 495.442 6.988 544.870 7.412 248.297 3.987
+186.674 498.994 5.851 542.048 6.005 254.223 5.589
+186.832 492.509 7.607 543.180 6.997 245.822 7.878
+186.988 497.265 7.736 543.991 7.512 238.968 5.712
+187.146 495.292 5.834 541.859 6.111 257.079 4.423
+187.305 494.132 6.900 541.738 6.378 261.300 4.607
+187.463 492.331 7.800 541.877 7.015 242.843 4.775
+187.621 491.633 8.320 543.698 7.689 238.758 9.610
+187.777 492.226 6.915 540.637 8.670 251.177 4.986
+187.935 494.332 6.722 542.006 6.035 251.491 7.115
+188.092 490.313 8.551 541.270 6.733 250.214 5.844
+188.249 488.073 6.308 540.242 7.111 251.742 4.133
+188.406 492.860 6.100 542.552 6.271 256.467 7.899
+188.564 491.878 7.253 542.445 6.610 247.424 6.511
+188.721 482.598 7.513 541.674 5.930 245.824 5.158
+188.880 491.146 6.226 542.756 5.869 257.768 3.906
+189.038 489.961 6.492 540.677 5.926 256.187 5.877
+189.197 489.409 6.437 545.276 6.247 247.061 6.339
+189.355 493.534 5.713 543.312 6.596 248.550 6.182
+189.513 493.265 8.925 540.643 7.064 254.745 6.719
+189.669 495.192 8.564 542.986 6.695 251.277 6.321
+189.827 495.511 8.235 542.939 6.031 247.772 6.845
+189.984 498.625 8.858 541.149 7.170 250.187 7.987
+190.140 492.586 7.924 543.981 6.498 246.751 7.585
+190.296 495.935 8.205 543.759 6.339 249.127 5.837
+190.454 494.779 8.351 541.747 6.574 250.911 4.539
+190.611 491.437 8.016 540.847 6.868 250.839 5.578
+190.768 490.814 9.904 543.778 6.476 245.998 4.888
+190.925 489.758 7.889 542.347 6.876 247.300 8.158
+191.081 487.947 9.197 541.933 6.447 249.263 9.160
+191.238 489.139 9.663 542.249 6.377 249.362 8.656
+191.395 486.171 8.878 542.212 6.378 247.353 9.474
+191.551 480.361 8.847 543.572 7.490 244.523 9.581
+191.707 480.113 6.621 541.195 6.756 245.805 11.091
+191.865 482.201 7.341 539.672 7.035 252.808 9.644
+192.022 480.902 5.648 543.686 5.992 247.428 9.869
+192.180 484.319 7.924 543.006 9.223 241.824 9.653
+192.336 487.503 8.793 542.940 7.227 246.078 6.532
+192.493 486.695 6.324 543.579 7.130 249.570 10.795
+192.650 490.036 8.987 542.185 6.541 247.995 11.627
+192.807 490.170 7.524 541.651 6.188 247.399 7.838
+192.964 492.631 8.908 541.206 6.607 246.804 12.223
+193.120 491.716 9.284 541.582 7.271 246.108 9.801
+193.276 492.197 8.061 543.285 7.105 248.361 8.340
+193.432 496.972 8.038 542.962 6.479 254.043 8.885
+193.588 498.859 9.505 542.079 6.821 251.320 4.615
+193.745 497.768 6.785 542.630 6.698 249.143 4.871
+193.903 493.747 6.129 542.426 6.662 249.031 5.840
+194.061 493.677 6.012 542.914 6.847 249.640 5.275
+194.219 488.556 6.570 540.439 5.853 248.306 4.089
+194.376 492.805 5.737 541.624 5.941 245.243 5.800
+194.535 494.008 6.435 542.056 6.392 247.952 6.310
+194.693 495.130 5.603 541.770 6.127 253.789 4.905
+194.850 494.931 6.344 541.087 6.327 252.687 4.231
+195.007 493.549 6.336 540.690 6.175 248.116 5.146
+195.165 494.615 6.082 541.446 6.065 246.251 4.201
+195.322 494.366 5.650 541.704 6.250 248.542 4.806
+195.480 496.533 7.169 541.877 6.593 254.225 6.573
+195.638 497.695 7.517 539.938 5.986 252.992 6.029
+195.796 499.107 6.871 541.319 7.129 247.319 5.105
+195.953 501.261 6.091 542.853 7.049 252.203 5.135
+196.111 499.392 6.000 542.248 6.469 253.612 6.721
+196.268 497.964 6.672 542.332 6.312 248.046 5.727
+196.426 495.859 6.711 539.713 7.131 246.590 5.470
+196.584 488.588 6.034 539.147 6.371 246.415 3.816
+196.743 489.575 7.068 539.681 7.560 247.394 9.160
+196.900 494.135 6.844 540.006 6.270 251.443 4.908
+197.058 497.371 5.372 540.240 6.940 249.834 5.919
+197.216 498.563 6.273 539.512 5.695 249.758 5.835
+197.374 500.965 8.688 540.855 6.676 248.987 4.419
+197.531 495.399 5.929 539.268 6.789 245.209 8.553
+197.688 491.044 6.305 539.352 6.485 249.872 4.814
+197.846 496.370 6.049 538.493 6.371 250.968 4.520
+198.004 493.613 6.263 537.205 6.473 250.229 3.577
+198.163 490.946 5.737 539.812 6.119 242.542 3.574
+198.321 493.269 6.129 539.838 6.267 250.385 4.228
+198.479 489.842 5.650 538.318 5.849 252.283 3.541
+198.636 491.808 5.475 538.873 6.846 243.012 5.313
+198.794 488.668 6.671 536.648 6.530 245.860 5.599
+198.952 489.876 6.637 537.786 6.026 253.318 4.060
+199.110 489.268 6.067 537.987 5.895 253.513 3.956
+199.267 487.152 6.226 539.879 6.312 244.015 4.170
+199.425 488.061 6.411 539.248 6.250 246.690 3.826
+199.584 489.490 5.868 537.122 6.233 253.386 4.427
+199.741 485.674 6.455 537.731 6.003 249.843 3.830
+199.899 486.686 6.866 539.677 5.957 246.508 5.380
+200.056 484.336 6.227 539.946 5.859 247.915 5.190
+200.215 484.883 7.012 537.729 6.121 251.469 4.761
+200.372 490.118 6.108 538.087 6.120 248.384 3.796
+200.530 489.391 5.977 539.310 6.188 247.973 3.720
+200.689 485.803 6.090 538.453 6.566 253.409 3.869
+200.847 484.748 5.871 538.314 6.246 254.884 3.424
+201.005 484.327 6.450 538.163 6.111 247.008 3.459
+201.163 488.283 5.365 539.071 5.897 243.770 4.579
+201.321 492.072 6.054 539.070 6.263 251.987 3.465
+201.480 489.280 5.553 538.700 6.279 253.469 4.904
+201.638 490.262 5.935 539.007 5.949 250.794 5.276
+201.796 491.212 6.854 537.370 6.331 247.577 6.149
+201.954 492.882 6.636 537.773 6.074 251.495 6.692
+202.112 493.398 6.604 538.607 6.986 250.584 5.054
+202.269 496.454 9.959 539.276 5.990 252.855 4.944
+202.426 493.004 11.098 538.292 8.095 250.828 6.575
+202.583 487.610 7.371 538.293 7.009 248.968 7.761
+202.740 482.176 6.331 538.633 6.381 245.789 4.970
+202.898 476.881 9.051 540.076 6.279 247.057 10.885
+203.055 476.538 9.872 539.390 7.138 250.200 4.587
+203.211 482.465 5.697 537.524 7.510 246.692 7.005
+203.369 490.474 7.498 538.745 6.309 247.826 5.754
+203.526 490.734 11.238 537.437 6.863 252.128 5.864
+203.685 494.617 8.869 538.154 8.121 255.221 7.965
+203.840 490.846 8.914 540.001 8.302 249.322 9.877
+203.997 490.298 8.092 538.600 6.619 244.113 7.403
+204.155 488.823 10.455 537.616 6.600 253.071 10.213
+204.312 486.478 8.913 537.886 6.968 255.840 4.739
+204.469 484.064 8.527 540.568 7.233 239.338 3.794
+204.626 483.860 7.076 536.435 6.255 249.163 3.837
+204.785 491.118 7.046 537.084 7.684 257.781 5.961
+204.943 482.831 13.553 538.690 12.669 234.877 24.318
+205.099 495.268 14.927 538.636 10.173 251.718 13.186
+205.256 494.162 11.197 537.876 11.718 261.157 8.614
+205.414 498.251 9.060 538.048 8.315 259.941 18.672
+205.570 481.152 10.967 536.980 10.176 236.979 9.681
+205.726 493.121 15.352 539.829 10.048 241.569 6.885
+205.882 481.561 7.638 537.868 6.516 250.075 8.928
+206.040 482.185 7.113 538.538 7.625 264.980 8.941
+206.197 481.051 9.001 537.035 6.602 253.079 4.691
+206.355 479.840 6.296 540.770 6.688 231.560 10.306
+206.512 490.578 13.012 539.017 7.145 250.655 7.688
+206.668 484.945 7.127 539.410 6.546 244.796 5.413
+206.825 485.659 8.682 539.104 6.465 243.087 6.729
+206.983 486.596 6.488 535.891 6.258 249.300 4.833
+207.140 486.145 6.952 539.049 6.093 245.083 4.747
+207.298 486.581 5.792 537.930 5.968 245.220 5.442
+207.456 484.515 6.550 539.049 5.787 246.222 3.689
+207.614 485.445 6.920 541.350 6.676 246.852 5.964
+207.771 486.934 5.948 539.873 6.060 249.168 3.752
+207.929 485.089 6.425 539.158 6.202 246.231 5.180
+208.087 486.030 5.565 539.621 7.246 249.052 4.864
+208.245 490.200 6.618 539.826 6.216 254.570 6.446
+208.402 487.962 5.666 541.248 6.737 249.305 5.267
+208.561 488.219 6.072 538.912 6.684 244.693 9.614
+208.718 487.522 6.977 538.099 6.479 250.976 11.425
+208.876 485.975 6.845 540.221 7.306 242.959 5.731
+209.034 481.819 5.801 538.612 5.955 245.679 3.468
+209.193 483.438 5.575 539.066 5.962 248.566 5.737
+209.351 480.674 6.340 538.150 6.185 256.105 3.804
+209.510 481.386 5.666 538.881 6.062 248.881 4.555
+209.668 482.313 6.648 538.968 6.016 248.238 4.688
+209.826 476.613 8.083 540.399 5.861 247.062 4.872
+209.983 481.916 6.120 539.554 5.972 255.320 3.923
+210.142 482.189 6.024 537.245 6.056 252.263 6.693
+210.300 480.711 5.826 538.682 6.537 249.082 5.724
+210.458 483.817 5.968 539.526 6.198 253.090 3.127
+210.617 480.858 6.475 540.205 5.939 246.400 4.789
+210.775 483.268 6.683 538.622 5.949 246.794 3.833
+210.932 486.612 5.970 539.186 5.816 255.247 3.666
+211.090 483.926 7.089 538.691 6.164 254.522 4.521
+211.248 486.459 7.441 540.717 6.043 250.155 5.545
+211.406 484.554 6.423 541.287 6.190 244.441 4.612
+211.564 477.295 6.513 540.582 6.161 243.604 5.363
+211.722 485.213 6.582 537.555 5.918 254.986 4.525
+211.880 485.862 5.478 538.055 5.987 256.709 3.670
+212.038 481.138 6.203 540.250 6.091 250.657 4.715
+212.195 477.661 6.589 540.232 5.931 244.436 4.165
+212.353 483.946 5.347 539.882 6.238 252.994 4.741
+212.511 483.009 5.621 538.248 5.997 250.229 3.587
+212.669 485.380 6.028 539.122 6.066 256.662 3.830
+212.827 486.243 6.351 541.741 5.918 247.526 4.658
+212.985 481.462 7.000 541.817 5.781 241.785 4.324
+213.142 481.804 6.360 540.178 6.511 250.737 4.600
+213.301 487.688 7.047 538.081 5.914 259.007 3.994
+213.459 476.766 6.200 539.120 6.398 246.880 4.284
+213.616 481.357 6.688 542.201 6.029 243.278 4.109
+213.773 486.283 5.513 541.682 6.578 253.732 3.965
+213.931 478.762 6.029 539.696 6.101 251.937 4.422
+214.089 485.527 6.162 539.287 6.392 251.469 7.436
+214.247 481.545 6.239 541.282 6.745 239.544 5.585
+214.404 481.395 8.121 542.742 6.272 252.815 3.829
+214.562 485.494 7.282 540.137 7.550 258.698 6.024
+214.721 477.155 12.313 539.821 10.079 246.287 11.347
+214.877 485.371 8.401 541.808 9.498 248.112 12.827
+215.033 480.373 6.539 539.548 7.188 253.761 5.576
+215.191 483.313 6.143 538.605 8.901 258.977 8.746
+215.349 472.653 7.559 539.126 8.079 238.539 6.869
+215.505 485.006 6.807 538.231 7.045 254.755 4.166
+215.663 483.440 8.572 540.092 7.331 254.457 8.528
+215.820 488.234 11.322 542.811 10.258 245.094 11.205
+215.977 481.132 11.927 541.448 7.911 246.820 7.767
+216.134 485.381 8.758 541.394 7.979 252.278 8.773
+216.289 483.303 7.150 537.684 7.246 251.042 4.702
+216.448 481.923 7.219 540.606 6.467 247.060 5.360
+216.606 484.369 6.158 541.256 7.107 246.700 6.206
+216.763 482.213 5.395 541.652 6.130 246.877 4.148
+216.921 486.012 6.050 539.966 6.493 254.368 3.834
+217.080 484.230 6.347 538.409 6.328 253.973 4.153
+217.238 483.532 6.889 540.644 6.797 244.619 4.133
+217.395 485.615 5.281 540.066 6.118 246.186 3.966
+217.553 486.486 6.034 540.540 6.200 253.681 5.419
+217.712 488.324 5.823 539.265 6.066 255.466 4.613
+217.870 489.853 6.332 539.772 5.716 251.294 4.225
+218.027 485.838 5.629 542.837 6.099 240.912 3.856
+218.185 488.718 6.155 541.468 6.015 245.229 3.796
+218.343 486.487 6.056 539.694 6.292 253.182 3.915
+218.501 493.864 5.995 539.207 6.086 248.931 5.054
+218.660 492.788 7.131 540.522 6.762 244.949 6.369
+218.817 494.927 6.248 539.965 6.668 247.149 7.769
+218.975 493.929 7.356 539.129 8.053 257.771 5.407
+219.132 486.629 11.704 541.571 8.206 241.017 20.138
+219.288 496.626 10.057 541.235 7.573 241.810 6.768
+219.445 496.986 7.205 540.292 6.935 253.108 8.446
+219.602 496.179 7.228 538.182 6.997 253.391 5.729
+219.759 489.951 6.091 542.931 5.960 234.223 5.782
+219.917 490.839 5.657 540.629 6.360 244.242 6.502
+220.075 493.038 6.996 539.486 6.517 259.872 4.846
+220.232 500.710 10.276 541.114 6.588 242.978 11.178
+220.389 489.717 20.178 541.951 11.424 236.149 24.173
+220.546 502.407 11.679 539.199 8.655 262.001 8.460
+220.703 491.014 7.659 539.362 6.659 258.440 5.290
+220.861 496.310 7.651 539.963 8.152 239.654 9.327
+221.017 494.063 7.229 540.329 7.031 236.606 9.488
+221.173 495.760 6.646 537.823 7.758 257.876 8.347
+221.330 495.267 6.722 541.078 6.949 251.628 4.093
+221.487 495.662 5.971 540.570 6.698 244.816 5.906
+221.644 491.126 8.154 540.865 6.503 240.868 5.846
+221.801 496.651 6.416 540.698 6.220 249.378 5.705
+221.959 490.136 6.586 539.177 6.317 246.013 4.817
+222.117 486.571 5.814 540.701 6.015 243.200 5.022
+222.275 496.925 6.584 540.717 6.311 251.282 5.146
+222.433 497.449 9.009 540.967 6.518 252.622 4.110
+222.590 488.024 6.628 540.919 6.244 243.636 5.902
+222.748 490.930 5.674 540.509 5.925 248.626 4.073
+222.906 490.909 5.849 540.715 6.307 250.916 4.756
+223.064 489.259 5.678 539.717 6.106 250.199 3.459
+223.222 487.032 5.792 538.947 6.077 249.152 4.229
+223.381 490.500 6.507 539.979 5.829 248.191 4.335
+223.538 489.535 7.587 541.519 6.043 249.361 4.386
+223.696 487.255 6.290 540.915 5.873 251.173 4.267
+223.854 492.302 6.075 540.329 5.792 251.221 3.534
+224.011 489.263 5.781 539.983 6.381 246.822 3.553
+224.170 491.742 6.158 540.779 6.080 247.928 4.516
+224.328 489.527 6.165 540.937 6.246 250.959 3.759
+224.487 490.665 6.376 540.829 6.544 251.029 4.133
+224.645 494.376 6.861 541.018 6.291 246.530 3.649
+224.802 491.043 5.790 541.540 6.010 245.905 3.516
+224.960 496.230 5.345 537.655 6.083 254.579 3.439
+225.118 493.942 5.379 540.946 6.202 250.415 3.697
+225.276 493.589 7.659 542.119 6.284 246.534 3.893
+225.433 497.195 7.174 541.141 6.030 249.615 4.470
+225.591 495.652 7.634 541.651 6.304 249.026 5.299
+225.749 496.746 6.394 539.336 6.037 253.610 3.447
+225.907 489.407 6.006 539.383 6.531 247.036 3.836
+226.066 489.264 5.699 542.203 6.022 246.570 4.661
+226.223 488.332 5.690 540.742 6.095 247.155 3.254
+226.381 495.243 6.420 540.477 6.102 246.961 5.754
+226.539 497.252 5.978 539.184 6.238 251.819 4.121
+226.697 500.332 7.771 541.091 6.806 255.618 5.088
+226.854 496.613 5.837 541.510 6.507 247.306 6.897
+227.012 497.956 6.032 541.085 6.478 245.573 4.661
+227.170 497.849 6.564 541.670 5.952 249.545 3.369
+227.328 493.208 6.163 539.266 5.962 249.535 5.790
+227.486 491.772 6.307 541.072 6.357 242.565 7.243
+227.643 494.667 5.965 539.520 6.078 248.365 3.319
+227.801 495.106 5.602 541.845 6.164 250.283 4.840
+227.959 495.901 6.006 539.978 6.125 248.852 3.740
+228.117 495.819 5.726 539.929 5.909 246.628 3.551
+228.275 495.648 5.883 540.909 6.197 251.276 4.312
+228.433 499.196 5.570 539.669 6.249 254.512 3.058
+228.591 495.992 7.110 541.986 7.931 238.095 6.324
+228.748 495.899 5.497 539.839 5.993 241.980 4.325
+228.907 498.139 5.827 538.128 6.743 264.749 5.009
+229.065 490.791 7.294 538.271 6.690 248.827 7.318
+229.221 492.737 6.787 542.572 6.502 236.668 7.229
+229.378 496.307 7.312 541.365 7.056 241.436 4.802
+229.536 503.423 6.581 540.063 7.026 262.594 5.473
+229.694 501.624 6.571 538.850 6.773 258.436 5.139
+229.853 493.436 7.324 541.408 6.452 239.034 6.504
+230.010 488.804 8.455 540.484 6.061 243.190 4.694
+230.168 486.578 7.279 540.004 7.737 254.621 5.923
+230.326 491.705 7.016 538.210 6.059 248.966 10.083
+230.483 495.017 6.894 540.012 6.660 246.769 5.244
+230.641 498.420 6.146 541.810 5.865 249.107 3.964
+230.798 496.354 5.900 540.978 6.440 249.281 4.708
+230.956 501.023 7.940 539.869 6.773 251.762 5.895
+231.114 501.540 6.769 539.308 7.303 256.527 6.586
+231.271 497.255 8.803 540.553 6.805 247.555 6.809
+231.428 496.012 11.499 540.915 7.144 245.145 14.154
+231.585 491.790 9.240 541.799 6.589 246.381 8.199
+231.742 489.297 6.703 539.828 5.966 252.613 4.538
+231.899 493.373 5.884 539.388 6.319 250.696 5.299
+232.057 497.773 5.613 541.333 6.319 247.146 3.887
+232.215 495.727 6.853 540.373 5.998 249.031 3.546
+232.373 496.677 5.825 540.673 6.279 251.480 3.491
+232.531 493.366 6.555 539.896 6.209 249.114 5.655
+232.689 489.433 6.160 538.319 6.206 246.601 3.672
+232.847 494.964 6.357 538.853 6.130 243.576 3.671
+233.005 496.269 6.011 540.028 6.290 250.335 4.739
+233.163 497.092 6.221 540.720 7.159 256.133 4.584
+233.321 496.930 6.121 538.817 6.681 245.881 5.172
+233.479 493.329 6.084 541.538 6.238 242.038 8.580
+233.637 490.433 5.661 539.715 6.528 249.630 4.231
+233.795 491.624 8.374 539.237 5.975 253.346 4.845
+233.952 491.686 5.943 542.012 6.383 248.733 4.935
+234.110 497.316 6.276 540.350 6.937 245.407 6.952
+234.267 498.083 6.962 541.293 6.525 245.214 4.375
+234.425 494.950 7.409 539.023 6.520 252.572 5.924
+234.582 490.139 5.647 540.140 5.970 249.845 4.310
+234.739 491.941 5.902 541.351 6.213 242.748 3.528
+234.897 492.169 6.506 540.903 6.371 244.787 4.950
+235.055 498.111 5.820 540.189 6.157 250.047 4.095
+235.212 496.241 6.294 538.201 6.095 253.640 3.537
+235.369 493.282 5.873 541.472 5.807 250.266 4.013
+235.527 493.582 6.148 542.734 6.090 248.372 5.007
+235.685 490.775 5.976 540.777 5.940 246.663 3.959
+235.842 493.997 6.481 538.737 6.138 247.666 3.622
+236.000 497.120 6.295 540.027 5.862 250.336 4.041
+236.158 495.541 5.592 540.030 6.608 252.273 4.340
+236.315 492.815 5.742 540.760 5.969 248.482 3.823
+236.472 495.808 5.928 540.697 6.748 244.154 4.513
+236.630 494.658 6.030 540.067 5.890 245.971 4.234
+236.789 493.466 6.526 538.670 6.237 253.569 3.553
+236.946 490.234 6.122 540.006 6.812 251.375 4.986
+237.104 490.682 5.973 541.140 6.129 245.593 5.802
+237.261 496.296 6.042 541.771 5.823 246.435 3.692
+237.419 498.692 5.521 540.037 6.275 249.024 4.431
+237.578 494.607 5.815 540.270 6.306 251.380 4.625
+237.736 495.756 6.505 540.632 6.010 254.033 4.585
+237.893 490.947 5.816 542.036 5.998 248.030 4.903
+238.051 489.539 6.065 542.310 5.946 242.050 4.232
+238.209 499.095 5.838 539.993 5.920 248.620 3.399
+238.367 496.550 6.365 540.380 6.105 251.956 4.776
+238.525 494.465 7.098 541.493 6.137 249.109 3.502
+238.683 489.894 5.937 539.925 6.020 247.641 3.428
+238.841 491.989 6.406 541.669 6.229 247.296 3.736
+239.000 495.869 5.410 540.436 6.157 249.302 4.204
+239.158 496.638 5.407 540.044 5.946 252.503 4.548
+239.316 497.396 5.960 540.930 5.724 248.005 3.219
+239.475 494.164 6.110 541.349 6.115 244.890 3.442
+239.633 486.691 5.911 540.413 5.863 248.228 3.570
+239.791 495.007 6.274 538.234 6.164 255.802 4.183
+239.949 494.990 5.825 539.822 6.036 247.308 4.776
+240.107 496.879 5.613 541.308 5.899 245.893 3.967
+240.264 496.878 6.652 541.703 6.406 247.668 4.817
+240.422 494.218 6.344 540.777 6.116 247.026 5.549
+240.581 498.792 7.585 540.497 6.373 252.740 4.569
+240.739 496.677 7.808 539.635 6.371 257.207 5.028
+240.897 490.466 7.695 541.096 6.257 245.162 6.907
+241.054 485.694 6.259 541.191 6.995 239.651 3.579
+241.211 493.267 5.445 540.351 6.222 248.056 3.912
+241.369 496.982 6.087 538.753 5.950 255.030 6.013
+241.528 495.509 5.894 539.317 5.871 249.280 4.388
+241.686 498.505 6.348 541.233 5.885 248.622 6.080
+241.844 489.345 7.155 541.672 6.304 244.096 4.047
+242.001 490.043 5.937 539.156 6.036 249.720 3.555
+242.159 498.420 6.887 539.291 6.327 254.097 4.170
+242.316 495.774 5.811 538.663 5.991 247.350 3.951
+242.474 494.247 6.214 539.966 6.449 245.883 3.452
+242.632 496.472 6.643 540.779 5.982 252.398 5.784
+242.790 491.774 6.335 539.057 6.113 250.994 5.182
+242.948 495.547 5.670 540.290 6.168 247.729 3.257
+243.107 496.615 6.016 539.932 5.933 246.637 3.615
+243.264 494.036 6.042 539.919 6.234 247.326 3.329
+243.422 491.150 6.271 539.209 6.299 250.293 3.558
+243.581 494.441 5.469 540.102 6.076 251.952 3.598
+243.739 495.304 5.635 540.601 6.234 248.439 4.002
+243.896 493.603 5.528 540.426 6.111 245.614 3.597
+244.054 494.106 6.586 540.004 6.086 246.206 3.240
+244.212 493.381 5.836 540.640 6.184 249.752 4.587
+244.369 493.353 5.833 540.646 5.933 252.887 3.565
+244.528 494.743 5.640 539.416 6.099 252.688 3.782
+244.685 495.557 6.222 539.894 6.073 247.856 3.970
+244.843 492.385 5.614 541.228 6.428 244.798 3.602
+245.001 492.163 6.633 540.412 6.500 248.048 5.729
+245.158 496.991 5.497 540.534 6.201 248.830 4.062
+245.316 494.759 5.911 539.055 6.083 251.948 4.456
+245.474 492.767 5.874 540.360 5.967 247.879 3.621
+245.633 494.307 5.702 540.533 6.055 247.728 4.208
+245.791 492.973 5.632 541.225 6.353 244.777 4.920
+245.949 495.319 6.151 541.002 6.057 250.787 4.440
+246.108 494.193 5.569 539.930 6.157 251.717 3.823
+246.266 494.072 5.982 540.379 5.935 249.037 3.105
+246.424 493.540 6.571 539.293 5.929 245.820 3.685
+246.582 495.215 5.686 540.453 6.074 250.868 3.696
+246.740 494.292 5.935 540.844 6.146 248.378 3.623
+246.898 493.862 5.743 540.288 6.141 248.263 4.020
+247.056 494.108 5.721 538.752 5.822 247.512 3.659
+247.213 493.241 5.646 541.377 6.377 251.675 4.332
+247.371 494.172 5.439 541.013 6.364 249.096 4.251
+247.528 495.031 5.810 541.670 6.308 245.830 4.011
+247.686 492.040 5.913 541.106 5.922 242.488 3.843
+247.844 494.430 5.756 539.221 6.238 253.954 3.278
+248.002 494.824 6.106 540.482 6.029 253.269 4.594
+248.160 496.038 5.514 541.604 5.989 249.402 4.720
+248.318 497.900 6.643 541.826 6.026 246.214 5.297
+248.475 500.589 12.070 540.638 6.199 251.462 5.077
+248.633 502.275 8.822 541.526 6.077 252.974 5.512
+248.790 500.372 9.520 540.155 7.635 249.809 6.805
+248.947 491.903 7.799 540.491 6.174 243.978 5.793
+249.105 488.059 6.543 541.424 6.379 246.039 5.920
+249.263 489.030 6.378 540.434 6.541 247.540 8.034
+249.420 486.250 6.647 539.384 6.956 247.935 4.878
+249.577 486.322 6.839 540.273 7.038 247.059 6.649
+249.734 491.083 7.676 541.272 6.442 244.370 7.709
+249.891 494.160 7.335 540.192 6.545 247.843 6.422
+250.048 496.231 7.708 539.152 5.781 250.368 7.149
+250.205 500.722 6.606 538.841 6.634 250.583 5.569
+250.362 499.957 6.592 540.598 6.304 248.255 4.065
+250.520 502.209 7.644 542.586 6.866 248.462 5.856
+250.678 501.462 7.638 540.735 7.135 251.024 6.381
+250.835 500.014 6.595 540.747 6.331 250.350 6.756
+250.993 497.960 7.205 541.037 6.608 249.093 4.201
+251.150 496.449 7.003 541.070 5.946 248.650 6.463
+251.308 497.144 6.401 541.060 6.368 249.466 4.315
+251.465 494.931 6.982 541.100 6.548 247.944 5.197
+251.624 496.649 5.618 540.381 5.906 251.109 3.475
+251.782 500.356 6.205 540.823 6.122 251.791 5.004
+251.940 496.793 5.858 540.678 6.623 247.787 4.503
+252.098 493.867 6.106 540.816 6.384 246.077 3.776
+252.256 496.768 5.641 540.048 6.434 250.130 3.880
+252.414 496.527 5.941 540.550 6.273 250.901 4.664
+252.572 496.875 5.421 540.075 5.818 245.899 4.605
+252.730 494.438 6.758 540.470 6.197 245.899 4.323
+252.887 494.234 6.002 541.074 5.724 247.179 3.832
+253.045 496.942 5.632 540.240 5.853 249.541 3.754
+253.203 495.389 5.739 540.102 6.202 250.005 3.706
+253.361 494.443 5.423 541.371 5.865 245.360 3.894
+253.519 491.814 5.995 540.613 5.965 247.793 3.166
+253.677 493.508 5.876 538.966 5.854 253.047 3.980
+253.835 497.895 6.031 540.479 5.859 253.320 3.782
+253.993 496.019 5.995 541.034 5.882 247.583 3.779
+254.150 492.520 5.764 541.330 6.116 241.025 4.330
+254.309 495.905 5.780 540.193 5.956 251.610 4.304
+254.467 494.629 5.750 539.272 5.883 259.646 3.731
+254.626 494.596 6.405 541.302 6.359 242.736 4.420
+254.783 498.155 5.419 541.593 5.847 248.387 3.553
+254.941 499.831 6.195 541.275 5.883 246.903 4.246
+255.099 499.848 5.673 541.432 6.121 248.679 3.906
+255.257 495.738 5.760 540.554 6.111 246.046 3.743
+255.415 496.757 5.808 539.735 6.381 251.730 4.631
+255.573 495.157 5.556 541.297 5.812 249.217 3.771
+255.731 498.691 6.002 542.923 6.441 244.882 5.743
+255.888 497.566 5.873 539.419 5.943 247.898 4.998
+256.047 494.965 6.516 542.234 5.833 246.919 4.367
+256.205 496.289 6.188 539.582 6.480 252.229 6.497
+256.363 496.182 5.729 539.945 6.011 244.992 4.767
+256.521 490.491 6.771 541.579 6.138 243.389 4.536
+256.679 492.894 7.003 539.395 6.000 247.343 5.105
+256.837 500.019 6.295 539.084 6.019 259.463 7.374
+256.995 493.830 6.209 540.870 6.098 248.824 4.663
+257.153 495.458 5.544 540.668 6.495 239.348 6.532
+257.310 495.364 5.529 538.996 6.295 245.363 5.693
+257.469 497.513 6.405 538.600 5.887 261.333 4.308
+257.626 494.835 6.021 539.766 5.892 249.253 4.209
+257.784 493.778 5.860 541.577 5.926 243.552 5.516
+257.943 497.027 6.010 541.035 6.577 244.555 4.113
+258.101 494.000 6.339 541.490 6.043 249.015 3.004
+258.259 495.760 6.030 538.784 6.363 250.470 3.535
+258.417 495.417 5.437 539.427 6.142 249.894 3.745
+258.575 495.234 5.660 541.494 5.836 247.978 3.543
+258.734 497.342 5.439 540.884 6.576 246.289 4.747
+258.891 496.533 5.832 540.438 6.051 246.522 4.694
+259.049 495.395 5.837 539.914 6.064 246.365 3.499
+259.207 496.954 5.486 539.349 6.076 249.183 4.934
+259.365 497.519 5.708 538.713 6.150 251.531 3.642
+259.523 496.835 5.631 541.227 6.435 243.365 4.139
+259.681 495.738 6.354 540.222 6.378 245.863 3.172
+259.839 496.907 5.877 539.532 6.057 249.908 4.790
+259.998 497.149 6.159 539.965 5.987 252.599 3.348
+260.156 497.401 6.525 539.179 6.326 247.366 4.419
+260.313 496.834 5.619 540.991 5.893 242.263 4.635
+260.471 496.098 6.077 539.979 5.947 249.232 3.813
+260.629 495.681 6.566 540.469 5.776 252.362 4.191
+260.787 493.906 5.815 540.174 5.948 245.283 3.993
+260.944 497.269 5.905 539.911 6.197 247.712 4.116
+261.101 497.142 5.664 540.279 6.126 245.277 5.868
+261.259 497.561 5.934 540.132 6.215 249.292 6.326
+261.417 495.455 5.858 540.491 6.227 247.212 3.778
+261.574 495.314 5.640 540.324 6.510 249.082 3.940
+261.732 496.273 5.538 540.423 5.989 249.190 4.208
+261.889 498.132 5.747 538.814 5.904 249.011 4.310
+262.048 494.471 5.996 539.948 5.899 247.040 3.816
+262.207 495.834 5.997 538.829 5.856 247.540 4.128
+262.364 496.158 6.248 539.228 5.948 247.185 4.999
+262.521 496.221 5.565 539.862 6.112 248.531 4.643
+262.679 495.752 5.888 539.978 6.062 249.245 4.677
+262.837 495.187 5.358 540.539 5.861 248.312 3.498
+262.995 494.521 5.978 540.905 6.055 246.343 4.306
+263.152 497.365 5.663 539.509 6.083 248.403 3.561
+263.310 497.303 5.912 540.075 6.227 251.544 4.217
+263.468 496.823 6.175 539.980 6.396 246.585 3.245
+263.627 495.558 5.612 539.789 6.089 245.785 4.296
+263.784 495.905 5.739 539.978 6.164 250.747 3.614
+263.942 498.159 5.610 539.729 5.951 250.557 4.122
+264.100 498.471 6.202 539.607 5.754 248.765 3.631
+264.257 494.724 5.635 540.256 5.899 245.667 3.741
+264.415 496.737 5.605 541.372 6.037 248.226 4.269
+264.572 496.447 6.179 540.863 6.177 245.432 5.233
+264.730 499.234 6.238 540.468 6.078 248.474 3.353
+264.888 497.132 6.106 539.824 6.344 250.284 3.897
+265.046 495.581 5.830 540.408 6.118 245.462 3.763
+265.204 493.955 5.556 540.974 5.969 247.714 4.300
+265.362 496.629 6.664 539.139 6.015 251.617 3.646
+265.520 495.846 5.708 539.221 5.957 249.416 3.583
+265.678 496.748 6.049 540.852 5.812 244.474 4.245
+265.835 494.577 5.806 540.028 6.035 247.164 3.162
+265.994 495.855 5.603 540.520 6.247 248.811 4.172
+266.151 494.498 5.981 540.675 5.890 248.178 3.726
+266.310 495.985 5.896 540.536 6.347 249.201 3.452
+266.468 495.459 6.442 539.995 5.953 248.652 3.808
+266.626 496.584 5.727 540.540 5.919 246.626 4.133
+266.784 497.705 5.652 540.405 5.876 247.576 3.921
+266.941 496.297 5.862 540.184 5.861 250.485 3.599
+267.098 496.573 5.977 539.351 6.048 251.184 3.548
+267.256 495.015 5.657 540.363 6.099 248.711 3.766
+267.414 496.820 5.905 539.683 6.378 249.837 4.124
+267.572 496.228 5.861 539.486 6.176 246.768 4.602
+267.730 495.592 5.806 540.704 6.311 245.397 3.648
+267.889 495.525 5.641 539.797 6.050 252.444 3.626
+268.046 494.105 8.066 538.708 5.866 252.574 3.982
+268.204 498.341 6.041 541.847 6.166 241.185 3.409
+268.361 500.293 5.671 539.888 6.012 249.731 3.318
+268.519 495.502 6.009 539.338 6.479 249.447 5.077
+268.677 495.675 5.622 539.333 5.829 252.094 5.289
+268.835 495.666 6.477 538.593 5.963 245.160 3.614
+268.993 492.306 6.444 540.666 6.044 246.941 5.106
+269.151 499.453 5.582 539.616 5.924 251.789 4.291
+269.309 498.004 5.784 539.416 6.376 246.927 4.120
+269.467 495.450 5.487 539.724 6.300 245.729 3.940
+269.624 494.004 5.740 540.647 6.056 247.717 3.958
+269.782 498.250 5.695 539.256 6.219 251.887 4.218
+269.940 495.412 5.670 538.592 6.135 247.628 4.299
+270.098 497.314 6.605 541.195 6.646 245.286 6.747
+270.254 496.303 7.552 539.942 6.580 244.712 3.988
+270.412 497.363 6.019 539.639 6.225 249.597 4.390
+270.570 494.863 6.549 539.146 6.221 248.425 3.966
+270.728 495.878 5.511 539.581 6.214 247.534 4.135
+270.886 497.498 5.810 539.715 6.072 245.875 3.603
+271.043 496.375 5.970 540.677 6.037 246.618 3.926
+271.202 495.333 5.997 540.266 6.022 252.456 4.241
+271.359 495.593 5.676 538.412 6.438 249.234 3.139
+271.517 495.745 5.604 539.964 6.101 245.512 4.405
+271.675 494.677 5.760 538.669 6.301 245.455 3.533
+271.833 496.626 5.908 539.116 5.728 250.584 4.326
+271.990 495.246 5.889 539.181 6.085 249.145 3.539
+272.148 497.172 6.128 538.261 5.906 247.101 4.615
+272.305 500.041 6.745 539.882 5.955 246.881 4.998
+272.463 495.430 6.690 536.818 6.349 247.268 4.755
+272.621 495.684 5.944 539.808 6.084 255.372 3.507
+272.779 496.026 5.851 537.498 5.928 252.793 5.553
+272.938 494.380 5.843 539.365 5.890 242.397 3.666
+273.096 497.483 5.807 539.543 5.999 246.683 5.084
+273.254 498.244 6.313 540.125 6.005 246.256 3.871
+273.411 495.582 6.391 538.491 6.147 252.122 3.539
+273.570 492.925 5.766 539.534 5.725 246.771 3.379
+273.728 496.339 6.522 540.435 6.553 247.087 3.430
+273.886 496.283 5.525 539.734 6.295 243.990 4.464
+274.044 497.972 5.475 539.537 6.234 248.199 3.991
+274.202 496.999 5.518 540.085 5.998 247.252 5.979
+274.359 497.830 6.237 540.550 5.983 247.982 4.483
+274.517 495.938 6.028 539.815 6.115 246.979 4.249
+274.675 500.309 6.193 540.128 5.846 247.589 3.485
+274.834 494.703 7.470 540.981 6.126 246.755 4.269
+274.992 496.487 5.639 540.469 5.904 251.717 4.588
+275.149 496.404 6.219 540.984 6.021 246.287 5.550
+275.307 495.034 6.076 539.419 6.508 247.572 3.813
+275.464 494.130 5.920 539.734 5.986 250.755 3.539
+275.622 496.021 6.195 541.517 6.211 249.897 3.685
+275.781 497.200 6.156 541.505 6.408 250.338 3.472
+275.939 497.232 6.045 539.835 6.253 253.613 4.357
+276.098 499.362 6.120 540.698 6.116 253.246 5.777
+276.256 497.523 6.074 539.767 6.073 248.252 3.926
+276.413 494.405 5.567 539.087 6.131 248.122 4.246
+276.571 497.214 5.317 539.390 6.049 249.861 4.506
+276.729 496.592 5.839 537.874 5.790 252.138 3.324
+276.887 499.405 6.947 537.988 6.342 254.541 6.566
+277.044 495.814 7.454 538.799 6.993 241.085 5.753
+277.202 495.678 7.085 539.868 6.499 242.710 4.352
+277.359 497.416 6.283 539.048 7.020 247.737 4.643
+277.516 497.044 6.309 539.390 6.525 251.407 6.209
+277.674 497.470 6.498 539.664 6.290 250.344 4.749
+277.831 495.484 6.455 538.836 6.428 244.323 3.903
+277.988 494.824 6.940 538.738 6.016 245.803 4.993
+278.145 497.378 5.625 539.427 5.978 251.048 3.726
+278.303 495.983 5.733 538.814 5.943 247.640 3.921
+278.460 495.939 6.429 539.138 6.281 247.066 4.051
+278.618 495.959 5.759 538.471 6.318 247.570 4.218
+278.777 496.609 5.710 538.594 5.894 249.555 3.376
+278.934 496.356 5.524 539.596 5.863 246.745 3.651
+279.092 499.113 5.365 539.066 6.100 251.797 4.468
+279.249 495.111 6.289 538.920 6.050 243.827 4.668
+279.407 498.491 6.490 539.379 6.093 249.038 4.676
+279.564 495.924 6.339 539.303 6.124 246.840 5.040
+279.722 496.719 5.679 538.893 6.358 249.038 4.059
+279.881 495.867 6.036 537.499 6.666 248.280 3.606
+280.038 497.218 6.204 538.615 5.778 251.292 4.071
+280.195 495.352 6.546 539.266 5.954 244.302 4.690
+280.353 494.653 7.030 538.562 6.474 243.333 4.389
+280.511 497.856 5.599 538.155 5.960 251.813 3.799
+280.669 494.788 5.805 537.341 6.177 253.828 4.751
+280.827 495.327 6.021 538.803 6.338 248.208 3.305
+280.985 497.153 6.072 538.768 6.458 243.642 6.508
+281.142 494.621 6.050 538.177 5.937 248.546 5.787
+281.299 491.086 6.205 537.841 6.258 252.195 5.379
+281.457 495.980 5.688 537.808 5.766 248.051 3.858
+281.615 495.169 5.687 539.058 6.143 244.740 3.344
+281.773 496.941 5.980 538.990 6.105 250.167 3.604
+281.931 496.489 6.138 538.199 5.822 252.151 3.750
+282.089 494.204 6.103 538.312 5.857 248.071 3.617
+282.247 495.052 5.626 538.503 6.245 247.680 4.053
+282.405 493.020 5.917 537.695 6.306 246.786 5.111
+282.563 495.110 6.247 537.207 5.835 252.207 4.363
+282.720 494.751 5.698 537.542 6.330 249.102 4.042
+282.878 494.877 6.184 538.575 6.176 246.441 3.282
+283.037 497.208 5.993 538.575 5.902 246.464 3.226
+283.195 496.602 5.869 537.755 6.074 250.244 3.795
+283.353 492.986 6.102 537.137 5.798 247.522 5.449
+283.511 494.799 5.622 537.281 5.871 249.725 4.009
+283.669 495.068 6.114 538.012 6.468 247.947 3.760
+283.826 494.760 6.662 538.370 5.869 244.279 4.543
+283.984 495.977 5.606 537.923 6.059 250.992 3.900
+284.142 494.119 5.698 538.359 5.898 247.769 3.890
+284.300 494.941 5.505 536.613 5.899 251.857 3.055
+284.459 489.409 6.525 537.896 6.386 244.488 3.840
+284.616 495.604 6.700 538.769 5.731 247.264 4.084
+284.773 494.576 5.347 537.987 6.134 250.372 3.544
+284.932 495.985 5.789 538.379 6.122 252.133 3.831
+285.089 494.989 5.948 538.513 5.963 249.631 5.441
+285.247 490.189 5.953 538.115 6.785 248.486 4.164
+285.405 490.411 8.859 538.841 6.369 246.894 8.170
+285.562 490.614 8.222 538.678 6.899 243.548 9.150
+285.718 487.446 7.839 537.626 6.678 242.635 6.234
+285.876 488.184 7.324 537.376 6.710 247.406 4.952
+286.034 489.801 8.300 538.383 8.166 246.394 7.985
+286.190 488.288 8.617 538.893 6.495 243.433 5.986
+286.348 490.242 6.385 537.699 6.194 247.074 5.876
+286.505 497.902 7.043 537.887 6.781 250.700 6.357
+286.662 499.219 6.890 537.018 6.127 244.677 6.083
+286.820 500.002 7.269 538.790 6.692 247.476 4.832
+286.977 499.250 6.894 537.817 6.226 253.644 3.983
+287.135 497.012 7.524 539.468 5.962 251.366 3.954
+287.291 491.400 7.822 538.374 7.349 245.993 5.446
+287.449 487.174 8.144 538.763 7.345 242.549 6.818
+287.605 485.381 6.323 538.327 6.301 248.815 3.140
+287.763 488.423 7.250 537.143 7.069 253.248 5.264
+287.921 488.414 5.960 538.311 6.849 245.362 5.011
+288.079 485.074 6.547 539.903 6.521 245.873 7.215
+288.236 486.270 7.666 537.269 8.262 248.678 5.679
+288.393 492.592 7.379 537.462 6.037 250.536 6.762
+288.550 496.785 6.570 538.994 6.792 249.785 5.777
+288.708 498.217 5.703 538.690 6.294 254.047 8.099
+288.866 497.372 6.779 538.816 6.647 250.960 10.925
+289.023 499.523 7.918 539.148 6.085 246.749 9.718
+289.179 499.315 7.582 538.061 6.658 246.447 6.032
+289.337 500.173 10.308 537.790 7.954 250.724 6.866
+289.494 490.651 7.591 538.587 6.260 247.037 5.816
+289.651 484.986 6.053 538.655 6.541 244.930 5.842
+289.809 486.119 6.779 538.356 6.654 243.009 5.750
+289.967 491.311 11.647 538.723 6.605 246.850 7.852
+290.124 497.403 6.202 537.777 6.523 252.968 9.402
+290.281 497.454 11.803 537.797 6.588 251.849 7.880
+290.437 502.564 12.683 540.118 7.006 249.218 6.289
+290.595 503.395 10.355 539.311 7.115 251.992 8.005
+290.752 499.353 7.046 539.113 6.668 251.219 6.627
+290.909 489.553 7.687 538.601 8.482 244.322 3.935
+291.066 483.795 7.344 538.186 6.670 246.273 6.812
+291.223 488.567 7.441 538.981 7.122 246.472 7.962
+291.379 500.275 7.284 537.139 8.575 252.864 5.617
+291.538 498.922 7.660 538.881 6.044 248.618 6.515
+291.695 499.189 6.422 539.278 7.303 252.086 6.021
+291.853 502.111 7.088 539.792 7.038 254.230 5.112
+292.011 494.791 7.904 539.978 6.800 245.552 5.913
+292.168 493.067 7.985 537.729 6.379 247.785 5.239
+292.325 488.810 8.418 537.797 7.393 247.687 5.411
+292.482 489.188 6.789 537.568 7.780 250.876 7.214
+292.639 483.931 5.620 539.335 6.707 241.768 5.472
+292.797 493.059 9.265 538.093 7.840 251.297 7.816
+292.954 489.160 11.749 538.361 6.828 246.732 7.747
+293.110 493.611 6.711 539.283 6.170 248.707 7.054
+293.268 495.536 9.554 538.492 6.559 249.467 5.997
+293.425 500.725 10.415 539.394 6.840 253.534 8.771
+293.582 502.467 8.427 540.074 7.582 252.875 7.474
+293.739 503.104 11.586 539.710 7.626 251.928 8.632
+293.896 500.641 10.237 539.117 6.980 249.189 8.803
+294.053 492.396 8.108 539.171 7.418 244.501 8.873
+294.209 491.084 8.546 537.931 6.702 246.855 8.733
+294.366 484.360 7.587 536.899 7.585 248.658 10.993
+294.523 485.013 9.273 539.699 7.291 242.506 9.279
+294.679 484.560 11.529 540.727 7.990 243.165 6.865
+294.835 491.605 8.945 539.377 8.396 247.871 6.955
+294.991 491.256 8.178 537.463 7.909 253.688 8.243
+295.147 492.752 7.542 539.644 8.088 250.376 6.220
+295.304 492.927 7.826 539.056 6.844 245.163 7.501
+295.460 497.349 7.402 539.720 6.412 242.861 6.114
+295.617 499.573 7.585 539.837 7.674 255.598 6.561
+295.775 501.525 8.532 536.888 6.566 256.976 5.858
+295.933 500.015 8.003 538.088 6.551 249.079 5.702
+296.090 503.920 6.471 540.591 6.795 248.470 7.252
+296.248 498.429 10.241 539.156 7.868 250.304 11.773
+296.405 502.034 7.709 538.071 8.424 255.763 7.927
+296.561 499.360 6.264 538.650 7.447 252.707 6.030
+296.718 497.573 7.155 539.736 7.500 251.557 4.614
+296.875 490.215 6.944 539.977 7.325 247.705 5.736
+297.033 483.192 7.505 538.759 6.479 244.357 7.057
+297.191 489.151 7.909 537.847 7.987 250.043 7.335
+297.349 488.811 9.493 537.838 7.925 250.910 5.456
+297.505 484.618 7.213 538.448 6.840 245.659 7.587
+297.662 486.596 7.641 538.374 7.201 249.606 6.368
+297.819 484.805 6.027 538.583 6.190 250.266 5.998
+297.977 487.828 6.630 539.655 6.579 249.652 3.953
+298.134 488.678 5.978 538.076 6.113 249.606 4.300
+298.292 490.426 6.053 538.670 6.102 247.136 4.703
+298.450 490.314 5.989 538.616 6.405 250.341 4.806
+298.608 490.063 6.674 538.766 6.153 250.523 4.396
+298.766 482.620 7.438 539.557 6.015 249.725 4.930
+298.924 480.206 6.535 537.825 6.071 248.117 3.946
+299.081 485.302 5.761 538.598 6.294 249.721 7.606
+299.238 485.833 6.846 537.506 6.608 246.237 6.272
+299.395 487.778 6.077 539.445 6.049 250.672 4.699
+299.553 486.147 5.459 540.384 6.058 248.676 4.331
+299.711 484.671 5.703 537.913 6.065 248.266 4.627
+299.869 486.406 6.443 538.959 6.187 249.022 5.380
+300.027 482.234 5.680 539.789 6.078 249.160 4.443
+300.185 481.692 5.481 538.067 6.302 252.021 3.671
+300.343 483.116 6.644 537.660 6.312 249.360 4.528
+300.500 479.891 5.851 538.356 6.263 246.713 4.201
+300.658 480.868 5.689 539.393 7.045 247.067 4.842
+300.816 479.468 6.018 537.603 6.871 251.260 4.239
+300.973 478.604 5.941 538.146 6.327 247.302 5.381
+301.131 478.796 5.956 538.741 6.199 252.613 4.449
+301.289 481.407 6.276 537.037 6.579 250.766 5.402
+301.447 481.534 6.316 541.400 6.100 243.477 5.234
+301.605 482.785 6.336 540.094 5.972 247.784 3.378
+301.763 479.417 5.341 538.191 6.223 254.437 4.734
+301.921 480.284 6.077 538.711 6.315 250.664 7.015
+302.079 481.722 7.607 538.567 6.108 243.386 4.072
+302.236 475.817 5.411 537.655 7.147 246.423 4.640
+302.394 478.538 6.199 539.086 6.735 251.744 3.961
+302.551 479.835 6.825 538.081 6.134 250.807 4.643
+302.709 475.448 6.674 539.300 6.592 244.318 4.434
+302.866 478.304 6.047 538.583 6.676 248.773 3.814
+303.024 480.703 5.970 537.065 6.066 252.187 3.926
+303.181 482.307 6.477 538.220 6.091 248.651 4.332
+303.339 480.273 7.372 537.992 6.527 248.276 5.498
+303.496 478.742 5.568 539.360 6.674 247.732 4.172
+303.654 476.797 5.478 539.593 6.253 246.997 6.431
+303.812 480.518 5.870 537.956 6.591 249.009 3.699
+303.970 475.725 5.737 539.939 6.539 247.320 4.467
+304.128 478.077 6.127 537.369 6.087 248.713 4.963
+304.286 479.300 5.936 537.483 6.155 247.857 4.730
+304.444 478.513 6.067 536.434 6.656 248.708 4.091
+304.601 480.065 6.102 536.744 6.602 251.437 3.526
+304.759 479.680 6.634 538.607 6.744 249.974 4.568
+304.917 480.646 5.553 538.506 6.464 248.149 4.218
+305.074 478.156 5.916 539.515 6.298 245.491 4.186
+305.232 481.341 6.027 541.445 6.131 248.004 3.434
+305.390 481.213 6.339 537.904 6.617 248.270 5.088
+305.548 478.362 5.641 537.399 6.504 246.122 3.500
+305.706 480.703 5.816 536.814 6.559 251.001 4.823
+305.863 478.327 5.506 538.088 6.469 247.000 4.731
+306.022 482.293 5.430 537.300 6.253 249.740 3.555
+306.180 479.812 5.750 540.223 6.548 249.787 4.895
+306.338 480.998 8.095 538.612 6.515 248.807 8.277
+306.493 479.280 6.557 537.076 6.834 248.658 4.471
+306.652 479.822 6.046 539.010 6.932 247.436 3.737
+306.810 479.408 6.180 537.290 6.606 248.864 3.731
+306.968 479.614 6.954 537.543 6.372 247.198 4.310
+307.126 483.036 5.941 538.035 6.690 247.312 4.506
+307.284 479.060 5.727 536.770 6.439 245.603 4.036
+307.441 481.960 6.871 536.867 6.318 250.186 4.834
+307.599 479.399 5.915 538.478 6.327 250.281 3.494
+307.757 478.724 7.031 537.484 7.321 248.672 4.796
+307.913 475.807 6.423 538.384 6.214 248.716 6.167
+308.071 480.918 7.259 537.603 6.384 247.267 3.979
+308.228 482.259 7.369 537.516 6.735 245.962 9.963
+308.385 481.082 6.153 537.755 6.086 246.189 4.706
+308.543 483.200 6.110 539.367 6.298 250.191 7.308
+308.700 481.202 6.084 538.663 6.114 247.721 5.768
+308.858 480.952 5.784 538.996 6.155 250.327 6.038
+309.016 478.089 6.509 538.260 5.902 250.163 4.524
+309.174 478.120 5.592 538.472 7.100 250.971 6.194
+309.332 484.711 5.953 537.544 5.945 251.449 5.100
+309.490 481.777 5.551 538.465 5.737 244.344 4.243
+309.648 482.567 6.038 537.674 5.983 245.583 3.700
+309.806 481.115 6.441 538.126 6.107 249.805 4.199
+309.964 486.971 6.003 537.411 5.990 251.998 4.524
+310.122 481.169 5.288 538.584 6.160 248.000 4.127
+310.278 485.981 5.543 538.955 6.201 248.880 3.497
+310.436 488.939 5.959 538.799 5.785 251.598 4.097
+310.594 487.779 6.305 539.838 5.979 250.386 4.169
+310.752 485.967 5.677 538.008 6.296 249.883 3.653
+310.910 488.729 6.810 538.910 6.102 246.938 4.080
+311.067 487.517 6.009 538.939 6.029 245.929 6.417
+311.225 477.815 5.936 538.929 6.046 242.389 4.715
+311.383 492.568 5.749 537.479 6.028 254.463 4.394
+311.541 482.985 5.486 538.274 6.013 248.074 4.905
+311.699 487.469 7.783 539.562 6.432 245.270 6.672
+311.855 492.734 7.939 538.695 6.855 251.582 5.720
+312.013 492.087 6.338 539.337 7.501 265.945 5.425
+312.171 491.200 7.520 540.183 6.241 245.449 7.584
+312.327 486.672 6.725 538.451 6.602 243.804 9.719
+312.484 490.456 8.280 534.194 6.274 267.748 4.673
+312.642 494.114 6.810 536.922 5.969 252.617 5.659
+312.800 488.921 9.566 538.959 7.066 234.846 10.043
+312.956 491.159 9.092 540.489 6.595 234.878 7.616
+313.113 493.121 5.937 538.384 6.407 253.458 7.758
+313.271 489.801 5.824 537.113 5.844 254.604 4.048
+313.428 490.958 7.660 538.861 6.187 241.106 6.047
+313.586 487.229 7.904 539.928 7.342 238.461 5.175
+313.743 487.452 6.246 539.899 7.652 248.704 5.229
+313.902 496.574 6.176 536.529 7.425 260.407 5.885
+314.060 491.455 9.412 537.895 6.777 248.824 5.752
+314.217 490.694 7.566 539.029 7.072 244.188 8.234
+314.374 490.406 6.301 539.030 6.906 238.891 6.345
+314.531 493.564 10.901 538.700 7.568 247.478 8.742
+314.688 487.725 7.817 537.117 6.514 252.264 6.250
+314.846 489.397 5.753 538.171 6.142 247.082 3.991
+315.004 491.664 7.851 541.881 6.865 235.880 4.860
+315.161 493.016 7.109 540.088 6.193 241.258 3.859
+315.318 490.570 5.888 539.680 6.220 250.462 3.925
+315.476 489.875 5.890 539.186 6.328 248.114 3.804
+315.634 492.018 5.340 539.491 6.801 248.341 3.944
+315.791 493.400 6.485 540.784 6.232 243.063 3.488
+315.950 486.744 5.308 539.397 6.753 245.980 5.718
+316.108 494.747 5.922 539.764 6.400 253.519 4.412
+316.266 493.667 6.691 539.027 6.122 254.625 3.837
+316.424 489.506 5.835 539.520 6.260 244.406 3.550
+316.582 487.585 6.332 539.295 6.395 244.424 5.287
+316.739 494.205 7.022 539.053 6.326 250.294 8.477
+316.896 494.202 6.090 540.780 7.059 252.302 5.381
+317.054 493.062 7.412 540.077 5.874 246.953 3.729
+317.212 490.770 6.275 539.800 6.104 249.269 3.859
+317.370 492.807 6.022 541.198 5.868 250.782 6.682
+317.528 492.258 6.905 540.292 6.501 247.417 4.932
+317.685 490.762 5.602 540.913 6.064 247.964 6.045
+317.843 492.247 6.303 539.499 6.018 250.249 4.567
+318.001 490.972 6.300 539.235 6.153 249.062 4.773
+318.158 491.979 6.518 541.362 6.176 246.700 6.668
+318.316 492.879 6.096 541.823 5.898 248.147 3.524
+318.474 491.298 6.184 538.758 6.273 254.791 3.500
+318.632 491.973 5.533 540.117 5.978 251.247 4.044
+318.790 493.159 6.609 540.341 6.140 246.432 4.663
+318.948 491.961 8.310 540.373 7.540 249.684 11.670
+319.105 493.399 8.946 540.623 6.191 250.896 5.768
+319.262 492.714 5.816 541.376 6.617 249.808 5.175
+319.420 488.637 7.757 540.923 7.306 246.278 5.269
+319.578 495.176 6.151 540.659 6.389 252.022 3.946
+319.736 491.241 6.231 540.246 6.015 254.320 4.742
+319.894 494.902 5.931 541.432 6.168 247.953 3.606
+320.052 490.009 6.708 540.604 6.344 247.039 3.959
+320.210 495.740 7.261 541.246 7.083 251.460 5.624
+320.367 492.057 6.373 542.082 6.525 243.074 10.206
+320.525 490.610 5.886 542.070 6.152 243.500 5.745
+320.683 489.126 5.493 542.430 6.249 253.855 4.141
+320.841 489.031 5.998 540.914 5.859 251.748 3.963
+320.998 486.050 6.698 540.529 6.412 246.487 5.607
+321.156 485.270 6.796 541.605 6.085 248.854 6.042
+321.314 491.232 5.997 540.386 5.868 255.468 4.620
+321.471 485.032 7.360 540.943 6.260 247.124 3.966
+321.629 486.010 5.592 539.499 5.950 249.091 3.535
+321.787 490.460 6.069 540.805 6.057 251.430 4.406
+321.944 486.984 6.633 541.278 5.927 249.244 4.445
+322.103 488.679 5.828 541.132 6.187 250.282 3.199
+322.261 488.576 5.821 541.411 5.755 249.732 3.493
+322.419 485.685 5.454 540.924 5.929 251.427 4.195
+322.577 480.826 6.421 539.429 6.115 246.714 4.113
+322.734 486.968 5.540 539.804 5.946 253.147 3.256
+322.893 479.759 5.666 540.848 6.155 247.631 3.799
+323.051 487.007 5.786 540.138 5.731 250.306 4.526
+323.209 483.070 6.029 539.741 6.191 247.143 3.851
+323.367 483.720 6.520 540.687 6.089 249.931 4.237
+323.524 483.687 5.607 539.706 5.803 250.999 3.931
+323.682 481.276 6.613 540.667 5.985 245.580 3.383
+323.840 484.822 6.034 540.646 5.869 249.215 4.337
+323.997 481.008 5.948 539.886 6.257 250.292 3.342
+324.155 485.100 6.477 540.158 5.938 251.232 3.860
+324.314 482.051 5.567 540.291 6.074 247.252 3.507
+324.472 481.210 5.460 541.483 6.499 249.342 4.119
+324.629 480.122 6.093 541.524 6.891 250.383 4.469
+324.786 480.471 6.113 540.465 7.185 249.133 5.105
+324.943 479.334 5.738 540.384 6.549 246.651 6.066
+325.101 484.043 6.508 540.493 7.818 251.036 5.958
+325.259 481.150 5.598 541.375 6.378 246.120 6.188
+325.416 479.631 6.003 542.863 6.373 247.791 3.552
+325.574 479.626 5.841 542.838 6.007 250.787 4.227
+325.732 479.526 6.159 540.518 6.372 246.627 3.577
+325.891 476.855 6.794 540.385 6.016 250.166 3.735
+326.048 478.818 6.127 540.093 6.563 250.451 7.280
+326.206 480.258 5.740 542.041 6.275 251.634 4.297
+326.363 480.862 7.161 540.720 5.867 247.936 4.451
+326.521 478.248 5.824 540.857 5.950 248.959 4.957
+326.680 478.682 5.831 540.118 6.254 249.369 4.077
+326.838 480.366 5.907 540.961 6.998 254.473 3.515
+326.996 480.863 5.816 540.509 6.193 248.984 3.580
+327.154 481.048 5.598 541.105 5.977 245.989 4.001
+327.312 480.660 5.945 543.081 6.743 247.479 4.376
+327.470 479.976 6.112 540.110 6.658 253.714 3.525
+327.628 479.879 6.005 540.081 6.085 250.397 5.041
+327.786 482.208 6.928 540.110 6.477 249.544 5.241
+327.944 478.892 6.624 541.671 6.658 248.065 3.941
+328.100 481.889 6.002 540.556 6.496 249.060 4.374
+328.259 478.678 5.377 540.345 6.981 248.630 3.575
+328.417 478.076 6.201 539.903 6.304 249.916 4.546
+328.575 481.260 5.990 539.979 7.326 251.769 4.662
+328.733 482.482 6.811 541.239 6.846 245.687 4.764
+328.890 479.974 5.889 539.862 6.669 248.656 3.856
+329.049 479.979 5.614 540.268 6.624 250.246 3.631
+329.207 480.559 5.468 539.692 7.382 247.902 5.530
+329.365 477.645 7.092 541.407 6.302 243.729 6.026
+329.522 481.886 6.128 540.604 6.462 248.907 5.769
+329.680 483.618 6.530 541.966 6.386 252.039 4.181
+329.838 481.536 5.811 542.409 6.101 246.600 4.850
+329.996 482.515 6.373 541.134 6.411 244.416 3.774
+330.154 485.125 7.481 540.161 6.396 251.464 4.083
+330.311 480.991 6.207 539.791 6.561 250.304 5.967
+330.469 486.359 6.122 541.498 5.935 245.173 3.940
+330.627 485.133 6.562 541.645 6.398 248.831 4.162
+330.785 483.001 5.723 540.696 5.793 250.968 3.218
+330.944 487.920 6.132 541.267 5.835 254.029 5.865
+331.103 484.589 5.716 542.902 6.070 245.910 4.895
+331.261 482.275 5.913 540.749 5.912 246.179 3.617
+331.419 489.212 5.973 541.107 6.234 252.051 3.373
+331.578 486.732 6.380 540.291 6.068 250.550 4.760
+331.736 484.607 6.877 541.273 5.681 245.915 5.801
+331.894 485.506 5.894 540.412 6.034 253.539 3.633
+332.052 488.525 5.547 540.834 5.891 249.605 3.466
+332.210 485.115 5.819 541.088 5.899 247.256 4.392
+332.367 488.341 5.658 542.150 5.843 249.492 3.976
+332.525 491.303 5.831 541.311 5.985 252.994 4.378
+332.683 489.453 5.475 540.663 5.891 246.039 3.369
+332.842 491.894 5.529 540.996 5.925 247.690 4.727
+332.999 491.658 6.352 540.190 5.902 249.536 3.454
+333.158 491.126 5.663 542.001 5.751 251.145 4.677
+333.315 492.711 5.895 540.280 5.989 250.981 4.066
+333.473 494.667 5.510 541.602 6.304 250.429 3.351
+333.631 492.766 5.735 540.886 5.856 245.334 4.579
+333.789 492.447 5.735 540.098 5.982 251.863 4.393
+333.946 494.114 6.040 542.041 6.146 248.988 5.154
+334.104 495.001 5.749 541.300 5.946 243.639 6.091
+334.262 494.700 5.874 541.343 6.094 250.466 3.175
+334.421 491.727 5.448 539.263 6.167 249.134 5.052
+334.578 493.807 5.425 539.432 6.066 252.121 7.949
+334.735 494.848 5.602 542.414 5.991 251.421 4.045
+334.893 493.858 6.719 540.564 5.858 248.414 3.662
+335.051 491.068 5.676 541.465 6.049 242.964 4.093
+335.208 497.590 5.724 541.774 5.720 253.069 3.593
+335.366 495.795 5.668 540.577 6.051 250.970 3.584
+335.525 493.548 5.521 540.815 6.153 248.229 4.130
+335.682 494.915 5.866 541.828 6.200 247.592 4.949
+335.841 498.129 7.334 540.568 6.585 248.775 3.475
+335.998 491.271 5.473 540.385 6.459 248.187 4.244
+336.156 490.392 5.902 540.313 6.262 252.131 5.189
+336.315 497.733 6.662 541.983 6.384 253.871 5.376
+336.473 499.317 6.673 541.269 6.049 245.458 5.740
+336.630 494.383 6.078 542.072 6.235 240.724 4.860
+336.788 492.383 6.152 539.410 6.265 253.887 4.628
+336.947 493.073 5.650 540.484 6.029 255.258 3.609
+337.105 495.030 5.660 541.124 6.092 249.572 3.662
+337.263 490.700 5.742 540.201 6.442 239.595 4.547
+337.421 492.847 5.693 540.492 5.956 245.946 4.097
+337.579 494.538 5.916 538.884 5.902 254.089 4.947
+337.737 492.165 5.973 539.658 6.047 251.690 4.569
+337.894 493.641 6.172 539.186 5.795 252.806 3.438
+338.052 494.476 5.588 539.251 5.900 247.128 3.445
+338.210 493.964 6.584 539.932 5.889 243.341 4.254
+338.367 493.999 5.654 537.919 6.071 251.223 4.231
+338.526 494.410 7.196 538.509 6.438 252.492 4.776
+338.683 494.294 6.697 538.855 6.285 246.234 4.185
+338.840 498.332 5.889 537.908 6.063 250.962 4.073
+338.999 495.733 5.906 537.629 5.929 248.959 3.326
+339.157 496.587 5.752 537.446 6.202 247.409 4.253
+339.315 494.815 5.722 538.194 5.778 248.314 4.795
+339.472 489.748 6.176 537.561 5.888 243.943 4.562
+339.630 493.587 6.313 538.325 6.117 247.049 4.729
+339.789 497.145 6.331 536.763 6.031 253.060 4.280
+339.947 499.131 5.670 538.697 6.613 251.930 5.980
+340.104 497.541 6.703 537.707 6.038 247.969 3.303
+340.263 490.585 5.907 538.037 5.854 245.249 4.045
+340.420 491.125 5.817 537.590 6.435 248.312 6.413
+340.577 495.451 5.446 538.045 6.392 249.033 5.220
+340.735 496.524 5.893 536.630 6.463 249.370 5.125
+340.893 496.795 5.714 538.206 5.633 248.233 4.302
+341.051 493.507 6.763 538.782 5.745 245.492 4.258
+341.209 497.035 6.531 537.597 6.319 251.714 4.630
+341.366 495.400 6.553 536.706 5.836 251.647 5.113
+341.523 493.134 5.913 538.267 5.947 245.456 3.853
+341.681 494.731 5.786 537.862 5.919 247.074 3.394
+341.839 495.587 5.582 537.318 6.143 254.010 3.626
+341.998 493.765 5.777 537.183 6.089 244.470 3.455
+342.155 494.587 5.992 538.431 5.986 246.694 3.677
+342.313 497.675 6.082 536.834 6.276 253.696 5.484
+342.472 492.876 6.396 537.358 6.191 250.186 3.888
+342.629 493.378 5.939 538.293 6.070 241.731 3.796
+342.787 494.693 6.539 537.483 6.194 243.717 5.903
+342.945 496.636 5.778 537.354 5.997 257.947 3.494
+343.105 494.616 7.059 536.783 6.589 251.939 4.940
+343.262 492.926 6.065 537.787 5.937 245.869 3.933
+343.420 492.679 6.032 538.287 6.397 241.088 4.617
+343.578 493.536 5.489 537.952 5.985 250.480 3.743
+343.736 496.105 5.520 537.589 6.041 253.454 3.295
+343.894 497.511 5.531 537.375 5.956 248.284 3.480
+344.052 492.385 6.001 538.303 5.739 241.592 3.771
+344.210 496.793 6.064 538.903 5.767 250.105 3.425
+344.369 494.267 5.708 537.109 6.348 252.871 4.035
+344.526 493.862 5.924 536.801 6.202 251.478 3.498
+344.684 494.248 5.882 537.798 5.961 244.664 4.542
+344.842 497.892 5.592 539.108 6.179 247.746 3.560
+345.000 493.718 5.732 537.831 5.970 251.357 3.614
+345.158 494.167 6.432 536.348 5.840 250.323 3.724
+345.316 493.651 5.810 537.523 5.848 248.473 3.679
+345.474 493.666 7.344 538.675 6.143 247.714 4.141
+345.631 495.136 5.313 537.236 5.846 249.917 3.904
+345.789 495.431 5.916 538.222 6.034 245.659 4.443
+345.947 495.574 6.031 537.002 5.880 250.076 4.462
+346.104 495.565 7.202 537.810 6.687 253.710 4.547
+346.262 493.505 6.891 538.138 6.203 248.727 3.667
+346.419 495.905 5.862 538.361 5.917 246.567 3.857
+346.577 496.889 6.964 538.983 5.983 246.575 4.083
+346.734 494.678 5.992 538.339 6.275 248.035 4.411
+346.892 494.056 6.320 537.343 6.204 248.690 3.563
+347.050 494.590 5.661 537.693 6.025 248.366 4.036
+347.207 491.895 6.475 537.066 6.058 249.553 3.695
+347.365 495.728 5.833 537.350 6.491 251.175 3.930
+347.523 497.097 6.747 537.573 6.024 251.841 3.275
+347.680 495.770 6.416 536.585 6.023 247.378 4.589
+347.838 494.337 6.215 536.885 6.059 246.743 5.336
+347.996 495.343 6.220 537.858 6.290 248.027 4.857
+348.154 493.963 6.171 536.528 6.230 250.930 4.216
+348.312 495.619 6.289 536.585 6.667 252.779 3.961
+348.470 496.246 6.702 538.005 5.933 251.317 3.616
+348.628 490.932 6.524 537.070 6.300 245.223 3.636
+348.786 494.659 6.116 538.150 5.864 245.522 5.270
+348.943 498.326 6.534 537.851 5.835 250.275 3.164
+349.102 495.133 6.748 537.718 6.017 248.172 4.667
+349.260 490.251 5.724 537.437 6.170 249.101 3.861
+349.418 493.642 5.523 538.614 5.874 248.581 3.631
+349.576 493.986 6.681 537.856 6.449 246.075 5.020
+349.733 497.739 6.115 538.778 6.212 246.420 5.013
+349.892 497.567 6.162 538.477 5.872 252.904 4.404
+350.050 495.595 5.913 537.344 6.136 251.759 5.135
+350.209 493.145 7.323 537.493 6.029 247.157 5.095
+350.366 493.081 5.845 536.965 6.162 244.661 4.550
+350.524 497.440 6.477 537.979 6.244 248.536 3.808
+350.682 496.384 6.328 536.799 5.993 252.545 3.626
+350.840 492.873 5.941 537.398 5.982 247.895 3.531
+350.998 492.548 6.402 537.404 6.047 248.118 4.044
+351.157 493.275 5.760 538.374 6.642 249.811 4.413
+351.314 497.792 5.915 537.833 6.155 251.588 3.347
+351.472 498.127 5.604 538.038 6.385 248.075 4.653
+351.629 496.531 6.618 537.100 6.184 248.990 4.040
+351.788 494.615 5.795 538.011 5.754 246.499 4.412
+351.945 495.166 8.417 538.000 6.415 248.575 4.912
+352.102 490.351 6.935 537.470 6.285 247.435 3.677
+352.260 491.843 6.508 536.834 5.917 245.384 5.722
+352.418 492.068 6.377 538.948 6.479 247.893 4.804
+352.576 491.810 6.997 538.609 5.859 247.008 4.253
+352.733 491.158 7.555 537.846 6.496 243.350 5.850
+352.890 496.541 6.554 539.078 7.527 250.003 4.574
+353.048 498.145 7.004 538.240 6.875 255.780 6.809
+353.205 499.131 7.001 537.112 6.473 249.357 4.703
+353.362 492.411 6.278 538.311 6.336 243.063 4.086
+353.520 491.014 6.803 536.563 6.927 246.550 5.425
+353.677 498.460 6.126 537.445 6.280 251.805 4.459
+353.835 495.284 6.051 537.574 6.216 249.808 3.945
+353.993 495.232 6.581 538.005 5.794 248.778 5.255
+354.151 497.022 6.876 537.890 6.423 249.317 4.075
+354.308 497.610 5.545 537.858 6.051 249.673 4.174
+354.466 494.486 6.217 537.138 6.019 249.606 3.640
+354.624 493.674 6.633 538.521 5.714 245.526 3.676
+354.782 491.826 5.898 538.215 6.356 248.735 4.807
+354.939 492.428 5.767 537.222 7.020 251.397 3.772
+355.097 492.314 6.413 537.862 6.635 249.833 4.462
+355.254 496.253 6.449 536.478 6.503 248.848 3.584
+355.412 499.632 7.092 538.344 6.221 252.758 4.253
+355.569 499.786 6.644 538.143 6.544 249.677 4.664
+355.726 494.037 6.390 537.831 6.192 246.636 5.226
+355.884 486.750 6.208 537.788 5.835 246.816 4.759
+356.042 486.527 6.423 537.237 6.767 247.468 3.465
+356.199 489.365 6.500 537.412 6.100 246.674 3.553
+356.357 495.713 6.051 537.524 6.132 247.066 4.306
+356.514 499.117 7.455 537.945 5.832 250.360 3.709
+356.672 497.611 6.147 538.539 6.062 250.973 5.394
+356.831 495.766 6.160 537.985 5.744 249.689 3.459
+356.989 491.177 6.781 538.899 6.998 244.836 4.154
+357.147 487.761 6.077 537.869 6.774 245.428 5.076
+357.305 490.687 5.448 538.928 6.740 250.174 6.127
+357.462 491.776 6.780 538.319 6.322 248.741 4.563
+357.620 496.927 6.297 537.283 6.096 248.057 4.942
+357.778 499.439 5.978 539.452 6.190 250.120 3.435
+357.936 496.514 5.673 538.794 5.961 247.271 3.716
+358.094 490.665 5.990 537.378 6.036 247.072 3.948
+358.251 493.826 6.699 538.953 6.534 247.850 5.188
+358.408 496.208 5.789 538.659 6.056 251.368 3.367
+358.566 496.862 5.733 537.606 5.858 250.983 4.537
+358.725 496.118 7.202 539.166 6.615 247.269 3.839
+358.883 495.691 6.124 537.891 6.410 246.872 5.025
+359.041 492.586 6.386 538.329 6.061 247.428 4.156
+359.198 491.845 5.890 538.113 6.082 249.034 3.811
+359.356 495.918 5.615 537.561 6.409 248.670 3.798
+359.514 496.249 7.291 538.105 6.152 248.156 4.202
+359.671 497.172 6.215 538.041 5.944 251.821 7.333
+359.829 495.021 6.603 538.380 5.835 248.538 4.406
+359.986 492.130 5.910 538.133 6.092 248.815 4.977
+360.143 491.901 7.270 538.381 6.084 246.588 4.713
+360.300 497.669 5.909 537.223 6.154 249.505 3.791
+360.457 499.456 5.939 537.552 5.965 251.245 4.300
+360.615 497.834 7.394 539.035 5.938 251.612 5.122
+360.772 495.948 8.223 538.010 6.635 248.096 4.894
+360.929 492.629 6.945 537.640 6.279 247.941 3.572
+361.088 489.636 6.521 537.216 6.265 248.289 4.406
+361.246 489.046 6.493 537.702 6.071 246.032 4.623
+361.403 493.710 7.003 537.297 6.504 247.430 6.059
+361.560 495.677 7.029 538.163 6.689 249.404 5.093
+361.718 497.656 6.459 537.961 6.007 250.064 4.767
+361.876 499.546 5.592 538.019 5.992 252.590 5.434
+362.034 498.905 5.917 539.440 6.313 251.575 6.068
+362.192 493.829 7.562 538.914 6.266 246.445 4.293
+362.349 489.398 6.501 537.079 6.381 247.164 5.544
+362.507 492.214 8.298 537.660 6.972 247.461 4.218
+362.664 498.612 9.408 537.446 7.002 250.964 4.122
+362.822 498.016 6.659 537.684 6.299 250.859 4.070
+362.980 496.580 6.177 538.306 6.134 248.028 3.893
+363.138 494.325 6.187 537.493 5.890 246.780 3.544
+363.296 491.533 6.734 538.815 5.949 247.137 3.798
+363.454 490.435 5.728 538.238 5.931 247.671 4.598
+363.611 496.134 5.913 537.732 6.019 249.766 3.268
+363.769 496.211 5.562 537.617 5.949 251.077 3.379
+363.927 495.582 5.775 537.846 5.756 252.310 4.233
+364.085 492.475 6.234 537.928 6.172 248.763 4.203
+364.243 495.604 5.670 538.099 5.871 247.167 3.777
+364.401 497.446 5.666 537.601 6.218 247.761 3.762
+364.559 495.754 6.049 536.866 5.785 248.557 4.085
+364.716 494.367 6.739 537.928 5.734 248.625 5.055
+364.874 495.323 5.809 537.069 5.876 250.096 5.742
+365.032 495.863 5.338 537.900 5.864 248.380 3.423
+365.190 496.118 5.364 538.189 5.828 250.253 5.158
+365.347 493.771 5.727 537.691 5.791 246.022 3.154
+365.505 493.667 5.780 538.826 6.230 247.440 4.708
+365.663 495.486 5.720 537.948 6.329 250.814 3.897
+365.822 492.984 5.894 537.199 6.096 250.168 3.775
+365.980 494.229 6.075 538.082 5.838 246.131 4.428
+366.137 495.792 6.152 538.650 5.867 241.511 3.650
+366.295 499.867 6.059 537.966 6.252 246.045 4.065
+366.453 499.808 5.815 536.909 6.029 257.910 3.558
+366.612 500.088 5.796 538.629 6.288 248.529 5.338
+366.769 494.350 5.979 539.626 6.059 239.465 4.999
+366.928 492.583 6.122 539.396 6.367 245.694 4.775
+367.086 495.835 5.765 537.174 5.869 257.756 3.347
+367.245 496.068 5.838 538.041 6.457 254.127 4.815
+367.403 494.460 6.871 538.680 6.409 236.321 5.168
+367.561 495.384 6.115 538.306 6.175 243.483 5.529
+367.719 498.303 5.995 538.583 5.723 260.094 4.967
+367.878 498.173 5.639 536.705 6.301 257.640 3.965
+368.036 496.961 6.448 539.217 6.222 245.156 6.100
+368.194 494.799 7.238 541.242 6.395 241.491 6.763
+368.352 490.858 6.094 537.902 6.350 246.604 4.607
+368.509 491.008 6.026 537.939 5.961 253.316 4.184
+368.667 497.620 5.869 536.289 6.622 249.173 4.918
+368.825 498.066 5.729 539.073 6.255 249.541 4.937
+368.982 498.240 6.136 539.600 6.218 249.075 5.391
+369.140 496.532 6.706 537.746 6.240 247.500 4.826
+369.298 494.085 5.610 538.677 6.301 248.535 3.932
+369.456 490.780 5.352 538.086 5.800 246.685 4.059
+369.613 491.427 6.092 537.480 6.375 251.056 5.183
+369.771 490.574 5.809 538.854 5.718 247.870 5.871
+369.929 496.345 6.555 538.048 6.493 247.628 4.936
+370.087 496.913 6.409 537.990 5.879 249.506 4.195
+370.244 499.389 5.617 538.029 6.168 252.155 4.126
+370.402 497.253 5.459 538.020 5.829 250.091 5.344
+370.560 498.122 6.213 537.980 5.977 246.250 4.245
+370.718 498.891 6.743 538.659 6.208 250.082 3.896
+370.875 498.018 6.165 538.556 6.262 252.310 3.427
+371.033 494.120 6.401 538.245 5.950 247.623 3.854
+371.191 492.611 6.719 539.022 6.368 246.256 3.734
+371.349 490.406 6.251 538.580 6.106 247.692 4.030
+371.506 491.914 6.292 537.705 6.751 250.266 4.361
+371.664 496.069 5.889 537.137 6.314 251.572 4.712
+371.822 497.650 6.636 537.711 6.770 251.525 4.628
+371.979 499.706 6.063 539.217 6.094 248.735 4.653
+372.137 498.607 5.921 538.752 6.066 250.557 4.344
+372.295 493.376 7.160 539.107 6.763 249.945 3.901
+372.453 493.713 6.634 538.741 6.500 246.529 4.049
+372.610 492.397 7.296 538.047 6.872 247.665 3.328
+372.767 496.244 6.193 537.690 6.195 249.286 4.085
+372.925 499.152 5.587 537.346 5.985 251.762 3.587
+373.083 498.691 5.863 538.483 6.176 250.627 3.979
+373.241 496.986 7.415 538.254 6.868 250.046 6.433
+373.398 490.649 6.175 538.402 5.840 244.280 4.613
+373.556 493.686 6.027 538.374 6.357 244.972 4.473
+373.714 498.526 6.549 538.293 5.882 246.679 4.044
+373.871 502.325 5.994 537.803 5.976 251.936 3.084
+374.029 498.333 5.869 537.808 5.814 246.269 4.095
+374.187 499.053 5.658 540.338 5.834 244.022 5.046
+374.344 499.760 6.324 539.773 6.053 244.630 6.068
+374.502 500.377 6.042 538.657 5.906 249.256 4.638
+374.659 499.093 6.071 538.956 5.889 251.902 3.463
+374.818 499.560 5.744 539.129 5.936 249.449 3.767
+374.975 498.705 6.141 540.011 5.834 248.284 4.341
+375.133 499.837 5.885 539.400 6.400 247.152 4.716
+375.291 500.588 6.185 539.214 5.788 247.271 3.553
+375.449 503.165 5.483 537.222 5.732 250.052 3.849
+375.606 498.071 6.558 537.612 6.051 245.110 3.809
+375.764 504.910 6.397 538.596 6.197 252.661 4.194
+375.922 499.889 6.380 538.456 5.823 244.916 5.077
+376.080 504.448 5.739 539.394 5.976 247.839 3.483
+376.238 504.404 6.220 538.254 5.908 244.808 4.010
+376.395 502.614 5.692 540.222 6.219 249.608 3.516
+376.553 503.956 6.195 539.262 6.510 245.956 3.880
+376.712 506.349 5.671 539.862 6.014 249.309 3.951
+376.869 505.783 5.686 539.278 6.255 246.823 3.535
+377.027 505.287 5.529 539.492 5.960 245.578 3.500
+377.184 505.302 6.382 538.465 6.556 248.815 4.791
+377.342 506.373 6.347 538.864 6.553 247.628 4.399
+377.499 504.623 5.766 539.378 5.968 244.686 3.979
+377.657 504.876 5.543 538.153 6.113 246.876 3.431
+377.815 506.718 7.327 539.241 6.156 247.318 3.715
+377.973 505.157 5.756 537.962 5.862 244.813 3.487
+378.131 509.441 5.553 541.469 6.724 244.638 3.779
+378.289 507.954 5.830 538.614 5.924 247.626 4.807
+378.446 509.459 6.338 537.806 6.418 248.936 4.379
+378.604 507.074 6.537 535.158 6.561 251.509 6.051
+378.761 506.660 6.295 542.671 6.263 243.995 5.094
+378.919 505.966 6.003 536.426 6.504 249.019 3.751
+379.077 509.699 6.057 539.144 6.844 244.760 4.806
+379.235 503.877 5.977 537.111 6.068 247.437 4.418
+379.392 508.468 5.859 538.251 6.679 247.404 4.446
+379.549 507.014 8.044 538.362 6.171 245.654 6.898
+379.706 504.950 6.277 538.503 6.524 243.686 4.577
+379.863 506.409 7.459 539.335 6.502 245.096 4.541
+380.020 507.434 6.663 538.963 6.017 246.250 5.476
+380.178 508.634 6.157 537.999 6.521 247.902 4.288
+380.337 505.786 5.702 539.430 6.126 246.119 3.396
+380.495 507.117 5.959 538.204 6.070 244.571 4.170
+380.652 505.611 6.389 537.452 6.410 246.625 4.563
+380.810 506.966 7.248 537.444 6.414 246.136 4.754
+380.967 505.879 6.622 537.494 6.556 247.541 4.930
+381.124 506.898 6.033 538.805 6.276 245.725 3.248
+381.282 507.239 6.756 537.398 6.699 245.447 4.667
+381.439 509.422 7.252 539.464 6.934 246.834 5.658
+381.596 509.924 6.228 537.574 6.552 247.648 5.969
+381.754 503.919 6.729 537.435 6.173 246.506 4.831
+381.911 505.939 6.885 539.024 6.197 247.385 5.117
+382.069 505.039 6.381 538.850 6.146 242.373 4.646
+382.227 507.450 5.925 536.478 6.627 248.163 7.359
+382.384 504.194 7.573 536.544 6.914 245.211 4.736
+382.541 507.472 6.810 538.345 6.492 244.732 5.617
+382.699 505.694 6.290 537.433 6.772 245.897 6.672
+382.856 507.816 7.877 539.984 6.503 244.728 4.787
+383.013 505.598 7.006 539.159 5.990 245.317 4.483
+383.169 504.446 6.714 538.381 6.174 244.883 5.223
+383.327 510.284 7.537 537.593 6.447 246.798 4.463
+383.485 503.732 6.570 539.926 6.205 246.418 4.649
+383.642 506.987 6.514 534.299 5.983 247.654 4.779
+383.800 505.109 6.813 539.873 6.452 245.766 5.037
+383.958 504.951 6.589 536.258 6.107 249.477 4.322
+384.116 502.849 6.532 541.302 6.492 244.334 5.440
+384.274 501.298 5.868 538.433 6.296 247.183 3.611
+384.433 503.813 5.572 539.884 5.954 247.281 3.755
+384.591 504.508 6.001 536.038 5.927 250.582 3.551
+384.748 498.275 5.852 536.980 5.771 246.605 3.806
+384.906 503.082 6.821 538.459 5.927 246.496 5.220
+385.063 500.020 6.280 538.174 6.113 247.074 3.689
+385.221 500.190 5.716 538.421 6.000 248.340 3.594
+385.379 500.651 5.650 537.874 6.100 246.593 3.832
+385.538 501.616 6.122 537.198 5.775 248.815 3.973
+385.695 499.456 6.231 537.412 5.907 247.618 3.547
+385.854 499.294 5.434 538.694 6.133 247.516 3.508
+386.011 499.782 5.651 537.556 5.760 248.125 3.342
+386.170 497.837 5.838 538.975 5.813 249.031 3.704
+386.328 500.108 5.491 538.029 5.781 247.250 3.564
+386.485 499.501 5.822 537.940 5.964 250.122 4.039
+386.643 498.915 6.026 537.849 5.850 248.501 3.331
+386.801 498.949 5.943 537.708 6.063 249.765 3.679
+386.960 497.079 5.635 538.347 6.627 244.777 3.860
+387.117 498.070 5.963 537.673 5.831 249.957 4.169
+387.275 497.330 5.900 537.696 5.800 247.469 3.425
+387.433 497.993 5.633 536.407 5.943 251.274 3.652
+387.591 499.100 6.111 539.024 6.049 247.352 3.335
+387.749 496.651 6.415 537.390 6.006 247.423 3.677
+387.907 495.986 5.743 537.683 5.818 248.664 3.422
+388.065 495.519 5.901 537.886 6.077 251.596 3.857
+388.224 494.975 5.617 537.539 5.759 247.805 3.343
+388.382 495.069 6.614 537.855 6.394 248.678 4.372
+388.540 497.440 5.858 537.718 5.813 250.006 3.897
+388.698 494.604 8.900 537.497 6.365 245.170 4.318
+388.856 496.976 7.006 538.615 5.775 247.371 3.569
+389.014 495.539 5.793 538.736 5.899 244.433 5.090
+389.171 497.455 6.612 537.887 6.314 250.624 4.754
+389.329 495.144 5.541 538.308 6.305 246.766 4.535
+389.487 495.991 5.952 538.303 6.083 249.917 4.312
+389.644 495.679 5.844 538.253 5.970 246.239 4.069
+389.802 496.966 5.770 538.102 6.116 249.042 5.779
+389.960 496.899 5.555 538.111 5.966 248.040 4.087
+390.118 496.109 6.176 538.471 6.128 249.430 3.754
+390.277 496.711 6.267 538.614 6.282 249.764 3.852
+390.436 496.077 5.969 538.626 6.132 249.567 3.800
+390.594 494.430 5.825 538.646 5.862 247.775 3.923
+390.751 496.174 6.280 537.516 5.985 248.757 4.319
+390.909 495.521 6.294 537.695 5.848 248.447 3.525
+391.066 495.075 6.100 537.947 5.746 249.264 3.818
+391.224 496.820 9.025 537.379 10.331 250.572 7.647
+391.380 495.128 5.622 537.113 6.504 249.015 4.378
+391.538 497.041 5.489 537.621 5.875 249.650 6.617
+391.695 495.550 5.997 535.616 6.093 249.046 4.228
+391.853 496.115 5.483 537.766 5.982 247.090 4.081
+392.010 495.051 5.907 536.887 6.135 247.350 3.170
+392.169 493.850 6.658 536.299 6.533 249.493 6.483
+392.325 495.258 6.231 536.313 5.952 248.834 5.928
+392.483 496.192 5.743 534.413 5.980 253.818 4.410
+392.641 492.732 6.067 537.114 5.827 246.588 3.468
+392.799 497.367 5.461 535.841 5.934 249.455 3.923
+392.956 495.993 5.615 536.048 5.898 246.164 5.255
+393.114 495.139 6.344 535.020 6.264 249.261 3.461
+393.272 494.331 5.481 535.870 6.011 248.862 4.532
+393.430 494.613 5.994 536.248 6.098 249.048 4.049
+393.588 496.166 5.902 535.852 6.107 250.890 4.632
+393.745 493.851 5.846 536.278 6.073 245.528 3.402
+393.903 496.618 6.173 535.282 6.095 250.795 3.920
+394.061 493.896 6.524 536.382 6.092 247.427 6.566
+394.219 498.869 8.277 534.473 7.416 245.384 11.435
+394.376 493.888 8.106 535.944 8.115 243.493 11.436
+394.533 491.348 6.806 534.289 6.441 243.454 5.487
+394.689 493.893 5.938 537.793 6.225 250.124 5.057
+394.848 496.768 6.234 537.168 5.836 248.201 4.345
+395.005 496.447 6.430 538.761 6.842 252.002 5.328
+395.164 496.314 6.361 538.947 6.281 248.020 4.730
+395.323 496.633 5.994 535.329 6.465 248.100 3.886
+395.481 494.626 6.272 536.793 6.280 247.401 4.592
+395.639 493.596 6.481 536.498 6.076 248.024 5.171
+395.796 496.546 6.462 536.355 6.115 250.180 3.547
+395.954 496.015 7.225 537.243 6.685 248.981 4.908
+396.112 496.820 6.112 537.562 6.287 247.269 5.283
+396.269 496.038 6.279 539.135 6.084 247.972 3.790
+396.428 495.170 6.124 538.451 6.114 249.739 4.010
+396.585 494.001 5.862 539.174 5.854 248.477 4.717
+396.743 495.710 5.988 538.651 6.744 250.434 4.986
+396.901 495.377 5.849 538.136 6.079 249.604 5.055
+397.058 497.023 5.875 537.431 6.027 250.756 4.047
+397.216 496.610 5.714 538.144 5.922 249.207 3.676
+397.373 496.836 6.059 538.391 6.512 246.542 4.156
+397.531 495.548 5.950 539.243 5.753 248.515 3.403
+397.688 495.845 5.787 538.122 6.157 250.935 4.145
+397.846 496.078 5.778 539.321 6.172 248.919 4.301
+398.004 496.220 6.016 539.173 5.858 248.719 4.674
+398.160 496.112 5.654 538.331 6.027 248.057 3.579
+398.318 499.051 6.027 538.843 5.995 249.720 3.318
+398.476 498.350 5.834 538.578 5.830 248.967 4.301
+398.633 495.453 5.600 538.015 6.187 248.719 4.199
+398.791 496.254 5.647 537.860 6.546 249.707 4.293
+398.949 497.672 5.981 537.548 5.857 250.887 3.321
+399.107 493.756 5.700 536.995 6.192 246.388 3.563
+399.265 494.957 5.728 538.100 5.808 249.383 3.507
+399.423 499.969 5.670 537.991 5.932 251.663 3.942
+399.580 501.019 5.697 537.769 5.996 249.096 3.872
+399.739 499.140 5.565 538.397 5.861 248.061 3.433
+399.897 496.511 5.479 538.364 5.719 246.350 3.625
+400.054 498.275 5.573 537.693 6.138 251.073 5.534
+400.212 497.382 5.694 538.757 6.037 252.990 4.362
+400.371 496.273 5.701 538.037 5.850 249.509 3.487
+400.528 497.092 6.031 538.200 6.239 248.245 3.565
+400.686 496.720 5.656 538.432 5.913 250.702 3.294
+400.844 496.377 5.416 537.674 5.944 249.347 4.602
+401.001 498.453 6.109 537.856 5.768 250.023 4.364
+401.159 495.484 5.982 538.338 6.176 249.450 6.542
+401.316 497.344 5.452 538.143 6.030 242.844 4.930
+401.474 497.493 8.537 538.811 9.629 249.758 7.468
+401.630 494.744 5.862 538.578 7.448 241.337 5.673
+401.788 496.057 7.022 538.765 6.890 245.883 5.365
+401.946 494.140 6.387 537.897 8.762 257.808 4.058
+402.105 497.691 5.363 539.049 6.440 256.468 4.109
+402.262 495.496 6.224 539.880 7.933 246.504 5.705
+402.420 496.155 7.175 539.568 6.568 245.165 5.774
+402.577 497.721 6.652 540.095 9.500 246.781 5.670
+402.734 498.107 5.919 536.421 7.566 247.347 4.230
+402.892 495.551 5.770 538.244 5.919 249.323 3.685
+403.050 493.335 5.456 537.862 5.789 246.603 3.294
+403.208 495.623 5.604 538.038 5.757 251.606 4.527
+403.365 495.836 5.755 538.390 5.784 254.396 3.635
+403.523 495.598 6.270 539.924 5.820 242.923 4.114
+403.681 493.796 5.840 539.459 5.928 244.769 3.418
+403.839 492.967 5.404 538.534 5.924 250.217 3.584
+403.997 495.609 5.464 538.505 5.724 251.692 3.264
+404.156 493.736 5.485 538.195 6.037 249.486 3.496
+404.313 494.717 5.541 538.782 5.774 248.584 3.179
+404.472 493.827 6.217 538.387 5.916 247.345 3.417
+404.630 491.758 5.373 538.633 5.799 251.243 4.105
+404.788 493.367 5.474 537.956 5.794 252.922 3.454
+404.946 493.183 5.588 539.059 5.907 247.679 4.224
+405.104 493.001 5.341 537.620 5.856 248.506 3.447
+405.262 494.670 5.538 538.716 6.002 250.905 4.029
+405.419 494.156 5.651 538.837 6.226 247.309 3.330
+405.577 495.051 5.854 538.468 6.020 250.163 3.766
+405.735 494.930 5.514 538.974 5.751 252.771 3.242
+405.894 495.059 6.002 538.599 5.658 247.637 3.496
+406.052 495.000 5.621 540.186 5.927 244.226 3.252
+406.209 495.720 6.117 539.241 5.956 251.542 3.880
+406.367 494.557 5.419 538.512 6.097 251.115 4.311
+406.525 498.425 6.609 538.865 5.913 249.031 5.881
+406.682 495.044 5.723 538.418 5.913 244.500 4.504
+406.840 492.160 5.960 539.554 6.004 247.705 3.545
+406.998 494.501 6.091 539.105 6.125 248.907 4.386
+407.156 495.165 5.620 538.551 5.844 249.379 3.905
+407.313 496.451 5.741 538.235 5.905 252.853 4.097
+407.470 495.374 5.874 537.972 5.970 250.128 4.048
+407.627 496.113 5.878 539.749 5.920 244.481 3.882
+407.785 498.881 5.855 539.987 6.141 249.984 4.510
+407.943 498.298 9.402 538.849 6.553 255.639 8.505
+408.100 487.933 9.972 537.938 7.375 249.726 9.211
+408.258 498.389 9.663 537.809 8.724 250.507 14.277
+408.414 495.693 6.984 538.038 7.975 248.865 7.321
+408.570 496.306 6.824 538.460 6.343 245.728 4.041
+408.727 495.353 7.626 538.684 6.589 245.067 8.034
+408.884 497.543 5.690 536.596 6.621 251.820 3.693
+409.041 492.165 6.541 537.516 6.403 253.568 6.502
+409.199 496.671 5.441 538.965 5.815 250.905 4.345
+409.356 493.376 5.906 537.599 6.012 248.219 6.109
+409.514 499.293 6.080 538.466 6.109 253.472 4.981
+409.671 490.352 6.224 539.894 6.557 239.994 5.154
+409.830 493.203 6.196 538.619 5.921 249.509 5.201
+409.987 500.332 5.877 537.766 6.203 252.565 4.838
+410.144 493.283 5.509 539.567 6.222 243.085 4.461
+410.302 496.312 6.135 537.805 6.472 249.150 5.143
+410.460 494.483 6.866 538.498 6.242 247.991 3.616
+410.619 495.374 5.588 539.725 5.931 241.719 4.638
+410.776 493.203 6.020 538.137 5.971 249.257 7.104
+410.934 490.252 5.896 537.691 6.052 250.942 7.014
+411.090 495.532 5.848 538.146 6.244 250.119 4.413
+411.249 495.285 5.343 538.941 5.864 247.931 5.221
+411.406 497.242 5.571 537.829 6.047 251.069 6.910
+411.564 495.262 5.933 540.188 6.024 245.960 4.771
+411.722 497.622 5.434 539.461 5.782 246.149 3.939
+411.880 496.656 5.775 536.834 5.816 251.211 3.963
+412.038 492.836 5.375 538.448 5.934 251.082 3.759
+412.195 494.618 5.459 539.094 5.709 246.550 3.361
+412.353 496.706 5.668 538.001 6.029 247.455 4.398
+412.511 494.647 5.581 537.970 5.771 249.554 3.431
+412.669 494.386 5.651 538.389 5.893 248.865 3.959
+412.827 497.233 5.847 541.073 6.018 246.268 5.016
+412.984 492.872 6.878 538.330 5.915 243.972 6.098
+413.142 492.558 6.739 537.223 6.142 254.209 4.530
+413.300 491.485 5.776 539.922 5.824 249.232 4.828
+413.458 490.194 6.138 538.739 5.942 246.202 10.799
+413.615 487.882 5.843 537.227 6.043 254.402 3.964
+413.773 486.588 5.586 536.782 6.069 251.164 4.508
+413.931 490.045 5.634 538.087 5.974 251.151 3.478
+414.089 482.280 5.705 538.250 5.945 249.571 3.581
+414.246 485.282 5.764 538.522 6.364 250.955 3.767
+414.404 485.512 5.761 538.455 5.955 249.939 3.805
+414.562 479.645 5.772 536.844 6.267 248.749 4.949
+414.720 482.366 5.689 536.198 6.091 248.597 3.932
+414.878 484.063 5.543 538.322 6.090 249.925 4.917
+415.036 480.080 6.622 538.423 5.994 249.519 3.937
+415.194 479.390 5.722 536.724 6.292 253.055 5.096
+415.353 478.164 5.654 537.937 6.106 252.750 5.384
+415.511 475.031 5.942 537.719 6.232 248.047 4.943
+415.669 481.410 5.903 538.237 6.077 248.940 3.644
+415.827 480.244 5.988 536.352 6.222 250.609 4.384
+415.985 477.412 5.924 538.073 7.013 246.166 4.727
+416.142 473.374 6.333 537.870 5.963 245.991 7.144
+416.299 476.913 5.677 536.218 5.862 253.209 3.668
+416.457 476.419 5.189 536.642 5.981 251.602 5.027
+416.616 477.014 5.734 537.986 6.049 250.246 4.506
+416.774 475.500 5.855 539.829 5.952 246.282 4.906
+416.931 476.525 6.210 537.538 5.895 248.782 4.062
+417.088 477.255 5.622 538.825 6.094 251.747 3.215
+417.246 477.882 5.649 538.068 6.463 249.917 3.446
+417.404 475.628 5.683 535.600 6.262 250.269 3.518
+417.562 476.766 5.586 537.856 5.725 251.322 3.528
+417.720 476.257 5.427 537.388 5.931 249.583 5.323
+417.878 477.222 5.413 537.683 5.849 249.415 3.600
+418.035 476.132 5.841 538.046 6.191 251.194 3.915
+418.193 475.991 6.096 538.020 6.054 251.491 3.740
+418.351 477.259 5.492 537.850 6.061 252.184 3.664
+418.509 477.442 6.108 538.768 5.765 249.241 3.547
+418.667 478.354 5.936 537.437 6.210 250.652 4.008
+418.825 476.813 5.687 538.754 6.191 248.896 3.361
+418.983 476.728 5.522 538.007 6.068 252.538 3.533
+419.141 477.217 5.556 537.440 6.291 248.945 4.980
+419.299 476.592 6.835 537.454 6.054 251.269 3.587
+419.457 477.155 5.701 538.234 5.809 247.182 3.719
+419.614 480.051 5.395 538.162 5.819 252.221 3.585
+419.772 478.660 5.748 537.591 6.205 250.622 4.131
+419.930 477.046 5.596 538.626 6.482 249.176 3.975
+420.087 475.340 5.865 538.746 6.112 251.311 5.129
+420.246 476.403 6.141 537.607 6.344 251.913 3.799
+420.404 476.824 6.029 537.366 7.493 250.969 5.903
+420.562 479.518 5.918 538.533 7.174 253.259 4.710
+420.719 475.095 5.781 538.875 7.035 250.252 4.717
+420.878 480.100 5.592 538.568 6.522 249.042 3.436
+421.036 480.041 6.123 539.425 6.439 250.900 5.550
+421.195 478.870 8.392 536.394 7.540 252.499 5.054
+421.352 479.898 7.543 538.174 6.736 248.225 4.701
+421.509 477.039 7.383 539.101 6.262 249.412 4.271
+421.667 478.230 7.018 537.651 6.355 252.574 3.999
+421.824 477.092 5.555 537.346 6.340 248.205 4.187
+421.982 478.290 5.735 538.433 6.719 249.452 4.848
+422.139 480.112 5.861 537.704 5.865 255.444 3.827
+422.297 481.891 6.096 538.357 6.080 251.744 4.713
+422.454 478.218 5.720 538.503 5.780 243.737 5.292
+422.612 477.652 5.781 538.695 6.201 252.387 4.539
+422.770 477.436 6.270 536.277 6.217 253.123 4.577
+422.928 481.454 5.785 541.072 6.111 254.691 4.427
+423.085 479.584 6.401 534.910 6.080 248.756 6.795
+423.242 481.005 5.643 537.049 6.031 248.307 5.354
+423.400 482.390 5.520 537.330 6.330 252.683 5.091
+423.559 481.913 6.405 538.483 6.882 250.106 6.997
+423.716 484.079 5.605 538.494 6.062 252.681 3.739
+423.874 484.300 5.596 538.855 6.722 249.076 5.152
+424.032 484.313 6.665 537.668 6.316 251.750 4.649
+424.189 484.813 6.114 538.326 6.164 247.697 4.150
+424.347 486.038 6.082 539.023 6.236 248.237 4.711
+424.505 486.540 6.580 538.090 6.185 250.552 4.025
+424.662 487.265 6.189 538.491 6.405 250.535 3.598
+424.820 491.442 6.409 536.894 6.422 250.195 4.848
+424.978 491.114 5.952 538.679 5.868 249.342 6.032
+425.135 489.721 7.268 538.756 6.943 246.633 5.983
+425.293 492.177 6.487 536.667 6.769 249.636 4.359
+425.451 491.751 6.122 536.136 7.055 249.626 8.377
+425.608 496.777 6.621 537.651 7.151 250.876 4.162
+425.765 496.427 7.972 536.116 6.797 247.478 9.327
+425.921 492.284 9.378 536.531 8.898 244.534 10.322
+426.078 493.872 7.010 532.845 6.263 252.735 4.072
+426.235 494.068 7.152 533.038 6.188 251.947 7.317
+426.393 500.800 9.252 533.860 8.035 256.289 9.354
+426.550 498.638 10.705 532.848 7.628 252.982 7.429
+426.707 496.516 8.998 532.878 6.988 244.559 4.464
+426.864 497.085 6.170 533.288 6.372 245.135 5.458
+427.022 496.180 7.594 525.902 7.644 253.831 6.419
+427.179 497.561 7.597 530.309 7.279 249.808 8.649
+427.336 495.435 8.348 529.283 7.926 244.118 7.352
+427.492 500.714 7.878 532.522 6.718 247.891 9.575
+427.649 486.447 8.166 525.955 7.706 241.628 10.730
+427.806 502.314 9.389 527.639 6.143 251.106 6.777
+427.963 496.553 8.519 520.916 7.165 252.701 6.932
+428.119 487.275 7.361 534.699 9.799 238.077 5.738
+428.276 510.092 8.421 530.407 8.066 257.320 15.450
+428.433 483.810 10.631 530.714 9.274 236.363 12.851
+428.589 505.108 7.375 532.887 7.925 249.233 9.588
+428.746 493.011 9.743 520.058 8.111 254.942 7.537
+428.902 494.890 7.522 529.820 9.433 245.759 6.086
+429.059 502.258 6.904 527.968 8.386 250.147 5.563
+429.218 487.872 9.560 526.899 7.481 247.291 5.720
+429.375 498.578 15.053 522.139 17.130 244.682 10.441
+429.531 488.245 19.609 521.791 14.765 246.256 21.223
+429.687 496.712 10.847 527.908 10.107 243.852 12.534
+429.845 494.117 7.762 521.249 9.675 260.838 7.631
+430.001 490.611 11.175 524.132 8.178 235.988 9.607
+430.158 493.166 8.309 523.011 8.497 238.519 11.843
+430.314 504.271 7.659 528.100 8.292 257.105 6.603
+430.472 490.842 7.647 522.161 8.262 238.091 9.540
+430.627 503.508 10.339 527.731 9.196 243.110 10.551
+430.785 489.315 9.204 531.967 8.529 242.371 10.059
+430.942 491.513 7.245 524.229 10.027 249.513 8.007
+431.098 493.395 7.860 528.872 7.009 241.595 7.930
+431.255 493.603 9.368 524.108 9.044 258.015 12.487
+431.412 488.176 11.759 526.421 15.172 241.420 12.958
+431.568 500.541 9.504 526.544 9.663 249.914 15.897
+431.724 498.085 8.890 523.875 7.215 252.139 7.110
+431.881 498.530 8.299 527.348 7.236 242.981 6.012
+432.038 494.935 8.914 526.963 7.398 246.469 7.287
+432.195 498.709 9.596 528.129 9.602 250.184 9.291
+432.351 486.937 10.146 526.591 9.434 249.951 8.589
+432.509 498.759 7.870 529.316 7.035 250.709 8.173
+432.665 494.017 7.750 525.973 6.804 250.557 5.893
+432.823 494.070 7.135 528.299 6.822 242.985 5.828
+432.980 499.650 7.453 527.033 7.117 248.409 6.572
+433.137 495.406 7.792 528.660 7.189 248.534 6.943
+433.294 496.674 6.977 529.026 6.432 246.325 6.022
+433.452 496.986 8.879 530.210 6.712 249.583 7.399
+433.609 495.839 8.113 528.322 8.352 250.595 9.387
+433.766 495.598 7.730 529.573 8.844 250.635 7.270
+433.924 495.876 8.142 530.775 6.864 248.086 6.508
+434.081 495.548 7.581 529.367 6.639 249.680 6.895
+434.238 494.315 6.901 528.523 6.385 247.316 6.074
+434.396 489.733 6.913 529.085 8.666 247.253 5.421
+434.553 493.057 6.631 529.130 7.769 247.852 6.086
+434.710 491.590 6.853 530.241 6.450 249.418 6.038
+434.868 491.375 7.396 527.822 7.401 246.324 5.770
+435.026 496.183 7.295 527.678 6.529 249.373 6.774
+435.183 490.151 7.885 529.156 6.629 245.713 7.489
+435.340 493.061 7.445 529.901 6.807 244.967 7.566
+435.497 490.350 7.373 529.179 6.713 247.249 7.735
+435.655 485.873 7.181 529.011 6.570 248.032 6.868
+435.812 490.148 7.221 530.370 7.137 246.410 7.340
+435.970 492.781 8.174 529.773 7.756 248.364 7.351
+436.126 485.517 8.788 528.837 7.938 244.473 8.706
+436.283 489.285 8.404 527.058 6.855 249.114 8.671
+436.440 487.832 8.483 525.970 7.769 256.781 7.207
+436.597 487.988 8.291 528.189 7.534 243.337 7.297
+436.755 491.619 8.434 527.741 7.074 247.293 5.769
+436.912 492.926 7.631 525.977 6.928 256.512 6.882
+437.070 487.389 7.294 528.529 7.261 238.315 7.483
+437.227 491.963 8.276 528.255 7.752 249.553 5.998
+437.384 490.879 7.597 527.822 7.077 249.425 8.191
+437.541 492.978 8.410 527.798 10.217 248.514 9.516
+437.699 494.909 8.367 527.488 8.180 252.205 7.277
+437.855 492.649 8.147 527.464 7.014 244.462 6.432
+438.012 493.346 7.642 527.624 7.491 247.214 5.768
+438.169 489.013 8.547 527.356 7.655 246.022 6.628
+438.326 496.240 7.780 526.123 7.896 249.370 6.512
+438.483 496.912 7.154 525.691 7.693 250.413 8.577
+438.640 493.119 8.501 525.216 7.056 244.654 7.366
+438.797 499.551 6.859 524.722 7.015 248.766 6.488
+438.954 495.905 7.609 525.907 6.384 245.367 7.387
+439.111 494.449 6.813 523.649 6.752 245.723 6.352
+439.268 496.014 6.879 524.426 7.114 249.197 6.229
+439.426 493.790 7.852 525.954 6.744 247.911 7.827
+439.582 495.117 7.084 525.049 7.258 246.549 6.413
+439.739 497.541 8.795 525.500 7.853 247.045 8.132
+439.895 496.115 7.331 525.105 7.276 247.840 8.789
+440.052 494.791 7.026 524.831 6.833 246.648 8.437
+440.209 495.327 7.584 522.698 7.696 246.606 7.977
+440.365 496.053 7.044 522.607 7.184 246.116 6.928
+440.522 497.480 8.136 523.466 7.415 246.191 10.546
+440.679 496.334 7.523 524.364 7.373 247.911 7.618
+440.836 493.553 8.012 524.033 6.871 246.609 7.668
+440.992 492.285 7.078 523.850 7.842 248.606 7.843
+441.149 494.692 6.819 524.238 7.244 248.056 6.210
+441.307 496.066 10.192 522.272 8.369 245.870 9.645
+441.463 496.380 7.313 523.752 6.185 248.338 6.800
+441.620 494.733 6.793 523.757 7.156 249.193 8.288
+441.777 496.667 8.410 523.747 7.973 247.891 8.080
+441.933 496.916 6.512 524.487 6.884 247.088 4.411
+442.091 495.109 6.959 523.654 7.229 245.470 5.970
+442.249 496.891 6.744 523.646 6.378 245.474 5.278
+442.408 494.478 7.353 523.136 7.294 247.924 7.841
+442.564 493.794 7.840 523.371 6.547 246.999 4.999
+442.721 497.238 6.988 523.003 6.999 246.190 7.850
+442.878 493.902 7.165 523.340 7.135 245.101 5.790
+443.035 494.789 7.786 521.753 7.181 251.011 8.359
+443.192 496.707 7.899 522.747 7.322 249.510 5.839
+443.350 495.127 8.433 523.837 7.037 244.975 6.935
+443.508 495.091 7.346 522.328 6.809 246.459 5.328
+443.665 495.820 6.978 521.423 7.272 248.534 6.115
+443.823 496.248 7.533 521.994 7.244 246.295 6.058
+443.981 495.062 7.326 521.259 7.526 245.662 6.869
+444.137 495.590 7.449 521.702 7.058 244.456 6.569
+444.295 496.335 6.796 521.737 6.602 246.834 5.149
+444.453 495.043 6.979 520.457 7.739 249.668 5.507
+444.611 493.220 7.777 520.194 6.818 246.946 6.079
+444.768 494.482 7.476 519.982 7.159 244.619 4.879
+444.926 497.164 8.235 519.509 8.637 247.396 6.852
+445.083 494.291 7.174 519.795 6.901 246.123 4.576
+445.241 495.652 8.090 519.097 8.230 245.421 5.969
+445.398 495.766 8.125 518.471 6.892 248.794 7.033
+445.555 494.967 6.921 517.994 6.981 247.547 6.099
+445.713 494.409 7.194 518.080 7.995 243.985 5.630
+445.871 497.024 8.536 517.220 7.186 247.309 5.337
+446.029 495.670 7.606 516.252 8.017 246.863 6.376
+446.186 494.086 8.685 517.672 8.264 245.538 4.755
+446.343 495.370 7.394 517.526 8.036 242.405 4.511
+446.500 495.733 9.032 515.985 9.117 247.854 7.096
+446.657 494.157 7.530 516.519 7.423 249.368 5.557
+446.815 494.181 8.032 515.475 7.959 245.013 5.113
+446.972 495.401 7.732 514.054 8.829 243.770 7.330
+447.129 497.184 7.977 515.140 7.673 248.327 5.031
+447.286 495.211 7.880 514.651 8.482 248.053 5.472
+447.443 495.362 7.833 516.706 7.239 245.180 5.050
+447.601 495.783 8.105 515.447 7.866 245.231 6.426
+447.758 495.537 7.528 513.574 8.358 247.252 5.577
+447.915 495.145 8.606 514.765 8.950 246.082 5.896
+448.072 495.461 6.334 515.167 6.926 248.080 4.583
+448.230 494.784 8.588 515.401 7.817 247.360 4.638
+448.387 494.567 6.994 516.264 7.683 244.623 4.729
+448.544 494.835 6.545 515.952 7.245 238.876 5.448
+448.702 496.208 7.132 516.329 7.004 246.568 4.302
+448.859 496.912 7.976 516.323 7.621 248.285 4.259
+449.016 496.579 7.518 515.633 8.619 251.092 5.924
+449.174 495.185 9.148 517.086 8.205 246.560 5.250
+449.331 495.311 8.548 517.540 8.449 242.295 7.260
+449.488 495.923 8.605 517.745 7.821 245.282 5.985
+449.645 494.589 7.826 517.707 7.988 250.012 5.323
+449.802 495.495 6.788 519.047 7.807 248.990 5.126
+449.960 495.524 8.067 518.330 8.761 248.369 5.634
+450.117 495.975 7.409 519.233 8.331 246.143 6.976
+450.275 495.659 6.943 519.962 7.166 246.241 6.052
+450.432 495.116 8.420 521.819 7.584 244.082 4.894
+450.589 493.561 6.561 519.948 7.389 247.430 6.085
+450.747 494.855 7.874 520.189 10.314 247.384 5.190
+450.904 494.048 6.779 522.581 6.773 247.023 6.318
+451.062 495.830 9.020 522.005 9.795 249.400 5.437
+451.219 496.778 7.505 522.260 7.113 247.214 4.992
+451.376 495.357 6.502 522.632 6.322 246.572 4.326
+451.534 494.603 6.533 523.446 8.010 246.985 5.552
+451.691 495.176 7.406 524.534 7.109 246.569 5.563
+451.849 494.861 7.162 523.625 7.332 247.825 5.787
+452.006 495.268 7.167 523.466 7.923 247.908 5.066
+452.163 494.312 6.723 523.674 7.135 247.399 5.412
+452.321 494.583 6.574 524.026 7.149 250.814 6.839
+452.478 494.485 6.743 524.370 7.939 246.398 5.987
+452.635 496.974 6.803 524.593 7.140 248.324 5.203
+452.793 495.329 7.287 525.275 7.538 246.463 4.754
+452.950 495.473 6.606 525.002 7.803 247.914 5.933
+453.108 494.514 7.390 524.310 7.206 248.279 5.810
+453.265 494.445 6.955 524.903 7.802 246.912 5.965
+453.424 494.274 6.544 525.399 8.327 248.379 6.291
+453.580 494.102 6.699 525.214 6.792 249.073 5.248
+453.738 494.181 7.035 525.462 7.081 246.880 4.690
+453.896 494.511 6.895 525.074 7.564 247.268 5.888
+454.053 494.505 7.729 524.630 7.684 247.862 4.863
+454.211 495.245 8.040 525.036 8.096 247.538 6.105
+454.367 494.272 7.166 524.960 7.665 246.515 4.978
+454.524 494.742 7.012 525.059 6.591 249.965 4.765
+454.682 494.417 7.843 525.900 8.052 246.159 7.097
+454.839 493.654 7.147 525.019 7.349 245.151 5.581
+454.996 494.856 7.942 525.010 8.637 250.371 6.046
+455.153 495.298 8.012 523.040 9.569 249.093 7.710
+455.310 494.083 6.522 524.210 6.790 244.520 5.770
+455.467 495.120 7.711 523.922 8.175 248.055 4.736
+455.625 493.481 7.741 523.989 7.969 250.260 6.935
+455.781 493.594 7.641 523.659 7.244 245.612 4.467
+455.938 495.425 6.855 524.176 7.830 244.816 4.654
+456.096 494.594 7.560 523.051 7.854 248.248 5.833
+456.253 494.155 7.039 522.580 7.186 247.952 5.925
+456.411 495.361 7.304 523.545 6.084 246.699 6.196
+456.569 493.903 6.138 523.665 6.773 246.897 5.743
+456.726 494.879 7.139 521.346 8.542 247.688 4.094
+456.883 494.578 6.378 521.803 6.854 246.446 5.303
+457.041 495.405 7.029 521.878 6.743 246.914 4.505
+457.199 494.634 7.617 521.408 7.753 246.739 4.428
+457.357 495.046 6.753 520.624 7.693 246.167 4.696
+457.514 494.540 7.769 520.766 6.680 247.671 4.783
+457.672 494.595 5.838 519.907 7.600 247.456 4.969
+457.829 495.135 8.457 519.019 8.841 246.284 5.416
+457.987 494.371 7.445 518.730 7.210 245.722 5.312
+458.144 494.583 7.439 519.447 6.955 246.917 5.324
+458.302 494.315 6.856 516.624 6.740 247.499 4.598
+458.459 494.743 6.300 517.696 6.423 248.145 5.802
+458.617 494.167 6.907 518.127 6.375 246.231 4.045
+458.775 494.771 6.714 517.261 6.723 246.722 5.443
+458.933 495.267 5.983 515.302 7.884 246.307 4.340
+459.089 495.842 6.386 516.253 7.421 246.963 5.603
+459.248 494.048 7.175 519.522 6.791 246.189 5.192
+459.405 495.030 6.173 521.435 6.846 245.881 4.643
+459.564 494.310 6.881 517.534 7.253 247.278 5.322
+459.721 494.133 8.742 513.715 7.337 246.712 5.226
+459.879 494.521 6.648 512.327 7.048 247.247 5.209
+460.037 494.395 6.543 512.593 6.084 245.352 6.182
+460.195 494.094 6.850 510.125 5.940 245.193 5.019
+460.352 494.141 7.573 506.591 8.657 246.261 7.992
+460.508 494.591 5.667 507.245 5.764 243.982 3.560
+460.666 495.015 5.701 505.932 6.245 247.319 5.055
+460.824 494.170 6.468 505.959 6.061 245.293 3.712
+460.983 493.661 5.887 505.919 5.841 246.392 3.956
+461.141 494.756 5.497 506.009 5.528 244.353 4.285
+461.298 495.517 6.823 531.800 6.131 248.663 5.878
+461.455 495.985 8.457 549.218 6.134 249.956 8.049
+461.612 494.439 5.862 545.552 6.204 249.679 5.125
+461.769 492.834 5.620 535.815 5.912 247.666 3.602
+461.928 493.318 5.472 539.668 5.934 250.806 3.211
+462.086 494.083 5.727 540.086 5.695 249.508 3.248
+462.243 493.260 5.233 538.620 5.808 248.115 3.016
+462.401 493.772 5.348 540.666 5.663 249.681 3.532
+462.559 493.407 5.313 538.606 5.645 250.216 3.022
+462.717 493.784 5.485 540.436 5.667 248.852 3.407
+462.875 493.857 5.306 539.004 5.682 249.818 3.735
+463.033 494.068 5.274 539.850 5.708 250.128 3.051
+463.191 493.620 5.333 539.378 5.765 250.301 3.434
+463.349 495.276 5.439 539.723 5.700 248.563 4.974
+463.507 493.192 5.397 539.697 5.711 247.945 4.407
+463.664 493.901 5.283 539.627 5.732 250.609 3.616
+463.822 494.439 5.361 539.316 5.643 250.726 3.176
+463.980 493.624 5.265 539.743 5.742 248.977 3.616
+464.138 494.276 5.286 539.647 5.679 249.279 3.210
+464.296 493.722 5.255 539.296 5.714 249.152 3.065
+464.454 494.027 5.251 539.463 5.708 249.751 3.501
+464.611 494.020 5.240 540.244 5.701 248.867 3.462
+464.769 493.860 5.425 539.002 5.650 249.948 3.949
+464.926 493.438 5.302 539.610 5.628 249.249 3.273
+465.084 493.014 5.282 539.136 5.656 249.932 3.101
+465.242 493.770 5.263 539.821 5.675 250.899 3.522
+465.400 494.357 5.363 539.688 5.708 249.539 3.747
+465.558 495.393 5.303 539.466 5.818 248.895 3.341
+465.716 493.924 5.425 539.684 5.650 249.758 3.041
+465.874 494.189 5.259 539.196 5.669 250.327 3.367
+466.032 494.421 5.349 540.152 5.718 248.903 3.299
+466.190 494.384 5.593 540.221 5.611 250.429 4.588
+466.347 494.473 5.305 539.562 5.854 250.114 6.009
+466.504 494.284 5.382 539.355 5.840 248.141 5.329
+466.662 494.472 5.589 540.733 5.719 249.441 3.944
+466.819 493.044 5.323 539.567 5.714 249.954 4.704
+466.977 493.350 5.330 538.895 5.757 250.079 3.612
+467.134 494.283 5.233 540.249 5.777 249.130 4.234
+467.292 494.122 5.368 539.402 5.738 247.781 5.266
+467.449 493.221 5.323 539.594 5.681 249.827 3.244
+467.607 494.382 5.272 539.406 5.757 249.848 3.154
+467.765 493.543 5.437 540.274 5.770 249.568 3.710
+467.922 493.615 5.304 540.722 5.701 248.965 3.123
+468.080 494.226 5.343 539.377 5.669 249.809 3.224
+468.239 489.582 9.351 505.003 27.861 245.148 9.851
+468.394 494.435 5.949 538.030 5.934 250.241 4.209
+468.552 493.464 5.453 538.190 5.825 249.802 3.596
+468.709 493.734 5.271 538.071 5.714 248.948 3.380
+468.867 493.727 5.184 536.940 5.621 250.699 3.519
+469.025 493.657 5.283 537.299 5.818 248.947 3.514
+469.183 493.036 5.427 538.483 5.646 248.739 3.311
+469.341 493.300 5.351 537.144 5.649 250.247 3.116
+469.498 492.773 5.548 537.661 5.677 250.202 2.975
+469.657 492.977 9.278 537.906 7.301 248.662 11.306
+469.813 493.589 5.532 537.369 5.722 248.936 4.153
+469.970 494.525 5.625 538.583 5.723 249.409 3.034
+470.129 494.005 5.283 538.035 5.747 250.314 3.368
+470.286 494.420 5.332 538.100 5.685 249.893 3.231
+470.444 493.664 5.269 538.241 5.758 248.838 3.031
+470.602 494.116 5.379 538.022 5.730 250.798 3.519
+470.759 493.441 5.273 538.150 5.643 248.258 3.475
+470.917 493.354 5.311 537.731 5.762 248.452 3.494
+471.074 493.473 5.200 538.057 5.763 250.814 3.119
+471.232 493.684 5.249 537.750 5.603 249.568 3.054
+471.390 493.636 5.173 537.527 5.753 248.875 3.225
+471.548 492.746 5.321 538.695 5.672 248.878 3.090
+471.707 492.947 5.414 538.287 5.624 249.478 3.592
+471.864 493.759 5.377 537.602 5.648 250.024 3.015
+472.023 493.637 5.326 537.626 5.701 248.910 3.192
+472.181 492.736 5.231 538.006 5.630 248.699 3.092
+472.339 494.267 5.331 538.060 5.641 249.707 3.328
+472.497 493.942 5.298 537.990 5.797 249.497 3.309
+472.655 493.409 5.248 538.289 5.611 248.534 3.111
+472.813 493.214 5.404 538.643 5.734 250.725 6.912
+472.970 493.362 5.423 538.096 5.732 250.047 5.556
+473.128 493.543 5.486 538.631 5.610 250.300 3.309
+473.286 493.635 5.350 537.756 5.675 248.113 3.072
+473.444 493.556 5.274 537.667 5.758 250.471 3.172
+473.602 493.555 5.197 537.856 5.733 250.414 3.627
+473.760 493.145 5.374 537.928 5.653 248.564 3.573
+473.917 493.841 5.364 538.159 5.720 248.735 3.079
+474.076 493.638 5.308 537.441 5.684 249.117 3.426
+474.234 494.906 5.813 538.614 6.356 248.281 4.940
+474.391 493.969 5.281 538.496 5.678 248.882 3.099
+474.550 494.559 5.323 537.915 5.713 249.898 3.607
+474.708 493.885 5.317 537.479 5.720 249.469 3.321
+474.865 493.008 5.270 536.324 6.861 249.434 3.622
+475.023 493.570 5.283 536.763 5.655 248.494 4.135
+475.180 493.905 5.202 537.897 5.640 249.944 3.344
+475.338 493.979 5.160 537.719 5.647 249.729 3.335
+475.496 493.799 5.282 538.267 5.680 250.027 3.476
+475.654 493.328 5.225 538.042 5.737 248.520 3.333
+475.811 493.753 5.263 537.550 5.684 249.805 3.129
+475.969 493.467 5.419 537.675 5.605 250.438 3.126
+476.127 494.274 5.464 537.896 5.707 249.374 3.086
+476.285 494.732 5.330 538.159 5.718 248.763 3.294
+476.443 493.977 5.194 538.131 5.684 248.807 3.278
+476.601 494.389 5.243 537.181 5.734 250.368 2.999
+476.760 493.733 5.457 538.071 5.643 249.143 3.621
+476.918 493.887 5.257 537.820 5.658 248.721 4.488
+477.075 493.748 5.409 538.058 5.578 249.217 3.111
+477.233 493.657 5.255 537.620 5.785 249.962 3.059
+477.391 493.786 5.230 537.926 5.689 248.799 2.962
+477.549 493.757 5.324 537.599 5.602 249.618 3.178
+477.708 494.557 5.326 538.046 5.716 248.686 2.977
+477.866 494.065 5.379 538.000 5.732 248.696 3.093
+478.024 494.160 5.392 537.940 5.663 250.057 3.348
+478.181 493.971 5.395 537.749 5.647 248.890 3.064
+478.340 494.469 5.402 537.517 5.660 249.808 3.395
+478.498 494.314 5.240 537.165 5.779 250.378 2.923
+478.656 493.793 5.270 538.131 5.653 249.163 3.360
+478.814 494.338 5.318 537.321 5.578 249.481 3.032
+478.971 493.903 5.294 537.653 5.794 249.904 3.141
+479.130 494.029 5.247 537.946 5.590 249.779 3.166
+479.288 493.950 5.222 538.199 5.696 247.887 3.142
+479.446 494.549 5.293 537.972 5.748 249.738 3.120
+479.604 493.905 5.249 537.949 5.755 249.897 3.449
+479.762 494.019 5.344 538.089 5.595 249.228 3.178
+479.919 494.050 5.416 538.030 5.744 249.252 3.202
+480.077 494.210 5.365 537.580 5.729 249.172 3.018
+480.235 494.122 5.206 538.115 5.736 249.871 2.970
+480.393 494.531 5.302 538.071 5.721 249.818 3.127
+480.551 494.425 5.359 538.600 5.660 248.198 3.100
+480.710 494.404 5.345 538.276 5.727 249.212 3.264
+480.867 494.194 5.410 538.562 5.562 249.702 3.107
+481.026 494.691 5.281 538.575 5.655 250.347 3.320
+481.183 494.297 5.325 538.245 5.719 248.963 3.214
+481.341 494.143 5.230 539.072 5.639 248.879 3.091
+481.499 495.031 5.368 538.280 5.719 249.188 2.923
+481.657 495.720 5.383 538.752 5.710 249.601 3.050
+481.815 494.887 5.243 538.087 5.815 249.216 3.251
+481.972 495.548 5.358 538.910 5.704 249.612 3.205
+482.130 494.865 5.373 538.829 5.664 249.356 3.598
+482.288 495.338 5.237 538.598 5.617 248.903 3.310
+482.446 494.793 5.437 538.466 5.593 248.999 2.987
+482.605 494.997 5.313 538.244 5.638 250.090 3.298
+482.762 494.580 5.258 538.392 5.735 248.690 3.260
+482.920 494.235 5.505 538.144 6.014 248.436 4.281
+483.077 494.682 5.304 538.081 5.780 249.724 3.091
+483.235 494.956 5.205 537.000 5.816 250.127 2.971
+483.393 495.319 5.430 538.150 5.618 250.021 3.642
+483.551 494.013 5.680 538.131 5.748 248.700 3.211
+483.710 494.640 5.199 538.271 5.686 250.017 3.509
+483.868 494.676 5.370 538.202 5.685 249.150 3.446
+484.025 494.496 5.261 538.442 6.013 249.601 3.493
+484.183 495.095 5.300 538.824 5.868 249.176 3.125
+484.341 495.721 5.369 537.768 5.762 249.351 2.994
+484.499 495.087 5.329 538.487 5.606 249.153 3.549
+484.656 495.570 5.519 538.474 5.676 248.831 3.689
+484.814 494.855 5.326 538.124 5.650 249.268 3.575
+484.972 496.148 9.399 539.141 7.630 249.392 5.943
+485.129 494.951 7.860 538.681 7.100 249.053 5.165
+485.286 495.029 5.469 538.116 5.747 248.370 4.624
+485.444 495.000 5.352 538.041 5.679 248.843 3.733
+485.601 495.130 5.243 538.560 5.737 249.128 3.530
+485.758 495.231 5.340 538.465 5.758 249.251 3.122
+485.917 495.272 5.331 538.174 5.564 248.542 2.915
+486.074 494.792 5.344 538.111 5.644 249.545 3.463
+486.232 494.487 5.227 538.631 5.673 249.585 3.299
+486.389 494.824 5.328 538.666 5.717 248.895 3.266
+486.547 494.788 5.375 538.056 5.686 248.818 3.328
+486.705 495.557 5.276 538.720 5.723 249.368 2.979
+486.864 495.395 5.271 538.937 5.608 249.893 3.107
+487.022 495.054 5.330 537.849 5.735 248.818 3.343
+487.180 495.210 5.274 538.168 5.726 249.378 2.840
+487.338 494.982 5.201 538.051 5.637 248.963 3.185
+487.495 494.869 5.330 537.430 5.633 249.009 3.154
+487.654 495.288 5.356 538.414 5.658 249.650 3.110
+487.812 495.832 5.247 538.234 5.684 249.956 3.146
+487.971 494.988 5.354 538.242 5.724 249.269 3.131
+488.129 494.709 5.253 538.702 5.638 249.262 3.266
+488.286 494.887 5.367 539.087 5.666 249.112 3.080
+488.444 496.358 5.337 539.100 5.705 249.961 2.914
+488.602 494.773 5.415 538.641 5.714 248.999 3.402
+488.761 496.977 6.352 538.596 5.931 249.540 5.316
+488.919 495.509 5.294 537.166 5.730 248.765 3.206
+489.077 494.935 5.476 537.731 5.660 249.157 3.096
+489.235 494.159 5.403 538.117 5.708 248.641 3.142
+489.393 494.971 5.296 537.701 5.721 249.136 3.182
+489.552 495.389 5.341 537.127 5.690 249.261 3.250
+489.710 494.553 5.359 538.311 5.706 248.962 3.376
+489.868 495.515 5.291 537.763 5.656 249.309 3.383
+490.026 495.685 5.262 537.507 5.693 249.793 2.957
+490.184 494.796 5.316 537.245 5.717 249.547 3.185
+490.342 495.207 5.395 537.522 5.693 249.705 3.094
+490.500 494.992 5.453 537.935 5.623 248.387 2.988
+490.658 495.029 5.207 538.469 5.739 250.353 4.434
+490.816 495.460 5.401 538.234 5.566 248.923 3.235
+490.974 495.734 5.245 537.872 5.685 249.579 3.146
+491.132 495.277 5.307 537.558 5.654 249.355 3.401
+491.290 494.842 5.299 537.995 5.649 249.053 3.461
+491.448 494.428 5.315 537.509 5.613 249.360 3.177
+491.606 495.294 5.339 537.615 5.691 248.973 3.260
+491.764 494.713 5.296 538.146 5.612 249.329 3.132
+491.922 494.717 5.365 537.871 5.768 249.093 3.107
+492.080 495.157 5.316 537.688 5.644 249.160 3.073
+492.238 494.861 5.268 537.586 5.654 249.661 3.073
+492.396 495.138 5.227 537.625 5.778 249.246 3.243
+492.554 495.561 5.268 537.826 5.636 249.092 3.229
+492.712 495.275 5.340 537.888 5.688 249.810 2.983
+492.870 494.742 5.237 537.628 5.734 249.338 3.029
+493.029 495.587 5.286 538.156 5.728 248.753 2.930
+493.187 494.065 5.230 537.801 5.683 249.897 3.038
+493.345 495.410 5.338 537.358 5.660 249.369 2.996
+493.503 495.854 5.281 537.693 5.696 249.473 3.434
+493.661 494.808 5.270 537.806 5.628 249.464 2.893
+493.819 495.198 5.269 537.928 5.714 249.364 3.230
+493.977 495.352 5.270 537.719 5.648 249.143 3.076
+494.135 495.023 5.284 538.267 5.613 249.821 3.021
+494.293 495.110 5.219 538.262 5.651 250.128 3.113
+494.450 495.341 5.300 537.392 5.807 249.011 3.166
+494.609 495.403 5.293 538.324 5.643 248.900 3.200
+494.766 495.174 5.253 537.233 5.648 249.479 2.980
+494.924 495.051 5.206 537.482 5.793 249.374 3.067
+495.082 494.640 5.267 537.724 5.825 248.313 2.981
+495.240 494.826 5.343 537.607 5.627 249.513 3.097
+495.398 495.628 5.263 537.766 5.692 249.865 3.019
+495.557 495.286 5.280 537.817 5.586 249.248 3.167
+495.715 495.442 5.431 538.548 5.739 249.122 3.027
+495.873 495.474 5.232 537.655 5.706 248.991 3.218
+496.032 495.494 5.240 538.396 5.648 249.259 2.996
+496.189 495.594 5.213 538.264 5.636 249.502 2.916
+496.347 495.375 5.273 538.212 5.749 249.555 3.137
+496.505 494.943 5.443 538.042 5.626 248.955 2.942
+496.663 495.149 5.178 538.390 5.693 249.659 3.171
+496.821 495.121 5.272 537.803 5.743 248.916 2.969
+496.979 495.511 5.336 538.178 5.692 249.779 3.367
+497.137 494.995 5.328 538.261 5.727 248.867 3.327
+497.295 494.969 5.171 537.412 5.711 249.938 3.143
+497.454 495.619 5.312 537.604 5.677 248.769 3.060
+497.612 495.446 5.271 538.066 5.654 249.177 3.023
+497.770 495.044 5.233 538.350 5.633 249.581 3.100
+497.928 495.670 5.365 538.083 5.650 248.475 3.047
+498.085 495.896 5.242 538.360 5.604 249.184 3.082
+498.243 496.049 5.287 539.103 5.611 249.631 2.991
+498.401 495.450 5.247 538.351 5.676 250.246 3.136
+498.559 495.554 5.314 538.263 5.671 249.872 2.989
+498.717 495.125 5.295 538.552 5.710 248.788 2.964
+498.875 495.791 5.263 537.775 5.641 249.147 3.520
+499.033 495.147 5.362 537.817 5.705 249.291 3.194
+499.191 495.311 5.309 537.918 5.640 249.132 3.277
+499.349 495.083 5.301 538.329 5.757 249.631 3.737
+499.506 495.840 5.244 538.223 5.714 249.836 3.196
+499.664 494.968 5.264 538.262 5.744 249.268 3.032
+499.822 495.189 5.316 537.662 5.652 249.442 3.162
+499.980 495.961 5.335 538.246 5.619 249.604 3.203
+500.138 495.719 5.340 537.482 5.723 249.236 3.175
+500.296 494.857 5.244 537.854 5.635 249.012 3.146
+500.454 496.008 5.217 538.018 5.700 249.420 3.086
+500.612 495.970 5.256 538.560 5.649 248.884 3.566
+500.770 495.029 5.246 538.055 5.729 249.068 2.986
+500.928 495.640 5.504 537.860 5.619 249.910 3.179
+501.086 495.616 5.326 537.978 5.657 249.569 3.157
+501.245 495.276 5.299 538.119 5.682 249.245 3.002
+501.402 495.512 5.336 537.841 5.692 248.812 3.195
+501.561 495.165 5.336 537.928 5.871 249.268 2.919
+501.719 495.251 5.346 537.489 5.681 248.712 3.079
+501.877 494.832 5.277 538.194 5.624 248.647 3.019
+502.035 495.228 5.352 537.822 5.652 249.016 2.882
+502.193 494.802 5.365 537.718 5.634 249.030 3.119
+502.351 495.158 5.371 537.797 5.624 248.990 3.145
+502.509 494.341 6.700 537.968 7.942 248.499 8.112
+502.665 495.393 6.324 537.199 6.057 249.505 3.506
+502.823 495.043 5.577 537.672 5.655 249.265 3.467
+502.981 494.550 5.463 538.256 5.684 248.532 4.208
+503.139 495.745 5.132 537.412 5.701 248.755 3.548
+503.297 495.057 5.342 538.004 5.610 249.097 3.453
+503.455 495.420 5.247 537.990 5.723 248.650 3.218
+503.613 495.244 5.200 538.340 5.779 249.866 3.171
+503.771 495.542 5.225 538.403 5.720 249.928 2.974
+503.929 495.815 5.397 538.574 5.674 248.549 3.245
+504.087 495.468 5.461 538.395 5.730 249.055 3.181
+504.245 495.994 5.494 537.974 5.666 249.160 3.131
+504.403 495.259 5.432 537.499 5.753 249.161 3.371
+504.561 494.612 5.485 538.115 5.605 249.181 3.134
+504.719 496.056 5.207 538.501 5.662 249.421 2.876
+504.877 495.890 5.347 538.065 5.653 249.864 3.145
+505.035 495.428 5.362 538.350 5.580 248.248 3.604
+505.193 495.244 5.204 538.563 5.606 249.292 3.068
+505.351 495.432 5.270 538.215 5.798 249.632 2.979
+505.509 495.634 5.250 537.782 5.747 249.406 3.008
+505.667 495.106 5.375 538.087 5.705 248.804 3.035
+505.825 495.281 5.366 537.790 5.777 249.588 3.429
+505.983 495.692 5.304 537.887 5.717 249.285 3.933
+506.141 495.336 5.501 538.668 5.640 249.002 3.153
+506.299 495.973 5.296 537.726 5.803 249.520 3.342
+506.457 495.569 5.345 537.687 5.743 248.965 3.123
+506.615 494.925 5.316 538.056 5.572 248.939 2.919
+506.773 495.579 5.557 537.660 5.654 249.429 3.045
+506.932 495.085 7.163 538.196 6.346 250.134 5.664
+507.089 495.040 5.629 538.222 5.856 249.241 3.244
+507.247 495.430 5.281 538.032 5.775 249.252 3.471
+507.405 495.444 5.266 537.640 5.667 248.482 3.165
+507.563 495.174 5.304 538.396 5.767 249.864 2.954
+507.721 495.181 5.373 538.534 5.747 249.178 3.117
+507.879 495.791 5.166 538.515 5.737 249.501 3.065
+508.037 494.977 5.265 538.535 5.673 248.705 3.005
+508.195 496.819 5.787 538.335 5.916 250.277 3.554
+508.353 495.128 5.230 538.593 5.706 249.512 3.260
+508.511 496.161 5.314 538.056 5.692 249.105 3.037
+508.669 495.871 5.312 538.210 5.627 249.471 3.222
+508.826 495.638 5.278 538.622 5.741 248.484 3.038
+508.984 495.826 5.306 538.286 5.639 249.034 3.212
+509.142 495.608 5.309 538.152 5.773 249.580 3.197
+509.301 496.036 5.186 537.901 5.592 248.375 3.110
+509.458 495.310 5.210 538.349 5.646 250.003 3.146
+509.616 495.503 5.259 538.363 5.718 249.700 3.141
+509.774 495.385 5.236 538.243 5.711 249.177 3.186
+509.933 495.213 5.252 537.712 5.650 249.801 3.046
+510.091 495.292 5.384 538.007 5.639 249.518 3.101
+510.248 495.102 5.217 538.340 5.688 248.555 3.007
+510.406 495.151 5.296 538.703 5.647 249.715 3.174
+510.564 496.071 5.344 538.747 5.633 249.087 3.249
+510.721 496.110 5.310 538.487 5.707 249.420 2.882
+510.879 495.481 5.255 537.924 5.722 249.384 3.162
+511.037 495.814 5.439 538.009 5.862 249.893 3.594
+511.195 494.958 5.280 538.280 5.735 248.588 3.406
+511.353 495.439 5.320 537.892 5.688 249.935 2.974
+511.511 495.224 5.250 538.178 5.677 250.039 3.189
+511.669 495.182 5.424 537.871 5.636 248.930 3.097
+511.827 494.991 5.327 537.848 5.583 250.449 3.330
+511.985 495.009 5.130 538.268 5.689 250.204 3.352
+512.143 495.570 5.355 538.332 5.870 247.392 3.184
+512.301 495.475 5.296 537.893 5.631 250.273 2.983
+512.459 495.374 5.349 538.289 5.620 249.472 2.948
+512.617 495.613 5.303 537.812 5.653 249.664 3.371
+512.774 495.866 5.355 538.548 5.625 248.876 3.090
+512.933 495.588 5.304 538.325 5.662 249.718 3.103
+513.091 495.785 5.289 538.543 5.723 249.047 3.406
+513.249 495.497 5.244 537.565 5.698 250.020 3.154
+513.407 495.945 5.381 538.445 5.807 249.440 3.147
+513.565 495.349 5.232 538.094 5.698 249.134 3.012
+513.722 495.153 5.289 537.781 5.628 248.741 3.048
+513.880 496.041 5.291 537.847 5.652 249.097 2.950
+514.038 495.340 5.192 537.748 5.628 249.711 3.325
+514.195 495.423 5.221 538.137 5.648 249.737 3.246
+514.354 495.594 5.275 538.061 5.688 249.117 3.321
+514.511 495.975 5.221 538.840 5.656 248.931 3.129
+514.670 495.989 5.337 538.258 5.643 248.529 3.052
+514.828 495.149 5.241 538.072 5.734 249.555 3.010
+514.986 495.351 5.207 538.210 5.680 249.185 2.874
+515.144 495.683 5.201 538.282 5.728 249.611 3.071
+515.302 496.116 5.314 538.082 5.739 248.876 3.076
+515.460 495.631 5.452 538.660 5.596 248.498 3.037
+515.618 495.256 5.216 538.316 5.635 249.285 3.104
+515.776 496.302 5.285 538.343 5.742 249.072 3.055
+515.934 495.663 5.293 538.183 5.782 249.740 3.154
+516.092 495.456 5.355 537.691 5.672 249.077 3.039
+516.251 494.984 5.207 538.267 5.661 249.380 3.085
+516.409 495.419 5.354 537.772 5.691 249.673 3.034
+516.567 495.294 5.162 538.027 5.713 249.486 3.063
+516.725 495.472 5.217 538.410 5.690 249.104 3.059
+516.883 495.324 5.242 538.054 5.722 249.441 3.054
+517.041 495.793 5.356 538.670 5.667 248.574 3.126
+517.199 495.648 5.279 537.926 5.732 249.295 3.077
+517.357 496.006 5.281 537.969 5.693 249.362 3.207
+517.515 496.180 5.380 537.919 5.602 248.953 3.194
+517.674 495.201 5.249 538.209 5.732 249.349 3.313
+517.832 495.562 5.289 538.132 5.674 250.343 3.050
+517.990 496.035 5.373 538.281 5.599 249.083 3.028
+518.148 494.930 5.268 537.792 5.735 249.080 3.235
+518.305 495.869 5.175 538.098 5.637 249.600 3.219
+518.463 495.458 5.165 538.291 5.553 249.526 3.107
+518.621 495.504 5.336 537.862 5.671 250.025 3.145
+518.780 495.655 5.348 538.088 5.682 249.270 3.347
+518.937 495.816 5.258 537.800 5.661 248.952 3.059
+519.096 495.548 5.325 538.228 5.668 249.139 3.030
+519.253 495.305 5.257 538.162 5.718 248.801 3.013
+519.411 495.223 5.241 538.471 5.667 249.778 2.965
+519.570 495.852 5.306 538.344 5.752 248.657 3.123
+519.728 495.738 5.236 537.893 5.680 248.956 3.151
+519.887 495.257 5.263 538.098 5.640 249.539 3.147
+520.044 494.752 5.240 537.721 5.626 249.285 3.074
+520.203 494.637 5.279 537.607 5.693 249.852 3.200
+520.361 495.936 5.224 538.166 5.625 249.678 2.961
+520.519 495.609 5.299 538.301 5.725 249.366 3.076
+520.677 495.566 5.161 538.143 5.646 248.923 3.184
+520.835 495.765 5.249 538.131 5.724 249.219 3.198
+520.993 495.687 5.315 538.261 5.620 249.212 3.279
+521.151 495.706 5.207 538.392 5.607 249.072 3.158
+521.309 496.227 5.348 538.444 5.694 249.080 2.990
+521.467 495.052 5.359 538.304 5.643 249.630 3.296
+521.624 495.810 5.292 538.513 5.616 249.796 2.986
+521.783 495.648 5.277 538.315 5.743 250.377 3.063
+521.941 495.756 5.301 537.983 5.691 249.283 3.156
+522.099 495.687 5.427 538.319 5.647 248.742 3.259
+522.257 495.996 5.271 538.043 5.736 248.797 2.922
+522.415 495.660 5.375 537.980 5.607 248.848 3.104
+522.573 495.286 5.292 537.819 5.604 249.078 3.051
+522.731 495.582 5.257 537.858 5.696 249.980 3.223
+522.889 495.095 5.268 537.678 5.839 249.809 2.987
+523.048 495.790 5.367 538.166 5.631 249.348 3.150
+523.206 495.437 5.339 538.111 5.655 249.803 3.035
+523.364 495.384 5.298 538.101 5.751 249.318 3.027
+523.522 495.153 5.155 537.841 5.795 249.023 3.181
+523.679 495.281 5.360 538.738 5.681 249.380 3.085
+523.837 495.822 5.297 538.267 5.590 249.113 3.167
+523.995 495.638 5.346 537.942 5.728 249.181 2.939
+524.153 495.916 5.418 538.769 5.619 248.741 3.294
+524.311 495.869 5.294 538.477 5.701 249.277 3.032
+524.469 495.608 5.247 538.004 5.703 250.132 3.178
+524.628 495.336 5.313 537.570 5.709 249.571 3.467
+524.785 495.703 5.289 538.175 5.662 249.935 3.068
+524.943 495.367 5.345 538.561 5.747 249.329 3.037
+525.101 496.123 5.245 537.825 5.679 248.853 3.153
+525.259 495.571 5.302 538.248 5.598 248.958 3.098
+525.417 495.455 5.265 538.092 5.772 249.569 3.011
+525.575 495.384 5.390 538.441 5.613 248.985 2.915
+525.734 495.473 5.305 537.694 5.711 249.779 3.213
+525.892 496.004 5.213 538.037 5.861 249.557 3.012
+526.050 495.690 5.253 537.930 5.603 249.575 3.036
+526.208 495.616 5.425 538.099 5.665 248.835 3.220
+526.366 495.676 5.269 537.671 5.706 249.518 3.062
+526.524 495.576 5.346 537.606 5.734 249.875 3.146
+526.682 495.025 5.378 538.136 5.685 249.198 3.018
+526.840 495.640 5.515 538.221 5.649 248.832 3.094
+526.998 495.586 5.332 537.742 5.590 249.818 3.384
+527.156 495.485 5.260 538.107 5.659 249.098 3.171
+527.313 495.404 5.222 538.321 5.647 249.111 3.082
+527.471 495.864 5.263 538.193 5.691 248.931 2.975
+527.629 495.978 5.273 538.511 5.690 249.749 3.278
+527.787 496.109 5.365 538.065 5.614 249.967 3.053
+527.946 495.571 5.233 538.190 5.706 249.049 3.081
+528.103 495.315 5.318 538.081 5.677 249.170 2.922
+528.261 495.573 5.474 538.020 5.655 248.911 3.173
+528.419 495.525 5.303 537.720 5.629 248.959 3.121
+528.578 495.485 5.333 538.617 5.683 248.979 3.067
+528.736 495.354 5.386 538.826 5.630 249.079 2.990
+528.895 495.473 5.242 538.248 5.654 250.060 3.122
+529.053 495.704 5.313 537.762 5.719 249.540 2.991
+529.211 495.587 5.282 538.497 5.655 249.115 3.156
+529.369 495.305 5.297 537.615 5.724 248.951 3.068
+529.527 494.633 5.324 538.456 5.617 248.669 3.391
+529.685 495.686 5.416 538.184 5.686 249.626 2.963
+529.842 494.956 5.313 537.961 5.682 249.036 3.146
+530.001 495.019 5.293 538.149 5.697 249.500 3.015
+530.158 495.880 5.369 537.801 5.611 249.915 3.112
+530.317 495.028 5.291 538.298 5.690 250.139 2.972
+530.474 495.680 5.274 538.823 5.644 249.921 3.310
+530.633 495.106 5.304 538.118 5.700 248.709 3.223
+530.790 495.531 5.440 537.971 5.700 249.237 3.045
+530.948 494.835 5.396 538.239 5.676 249.612 3.052
+531.106 495.508 5.335 537.922 5.695 250.006 2.912
+531.265 495.135 6.569 537.609 5.954 248.360 4.721
+531.422 495.611 5.546 537.996 5.647 250.013 6.029
+531.579 495.426 5.275 538.180 5.611 249.680 3.237
+531.737 495.224 5.167 537.571 5.711 250.106 3.422
+531.895 495.492 5.432 537.665 5.664 249.831 3.466
+532.052 496.534 5.467 538.046 5.692 249.728 3.177
+532.211 495.565 5.338 538.370 5.633 250.057 3.253
+532.368 494.845 5.368 537.973 5.715 250.050 2.993
+532.527 495.258 5.306 537.809 5.701 249.240 2.987
+532.685 495.532 5.256 538.288 5.602 249.382 3.057
+532.843 495.925 5.420 538.242 5.624 249.623 3.012
+533.001 494.979 5.365 538.092 5.700 249.136 3.222
+533.159 495.369 5.265 538.450 5.610 249.141 3.297
+533.317 495.143 5.356 537.924 5.632 249.811 3.082
+533.475 495.381 5.263 538.539 5.790 249.338 3.058
+533.633 495.583 5.343 538.885 5.666 249.543 3.043
+533.791 496.265 5.290 537.238 5.771 248.995 3.387
+533.950 495.322 5.497 538.272 5.666 249.699 3.403
+534.108 494.643 5.441 538.582 5.780 249.277 3.172
+534.267 495.606 5.356 537.585 6.163 249.292 3.422
+534.425 495.836 5.389 539.395 6.018 249.282 3.334
+534.583 496.738 5.330 539.884 5.812 249.922 3.261
+534.741 494.327 5.517 537.228 6.306 249.179 3.166
+534.899 497.273 5.822 545.042 6.520 251.001 3.665
+535.057 495.782 5.334 540.090 5.770 250.170 3.244
+535.215 496.887 5.324 539.561 5.744 249.741 3.108
+535.373 497.228 5.892 540.565 5.804 249.687 3.041
+535.531 496.312 5.307 540.325 5.712 249.346 2.863
+535.689 496.143 5.251 539.923 5.734 249.163 3.006
+535.847 495.941 5.388 540.769 5.699 250.471 3.229
+536.005 495.499 5.227 540.217 5.725 249.774 3.291
+536.162 496.185 5.277 539.982 5.786 249.847 3.047
+536.320 496.391 5.339 540.079 5.629 249.768 3.221
+536.478 495.934 5.237 540.160 5.693 249.657 3.087
+536.636 496.169 5.293 539.881 5.634 249.416 3.213
+536.794 495.821 5.224 540.298 5.718 249.694 3.298
+536.952 495.858 5.241 539.943 5.697 249.216 3.094
+537.110 496.248 5.233 540.389 5.701 249.572 3.112
+537.268 495.952 5.209 540.133 5.683 249.615 2.869
+537.426 496.129 5.230 540.401 5.684 249.516 3.427
+537.584 496.301 5.249 540.114 5.622 250.275 2.979
+537.741 496.093 5.322 541.141 5.717 249.782 2.892
+537.899 496.110 5.211 540.471 5.735 249.667 3.085
+538.058 496.061 5.257 539.974 5.686 249.726 3.260
+538.216 496.340 5.429 540.569 5.672 250.277 3.047
+538.374 495.963 5.358 539.785 5.775 249.432 2.947
+538.532 496.369 5.314 540.287 5.667 250.094 3.231
+538.690 495.723 5.295 539.722 5.650 250.140 3.244
+538.848 496.057 5.210 540.377 5.696 249.971 3.115
+539.006 496.310 5.405 540.053 5.771 249.389 3.040
+539.164 495.883 5.337 539.510 5.639 249.783 3.004
+539.322 495.368 5.277 539.885 5.610 249.607 3.097
+539.480 495.563 5.328 539.898 5.669 249.656 3.010
+539.638 496.205 5.382 540.039 5.646 249.566 3.286
+539.796 495.572 5.435 540.120 5.778 249.645 3.123
+539.954 496.715 5.362 540.281 5.706 249.756 2.940
+540.112 496.137 5.277 540.152 5.633 249.207 3.082
+540.270 496.261 5.344 540.091 5.764 250.072 3.248
+540.428 495.752 5.360 540.481 5.669 249.940 2.935
+540.586 496.607 5.420 540.544 5.657 249.919 3.167
+540.744 495.976 5.311 539.575 5.741 250.159 3.148
+540.902 495.469 5.372 540.305 5.619 250.211 2.963
+541.060 496.324 5.291 539.983 5.654 249.712 3.311
+541.218 496.123 5.269 540.259 5.683 250.057 3.137
+541.376 496.271 5.335 540.082 5.713 249.740 3.167
+541.534 495.712 5.291 540.230 5.757 249.527 2.878
+541.692 496.207 5.334 540.092 5.669 249.555 3.150
+541.850 495.822 5.400 539.960 5.651 250.165 3.308
+542.008 496.328 5.251 540.349 5.635 249.241 3.080
+542.165 495.833 5.191 540.473 5.699 249.112 3.044
+542.324 496.368 5.391 540.014 5.627 249.801 3.104
+542.482 495.813 5.316 539.950 5.724 250.348 3.163
+542.640 496.598 5.298 540.289 5.700 249.203 3.249
+542.797 496.096 5.323 540.012 5.717 249.762 3.040
+542.955 496.371 7.935 540.290 6.893 249.627 5.586
+543.113 495.903 5.840 539.573 6.080 249.576 3.993
+543.270 496.159 5.886 540.015 5.867 248.665 3.028
+543.429 496.391 5.995 539.760 5.656 249.596 3.101
+543.587 496.623 5.350 540.667 5.657 249.625 3.265
+543.744 496.186 5.319 539.986 5.763 250.236 3.030
+543.902 496.581 5.291 540.279 5.784 250.132 3.129
+544.060 496.495 5.250 539.932 5.770 248.981 3.044
+544.219 495.744 5.400 540.289 5.710 248.799 3.239
+544.377 496.147 5.333 540.673 5.618 249.808 3.241
+544.535 496.861 5.367 540.846 5.716 249.638 3.121
+544.693 495.468 5.421 540.428 5.574 249.976 2.990
+544.852 495.914 5.256 540.384 5.689 250.399 3.098
+545.010 495.939 5.386 539.883 5.714 249.514 3.227
+545.168 495.699 5.348 540.398 5.666 249.225 3.134
+545.326 496.107 5.236 539.724 5.676 250.632 3.294
+545.483 496.281 5.269 540.067 5.696 249.396 3.310
+545.641 496.152 5.353 539.770 5.635 249.333 3.051
+545.799 497.111 5.210 539.837 5.653 249.923 3.124
+545.957 496.201 5.271 540.078 5.619 250.119 2.996
+546.115 496.492 5.199 540.350 5.688 249.601 3.083
+546.273 496.074 5.335 540.543 5.621 249.726 3.014
+546.431 495.900 5.325 539.755 5.701 249.627 3.188
+546.589 496.669 5.195 539.647 5.621 249.386 3.014
+546.747 496.566 5.372 540.046 5.682 249.823 3.152
+546.905 496.825 5.295 540.470 5.689 249.648 2.947
+547.063 495.968 5.265 539.894 5.873 249.936 3.072
+547.222 495.549 5.418 539.859 5.739 250.289 3.058
+547.380 495.915 5.176 540.508 5.644 250.082 3.112
+547.538 496.029 5.297 540.425 5.665 249.640 2.862
+547.696 495.730 5.238 540.114 5.694 249.806 3.153
+547.854 495.847 5.283 539.621 5.648 249.888 3.101
+548.013 495.948 5.330 540.746 5.683 250.228 3.203
+548.170 496.179 5.367 540.887 5.724 249.232 3.036
+548.329 496.281 5.370 539.938 5.682 249.322 3.051
+548.487 495.582 5.396 539.829 5.693 250.113 3.122
+548.645 495.715 5.374 539.958 5.874 248.771 2.944
+548.803 496.667 5.302 539.949 5.737 249.477 3.171
+548.961 496.056 5.258 540.089 5.745 249.594 3.061
+549.119 496.090 5.255 540.320 5.711 249.785 3.218
+549.276 496.150 5.225 540.143 5.641 249.627 3.186
+549.434 495.971 5.396 540.531 5.684 249.736 3.177
+549.593 496.579 5.382 540.285 5.716 249.467 2.943
+549.751 496.365 5.383 540.322 5.741 249.594 3.230
+549.909 496.463 5.331 539.793 5.814 249.595 3.283
+550.067 496.104 5.352 540.018 5.825 249.775 3.080
+550.225 495.811 5.338 540.250 5.648 249.487 3.099
+550.383 496.328 5.311 539.532 5.640 249.054 3.038
+550.541 495.753 5.264 540.195 5.717 250.190 3.217
+550.699 495.397 5.346 540.102 5.682 249.821 3.249
+550.857 495.684 5.308 540.321 5.758 249.168 3.043
+551.015 495.536 5.343 539.823 5.681 250.101 3.004
+551.174 496.145 5.281 540.008 5.718 249.761 2.994
+551.332 496.551 5.266 540.120 5.683 249.957 3.070
+551.490 496.265 5.290 539.881 5.730 249.939 3.009
+551.648 496.352 5.233 540.068 5.655 249.779 3.047
+551.806 496.083 5.284 540.500 5.732 250.437 3.042
+551.964 496.290 5.229 540.315 5.732 249.654 3.009
+552.122 496.402 5.260 540.743 5.691 249.496 3.090
+552.280 496.154 5.237 539.757 5.706 249.584 3.096
+552.438 496.361 5.418 540.517 5.794 249.875 3.156
+552.596 496.453 5.311 539.635 5.691 249.828 3.128
+552.754 496.444 5.279 540.186 5.703 250.148 3.163
+552.912 495.464 5.311 539.461 5.612 249.021 2.974
+553.070 496.534 5.243 540.804 5.724 248.660 3.023
+553.228 496.055 5.245 540.238 5.750 249.156 2.980
+553.386 496.510 5.266 540.022 5.637 249.101 3.096
+553.544 496.755 5.373 540.220 5.638 249.421 3.005
+553.703 496.837 5.307 539.902 5.677 249.534 3.286
+553.860 496.068 5.243 539.779 5.605 249.625 3.181
+554.018 496.220 5.280 540.957 5.596 249.706 3.045
+554.176 496.502 5.286 540.039 5.608 249.717 2.954
+554.333 496.665 5.558 540.450 5.618 249.297 3.449
+554.491 496.646 5.344 539.834 5.599 249.542 3.286
+554.649 495.746 5.260 540.038 5.652 250.025 3.171
+554.807 495.867 5.278 540.140 5.698 250.150 2.918
+554.966 496.998 5.294 540.231 5.749 250.031 3.213
+555.124 496.360 5.332 540.662 5.742 250.180 3.272
+555.282 495.923 5.397 540.526 5.732 249.501 3.184
+555.439 496.569 5.324 540.315 5.672 249.665 2.947
+555.598 496.095 5.292 540.463 5.766 249.696 3.064
+555.756 496.410 5.383 540.374 5.747 248.726 3.018
+555.914 496.004 5.219 539.843 5.660 249.497 3.049
+556.072 496.470 5.252 539.988 5.822 249.574 3.187
+556.230 496.184 5.295 539.580 5.724 249.795 3.032
+556.388 496.071 5.304 540.315 5.591 249.427 3.047
+556.546 496.130 5.305 539.503 5.635 249.944 3.207
+556.704 496.551 5.315 540.555 5.775 248.959 3.071
+556.863 496.445 5.350 540.765 5.689 249.409 2.991
+557.021 496.344 5.261 539.587 5.734 249.984 2.998
+557.180 495.893 5.361 539.716 5.588 250.119 3.000
+557.338 496.278 5.242 539.787 5.682 249.611 3.199
+557.496 496.722 5.360 540.357 5.654 249.766 2.903
+557.654 495.967 5.292 539.593 5.673 249.227 3.189
+557.812 495.799 5.273 539.416 5.686 249.832 3.325
+557.970 496.178 5.347 539.844 5.671 250.608 2.963
+558.128 496.571 5.217 539.958 5.714 249.796 2.857
+558.286 495.975 5.275 539.459 5.606 249.587 3.121
+558.444 495.509 5.240 539.724 5.739 249.725 3.047
+558.602 496.195 5.308 540.097 5.728 249.767 3.051
+558.760 496.341 5.270 539.991 5.712 249.867 3.015
+558.919 496.633 5.408 540.269 5.708 249.268 3.277
+559.076 497.136 5.417 540.402 5.755 249.952 3.092
+559.235 495.941 5.365 540.024 5.746 249.589 3.090
+559.393 496.509 5.333 539.890 5.700 249.515 3.198
+559.551 496.605 5.438 539.678 5.687 248.845 2.924
+559.709 496.706 5.390 540.216 5.761 249.408 2.994
+559.866 496.807 5.363 539.762 5.688 249.974 3.001
+560.025 496.708 5.209 539.977 5.732 249.249 2.887
+560.183 496.307 5.270 540.149 5.614 249.712 3.159
+560.341 497.033 5.232 540.301 5.689 249.537 3.233
+560.498 496.440 5.298 539.713 5.708 249.635 3.144
+560.656 496.404 5.341 540.087 5.760 249.786 3.171
+560.815 496.164 5.280 540.370 5.640 249.657 3.002
+560.973 496.451 5.376 539.753 5.680 249.546 3.246
+561.131 496.694 5.372 540.397 5.719 249.625 3.046
+561.289 496.316 5.319 539.774 5.697 250.116 3.128
+561.447 496.293 5.362 540.627 5.733 249.121 3.064
+561.605 496.452 5.278 540.626 5.674 249.801 3.069
+561.764 496.634 5.277 540.906 5.691 249.828 3.046
+561.922 496.206 5.395 540.489 5.661 249.598 3.064
+562.080 496.962 5.202 540.215 5.618 249.526 3.143
+562.238 496.779 5.318 540.662 5.645 249.125 2.979
+562.396 495.777 5.585 540.506 5.665 249.181 3.003
+562.555 496.437 5.239 540.095 5.692 249.841 3.174
+562.712 496.254 5.317 539.951 5.744 249.358 3.121
+562.871 497.012 5.319 540.639 5.617 249.783 3.095
+563.029 496.650 5.401 540.516 5.710 249.447 2.987
+563.187 495.766 5.398 539.935 5.609 249.814 3.023
+563.345 496.117 5.277 540.099 5.783 249.838 3.137
+563.503 495.951 5.342 539.521 5.726 249.678 3.070
+563.661 496.169 5.488 539.765 5.662 250.136 3.033
+563.819 495.571 5.251 540.177 5.717 250.691 3.113
+563.977 496.835 5.286 541.191 5.675 249.816 2.852
+564.135 496.198 5.272 540.352 5.706 249.698 3.140
+564.294 496.762 5.351 540.803 5.674 249.547 3.114
+564.452 496.637 5.280 540.768 5.739 249.395 3.165
+564.610 496.526 5.391 539.847 5.741 249.313 3.166
+564.769 496.275 5.400 540.278 5.715 250.543 3.481
+564.927 496.782 5.270 540.482 5.683 249.315 3.103
+565.084 496.947 5.373 540.444 5.859 250.053 3.137
+565.243 496.759 5.265 540.094 5.619 249.540 3.054
+565.401 496.117 5.254 540.671 5.662 249.325 3.096
+565.559 496.261 5.261 540.196 5.810 249.803 3.112
+565.717 496.632 5.262 540.582 5.712 249.978 3.138
+565.876 497.046 5.302 540.295 5.713 249.519 3.083
+566.034 496.100 5.319 539.713 5.634 249.995 3.039
+566.192 496.601 5.238 540.557 5.722 250.309 3.095
+566.350 496.166 5.334 540.205 5.646 249.293 3.097
+566.508 496.311 5.555 540.022 5.723 249.952 3.271
+566.666 495.883 5.219 540.170 5.601 249.929 3.045
+566.824 496.568 5.343 540.101 5.740 249.619 3.077
+566.982 496.305 5.325 540.261 5.593 249.876 3.253
+567.140 496.983 5.260 540.182 5.651 249.678 3.151
+567.298 496.489 5.284 540.131 5.698 249.736 3.273
+567.456 496.434 5.205 540.431 5.701 249.877 3.195
+567.614 496.314 5.292 540.464 5.699 249.558 3.171
+567.772 496.343 5.356 540.254 5.697 249.855 3.292
+567.930 496.313 5.278 539.952 5.726 250.008 3.081
+568.089 496.283 5.271 540.149 5.628 249.830 3.038
+568.247 496.382 5.311 540.661 5.771 248.968 3.028
+568.405 496.983 5.270 540.506 5.616 249.949 3.083
+568.564 496.519 5.261 539.755 5.672 250.049 3.042
+568.722 496.845 5.308 540.917 5.688 250.240 3.185
+568.881 496.938 5.232 540.529 5.718 250.322 3.132
+569.039 496.979 5.404 540.465 5.681 249.083 3.217
+569.197 496.859 5.453 540.324 5.662 249.690 3.131
+569.355 496.708 5.287 540.693 5.706 249.246 3.007
+569.513 496.927 5.292 540.227 5.757 249.792 3.470
+569.671 496.999 5.310 540.422 5.680 250.057 3.137
+569.829 496.690 5.244 540.254 5.710 249.040 2.939
+569.987 497.216 5.371 540.312 5.752 248.990 3.167
+570.145 496.222 5.290 540.283 5.679 250.009 3.028
+570.303 496.442 5.309 540.532 5.748 250.410 3.008
+570.461 497.044 5.285 541.085 5.672 249.734 3.299
+570.618 496.780 5.268 541.010 5.686 249.467 2.994
+570.776 496.177 5.219 539.960 5.772 249.344 2.988
+570.934 496.491 5.273 540.969 5.765 249.813 3.045
+571.093 497.014 5.381 540.749 5.707 250.338 3.233
+571.250 497.420 5.352 540.317 5.699 249.883 3.231
+571.408 496.494 5.399 540.063 5.706 249.068 3.047
+571.566 496.774 5.295 540.130 5.695 250.350 3.222
+571.724 496.447 5.282 540.881 5.651 249.783 2.910
+571.882 496.394 5.286 540.108 5.699 249.117 3.419
+572.040 496.964 5.295 540.181 5.671 249.451 3.356
+572.198 496.959 5.294 540.061 5.667 249.404 3.432
+572.356 496.409 5.278 541.050 5.749 249.354 2.898
+572.513 496.074 5.314 540.300 5.661 249.503 3.305
+572.671 496.170 5.273 540.453 5.639 249.315 3.312
+572.829 496.411 5.376 539.824 5.769 249.433 3.087
+572.987 496.534 5.378 540.098 5.670 249.604 3.046
+573.145 496.475 5.280 540.331 5.792 250.046 3.094
+573.304 496.024 5.293 540.083 5.754 249.060 3.158
+573.462 496.490 5.245 540.900 5.688 249.660 3.102
+573.620 496.274 5.271 539.879 5.690 248.886 2.995
+573.778 496.322 5.319 540.708 5.656 249.448 3.126
+573.936 496.233 5.322 540.737 5.810 249.964 3.132
+574.094 496.332 5.343 540.127 5.727 250.069 3.035
+574.252 496.843 5.276 540.021 5.677 249.040 2.986
+574.410 496.328 5.279 540.080 5.679 249.660 3.212
+574.568 495.933 5.209 540.160 5.666 250.366 3.210
+574.726 495.899 5.286 539.991 5.667 249.193 3.063
+574.884 496.039 5.448 540.009 5.754 249.541 2.873
+575.042 496.690 5.329 540.150 5.708 249.735 3.080
+575.199 496.656 5.348 540.121 5.698 250.317 3.014
+575.358 496.946 5.286 540.241 5.618 249.953 3.103
+575.516 496.699 5.317 540.422 5.753 249.489 3.208
+575.674 496.487 5.316 540.834 5.682 249.204 3.024
+575.832 496.324 5.327 540.118 5.690 249.462 3.171
+575.990 496.793 5.369 540.441 5.643 249.834 3.031
+576.148 496.808 5.367 540.004 5.682 249.778 3.219
+576.306 496.598 5.351 540.480 5.712 249.447 2.957
+576.465 496.496 5.324 540.284 5.656 249.654 3.094
+576.623 496.794 5.179 540.072 5.861 249.696 3.157
+576.781 496.798 5.274 539.970 5.731 249.566 3.114
+576.939 497.128 5.399 540.329 5.642 250.085 3.096
+577.097 496.871 5.286 540.563 5.664 249.020 3.140
+577.255 496.008 5.238 540.175 5.811 249.390 3.077
+577.413 496.990 5.290 540.521 5.717 250.283 3.128
+577.571 496.479 5.358 540.565 5.794 250.472 2.972
+577.730 496.474 5.342 539.575 5.653 250.084 3.110
+577.888 496.334 5.253 540.235 5.634 249.860 3.047
+578.046 496.193 5.269 540.122 5.891 249.088 3.050
+578.204 496.531 5.324 540.381 5.716 250.330 3.023
+578.362 496.635 5.332 540.103 5.687 249.823 3.108
+578.520 496.026 5.203 541.161 5.617 249.588 3.046
+578.678 496.420 5.247 540.701 5.666 249.985 3.139
+578.837 497.134 5.350 540.067 5.779 249.729 3.080
+578.994 496.311 5.349 540.320 5.633 249.627 3.099
+579.153 496.543 5.399 540.633 5.657 249.836 3.164
+579.311 496.705 5.244 540.326 5.634 249.638 3.053
+579.469 496.737 5.346 540.113 5.674 249.306 3.024
+579.627 496.847 5.276 540.211 5.711 250.133 3.057
+579.785 497.018 5.218 540.242 5.721 249.501 3.009
+579.943 496.940 5.231 540.412 5.697 250.255 3.131
+580.101 496.779 5.239 540.174 5.760 249.552 2.934
+580.259 496.837 5.447 540.381 5.799 249.715 3.123
+580.417 496.338 5.375 540.163 5.786 249.497 2.995
+580.575 496.943 5.270 539.851 5.870 249.284 3.113
+580.733 496.799 5.326 540.748 5.661 249.682 2.991
+580.891 496.868 5.281 540.457 5.622 249.896 3.045
+581.049 497.728 5.419 541.054 5.725 249.888 3.243
+581.207 497.067 5.300 540.300 5.768 249.388 3.265
+581.365 496.870 5.222 539.903 5.580 249.663 2.973
+581.523 496.328 5.213 540.319 5.720 249.306 3.080
+581.681 496.323 5.254 540.633 5.747 249.533 2.876
+581.839 497.083 5.278 540.026 5.681 249.575 3.190
+581.997 496.670 5.359 539.940 5.733 250.055 2.924
+582.155 496.376 5.301 540.809 5.723 249.610 2.975
+582.313 496.763 5.238 539.968 5.642 249.126 3.234
+582.471 496.227 5.256 539.999 5.631 249.631 2.854
+582.629 496.972 5.339 539.970 5.697 249.396 3.234
+582.787 496.679 5.305 540.449 5.687 250.163 2.956
+582.945 495.986 5.376 540.974 5.751 249.251 2.974
+583.103 496.819 5.263 540.459 5.714 250.712 3.017
+583.261 496.038 5.413 540.324 5.591 250.037 3.042
+583.419 496.880 5.257 540.953 5.814 249.400 3.013
+583.578 496.648 5.312 539.859 5.682 249.594 3.047
+583.736 497.136 5.295 541.328 5.693 249.855 3.101
+583.894 496.791 5.293 540.383 5.643 250.348 2.830
+584.052 496.887 5.302 540.533 5.712 250.333 3.004
+584.210 496.668 5.217 540.465 5.759 249.593 3.011
+584.368 496.936 5.327 540.054 5.725 249.275 3.003
+584.526 496.539 5.249 540.700 5.661 249.452 3.176
+584.684 496.725 5.396 540.527 5.753 250.324 3.003
+584.842 496.747 5.398 540.295 5.761 249.903 2.970
+585.001 496.517 5.265 540.593 5.659 249.499 3.314
+585.158 496.265 5.223 540.746 5.781 249.545 2.948
+585.316 496.442 5.327 540.457 5.778 249.805 3.036
+585.475 496.114 5.324 540.884 5.737 249.898 3.361
+585.632 496.921 5.410 539.988 5.767 249.788 2.931
+585.791 496.669 5.398 540.409 5.692 249.857 2.964
+585.950 496.656 5.234 540.164 5.625 250.058 3.070
+586.108 497.246 5.478 539.951 5.662 250.170 3.202
+586.266 496.812 5.306 539.999 5.599 249.301 3.307
+586.423 496.808 5.330 540.090 5.654 249.983 3.247
+586.582 496.198 5.390 539.720 5.616 250.239 3.140
+586.740 496.452 5.309 540.127 5.734 249.962 2.981
+586.898 496.154 5.302 540.331 5.866 250.099 3.147
+587.057 496.551 5.368 540.263 5.661 249.811 3.238
+587.215 495.725 5.321 539.922 5.700 249.698 3.174
+587.373 496.357 5.285 540.879 5.706 249.657 3.157
+587.531 496.613 5.290 540.538 5.740 249.716 3.225
+587.689 495.856 5.414 541.265 5.702 249.107 3.032
+587.847 496.448 5.291 540.412 5.698 249.691 3.115
+588.005 496.544 5.369 540.714 5.784 249.086 3.297
+588.163 497.225 5.350 540.577 5.700 250.220 2.970
+588.322 496.692 5.376 540.395 5.687 250.372 3.192
+588.479 496.406 5.396 540.304 5.776 249.043 2.911
+588.638 496.854 5.304 540.873 5.678 248.990 3.154
+588.796 495.728 5.275 541.078 5.714 250.059 2.902
+588.954 496.667 5.346 540.840 5.807 250.200 3.219
+589.112 496.586 5.316 540.838 5.663 249.712 3.200
+589.269 496.115 5.369 541.058 5.612 248.927 3.075
+589.427 496.661 5.270 540.180 5.785 249.579 3.094
+589.585 497.456 5.345 540.531 5.795 250.305 3.134
+589.744 496.274 5.647 540.745 5.667 249.823 3.262
+589.902 497.312 5.341 540.397 5.624 249.418 3.094
+590.059 497.533 5.278 540.214 5.569 249.814 3.212
+590.217 497.135 5.294 540.442 5.695 249.858 2.954
+590.375 496.301 5.362 540.394 5.753 249.348 3.407
+590.533 496.773 5.269 540.264 5.725 249.353 3.334
+590.691 496.557 5.272 540.482 5.690 249.733 3.052
+590.849 497.545 5.351 540.664 5.681 250.107 3.002
+591.007 496.015 5.270 540.356 5.663 250.261 3.236
+591.165 496.770 5.310 540.353 5.724 249.472 3.028
+591.323 497.037 5.301 540.363 5.747 250.494 3.089
+591.481 496.650 5.323 540.613 5.666 249.204 3.188
+591.639 497.216 5.304 540.246 5.688 250.212 3.077
+591.797 496.332 5.315 540.472 5.799 249.532 3.615
+591.955 497.033 5.278 540.574 5.665 249.575 3.056
+592.113 496.700 5.361 539.845 5.643 250.325 3.047
+592.271 496.277 5.512 540.218 5.721 249.443 2.933
+592.429 496.632 5.386 540.072 5.627 249.214 3.023
+592.587 496.846 5.216 540.150 5.714 249.782 2.945
+592.745 495.748 5.390 539.731 5.672 249.437 3.242
+592.903 496.607 5.312 540.607 5.825 250.064 3.024
+593.061 496.256 5.252 540.616 5.661 250.360 3.148
+593.219 496.562 5.278 540.416 5.674 249.893 2.864
+593.377 496.625 5.308 540.454 5.714 250.058 3.312
+593.535 496.816 5.322 540.634 5.785 249.790 3.059
+593.694 496.818 5.408 540.306 5.693 250.367 3.028
+593.852 495.728 5.355 540.193 5.699 249.913 3.201
+594.010 496.517 5.274 541.092 5.710 249.399 2.876
+594.168 496.525 5.308 540.920 5.636 250.174 3.065
+594.326 496.275 5.329 540.839 5.748 249.601 3.220
+594.484 496.512 5.358 540.758 5.772 249.726 3.024
+594.642 497.065 5.217 540.897 5.672 249.577 3.099
+594.800 496.390 5.273 540.269 5.791 249.515 3.102
+594.958 496.653 5.469 540.572 5.708 250.145 2.955
+595.116 496.096 5.278 540.415 5.705 249.951 3.105
+595.274 496.721 5.356 540.544 5.828 249.539 3.219
+595.432 496.737 5.300 540.935 5.668 249.275 3.155
+595.591 496.427 5.435 539.859 5.606 249.812 3.048
+595.749 497.034 5.187 540.048 5.661 249.658 3.032
+595.907 496.750 5.251 540.090 5.647 249.856 3.181
+596.064 496.707 5.348 540.371 5.616 249.138 3.064
+596.223 496.497 5.353 539.943 5.698 250.471 2.987
+596.381 496.685 5.298 540.349 5.632 249.594 2.965
+596.539 496.786 5.302 539.953 5.778 249.335 3.203
+596.697 496.987 5.334 540.009 5.714 249.183 3.031
+596.855 496.589 5.274 540.410 5.769 249.851 3.072
+597.013 496.565 5.359 540.244 5.669 250.368 2.802
+597.171 497.015 5.333 540.582 5.691 248.923 3.223
+597.329 497.070 5.233 540.525 5.673 250.609 2.990
+597.487 496.550 5.313 540.205 5.688 249.426 3.113
+597.645 496.575 5.292 540.432 5.647 250.024 3.144
+597.803 496.245 5.205 540.654 5.816 249.790 3.123
+597.962 495.802 5.274 539.866 5.649 249.927 3.391
+598.120 496.038 5.298 540.418 5.690 249.849 3.189
+598.278 496.530 5.292 540.204 5.788 249.768 3.143
+598.436 496.205 5.325 539.702 5.736 250.007 3.011
+598.594 496.252 5.233 540.327 5.649 249.610 3.278
+598.751 496.832 5.232 541.193 5.693 249.906 3.015
+598.909 496.688 5.374 539.642 5.748 249.799 2.845
+599.067 497.036 5.279 540.476 5.603 249.938 3.037
+599.226 496.600 5.302 540.194 5.633 250.319 3.297
+599.383 496.456 5.322 540.181 5.673 250.363 3.070
+599.541 496.724 5.434 540.831 5.685 250.413 3.315
+599.699 496.367 5.360 540.778 5.711 250.614 3.011
+599.858 496.583 5.410 540.667 5.645 249.416 3.262
+600.015 497.015 5.311 540.186 5.664 249.624 2.992
+600.173 497.070 5.516 541.111 5.703 249.306 3.144
+600.331 496.650 5.244 540.841 5.724 249.833 3.019
+600.489 497.556 5.387 540.458 5.617 249.418 2.887
+600.647 496.595 5.269 540.314 5.750 249.474 4.076
+600.804 496.865 5.246 540.253 5.681 249.764 3.501
+600.962 496.358 5.310 540.352 5.651 249.277 3.151
+601.120 496.833 5.245 540.223 5.623 249.692 3.223
+601.278 496.778 5.245 540.532 5.667 249.046 3.268
+601.436 496.617 5.310 540.735 5.683 250.040 2.984
+601.594 496.726 5.265 540.637 5.640 250.010 2.996
+601.752 497.577 5.393 540.416 5.775 249.710 2.945
+601.911 496.405 5.183 540.754 5.738 250.067 3.237
+602.068 497.314 5.254 540.727 5.633 249.610 3.041
+602.226 496.593 5.339 540.397 5.662 250.056 3.049
+602.385 496.735 5.228 540.134 5.775 248.770 3.144
+602.543 496.767 5.199 539.971 5.779 250.147 3.106
+602.701 496.677 5.223 540.689 5.612 250.351 3.156
+602.859 496.526 5.245 540.586 5.702 249.593 3.287
+603.017 496.615 5.249 540.295 5.774 249.055 3.303
+603.175 496.536 5.374 540.103 5.701 250.010 3.236
+603.334 497.045 5.256 539.731 5.717 249.680 3.094
+603.492 496.910 5.280 540.747 5.763 249.696 3.058
+603.650 496.729 5.469 539.927 5.632 248.946 2.922
+603.808 496.957 5.238 540.059 5.723 250.069 3.075
+603.967 496.529 5.209 539.870 5.711 250.290 3.184
+604.125 497.065 5.305 540.578 5.619 250.252 2.903
+604.283 496.820 5.349 540.345 5.711 249.602 2.886
+604.441 496.558 5.406 540.673 5.688 249.726 2.974
+604.599 496.625 5.242 540.546 5.645 249.797 3.128
+604.757 496.566 5.211 539.865 5.632 248.848 3.040
+604.915 496.935 5.225 540.068 5.669 250.218 2.978
+605.073 497.059 5.373 540.070 5.631 249.502 3.062
+605.231 496.600 5.327 540.720 5.717 249.385 3.027
+605.389 496.736 5.317 540.297 5.725 249.313 3.296
+605.547 497.047 5.313 540.793 5.726 250.143 3.092
+605.705 496.490 5.214 541.048 5.702 249.791 3.020
+605.862 497.014 5.328 540.620 5.690 249.827 2.980
+606.020 497.070 5.408 541.006 5.703 249.798 3.064
+606.178 497.190 5.257 540.660 5.752 249.407 3.101
+606.336 496.711 5.264 540.196 5.622 249.924 3.335
+606.495 496.547 5.293 540.192 5.769 249.859 3.006
+606.653 496.955 5.269 540.422 5.725 250.068 3.017
+606.811 496.899 5.331 540.464 5.676 249.540 3.044
+606.969 496.749 5.306 540.264 5.632 249.145 3.129
+607.127 496.637 5.220 540.342 5.731 249.351 3.073
+607.285 496.466 5.443 540.733 5.851 249.733 2.942
+607.444 495.924 5.246 540.477 5.757 249.897 3.196
+607.602 495.849 5.395 539.954 5.686 250.078 3.147
+607.760 496.718 5.382 540.599 5.752 249.600 3.317
+607.917 496.107 5.268 540.136 5.681 249.976 3.052
+608.076 496.391 5.285 539.711 5.699 249.739 3.401
+608.234 496.803 5.360 540.327 5.717 249.437 3.279
+608.391 496.218 5.459 540.203 5.714 249.594 2.954
+608.549 496.322 5.417 540.372 5.707 249.295 3.109
+608.707 496.943 5.300 540.933 5.755 249.162 3.029
+608.865 496.459 5.333 540.469 5.646 249.671 3.208
+609.023 496.794 5.221 540.344 5.653 249.506 3.178
+609.181 496.877 5.459 540.343 5.712 250.125 3.246
+609.339 497.258 5.341 540.243 5.738 249.291 3.301
+609.496 496.602 5.240 540.192 5.693 250.112 2.998
+609.654 496.136 5.383 540.592 5.768 249.621 3.197
+609.812 496.521 5.192 540.926 5.615 250.356 3.176
+609.971 496.685 5.324 540.569 5.799 249.703 3.099
+610.129 496.756 5.256 540.435 5.693 249.107 3.061
+610.287 497.017 5.344 540.434 5.674 249.901 3.125
+610.445 497.030 5.298 540.064 5.670 249.759 3.139
+610.603 496.750 5.268 540.320 5.767 249.637 3.196
+610.761 496.757 5.223 540.483 5.705 249.736 3.078
+610.919 496.997 5.280 540.494 5.583 250.017 3.278
+611.078 496.769 5.338 540.324 5.689 250.540 3.166
+611.236 497.457 5.261 540.703 5.734 249.205 3.210
+611.394 497.084 5.282 540.397 5.759 249.842 3.078
+611.552 496.530 5.351 540.984 5.692 249.568 3.311
+611.710 496.575 5.335 540.699 5.724 250.025 3.199
+611.868 497.015 5.246 540.287 5.674 249.380 3.071
+612.026 497.150 5.239 540.883 5.727 249.803 3.022
+612.184 497.131 5.222 540.828 5.720 249.918 2.881
+612.342 497.071 5.353 540.398 5.784 249.189 3.039
+612.500 497.040 5.283 540.914 5.717 250.041 2.999
+612.658 496.630 5.258 540.789 5.654 249.540 3.093
+612.816 496.976 5.268 540.567 5.686 249.435 3.338
+612.974 496.819 5.452 540.515 5.753 249.574 3.038
+613.132 497.028 5.298 539.935 5.776 249.735 3.035
+613.290 496.600 5.431 539.659 5.674 249.977 3.222
+613.449 496.776 5.275 539.906 5.705 249.399 3.149
+613.607 496.607 5.229 540.549 5.711 249.444 2.991
+613.766 497.566 5.293 540.085 5.765 249.574 3.142
+613.924 496.825 5.329 540.510 5.616 249.695 3.144
+614.082 496.788 5.266 540.845 5.660 249.776 3.183
+614.240 496.737 5.238 540.998 5.682 249.437 2.975
+614.399 496.707 5.290 539.700 5.763 249.204 3.317
+614.556 496.117 5.283 540.327 5.581 249.202 3.015
+614.714 496.721 5.311 540.593 5.652 250.272 3.153
+614.872 497.417 5.383 540.496 5.668 249.452 2.941
+615.031 496.984 5.193 539.894 5.678 249.454 3.066
+615.188 496.439 5.380 540.379 5.699 250.094 3.069
+615.346 496.634 5.339 540.683 5.650 249.730 3.041
+615.504 496.976 5.392 540.446 5.652 250.037 3.073
+615.663 496.719 5.273 540.454 5.737 249.970 3.162
+615.821 496.727 5.247 540.904 5.772 249.209 3.028
+615.979 497.047 5.372 541.319 5.716 250.742 3.085
+616.137 496.820 5.231 540.863 5.666 249.167 3.164
+616.296 496.588 5.264 540.828 5.690 249.741 3.107
+616.454 497.685 5.272 541.138 5.689 249.767 3.342
+616.612 496.836 5.290 540.741 5.667 249.357 3.149
+616.770 496.728 5.277 539.827 5.722 250.603 3.055
+616.928 496.607 5.297 540.358 5.660 249.936 3.105
+617.086 496.876 5.301 540.743 5.831 250.479 3.150
+617.245 496.978 5.310 540.607 5.707 250.044 3.030
+617.403 496.819 5.235 540.576 5.715 249.120 3.086
+617.562 496.818 5.430 540.685 5.699 249.411 3.146
+617.720 497.428 5.298 540.596 5.745 250.414 3.032
+617.878 497.244 5.414 540.996 5.755 249.554 3.307
+618.036 497.182 5.371 540.240 5.767 249.255 3.047
+618.194 497.281 5.275 540.512 5.674 250.032 3.203
+618.352 497.192 5.411 540.235 5.779 249.900 3.384
+618.510 496.422 5.282 540.602 5.671 249.449 3.157
+618.668 496.814 5.206 540.206 5.718 249.754 3.061
+618.826 497.118 5.296 539.992 5.577 249.417 3.044
+618.983 496.781 5.277 540.209 5.757 249.804 3.224
+619.141 496.657 5.239 540.452 5.689 249.698 3.307
+619.299 496.246 5.197 540.094 5.697 249.567 3.003
+619.456 496.702 5.278 540.771 5.648 249.155 3.167
+619.615 497.117 5.308 540.537 5.642 249.881 3.024
+619.773 495.931 5.204 540.355 5.678 249.858 3.055
+619.931 497.079 5.257 540.213 5.638 249.428 3.057
+620.089 496.580 5.305 540.912 5.649 249.674 3.260
+620.247 496.825 5.245 540.389 5.837 249.426 3.029
+620.405 496.198 5.280 540.593 5.698 250.354 3.000
+620.563 495.922 5.259 539.996 5.769 249.103 3.096
+620.722 496.529 5.338 540.580 5.701 249.291 3.108
+620.880 496.425 5.333 540.195 5.689 249.742 3.056
+621.038 496.294 5.238 540.262 5.699 249.747 2.990
+621.196 496.572 5.250 540.292 5.646 249.247 2.977
+621.355 496.985 5.245 540.002 5.785 249.582 3.074
+621.513 496.409 5.293 540.510 5.749 249.515 2.988
+621.671 497.164 5.464 539.535 5.694 249.935 3.239
+621.829 496.931 5.296 540.305 5.696 249.639 3.296
+621.986 496.969 5.421 540.393 5.815 249.886 3.021
+622.145 496.709 5.218 540.454 5.661 250.668 3.175
+622.303 496.987 5.302 540.034 5.672 249.346 2.921
+622.461 497.119 5.261 540.430 5.677 250.063 3.304
+622.619 496.691 5.258 540.204 5.598 248.750 3.175
+622.777 497.206 5.252 540.192 5.655 250.327 3.092
+622.935 496.742 5.291 540.232 5.741 250.053 3.129
+623.093 496.567 5.253 540.242 5.709 249.720 2.984
+623.251 496.755 5.337 540.072 5.706 249.737 3.049
+623.409 496.597 5.286 540.480 5.601 248.947 3.197
+623.567 496.975 5.174 540.134 5.741 249.679 2.981
+623.726 496.499 5.384 540.111 5.734 249.486 3.519
+623.883 496.075 5.275 539.551 5.758 250.214 3.128
+624.041 496.490 5.266 540.515 5.751 249.722 3.080
+624.199 496.694 5.415 539.835 5.676 250.147 2.953
+624.357 496.556 5.233 540.378 5.671 250.431 3.114
+624.515 496.715 5.318 540.743 5.722 249.534 3.149
+624.674 496.757 5.205 540.377 5.661 249.725 2.983
+624.832 496.447 5.339 540.213 5.818 249.627 3.115
+624.990 496.544 5.225 540.122 5.652 249.876 3.185
+625.148 497.075 5.332 540.441 5.754 249.728 3.133
+625.306 497.050 5.327 540.074 5.689 250.167 3.075
+625.464 497.230 5.431 539.540 5.755 249.731 3.145
+625.622 496.382 5.252 540.305 5.689 249.867 3.083
+625.780 497.153 5.304 540.853 5.697 249.968 3.012
+625.938 496.581 5.279 540.408 5.668 249.059 3.015
+626.096 496.385 5.376 539.924 5.778 250.010 3.093
+626.255 496.403 5.370 540.099 5.760 249.390 3.106
+626.413 496.514 5.244 540.761 5.781 249.493 3.139
+626.571 496.845 5.329 540.697 5.673 249.864 2.962
+626.730 496.498 5.283 540.517 5.799 249.598 3.270
+626.888 496.945 5.347 540.815 5.649 250.106 3.096
+627.046 496.149 5.429 540.128 5.673 249.431 3.114
+627.204 497.111 5.398 540.271 5.798 250.004 3.064
+627.362 496.741 5.343 540.722 5.696 249.390 2.998
+627.520 496.677 5.263 540.297 5.712 249.603 3.104
+627.678 497.426 5.247 540.093 5.655 249.636 3.080
+627.836 496.344 5.325 540.301 5.744 250.476 2.958
+627.994 496.423 5.303 540.083 5.826 250.284 2.916
+628.152 496.164 5.320 539.990 5.736 250.092 3.256
+628.310 496.441 5.448 539.859 5.673 250.050 3.358
+628.468 496.484 5.315 540.198 5.724 249.770 3.386
+628.626 496.144 5.342 540.422 5.678 249.717 2.968
+628.784 496.571 5.360 540.354 5.780 249.167 3.325
+628.941 496.125 5.245 540.373 5.797 249.911 3.138
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/tabor_olbramovice.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/galileo_experiment/DOC/gnuplot/tabor_olbramovice.txt
0,0 → 1,34625
time[s] X Xerr Y Yerr Z Zerr
+ 0.046 492.210 1.779 535.550 1.935 247.970 2.260
+ 16.875 497.262 5.264 540.735 5.615 249.489 3.082
+ 17.034 497.862 5.340 540.947 5.684 249.964 3.129
+ 17.192 496.998 5.320 541.009 5.646 250.049 3.133
+ 17.351 497.920 5.282 540.500 5.750 250.140 3.076
+ 17.508 497.429 5.319 540.855 5.664 249.851 3.053
+ 17.666 497.284 5.321 540.718 5.675 249.848 3.087
+ 17.825 497.432 5.412 540.907 5.699 249.818 3.159
+ 17.982 497.064 5.463 540.769 5.733 250.048 3.086
+ 18.141 498.320 5.239 540.977 5.655 249.500 3.084
+ 18.299 497.133 5.323 540.109 5.778 250.215 3.232
+ 18.456 497.011 5.320 540.631 5.705 249.822 2.996
+ 18.614 497.790 5.307 541.186 5.626 249.858 3.442
+ 18.772 497.207 5.238 540.621 5.642 249.458 2.983
+ 18.930 497.142 5.198 540.426 5.650 250.304 3.094
+ 19.088 497.691 5.379 540.284 5.599 249.753 3.054
+ 19.246 497.326 5.421 540.482 5.651 250.377 2.912
+ 19.404 497.543 5.319 540.744 5.658 250.003 3.174
+ 19.563 497.085 5.298 540.987 5.744 250.150 3.133
+ 19.721 497.040 5.228 541.009 5.690 249.251 3.134
+ 19.878 497.050 5.304 540.960 5.677 249.702 2.891
+ 20.036 497.770 5.327 540.769 5.761 249.587 3.055
+ 20.195 497.797 5.293 541.047 5.682 249.275 3.262
+ 20.352 497.368 5.469 540.750 5.723 249.752 3.092
+ 20.510 497.343 5.401 541.007 5.781 250.047 3.231
+ 20.668 497.533 5.238 541.310 5.704 250.050 3.146
+ 20.826 497.065 5.368 541.273 5.718 249.930 3.346
+ 20.984 496.390 5.350 540.972 5.706 249.809 2.963
+ 21.143 496.914 5.389 540.879 5.665 250.008 3.327
+ 21.301 496.979 5.272 541.048 5.609 249.220 3.161
+ 21.459 496.699 5.274 541.120 5.690 250.122 3.056
+ 21.617 497.657 5.288 540.831 5.703 250.061 3.271
+ 21.776 496.746 5.255 540.608 5.793 249.290 3.152
+ 21.934 496.797 5.281 540.586 5.735 250.692 3.015
+ 22.092 497.308 5.288 540.745 5.655 249.896 3.268
+ 22.250 497.133 5.288 540.077 5.649 250.029 3.084
+ 22.408 497.201 5.298 540.330 5.750 250.090 3.041
+ 22.566 497.272 5.264 540.413 5.694 250.330 2.938
+ 22.724 497.662 5.242 539.994 5.692 249.373 2.986
+ 22.882 497.136 5.333 540.340 5.604 249.513 3.193
+ 23.039 497.141 5.443 540.433 5.760 250.175 2.967
+ 23.197 497.041 5.351 540.494 5.694 249.381 3.271
+ 23.355 497.210 5.385 540.774 5.727 249.703 3.175
+ 23.513 497.602 5.338 540.827 5.774 249.847 2.929
+ 23.671 497.676 5.413 540.678 5.701 249.438 3.003
+ 23.829 496.896 5.355 540.676 5.698 249.844 3.125
+ 23.988 496.559 5.271 540.506 5.683 249.738 3.191
+ 24.146 496.735 5.207 540.265 5.756 249.617 3.036
+ 24.304 497.067 5.444 539.802 5.696 250.246 3.120
+ 24.462 496.940 5.397 539.738 5.646 249.612 3.117
+ 24.620 497.069 5.339 540.557 5.629 250.676 3.120
+ 24.778 497.120 5.319 540.415 5.611 250.026 3.158
+ 24.936 497.251 5.298 540.414 5.705 249.840 2.979
+ 25.094 496.752 5.274 539.974 5.611 249.628 3.048
+ 25.253 497.677 5.306 540.819 5.707 249.546 3.032
+ 25.411 496.946 5.287 540.768 5.765 250.015 3.039
+ 25.570 496.819 5.248 540.467 5.716 250.130 3.124
+ 25.728 497.378 5.273 539.604 5.724 249.651 3.046
+ 25.886 496.603 5.332 540.626 5.668 250.256 3.132
+ 26.044 497.046 5.330 540.326 5.688 249.732 3.003
+ 26.202 496.850 5.292 540.393 5.652 249.867 2.998
+ 26.360 496.868 5.315 540.553 5.761 249.758 3.042
+ 26.519 496.388 5.269 541.085 5.637 249.477 3.126
+ 26.677 496.663 5.254 540.620 5.796 249.514 3.467
+ 26.835 497.086 5.343 540.286 5.702 249.645 3.100
+ 26.993 496.640 5.313 540.722 5.684 249.156 3.227
+ 27.151 496.706 5.224 540.587 5.697 249.401 3.028
+ 27.309 497.547 5.321 540.515 5.653 249.874 3.042
+ 27.467 497.065 5.427 540.285 5.625 250.008 3.032
+ 27.625 497.270 5.291 541.012 5.670 249.880 3.210
+ 27.784 497.432 5.291 540.960 5.719 249.138 3.257
+ 27.941 496.924 5.388 540.949 5.729 250.201 3.005
+ 28.100 497.469 5.236 540.999 5.674 249.942 2.943
+ 28.258 497.384 5.309 540.800 5.736 250.049 3.071
+ 28.416 496.973 5.314 541.118 5.687 249.820 3.357
+ 28.574 497.099 5.326 540.311 5.673 249.658 3.055
+ 28.732 496.871 5.253 540.333 5.651 250.386 3.141
+ 28.890 496.748 5.425 540.633 5.709 249.973 3.114
+ 29.048 496.567 5.272 540.176 5.755 250.479 3.138
+ 29.207 496.655 5.231 540.761 5.768 249.854 3.095
+ 29.365 496.236 5.363 540.367 5.722 249.808 3.019
+ 29.523 496.732 5.333 539.953 5.750 249.928 3.244
+ 29.681 496.937 5.267 540.139 5.648 249.389 3.004
+ 29.839 496.139 5.270 539.941 5.667 249.253 3.006
+ 29.997 496.531 5.392 540.139 5.748 250.522 3.367
+ 30.154 496.435 5.278 539.681 5.647 249.575 3.033
+ 30.312 496.274 5.272 540.006 5.730 249.685 3.162
+ 30.470 497.062 5.255 540.470 5.641 250.096 3.167
+ 30.629 496.840 5.329 540.324 5.659 249.450 2.932
+ 30.787 496.798 5.359 540.403 5.688 250.184 3.084
+ 30.945 497.218 5.387 540.244 5.617 249.761 3.157
+ 31.103 497.052 5.300 539.872 5.677 250.267 2.904
+ 31.261 496.900 5.285 540.248 5.652 249.802 3.333
+ 31.420 496.429 5.274 539.912 5.656 249.908 2.905
+ 31.578 496.434 5.307 540.309 5.750 249.789 3.176
+ 31.736 496.804 5.276 540.063 5.697 249.767 3.224
+ 31.894 497.028 5.340 540.010 5.701 249.567 2.967
+ 32.051 496.410 5.358 539.530 5.640 249.905 3.109
+ 32.210 497.154 5.168 540.085 5.657 250.089 3.281
+ 32.367 496.531 5.312 539.800 5.734 249.880 2.988
+ 32.525 496.635 5.306 539.738 5.584 249.998 2.951
+ 32.684 496.586 5.316 540.607 5.667 249.830 3.312
+ 32.842 497.075 5.228 539.996 5.600 250.338 3.136
+ 33.000 497.300 5.296 539.699 5.691 249.553 3.084
+ 33.158 496.352 5.293 539.537 5.792 249.865 3.159
+ 33.316 496.343 5.317 539.445 5.744 250.258 3.047
+ 33.474 496.753 5.284 540.264 5.712 250.072 3.024
+ 33.632 496.927 5.224 540.262 5.692 250.140 3.053
+ 33.790 495.999 5.394 540.232 5.793 250.481 3.369
+ 33.948 496.450 5.330 540.112 5.679 249.244 3.057
+ 34.106 496.764 5.376 540.121 5.696 249.832 3.052
+ 34.265 497.157 5.285 540.451 5.744 250.128 3.032
+ 34.423 497.091 5.259 540.574 5.766 249.091 3.190
+ 34.581 496.660 5.206 540.535 5.675 250.550 3.098
+ 34.740 497.016 5.321 540.785 5.710 249.305 3.171
+ 34.897 497.200 5.274 540.617 5.766 249.933 3.040
+ 35.056 496.762 5.208 540.296 5.769 250.099 3.050
+ 35.214 496.917 5.370 539.643 5.620 249.721 3.256
+ 35.372 497.029 5.320 540.096 5.717 250.037 3.033
+ 35.531 497.100 5.447 539.981 5.663 249.990 3.026
+ 35.690 496.951 5.358 539.699 5.740 249.769 3.083
+ 35.848 496.679 5.303 540.277 5.626 248.877 3.170
+ 36.006 497.126 5.416 540.342 5.717 249.878 3.157
+ 36.164 496.891 5.252 540.013 5.785 250.378 3.232
+ 36.322 497.618 5.236 540.370 5.768 250.043 2.972
+ 36.480 496.726 5.284 540.503 5.700 250.060 3.065
+ 36.638 496.427 5.289 540.135 5.672 250.130 3.105
+ 36.796 496.734 5.383 539.731 5.642 249.441 3.321
+ 36.954 496.497 5.255 539.847 5.692 250.394 3.208
+ 37.112 497.005 5.328 540.888 5.756 249.553 3.255
+ 37.270 497.280 5.382 540.008 5.794 249.955 3.437
+ 37.428 497.442 5.414 539.970 5.736 250.169 3.344
+ 37.586 497.194 5.443 540.479 5.743 250.261 3.289
+ 37.744 497.091 5.267 540.194 5.580 250.112 2.963
+ 37.902 497.100 5.342 540.301 5.693 249.911 3.152
+ 38.060 496.951 5.227 540.343 5.879 249.909 3.109
+ 38.219 496.919 5.257 540.483 5.710 249.889 3.169
+ 38.377 497.139 5.338 539.994 5.674 250.228 3.411
+ 38.534 496.321 5.295 539.880 5.650 249.232 3.252
+ 38.692 496.333 5.271 540.248 5.749 249.112 3.226
+ 38.850 496.563 5.232 540.422 5.785 249.531 3.060
+ 39.008 497.035 5.318 540.434 5.871 250.235 3.143
+ 39.166 497.190 5.298 540.164 5.643 249.922 3.159
+ 39.324 496.711 5.382 540.581 5.757 249.809 3.159
+ 39.483 496.597 5.359 539.845 5.645 249.658 3.045
+ 39.641 496.555 5.297 539.828 5.708 249.826 3.151
+ 39.799 496.945 5.347 540.238 5.612 249.628 3.202
+ 39.957 496.909 5.245 539.592 5.655 250.296 3.160
+ 40.115 496.859 5.350 539.775 5.675 249.422 3.120
+ 40.274 496.758 5.233 539.677 5.725 250.204 3.004
+ 40.432 496.027 5.322 540.256 5.602 249.382 3.007
+ 40.590 495.920 5.181 540.212 5.715 249.623 3.093
+ 40.748 497.639 5.285 540.132 5.565 249.456 3.192
+ 40.906 496.976 5.196 539.931 5.657 249.824 3.095
+ 41.064 496.379 5.310 539.829 5.749 250.598 3.018
+ 41.222 496.593 5.279 540.368 5.738 249.866 3.087
+ 41.380 497.145 5.303 540.253 5.661 250.318 3.087
+ 41.538 496.521 5.274 540.362 5.736 250.093 2.967
+ 41.696 496.565 5.270 540.313 5.708 249.500 3.132
+ 41.855 496.485 5.433 539.843 5.692 250.285 3.028
+ 42.013 496.904 5.310 540.368 5.768 249.632 3.058
+ 42.171 496.379 5.328 540.183 5.650 248.876 2.967
+ 42.330 496.993 5.328 540.241 5.626 249.898 3.503
+ 42.488 497.469 5.271 539.642 5.747 249.289 3.141
+ 42.646 497.494 5.279 540.246 5.767 250.342 3.162
+ 42.804 496.655 5.208 539.762 5.635 249.733 2.916
+ 42.962 496.036 5.450 539.707 5.618 250.067 3.222
+ 43.120 495.950 5.416 539.387 5.789 250.330 2.985
+ 43.278 496.559 5.330 540.403 5.699 249.773 3.095
+ 43.436 496.755 5.376 540.104 5.832 249.667 3.221
+ 43.594 497.277 5.246 540.061 5.725 249.796 2.987
+ 43.753 496.792 5.338 540.090 5.723 249.317 3.247
+ 43.911 497.177 5.297 539.781 5.703 249.013 2.913
+ 44.069 497.011 5.201 540.497 5.755 250.370 3.020
+ 44.227 496.110 5.402 540.055 5.748 250.433 3.084
+ 44.385 496.361 5.337 539.930 5.766 250.114 3.281
+ 44.543 496.943 5.392 540.099 5.614 250.401 3.314
+ 44.701 496.549 5.276 539.951 5.614 249.814 3.178
+ 44.859 496.065 5.293 540.019 5.707 250.128 3.264
+ 45.016 497.060 5.319 539.010 5.670 249.921 3.104
+ 45.174 496.440 5.313 539.460 5.662 249.769 2.963
+ 45.332 496.974 5.209 539.634 5.630 250.207 3.102
+ 45.491 496.859 5.266 539.746 5.804 249.262 3.040
+ 45.649 496.478 5.253 540.267 5.857 249.482 3.092
+ 45.807 497.284 5.370 540.862 5.642 249.704 2.995
+ 45.965 497.382 5.452 540.508 5.674 250.197 2.990
+ 46.123 496.543 5.288 540.025 5.799 249.891 2.921
+ 46.281 497.525 5.340 540.590 5.647 249.528 3.309
+ 46.439 496.685 5.357 540.335 5.699 249.545 3.139
+ 46.597 496.616 5.296 540.643 5.739 250.185 2.993
+ 46.755 496.646 5.287 539.816 5.611 249.581 2.944
+ 46.913 496.866 5.328 540.318 5.649 250.275 3.101
+ 47.072 497.188 5.230 539.423 5.712 250.182 3.033
+ 47.229 496.921 5.365 540.664 5.667 249.491 3.151
+ 47.387 496.539 5.278 540.586 5.761 250.494 2.994
+ 47.545 496.865 5.233 540.125 5.802 249.294 3.085
+ 47.704 496.898 5.247 540.241 5.781 250.182 3.157
+ 47.862 497.039 5.440 540.402 5.734 250.411 3.221
+ 48.019 497.180 5.343 540.434 5.740 250.114 3.235
+ 48.177 497.041 5.413 540.764 5.815 250.221 3.101
+ 48.335 497.200 5.323 540.247 5.642 249.962 3.207
+ 48.492 497.162 5.309 540.822 5.845 250.319 3.075
+ 48.650 496.851 5.381 540.608 5.781 249.493 2.979
+ 48.809 496.788 5.399 540.836 5.682 250.244 3.021
+ 48.967 497.807 5.300 540.308 5.678 249.392 3.152
+ 49.126 496.768 5.395 539.693 5.699 249.243 3.253
+ 49.284 496.787 5.267 540.027 5.676 250.172 3.263
+ 49.442 496.927 5.281 540.880 5.654 250.031 3.216
+ 49.600 496.929 5.298 539.928 5.690 250.080 3.174
+ 49.758 497.189 5.333 540.219 5.679 250.120 3.047
+ 49.917 497.071 5.316 540.472 5.743 250.161 3.133
+ 50.075 496.610 5.353 540.314 5.661 249.981 2.994
+ 50.233 497.096 5.302 540.863 5.723 250.669 3.148
+ 50.391 496.721 5.308 540.308 5.730 249.786 2.974
+ 50.549 496.827 5.247 540.513 5.656 249.877 2.982
+ 50.708 496.348 5.213 540.235 5.773 249.668 3.089
+ 50.866 497.653 5.183 540.082 5.678 249.446 3.033
+ 51.024 497.556 5.292 540.180 5.619 250.214 3.118
+ 51.182 497.655 5.290 540.731 5.836 250.372 2.985
+ 51.340 497.286 5.362 540.497 5.796 249.413 3.051
+ 51.498 497.712 5.142 540.235 5.801 250.424 3.210
+ 51.655 496.807 5.326 540.622 5.730 249.974 3.361
+ 51.814 496.708 5.304 540.156 5.675 250.559 3.099
+ 51.972 496.477 5.323 540.311 5.647 250.385 3.102
+ 52.130 496.644 5.216 540.583 5.713 248.963 3.183
+ 52.289 497.236 5.295 540.545 5.739 249.979 3.166
+ 52.447 497.162 5.349 540.155 5.652 249.369 3.076
+ 52.605 497.271 5.227 540.751 5.625 249.773 2.993
+ 52.763 497.162 5.316 540.317 5.650 250.637 2.959
+ 52.921 497.421 5.327 540.133 5.647 249.836 3.121
+ 53.079 497.014 5.392 540.351 5.708 249.188 3.065
+ 53.237 496.930 5.486 540.603 5.599 249.721 3.060
+ 53.395 497.119 5.468 540.926 5.710 251.107 3.142
+ 53.554 497.011 5.279 540.269 5.679 249.541 3.180
+ 53.712 497.340 5.405 539.662 5.701 249.685 3.127
+ 53.870 497.093 5.270 540.246 5.634 249.876 2.927
+ 54.028 497.000 5.398 540.312 5.828 249.208 3.354
+ 54.186 497.190 5.296 540.493 5.638 250.642 3.062
+ 54.344 497.351 5.285 540.334 5.760 250.266 3.153
+ 54.502 497.563 5.293 540.173 5.756 249.392 3.069
+ 54.660 497.075 5.352 540.541 5.799 250.003 3.070
+ 54.818 496.970 5.254 540.705 5.647 249.870 3.159
+ 54.976 496.899 5.385 540.227 5.762 249.938 3.122
+ 55.134 496.889 5.422 540.512 5.734 249.729 3.134
+ 55.293 496.338 5.310 539.925 5.697 250.707 3.246
+ 55.451 497.373 5.328 540.189 5.646 249.837 3.204
+ 55.609 497.123 5.275 540.461 5.700 250.718 2.851
+ 55.767 496.861 5.301 539.934 5.679 249.707 3.079
+ 55.925 497.378 5.200 540.429 5.736 250.357 3.048
+ 56.083 497.213 5.316 539.954 5.645 249.703 3.115
+ 56.242 496.202 5.351 540.269 5.747 249.967 3.175
+ 56.400 496.342 5.362 540.262 5.754 249.909 2.951
+ 56.558 496.973 5.417 540.282 5.705 250.049 3.045
+ 56.716 497.169 5.327 539.462 5.781 249.760 3.112
+ 56.874 497.571 5.308 539.704 5.754 249.717 3.176
+ 57.033 496.645 5.255 539.937 5.612 249.827 3.006
+ 57.191 496.946 5.295 540.079 5.759 250.068 3.007
+ 57.349 496.749 5.404 540.100 5.716 250.170 3.048
+ 57.507 496.787 5.229 540.191 5.661 249.811 2.978
+ 57.665 496.667 5.264 540.171 5.799 249.358 3.446
+ 57.823 497.336 5.438 540.081 5.740 250.793 2.994
+ 57.982 497.833 5.364 540.690 5.738 249.817 2.846
+ 58.140 497.338 5.330 539.986 5.758 249.478 2.983
+ 58.298 497.323 5.297 540.729 5.688 250.194 3.035
+ 58.456 496.393 5.294 540.477 5.680 249.161 3.225
+ 58.614 497.133 5.499 540.844 5.713 249.791 3.224
+ 58.772 497.061 5.262 540.448 5.680 249.327 3.013
+ 58.930 497.320 5.324 540.414 5.624 250.483 3.001
+ 59.088 497.203 5.324 540.234 5.750 250.114 3.132
+ 59.246 497.182 5.284 540.112 5.745 249.881 3.148
+ 59.404 496.391 5.320 540.491 5.649 250.068 3.080
+ 59.562 497.323 5.326 540.544 5.730 250.150 3.228
+ 59.720 497.323 5.497 540.645 5.688 249.621 3.150
+ 59.878 496.543 5.306 539.596 5.662 249.306 2.936
+ 60.036 496.255 5.236 540.006 5.668 249.593 2.987
+ 60.195 496.562 5.367 539.790 5.711 249.765 2.913
+ 60.353 497.335 5.286 540.028 5.629 249.147 3.034
+ 60.511 496.453 5.231 540.070 5.669 250.861 3.092
+ 60.669 497.274 5.332 540.150 5.707 250.388 3.104
+ 60.827 496.882 5.250 539.651 5.720 250.043 3.114
+ 60.985 497.218 5.355 540.156 5.815 249.810 3.153
+ 61.143 496.932 5.196 540.341 5.658 250.028 3.087
+ 61.301 496.519 5.418 540.143 5.654 250.280 3.040
+ 61.459 496.675 5.297 540.031 5.759 249.922 3.341
+ 61.617 497.406 5.274 539.750 5.700 249.879 3.212
+ 61.775 497.774 5.329 539.697 5.713 250.098 3.191
+ 61.934 496.737 5.215 540.477 5.665 250.231 3.282
+ 62.091 496.307 5.319 539.814 5.663 250.642 2.953
+ 62.249 496.353 5.410 540.318 5.756 249.856 3.147
+ 62.408 497.773 5.279 539.713 5.780 249.568 3.144
+ 62.566 496.967 5.389 539.737 5.652 249.715 3.088
+ 62.724 497.359 5.397 540.357 5.640 249.137 3.185
+ 62.881 496.803 5.247 539.573 5.781 249.671 3.078
+ 63.040 497.028 5.338 540.505 5.656 249.846 3.209
+ 63.198 497.330 5.311 540.385 5.747 250.488 3.192
+ 63.355 497.053 5.303 540.113 5.630 250.034 3.169
+ 63.513 496.990 5.357 540.431 5.756 250.190 2.990
+ 63.672 497.239 5.251 540.134 5.716 249.171 2.976
+ 63.830 497.082 5.306 540.691 5.655 250.361 3.190
+ 63.988 497.460 5.449 540.426 5.763 249.913 3.173
+ 64.145 497.274 5.264 540.534 5.817 250.169 3.021
+ 64.304 496.502 5.266 540.435 5.731 249.591 3.013
+ 64.461 496.915 5.226 540.524 5.750 250.605 3.213
+ 64.619 497.059 5.341 540.385 5.746 250.026 3.054
+ 64.777 496.760 5.358 540.433 5.807 249.750 2.932
+ 64.936 497.047 5.378 540.194 5.737 250.147 3.027
+ 65.094 496.370 5.257 540.261 5.725 250.301 2.938
+ 65.252 497.083 5.481 540.682 5.685 249.873 3.003
+ 65.410 496.940 5.349 539.526 5.707 248.888 3.429
+ 65.568 496.669 5.259 539.895 5.677 250.168 3.051
+ 65.726 496.906 5.238 540.439 5.738 249.831 3.127
+ 65.884 496.979 5.268 540.314 5.712 249.788 2.991
+ 66.042 496.779 5.233 540.493 5.852 249.887 2.972
+ 66.201 496.757 5.276 539.444 5.656 250.098 3.153
+ 66.359 497.107 5.321 539.994 5.692 249.911 3.136
+ 66.517 496.571 5.273 540.159 5.672 249.879 3.286
+ 66.675 496.895 5.435 540.041 5.741 249.938 3.182
+ 66.834 497.478 5.263 540.090 5.817 250.439 2.983
+ 66.992 497.674 5.232 540.811 5.691 249.454 3.171
+ 67.150 496.716 5.259 539.788 5.750 249.864 3.155
+ 67.308 496.747 5.255 539.887 5.682 250.248 2.995
+ 67.466 496.757 5.357 539.988 5.655 249.862 2.917
+ 67.624 497.127 5.320 539.919 5.733 250.068 3.216
+ 67.783 497.281 5.309 540.609 5.695 249.710 3.215
+ 67.941 497.022 5.388 540.676 5.646 250.247 3.420
+ 68.099 497.030 5.409 540.166 5.735 249.862 3.035
+ 68.257 496.650 5.318 540.191 5.673 249.448 3.148
+ 68.415 496.936 5.268 539.931 5.616 249.854 3.077
+ 68.573 496.859 5.373 539.829 5.637 249.948 3.293
+ 68.731 497.298 5.344 539.938 5.645 250.419 3.082
+ 68.889 496.852 5.289 540.099 5.607 249.944 3.075
+ 69.047 497.208 5.417 540.871 5.700 249.649 3.183
+ 69.205 496.572 5.289 540.868 5.662 249.586 3.019
+ 69.363 496.985 5.272 540.618 5.737 249.745 3.282
+ 69.521 497.029 5.309 539.836 5.764 249.897 3.292
+ 69.679 496.680 5.229 540.748 5.743 250.228 3.168
+ 69.837 496.666 5.310 540.287 5.675 250.212 3.166
+ 69.995 496.916 5.326 540.722 5.643 249.222 3.089
+ 70.153 497.239 5.288 540.227 5.696 249.692 3.179
+ 70.312 496.592 5.338 540.472 5.663 249.716 3.079
+ 70.470 496.705 5.362 540.434 5.624 249.947 3.007
+ 70.628 497.257 5.300 540.394 5.693 250.189 3.039
+ 70.786 497.002 5.241 540.214 5.711 249.131 3.157
+ 70.944 497.340 5.364 540.702 5.684 250.601 3.219
+ 71.101 497.173 5.347 539.917 5.750 249.686 3.106
+ 71.259 497.021 5.240 540.719 5.639 250.276 2.957
+ 71.417 497.790 5.397 539.707 5.671 250.192 3.227
+ 71.575 497.457 5.330 540.267 5.639 249.761 3.064
+ 71.733 497.274 5.315 539.542 5.684 249.587 3.274
+ 71.891 497.372 5.297 540.195 5.738 249.795 3.199
+ 72.048 496.563 5.259 540.602 5.732 249.737 3.053
+ 72.207 497.025 5.281 540.436 5.696 249.957 3.287
+ 72.365 497.230 5.495 540.184 5.714 250.309 3.072
+ 72.523 496.432 5.216 539.941 5.698 249.433 3.001
+ 72.681 497.294 5.263 539.969 5.700 249.994 3.141
+ 72.839 496.663 5.286 540.499 5.753 249.619 3.245
+ 72.997 496.686 5.244 539.685 5.726 250.156 3.019
+ 73.155 496.876 5.220 540.406 5.635 249.281 3.054
+ 73.313 496.688 5.267 540.384 5.635 249.962 2.960
+ 73.472 496.396 5.291 539.683 5.612 249.999 3.022
+ 73.630 497.244 5.190 540.546 5.691 249.650 3.120
+ 73.788 496.692 5.329 539.995 5.760 250.186 3.050
+ 73.946 497.447 5.306 540.419 5.695 250.341 3.061
+ 74.104 497.044 5.356 540.464 5.683 249.363 3.007
+ 74.262 496.940 5.313 540.494 5.724 250.563 3.277
+ 74.420 496.749 5.523 540.534 5.845 249.905 2.959
+ 74.579 496.877 5.274 540.745 5.748 249.649 3.135
+ 74.737 496.548 5.454 539.887 5.670 249.866 3.262
+ 74.895 497.115 5.219 540.098 5.665 249.958 3.278
+ 75.053 496.801 5.386 540.121 5.694 249.789 3.035
+ 75.211 497.038 5.389 540.241 5.584 249.327 3.175
+ 75.369 497.900 5.387 539.832 5.638 250.273 3.247
+ 75.526 497.379 5.269 540.568 5.687 249.342 3.193
+ 75.684 497.573 5.304 540.605 5.753 250.033 3.121
+ 75.842 497.185 5.301 540.696 5.694 250.090 3.018
+ 76.000 497.271 5.459 540.777 5.668 249.980 3.060
+ 76.159 496.972 5.313 540.767 5.666 249.959 2.996
+ 76.318 496.699 5.287 540.657 5.680 250.029 3.088
+ 76.476 497.347 5.277 540.526 5.674 249.940 3.249
+ 76.634 497.453 5.204 540.715 5.687 249.869 3.078
+ 76.792 497.134 5.368 540.387 5.775 249.168 3.076
+ 76.951 496.811 5.273 540.753 5.745 249.791 3.162
+ 77.109 497.298 5.366 540.947 5.613 249.497 3.082
+ 77.267 496.793 5.219 540.549 5.697 249.734 2.967
+ 77.425 497.617 5.260 540.535 5.701 249.677 3.137
+ 77.583 497.336 5.252 540.485 5.673 249.916 3.230
+ 77.742 496.883 5.255 540.014 5.584 249.719 3.171
+ 77.900 497.148 5.304 539.870 5.694 249.697 3.022
+ 78.058 496.931 5.270 540.228 5.646 249.857 3.017
+ 78.216 497.399 5.336 540.202 5.660 249.508 2.958
+ 78.374 496.784 5.362 540.842 5.800 250.425 3.157
+ 78.532 497.047 5.326 540.068 5.637 249.654 3.149
+ 78.690 497.410 5.390 540.640 5.787 250.456 3.116
+ 78.848 497.224 5.206 540.386 5.754 250.284 3.244
+ 79.006 496.562 5.316 540.813 5.674 250.412 3.027
+ 79.164 496.935 5.359 541.098 5.762 249.954 2.996
+ 79.323 497.009 5.298 541.031 5.633 249.729 3.076
+ 79.481 497.050 5.366 540.570 5.748 249.777 3.029
+ 79.639 497.280 5.355 541.545 5.704 249.427 3.134
+ 79.797 496.802 5.265 540.155 5.713 250.254 3.050
+ 79.955 497.088 5.320 540.521 5.708 249.972 3.164
+ 80.113 497.220 5.295 540.635 5.707 249.679 3.042
+ 80.272 496.752 5.529 540.306 5.692 250.416 3.083
+ 80.430 497.357 5.315 540.473 5.758 249.674 3.214
+ 80.587 497.503 5.269 540.954 5.660 249.636 3.002
+ 80.745 496.575 5.241 539.859 5.708 249.766 3.014
+ 80.904 497.535 5.282 540.328 5.761 249.827 3.319
+ 81.062 497.065 5.317 540.923 5.729 249.708 2.861
+ 81.219 497.540 5.322 540.299 5.674 250.197 3.047
+ 81.377 497.405 5.396 539.983 5.820 250.031 3.207
+ 81.536 496.024 5.284 540.399 5.642 249.480 2.941
+ 81.694 497.250 5.275 540.664 5.711 249.704 2.988
+ 81.852 497.492 5.326 539.886 5.685 250.847 3.111
+ 82.010 496.924 5.276 540.638 5.745 249.818 3.293
+ 82.168 497.399 5.295 541.136 5.781 249.808 3.205
+ 82.326 496.894 5.243 540.171 5.732 250.008 2.974
+ 82.483 496.389 5.290 540.461 5.749 249.650 3.098
+ 82.641 496.903 5.340 540.534 5.730 249.936 3.237
+ 82.799 496.919 5.403 540.245 5.712 249.419 3.056
+ 82.958 496.399 5.349 540.392 5.702 250.344 3.226
+ 83.116 497.374 5.416 540.473 5.819 250.123 3.137
+ 83.274 497.183 5.303 540.924 5.741 250.101 3.227
+ 83.432 496.851 5.374 540.129 5.725 249.601 3.089
+ 83.590 496.978 5.293 540.141 5.701 250.476 3.223
+ 83.748 496.909 5.326 540.491 5.827 249.844 3.039
+ 83.906 496.669 5.299 540.244 5.685 249.828 3.030
+ 84.064 497.196 5.202 540.612 5.663 250.728 2.966
+ 84.222 496.972 5.234 540.546 5.793 249.777 2.980
+ 84.380 497.539 5.192 540.475 5.655 250.767 3.297
+ 84.538 497.335 5.374 540.614 5.683 250.107 3.157
+ 84.696 496.973 5.388 540.676 5.653 250.331 3.049
+ 84.854 497.409 5.352 540.386 5.721 249.843 3.135
+ 85.013 496.994 5.268 540.363 5.748 250.008 3.251
+ 85.171 497.239 5.291 540.523 5.762 250.330 3.201
+ 85.329 496.952 5.299 540.425 5.665 250.073 3.195
+ 85.487 496.899 5.416 540.434 5.670 250.220 3.211
+ 85.646 497.089 5.373 541.154 5.740 249.432 3.027
+ 85.803 497.450 5.299 540.631 5.644 250.284 3.093
+ 85.961 497.054 5.499 540.346 5.687 249.882 3.023
+ 86.119 497.290 5.271 540.583 5.729 250.288 3.266
+ 86.277 497.492 5.243 540.355 5.661 250.072 2.994
+ 86.435 497.344 5.293 541.213 5.707 249.560 3.363
+ 86.593 497.523 5.335 540.642 5.673 250.295 3.106
+ 86.751 497.535 5.344 540.466 5.671 250.282 2.952
+ 86.909 496.625 5.344 540.134 5.668 250.142 2.866
+ 87.067 496.556 5.340 540.461 5.687 250.211 3.143
+ 87.225 496.785 5.293 539.874 5.711 249.652 2.991
+ 87.384 497.437 5.250 539.798 5.598 250.076 3.097
+ 87.542 497.394 5.391 540.628 5.660 249.510 3.225
+ 87.700 496.833 5.504 539.936 5.744 250.295 3.147
+ 87.858 497.398 5.254 541.399 5.714 250.032 3.008
+ 88.016 496.603 5.298 540.954 5.660 249.500 2.975
+ 88.174 496.576 5.457 540.509 5.602 249.935 3.005
+ 88.332 497.795 5.370 540.385 5.656 250.609 3.060
+ 88.490 497.967 5.292 540.213 5.698 249.796 3.191
+ 88.648 496.609 5.264 539.692 5.740 250.577 3.005
+ 88.806 496.766 5.344 540.236 5.715 249.925 3.007
+ 88.965 496.747 5.262 540.142 5.640 250.099 3.207
+ 89.123 496.967 5.429 539.541 5.721 250.151 3.246
+ 89.281 496.679 5.363 540.205 5.664 249.721 3.024
+ 89.439 497.066 5.230 540.222 5.656 249.797 3.169
+ 89.596 496.960 5.390 540.302 5.749 249.437 3.039
+ 89.755 496.719 5.206 540.293 5.684 250.374 3.269
+ 89.912 496.767 5.382 540.103 5.639 250.743 3.025
+ 90.070 497.087 5.263 540.181 5.653 250.037 2.989
+ 90.228 496.830 5.333 540.111 5.704 250.660 3.037
+ 90.386 496.718 5.326 540.071 5.599 249.496 3.119
+ 90.544 496.407 5.325 539.670 5.699 250.315 3.164
+ 90.702 496.284 5.240 540.286 5.648 249.403 3.270
+ 90.860 497.042 5.348 539.992 5.766 250.364 2.982
+ 91.018 497.260 5.260 540.630 5.712 250.043 3.075
+ 91.176 497.262 5.279 540.686 5.703 250.200 3.076
+ 91.335 496.832 5.275 540.206 5.684 249.792 3.175
+ 91.493 497.238 5.287 540.532 5.721 249.717 3.100
+ 91.651 497.222 5.208 540.035 5.712 249.867 3.269
+ 91.809 497.212 5.435 540.690 5.694 249.828 2.953
+ 91.967 497.352 5.355 540.456 5.706 249.868 3.005
+ 92.125 497.023 5.286 540.264 5.797 249.908 3.219
+ 92.283 496.030 5.451 540.282 5.790 249.419 3.123
+ 92.441 496.430 5.456 540.202 5.680 249.664 3.280
+ 92.598 497.544 5.404 540.332 5.645 249.776 3.068
+ 92.757 497.475 5.225 540.153 5.639 250.317 3.229
+ 92.914 497.104 5.405 540.771 5.733 249.913 2.997
+ 93.073 497.181 5.310 540.227 5.664 249.249 2.934
+ 93.230 496.931 5.213 540.612 5.722 250.672 3.184
+ 93.388 496.819 5.392 540.106 5.667 249.156 3.132
+ 93.547 497.568 5.363 540.661 5.771 249.921 3.071
+ 93.705 497.195 5.222 539.846 5.707 249.399 3.123
+ 93.863 497.332 5.354 540.378 5.772 250.064 3.118
+ 94.021 496.983 5.348 540.453 5.664 249.600 3.253
+ 94.179 497.029 5.304 541.054 5.665 249.716 2.932
+ 94.336 497.210 5.267 540.570 5.643 249.367 3.073
+ 94.494 497.202 5.308 540.325 5.613 250.753 3.257
+ 94.652 497.162 5.360 540.713 5.769 250.297 3.123
+ 94.810 496.551 5.253 540.127 5.733 249.792 3.330
+ 94.968 497.025 5.349 540.831 5.644 249.647 3.253
+ 95.126 497.150 5.294 541.298 5.731 250.496 3.303
+ 95.283 497.331 5.235 540.763 5.752 249.584 3.195
+ 95.441 496.923 5.247 540.717 5.785 249.905 3.239
+ 95.600 497.529 5.228 540.167 5.727 250.549 3.176
+ 95.757 497.475 5.229 540.451 5.732 250.295 3.089
+ 95.915 496.944 5.310 540.694 5.688 250.182 3.033
+ 96.073 496.929 5.317 541.257 5.692 249.091 3.026
+ 96.231 497.249 5.403 540.872 5.697 249.980 3.199
+ 96.390 497.442 5.379 540.118 5.829 250.309 3.178
+ 96.548 497.334 5.220 540.121 5.719 250.743 3.007
+ 96.706 496.983 5.426 540.431 5.669 250.087 3.119
+ 96.864 496.999 5.261 540.254 5.608 250.010 3.007
+ 97.022 497.240 5.274 540.392 5.644 250.240 3.150
+ 97.181 497.172 5.346 540.403 5.630 250.662 3.199
+ 97.339 496.721 5.273 540.214 5.705 250.996 3.164
+ 97.498 497.477 5.320 539.402 5.664 250.349 2.995
+ 97.656 496.944 5.368 540.224 5.779 250.363 3.014
+ 97.814 496.329 5.339 539.892 5.681 250.643 2.994
+ 97.972 497.153 5.404 540.449 5.679 250.066 3.179
+ 98.130 497.161 5.290 541.124 5.726 250.480 3.005
+ 98.288 497.251 5.515 540.461 5.729 250.054 3.108
+ 98.447 497.142 5.348 540.814 5.743 249.620 3.062
+ 98.605 497.161 5.309 540.698 5.604 250.306 3.225
+ 98.762 497.031 5.321 540.027 5.703 250.283 2.979
+ 98.920 497.610 5.418 540.650 5.687 250.672 2.933
+ 99.078 497.256 5.370 540.026 5.673 249.746 3.284
+ 99.236 497.162 5.240 540.420 5.630 249.947 3.150
+ 99.394 497.271 5.246 540.354 5.679 249.709 3.173
+ 99.552 498.002 5.285 540.513 5.697 250.907 3.006
+ 99.710 497.580 5.314 540.615 5.737 250.049 3.175
+ 99.868 497.355 5.273 540.496 5.722 249.900 2.931
+100.027 497.353 5.300 540.675 5.728 249.619 3.061
+100.185 497.443 5.324 540.226 5.655 250.556 3.037
+100.343 497.274 5.373 540.952 5.631 250.025 3.134
+100.501 497.092 5.313 540.679 5.728 250.350 3.104
+100.659 497.330 5.340 540.336 5.679 250.413 3.074
+100.817 496.963 5.506 541.013 5.617 250.074 2.995
+100.975 496.859 5.247 540.570 5.802 250.250 3.271
+101.133 496.978 5.277 540.495 5.805 250.202 3.205
+101.291 496.849 5.381 540.194 5.882 249.932 3.153
+101.450 497.278 5.291 539.842 5.753 250.179 3.237
+101.608 496.442 5.336 540.548 5.696 250.011 3.021
+101.766 497.544 5.333 540.745 5.697 249.860 3.280
+101.924 496.885 5.287 540.207 5.742 250.798 3.018
+102.083 496.798 5.311 540.092 5.751 250.437 3.161
+102.241 497.638 5.184 540.210 5.746 248.964 2.946
+102.399 497.146 5.233 540.342 5.720 249.339 3.137
+102.557 496.861 5.270 540.263 5.709 249.493 2.952
+102.715 497.178 5.345 540.212 5.630 250.274 2.972
+102.873 497.461 5.265 541.602 5.767 250.172 3.079
+103.031 496.954 5.307 540.216 5.703 250.511 3.235
+103.189 497.199 5.423 540.642 5.717 250.135 3.115
+103.347 497.012 5.308 540.656 5.681 250.271 3.154
+103.505 497.500 5.247 540.366 5.634 250.162 2.964
+103.663 497.125 5.283 540.633 5.806 250.001 3.201
+103.821 497.381 5.306 540.786 5.729 250.140 3.181
+103.979 497.013 5.377 539.787 5.644 249.981 3.112
+104.137 497.510 5.367 540.537 5.617 249.739 3.324
+104.294 497.225 5.360 540.435 5.662 249.957 3.169
+104.452 497.062 5.372 540.504 5.679 250.309 3.156
+104.610 496.980 5.310 541.045 5.724 250.673 3.147
+104.768 497.339 5.341 540.420 5.739 250.656 3.138
+104.926 497.513 5.323 539.874 5.663 250.296 3.086
+105.084 497.055 5.325 540.628 5.667 249.482 3.076
+105.241 496.890 5.265 540.326 5.727 250.494 3.079
+105.400 496.888 5.370 540.503 5.706 250.304 3.221
+105.558 497.028 5.312 540.865 5.669 250.373 2.956
+105.716 496.880 5.263 540.488 5.708 249.903 3.204
+105.874 497.288 5.337 540.874 5.680 249.489 2.955
+106.032 497.742 5.316 541.058 5.632 250.164 2.977
+106.190 497.217 5.325 540.310 5.667 250.751 3.050
+106.348 497.572 5.188 540.903 5.814 250.057 3.270
+106.506 497.185 5.278 540.549 5.730 250.040 3.313
+106.664 497.831 5.359 540.405 5.681 250.420 3.060
+106.822 497.428 5.267 540.524 5.722 250.044 3.155
+106.980 497.294 5.390 540.585 5.636 249.980 3.117
+107.138 497.142 5.273 540.355 5.743 250.379 3.233
+107.296 497.231 5.235 540.303 5.785 249.873 3.105
+107.454 496.902 5.282 540.493 5.696 249.668 3.172
+107.613 497.189 5.267 540.725 5.625 250.296 3.306
+107.770 497.091 5.307 539.897 5.767 249.912 3.204
+107.928 496.960 5.263 540.079 5.697 250.669 3.153
+108.087 497.329 5.273 540.010 5.757 249.966 3.318
+108.245 497.323 5.314 539.850 5.706 250.399 3.319
+108.403 496.943 5.504 541.078 5.716 250.324 2.999
+108.561 496.629 5.306 540.620 5.644 249.153 3.273
+108.719 496.376 5.299 540.376 5.697 249.861 3.265
+108.877 497.253 5.257 540.183 5.682 250.508 3.263
+109.035 496.832 5.337 539.951 5.680 249.595 3.130
+109.193 497.028 5.338 540.329 5.753 249.745 3.085
+109.351 497.410 5.229 539.943 5.671 249.967 3.179
+109.509 497.354 5.283 540.169 5.764 249.949 2.975
+109.668 496.813 5.227 540.331 5.688 249.629 3.117
+109.826 497.318 5.371 540.633 5.698 250.066 2.955
+109.984 496.903 5.315 540.646 5.636 250.330 3.068
+110.142 496.679 5.340 540.586 5.779 250.123 3.165
+110.300 497.266 5.399 540.225 5.740 250.661 3.182
+110.459 497.292 5.297 540.682 5.690 249.416 3.317
+110.617 497.522 5.330 540.916 5.628 251.114 2.975
+110.775 496.745 5.256 539.799 5.756 250.141 3.026
+110.933 496.947 5.364 539.898 5.604 250.431 3.130
+111.091 496.829 5.258 540.729 5.671 250.184 3.090
+111.249 496.568 5.290 540.247 5.703 249.541 3.152
+111.408 497.095 5.233 540.662 5.649 250.175 2.905
+111.565 497.060 5.335 540.576 5.661 251.071 2.871
+111.723 497.160 5.240 540.425 5.702 249.810 3.129
+111.881 497.861 5.237 540.874 5.735 249.978 2.951
+112.040 497.548 5.347 540.308 5.777 250.469 3.123
+112.198 497.155 5.376 539.993 5.702 249.644 2.914
+112.356 497.061 5.357 540.659 5.680 250.446 3.478
+112.514 497.070 5.317 540.466 5.720 250.404 3.089
+112.672 497.130 5.342 540.164 5.642 250.054 3.081
+112.829 497.291 5.250 540.501 5.771 250.870 3.156
+112.987 497.132 5.236 540.195 5.679 250.608 3.027
+113.145 497.611 5.274 539.972 5.743 250.466 3.009
+113.303 497.496 5.193 540.099 5.785 250.594 3.255
+113.461 497.535 5.381 540.621 5.807 249.695 3.189
+113.619 497.085 5.271 540.496 5.788 250.366 3.223
+113.776 496.680 5.186 540.385 5.693 249.943 3.107
+113.935 497.126 5.346 541.403 5.734 249.799 2.890
+114.093 497.271 5.238 540.374 5.656 249.448 3.060
+114.251 497.302 5.305 540.763 5.671 250.304 3.190
+114.408 497.573 5.248 541.057 5.627 250.593 3.138
+114.566 497.695 5.257 540.570 5.766 249.855 3.073
+114.725 496.967 5.297 540.105 5.684 249.568 3.067
+114.883 497.049 5.254 540.081 5.689 250.505 3.091
+115.041 497.390 5.365 540.610 5.636 250.075 3.108
+115.199 497.963 5.454 540.356 5.675 250.240 3.004
+115.357 497.649 5.308 540.983 5.678 250.252 2.971
+115.515 497.136 5.297 540.739 5.740 250.202 3.090
+115.673 497.601 5.193 540.227 5.694 249.612 2.908
+115.832 497.276 5.298 540.482 5.656 250.196 3.190
+115.989 497.122 5.332 540.554 5.695 250.232 3.316
+116.147 497.251 5.241 540.745 5.710 250.332 3.043
+116.305 497.902 5.332 540.587 5.682 250.123 3.000
+116.463 496.789 5.348 540.445 5.704 249.541 3.202
+116.621 496.867 5.296 540.094 5.694 250.275 3.243
+116.778 497.118 5.330 540.371 5.656 249.552 3.051
+116.936 497.721 5.344 540.553 5.641 250.375 3.103
+117.094 497.777 5.410 540.875 5.738 249.703 3.144
+117.253 497.717 5.417 540.318 5.661 250.537 3.058
+117.411 497.267 5.349 540.883 5.718 250.085 3.043
+117.569 496.572 5.318 540.838 5.635 249.210 3.039
+117.727 497.415 5.271 540.948 5.728 249.392 3.152
+117.885 496.394 5.293 540.509 5.703 249.913 2.963
+118.044 498.214 5.208 540.435 5.635 250.349 3.015
+118.202 497.072 5.351 540.314 5.606 250.653 3.242
+118.359 497.480 5.262 540.493 5.677 249.806 3.122
+118.518 496.884 5.247 540.505 5.637 250.068 3.182
+118.676 497.158 5.303 540.505 5.748 249.910 3.015
+118.834 496.891 5.254 540.455 5.694 250.409 3.122
+118.992 497.008 5.378 540.474 5.709 250.334 2.975
+119.150 497.560 5.291 540.584 5.789 249.883 3.364
+119.308 497.295 5.309 539.595 5.683 250.278 3.123
+119.466 497.423 5.276 540.696 5.767 249.662 3.055
+119.624 496.934 5.274 540.717 5.677 249.986 3.095
+119.783 496.839 5.218 540.417 5.685 250.109 3.106
+119.941 496.558 5.263 540.084 5.664 249.451 3.121
+120.099 496.745 5.279 539.960 5.677 250.464 3.103
+120.257 497.037 5.362 540.289 5.668 249.574 3.085
+120.415 497.300 5.316 540.643 5.731 249.925 3.297
+120.573 497.473 5.297 540.996 5.724 250.389 3.188
+120.731 497.504 5.392 540.200 5.716 250.353 3.091
+120.889 497.235 5.303 540.752 5.689 250.053 3.104
+121.047 497.702 5.318 540.857 5.662 249.840 3.246
+121.204 497.247 5.216 540.208 5.645 250.418 3.164
+121.362 496.842 5.180 540.492 5.669 250.434 3.097
+121.520 497.148 5.260 540.534 5.748 250.294 3.009
+121.678 497.981 5.233 541.055 5.803 250.652 3.336
+121.836 497.039 5.377 540.590 5.699 250.026 2.988
+121.994 497.900 5.250 540.706 5.726 250.700 3.173
+122.152 497.049 5.258 540.597 5.643 250.527 2.980
+122.310 497.040 5.322 540.516 5.687 249.875 3.093
+122.468 497.860 5.320 540.445 5.737 249.638 3.040
+122.626 497.298 5.267 540.674 5.625 250.676 3.159
+122.784 497.453 5.331 541.156 5.768 250.176 3.040
+122.942 497.784 5.306 540.601 5.735 250.241 3.223
+123.100 497.327 5.273 540.616 5.835 250.092 3.033
+123.259 497.683 5.182 541.066 5.645 250.070 2.979
+123.417 497.416 5.306 540.310 5.671 249.680 3.156
+123.575 498.194 5.306 540.883 5.587 250.306 2.923
+123.733 497.151 5.228 540.998 5.654 250.773 3.036
+123.891 497.251 5.247 540.460 5.693 250.047 3.177
+124.049 497.332 5.478 540.454 5.661 249.950 3.082
+124.208 497.493 5.396 540.754 5.759 250.399 3.149
+124.366 497.884 5.352 540.127 5.737 249.884 2.967
+124.524 496.698 5.275 540.631 5.745 250.018 3.208
+124.682 497.477 5.338 540.676 5.725 249.980 3.020
+124.840 496.764 5.239 540.026 5.703 250.869 3.127
+124.999 497.367 5.268 540.370 5.626 250.168 3.146
+125.156 497.023 5.175 539.733 5.567 249.941 3.102
+125.314 497.340 5.321 541.337 5.655 250.209 3.217
+125.472 497.013 5.285 540.333 5.667 250.272 2.999
+125.630 497.400 5.354 540.743 5.748 250.702 3.191
+125.787 497.014 5.342 540.357 5.769 250.277 3.370
+125.945 497.580 5.440 540.893 5.609 249.802 3.018
+126.104 497.405 5.310 540.728 5.731 250.318 3.004
+126.261 497.004 5.313 540.207 5.727 249.423 3.526
+126.419 497.600 5.373 540.642 5.659 250.234 3.084
+126.577 497.606 5.414 540.506 5.721 249.572 3.105
+126.735 497.106 5.341 540.765 5.680 249.845 2.935
+126.893 497.241 5.309 540.737 5.651 250.028 3.327
+127.052 497.342 5.247 540.487 5.735 250.340 2.994
+127.210 497.003 5.297 540.454 5.794 249.563 3.146
+127.368 497.590 5.232 540.884 5.806 250.325 2.968
+127.526 496.745 5.323 540.518 5.728 249.203 3.255
+127.684 497.047 5.258 540.735 5.686 250.272 2.973
+127.842 497.620 5.290 540.747 5.609 250.452 3.189
+128.000 497.656 5.295 540.647 5.763 249.664 3.147
+128.159 497.336 5.276 540.726 5.661 249.106 2.944
+128.317 497.423 5.338 540.637 5.726 249.851 2.925
+128.475 497.334 5.349 540.696 5.765 250.708 2.977
+128.633 498.063 5.328 540.757 5.699 249.927 3.207
+128.791 497.390 5.303 540.927 5.700 250.029 3.158
+128.949 497.153 5.341 540.779 5.686 250.900 3.229
+129.107 497.431 5.331 540.377 5.737 250.349 3.272
+129.265 497.284 5.257 540.823 5.641 250.393 3.163
+129.423 497.422 5.302 540.108 5.737 250.133 3.114
+129.581 497.424 5.301 540.911 5.676 249.801 3.102
+129.740 497.804 5.323 540.509 5.797 249.908 3.016
+129.898 497.178 5.297 540.385 5.635 250.019 3.248
+130.055 498.081 5.408 540.973 5.701 250.060 3.029
+130.214 496.670 5.323 540.379 5.689 250.720 3.271
+130.371 497.156 5.316 540.003 5.672 249.727 3.088
+130.529 497.511 5.350 541.140 5.617 250.277 3.099
+130.687 497.555 5.281 540.861 5.572 249.922 2.994
+130.845 497.455 5.286 540.608 5.679 250.049 3.154
+131.004 497.684 5.201 540.626 5.635 249.730 3.182
+131.162 497.096 5.390 540.326 5.683 249.717 3.453
+131.319 497.280 5.278 540.073 5.768 250.227 3.100
+131.477 497.422 5.274 540.340 5.660 250.422 3.217
+131.635 497.864 5.306 540.993 5.655 250.244 3.079
+131.794 498.088 5.314 540.360 5.733 249.902 3.092
+131.952 497.030 5.330 540.833 5.755 249.599 3.081
+132.110 497.600 5.291 540.328 5.765 249.986 3.140
+132.269 496.976 5.355 540.763 5.725 250.369 3.017
+132.427 497.549 5.255 540.847 5.734 250.293 3.084
+132.585 497.045 5.420 540.518 5.671 250.572 2.961
+132.743 497.020 5.287 540.935 5.662 250.105 3.065
+132.901 497.300 5.325 540.869 5.666 249.421 3.044
+133.059 497.243 5.435 541.228 5.601 249.994 3.103
+133.218 497.632 5.322 540.782 5.634 249.829 3.048
+133.376 497.446 5.302 540.717 5.735 250.568 2.909
+133.534 497.074 5.287 540.837 5.642 250.095 3.104
+133.692 497.460 5.251 540.338 5.645 249.830 3.218
+133.850 497.564 5.307 541.313 5.707 250.618 3.105
+134.008 497.575 5.217 540.803 5.610 250.256 3.147
+134.166 497.285 5.277 540.358 5.651 249.712 3.290
+134.324 497.572 5.256 541.223 5.648 249.797 3.197
+134.481 497.545 5.381 541.212 5.731 249.477 3.146
+134.639 497.115 5.249 540.422 5.642 250.174 2.943
+134.797 497.511 5.366 540.524 5.728 250.431 3.213
+134.955 497.235 5.306 540.705 5.734 250.074 3.123
+135.114 496.472 5.292 539.687 5.737 249.710 2.908
+135.272 497.274 5.368 539.826 5.689 249.577 2.815
+135.430 497.072 5.399 540.168 5.599 250.185 3.150
+135.588 497.340 5.287 540.551 5.706 249.991 3.433
+135.746 496.713 5.269 540.105 5.736 249.429 3.097
+135.904 497.687 5.382 540.711 5.767 250.194 3.164
+136.062 497.056 5.379 540.527 5.711 250.151 3.099
+136.220 497.420 5.373 540.925 5.655 250.411 3.009
+136.378 496.994 5.286 540.569 5.647 249.974 3.130
+136.536 497.309 5.194 540.735 5.664 249.589 3.211
+136.694 497.023 5.366 540.627 5.705 250.515 2.978
+136.852 497.250 5.400 540.036 5.674 250.475 3.024
+137.010 497.222 5.336 540.600 5.737 249.844 3.078
+137.168 497.912 5.257 540.856 5.763 249.938 3.235
+137.327 497.339 5.267 539.988 5.670 249.619 3.054
+137.485 497.513 5.270 540.659 5.694 250.376 3.078
+137.643 496.925 5.344 540.586 5.644 249.343 2.993
+137.801 498.149 5.274 540.585 5.634 250.283 3.030
+137.959 497.221 5.274 540.805 5.716 250.132 3.104
+138.117 496.682 5.288 540.178 5.753 250.161 2.939
+138.275 497.526 5.249 540.531 5.642 249.301 2.817
+138.433 497.865 5.365 540.415 5.831 250.003 3.010
+138.591 497.718 5.327 541.404 5.793 249.850 3.221
+138.749 497.087 5.284 540.124 5.660 250.118 3.003
+138.907 497.620 5.232 540.821 5.661 250.541 3.161
+139.065 497.056 5.298 540.788 5.685 250.215 3.326
+139.222 497.460 5.394 540.707 5.635 249.802 3.327
+139.380 497.534 5.245 540.557 5.650 250.038 2.815
+139.537 497.415 5.375 540.725 5.670 249.760 3.147
+139.695 497.544 5.421 540.767 5.625 250.327 3.117
+139.854 497.745 5.498 540.837 5.675 250.113 3.256
+140.012 497.087 5.268 541.498 5.627 249.731 3.226
+140.170 497.220 5.234 541.095 5.637 249.767 3.126
+140.327 497.242 5.257 540.481 5.793 249.667 3.196
+140.485 497.022 5.332 540.354 5.610 250.506 3.092
+140.643 497.550 5.217 540.433 5.817 249.935 3.313
+140.801 497.515 5.306 540.714 5.695 250.489 3.019
+140.959 497.815 5.320 540.757 5.814 250.664 3.018
+141.117 497.298 5.263 541.407 5.720 250.276 3.224
+141.275 497.403 5.315 540.614 5.643 249.852 3.041
+141.433 497.304 5.336 540.546 5.661 250.368 3.084
+141.591 496.813 5.305 540.505 5.636 250.633 3.056
+141.749 498.188 5.336 540.475 5.692 249.636 3.199
+141.908 496.881 5.313 540.774 5.634 249.606 3.047
+142.066 497.278 5.323 540.467 5.774 249.916 3.342
+142.224 497.272 5.278 540.394 5.642 249.659 3.168
+142.381 498.092 5.416 540.034 5.674 250.126 3.238
+142.539 497.540 5.358 540.900 5.651 250.221 3.091
+142.696 497.285 5.369 540.559 5.681 249.702 3.240
+142.854 497.072 5.308 540.185 5.702 250.677 3.105
+143.012 497.620 5.442 540.581 5.776 249.616 3.310
+143.170 496.706 5.304 540.295 5.737 250.416 3.185
+143.328 496.277 5.246 540.633 5.747 249.664 2.957
+143.487 497.062 5.336 540.346 5.729 249.916 3.211
+143.645 496.770 5.271 540.313 5.761 250.009 3.065
+143.803 496.817 5.312 540.163 5.656 249.990 3.023
+143.961 497.628 5.309 540.771 5.629 249.689 3.362
+144.119 497.466 5.296 540.527 5.785 249.756 3.131
+144.277 496.664 5.370 540.635 5.636 250.317 3.066
+144.435 497.166 5.346 540.946 5.677 250.363 3.200
+144.593 497.471 5.369 540.579 5.658 250.093 3.173
+144.751 496.954 5.235 540.485 5.792 250.350 3.089
+144.910 496.929 5.416 540.754 5.681 250.603 3.285
+145.067 496.839 5.210 540.557 5.689 249.916 3.013
+145.225 497.248 5.233 540.405 5.781 249.759 3.258
+145.383 497.072 5.176 541.174 5.702 250.597 3.553
+145.540 497.470 5.234 540.431 5.668 250.515 3.144
+145.698 497.074 5.230 540.804 5.739 249.715 3.190
+145.856 497.710 5.270 540.958 5.778 249.537 3.170
+146.014 497.257 5.322 540.889 5.642 250.205 3.242
+146.172 498.032 5.325 540.278 5.694 249.342 3.065
+146.330 497.490 5.302 540.412 5.640 250.303 3.100
+146.488 496.884 5.354 540.424 5.717 250.673 3.044
+146.646 497.718 5.270 540.794 5.711 250.636 3.164
+146.804 497.497 5.295 541.008 5.669 249.666 3.224
+146.962 497.665 5.417 540.400 5.686 250.626 3.311
+147.120 497.576 5.187 541.284 5.738 249.706 3.212
+147.279 497.815 5.352 540.442 5.724 250.727 2.924
+147.437 497.438 5.305 540.694 5.771 249.657 3.158
+147.595 497.384 5.238 540.436 5.760 250.596 2.936
+147.753 497.733 5.321 540.454 5.768 250.196 3.220
+147.911 497.177 5.509 539.764 5.676 250.001 2.937
+148.069 497.841 5.386 540.677 5.656 250.820 3.054
+148.227 497.448 5.239 540.706 5.648 250.378 3.222
+148.385 497.534 5.224 540.857 5.678 250.303 3.064
+148.543 497.645 5.419 540.698 5.578 250.023 3.084
+148.701 497.216 5.409 540.437 5.807 249.910 3.186
+148.860 497.542 5.312 540.544 5.691 250.519 3.153
+149.018 497.545 5.272 541.055 5.746 249.755 3.102
+149.176 497.145 5.310 540.870 5.779 249.467 3.241
+149.334 497.681 5.270 540.878 5.702 249.594 2.928
+149.492 497.796 5.311 540.158 5.637 249.955 3.174
+149.650 496.877 5.300 541.141 5.724 250.049 3.202
+149.808 497.908 5.261 540.721 5.691 249.960 3.124
+149.967 496.949 5.359 540.097 5.712 250.299 3.122
+150.125 497.039 5.327 540.321 5.648 250.342 3.130
+150.283 497.070 5.251 540.633 5.712 250.033 2.982
+150.441 498.090 5.230 541.026 5.589 250.230 3.037
+150.599 497.250 5.350 540.970 5.601 249.882 3.295
+150.757 497.402 5.226 540.279 5.747 249.708 3.031
+150.915 497.844 5.410 540.712 5.660 250.287 3.130
+151.073 497.748 5.427 540.517 5.675 250.212 3.167
+151.232 497.767 5.466 540.535 5.726 249.412 2.956
+151.390 497.227 5.387 540.865 5.696 249.684 3.110
+151.548 497.582 5.261 540.498 5.702 249.936 3.020
+151.706 497.555 5.429 541.035 5.639 250.389 3.178
+151.864 497.215 5.420 540.670 5.655 251.073 3.208
+152.022 497.902 5.372 541.026 5.652 250.600 3.118
+152.180 497.749 5.309 541.020 5.696 249.586 3.139
+152.338 497.527 5.448 540.430 5.814 249.555 3.083
+152.496 496.925 5.338 541.034 5.679 249.965 3.068
+152.655 497.299 5.403 540.520 5.670 249.729 3.219
+152.812 497.223 5.240 540.605 5.688 249.607 2.955
+152.971 497.522 5.330 540.936 5.730 249.826 3.386
+153.128 497.135 5.273 540.429 5.692 250.408 3.156
+153.287 497.451 5.278 540.894 5.709 250.404 3.104
+153.445 497.004 5.324 540.528 5.683 250.104 3.028
+153.603 497.120 5.263 540.795 5.749 249.791 3.313
+153.761 497.671 5.391 540.878 5.761 249.927 3.105
+153.920 497.616 5.293 540.448 5.682 250.069 3.201
+154.078 496.946 5.311 540.724 5.690 250.100 2.985
+154.236 497.559 5.313 540.537 5.731 250.351 2.950
+154.394 497.445 5.333 540.555 5.652 250.083 2.975
+154.553 497.844 5.407 540.685 5.701 250.630 3.115
+154.711 497.898 5.358 540.646 5.677 250.396 3.042
+154.869 497.999 5.269 541.376 5.677 250.353 3.094
+155.027 497.990 5.288 540.423 5.607 249.663 3.159
+155.186 497.379 5.221 540.784 5.777 250.296 2.985
+155.344 497.803 5.312 540.807 5.697 250.232 3.168
+155.502 497.618 5.492 541.268 5.755 250.022 2.978
+155.660 497.676 5.421 540.922 5.731 249.960 3.331
+155.818 497.176 5.378 540.789 5.622 249.859 3.249
+155.976 497.171 5.232 540.248 5.739 250.738 3.115
+156.134 497.641 5.373 540.242 5.713 249.847 3.018
+156.292 497.656 5.437 540.882 5.707 250.168 3.206
+156.450 497.556 5.281 540.728 5.714 250.041 3.175
+156.608 497.095 5.207 540.577 5.642 250.470 3.240
+156.766 496.940 5.278 540.645 5.783 249.374 3.290
+156.924 496.909 5.376 540.046 5.782 249.473 2.999
+157.082 496.819 5.268 540.880 5.710 249.744 3.080
+157.240 497.518 5.254 541.228 5.727 249.887 3.084
+157.398 497.055 5.344 540.502 5.728 250.198 3.005
+157.556 497.260 5.391 540.705 5.758 250.142 3.138
+157.714 497.172 5.348 540.297 5.677 249.731 3.151
+157.872 497.431 5.189 539.773 5.696 250.387 2.999
+158.030 497.294 5.389 540.397 5.612 250.563 3.359
+158.187 496.692 5.271 540.144 5.784 249.945 3.377
+158.345 496.716 5.287 540.071 5.644 250.359 3.102
+158.503 497.277 5.314 540.090 5.688 250.113 3.076
+158.661 497.302 5.376 539.910 5.665 250.851 3.262
+158.819 496.713 5.236 541.109 5.752 249.688 3.117
+158.977 497.637 5.228 540.681 5.772 250.526 3.169
+159.135 496.956 5.392 540.116 5.587 250.005 2.850
+159.293 497.249 5.236 540.391 5.662 249.740 3.093
+159.451 497.682 5.391 540.274 5.642 249.927 3.149
+159.609 497.436 5.313 540.922 5.647 249.889 3.409
+159.767 497.564 5.257 540.039 5.693 249.928 3.154
+159.925 497.205 5.375 540.350 5.650 249.899 3.027
+160.084 497.202 5.403 540.533 5.680 250.479 3.079
+160.242 496.822 5.241 540.275 5.749 249.804 3.053
+160.400 496.908 5.253 540.172 5.692 249.738 3.085
+160.558 496.739 5.282 540.171 5.691 250.477 3.088
+160.716 496.827 5.247 539.381 5.744 250.094 3.230
+160.874 496.978 5.382 539.813 5.679 249.730 3.164
+161.032 497.449 5.331 540.428 5.710 249.527 3.121
+161.190 496.974 5.292 540.614 5.724 249.855 3.319
+161.349 496.979 5.299 540.116 5.859 249.838 3.150
+161.507 497.119 5.288 540.521 5.726 250.308 3.058
+161.665 497.451 5.274 540.665 5.666 250.213 3.080
+161.822 497.804 5.496 540.526 5.725 250.202 3.109
+161.980 497.738 5.351 540.535 5.728 250.162 2.997
+162.138 497.557 5.334 540.985 5.619 250.381 2.895
+162.296 497.255 5.260 540.569 5.716 250.223 3.266
+162.454 497.522 5.302 540.125 5.730 250.192 3.205
+162.612 497.615 5.416 540.231 5.710 250.021 3.077
+162.770 497.376 5.418 540.462 5.641 249.790 3.094
+162.928 497.813 5.362 539.944 5.763 250.047 2.971
+163.086 497.528 5.350 540.899 5.678 249.870 3.144
+163.245 497.735 5.328 541.539 5.677 250.298 3.102
+163.403 497.547 5.440 541.405 5.675 250.662 3.184
+163.561 497.635 5.325 540.044 5.596 250.536 2.934
+163.719 497.476 5.445 540.750 5.703 249.435 3.049
+163.877 497.334 5.310 540.387 5.665 250.344 2.899
+164.035 497.513 5.541 540.733 5.628 250.063 3.022
+164.193 497.425 5.396 540.587 5.652 250.200 3.265
+164.351 497.404 5.365 541.055 5.693 249.822 3.523
+164.509 497.474 5.303 540.680 5.684 250.208 3.259
+164.667 497.944 5.302 540.816 5.682 250.252 3.122
+164.825 498.359 5.335 541.338 5.749 250.012 3.110
+164.983 496.983 5.420 541.153 5.686 249.510 3.023
+165.142 498.029 5.256 540.781 5.777 250.065 3.008
+165.299 498.200 5.384 541.307 5.721 250.430 3.352
+165.457 497.812 5.416 540.623 5.762 250.674 3.051
+165.615 497.478 5.380 540.666 5.676 250.676 3.197
+165.773 497.034 5.325 540.716 5.715 249.976 3.119
+165.932 497.800 5.248 540.757 5.784 249.859 3.443
+166.090 497.608 5.208 540.897 5.735 250.038 3.116
+166.248 498.456 5.245 539.889 5.718 249.220 3.375
+166.406 497.484 5.298 540.818 5.700 250.642 3.385
+166.564 498.154 5.285 540.828 5.634 250.466 2.986
+166.722 496.981 5.362 540.738 5.666 249.854 3.140
+166.880 497.809 5.332 540.737 5.585 249.838 2.994
+167.038 497.628 5.331 540.487 5.789 250.378 3.050
+167.197 497.886 5.198 541.004 5.705 249.923 3.116
+167.355 498.108 5.270 540.540 5.644 250.579 3.009
+167.513 497.501 5.342 540.645 5.679 250.105 2.989
+167.671 497.525 5.188 540.866 5.798 250.641 3.221
+167.828 497.435 5.268 540.848 5.723 250.656 3.138
+167.987 497.684 5.262 541.288 5.709 250.016 3.103
+168.145 497.346 5.286 540.652 5.725 249.890 3.250
+168.303 497.793 5.439 540.586 5.784 249.968 3.303
+168.461 497.467 5.292 540.545 5.777 250.009 3.075
+168.619 497.694 5.415 540.355 5.664 249.900 3.054
+168.778 497.436 5.506 540.973 5.655 249.779 3.172
+168.935 497.464 5.292 540.399 5.763 250.697 3.127
+169.094 497.674 5.432 540.294 5.697 249.387 3.204
+169.251 497.586 5.327 540.653 5.688 249.793 3.093
+169.410 497.615 5.305 540.886 5.709 250.287 3.160
+169.568 498.216 5.329 540.588 5.628 249.722 3.139
+169.726 497.702 5.338 540.665 5.733 250.347 3.188
+169.884 497.727 5.332 540.676 5.680 250.073 3.245
+170.042 498.057 5.318 540.486 5.785 250.390 3.038
+170.200 497.400 5.335 540.544 5.688 250.533 3.104
+170.358 497.924 5.350 540.035 5.745 249.445 3.106
+170.516 497.389 5.414 541.150 5.650 249.814 3.023
+170.674 497.713 5.317 540.761 5.649 250.618 3.269
+170.832 497.337 5.234 540.377 5.694 249.626 3.163
+170.990 497.473 5.372 540.483 5.658 250.236 2.960
+171.148 498.064 5.288 541.304 5.725 249.942 3.163
+171.306 497.520 5.375 540.543 5.689 250.319 3.126
+171.464 497.805 5.443 540.875 5.698 250.133 2.999
+171.622 497.688 5.413 540.428 5.790 250.061 3.373
+171.780 497.596 5.413 540.814 5.664 249.980 3.243
+171.938 497.865 5.466 540.688 5.641 249.429 3.336
+172.096 497.898 5.312 541.466 5.710 249.654 2.989
+172.255 498.229 5.315 541.554 5.760 250.206 3.130
+172.413 497.292 5.289 541.195 5.660 250.702 3.277
+172.571 498.212 5.228 540.692 5.782 249.587 2.935
+172.729 496.772 5.378 541.007 5.654 249.875 3.326
+172.887 498.067 5.282 540.780 5.798 250.038 3.309
+173.044 498.090 5.282 541.117 5.671 249.630 3.050
+173.202 497.610 5.297 540.771 5.705 250.266 3.220
+173.360 497.516 5.284 540.527 5.748 250.412 3.043
+173.519 497.365 5.311 540.595 5.710 250.304 3.182
+173.677 497.643 5.261 540.106 5.770 250.843 3.038
+173.835 497.826 5.441 541.251 5.677 250.268 3.164
+173.993 497.058 5.296 541.172 5.667 250.352 3.179
+174.151 497.350 5.297 540.941 5.785 250.143 3.209
+174.309 498.133 5.311 540.189 5.673 249.391 3.402
+174.466 497.101 5.186 541.161 5.669 250.193 3.238
+174.623 497.560 5.287 540.401 5.675 250.011 3.067
+174.781 497.735 5.398 540.854 5.764 249.830 2.988
+174.939 497.987 5.186 540.908 5.753 250.478 3.149
+175.098 497.949 5.443 540.869 5.630 250.234 3.132
+175.256 497.469 5.263 540.908 5.734 250.302 3.209
+175.414 497.434 5.418 540.589 5.741 249.913 3.070
+175.572 497.524 5.334 540.755 5.673 249.599 3.009
+175.730 497.615 5.223 540.897 5.792 249.816 3.050
+175.888 498.126 5.282 541.309 5.731 250.418 3.048
+176.046 497.441 5.293 540.873 5.636 249.794 3.068
+176.205 497.514 5.341 540.078 5.759 249.997 3.057
+176.364 497.755 5.282 541.140 5.614 250.390 3.172
+176.522 497.777 5.298 540.401 5.698 249.953 3.032
+176.680 498.147 5.306 541.264 5.718 249.459 3.007
+176.838 497.691 5.259 541.022 5.684 250.594 3.151
+176.996 498.066 5.341 540.950 5.594 250.015 3.087
+177.154 497.730 5.308 541.309 5.709 249.930 3.129
+177.312 497.197 5.385 540.823 5.643 249.719 3.062
+177.470 497.242 5.302 540.508 5.822 250.027 3.265
+177.628 497.702 5.353 540.385 5.649 250.040 3.108
+177.786 497.497 5.255 540.533 5.738 250.270 3.339
+177.944 497.144 5.334 540.445 5.742 250.042 2.975
+178.103 497.651 5.317 540.594 5.701 250.310 3.001
+178.261 497.446 5.272 540.876 5.622 249.853 3.217
+178.419 498.224 5.356 541.058 5.727 250.118 3.117
+178.577 497.342 5.334 540.420 5.715 250.751 3.086
+178.735 497.863 5.390 541.304 5.610 249.797 3.142
+178.893 498.208 5.250 541.083 5.711 250.678 2.954
+179.051 497.692 5.286 540.500 5.685 250.106 3.191
+179.209 497.047 5.317 540.605 5.754 250.581 3.021
+179.367 496.910 5.286 540.156 5.728 250.415 3.193
+179.525 497.779 5.265 540.801 5.691 250.034 2.986
+179.683 498.047 5.269 540.928 5.661 250.640 3.357
+179.841 497.900 5.315 541.149 5.654 249.996 3.204
+180.000 497.679 5.340 540.911 5.670 250.459 3.253
+180.157 497.326 5.262 540.409 5.700 249.704 3.045
+180.316 497.383 5.364 540.624 5.876 250.267 3.157
+180.474 497.503 5.284 540.776 5.734 250.512 3.100
+180.632 497.495 5.317 540.287 5.787 250.295 3.146
+180.790 497.584 5.219 540.642 5.733 250.092 3.001
+180.948 497.745 5.336 540.856 5.674 249.740 3.062
+181.106 497.957 5.392 540.358 5.720 250.407 3.146
+181.264 497.089 5.330 540.603 5.877 250.094 2.924
+181.422 497.150 5.313 540.996 5.589 249.050 2.997
+181.580 498.051 5.386 540.639 5.708 250.690 2.987
+181.738 497.940 5.312 541.236 5.830 249.956 3.090
+181.897 497.869 5.247 541.072 5.628 250.429 3.148
+182.054 498.158 5.360 540.720 5.698 250.424 2.906
+182.212 497.631 5.291 540.917 5.625 249.844 3.097
+182.371 497.196 5.418 540.319 5.711 249.778 3.203
+182.529 497.952 5.340 540.993 5.610 250.267 3.058
+182.687 497.999 5.308 540.580 5.769 250.552 3.051
+182.845 497.880 5.305 540.855 5.643 249.875 3.093
+183.003 498.748 5.419 541.278 5.662 249.778 3.047
+183.161 497.277 5.301 541.532 5.630 250.167 3.234
+183.319 497.272 5.276 540.555 5.748 249.881 3.142
+183.477 498.302 5.221 541.195 5.666 250.338 3.003
+183.635 496.983 5.281 540.462 5.656 250.183 3.131
+183.793 497.069 5.244 540.854 5.739 250.151 2.957
+183.951 497.810 5.338 540.108 5.844 249.791 3.305
+184.109 497.888 5.381 540.741 5.777 250.287 2.960
+184.267 497.628 5.281 540.257 5.757 250.472 3.074
+184.425 497.656 5.491 541.282 5.650 250.434 3.316
+184.583 498.096 5.512 540.912 5.795 250.104 3.416
+184.740 497.520 5.306 540.279 5.693 249.991 3.066
+184.899 497.275 5.276 540.802 5.835 251.069 3.230
+185.057 497.512 5.195 540.588 5.635 250.260 2.917
+185.215 497.505 5.520 540.956 5.738 249.452 3.321
+185.373 496.715 5.337 540.949 5.707 249.664 3.314
+185.531 498.007 5.273 540.789 5.730 250.406 3.196
+185.689 497.840 5.446 539.978 5.668 249.854 3.042
+185.847 497.658 5.240 540.879 5.638 250.218 3.293
+186.005 497.536 5.254 540.398 5.767 250.512 3.057
+186.164 497.245 5.397 540.814 5.657 249.705 3.221
+186.321 497.642 5.342 540.418 5.858 249.927 3.140
+186.480 497.246 5.376 540.584 5.684 249.339 3.003
+186.638 497.962 5.338 540.705 5.731 249.803 3.113
+186.796 497.579 5.293 540.357 5.667 250.548 3.226
+186.954 497.195 5.320 541.083 5.707 250.135 3.087
+187.112 497.102 5.304 540.070 5.722 250.091 3.009
+187.270 497.951 5.426 540.450 5.661 250.060 2.949
+187.428 497.579 5.315 540.174 5.771 251.040 3.178
+187.586 497.245 5.285 540.531 5.679 250.050 3.087
+187.744 497.402 5.339 540.055 5.648 250.470 3.105
+187.902 497.384 5.278 540.110 5.633 251.344 3.296
+188.060 497.693 5.285 540.581 5.741 250.403 3.126
+188.219 497.497 5.274 540.375 5.694 249.924 3.116
+188.377 497.605 5.179 540.603 5.734 250.129 3.267
+188.535 497.076 5.298 540.636 5.729 249.731 3.202
+188.693 497.210 5.335 540.436 5.709 250.417 3.031
+188.851 497.752 5.273 540.694 5.749 249.734 3.024
+189.010 497.607 5.314 540.886 5.739 250.017 3.047
+189.168 497.696 5.420 540.898 5.595 250.180 3.034
+189.326 497.757 5.284 540.709 5.757 250.541 3.026
+189.484 497.287 5.281 540.647 5.732 249.955 3.040
+189.642 497.252 5.156 540.466 5.668 250.439 3.124
+189.800 497.132 5.331 540.454 5.702 249.764 3.265
+189.958 497.341 5.282 540.444 5.632 250.237 3.005
+190.116 497.813 5.382 540.384 5.668 249.742 3.296
+190.274 497.798 5.331 540.733 5.673 249.667 3.289
+190.431 497.918 5.408 540.467 5.608 250.206 3.111
+190.589 497.429 5.446 540.944 5.637 250.452 3.272
+190.747 497.664 5.220 541.229 5.792 250.004 3.095
+190.905 497.896 5.370 541.312 5.723 250.630 3.000
+191.063 497.789 5.355 540.723 5.749 249.996 3.281
+191.221 498.107 5.324 540.467 5.622 250.140 3.043
+191.379 497.981 5.408 540.894 5.713 250.231 2.911
+191.538 497.119 5.257 541.079 5.670 250.272 3.032
+191.695 497.711 5.428 540.470 5.661 250.702 3.108
+191.853 497.627 5.359 541.024 5.718 250.357 3.077
+192.012 497.226 5.404 541.250 5.757 250.343 3.316
+192.169 498.112 5.394 541.432 5.667 250.023 3.123
+192.327 497.301 5.352 540.474 5.707 249.850 3.249
+192.485 497.713 5.320 541.074 5.640 250.698 3.364
+192.643 497.577 5.419 541.010 5.766 249.767 3.062
+192.801 497.885 5.412 540.880 5.642 249.897 3.078
+192.959 497.688 5.366 540.638 5.613 250.358 3.323
+193.117 497.616 5.327 540.516 5.828 250.863 3.209
+193.275 498.076 5.334 540.785 5.672 250.258 2.929
+193.433 497.590 5.233 540.687 5.634 250.242 2.982
+193.591 497.965 5.386 541.007 5.674 250.352 3.451
+193.748 497.079 5.393 540.780 5.762 250.123 3.150
+193.906 498.170 5.367 540.277 5.723 251.061 3.000
+194.064 497.651 5.353 540.672 5.616 250.360 3.226
+194.222 497.886 5.441 541.066 5.728 250.103 3.063
+194.381 497.588 5.383 540.650 5.615 249.981 2.990
+194.539 497.675 5.322 541.276 5.736 250.519 3.103
+194.697 497.416 5.347 540.702 5.648 249.125 2.978
+194.855 497.914 5.297 541.167 5.658 250.511 3.204
+195.013 497.859 5.455 541.121 5.752 250.165 3.108
+195.171 497.058 5.312 540.851 5.720 250.811 3.045
+195.329 497.060 5.250 540.868 5.685 249.968 3.240
+195.487 497.210 5.386 540.538 5.646 249.639 3.226
+195.645 497.402 5.331 540.715 5.719 250.106 3.257
+195.803 497.494 5.284 540.177 5.702 249.811 3.060
+195.961 496.574 5.419 541.101 5.657 250.408 3.040
+196.119 497.805 5.349 540.301 5.718 250.384 3.328
+196.277 497.538 5.441 540.683 5.726 250.193 3.108
+196.436 497.535 5.361 539.636 5.743 250.251 3.513
+196.593 497.075 5.503 540.726 5.829 250.852 3.112
+196.752 496.820 5.218 540.917 5.678 250.378 3.004
+196.910 496.908 5.338 540.859 5.664 250.773 3.079
+197.068 497.499 5.433 539.858 5.749 249.507 3.018
+197.226 496.855 5.215 541.328 5.593 250.755 2.979
+197.384 497.628 5.339 539.833 5.753 250.007 3.126
+197.543 497.096 5.290 540.268 5.777 250.110 3.037
+197.700 498.190 5.355 541.532 5.623 250.061 3.085
+197.858 497.361 5.369 540.555 5.604 250.210 3.091
+198.016 497.353 5.386 540.825 5.713 249.982 3.011
+198.175 497.303 5.230 540.398 5.784 249.769 2.991
+198.333 497.783 5.257 541.274 5.654 250.227 2.911
+198.491 497.977 5.306 541.002 5.649 249.852 3.044
+198.649 497.889 5.249 540.980 5.670 249.698 2.983
+198.807 498.028 5.243 541.229 5.682 250.007 2.902
+198.966 497.280 5.233 541.312 5.667 250.280 3.010
+199.123 497.462 5.297 541.093 5.679 249.802 2.955
+199.281 497.664 5.293 540.950 5.765 250.378 3.118
+199.439 497.826 5.289 541.569 5.723 249.703 3.067
+199.597 497.758 5.296 541.145 5.785 250.577 3.067
+199.755 497.747 5.384 541.051 5.710 250.515 3.041
+199.913 498.027 5.308 540.970 5.730 249.935 3.098
+200.071 497.460 5.264 540.339 5.597 250.429 3.113
+200.229 498.034 5.297 540.903 5.708 250.594 3.068
+200.388 498.050 5.284 541.299 5.820 250.555 2.923
+200.546 498.230 5.377 540.913 5.622 250.975 3.118
+200.704 498.002 5.200 541.529 5.779 250.389 3.241
+200.861 497.930 5.261 541.905 5.716 250.393 3.122
+201.019 497.399 5.285 542.079 5.833 249.823 3.044
+201.178 497.674 5.309 542.290 5.653 250.518 3.283
+201.335 498.106 5.213 542.283 5.682 250.505 3.088
+201.493 497.781 5.285 542.012 5.691 250.705 3.116
+201.651 497.607 5.256 542.420 5.730 250.437 3.103
+201.809 497.996 5.244 541.874 5.677 250.624 3.180
+201.967 498.209 5.456 542.208 5.740 250.346 3.094
+202.125 497.582 5.405 541.822 5.860 250.553 3.202
+202.283 497.475 5.227 542.438 5.665 250.965 3.256
+202.441 497.854 5.258 541.774 5.656 250.799 3.134
+202.600 498.538 5.237 542.727 5.727 250.648 3.154
+202.758 498.225 5.328 543.077 5.770 250.056 2.971
+202.916 498.492 5.410 542.680 5.730 250.290 3.085
+203.074 498.305 5.329 542.386 5.747 250.932 2.988
+203.232 498.243 5.355 542.313 5.746 250.499 3.134
+203.390 498.442 5.390 542.223 5.759 250.655 3.023
+203.548 498.194 5.315 542.692 5.744 250.906 3.013
+203.707 498.191 5.307 542.736 5.764 249.589 3.014
+203.865 497.341 5.350 541.877 5.834 250.695 2.981
+204.023 496.933 5.277 542.338 5.747 250.766 3.075
+204.181 497.619 5.390 541.983 5.702 249.957 3.052
+204.339 497.346 5.283 541.709 5.763 250.199 3.114
+204.498 498.043 5.388 542.817 5.715 250.352 3.024
+204.656 497.270 5.373 541.628 5.703 251.063 3.267
+204.814 497.282 5.314 541.866 5.708 250.540 2.944
+204.972 497.522 5.343 542.108 5.742 250.515 3.024
+205.130 497.655 5.330 541.691 5.685 250.375 3.204
+205.287 497.996 5.378 541.456 5.641 249.763 2.919
+205.446 498.110 5.371 542.824 5.737 250.557 3.012
+205.604 497.991 5.295 542.278 5.811 250.555 3.412
+205.762 497.839 5.412 543.022 5.622 250.045 3.047
+205.919 497.228 5.430 542.110 5.748 250.230 2.974
+206.077 497.532 5.328 542.041 5.732 250.592 3.222
+206.235 498.445 5.240 542.570 5.657 250.495 3.371
+206.392 497.864 5.352 541.985 5.774 250.694 3.374
+206.550 498.458 5.298 542.739 5.714 250.676 3.144
+206.708 497.974 5.401 543.177 5.688 250.346 3.264
+206.866 497.679 5.271 543.731 5.759 250.363 3.595
+207.024 497.566 5.292 544.377 5.683 250.693 3.358
+207.181 497.655 5.332 545.443 5.864 251.436 3.147
+207.339 497.636 5.436 546.894 5.782 250.594 3.233
+207.498 497.316 5.380 546.149 5.838 251.165 2.843
+207.656 497.573 5.343 546.621 5.741 250.501 3.196
+207.814 497.935 5.480 544.696 5.820 251.195 3.389
+207.972 496.989 5.378 546.067 5.869 251.341 3.238
+208.129 498.389 5.444 548.370 6.235 251.193 4.307
+208.287 498.133 5.562 547.283 5.884 250.611 3.919
+208.444 497.941 5.275 548.772 5.839 251.216 4.576
+208.602 497.679 5.231 548.137 5.743 251.132 3.160
+208.760 497.876 5.592 549.741 5.910 251.521 3.285
+208.918 498.158 5.375 547.817 5.810 251.405 3.800
+209.075 497.511 5.444 548.968 5.730 251.414 3.321
+209.233 497.765 5.434 548.339 5.776 251.114 3.190
+209.391 498.587 5.443 548.093 5.860 252.101 3.272
+209.549 497.925 5.520 550.140 5.935 250.791 3.508
+209.707 497.929 5.882 548.881 5.867 250.447 3.761
+209.865 498.439 5.453 549.588 5.934 251.074 3.292
+210.023 498.154 6.127 548.645 6.144 250.900 3.605
+210.181 498.381 5.728 549.846 5.940 251.349 3.667
+210.339 497.633 5.748 549.558 5.867 251.823 3.825
+210.497 497.816 5.329 549.615 5.845 251.178 3.256
+210.655 498.398 5.897 549.746 5.856 251.311 3.275
+210.813 498.094 5.978 549.647 5.804 250.853 4.161
+210.971 498.221 6.189 549.416 5.795 251.628 3.883
+211.129 497.962 6.216 549.734 5.957 251.056 3.072
+211.288 498.099 5.993 549.607 6.001 251.290 3.621
+211.446 499.031 6.148 550.096 5.809 251.482 3.636
+211.604 498.370 6.549 549.611 6.217 251.244 3.259
+211.762 498.893 5.484 550.026 5.837 250.972 3.893
+211.921 498.208 5.539 549.930 5.937 250.709 3.652
+212.078 498.392 5.607 549.749 5.908 251.797 3.457
+212.236 497.743 5.996 549.767 5.926 251.457 3.846
+212.394 497.937 5.661 549.527 5.956 251.174 3.436
+212.552 498.489 5.398 549.965 5.940 251.551 3.525
+212.710 498.604 5.519 549.559 5.919 251.995 3.340
+212.868 498.406 5.851 549.665 5.945 251.809 3.402
+213.026 497.684 5.694 550.156 6.164 252.368 3.499
+213.184 496.656 8.086 550.371 6.823 251.843 4.179
+213.340 497.346 6.915 550.333 6.432 251.368 3.548
+213.497 498.223 5.422 550.913 5.865 251.983 3.182
+213.656 497.722 6.106 550.479 6.233 250.769 3.624
+213.814 497.767 5.887 550.834 6.603 251.877 3.797
+213.971 498.337 5.446 550.818 6.355 251.458 3.906
+214.128 497.903 6.827 549.638 6.449 251.254 4.417
+214.286 497.639 6.885 549.796 6.204 251.662 3.492
+214.444 497.716 5.520 550.548 5.912 251.426 3.324
+214.602 498.597 5.611 549.765 5.902 250.764 3.077
+214.760 497.585 5.624 550.767 5.985 251.517 3.913
+214.918 497.735 5.938 550.367 6.322 252.015 3.255
+215.077 497.787 5.771 551.273 6.145 251.730 3.812
+215.235 498.207 5.967 550.752 6.070 251.767 3.150
+215.394 497.722 5.942 551.157 5.968 251.847 3.563
+215.551 497.917 5.523 551.061 6.120 251.098 3.567
+215.709 498.639 5.784 552.030 5.925 251.391 3.675
+215.867 499.016 5.432 551.510 5.988 251.453 3.343
+216.024 498.130 5.713 550.685 6.412 251.444 3.808
+216.182 498.431 5.486 551.336 6.434 252.324 3.877
+216.340 498.644 5.367 551.213 6.224 251.383 3.368
+216.497 497.456 5.317 550.852 6.033 252.183 3.328
+216.655 497.064 5.530 551.128 6.172 251.521 3.385
+216.812 498.400 5.703 551.071 6.395 251.845 3.485
+216.970 496.754 5.654 551.520 6.558 251.978 3.716
+217.129 497.587 5.507 550.925 5.919 251.899 3.302
+217.287 498.065 5.681 551.679 6.404 251.089 3.427
+217.446 497.810 5.410 551.806 6.200 252.160 3.612
+217.604 498.168 5.758 551.148 6.409 252.811 3.628
+217.761 497.971 5.643 551.471 6.263 251.758 3.623
+217.919 498.319 5.651 551.634 6.379 250.297 3.413
+218.076 497.753 6.040 551.746 6.325 251.012 3.626
+218.236 497.997 5.784 551.407 6.180 251.810 3.670
+218.394 498.040 5.725 552.064 6.250 251.378 3.490
+218.552 498.030 5.404 551.040 6.420 251.643 3.764
+218.710 498.010 5.549 551.630 5.905 251.666 3.385
+218.868 497.710 5.626 551.836 6.524 250.676 3.609
+219.025 498.077 5.551 552.088 6.366 252.566 3.744
+219.183 498.270 5.707 551.950 6.089 252.155 3.300
+219.341 499.332 5.482 551.819 6.544 251.071 3.550
+219.499 498.533 5.435 552.068 6.465 250.960 4.241
+219.656 498.505 5.550 551.250 6.287 252.299 3.524
+219.814 498.845 5.638 551.042 5.974 251.713 3.577
+219.971 497.998 5.622 551.660 6.017 250.367 3.572
+220.130 498.300 5.462 551.656 6.134 251.423 3.271
+220.288 497.993 5.526 551.296 6.248 252.184 3.162
+220.446 497.749 6.082 551.633 5.989 252.691 3.657
+220.604 497.857 5.497 551.386 6.329 251.346 3.025
+220.762 498.348 5.500 551.873 6.317 252.253 3.626
+220.921 497.713 5.636 552.018 6.206 252.102 3.365
+221.079 497.647 5.581 551.850 6.507 251.811 3.802
+221.237 498.156 5.923 552.458 6.200 251.498 3.420
+221.394 498.181 5.828 551.664 6.406 251.435 4.049
+221.552 497.731 5.457 551.476 6.504 251.944 3.661
+221.710 498.737 5.388 551.934 6.141 251.669 3.437
+221.868 498.267 5.507 551.979 6.277 250.796 3.546
+222.026 498.242 5.542 551.629 6.124 251.937 3.431
+222.184 498.172 5.325 551.736 5.870 251.569 2.999
+222.342 498.091 5.572 552.237 6.102 252.185 3.254
+222.500 498.600 5.404 552.772 6.030 251.621 3.251
+222.658 498.176 5.423 552.137 5.885 252.106 3.404
+222.816 497.221 5.424 552.921 6.294 250.951 3.114
+222.975 498.312 5.550 552.299 5.894 251.569 3.483
+223.133 499.303 5.636 551.763 6.037 251.365 3.509
+223.290 498.203 5.489 551.737 6.116 252.113 3.190
+223.449 499.152 5.558 551.557 5.877 252.161 3.371
+223.606 498.531 5.600 552.155 6.293 252.331 3.116
+223.764 497.875 5.452 551.551 6.082 251.643 3.303
+223.922 498.168 5.329 552.225 6.264 251.816 3.165
+224.081 497.391 5.511 551.632 6.131 251.728 4.092
+224.239 498.153 5.746 552.586 6.402 251.617 4.441
+224.397 498.091 5.735 551.765 6.431 251.806 3.161
+224.555 497.980 5.467 551.917 6.106 251.428 3.580
+224.713 498.919 5.693 553.069 6.157 251.914 3.757
+224.872 499.279 5.756 552.750 7.012 251.569 3.807
+225.029 498.552 5.543 552.427 6.266 250.715 3.353
+225.188 498.405 5.488 552.214 6.082 251.647 3.508
+225.346 497.774 5.579 552.042 6.117 252.506 3.347
+225.504 497.507 5.326 552.480 6.368 251.895 3.302
+225.662 497.815 5.446 552.634 6.049 252.188 3.456
+225.820 498.998 5.571 552.046 6.342 251.571 3.808
+225.978 498.280 5.530 552.370 6.051 251.555 3.485
+226.136 498.232 5.399 552.063 6.086 251.535 3.272
+226.294 497.922 5.587 552.060 6.007 251.315 3.406
+226.453 498.969 5.625 552.040 6.127 252.213 3.332
+226.611 497.629 5.629 551.910 6.295 251.292 3.632
+226.769 498.206 5.325 552.179 5.965 251.352 3.028
+226.927 497.682 5.566 552.291 6.169 251.993 3.595
+227.085 497.816 5.506 552.312 6.565 252.559 3.559
+227.243 498.308 5.600 552.783 6.251 252.305 3.041
+227.402 498.273 5.562 551.717 6.199 251.993 3.500
+227.560 498.002 5.689 551.917 6.152 251.059 3.289
+227.718 497.620 5.463 551.539 6.335 251.800 3.508
+227.876 498.756 5.504 551.645 6.131 252.128 3.355
+228.034 497.777 5.651 551.916 6.588 251.481 3.503
+228.192 497.587 5.880 552.449 5.973 251.234 3.338
+228.350 497.945 5.627 552.434 6.013 252.372 3.419
+228.508 498.039 5.545 552.384 6.034 251.943 3.186
+228.666 498.460 5.430 551.443 6.328 251.779 3.221
+228.825 497.764 5.592 551.574 6.098 251.567 3.691
+228.982 497.897 5.609 551.355 6.826 251.165 3.167
+229.140 498.239 5.363 552.323 6.075 252.011 3.402
+229.298 498.072 5.600 551.033 6.128 251.900 3.121
+229.456 497.460 5.535 550.740 5.890 251.999 3.221
+229.615 497.554 5.828 552.437 6.207 252.450 3.230
+229.773 496.945 5.477 551.924 5.871 251.844 3.822
+229.931 498.159 5.435 551.099 6.007 251.938 3.539
+230.088 498.061 5.421 551.101 6.116 252.069 3.158
+230.247 497.750 5.730 551.451 6.081 251.430 3.692
+230.405 497.897 5.682 551.334 5.984 251.054 3.374
+230.563 497.899 5.924 551.043 6.211 251.870 3.437
+230.721 498.869 5.539 551.190 6.269 251.208 3.370
+230.879 498.468 5.675 550.811 6.009 252.112 3.306
+231.037 498.024 5.552 549.998 6.266 251.491 3.216
+231.196 497.950 5.654 550.550 6.292 251.614 3.300
+231.353 498.319 5.370 550.495 6.406 250.556 3.592
+231.511 497.443 5.511 551.014 6.004 251.785 3.414
+231.669 497.774 5.499 550.610 6.388 250.627 3.349
+231.826 498.277 5.545 550.976 6.081 252.086 3.231
+231.984 497.982 5.673 550.519 6.094 251.440 3.748
+232.142 498.189 5.596 550.935 6.035 252.254 3.497
+232.300 497.491 5.757 550.979 6.138 250.922 3.298
+232.459 498.424 5.431 551.139 5.984 252.839 3.068
+232.617 497.914 5.446 551.271 5.946 251.058 3.977
+232.775 497.809 5.673 551.942 5.880 253.290 3.297
+232.933 497.868 5.849 551.499 6.046 252.142 3.537
+233.091 499.138 5.671 550.985 6.091 251.881 3.581
+233.249 498.061 5.513 551.689 6.266 250.578 3.720
+233.406 498.570 5.595 550.916 6.139 250.965 3.421
+233.565 498.185 5.615 550.749 6.032 252.539 3.141
+233.723 497.671 5.520 550.837 5.905 251.405 3.262
+233.881 498.786 5.741 550.178 6.348 251.674 3.236
+234.039 497.737 5.550 551.641 5.835 251.686 3.890
+234.197 497.297 5.438 550.896 6.002 251.466 3.298
+234.355 497.733 5.747 550.409 5.931 251.634 3.147
+234.514 498.017 5.629 550.904 5.972 252.086 3.114
+234.672 498.730 5.650 550.729 5.883 250.830 3.430
+234.830 498.077 5.787 551.007 6.081 251.548 3.368
+234.988 498.500 5.900 550.290 6.096 250.825 3.283
+235.146 498.355 5.486 550.962 6.086 251.068 3.316
+235.304 497.533 5.697 550.939 6.034 251.320 3.364
+235.462 497.975 5.375 550.469 6.103 251.483 3.175
+235.621 496.999 6.209 551.304 6.662 249.784 3.911
+235.779 498.240 5.638 550.323 6.055 252.277 3.327
+235.936 498.612 5.820 551.493 5.959 251.072 3.318
+236.094 497.106 5.455 551.084 5.909 251.520 3.574
+236.251 497.551 5.467 550.080 5.989 251.865 3.662
+236.409 498.615 5.546 550.610 6.139 252.108 3.805
+236.567 498.296 5.660 550.696 5.985 249.781 3.241
+236.725 499.213 5.532 550.017 5.968 250.167 3.492
+236.883 499.342 5.705 550.900 5.905 249.861 3.353
+237.041 499.203 5.755 550.809 6.029 251.118 3.594
+237.198 498.862 5.709 549.838 6.217 251.151 3.627
+237.357 498.228 5.424 551.518 6.128 250.271 3.303
+237.514 497.072 5.815 551.495 6.044 252.002 2.985
+237.673 498.190 5.858 550.644 6.035 252.210 3.287
+237.831 497.811 5.639 552.866 5.881 252.262 3.809
+237.989 496.768 5.923 551.288 6.010 250.062 5.474
+238.146 497.467 5.920 551.192 6.135 251.830 3.410
+238.304 498.424 5.868 552.032 6.134 251.848 3.712
+238.462 497.904 5.772 552.230 6.219 250.788 3.438
+238.621 497.889 5.581 551.302 6.020 249.617 4.038
+238.778 497.918 5.596 551.963 5.961 251.166 4.075
+238.936 497.529 5.649 552.259 5.839 252.251 3.852
+239.093 496.755 5.589 551.542 6.034 250.822 3.918
+239.251 494.627 5.591 551.575 6.514 251.138 3.858
+239.409 494.526 6.174 552.755 6.239 254.831 4.057
+239.567 495.215 5.908 553.027 6.088 251.868 3.442
+239.725 494.212 6.146 551.840 6.196 252.978 4.736
+239.883 495.252 6.539 552.828 6.117 253.909 3.602
+240.041 494.322 5.985 552.618 6.035 250.149 4.299
+240.198 494.163 5.577 551.416 6.036 253.551 3.450
+240.356 495.361 5.644 551.024 6.056 252.295 3.494
+240.514 494.493 5.824 551.900 5.880 251.282 3.620
+240.672 494.534 6.271 551.309 6.056 249.552 4.491
+240.829 495.365 6.264 550.433 6.143 252.695 3.790
+240.987 493.593 5.627 551.224 6.136 252.646 3.961
+241.145 492.975 5.713 552.532 6.089 252.366 3.911
+241.303 492.179 6.158 550.805 6.114 252.783 3.723
+241.461 493.081 5.887 549.958 6.190 250.487 3.556
+241.618 493.650 5.815 550.989 5.859 252.834 3.722
+241.776 493.386 5.522 550.399 6.349 252.628 4.427
+241.934 492.983 5.728 550.894 6.090 248.986 3.235
+242.093 494.829 5.719 551.079 6.007 250.739 3.634
+242.250 494.868 5.810 551.140 6.107 252.277 3.636
+242.408 494.188 5.352 550.301 5.970 252.272 3.721
+242.566 493.791 5.521 550.133 6.194 251.972 3.366
+242.724 494.827 6.229 551.851 5.964 248.619 3.585
+242.882 496.118 5.998 551.348 5.991 252.176 3.454
+243.040 495.951 5.916 551.003 6.050 253.441 4.304
+243.198 494.269 5.898 550.300 6.096 251.594 3.184
+243.356 493.312 5.858 550.693 6.159 252.235 3.145
+243.514 494.953 5.629 551.376 6.225 252.722 4.226
+243.672 492.959 5.913 550.513 6.109 251.247 5.088
+243.830 495.959 5.824 549.805 6.067 250.802 4.424
+243.988 495.839 5.894 550.058 6.082 250.748 3.598
+244.145 495.028 5.883 550.340 6.178 253.457 3.809
+244.304 495.350 5.530 549.373 6.031 252.374 4.059
+244.461 494.863 5.880 551.983 6.150 249.353 3.683
+244.619 494.288 5.541 548.389 6.074 253.273 4.601
+244.777 494.282 5.553 550.223 6.066 251.162 3.584
+244.935 493.512 6.249 549.422 6.211 252.071 4.906
+245.093 494.645 6.125 549.594 6.233 252.270 4.137
+245.251 493.336 5.819 550.446 6.715 250.782 6.469
+245.409 493.963 6.683 549.174 6.494 252.537 4.965
+245.567 494.429 6.207 550.741 6.192 253.535 3.287
+245.725 495.344 5.692 550.967 6.196 252.355 3.306
+245.883 495.963 5.764 550.419 6.319 249.143 3.564
+246.041 496.639 5.733 550.344 5.874 252.091 3.482
+246.199 496.466 5.631 549.503 6.226 253.630 3.596
+246.357 496.294 5.509 548.935 5.991 250.196 3.501
+246.515 495.713 5.480 549.849 6.267 252.332 3.784
+246.673 494.897 5.767 549.668 5.908 253.873 3.445
+246.832 495.399 6.064 550.216 5.969 251.338 3.731
+246.990 496.784 5.902 550.222 6.041 250.143 3.485
+247.148 496.737 5.820 550.792 5.812 252.551 3.728
+247.306 498.937 6.035 550.218 6.234 253.235 4.345
+247.464 493.399 5.976 550.642 5.991 243.282 4.573
+247.621 499.754 5.693 550.216 6.753 249.832 4.064
+247.780 503.787 6.013 551.622 6.696 258.868 4.378
+247.938 500.727 6.743 552.046 7.185 250.238 6.632
+248.096 496.997 8.685 552.310 6.785 248.282 6.514
+248.254 498.500 7.947 550.073 9.379 259.972 8.510
+248.411 498.655 7.536 550.280 8.266 255.189 4.532
+248.568 495.636 7.276 550.322 8.351 245.431 4.880
+248.725 500.016 6.077 551.203 6.725 250.964 3.396
+248.883 498.710 5.731 550.862 5.987 261.589 5.106
+249.042 497.237 8.802 548.988 6.486 254.375 6.078
+249.200 498.942 6.709 552.159 6.334 246.753 6.590
+249.357 502.339 6.195 550.861 7.133 256.587 4.791
+249.515 498.883 6.744 550.498 8.727 248.685 5.741
+249.673 496.188 6.632 551.465 6.482 248.616 5.464
+249.831 502.911 6.323 550.234 6.057 258.426 3.812
+249.990 498.929 5.723 551.562 6.374 249.154 4.363
+250.147 494.289 5.751 551.175 6.250 246.551 3.496
+250.305 495.712 6.269 550.921 6.373 254.265 3.489
+250.464 504.487 6.471 550.799 6.581 256.762 4.156
+250.623 494.274 5.952 551.858 7.668 249.107 5.032
+250.780 495.112 6.953 551.618 6.202 247.751 3.949
+250.938 506.141 6.478 550.616 5.924 255.887 4.125
+251.097 504.011 6.468 553.716 7.783 250.888 5.684
+251.254 499.110 6.960 551.767 6.207 245.528 4.036
+251.412 506.641 6.033 550.337 7.726 256.345 4.840
+251.570 497.706 7.292 550.443 6.048 257.473 3.640
+251.728 492.107 6.277 551.904 6.054 245.164 3.336
+251.886 497.801 5.568 551.779 6.330 249.051 3.631
+252.045 496.668 6.313 548.367 6.436 258.420 3.661
+252.204 497.526 5.581 549.773 6.703 253.384 3.854
+252.361 498.295 7.711 551.757 9.063 244.053 6.876
+252.518 499.532 9.558 550.567 9.063 244.490 8.718
+252.674 498.665 7.203 552.125 8.078 247.564 4.669
+252.832 495.356 6.910 551.571 6.602 250.805 3.879
+252.989 497.023 6.028 550.025 6.872 251.458 4.312
+253.147 499.130 6.826 553.100 6.537 251.954 3.971
+253.304 495.511 7.846 550.661 7.434 255.149 5.424
+253.461 497.755 6.027 552.176 6.203 249.451 3.984
+253.619 498.327 5.791 551.871 6.693 251.324 4.682
+253.777 498.623 5.611 550.528 7.150 254.353 3.582
+253.935 497.376 5.555 552.165 6.439 252.183 4.195
+254.092 496.773 5.594 550.401 6.823 248.981 3.697
+254.251 500.257 6.119 551.704 5.862 250.649 3.915
+254.409 501.602 6.298 552.507 6.161 250.126 3.399
+254.567 499.656 5.795 551.655 6.584 247.711 3.929
+254.725 497.826 5.760 550.716 6.127 251.107 3.502
+254.882 497.138 5.601 552.547 5.933 251.751 3.587
+255.040 496.741 5.449 552.095 6.134 253.567 3.406
+255.198 495.707 6.013 551.971 6.027 251.665 3.069
+255.356 496.207 5.700 552.219 5.887 248.026 3.308
+255.514 497.252 5.472 552.412 6.284 247.570 4.071
+255.672 498.622 6.716 552.634 6.057 248.485 6.445
+255.829 498.366 5.912 551.336 7.254 252.284 3.976
+255.987 500.513 6.259 550.853 5.980 254.212 3.492
+256.145 498.675 5.611 551.868 5.849 250.312 3.924
+256.302 496.716 5.669 552.258 6.247 247.333 3.371
+256.460 495.857 5.818 550.792 6.082 251.413 3.703
+256.619 498.008 5.815 550.548 6.455 253.564 3.899
+256.776 497.250 5.787 551.145 5.963 253.265 3.561
+256.933 496.302 6.017 549.741 5.868 249.952 3.420
+257.092 498.113 5.959 549.127 5.873 252.419 3.690
+257.250 495.481 5.549 550.851 6.185 251.674 3.504
+257.408 496.144 5.720 550.968 6.152 251.436 3.347
+257.566 499.821 5.642 550.269 6.396 255.714 3.674
+257.724 501.278 5.934 550.512 6.124 252.517 4.113
+257.881 494.892 6.534 550.655 6.446 244.125 4.204
+258.039 506.508 7.536 549.826 7.138 251.261 6.166
+258.196 491.065 8.249 552.298 7.903 252.132 9.071
+258.352 496.950 7.654 549.723 7.775 249.141 9.358
+258.509 497.559 9.894 551.147 6.654 254.241 6.137
+258.666 498.165 6.668 551.351 7.073 253.272 3.813
+258.823 495.431 6.320 551.273 6.219 245.792 3.907
+258.981 499.544 7.358 549.342 7.541 248.787 5.542
+259.139 493.205 7.457 551.243 6.921 245.177 8.322
+259.297 501.072 6.313 549.682 6.716 254.221 4.544
+259.454 494.940 5.952 548.886 6.447 251.182 5.794
+259.612 497.519 8.252 547.198 7.026 254.681 7.681
+259.769 495.465 7.709 550.362 6.574 249.456 5.229
+259.926 499.614 6.374 548.643 7.250 252.804 4.095
+260.083 502.516 6.924 550.016 6.312 251.688 3.876
+260.241 491.275 6.224 549.190 6.013 246.086 5.224
+260.399 500.622 5.933 548.891 6.264 255.570 3.613
+260.558 497.106 5.752 548.598 6.431 256.305 4.995
+260.715 491.811 6.290 549.606 6.115 246.733 4.515
+260.873 500.488 7.445 545.946 6.134 254.507 3.930
+261.031 496.694 6.064 551.739 6.037 246.585 4.677
+261.188 502.206 6.050 546.857 7.838 247.495 5.781
+261.346 503.652 6.311 547.248 6.877 257.964 5.830
+261.504 493.486 7.019 548.442 6.475 244.169 4.851
+261.661 502.054 6.751 548.684 7.611 250.851 7.105
+261.818 503.790 7.993 548.656 6.944 247.608 6.434
+261.976 499.977 5.621 548.716 6.791 254.166 4.176
+262.133 500.649 5.683 546.897 6.518 249.801 4.493
+262.291 493.956 6.419 548.989 6.702 245.708 4.055
+262.449 500.579 6.827 547.309 6.580 249.867 4.643
+262.605 498.925 6.521 546.613 6.458 248.948 5.064
+262.763 496.259 6.969 547.156 6.312 247.379 7.954
+262.920 502.092 6.546 547.091 6.246 252.243 4.588
+263.077 501.910 5.776 548.501 6.185 250.162 4.163
+263.235 499.819 5.735 547.505 6.018 248.501 2.959
+263.393 498.768 5.386 546.515 6.049 251.165 4.655
+263.551 498.157 5.654 547.925 5.974 251.651 4.484
+263.708 496.631 5.577 546.989 6.317 249.556 3.626
+263.867 497.316 5.561 547.809 5.815 250.575 3.847
+264.025 500.753 5.918 544.578 6.082 257.395 3.646
+264.184 498.407 5.910 546.345 6.202 252.473 3.434
+264.342 500.894 5.482 545.433 6.224 246.704 4.176
+264.499 503.208 5.940 546.134 6.147 245.847 4.679
+264.657 500.802 5.690 547.371 6.101 250.128 4.167
+264.816 500.428 5.666 547.113 5.974 253.931 4.173
+264.973 497.534 5.577 544.831 5.841 252.829 3.695
+265.131 497.445 5.796 544.688 6.192 249.298 3.721
+265.289 498.334 5.665 544.296 6.405 249.392 5.271
+265.446 498.293 5.675 544.313 6.248 250.183 4.206
+265.604 499.742 5.804 546.583 6.027 249.381 5.261
+265.762 499.787 5.868 544.935 6.219 248.923 4.384
+265.920 501.647 6.928 543.429 7.666 251.549 8.082
+266.077 498.686 6.744 545.984 6.069 247.865 3.548
+266.235 500.116 5.716 545.289 6.153 250.468 5.145
+266.392 499.981 5.788 545.182 6.383 249.884 3.766
+266.551 499.169 6.135 545.411 5.872 251.008 3.579
+266.709 498.931 5.542 545.154 6.164 252.880 5.209
+266.867 499.859 5.501 544.411 6.061 250.608 4.901
+267.025 499.228 5.858 543.804 6.015 252.186 4.303
+267.183 499.882 5.902 544.758 6.498 248.901 5.505
+267.341 500.688 6.049 544.507 5.896 248.299 3.689
+267.499 499.726 6.027 544.265 6.009 246.573 4.827
+267.656 500.917 7.144 543.212 5.844 251.225 5.762
+267.814 501.979 6.440 542.902 5.929 253.412 4.427
+267.972 501.139 6.025 543.189 6.079 252.584 3.745
+268.130 498.401 7.243 543.661 5.946 246.695 5.416
+268.287 501.134 6.023 544.976 6.185 247.967 3.593
+268.446 500.331 5.575 543.689 5.991 250.709 3.415
+268.604 499.193 5.755 542.576 6.018 253.397 3.975
+268.761 499.611 6.027 543.625 6.185 250.203 3.447
+268.920 500.806 6.144 544.096 6.286 248.652 4.613
+269.077 499.758 5.395 543.541 5.897 250.646 3.437
+269.235 499.137 6.351 543.205 6.046 250.486 3.655
+269.393 499.771 6.172 543.132 6.233 247.584 4.111
+269.550 499.107 5.542 543.031 6.153 250.625 3.635
+269.708 500.371 5.889 544.130 6.090 252.066 4.407
+269.866 498.353 6.074 543.641 6.103 248.830 4.067
+270.023 501.183 5.624 543.326 6.139 249.678 3.603
+270.181 500.511 6.194 542.963 5.889 249.136 4.126
+270.339 501.605 5.821 544.579 5.729 248.851 3.552
+270.497 501.466 5.657 544.395 6.010 250.348 3.537
+270.655 499.484 5.768 545.494 5.990 250.403 4.069
+270.813 501.604 5.982 544.524 6.248 250.064 5.176
+270.970 501.016 5.912 542.515 6.061 252.550 4.027
+271.127 499.670 6.202 542.895 6.059 249.595 4.125
+271.285 500.276 6.126 544.009 6.193 251.625 3.739
+271.443 501.832 5.669 543.670 6.194 248.776 4.027
+271.601 500.218 5.750 543.946 6.181 249.167 3.482
+271.759 500.012 5.766 542.969 6.231 250.271 3.995
+271.917 500.960 6.720 544.039 6.018 246.802 4.888
+272.074 499.749 7.058 542.630 6.500 249.598 6.772
+272.232 499.477 7.621 541.826 6.030 254.556 4.581
+272.389 501.094 7.252 543.228 6.582 250.875 4.305
+272.546 499.381 5.737 543.242 5.904 249.568 4.162
+272.704 498.193 5.798 543.602 6.019 246.725 6.614
+272.862 502.401 6.346 543.036 6.475 247.727 8.374
+273.019 500.164 5.808 542.890 6.440 253.797 4.424
+273.177 500.261 7.401 544.978 6.148 256.167 4.401
+273.336 496.732 6.895 543.789 6.414 253.841 8.581
+273.493 498.347 7.142 545.458 6.276 247.128 5.468
+273.650 498.213 7.019 543.714 6.386 250.141 4.269
+273.808 498.432 6.117 544.037 6.401 253.161 4.000
+273.966 496.744 5.846 543.390 5.725 253.221 6.171
+274.124 496.307 5.517 543.833 5.819 248.612 3.453
+274.281 498.463 6.082 544.968 6.063 248.696 3.421
+274.440 497.364 5.567 543.439 6.178 251.026 3.866
+274.598 498.923 5.855 544.084 5.871 251.490 3.127
+274.756 499.289 5.605 543.000 5.958 249.594 4.069
+274.913 499.462 5.914 544.100 6.251 249.885 3.779
+275.071 496.764 5.651 542.741 6.178 249.418 5.502
+275.229 498.117 5.757 544.237 6.137 252.254 3.666
+275.387 498.351 5.755 542.582 5.883 251.652 4.291
+275.544 496.593 5.730 543.255 6.460 252.526 3.481
+275.702 497.165 5.883 543.252 6.140 249.305 4.145
+275.860 499.601 5.523 543.422 6.018 249.743 4.499
+276.017 497.646 5.848 543.544 5.867 250.017 3.510
+276.175 500.176 5.596 543.155 6.098 250.200 3.839
+276.333 498.831 6.382 543.571 6.381 247.692 3.477
+276.491 497.148 5.489 542.365 6.226 249.966 3.225
+276.649 499.851 5.775 543.933 5.899 250.349 4.105
+276.807 497.808 5.700 543.589 5.802 248.203 4.538
+276.965 499.428 5.755 542.216 5.985 252.852 3.933
+277.122 498.084 5.555 543.122 5.888 249.288 5.075
+277.280 496.340 6.359 542.331 6.169 252.962 5.335
+277.438 496.363 6.260 542.443 7.110 252.379 9.805
+277.595 500.033 5.971 543.104 6.064 250.873 5.832
+277.753 499.050 5.557 543.361 6.023 249.348 4.053
+277.910 498.150 5.549 542.133 6.204 249.373 4.207
+278.068 497.351 5.678 542.961 6.089 248.553 3.540
+278.226 498.623 6.598 543.129 5.940 251.335 5.648
+278.384 499.956 5.698 542.721 5.985 251.523 7.346
+278.541 496.499 5.960 543.597 5.971 242.105 3.548
+278.699 497.125 6.148 541.806 6.123 252.641 5.811
+278.857 498.691 5.670 542.288 5.960 252.516 3.943
+279.015 500.216 6.458 542.282 6.248 254.575 5.455
+279.173 498.382 6.268 542.502 6.739 246.735 4.801
+279.332 501.223 6.198 543.165 6.955 252.607 5.260
+279.490 500.402 10.187 541.951 6.901 255.476 7.382
+279.646 497.944 6.112 542.429 7.183 245.904 9.343
+279.803 495.989 6.143 541.564 6.324 245.449 4.328
+279.962 501.509 6.050 543.435 6.165 254.884 3.827
+280.120 498.595 6.890 543.524 6.327 252.708 4.803
+280.277 499.065 6.317 541.515 7.170 242.327 4.285
+280.435 501.640 8.105 541.165 6.320 255.933 8.099
+280.592 496.246 6.174 542.581 6.104 251.169 4.644
+280.749 499.022 6.387 542.535 7.393 250.211 4.801
+280.907 499.620 7.066 544.335 6.239 249.642 4.273
+281.065 495.446 6.165 542.413 7.031 251.076 4.764
+281.223 505.144 8.512 542.244 9.327 254.200 6.951
+281.380 495.501 7.556 544.602 6.223 242.032 6.160
+281.537 498.035 6.645 543.836 6.613 243.870 6.598
+281.694 497.400 6.244 541.208 6.634 257.578 4.860
+281.853 495.284 5.716 543.502 7.013 247.415 4.697
+282.011 495.402 6.768 542.335 6.024 253.214 4.706
+282.168 496.844 6.468 542.403 8.451 248.142 4.828
+282.325 499.148 10.312 542.794 7.911 250.351 7.393
+282.483 497.871 9.059 543.258 8.213 251.443 6.094
+282.639 495.728 7.289 543.392 8.240 249.884 5.601
+282.797 500.957 6.100 541.653 6.248 251.318 3.623
+282.955 497.269 6.083 543.986 6.030 247.703 4.138
+283.114 497.072 6.344 541.579 7.073 252.777 5.233
+283.272 496.960 6.175 543.825 6.247 250.547 3.465
+283.431 500.079 5.859 544.018 6.327 250.105 4.433
+283.590 498.220 6.008 541.430 6.409 251.751 4.147
+283.747 500.822 5.758 545.724 7.668 250.567 5.271
+283.906 492.928 6.569 543.447 6.044 251.165 6.967
+284.063 498.439 6.048 545.134 6.736 252.221 3.705
+284.221 500.114 5.390 542.531 5.814 248.682 3.492
+284.378 493.711 5.658 542.705 5.924 250.426 3.555
+284.536 498.917 5.859 542.427 6.004 256.074 3.452
+284.695 498.199 5.887 543.204 6.159 247.340 4.058
+284.852 499.682 5.728 542.892 5.803 247.813 4.538
+285.010 498.016 6.012 542.589 5.869 249.588 3.591
+285.169 497.430 5.682 543.015 6.020 249.245 3.700
+285.327 498.144 5.718 541.020 5.859 255.172 4.222
+285.484 497.011 5.760 543.630 5.796 249.211 4.511
+285.642 499.330 5.615 543.586 5.827 248.822 3.913
+285.800 497.363 5.841 542.745 6.087 250.058 3.091
+285.958 497.503 5.596 541.887 6.511 249.490 3.677
+286.116 497.955 6.025 541.208 5.881 251.834 4.231
+286.274 498.159 5.508 542.222 6.068 251.548 4.477
+286.432 497.751 5.888 542.592 5.954 248.895 5.099
+286.589 497.847 6.527 541.595 6.161 249.298 4.980
+286.747 499.248 5.715 541.316 6.261 250.913 4.009
+286.904 497.942 5.722 542.803 6.261 252.209 3.672
+287.063 498.639 5.824 543.118 6.044 251.022 5.677
+287.220 497.956 5.525 542.681 5.814 247.350 3.224
+287.378 497.129 5.681 542.696 5.962 247.603 3.562
+287.537 498.831 5.986 541.697 5.896 253.816 3.724
+287.695 497.958 6.149 542.237 5.889 250.568 3.751
+287.853 497.729 5.713 543.122 6.015 249.075 5.026
+288.011 497.927 5.548 543.541 6.016 249.610 4.102
+288.169 500.009 5.481 542.325 6.151 250.336 4.420
+288.327 498.980 6.195 542.113 6.081 252.073 3.629
+288.485 499.829 5.460 542.281 5.845 250.870 5.822
+288.642 498.428 6.023 541.412 6.143 246.638 4.450
+288.800 498.364 6.201 542.994 5.854 249.116 3.822
+288.958 499.383 6.062 542.800 6.016 251.081 5.064
+289.116 498.883 6.042 541.728 5.996 252.030 3.635
+289.274 498.608 5.774 542.277 5.841 251.180 4.558
+289.432 498.586 5.664 543.452 6.164 245.411 3.931
+289.589 497.785 5.555 543.284 6.016 248.224 5.057
+289.747 498.317 6.277 542.162 6.152 252.662 4.316
+289.905 498.443 6.262 542.641 6.589 251.056 5.871
+290.064 498.974 6.021 542.886 6.065 248.960 4.966
+290.223 498.179 5.743 542.358 5.815 247.759 4.920
+290.380 498.291 5.893 542.333 5.974 249.797 4.453
+290.537 498.332 6.287 541.243 5.912 252.748 3.737
+290.695 497.923 6.272 542.362 6.206 249.917 5.431
+290.853 499.579 5.937 543.093 5.799 249.879 4.120
+291.010 497.375 5.691 543.501 5.808 248.818 3.304
+291.167 498.633 5.591 542.615 5.978 247.368 4.476
+291.325 497.596 5.589 541.406 5.889 251.203 4.679
+291.482 498.435 5.537 541.404 6.125 253.292 3.313
+291.640 497.864 5.470 541.094 5.879 249.292 4.408
+291.798 497.198 5.876 543.151 5.967 249.382 3.956
+291.955 497.892 5.702 542.771 6.122 250.063 3.782
+292.114 499.608 5.568 541.757 5.951 252.330 3.460
+292.271 499.216 5.912 541.997 5.920 250.733 3.103
+292.430 499.322 6.020 542.640 5.870 249.047 4.093
+292.587 498.683 5.753 543.276 5.918 250.310 4.011
+292.744 497.816 5.960 542.282 5.981 252.453 3.681
+292.902 498.768 5.913 541.992 5.981 248.194 3.793
+293.061 499.817 5.508 541.889 5.800 251.001 3.620
+293.218 498.768 5.882 541.608 5.818 251.870 3.675
+293.376 498.887 5.972 541.936 5.884 246.908 4.760
+293.534 498.788 5.548 542.679 6.064 248.049 3.849
+293.692 498.657 5.574 541.886 5.909 250.640 3.863
+293.849 498.176 5.716 541.998 5.928 253.536 3.620
+294.007 498.281 5.659 542.640 5.864 251.535 4.045
+294.165 498.952 5.861 540.766 5.916 247.165 3.357
+294.323 499.169 5.546 542.517 5.976 248.551 3.150
+294.481 497.811 5.777 542.745 6.034 251.965 4.306
+294.639 497.568 5.968 541.617 5.947 251.659 3.978
+294.797 498.295 6.206 542.686 5.821 249.536 3.817
+294.954 499.312 6.199 543.106 6.025 249.855 3.770
+295.112 498.353 6.096 543.151 6.033 249.708 4.274
+295.270 498.553 5.946 543.001 6.058 250.697 5.705
+295.428 498.655 5.768 542.160 6.096 248.146 4.509
+295.586 498.236 5.500 543.401 6.050 249.681 3.977
+295.744 497.752 5.625 542.524 6.166 249.926 3.334
+295.902 497.567 6.001 541.365 5.928 253.629 3.641
+296.060 498.385 5.834 541.333 6.100 250.746 3.524
+296.218 497.003 5.866 541.443 6.213 250.107 3.476
+296.377 499.310 5.860 543.114 5.869 246.661 4.932
+296.534 500.613 6.472 542.991 6.185 252.366 4.417
+296.693 499.666 5.879 541.489 5.856 250.043 4.083
+296.850 499.146 5.832 541.844 6.490 250.540 5.625
+297.008 498.561 6.969 542.858 6.567 247.155 4.808
+297.165 498.055 7.051 542.568 6.078 248.511 3.978
+297.323 497.700 6.032 541.905 6.280 249.745 4.639
+297.480 499.617 5.690 541.449 6.180 254.057 3.650
+297.639 497.636 5.944 543.574 5.918 250.390 4.831
+297.797 498.676 5.780 542.955 5.902 249.983 4.088
+297.955 499.346 5.839 542.299 6.282 248.519 3.745
+298.113 497.603 5.724 543.243 6.090 249.275 4.984
+298.270 498.696 5.746 542.982 6.094 253.132 3.617
+298.429 499.107 5.925 542.919 6.106 250.621 3.845
+298.587 497.591 5.799 543.949 5.838 247.036 3.232
+298.745 498.325 5.828 543.909 6.112 250.790 4.106
+298.903 499.193 6.104 543.579 5.993 252.357 3.684
+299.062 498.422 5.591 542.735 5.847 252.093 4.146
+299.219 497.964 5.501 543.257 5.979 249.890 3.502
+299.377 498.719 5.489 544.812 6.030 248.148 3.236
+299.536 499.977 6.030 543.078 5.930 251.031 3.988
+299.693 498.329 5.520 542.840 5.956 252.340 4.499
+299.851 497.153 5.626 543.158 5.980 250.273 3.588
+300.009 498.351 5.937 543.361 6.199 249.902 3.834
+300.167 498.753 6.247 542.843 6.203 251.839 4.657
+300.325 498.037 7.100 543.778 6.102 252.968 6.030
+300.482 493.950 5.754 543.027 6.015 247.569 3.951
+300.639 491.789 5.648 541.000 6.082 249.255 4.059
+300.796 488.677 5.736 541.220 5.897 251.002 5.919
+300.954 488.326 6.414 540.412 5.908 255.320 3.217
+301.113 490.443 5.640 541.844 6.184 253.613 3.999
+301.270 490.044 5.597 542.108 6.124 248.966 3.791
+301.428 489.420 5.602 542.421 6.145 249.939 3.441
+301.587 490.914 5.735 542.724 5.930 250.489 4.221
+301.745 490.429 5.406 540.857 5.914 252.684 4.035
+301.902 487.404 5.867 542.358 7.644 251.816 4.881
+302.060 487.834 6.222 541.483 6.358 252.998 3.727
+302.218 488.688 5.962 541.854 6.383 249.509 3.739
+302.376 487.536 5.836 542.148 7.307 248.565 4.531
+302.534 491.555 6.171 541.901 7.862 250.125 6.956
+302.690 487.355 6.331 542.909 6.067 244.811 3.132
+302.849 489.053 6.041 540.929 6.815 253.768 5.137
+303.008 489.840 6.345 542.719 7.326 258.167 5.185
+303.165 492.928 7.100 542.887 7.126 249.801 5.172
+303.323 487.299 7.195 543.138 6.381 243.608 5.023
+303.480 490.833 7.622 542.371 7.166 252.876 4.209
+303.638 490.178 8.238 540.673 7.804 259.038 8.941
+303.796 495.251 6.552 540.086 7.473 263.010 8.309
+303.954 487.962 6.824 541.980 6.701 243.390 7.821
+304.111 484.229 8.019 541.579 7.327 249.603 9.807
+304.267 483.282 7.955 543.735 7.925 238.916 7.700
+304.423 491.522 8.775 543.507 7.142 249.639 4.194
+304.581 491.845 7.703 538.715 6.566 264.246 6.884
+304.739 488.838 6.291 542.767 6.355 266.452 4.728
+304.898 489.058 6.861 543.767 7.643 248.014 4.964
+305.056 488.060 7.690 543.517 6.389 241.090 4.644
+305.213 489.610 6.691 543.065 6.365 248.870 4.476
+305.371 489.756 6.314 542.020 6.661 250.368 3.962
+305.530 490.877 6.298 542.060 6.584 266.663 3.464
+305.690 489.818 7.216 540.200 7.438 259.136 5.067
+305.847 489.778 8.722 546.342 11.111 244.781 7.942
+306.003 493.137 7.365 541.063 7.030 248.887 9.256
+306.159 494.421 8.295 542.110 6.847 250.428 6.547
+306.317 485.204 9.181 541.481 6.837 233.544 8.743
+306.473 483.362 7.615 542.594 9.352 253.985 7.134
+306.630 482.693 6.222 541.976 10.458 262.379 7.898
+306.788 488.966 8.378 538.289 7.335 265.973 12.989
+306.945 487.469 13.855 546.233 8.089 259.259 18.170
+307.101 477.194 13.108 542.702 9.375 235.042 21.560
+307.255 479.211 9.909 546.507 8.329 246.510 5.739
+307.413 488.552 12.205 540.625 9.804 268.465 10.759
+307.571 481.715 7.094 536.396 8.235 263.134 11.888
+307.728 480.047 9.813 544.904 7.648 249.381 13.944
+307.885 483.470 14.453 544.269 7.133 245.963 8.764
+308.041 479.554 8.883 539.152 7.510 252.789 12.095
+308.197 475.015 9.105 543.821 7.402 252.267 6.683
+308.354 486.440 9.394 543.818 6.510 248.192 8.478
+308.511 495.294 7.043 542.518 7.603 248.091 7.624
+308.668 488.652 7.730 542.845 7.508 244.850 6.866
+308.824 491.936 9.507 545.428 7.916 245.568 5.282
+308.981 506.939 11.084 546.524 6.363 254.765 7.365
+309.139 491.879 8.685 540.965 7.870 272.077 7.095
+309.296 496.148 6.983 544.069 9.887 246.970 10.209
+309.453 499.091 7.220 546.130 7.432 241.699 5.571
+309.611 497.830 9.443 544.521 8.064 252.187 6.123
+309.768 499.448 14.693 540.425 7.787 252.511 5.378
+309.925 503.614 8.716 542.374 7.084 255.525 10.794
+310.082 505.736 7.110 542.123 7.489 250.125 8.919
+310.239 505.507 7.621 544.581 6.727 242.871 12.062
+310.395 506.335 8.787 543.515 8.506 249.998 7.955
+310.552 496.523 8.904 542.675 8.432 251.370 12.933
+310.709 506.245 11.107 541.906 6.958 248.953 9.956
+310.866 509.362 12.361 543.669 9.651 257.179 6.843
+311.023 504.693 7.897 544.916 7.332 242.141 7.260
+311.179 502.716 7.871 540.409 7.311 245.271 4.844
+311.336 505.727 6.603 546.734 6.765 245.642 4.561
+311.493 504.747 6.697 543.227 6.811 251.176 6.595
+311.650 507.507 7.284 543.032 6.788 258.571 7.490
+311.808 506.865 6.752 544.350 7.158 249.995 11.095
+311.964 510.788 6.665 547.543 7.656 239.759 7.121
+312.122 511.087 9.048 542.095 8.111 252.627 5.431
+312.279 508.770 9.623 544.311 7.223 246.586 8.933
+312.435 509.077 7.277 544.713 7.011 248.945 5.358
+312.592 509.310 7.991 545.107 6.634 249.689 6.059
+312.749 506.183 8.209 542.891 7.251 244.806 6.252
+312.907 509.071 16.111 543.499 7.573 252.218 6.904
+313.063 506.350 8.098 542.805 7.164 247.862 6.294
+313.219 513.613 8.297 540.588 8.708 250.678 9.030
+313.376 513.766 9.644 542.065 7.906 247.576 6.063
+313.533 505.557 13.954 543.200 7.578 244.005 9.979
+313.689 512.445 11.688 537.942 7.511 249.200 7.593
+313.847 503.764 9.167 541.399 6.846 250.972 6.764
+314.004 506.647 10.449 545.984 7.450 247.359 7.754
+314.162 514.446 7.403 542.779 7.294 252.703 10.998
+314.320 509.124 15.237 546.397 8.166 239.697 6.070
+314.475 516.581 7.971 538.924 10.894 245.266 9.924
+314.632 511.005 8.108 542.079 8.628 246.912 8.519
+314.789 503.830 8.048 543.400 7.612 242.539 5.265
+314.946 510.828 7.351 541.394 6.696 249.695 5.909
+315.103 511.158 13.196 544.384 7.665 248.766 5.920
+315.260 513.621 8.146 546.053 7.912 251.427 5.793
+315.417 518.796 6.896 542.620 7.740 241.284 5.581
+315.575 513.527 8.241 544.036 7.339 237.712 6.250
+315.732 520.805 6.394 545.690 7.392 247.477 7.378
+315.890 517.548 7.941 541.436 7.365 249.664 8.865
+316.046 509.115 8.396 543.394 7.012 247.926 4.634
+316.203 509.121 10.361 544.394 7.210 245.389 5.800
+316.362 510.591 .804 543.103 7.842 247.703 5.146
+316.519 516.555 11.139 543.471 6.856 246.577 11.251
+316.676 516.305 5.976 541.854 8.164 245.875 5.756
+316.833 514.683 7.514 540.688 7.065 249.658 4.944
+316.991 512.916 7.631 542.916 7.938 246.626 8.438
+317.148 518.029 7.788 543.639 7.972 247.186 5.530
+317.305 510.760 7.935 543.866 7.198 245.131 9.543
+317.461 514.277 8.902 540.738 7.376 246.991 5.295
+317.619 507.502 7.285 541.477 7.543 245.339 3.751
+317.776 513.235 10.898 545.594 7.718 248.163 10.028
+317.933 514.852 9.434 543.436 7.388 250.191 3.929
+318.091 508.828 8.800 542.554 7.932 243.571 5.911
+318.248 512.628 9.663 542.975 7.871 249.135 6.011
+318.406 512.026 6.651 542.909 7.081 248.771 5.894
+318.564 513.490 7.294 544.609 7.795 247.267 5.282
+318.721 516.684 8.315 544.916 6.962 247.982 9.575
+318.878 515.756 9.772 544.579 6.243 239.539 7.742
+319.035 515.597 8.339 543.945 7.543 247.955 6.958
+319.192 514.206 7.642 543.419 6.973 253.529 7.624
+319.349 513.742 12.437 542.204 7.006 245.545 5.725
+319.507 521.317 8.683 539.312 7.402 257.925 5.379
+319.665 515.213 7.986 542.653 7.222 238.839 6.119
+319.822 514.662 7.270 539.016 8.425 245.108 10.136
+319.979 517.336 7.766 542.850 6.206 246.041 8.552
+320.136 510.023 7.884 542.308 7.238 250.990 5.697
+320.294 516.520 11.704 542.903 7.402 247.539 5.333
+320.453 518.655 8.216 544.129 8.333 248.415 9.256
+320.608 510.556 8.766 544.381 6.690 242.714 6.090
+320.765 515.925 7.410 538.673 6.582 250.067 5.321
+320.923 510.129 7.763 543.016 6.306 255.680 5.085
+321.081 514.361 7.445 543.500 8.266 250.366 9.005
+321.238 517.583 10.664 542.585 8.409 239.333 6.234
+321.395 512.955 12.996 546.435 7.434 245.943 7.201
+321.553 514.569 8.442 542.574 6.971 245.719 6.238
+321.710 513.735 9.331 537.925 8.468 246.337 7.588
+321.867 510.357 9.435 540.839 7.918 249.553 5.812
+322.024 513.253 8.577 545.768 7.362 243.835 6.234
+322.181 507.162 7.606 543.827 6.845 239.398 11.031
+322.338 513.771 9.500 542.338 7.951 250.494 6.785
+322.494 515.637 8.432 544.823 6.924 246.244 4.875
+322.651 517.866 8.018 541.898 7.097 250.572 5.895
+322.809 509.578 7.120 541.279 7.176 244.425 7.150
+322.966 511.245 9.403 543.992 7.563 240.964 9.470
+323.122 521.032 8.613 543.069 7.412 251.319 6.366
+323.279 507.000 7.403 540.600 8.096 249.293 5.824
+323.436 512.560 7.437 541.386 6.668 246.722 5.269
+323.594 510.085 7.903 540.003 6.765 248.097 6.272
+323.751 517.510 6.758 540.410 6.408 251.750 4.448
+323.908 514.345 7.459 542.144 7.414 242.017 4.996
+324.066 510.723 8.246 541.571 7.614 245.010 5.615
+324.224 509.027 7.645 540.295 6.687 249.280 4.686
+324.381 510.760 5.726 541.763 6.975 255.602 4.815
+324.539 508.337 10.332 541.007 6.556 248.136 8.328
+324.695 515.113 6.996 542.420 7.258 242.561 5.888
+324.853 510.781 6.699 540.414 6.944 242.405 3.990
+325.010 511.037 7.180 542.124 7.351 246.954 6.275
+325.168 508.100 7.436 541.501 7.402 248.899 6.061
+325.325 510.761 8.022 545.465 7.823 245.379 5.414
+325.482 511.217 7.919 542.594 7.346 256.183 6.217
+325.639 505.302 7.071 544.326 7.104 238.661 5.098
+325.796 510.383 7.788 538.623 6.380 247.506 6.079
+325.954 508.823 8.076 543.766 7.192 247.195 6.538
+326.110 508.488 8.542 539.697 6.502 243.381 4.811
+326.268 509.164 6.603 541.777 6.666 255.603 5.743
+326.425 509.871 7.678 542.867 7.219 242.646 4.700
+326.581 521.288 6.917 541.878 6.344 248.506 7.276
+326.739 509.422 6.987 541.748 6.861 245.145 5.122
+326.897 509.214 9.304 541.457 6.901 242.921 4.847
+327.054 510.562 7.267 540.364 6.277 252.809 6.858
+327.212 508.755 6.946 541.523 7.054 247.208 4.475
+327.368 512.697 6.109 541.035 7.314 248.992 4.427
+327.527 510.087 8.220 542.550 7.056 237.649 5.143
+327.685 507.470 7.287 539.445 7.934 249.776 5.216
+327.843 510.984 7.470 540.984 6.733 251.707 6.909
+328.000 515.699 8.994 540.919 8.379 250.107 6.477
+328.157 512.107 8.200 540.619 6.422 253.291 6.135
+328.315 508.111 7.241 540.156 7.308 246.042 5.550
+328.474 508.001 8.206 541.181 6.897 248.560 5.058
+328.631 510.210 8.958 540.891 8.034 245.015 7.495
+328.787 512.972 7.018 539.098 7.883 246.110 6.405
+328.944 515.949 8.093 540.071 7.656 246.611 4.057
+329.101 508.069 7.563 540.840 7.789 245.116 6.047
+329.259 506.810 7.319 540.678 7.907 245.621 6.600
+329.416 505.738 7.342 542.806 7.640 246.116 4.872
+329.573 513.297 10.582 543.018 8.861 244.561 6.320
+329.730 510.663 9.169 544.220 8.155 241.285 10.289
+329.887 508.066 10.527 540.172 8.392 236.502 5.562
+330.044 510.780 7.166 539.971 9.464 253.295 5.104
+330.201 503.757 7.856 541.109 7.336 246.602 5.099
+330.358 507.947 8.641 540.821 6.690 247.976 6.247
+330.515 511.169 7.241 538.678 7.995 253.729 5.994
+330.673 513.871 8.471 544.036 8.653 246.197 6.514
+330.830 511.708 8.469 542.270 8.333 244.301 7.658
+330.987 512.437 8.146 544.732 9.114 246.073 5.699
+331.145 508.834 7.948 540.607 6.662 250.930 5.128
+331.302 505.768 8.974 540.006 6.845 251.839 7.281
+331.460 509.297 7.427 540.940 8.255 258.188 7.047
+331.618 503.053 7.042 542.099 8.444 243.591 9.234
+331.774 512.220 11.000 540.681 7.611 247.955 6.700
+331.932 515.002 8.068 540.416 8.214 250.209 4.045
+332.088 514.530 6.660 539.814 7.613 245.642 6.913
+332.246 505.725 8.174 539.778 7.794 248.776 5.187
+332.403 512.407 8.705 544.307 8.372 246.267 5.763
+332.561 512.404 7.683 541.273 7.942 249.122 6.090
+332.718 506.984 7.248 539.842 6.603 249.201 5.913
+332.875 509.369 5.895 540.648 7.109 246.362 7.583
+333.033 507.603 7.371 541.906 7.589 245.233 5.012
+333.190 511.606 11.966 539.249 6.596 249.762 5.510
+333.348 512.126 7.512 541.982 7.355 249.117 5.210
+333.505 513.841 7.813 543.319 6.942 244.251 6.963
+333.662 513.378 8.934 541.143 6.801 242.092 4.225
+333.820 512.383 6.717 540.661 7.364 248.810 4.365
+333.978 511.723 7.698 540.936 6.893 250.318 6.536
+334.135 509.317 6.741 541.929 6.982 243.673 4.459
+334.293 508.093 8.806 540.879 7.845 251.086 9.406
+334.450 512.310 9.501 542.128 6.798 240.450 5.289
+334.607 514.843 7.668 540.561 9.215 246.884 3.918
+334.765 510.818 7.188 542.095 8.226 244.718 4.388
+334.923 509.588 7.158 542.431 7.987 247.627 7.166
+335.079 511.995 7.289 540.174 8.542 248.176 4.379
+335.237 513.240 8.723 539.731 7.375 249.061 8.359
+335.394 516.022 7.618 541.807 9.989 243.920 7.090
+335.551 511.130 6.915 543.078 7.004 245.719 4.700
+335.708 505.281 6.744 539.570 7.353 248.667 4.596
+335.865 510.442 7.989 541.565 7.249 244.256 5.500
+336.022 514.134 8.185 539.125 7.090 256.202 4.013
+336.180 509.361 6.406 541.051 7.789 246.732 4.919
+336.337 511.433 6.816 542.580 8.030 249.117 7.704
+336.493 509.264 7.438 543.905 8.663 244.921 5.647
+336.650 511.622 8.199 542.199 6.513 245.909 6.030
+336.808 509.996 6.947 538.072 7.925 256.789 4.848
+336.966 502.940 7.447 540.430 8.214 244.437 5.805
+337.123 509.459 8.032 539.684 9.099 255.224 3.755
+337.280 507.154 8.441 543.296 8.014 254.052 6.995
+337.436 508.981 8.408 539.373 7.834 248.780 8.163
+337.593 509.349 7.351 539.853 8.038 242.617 5.632
+337.750 512.243 7.562 542.878 8.422 239.336 5.543
+337.908 504.482 10.724 538.548 7.644 251.513 10.844
+338.064 509.524 8.187 542.285 7.097 252.625 6.638
+338.221 513.285 6.589 541.042 8.869 246.686 5.794
+338.379 513.732 7.736 540.830 8.921 236.956 8.711
+338.536 511.057 9.479 541.618 6.959 247.169 7.177
+338.692 515.040 9.553 544.786 6.891 247.651 5.149
+338.851 515.850 10.480 541.117 7.811 250.226 9.423
+339.007 511.488 8.488 542.411 9.114 250.942 4.461
+339.164 515.664 8.611 544.384 9.066 234.909 6.182
+339.321 506.246 9.363 542.683 9.386 242.509 5.268
+339.478 511.032 11.958 540.676 8.258 254.705 7.265
+339.636 513.940 7.792 541.526 10.518 250.007 6.962
+339.794 507.679 10.749 542.305 9.487 250.090 8.557
+339.951 505.716 8.844 538.953 7.391 243.830 5.907
+340.108 505.227 7.083 544.539 9.044 236.258 6.591
+340.265 511.932 6.852 542.555 8.958 252.432 7.806
+340.422 510.189 9.881 540.645 8.076 253.924 4.433
+340.579 512.851 9.232 542.426 8.623 246.489 5.317
+340.736 518.468 8.975 538.594 9.014 248.584 8.597
+340.893 507.354 8.533 542.516 6.660 243.305 4.948
+341.050 504.553 9.950 545.215 8.086 246.173 9.010
+341.207 509.975 7.656 545.052 7.518 254.031 8.320
+341.364 511.919 11.778 545.030 10.608 240.160 17.420
+341.521 510.929 12.390 538.800 6.368 251.901 8.494
+341.678 518.739 13.328 545.098 7.998 240.639 6.428
+341.835 515.407 11.562 547.301 8.277 238.916 9.444
+341.992 519.124 8.409 544.023 9.201 244.099 7.820
+342.148 516.941 10.447 544.430 9.108 249.971 7.280
+342.305 500.209 10.630 542.954 7.587 228.579 9.527
+342.463 512.752 7.818 542.759 8.053 256.055 9.802
+342.620 520.117 7.103 543.567 9.679 249.190 5.189
+342.778 520.831 8.806 545.325 9.826 245.021 8.201
+342.935 512.478 10.665 544.453 8.779 247.030 7.193
+343.092 508.494 8.288 547.504 9.103 235.960 7.840
+343.249 520.375 8.788 541.845 10.062 251.009 8.266
+343.406 509.893 12.844 541.878 7.284 256.150 7.940
+343.563 513.539 9.265 544.058 10.581 252.841 8.365
+343.720 515.105 7.687 544.340 7.828 245.448 7.529
+343.876 519.061 8.165 549.803 7.711 243.014 6.970
+344.034 511.640 8.226 542.898 9.157 248.100 14.964
+344.190 517.326 8.714 542.529 6.980 248.461 8.181
+344.347 511.283 7.382 543.765 6.916 249.514 9.063
+344.504 512.842 6.912 541.137 9.180 248.935 8.265
+344.660 508.778 6.850 539.541 7.988 250.929 6.161
+344.818 512.057 7.598 542.235 9.845 246.639 7.325
+344.975 521.380 8.056 541.682 8.144 244.726 6.913
+345.131 513.023 8.022 543.256 8.219 243.327 6.740
+345.288 517.630 7.833 540.562 7.361 251.503 5.710
+345.446 505.706 7.345 539.535 8.499 249.375 7.834
+345.603 510.787 11.571 542.085 7.719 249.963 5.743
+345.760 515.877 6.701 543.370 7.403 248.339 6.361
+345.919 514.738 10.199 544.413 8.497 238.643 6.245
+346.077 517.377 9.764 541.104 8.554 254.006 8.537
+346.234 509.973 7.792 542.641 8.063 246.730 6.176
+346.391 509.539 8.282 540.486 8.724 239.747 6.015
+346.548 515.455 8.876 540.264 7.919 246.947 6.650
+346.705 512.654 12.428 541.762 7.858 251.649 7.603
+346.862 511.166 8.892 542.537 8.570 243.616 6.340
+347.019 513.161 7.599 541.945 7.001 246.176 7.459
+347.176 513.521 7.328 542.389 7.627 243.291 6.307
+347.334 511.395 6.760 543.193 6.966 246.112 4.610
+347.492 514.614 7.444 545.001 7.854 249.101 8.273
+347.650 510.016 8.653 541.680 8.330 247.651 6.463
+347.807 514.770 9.085 541.366 8.736 250.156 5.554
+347.965 513.297 7.396 542.963 7.386 242.541 6.090
+348.123 512.033 8.713 543.499 8.197 252.265 7.314
+348.280 517.550 7.126 543.465 7.686 250.022 5.487
+348.437 517.215 9.809 542.894 8.653 253.260 4.793
+348.594 510.222 8.637 543.259 7.689 245.082 8.595
+348.750 513.292 10.393 540.932 8.490 249.390 5.448
+348.908 516.552 12.972 544.079 7.995 253.473 13.304
+349.065 507.385 7.798 541.710 7.336 243.854 6.193
+349.222 508.663 8.041 539.717 6.529 251.948 5.059
+349.380 511.616 14.433 541.517 7.352 250.049 5.009
+349.537 504.176 13.209 540.775 7.646 253.820 9.027
+349.694 511.651 7.977 542.857 6.993 244.388 9.933
+349.849 511.606 9.558 542.478 8.457 246.743 6.562
+350.005 508.196 6.310 541.474 7.583 247.377 7.493
+350.162 505.682 9.004 540.244 7.913 251.523 5.726
+350.319 510.556 7.179 543.072 7.986 244.825 8.307
+350.475 509.305 13.066 541.550 7.838 251.568 7.894
+350.631 505.573 11.784 541.665 6.755 249.145 4.479
+350.788 503.255 7.783 540.916 6.900 250.901 5.894
+350.945 506.622 8.818 542.389 7.532 244.169 4.578
+351.102 510.376 13.510 540.453 9.519 247.921 7.455
+351.258 506.353 9.319 541.274 7.766 253.179 5.881
+351.415 506.413 10.378 541.252 8.787 244.201 9.599
+351.571 508.604 7.635 541.062 9.184 247.862 7.132
+351.728 498.646 7.382 541.840 6.414 249.118 8.458
+351.885 513.766 8.267 539.178 7.052 251.371 5.984
+352.043 502.067 10.645 539.941 7.019 246.263 7.546
+352.200 499.280 23.238 541.919 7.071 250.612 5.375
+352.356 497.322 9.466 538.909 8.780 252.086 7.496
+352.513 501.703 8.468 543.079 9.272 251.840 7.145
+352.669 505.977 7.462 538.900 9.629 252.678 5.665
+352.827 502.079 8.957 539.879 7.731 248.236 5.187
+352.983 500.180 6.714 541.658 7.751 246.202 7.963
+353.141 501.701 7.681 543.096 9.777 255.652 6.440
+353.297 505.957 7.607 543.801 7.040 248.366 9.289
+353.454 494.059 11.964 538.668 9.617 254.073 12.921
+353.609 495.340 11.488 539.346 7.352 250.300 7.096
+353.766 499.793 8.611 541.633 9.560 251.993 6.408
+353.924 500.117 7.855 540.866 7.398 250.239 11.751
+354.080 504.381 9.559 543.128 7.073 241.392 5.349
+354.237 502.993 9.190 538.861 7.837 245.933 10.546
+354.395 504.780 7.593 540.088 9.255 263.879 8.366
+354.552 498.517 11.650 541.841 10.309 245.368 5.746
+354.710 501.635 14.596 539.348 11.544 254.943 6.507
+354.867 501.836 6.701 542.203 7.200 247.929 8.599
+355.025 498.338 11.148 543.902 7.019 244.329 7.935
+355.182 505.083 6.887 538.159 6.669 259.053 3.853
+355.340 496.580 8.492 542.001 7.442 244.530 7.957
+355.497 499.005 8.850 538.000 7.942 258.475 4.733
+355.655 501.330 13.148 539.220 7.165 247.014 13.982
+355.811 500.623 9.884 542.422 7.361 246.200 8.705
+355.969 498.276 8.577 540.554 7.882 246.292 4.775
+356.125 501.612 7.705 540.875 7.831 248.892 4.539
+356.282 500.016 9.692 539.358 9.762 250.048 8.911
+356.439 493.770 9.572 545.133 7.706 241.190 7.797
+356.597 499.237 6.641 538.691 8.131 258.491 7.418
+356.754 495.252 8.373 541.716 7.914 253.054 9.541
+356.912 498.512 8.440 538.697 9.553 252.690 10.247
+357.069 499.395 9.200 542.767 6.940 252.556 7.048
+357.225 493.064 7.750 541.507 6.940 246.125 5.576
+357.383 501.340 7.305 539.975 7.222 254.211 9.437
+357.540 500.153 8.685 542.979 7.440 246.932 5.418
+357.698 499.821 8.012 541.539 6.642 250.489 6.965
+357.854 496.678 12.132 541.545 8.246 258.444 5.920
+358.012 497.716 10.709 544.185 8.506 244.774 12.300
+358.169 500.037 10.586 540.851 10.234 250.107 10.239
+358.327 499.800 10.323 542.438 9.952 252.481 9.417
+358.484 496.908 7.634 541.264 7.762 251.634 4.809
+358.641 498.919 7.700 539.982 6.981 250.056 4.458
+358.798 502.099 7.184 543.599 6.186 242.410 12.068
+358.955 496.181 7.514 542.326 7.879 245.024 4.049
+359.113 501.071 5.846 537.723 6.857 259.230 5.358
+359.271 497.380 6.243 541.147 6.231 247.152 4.368
+359.428 495.943 6.132 541.891 6.438 250.571 6.379
+359.586 500.259 8.754 543.889 8.711 250.385 7.074
+359.743 497.772 8.114 541.748 8.196 240.523 5.710
+359.900 505.407 7.435 543.027 7.698 253.245 4.728
+360.058 499.364 7.799 541.720 7.077 256.102 6.949
+360.215 496.203 7.762 541.687 6.403 251.611 5.901
+360.373 501.122 6.373 541.846 6.606 258.906 6.813
+360.531 497.531 7.103 541.138 7.607 248.709 6.144
+360.689 497.125 7.821 540.621 8.505 258.327 7.200
+360.845 499.071 6.954 542.796 6.810 248.683 7.686
+361.002 501.880 8.788 541.338 9.070 240.206 7.542
+361.159 507.568 6.925 537.693 7.556 261.842 10.479
+361.316 498.865 20.660 537.647 11.459 245.308 25.998
+361.472 482.608 9.654 541.856 7.063 243.523 5.132
+361.630 496.306 9.463 539.148 7.598 254.425 14.901
+361.786 496.213 11.970 539.921 9.341 252.864 19.028
+361.942 499.762 10.399 539.989 7.489 258.028 6.952
+362.101 498.337 9.410 541.359 7.176 247.680 10.173
+362.257 503.923 8.463 543.793 7.420 242.666 4.684
+362.415 492.589 10.248 541.138 8.113 249.086 6.175
+362.572 503.405 12.654 541.561 8.250 257.420 15.786
+362.728 508.374 11.275 541.085 7.662 247.864 8.116
+362.885 493.973 10.156 540.940 8.251 248.068 7.928
+363.042 497.489 9.303 541.879 7.383 252.450 7.400
+363.199 498.854 6.658 541.218 6.961 252.124 6.001
+363.356 501.908 9.460 540.152 6.185 257.321 10.265
+363.513 498.819 10.039 540.941 7.809 248.693 6.261
+363.671 494.358 9.561 542.539 7.501 242.836 8.325
+363.828 505.073 6.655 541.935 6.968 255.868 4.017
+363.986 498.760 9.582 541.369 6.718 248.408 6.746
+364.142 493.707 7.311 540.133 7.087 244.044 7.155
+364.299 492.587 6.836 539.521 7.351 250.630 8.021
+364.456 488.235 10.497 540.585 10.787 248.416 13.643
+364.613 497.172 8.738 541.015 8.403 251.744 6.853
+364.770 498.731 11.476 542.330 7.870 245.457 13.528
+364.926 492.677 7.109 543.933 8.370 244.364 11.414
+365.083 503.626 7.303 541.019 8.261 243.173 6.934
+365.241 492.666 9.131 543.690 6.962 246.311 7.159
+365.397 492.416 8.927 543.066 8.621 253.353 10.694
+365.554 494.114 9.377 541.270 7.225 254.663 7.159
+365.711 501.611 6.014 543.592 6.419 250.556 6.339
+365.868 504.866 11.369 544.506 9.839 234.905 7.900
+366.025 503.518 8.407 542.975 7.681 247.339 10.068
+366.182 499.025 7.122 543.129 8.105 258.533 6.670
+366.339 495.820 7.439 542.631 6.675 252.405 6.062
+366.496 502.288 10.801 541.026 6.704 251.524 3.801
+366.654 496.822 8.125 544.200 8.378 249.295 5.495
+366.811 501.758 6.872 542.712 7.022 251.492 6.427
+366.968 496.457 9.261 540.167 9.396 247.934 8.076
+367.124 493.754 9.449 544.511 7.048 252.349 6.476
+367.282 501.507 7.159 542.035 8.934 253.953 9.246
+367.438 496.945 8.750 544.380 8.146 250.089 7.382
+367.595 493.559 7.757 542.513 7.409 250.870 8.281
+367.753 498.015 7.979 545.545 7.109 264.618 8.229
+367.910 493.460 7.023 542.655 6.788 250.116 4.570
+368.067 496.234 8.933 545.486 7.602 252.751 7.735
+368.224 498.632 9.487 546.814 8.867 244.837 6.488
+368.381 492.466 10.276 549.828 8.666 244.548 11.427
+368.538 495.784 10.204 546.328 6.808 249.695 12.599
+368.696 493.027 7.190 543.293 7.742 256.187 8.382
+368.853 495.230 6.131 546.013 7.140 251.081 5.684
+369.011 493.622 6.672 547.540 8.630 250.380 5.658
+369.169 499.216 9.085 543.235 8.008 254.063 8.106
+369.325 495.332 11.316 549.962 11.150 243.130 14.996
+369.481 501.493 6.291 547.509 7.708 240.551 4.170
+369.639 493.975 13.786 546.735 7.755 241.035 11.165
+369.796 500.359 11.470 548.637 7.315 267.740 8.018
+369.953 491.433 6.514 547.916 8.877 248.157 5.712
+370.111 499.314 6.277 547.389 8.274 247.851 7.625
+370.268 492.913 8.490 541.773 6.884 248.758 6.514
+370.425 493.299 8.495 551.607 7.823 247.207 4.437
+370.582 502.813 8.072 545.956 8.792 254.552 8.553
+370.740 498.758 18.582 543.929 9.137 244.795 9.556
+370.896 496.557 9.510 545.709 9.512 250.447 8.518
+371.052 499.815 7.659 547.287 8.699 251.804 5.660
+371.209 496.438 9.720 548.582 10.624 250.858 8.999
+371.365 489.794 7.772 543.895 9.020 247.788 4.857
+371.522 495.217 7.952 549.899 7.478 243.707 6.024
+371.679 501.732 9.813 548.569 8.131 251.787 6.753
+371.835 496.777 11.241 547.125 7.848 245.707 9.464
+371.991 496.807 9.976 546.641 9.771 255.987 8.190
+372.148 499.088 8.065 548.806 7.119 248.909 6.148
+372.305 489.560 6.694 543.818 7.733 245.339 10.702
+372.462 491.855 7.668 545.148 6.446 256.703 6.987
+372.619 507.598 14.712 546.781 11.157 246.767 13.166
+372.776 490.756 7.527 548.957 7.060 249.047 6.057
+372.934 494.577 6.305 544.139 8.113 255.440 7.211
+373.092 502.785 7.514 548.621 7.070 238.784 6.696
+373.249 492.947 7.536 547.116 8.165 248.187 5.919
+373.406 501.679 14.826 543.601 8.995 255.571 8.080
+373.562 493.046 9.038 548.986 8.018 247.825 6.015
+373.720 489.980 6.528 544.129 6.924 256.678 5.625
+373.879 488.159 7.088 545.021 7.093 243.596 5.565
+374.036 486.731 7.535 543.990 6.846 247.536 4.126
+374.194 494.947 9.049 544.979 8.260 252.195 5.457
+374.352 489.779 7.911 550.499 7.246 247.571 5.048
+374.509 487.117 7.376 544.485 7.554 253.945 5.349
+374.667 490.081 9.346 547.804 9.541 246.989 12.873
+374.824 490.470 10.194 545.268 9.821 259.989 11.904
+374.982 485.754 7.810 545.862 6.410 256.889 5.568
+375.139 492.867 9.041 547.798 7.086 251.538 5.579
+375.296 484.288 8.892 546.898 7.411 248.445 3.626
+375.453 491.132 7.397 547.269 8.308 251.514 5.257
+375.610 485.591 8.617 545.722 6.919 251.765 5.818
+375.767 492.635 7.309 546.317 9.328 254.507 5.698
+375.924 486.996 11.753 544.063 7.509 251.395 6.711
+376.081 490.290 6.533 546.570 6.940 253.053 8.256
+376.238 490.422 8.381 548.335 8.251 249.930 6.924
+376.394 494.884 7.076 543.333 7.549 253.499 5.163
+376.552 487.368 6.188 546.223 6.794 246.125 5.973
+376.710 487.423 7.154 545.882 7.086 249.981 4.587
+376.868 487.974 8.262 544.738 6.913 249.079 6.432
+377.026 481.299 7.843 547.987 7.498 252.500 6.913
+377.182 485.203 6.253 543.729 6.700 248.785 3.876
+377.340 488.602 6.550 545.827 8.582 251.027 5.630
+377.497 490.756 6.315 547.138 6.840 249.040 3.935
+377.655 485.437 6.888 544.711 7.061 249.560 7.067
+377.812 488.514 6.099 544.217 8.040 244.995 4.826
+377.970 490.985 7.997 543.362 7.839 256.429 4.108
+378.127 482.679 9.513 543.543 7.657 251.444 4.998
+378.284 489.716 6.199 542.495 6.938 257.344 3.784
+378.442 488.907 6.336 546.185 7.319 247.963 4.402
+378.600 490.819 7.939 547.291 7.608 243.179 3.979
+378.756 479.808 6.100 540.913 8.115 242.951 6.389
+378.913 488.608 8.309 544.069 8.183 249.579 9.540
+379.070 482.196 13.316 545.180 9.492 256.305 14.305
+379.226 486.262 6.646 542.851 7.777 257.693 4.935
+379.384 494.452 7.591 547.918 6.445 243.416 4.117
+379.541 488.684 7.377 545.989 6.766 244.234 6.036
+379.699 480.726 8.177 543.429 7.330 251.472 4.922
+379.856 481.757 8.133 546.284 6.717 251.464 7.694
+380.013 495.437 6.398 542.042 7.861 261.494 8.490
+380.169 486.804 8.154 543.690 10.418 245.714 11.749
+380.325 492.598 7.930 543.976 7.518 247.707 4.996
+380.483 491.916 8.131 546.799 8.005 252.897 5.576
+380.640 488.199 7.687 543.958 6.561 251.998 4.716
+380.798 487.772 8.193 545.549 6.812 251.080 5.274
+380.954 488.207 6.910 545.945 7.709 245.860 5.145
+381.112 485.972 7.327 543.689 8.257 249.588 6.080
+381.270 489.069 6.437 544.326 7.167 253.805 7.131
+381.427 491.990 10.951 545.703 7.072 252.658 4.928
+381.584 488.059 7.583 543.347 7.553 245.206 5.591
+381.742 486.230 7.325 545.493 8.198 254.622 5.393
+381.900 486.902 12.854 544.175 7.269 253.316 5.155
+382.057 485.839 8.106 543.251 7.276 253.673 4.039
+382.214 487.418 8.355 544.182 7.322 250.966 5.209
+382.371 488.854 7.286 543.171 8.596 241.839 5.287
+382.528 487.058 7.811 543.161 7.675 250.738 4.285
+382.686 489.790 8.278 543.101 7.543 255.327 7.517
+382.843 489.417 7.524 543.911 8.397 249.063 4.544
+383.000 488.684 6.643 543.499 7.499 245.830 5.144
+383.157 486.306 6.411 543.945 6.793 249.558 6.300
+383.314 484.453 7.337 543.049 9.230 254.745 5.608
+383.472 487.964 8.627 543.650 6.779 253.387 4.750
+383.629 486.779 8.037 542.666 7.294 251.683 4.271
+383.786 489.087 8.463 543.596 8.847 245.946 4.469
+383.943 490.390 8.942 544.106 8.090 249.639 5.596
+384.101 483.674 6.507 544.081 7.201 254.916 6.357
+384.259 486.556 6.225 542.590 7.353 247.109 5.896
+384.417 485.015 8.722 543.606 8.858 249.301 5.833
+384.574 489.210 7.100 543.576 7.606 255.253 5.612
+384.731 485.242 7.135 543.175 7.223 246.072 4.615
+384.888 480.572 8.991 542.581 7.227 248.190 9.326
+385.045 487.705 9.314 542.395 6.748 254.941 5.400
+385.203 485.377 7.779 543.564 8.502 249.539 5.026
+385.359 483.733 7.033 543.975 8.024 251.315 5.287
+385.516 489.747 6.718 540.789 9.171 253.103 4.453
+385.674 487.757 9.015 541.187 14.545 252.451 5.199
+385.830 480.927 6.715 546.351 7.074 243.224 10.180
+385.988 486.759 7.747 543.353 9.007 246.882 8.486
+386.145 491.817 8.073 543.403 7.460 247.928 9.759
+386.301 490.298 7.017 541.824 10.697 248.109 9.468
+386.458 487.933 7.659 544.108 8.970 250.961 9.378
+386.615 487.669 6.863 544.511 9.102 246.279 7.145
+386.772 483.996 7.465 544.865 7.588 255.512 6.985
+386.929 483.570 7.044 542.728 8.490 253.425 6.988
+387.086 488.335 10.911 541.887 8.254 254.114 5.240
+387.244 488.193 6.348 542.948 6.295 251.301 5.302
+387.402 487.901 6.452 542.539 7.342 247.283 4.957
+387.560 483.609 6.188 545.715 8.748 243.702 4.757
+387.718 490.566 7.458 541.867 9.914 253.377 10.049
+387.875 486.795 10.003 543.418 9.232 247.763 6.722
+388.032 479.197 7.656 541.224 8.266 251.467 6.137
+388.189 491.192 6.308 541.622 9.542 248.834 5.511
+388.347 486.572 6.620 541.026 9.203 251.108 6.501
+388.504 485.935 6.130 543.140 9.469 253.871 8.865
+388.661 490.889 7.875 541.881 7.153 249.098 4.394
+388.818 483.518 6.093 541.948 7.678 252.971 5.922
+388.977 485.345 7.255 543.079 8.689 249.629 4.428
+389.134 489.413 6.120 544.900 8.256 247.226 5.673
+389.292 491.244 6.880 540.289 7.369 253.542 5.587
+389.449 489.692 7.324 543.652 7.065 245.775 3.713
+389.607 495.267 9.271 543.486 7.506 251.637 4.446
+389.764 489.382 6.887 540.934 6.630 251.616 4.783
+389.921 491.873 7.053 542.909 7.726 249.446 5.224
+390.079 491.608 7.332 543.029 7.405 247.284 6.438
+390.236 491.726 6.782 541.950 6.492 253.662 8.948
+390.394 486.747 10.213 541.009 8.254 255.106 12.863
+390.551 493.857 6.975 543.330 7.179 250.521 8.343
+390.708 493.418 6.399 539.183 7.497 256.655 6.184
+390.866 491.444 7.471 540.901 7.032 245.646 3.800
+391.024 491.454 7.981 543.929 7.831 242.706 4.945
+391.181 495.384 7.833 542.989 7.872 252.647 4.949
+391.337 496.043 6.021 543.289 7.867 248.826 9.033
+391.493 491.590 6.545 542.643 6.530 250.238 4.326
+391.650 492.655 6.604 541.646 6.754 248.382 6.025
+391.807 495.776 6.268 542.716 7.416 248.603 5.418
+391.965 492.477 6.073 542.837 6.257 252.756 4.953
+392.122 491.394 7.208 542.008 6.341 250.497 7.104
+392.279 491.784 7.919 542.080 6.251 253.334 3.979
+392.436 496.627 7.518 541.940 6.692 252.653 3.742
+392.593 498.766 5.968 544.229 6.406 252.906 4.937
+392.751 494.797 6.339 542.012 6.574 244.159 4.788
+392.909 497.408 6.438 542.740 6.194 252.961 4.063
+393.066 499.384 7.746 542.677 6.689 255.199 4.098
+393.223 496.513 6.824 542.396 6.697 252.302 4.296
+393.381 493.425 12.801 540.734 7.376 251.373 8.725
+393.537 498.934 6.053 543.757 8.638 247.623 4.358
+393.695 498.829 6.306 541.557 6.480 254.176 5.440
+393.853 498.888 6.170 541.635 7.059 254.771 4.489
+394.011 496.278 8.469 543.426 7.014 248.787 4.588
+394.169 495.722 13.140 543.184 7.992 252.707 6.031
+394.325 500.917 7.478 543.761 7.091 250.467 7.197
+394.483 496.509 7.112 541.687 7.978 248.914 8.175
+394.639 500.405 10.071 544.576 7.334 253.079 4.649
+394.796 499.124 7.651 541.905 6.202 250.940 5.275
+394.955 494.091 7.843 544.579 7.739 243.989 4.948
+395.112 498.790 6.890 540.165 8.501 251.979 5.678
+395.270 498.527 9.907 542.961 9.357 248.889 7.944
+395.426 499.165 12.487 541.909 7.441 253.238 5.539
+395.583 501.351 10.379 540.899 8.707 236.962 10.345
+395.740 499.463 12.753 544.749 8.367 247.889 5.284
+395.897 496.624 9.680 542.157 8.495 256.828 6.012
+396.055 501.156 10.623 542.851 8.037 257.178 6.095
+396.212 499.611 7.342 540.368 6.987 252.751 5.244
+396.370 492.506 11.460 543.643 7.061 233.647 6.774
+396.527 498.185 13.705 542.536 8.942 250.236 10.869
+396.684 496.441 7.091 540.255 8.875 251.432 10.792
+396.842 510.304 8.602 540.752 8.138 254.514 13.773
+396.998 493.073 12.161 540.857 6.220 240.865 5.522
+397.156 501.530 15.489 542.168 11.400 250.438 8.916
+397.313 504.475 6.860 542.031 6.561 253.964 4.020
+397.470 504.124 8.401 542.510 9.191 259.919 5.383
+397.629 497.361 8.144 541.275 6.227 253.339 11.314
+397.785 491.513 12.296 540.802 7.797 240.553 12.842
+397.942 496.495 9.674 540.378 8.109 259.055 8.734
+398.099 492.955 10.707 540.263 9.307 256.000 17.800
+398.256 508.129 16.587 540.822 13.887 242.480 28.005
+398.411 498.821 10.504 544.538 7.731 230.194 11.724
+398.568 498.888 10.130 540.135 7.708 246.751 6.725
+398.725 504.438 8.889 541.661 9.123 259.827 7.946
+398.882 496.894 8.789 540.356 8.706 243.818 6.717
+399.038 496.049 7.651 542.383 7.121 251.158 13.445
+399.195 498.980 40.123 543.693 13.559 231.551 66.843
+399.348 498.399 18.292 539.147 12.578 254.195 19.630
+399.505 506.254 15.718 541.581 8.584 261.822 8.292
+399.662 496.012 7.774 542.335 7.200 237.268 15.355
+399.818 497.460 11.566 541.163 7.380 243.292 11.107
+399.974 502.804 14.473 545.741 10.156 242.442 8.858
+400.131 493.158 8.019 541.117 9.972 254.264 13.011
+400.288 497.771 10.852 542.101 11.380 254.322 9.460
+400.444 497.917 9.410 542.261 9.558 245.323 10.417
+400.601 500.589 8.327 543.332 6.492 248.273 7.856
+400.758 493.265 7.098 543.143 8.744 251.652 7.303
+400.915 496.252 7.925 543.311 10.706 254.416 6.751
+401.073 501.932 6.807 539.653 8.148 265.674 6.040
+401.230 499.069 8.974 541.386 7.396 254.446 7.058
+401.388 494.720 7.814 542.253 7.833 244.984 7.421
+401.544 501.037 10.877 542.202 7.723 238.699 10.522
+401.702 498.510 9.717 542.292 11.642 246.267 12.136
+401.859 494.285 13.307 539.062 8.892 265.412 11.241
+402.016 498.032 8.984 540.420 11.197 251.384 8.830
+402.173 501.990 11.755 544.134 8.051 242.753 5.671
+402.330 499.239 9.394 543.391 8.732 243.287 9.320
+402.487 498.632 10.507 540.733 8.912 249.592 9.280
+402.644 495.686 8.790 540.077 9.300 256.965 8.296
+402.801 503.716 15.756 539.960 6.983 259.969 6.700
+402.957 496.677 9.420 541.649 8.423 242.509 7.422
+403.114 494.486 7.731 540.876 6.967 252.455 6.339
+403.271 503.784 10.172 539.938 9.692 256.714 7.217
+403.428 496.687 14.292 538.699 10.261 247.557 8.962
+403.584 503.786 11.224 541.987 9.165 253.115 8.567
+403.741 495.767 9.139 539.339 7.522 242.961 6.734
+403.898 495.077 10.557 539.633 12.647 251.169 7.579
+404.056 501.680 8.211 538.796 6.748 259.981 5.846
+404.213 498.086 11.270 539.498 6.687 251.559 6.182
+404.370 492.330 10.444 542.705 10.170 243.205 10.176
+404.527 492.533 9.965 541.977 9.923 248.832 8.427
+404.684 498.165 6.727 539.839 8.226 257.018 4.171
+404.842 500.551 7.747 538.818 7.880 263.920 7.427
+404.999 495.245 7.068 539.748 8.033 245.919 6.361
+405.156 496.772 6.231 540.067 7.761 249.879 6.380
+405.314 498.777 9.383 541.700 7.976 246.648 7.506
+405.470 493.757 7.516 540.827 7.723 247.196 8.443
+405.627 498.157 11.209 537.608 6.819 260.352 8.375
+405.783 495.391 10.854 538.896 7.005 250.523 8.618
+405.941 491.223 6.731 540.139 6.596 249.365 6.393
+406.098 497.982 10.499 542.741 8.111 249.523 6.437
+406.256 499.239 7.612 540.077 6.663 252.035 4.544
+406.413 496.992 6.367 541.320 7.546 249.310 5.709
+406.571 495.859 8.489 537.483 7.823 249.033 6.945
+406.727 506.508 7.718 540.064 6.372 253.430 4.793
+406.885 493.635 10.017 539.700 7.191 249.434 5.015
+407.042 499.316 6.981 539.887 6.802 246.084 5.077
+407.199 499.483 6.718 540.118 6.504 253.400 5.804
+407.357 497.004 7.192 539.511 7.029 250.964 5.091
+407.514 499.140 7.867 541.315 6.896 244.619 3.711
+407.671 498.791 6.879 539.113 7.640 247.876 5.372
+407.829 503.337 7.403 540.221 6.806 251.948 4.129
+407.986 499.253 6.173 538.902 7.184 249.409 3.482
+408.144 500.322 6.140 540.309 7.046 249.804 5.412
+408.302 497.363 7.069 539.033 8.230 250.068 4.425
+408.459 501.913 7.980 541.410 8.045 253.370 7.113
+408.615 493.879 7.457 539.154 7.627 247.673 8.109
+408.772 498.978 9.656 539.031 10.220 252.466 7.346
+408.929 503.949 9.387 541.940 7.241 248.164 8.729
+409.084 495.519 8.806 541.589 7.828 246.761 7.319
+409.241 496.435 7.082 539.385 8.644 249.887 5.782
+409.399 499.234 7.581 540.723 7.823 253.388 6.192
+409.556 493.742 7.501 539.077 7.703 251.773 7.626
+409.713 492.347 7.896 537.070 8.279 251.247 9.197
+409.869 497.453 9.608 538.730 9.661 251.172 10.941
+410.025 500.834 12.431 538.577 9.171 250.391 5.957
+410.182 491.718 7.576 540.715 8.512 245.993 5.614
+410.339 509.787 8.855 541.427 7.937 247.959 8.656
+410.495 501.517 6.662 539.804 6.679 251.719 6.716
+410.652 494.935 9.310 540.728 7.541 240.637 11.630
+410.809 500.109 8.903 540.927 12.108 243.296 8.361
+410.965 500.951 8.126 537.899 8.352 248.802 7.620
+411.121 501.069 8.677 540.859 8.952 249.248 7.600
+411.278 498.080 7.458 538.118 7.826 270.222 5.811
+411.436 499.690 7.367 539.641 7.102 262.172 7.373
+411.593 494.986 7.843 539.646 7.756 233.291 6.853
+411.750 496.559 7.501 540.616 7.740 254.662 13.742
+411.906 509.115 12.806 539.126 12.669 241.536 9.805
+412.063 490.201 11.435 535.061 11.549 257.545 11.216
+412.221 511.982 10.093 540.860 7.718 255.285 11.592
+412.379 495.189 8.008 543.048 7.190 246.132 4.816
+412.537 490.491 8.275 538.640 8.187 259.461 12.613
+412.694 502.674 7.836 542.176 8.160 252.934 6.138
+412.850 502.176 8.418 539.961 7.978 233.709 9.031
+413.006 494.581 11.335 542.099 7.764 239.117 8.923
+413.163 504.175 8.474 539.451 7.068 255.131 4.809
+413.321 504.981 8.808 538.504 7.664 261.551 4.940
+413.478 495.809 7.211 541.225 7.346 246.405 5.887
+413.636 498.928 7.345 541.942 8.652 239.424 6.512
+413.794 496.369 8.196 538.619 8.443 259.084 5.968
+413.952 496.443 7.921 538.336 8.105 262.280 7.790
+414.108 496.854 7.937 540.423 7.528 244.422 5.446
+414.265 497.438 6.746 540.314 7.962 246.534 5.213
+414.423 500.554 7.463 538.733 6.975 249.855 4.816
+414.580 496.835 7.146 538.747 6.893 251.488 4.437
+414.738 495.558 7.187 539.537 7.346 254.314 5.539
+414.895 503.415 10.578 539.625 9.091 247.453 9.641
+415.051 486.904 11.798 540.026 7.739 247.174 11.766
+415.209 496.869 8.486 538.490 8.898 250.841 5.576
+415.366 498.368 7.446 538.124 8.379 250.478 5.822
+415.523 496.133 6.683 538.991 7.073 252.914 5.709
+415.681 495.871 6.482 540.590 8.609 241.009 4.954
+415.838 498.298 10.076 538.295 8.470 252.590 5.104
+415.995 493.573 7.084 540.083 7.987 252.105 7.761
+416.152 495.455 9.471 539.830 6.996 244.651 5.850
+416.309 499.344 8.094 540.428 8.345 246.626 6.141
+416.466 492.193 6.430 537.964 7.180 246.466 8.213
+416.623 495.132 7.033 540.399 6.955 249.814 10.257
+416.780 490.021 6.146 540.154 7.138 250.208 5.582
+416.938 500.300 7.731 539.851 8.216 252.742 8.156
+417.094 498.413 6.255 539.068 7.038 255.037 3.616
+417.253 496.124 8.994 544.640 9.662 245.060 14.777
+417.409 494.531 6.918 541.596 7.214 250.270 7.457
+417.566 496.565 6.778 540.216 8.153 250.592 5.483
+417.723 495.275 6.803 540.462 8.446 248.075 7.990
+417.879 496.112 10.911 541.244 7.940 248.230 5.749
+418.036 497.871 7.675 540.822 6.469 251.662 7.404
+418.193 496.648 6.459 537.968 7.315 253.016 4.733
+418.351 497.596 6.144 541.009 6.985 245.900 4.513
+418.508 496.685 6.027 540.120 6.904 249.799 5.015
+418.666 502.856 6.080 540.511 7.366 246.888 3.831
+418.824 498.088 6.595 539.345 7.091 250.538 6.261
+418.981 490.060 5.991 539.393 7.719 247.375 7.102
+419.139 494.440 6.524 541.374 6.909 255.183 5.196
+419.297 497.584 10.335 538.123 7.062 258.631 7.933
+419.453 499.355 6.083 541.281 7.574 252.866 5.843
+419.611 500.683 8.665 541.392 8.277 244.008 4.278
+419.769 498.926 8.088 541.043 6.948 249.110 8.101
+419.926 489.259 10.441 539.080 7.920 253.391 5.780
+420.083 499.132 8.624 539.690 6.631 253.073 4.834
+420.241 503.281 9.647 540.776 7.269 253.560 4.540
+420.397 495.732 10.194 539.517 8.721 243.125 7.965
+420.553 504.427 6.990 540.835 8.633 251.001 5.382
+420.709 505.924 8.593 540.648 8.614 243.710 6.161
+420.866 495.619 8.223 540.776 6.857 242.967 7.404
+421.023 497.586 6.164 537.057 8.345 251.079 3.796
+421.182 495.265 7.051 539.140 7.543 256.180 5.400
+421.340 496.992 10.853 537.521 8.946 258.291 5.640
+421.498 502.600 7.307 541.105 7.087 238.982 4.898
+421.656 506.096 8.232 542.231 8.744 241.759 9.432
+421.812 500.141 7.023 540.722 7.494 248.837 4.396
+421.969 499.671 6.566 538.517 8.174 253.268 4.563
+422.127 497.486 7.842 538.015 6.996 260.112 5.186
+422.285 494.624 7.762 539.240 8.544 246.311 6.442
+422.442 490.576 7.644 538.652 7.803 248.863 4.572
+422.599 501.075 5.646 540.676 6.957 251.788 4.643
+422.757 496.460 7.689 539.216 7.747 249.747 4.805
+422.914 499.894 7.361 540.402 7.514 251.837 5.107
+423.072 498.379 7.258 540.924 7.835 243.878 6.722
+423.228 498.663 6.469 539.449 6.748 252.378 6.060
+423.386 494.806 6.840 538.704 6.716 253.663 5.629
+423.543 498.538 9.616 539.607 8.428 251.596 6.205
+423.700 497.705 7.226 540.796 7.306 248.696 4.518
+423.857 500.617 6.865 541.598 7.120 244.226 5.343
+424.015 498.026 6.540 540.196 7.946 246.492 5.131
+424.172 500.980 6.367 538.142 7.094 257.484 5.469
+424.331 499.169 7.578 539.771 10.919 250.974 5.199
+424.489 501.401 9.386 539.237 7.845 257.949 5.913
+424.645 497.284 6.893 539.922 8.212 244.869 7.332
+424.801 497.902 6.540 539.919 6.794 247.188 5.305
+424.959 496.719 8.270 540.069 7.513 246.351 5.579
+425.117 494.577 7.351 537.780 8.589 247.103 8.428
+425.274 493.715 8.426 535.007 7.688 253.031 8.528
+425.431 503.027 6.865 537.420 7.064 253.620 7.859
+425.587 495.630 6.272 541.174 6.906 243.806 3.899
+425.745 494.086 8.569 541.781 10.011 233.898 12.458
+425.901 494.450 11.513 541.217 11.188 252.128 8.625
+426.059 497.444 8.352 536.982 9.059 256.351 4.890
+426.217 501.664 7.825 539.469 11.349 247.723 10.344
+426.373 502.076 7.588 541.734 8.021 250.717 4.554
+426.530 500.150 7.580 539.507 6.775 249.737 4.356
+426.688 500.081 6.269 541.055 7.323 244.887 5.531
+426.845 493.890 7.226 541.790 10.072 240.348 7.399
+427.002 496.758 7.055 539.708 10.949 247.953 5.079
+427.159 504.867 8.226 540.077 10.700 249.909 6.860
+427.317 504.388 7.886 542.180 7.866 248.989 6.278
+427.474 510.033 6.353 543.221 7.132 246.709 4.196
+427.631 502.680 7.159 542.302 8.097 239.137 6.479
+427.788 504.486 7.735 542.823 10.314 251.581 5.588
+427.946 499.564 7.823 541.758 8.039 246.825 7.020
+428.102 496.505 8.297 543.017 8.640 244.328 7.260
+428.259 500.295 7.430 540.620 7.051 258.763 5.584
+428.417 503.882 9.067 539.406 7.652 256.487 6.210
+428.575 503.368 9.818 543.124 8.911 252.984 12.380
+428.731 504.543 8.157 545.911 6.555 234.039 6.328
+428.887 499.365 9.963 543.079 8.307 248.220 7.326
+429.044 495.963 6.499 542.590 7.613 256.662 6.187
+429.203 500.459 8.671 541.496 7.352 268.966 9.069
+429.361 497.424 7.197 543.225 7.372 249.289 5.421
+429.518 497.474 7.094 544.142 7.818 245.962 5.036
+429.676 498.614 7.156 544.461 8.115 250.119 5.854
+429.833 498.826 6.566 543.674 7.472 251.381 6.251
+429.991 491.488 6.761 542.276 7.028 258.733 4.676
+430.149 501.744 7.762 543.872 6.869 252.687 4.819
+430.306 506.857 10.781 545.048 8.175 247.266 5.493
+430.463 502.388 7.006 542.690 7.966 250.442 5.912
+430.619 494.683 7.186 544.576 9.854 237.134 7.856
+430.776 495.266 12.801 543.655 9.951 242.561 8.222
+430.933 503.312 7.402 542.946 6.994 264.535 5.791
+431.092 494.853 8.001 543.539 7.059 256.765 6.619
+431.248 504.788 12.592 543.815 7.480 253.887 6.147
+431.405 502.157 6.878 546.018 7.131 241.748 4.959
+431.563 494.001 6.770 546.240 7.432 242.647 4.692
+431.720 501.310 7.627 542.982 6.675 252.806 4.395
+431.877 495.743 6.439 542.909 8.545 254.418 5.084
+432.035 499.877 6.673 542.309 7.780 249.844 4.850
+432.192 496.448 6.827 543.813 7.150 246.378 3.965
+432.348 500.384 6.626 543.058 6.738 248.723 4.569
+432.506 501.683 6.765 542.500 7.171 253.537 6.936
+432.663 507.576 6.796 544.015 7.268 245.485 6.027
+432.821 496.275 7.630 545.860 7.018 243.184 4.831
+432.979 503.492 8.509 543.288 6.849 256.421 7.201
+433.137 506.244 7.132 541.402 7.804 257.214 6.694
+433.295 498.862 7.049 544.134 7.959 245.532 5.849
+433.452 496.048 9.858 546.461 7.382 244.255 4.212
+433.609 506.070 7.828 543.784 8.173 252.902 6.953
+433.766 508.960 8.241 541.077 6.857 260.999 4.532
+433.925 503.449 6.488 546.320 6.421 249.810 4.646
+434.083 503.354 6.250 547.143 8.244 242.048 4.423
+434.241 506.163 7.078 548.371 6.636 244.370 6.030
+434.400 497.601 7.074 544.083 6.261 259.413 5.240
+434.558 509.736 10.882 547.720 9.549 250.474 12.641
+434.715 506.057 7.341 546.577 7.101 251.564 4.138
+434.872 502.480 10.197 549.385 9.452 241.775 14.762
+435.029 503.224 6.212 547.573 7.752 252.257 11.100
+435.186 498.862 7.094 547.345 6.694 253.212 4.365
+435.343 499.888 6.286 550.433 6.751 250.652 3.543
+435.502 497.158 5.978 547.944 6.993 253.186 5.905
+435.659 501.611 7.473 550.839 11.065 247.421 11.520
+435.816 503.186 7.014 548.198 8.496 257.194 7.993
+435.973 502.681 6.974 548.562 7.946 254.831 7.405
+436.130 500.326 7.771 548.235 6.666 253.848 4.106
+436.287 497.263 6.782 548.952 7.933 247.658 9.115
+436.444 501.652 8.381 552.159 8.083 247.456 8.116
+436.601 503.406 7.786 546.141 7.655 262.564 15.341
+436.758 499.594 8.404 549.181 7.685 256.475 6.562
+436.915 497.725 10.480 548.751 6.998 249.944 7.376
+437.072 498.687 6.590 550.327 8.340 258.289 7.289
+437.229 496.666 8.356 550.513 7.131 241.972 5.018
+437.386 494.266 6.774 549.805 7.398 244.299 4.662
+437.544 499.382 7.001 553.358 7.143 259.753 7.503
+437.702 495.133 10.470 546.393 8.687 258.827 10.193
+437.859 501.961 7.716 550.723 6.832 260.058 9.658
+438.017 494.539 8.595 554.997 9.631 240.350 7.354
+438.173 502.265 7.401 552.040 9.254 250.663 6.548
+438.331 499.262 7.229 547.700 8.192 260.796 5.281
+438.489 501.012 6.990 548.157 6.683 255.487 5.732
+438.646 500.860 7.167 553.171 6.783 243.184 7.764
+438.803 491.488 8.163 552.131 8.954 240.671 9.434
+438.959 495.774 7.487 548.751 7.392 245.236 9.036
+439.117 506.587 8.082 549.867 8.639 272.122 11.088
+439.274 499.995 8.206 548.968 6.922 257.241 5.323
+439.433 500.280 6.975 549.479 6.134 245.332 5.132
+439.590 499.002 7.235 550.784 6.989 242.773 5.637
+439.748 505.950 6.566 552.057 7.575 241.957 7.112
+439.906 499.479 7.303 548.760 7.227 257.109 7.065
+440.064 497.544 8.528 549.917 6.851 264.131 7.938
+440.221 494.465 9.414 551.239 7.143 245.911 9.436
+440.377 496.384 7.918 551.132 6.631 249.179 5.002
+440.534 496.613 7.306 548.891 6.865 255.931 8.100
+440.691 494.306 6.686 549.079 7.147 250.109 4.929
+440.848 507.003 11.199 549.950 6.942 255.951 12.879
+441.007 502.570 7.449 552.909 7.882 243.769 14.064
+441.163 496.455 10.894 546.959 7.058 245.617 7.952
+441.320 500.544 11.620 552.259 7.440 245.766 7.297
+441.477 500.285 6.965 549.502 7.104 259.407 8.326
+441.635 490.582 6.959 547.475 7.143 256.364 5.745
+441.794 498.615 7.727 550.034 6.905 252.573 9.364
+441.950 498.706 7.352 552.600 6.825 254.175 5.687
+442.109 501.827 8.082 551.636 7.438 247.081 8.210
+442.264 493.298 9.332 544.726 8.099 249.400 16.213
+442.421 498.163 9.858 552.377 9.440 260.284 9.811
+442.577 497.391 7.422 549.283 7.646 254.752 6.511
+442.735 496.533 7.228 547.982 6.390 254.147 6.605
+442.892 502.025 7.227 552.769 8.140 243.181 13.194
+443.048 496.460 11.501 547.897 7.217 251.711 10.189
+443.205 497.534 10.234 547.079 8.004 250.597 14.295
+443.362 492.815 8.367 551.430 6.996 253.286 6.640
+443.520 503.658 13.280 550.004 8.033 251.672 14.167
+443.675 493.066 9.699 549.540 7.886 250.036 4.878
+443.832 494.190 6.720 550.395 6.665 236.470 5.748
+443.990 504.521 7.134 548.674 6.846 268.614 8.104
+444.148 500.745 7.717 552.216 8.165 249.986 10.560
+444.304 497.437 6.280 548.522 6.937 247.019 5.663
+444.461 492.054 6.959 553.385 8.050 243.980 4.685
+444.619 499.250 6.831 547.613 6.836 259.919 4.289
+444.777 496.162 8.244 546.416 6.329 254.249 8.498
+444.935 504.171 7.783 548.164 8.112 254.512 8.821
+445.091 498.001 8.378 551.461 7.505 238.785 12.435
+445.247 491.380 7.535 551.234 7.052 234.357 10.590
+445.404 497.133 6.731 549.342 7.167 270.613 6.280
+445.563 500.591 8.371 547.903 9.090 263.096 9.705
+445.720 499.305 7.033 547.219 7.557 257.521 6.841
+445.877 500.263 12.472 557.192 11.061 239.315 16.103
+446.033 500.262 7.671 548.232 7.584 250.093 6.039
+446.191 499.892 8.954 550.672 6.374 260.790 5.635
+446.349 495.649 7.024 549.846 6.645 252.977 5.191
+446.507 497.036 7.694 548.268 6.536 246.349 5.627
+446.665 499.470 10.570 549.992 6.588 254.233 4.819
+446.822 501.354 9.149 548.550 7.481 250.292 6.911
+446.979 495.383 7.208 549.005 7.353 245.702 6.208
+447.136 498.523 9.784 547.800 6.862 249.237 10.497
+447.293 493.655 11.561 546.708 6.530 245.522 7.592
+447.449 498.656 10.913 551.137 7.380 252.145 8.176
+447.608 493.016 7.503 548.511 6.790 256.871 9.567
+447.765 495.090 10.073 545.465 7.833 259.938 4.385
+447.922 505.340 6.689 551.974 7.966 249.459 6.206
+448.080 501.103 7.806 549.719 7.954 245.494 5.580
+448.237 489.561 9.455 548.207 6.557 237.674 4.480
+448.395 498.735 6.291 551.582 6.451 257.426 5.792
+448.554 505.907 6.635 549.985 6.484 262.304 5.138
+448.712 502.519 8.121 548.139 6.555 249.323 4.740
+448.869 495.385 7.200 551.251 6.296 258.983 4.241
+449.027 498.533 7.084 553.012 7.246 238.149 4.394
+449.184 500.025 14.511 548.920 7.792 249.921 8.130
+449.341 492.360 9.304 548.089 8.214 256.119 8.447
+449.497 503.673 9.752 549.091 8.662 251.751 7.202
+449.655 496.676 7.977 549.020 6.460 254.967 9.183
+449.811 493.016 7.519 548.090 9.217 250.699 6.793
+449.968 500.140 9.556 548.681 7.739 249.797 7.118
+450.125 504.071 7.389 548.566 7.284 255.967 4.579
+450.282 496.080 7.358 547.475 7.950 244.809 5.665
+450.440 500.100 7.330 546.934 6.729 255.208 4.392
+450.598 500.661 7.857 549.089 7.379 249.072 6.913
+450.755 496.596 9.546 546.770 7.624 250.410 6.549
+450.912 494.675 7.385 549.597 6.902 249.814 5.274
+451.069 496.736 6.636 546.206 6.885 255.558 3.662
+451.227 491.827 7.049 546.012 7.148 250.135 5.733
+451.384 494.588 7.284 548.770 7.992 248.231 5.358
+451.541 488.455 9.038 549.307 7.814 254.902 6.744
+451.699 495.904 7.437 547.243 8.226 254.279 6.960
+451.857 492.169 6.618 547.852 7.588 256.972 6.012
+452.014 494.401 7.367 548.948 7.412 243.719 4.389
+452.172 497.894 9.559 549.639 8.990 254.557 6.222
+452.329 494.978 6.918 546.746 7.286 256.035 5.824
+452.488 487.659 7.063 544.827 7.836 246.860 5.632
+452.646 504.646 7.206 550.318 7.915 252.698 5.458
+452.803 492.896 7.983 549.043 7.678 245.877 6.188
+452.960 492.469 7.200 546.640 7.117 253.658 6.476
+453.118 492.704 6.501 547.296 7.946 251.736 4.586
+453.275 494.637 7.015 546.773 7.822 252.067 5.163
+453.432 491.566 7.089 548.207 6.686 249.340 4.591
+453.590 486.005 11.441 545.082 6.282 253.963 7.302
+453.748 494.210 8.201 546.990 7.796 255.529 5.728
+453.905 489.482 7.473 547.959 6.875 249.615 4.092
+454.062 491.014 8.277 547.439 7.643 248.286 6.064
+454.219 487.850 8.770 547.674 8.420 241.712 6.619
+454.377 488.338 7.750 546.706 8.603 260.747 7.496
+454.534 488.633 7.791 546.477 7.058 249.967 4.362
+454.691 490.536 6.945 549.544 7.691 252.349 4.036
+454.848 492.615 9.908 549.735 7.173 242.693 6.099
+455.005 491.716 8.895 550.397 8.100 247.216 5.077
+455.161 488.957 9.220 549.034 9.548 251.802 6.350
+455.318 488.219 7.643 547.670 7.421 251.378 3.977
+455.475 491.522 6.290 546.096 8.093 250.783 6.423
+455.632 485.345 9.502 547.491 8.034 250.667 6.106
+455.789 491.343 8.222 547.874 10.027 250.046 6.582
+455.946 489.173 7.038 545.628 8.727 248.420 5.553
+456.104 489.881 7.421 547.606 7.875 254.904 7.329
+456.261 489.758 9.794 545.376 9.133 252.179 7.313
+456.417 487.957 8.770 547.583 8.084 251.631 6.355
+456.574 487.639 8.957 548.645 8.820 247.056 5.526
+456.730 489.156 8.687 550.686 9.545 250.570 7.839
+456.886 487.381 7.704 546.016 10.912 252.785 7.964
+457.043 488.253 8.621 549.860 7.474 253.037 5.429
+457.200 488.562 7.822 547.868 8.155 251.860 6.351
+457.357 486.265 8.813 546.918 8.942 255.428 6.632
+457.514 488.142 7.486 546.589 9.461 250.754 6.586
+457.671 490.101 7.571 547.925 7.623 251.437 5.412
+457.829 485.601 8.297 546.289 7.063 253.124 6.549
+457.986 487.906 8.413 546.192 7.010 250.921 4.479
+458.143 492.499 8.910 545.482 7.555 255.189 6.715
+458.300 487.535 8.762 545.534 7.372 249.101 4.492
+458.457 487.335 9.089 545.445 7.729 254.381 7.480
+458.614 486.253 7.970 549.184 8.301 248.733 5.144
+458.771 489.622 8.932 548.621 10.536 249.977 7.103
+458.928 488.866 7.720 547.286 8.844 251.689 5.291
+459.085 484.718 20.101 546.742 11.226 253.466 9.669
+459.241 488.017 12.146 546.737 9.901 252.504 6.993
+459.398 496.500 8.875 545.357 8.366 255.165 6.905
+459.555 488.855 9.705 546.053 7.528 250.021 4.839
+459.712 491.628 7.090 546.070 7.025 251.660 6.397
+459.869 491.186 8.602 545.150 7.135 256.116 3.330
+460.027 490.571 8.904 546.231 7.204 252.081 5.719
+460.185 486.245 7.561 544.632 8.787 245.810 6.717
+460.342 486.822 8.229 543.596 8.784 255.418 5.196
+460.498 489.118 7.399 545.786 8.227 253.884 4.831
+460.656 490.361 8.817 545.097 9.633 255.308 5.006
+460.813 491.373 7.570 546.071 9.744 245.713 6.215
+460.970 490.513 6.841 545.620 9.202 253.107 6.522
+461.128 489.965 7.195 545.886 7.780 250.831 6.142
+461.285 487.499 7.518 544.208 9.747 254.008 6.169
+461.443 493.795 6.410 544.362 9.260 251.840 4.226
+461.600 488.757 7.823 546.223 8.214 248.298 5.425
+461.757 492.727 8.263 545.032 6.816 254.192 4.761
+461.915 492.537 10.476 547.830 7.314 250.821 5.004
+462.073 491.585 9.352 544.268 8.161 253.898 5.445
+462.230 483.645 8.051 546.262 8.595 247.048 5.080
+462.387 496.146 9.448 545.052 10.680 253.200 4.996
+462.545 485.751 10.614 545.160 7.611 253.932 5.436
+462.703 487.697 10.091 547.111 10.578 251.519 7.244
+462.861 480.707 10.216 545.591 10.279 254.715 7.165
+463.019 489.717 6.363 541.866 9.917 254.117 6.413
+463.176 484.367 9.361 546.158 9.720 246.051 4.958
+463.334 486.763 8.852 544.841 8.057 255.270 5.859
+463.492 484.867 9.573 545.368 9.977 252.802 7.069
+463.649 483.418 7.872 544.683 10.600 251.668 10.102
+463.805 483.284 8.287 549.246 9.847 255.556 7.122
+463.963 489.092 7.111 543.712 8.518 255.595 6.940
+464.120 485.540 8.125 544.077 8.577 257.035 5.540
+464.277 485.615 8.214 548.130 8.118 248.930 6.395
+464.434 487.156 8.423 547.831 7.191 247.009 8.021
+464.590 481.381 15.453 544.508 10.059 248.810 9.906
+464.747 486.323 17.360 545.065 11.374 255.248 8.998
+464.904 490.643 9.466 543.490 8.970 255.002 5.320
+465.062 482.286 7.290 546.004 10.950 243.610 7.592
+465.219 493.622 8.914 543.770 8.580 252.196 8.356
+465.375 487.526 9.013 545.137 8.626 252.321 5.245
+465.533 488.655 8.810 546.061 8.209 251.193 5.886
+465.690 493.416 9.254 545.940 7.459 250.321 5.428
+465.846 490.274 9.839 544.139 7.753 250.393 5.856
+466.004 495.562 8.334 546.931 6.370 250.633 4.897
+466.161 488.405 9.799 545.919 7.295 243.826 7.180
+466.318 495.244 9.529 545.969 7.142 254.028 6.153
+466.476 498.322 11.089 544.719 9.887 247.510 12.227
+466.633 493.173 7.710 544.887 8.141 250.275 7.413
+466.789 494.621 7.089 545.208 7.214 248.442 7.155
+466.946 501.846 6.201 544.802 6.907 249.844 4.547
+467.104 493.408 7.739 544.598 6.796 250.428 5.459
+467.262 493.384 7.218 543.756 6.809 253.694 5.570
+467.419 495.483 7.324 544.487 7.921 244.486 7.934
+467.575 498.254 6.839 545.174 7.108 246.814 5.011
+467.733 497.712 7.044 544.101 7.615 256.758 4.507
+467.891 499.407 7.326 543.991 8.511 250.267 6.033
+468.047 502.404 6.858 545.179 7.257 247.122 4.656
+468.205 496.714 7.558 543.531 8.923 259.271 8.438
+468.363 499.987 11.145 544.795 9.540 256.452 7.600
+468.519 498.799 7.872 544.128 7.188 248.774 7.718
+468.676 492.288 14.215 546.471 9.109 230.507 9.922
+468.832 494.152 10.771 543.284 8.064 249.645 7.031
+468.990 507.581 8.555 546.072 8.520 261.416 7.654
+469.148 501.595 7.855 541.830 6.629 257.084 5.246
+469.305 495.215 9.009 546.978 7.047 244.890 7.064
+469.462 490.122 9.253 543.889 7.580 243.118 10.562
+469.619 495.701 11.437 544.768 9.093 249.471 11.777
+469.776 498.887 8.411 544.277 9.405 252.684 9.607
+469.933 498.008 12.620 543.922 9.507 261.206 8.869
+470.090 501.200 10.333 544.739 7.283 253.332 7.550
+470.247 496.052 8.207 546.287 6.941 235.913 4.928
+470.404 498.120 9.342 546.282 7.302 245.719 6.430
+470.562 502.231 9.013 543.662 8.605 266.177 8.795
+470.719 501.802 9.714 541.206 8.022 251.381 5.706
+470.876 494.468 10.691 548.602 7.739 235.173 10.683
+471.033 502.504 8.039 545.376 7.376 244.311 9.927
+471.189 503.715 12.029 543.283 9.464 261.663 8.057
+471.347 493.417 12.464 543.602 7.545 253.306 10.381
+471.503 500.194 10.513 543.516 8.557 246.423 6.121
+471.661 499.291 6.632 545.575 8.288 247.384 6.633
+471.817 492.982 7.364 543.435 6.775 256.053 5.236
+471.976 498.109 7.905 544.264 6.704 257.910 10.199
+472.133 500.321 7.063 544.872 7.302 245.589 7.904
+472.289 493.753 8.609 546.658 7.509 246.065 4.541
+472.447 498.417 11.298 544.436 7.324 252.300 7.332
+472.604 501.624 9.666 543.164 9.477 255.503 10.669
+472.761 499.206 10.735 544.211 8.354 253.675 13.962
+472.917 500.392 10.325 543.462 7.585 243.396 5.281
+473.075 497.953 11.000 543.784 9.047 243.463 6.382
+473.233 499.379 8.403 545.247 6.763 253.394 6.063
+473.390 496.423 7.827 541.822 7.169 259.133 6.735
+473.547 500.714 12.361 542.168 9.575 252.911 8.906
+473.703 500.567 11.964 545.401 10.240 240.109 9.982
+473.860 495.285 8.308 542.854 8.162 247.861 5.775
+474.017 502.082 10.928 541.918 6.460 260.568 5.194
+474.175 500.370 7.612 542.099 8.073 249.705 6.589
+474.333 494.423 7.814 543.061 6.560 251.367 6.197
+474.490 501.454 8.672 545.550 7.192 246.203 5.710
+474.647 501.294 15.983 543.095 7.964 250.482 9.149
+474.802 495.532 9.170 546.531 7.033 247.584 5.072
+474.959 496.345 7.735 546.115 9.710 248.795 6.738
+475.116 500.623 9.931 541.501 7.294 256.967 5.669
+475.274 503.706 9.782 545.875 7.809 255.539 9.691
+475.432 496.207 13.839 543.568 8.181 240.805 22.604
+475.588 499.462 9.379 543.185 7.637 245.408 7.104
+475.744 499.464 10.921 543.741 7.674 250.104 10.206
+475.902 496.984 6.740 543.497 7.197 264.181 7.579
+476.059 497.339 9.696 542.955 7.558 251.111 9.780
+476.216 498.063 12.834 545.089 8.502 243.351 10.534
+476.372 501.050 10.101 543.591 7.641 252.083 4.988
+476.530 493.870 15.309 541.895 9.042 253.340 7.356
+476.687 500.838 6.248 542.539 6.744 255.043 4.517
+476.845 499.968 8.213 546.195 8.929 250.300 5.835
+477.002 497.489 6.478 545.362 6.216 249.592 5.537
+477.159 496.934 7.264 543.653 7.212 243.585 3.769
+477.317 496.039 9.009 544.586 7.274 254.285 5.878
+477.474 496.620 6.218 544.515 8.162 245.692 5.611
+477.632 501.926 6.496 542.945 8.405 258.496 8.520
+477.789 491.489 19.586 545.479 12.032 243.154 9.665
+477.946 502.034 7.694 542.144 6.774 259.321 11.340
+478.103 501.830 12.019 544.491 6.598 250.773 8.070
+478.259 495.828 7.395 541.644 6.818 249.567 5.586
+478.416 502.188 8.783 546.056 7.101 243.355 8.133
+478.573 500.991 10.158 543.710 7.856 255.833 6.192
+478.730 499.039 10.959 542.047 8.006 251.778 6.598
+478.886 500.350 9.493 544.130 6.742 245.927 5.921
+479.044 501.873 7.134 546.441 6.686 246.139 5.769
+479.201 498.988 8.225 543.484 7.291 250.211 5.085
+479.359 498.129 9.178 544.814 8.738 249.292 11.779
+479.515 505.661 9.229 544.748 7.538 249.732 5.749
+479.673 498.866 7.657 544.127 6.891 248.507 7.701
+479.829 494.068 9.458 544.391 6.721 253.105 8.376
+479.987 496.910 8.841 545.334 6.402 254.401 8.336
+480.144 501.699 9.654 544.993 6.408 255.424 11.886
+480.300 497.887 10.887 543.949 7.291 245.484 5.790
+480.458 503.288 7.106 545.219 7.824 242.684 6.451
+480.615 497.602 6.979 544.512 8.941 257.106 9.504
+480.773 495.086 7.398 542.975 7.742 259.801 5.225
+480.932 502.490 8.018 542.799 6.713 258.918 3.837
+481.090 504.784 10.963 545.578 6.698 240.859 8.389
+481.246 496.347 9.388 544.665 7.850 241.958 5.525
+481.404 498.403 8.095 542.326 6.849 262.379 4.719
+481.562 500.474 8.369 541.173 7.021 251.443 4.946
+481.718 499.344 8.954 544.581 7.217 237.874 9.954
+481.875 493.643 7.997 542.915 8.145 230.138 13.486
+482.031 495.516 7.502 543.439 7.376 268.611 9.002
+482.188 500.685 9.354 542.004 6.608 255.126 11.087
+482.346 511.006 16.951 542.270 12.116 261.621 15.651
+482.501 501.810 10.451 548.432 8.759 237.636 10.814
+482.658 495.768 8.707 542.944 6.915 229.016 6.896
+482.816 499.517 8.335 541.839 7.093 274.810 9.971
+482.972 502.625 9.522 540.998 8.445 265.138 6.747
+483.129 498.866 11.038 544.410 7.935 240.571 6.376
+483.286 498.998 8.248 547.474 7.845 238.525 5.567
+483.443 499.160 11.823 545.474 8.570 254.515 5.350
+483.602 503.771 9.303 542.954 7.013 268.595 8.376
+483.759 498.937 6.199 543.349 8.417 241.745 6.515
+483.916 499.389 7.394 543.123 6.607 249.987 5.115
+484.073 497.343 7.892 544.251 7.606 250.049 5.073
+484.231 501.133 10.610 544.302 7.151 256.820 10.958
+484.388 495.561 10.441 543.933 9.180 254.498 5.438
+484.545 503.425 11.823 543.699 6.499 251.935 4.397
+484.703 497.264 9.722 546.377 7.213 242.119 6.656
+484.860 496.442 7.077 544.813 6.773 246.131 6.713
+485.017 497.184 7.568 542.678 6.494 249.391 7.487
+485.174 503.671 7.807 541.866 7.415 255.753 5.179
+485.332 496.736 9.085 543.858 6.585 250.567 4.924
+485.489 498.157 11.578 544.708 8.113 251.885 5.613
+485.647 496.061 9.866 543.857 8.066 245.078 6.374
+485.803 501.520 7.294 545.588 8.561 246.940 7.564
+485.961 503.965 6.810 543.575 6.825 251.949 6.247
+486.118 493.439 9.169 542.635 7.206 255.519 6.433
+486.275 497.874 7.888 544.786 6.616 251.855 6.457
+486.432 497.768 7.586 543.957 8.024 243.318 4.833
+486.589 496.547 10.213 545.039 6.377 253.333 6.747
+486.747 496.255 7.672 542.000 6.885 267.733 4.660
+486.905 508.662 13.841 542.810 7.496 256.527 6.455
+487.063 500.146 9.736 545.028 7.016 240.625 5.851
+487.221 496.291 9.385 543.850 8.376 255.416 10.901
+487.378 501.982 11.259 541.918 7.380 266.394 8.260
+487.535 498.699 9.593 540.789 8.071 249.323 6.897
+487.692 493.047 7.742 543.807 7.838 242.113 8.521
+487.848 500.960 10.254 545.028 6.943 243.421 5.601
+488.006 503.609 7.649 540.610 6.822 262.884 8.639
+488.162 497.336 8.544 543.536 6.193 245.238 3.697
+488.319 498.873 10.298 541.405 7.163 243.952 9.613
+488.476 497.678 9.699 543.534 6.092 248.809 6.171
+488.633 494.856 9.106 541.705 8.549 254.678 5.034
+488.790 496.808 8.837 542.807 6.724 251.886 4.117
+488.947 501.238 7.360 542.828 7.704 252.588 6.127
+489.104 500.952 7.274 544.378 7.289 249.875 5.052
+489.263 501.159 8.872 544.393 6.839 252.188 6.948
+489.420 497.091 8.241 544.824 8.183 239.941 9.405
+489.576 503.940 9.035 541.758 8.452 252.279 7.744
+489.734 496.619 7.867 542.617 7.965 259.762 7.695
+489.891 494.546 7.290 541.626 6.908 254.277 6.550
+490.048 499.465 6.970 544.466 8.352 242.082 5.932
+490.206 496.944 6.904 543.584 6.457 246.980 4.033
+490.364 501.569 11.658 542.845 7.037 259.959 6.034
+490.522 497.875 7.957 541.988 6.949 257.369 6.360
+490.678 500.568 10.072 543.979 8.279 241.843 5.774
+490.835 496.815 7.751 542.179 7.283 245.618 7.601
+490.992 496.128 7.601 542.281 9.674 256.236 6.171
+491.150 497.691 8.357 541.162 8.346 257.032 8.014
+491.307 499.986 10.396 540.841 9.029 246.880 10.147
+491.465 503.309 13.055 544.128 8.674 259.088 10.842
+491.622 501.053 16.393 543.331 9.809 236.750 15.233
+491.777 490.150 9.364 543.333 6.907 247.467 4.535
+491.934 505.911 14.291 541.343 11.026 238.734 18.490
+492.090 498.959 13.353 541.593 8.535 244.087 11.849
+492.247 501.399 11.666 548.466 7.062 264.330 15.610
+492.403 498.344 9.065 544.734 7.706 252.303 7.400
+492.560 501.073 11.534 541.397 9.389 238.483 9.715
+492.716 493.800 8.165 547.554 8.993 240.004 7.833
+492.873 506.888 7.700 542.545 9.987 267.880 10.227
+493.030 501.148 8.355 543.015 8.154 263.908 3.991
+493.187 499.601 11.028 546.070 8.678 234.189 8.748
+493.343 494.856 11.438 543.670 7.204 240.671 10.877
+493.500 493.218 11.105 542.676 6.962 260.066 5.257
+493.659 503.202 7.871 542.706 6.983 261.700 5.090
+493.817 500.872 7.646 545.377 7.880 247.047 9.518
+493.973 499.818 8.098 543.943 8.795 244.540 6.907
+494.129 500.848 6.788 543.459 6.589 253.095 4.568
+494.287 501.988 6.861 541.964 6.524 255.320 5.307
+494.445 494.629 8.422 545.399 6.772 243.733 5.387
+494.602 496.836 7.161 542.804 6.598 240.437 6.802
+494.759 504.578 6.345 542.898 6.664 258.714 3.908
+494.919 502.025 6.252 542.359 8.098 256.137 5.203
+495.076 500.660 10.273 544.073 6.184 249.601 5.120
+495.234 503.866 6.436 545.050 7.439 247.686 5.022
+495.391 496.928 7.495 543.430 7.723 246.076 6.308
+495.548 492.689 9.360 541.884 6.655 254.210 4.882
+495.706 497.316 8.046 543.288 6.861 253.862 4.424
+495.863 498.493 10.506 541.942 8.233 251.348 7.713
+496.020 489.264 8.989 545.889 7.508 238.173 9.773
+496.177 499.442 15.200 544.328 10.013 259.871 13.792
+496.334 495.024 9.912 541.663 6.915 266.468 10.401
+496.490 492.770 7.823 540.546 6.944 253.754 8.058
+496.647 492.317 8.611 547.125 6.877 237.727 11.414
+496.803 496.373 6.882 543.511 6.910 249.597 6.392
+496.961 490.953 10.217 542.885 6.600 256.316 6.734
+497.119 497.989 7.678 543.178 6.193 256.313 5.355
+497.277 493.369 8.523 545.351 7.915 249.213 4.698
+497.434 489.943 11.365 544.813 7.247 244.732 5.354
+497.592 497.079 9.239 542.978 9.064 255.517 7.235
+497.749 492.860 6.898 543.289 7.360 258.555 6.918
+497.906 495.948 9.310 545.002 6.367 249.995 4.188
+498.064 492.609 8.804 544.360 7.458 249.909 4.855
+498.221 482.786 7.589 544.013 9.776 254.109 7.165
+498.379 486.907 7.467 543.800 10.275 253.231 9.176
+498.536 492.079 11.322 545.938 9.779 253.652 8.584
+498.693 491.600 7.335 543.509 6.676 249.626 4.353
+498.850 485.516 5.933 544.945 7.358 252.126 6.630
+499.009 485.615 9.808 543.099 8.066 257.541 6.143
+499.165 488.446 8.027 542.301 8.478 250.575 4.738
+499.322 489.034 8.708 545.633 7.852 240.365 10.115
+499.478 486.200 9.721 547.116 7.191 251.443 7.149
+499.635 494.702 9.246 540.521 9.937 265.204 6.447
+499.793 494.567 7.879 539.745 8.257 251.792 7.550
+499.949 475.255 11.898 544.137 9.891 233.937 4.650
+500.107 483.192 9.745 542.471 8.435 253.309 6.639
+500.264 485.611 8.292 541.174 8.014 255.533 5.934
+500.421 483.406 16.933 540.911 8.332 255.635 5.892
+500.578 479.154 11.181 550.079 7.269 245.696 8.664
+500.735 488.801 6.759 544.040 8.596 262.326 6.364
+500.893 489.608 7.761 544.470 8.702 251.843 5.123
+501.050 484.116 6.213 545.464 7.504 251.408 5.147
+501.207 484.271 7.996 544.064 7.658 247.904 8.193
+501.365 490.882 6.496 541.940 7.509 258.199 5.958
+501.522 488.608 9.613 546.159 7.788 245.292 4.401
+501.679 488.316 7.376 544.161 7.976 251.072 5.857
+501.836 490.593 10.598 544.271 6.950 247.820 5.739
+501.994 485.565 8.208 544.042 7.555 248.068 9.915
+502.150 488.475 8.239 543.580 7.734 250.400 5.466
+502.307 490.614 7.643 545.005 7.732 254.634 5.481
+502.465 483.956 9.732 544.880 7.999 245.426 5.814
+502.621 483.049 9.425 543.438 8.807 250.084 8.751
+502.778 493.190 8.865 543.874 7.505 261.070 6.011
+502.935 490.301 7.442 543.058 7.242 249.260 6.119
+503.092 486.733 7.429 545.580 6.792 248.852 4.125
+503.250 492.177 8.592 545.805 6.558 252.958 7.145
+503.407 490.511 7.450 544.018 6.740 260.549 5.969
+503.565 493.725 8.388 543.340 7.572 249.325 7.850
+503.721 492.657 9.325 545.163 7.123 248.593 4.825
+503.878 491.206 7.422 544.251 6.658 254.905 5.564
+504.036 494.222 7.348 543.812 6.777 255.239 6.608
+504.193 490.872 8.999 544.118 8.696 246.232 8.082
+504.350 492.018 9.077 545.451 7.271 250.672 7.214
+504.507 496.130 8.679 543.054 7.786 251.396 6.222
+504.664 490.641 6.662 544.340 6.750 244.613 4.744
+504.821 498.616 8.249 546.393 7.789 253.356 5.833
+504.978 497.256 8.631 544.503 6.968 255.773 5.357
+505.136 496.212 8.729 543.475 7.031 252.777 4.788
+505.293 499.472 12.379 547.714 7.445 248.577 5.635
+505.451 500.404 10.006 546.947 6.894 250.575 6.714
+505.607 497.034 10.899 545.979 8.354 244.885 4.832
+505.766 507.410 9.916 543.589 9.096 255.478 10.678
+505.923 499.864 7.696 545.085 7.231 248.354 6.751
+506.080 494.268 10.047 544.430 7.078 241.613 6.164
+506.237 500.142 7.059 544.164 7.062 250.766 6.642
+506.394 503.781 8.189 542.411 7.784 253.877 6.449
+506.551 491.107 9.382 544.214 7.123 251.838 7.174
+506.707 497.421 10.950 543.452 7.067 251.648 5.881
+506.865 498.254 8.667 543.414 6.871 252.826 8.252
+507.022 500.672 6.138 545.184 7.206 257.458 5.905
+507.180 497.736 9.732 544.821 6.995 250.244 5.689
+507.338 494.527 9.048 544.258 8.017 254.302 5.909
+507.495 503.575 7.789 545.252 6.871 252.373 5.727
+507.652 498.185 6.538 543.192 7.281 249.603 5.036
+507.810 501.021 11.239 542.972 7.849 242.666 9.658
+507.967 495.390 8.326 544.719 6.464 246.566 8.957
+508.123 508.693 7.143 544.027 6.276 251.055 6.018
+508.281 501.007 6.594 545.600 7.316 249.690 7.408
+508.438 497.010 7.871 545.246 6.686 245.826 5.642
+508.595 503.390 6.800 545.562 6.199 246.518 7.235
+508.752 496.413 6.679 543.605 7.383 257.225 5.718
+508.911 492.364 8.517 542.336 7.998 254.222 16.471
+509.067 501.003 11.497 546.223 8.511 246.932 6.092
+509.224 499.900 7.089 542.512 6.182 250.099 4.387
+509.382 500.959 6.010 546.015 6.330 244.931 3.875
+509.541 504.259 7.472 545.350 6.394 256.429 5.407
+509.699 494.482 6.859 543.323 6.683 243.404 7.846
+509.856 503.454 11.808 543.243 6.591 259.994 6.632
+510.014 496.714 10.475 545.392 6.824 250.979 7.350
+510.172 499.107 7.177 544.003 7.039 249.029 5.162
+510.331 502.181 7.500 545.370 9.247 254.300 7.449
+510.488 493.381 8.553 542.733 7.640 253.083 6.188
+510.645 497.933 10.458 543.107 9.281 249.220 6.286
+510.802 503.969 9.460 545.431 7.894 247.522 5.065
+510.958 500.129 7.427 544.304 7.141 250.515 4.345
+511.116 499.911 7.327 544.023 7.849 248.585 5.573
+511.273 502.419 6.278 544.980 8.574 253.335 6.127
+511.431 495.244 7.101 542.819 7.383 248.613 6.866
+511.587 498.272 9.540 545.068 7.453 245.816 5.293
+511.744 503.122 10.610 543.860 6.593 252.538 5.069
+511.902 500.511 12.465 543.298 7.788 256.085 5.983
+512.059 498.545 6.848 545.623 7.181 248.360 4.783
+512.217 495.285 7.765 544.466 9.039 248.133 5.768
+512.374 499.702 9.776 542.634 7.080 253.581 10.343
+512.532 502.737 9.103 545.256 7.423 250.905 10.405
+512.689 502.627 10.371 543.902 6.327 254.889 6.786
+512.846 501.856 7.077 546.639 7.571 252.348 7.942
+513.003 500.228 13.272 544.776 11.548 247.173 10.549
+513.159 490.242 8.077 542.507 8.354 229.521 7.775
+513.315 500.882 8.239 542.795 7.098 260.695 10.788
+513.473 510.898 8.119 543.798 7.565 269.926 4.918
+513.631 503.049 9.749 543.038 7.159 247.689 6.862
+513.788 494.140 14.604 548.640 9.767 228.956 7.588
+513.944 496.541 8.553 542.256 7.978 245.999 4.682
+514.101 487.175 7.402 540.122 7.710 261.580 7.771
+514.259 489.441 8.264 540.431 7.584 266.245 10.178
+514.416 509.934 14.681 548.164 7.539 241.042 18.541
+514.572 507.469 8.860 547.801 7.747 247.990 9.363
+514.730 496.614 8.452 546.738 6.606 260.239 8.527
+514.886 500.756 7.974 541.637 7.411 251.252 5.623
+515.044 493.877 11.273 543.396 7.463 253.812 8.312
+515.200 491.308 9.857 543.554 7.173 238.858 4.641
+515.358 502.263 10.785 545.325 7.470 253.848 10.802
+515.515 503.582 8.070 543.263 6.581 259.868 6.551
+515.673 501.545 10.069 543.632 8.054 249.948 5.511
+515.829 499.825 8.483 544.096 6.712 255.819 5.187
+515.986 498.278 10.215 544.271 9.067 245.588 7.346
+516.142 494.972 7.940 543.092 7.944 256.695 6.157
+516.300 496.259 8.162 541.400 6.753 256.757 6.829
+516.457 499.562 12.916 543.494 7.721 251.857 6.903
+516.613 496.615 7.285 544.855 7.576 240.718 5.765
+516.770 507.436 7.117 545.758 6.732 236.807 4.824
+516.928 510.624 6.160 545.267 8.144 248.138 6.577
+517.086 502.056 7.135 543.102 7.999 255.821 7.343
+517.242 495.740 7.438 539.861 10.244 256.258 8.327
+517.399 496.167 13.285 544.228 8.133 251.182 8.073
+517.555 497.091 9.841 543.962 8.060 245.341 8.722
+517.711 501.870 6.560 545.059 11.423 250.493 7.314
+517.868 506.898 8.886 546.040 7.529 252.964 5.323
+518.026 500.159 8.453 542.740 6.348 252.989 7.838
+518.183 499.241 9.047 543.637 7.973 254.979 4.735
+518.340 498.282 9.952 545.526 7.390 250.039 6.895
+518.497 500.112 6.289 543.445 6.627 251.080 6.133
+518.655 496.141 11.171 544.824 8.069 252.330 6.697
+518.812 502.831 11.520 542.548 8.249 251.003 7.784
+518.969 505.328 10.869 542.495 7.190 252.630 6.964
+519.126 503.093 6.564 544.524 6.581 245.286 4.580
+519.283 502.910 6.567 546.725 7.046 246.612 6.894
+519.440 496.349 8.113 545.477 8.122 246.096 8.047
+519.597 499.693 7.563 543.044 7.499 256.650 5.831
+519.756 503.036 8.893 544.380 7.009 259.906 8.599
+519.913 500.450 8.746 544.923 9.013 247.679 8.438
+520.069 494.784 8.179 546.199 8.168 239.636 7.435
+520.225 498.167 8.155 543.942 7.200 249.216 4.823
+520.383 495.421 8.519 541.299 7.154 265.162 7.808
+520.540 497.114 8.587 542.883 9.292 250.591 13.150
+520.696 495.491 9.907 545.288 7.549 244.705 6.368
+520.853 501.884 9.602 545.392 9.390 246.597 9.413
+521.009 497.418 11.963 543.714 7.449 245.465 4.359
+521.167 496.644 7.306 542.707 7.515 259.534 7.763
+521.325 493.626 9.149 544.857 10.472 264.815 8.353
+521.482 500.436 15.039 545.578 9.454 241.588 8.686
+521.638 496.064 8.746 545.175 7.490 242.255 9.944
+521.794 501.800 7.439 546.051 6.359 250.972 9.610
+521.952 502.268 7.647 539.570 8.225 266.969 7.788
+522.110 502.882 7.637 542.835 6.897 249.179 9.368
+522.266 499.168 9.174 548.798 6.732 240.921 4.204
+522.423 504.721 7.781 542.918 7.283 252.829 7.136
+522.581 501.007 7.858 543.859 7.307 258.518 6.876
+522.738 497.820 15.779 544.698 8.528 250.905 5.829
+522.895 501.238 8.038 546.287 8.339 246.979 5.916
+523.053 501.842 9.010 544.032 7.659 253.289 4.448
+523.210 493.298 8.592 544.940 10.369 253.582 9.145
+523.367 497.133 9.943 543.479 6.991 254.425 6.104
+523.524 497.581 15.491 544.644 7.547 248.494 9.207
+523.681 501.085 14.268 546.996 8.021 237.404 21.121
+523.837 498.240 12.726 544.110 8.678 255.604 9.287
+523.995 500.882 7.077 543.991 6.484 260.556 5.347
+524.153 495.828 8.849 543.279 6.362 246.645 6.654
+524.310 498.868 13.027 544.782 6.937 243.356 8.733
+524.467 502.768 12.567 544.997 7.974 255.023 6.819
+524.625 498.367 8.671 543.240 8.506 252.340 5.654
+524.782 499.263 9.852 543.542 7.728 252.683 8.172
+524.939 494.802 11.449 544.745 7.798 244.266 7.949
+525.095 500.378 8.257 544.727 8.049 250.272 6.362
+525.252 499.193 9.815 541.517 7.444 252.232 8.625
+525.408 497.511 13.103 544.705 7.312 254.542 7.640
+525.566 504.795 12.154 543.787 7.031 253.465 10.774
+525.724 501.627 8.550 544.867 7.270 253.604 5.804
+525.882 504.856 6.894 544.528 6.926 254.356 8.846
+526.039 496.138 7.077 544.935 7.842 247.843 5.178
+526.196 504.561 7.217 542.679 9.188 252.618 8.151
+526.352 500.075 7.323 544.646 7.078 252.946 6.227
+526.509 499.730 8.452 545.786 8.185 244.029 8.404
+526.667 503.197 5.987 544.867 6.885 257.130 5.457
+526.825 502.652 10.018 546.038 8.257 248.011 6.883
+526.982 498.576 6.659 544.600 7.445 246.740 6.935
+527.139 497.085 8.255 545.676 7.350 249.727 4.615
+527.296 499.000 10.344 543.816 6.713 253.377 6.164
+527.454 499.760 6.472 542.188 8.944 258.663 8.991
+527.611 497.957 8.980 545.141 8.380 248.706 7.663
+527.767 499.319 9.164 545.121 6.835 244.947 5.724
+527.925 498.753 7.259 544.881 7.932 251.269 5.824
+528.082 497.487 7.720 546.058 7.244 257.082 8.896
+528.239 501.114 6.882 542.880 8.011 250.780 10.957
+528.395 501.711 10.127 545.578 7.469 249.187 5.396
+528.552 500.337 7.029 544.835 7.900 244.201 7.599
+528.709 497.613 8.090 545.078 6.393 249.772 5.643
+528.866 499.576 9.049 543.950 8.101 255.057 10.156
+529.023 501.835 6.544 543.719 6.720 253.120 7.634
+529.180 494.828 9.624 543.817 6.708 247.781 4.127
+529.337 500.608 8.297 546.658 8.130 249.997 11.868
+529.493 495.956 7.694 546.006 7.808 249.140 10.741
+529.651 497.529 8.715 544.880 8.000 253.111 7.746
+529.807 497.455 7.459 546.138 7.635 243.811 7.078
+529.965 502.314 7.317 544.181 7.164 254.308 4.640
+530.122 500.103 7.014 543.291 6.115 252.573 7.031
+530.279 495.651 8.117 545.802 6.600 250.465 7.290
+530.437 495.156 9.875 544.968 8.038 248.864 6.669
+530.593 499.941 10.522 545.209 7.001 247.588 8.071
+530.749 501.099 8.015 544.062 7.596 249.605 14.535
+530.905 504.541 9.788 545.500 6.795 256.266 5.973
+531.063 498.745 7.531 543.665 7.561 252.592 5.828
+531.221 497.287 9.580 545.136 8.150 247.245 6.370
+531.377 496.582 7.874 544.521 7.669 250.372 6.582
+531.534 500.545 6.386 544.705 7.908 251.573 5.728
+531.692 502.265 7.071 543.747 7.529 252.045 8.535
+531.848 497.282 8.870 545.757 7.902 249.500 6.682
+532.004 501.882 8.522 546.607 8.524 246.575 8.553
+532.162 504.798 13.426 544.436 8.795 257.285 5.604
+532.319 501.158 7.597 541.774 7.218 254.212 5.883
+532.477 499.611 9.740 545.207 9.611 247.062 9.616
+532.633 495.596 6.819 542.482 8.014 249.560 6.003
+532.791 494.205 8.221 544.214 6.584 252.985 5.633
+532.948 498.362 8.531 544.212 7.320 256.089 7.376
+533.106 503.403 7.623 544.872 7.404 252.640 6.015
+533.263 496.764 7.104 542.968 7.065 243.886 6.353
+533.421 497.337 8.134 546.259 6.775 253.028 11.152
+533.578 504.153 6.882 544.302 6.989 254.560 3.801
+533.736 497.441 10.017 543.733 11.546 249.235 9.367
+533.892 498.014 9.074 544.687 7.224 245.232 5.708
+534.049 503.290 7.684 543.856 6.791 248.372 4.811
+534.206 501.862 8.859 543.928 9.152 252.243 6.029
+534.364 496.858 7.298 545.359 8.034 250.542 5.053
+534.521 502.498 8.121 543.813 8.375 253.395 5.112
+534.678 501.545 11.145 543.398 8.978 249.043 7.254
+534.835 498.585 6.682 545.314 6.953 246.740 4.902
+534.992 499.545 9.497 545.823 9.428 249.087 8.424
+535.149 497.195 7.853 542.808 7.211 255.960 5.287
+535.307 495.322 9.401 545.628 6.870 249.759 5.187
+535.464 503.593 8.976 544.776 7.436 248.657 5.809
+535.621 498.555 11.144 545.087 7.701 250.636 3.943
+535.778 500.305 10.307 545.030 8.248 256.226 5.669
+535.936 500.893 7.002 543.950 6.914 255.252 6.506
+536.094 496.799 7.963 544.399 9.149 252.882 6.110
+536.252 498.678 12.958 544.344 8.546 244.228 4.398
+536.409 501.626 9.208 543.263 7.372 253.232 7.431
+536.566 502.686 8.071 544.032 8.225 251.942 7.191
+536.722 500.146 6.608 544.810 6.920 249.589 5.631
+536.879 500.381 9.278 543.968 7.384 247.185 6.627
+537.036 495.703 7.376 546.539 9.075 249.421 9.885
+537.193 498.157 7.713 544.055 8.397 251.354 6.148
+537.351 498.111 8.145 544.130 10.882 258.333 8.794
+537.507 502.591 6.824 542.671 9.484 253.113 9.698
+537.664 497.685 7.322 544.046 6.874 245.711 7.394
+537.820 497.726 13.483 545.950 8.627 248.757 16.189
+537.975 498.807 7.484 542.979 7.785 247.697 7.081
+538.132 498.078 10.736 542.079 9.204 253.947 8.415
+538.289 502.190 6.862 543.770 7.901 254.399 6.803
+538.446 503.361 7.314 542.427 7.216 252.914 5.535
+538.603 496.053 9.942 545.414 7.775 244.589 6.500
+538.760 498.450 10.883 543.594 7.290 246.345 6.862
+538.918 500.034 10.776 544.596 9.271 252.643 8.313
+539.075 503.410 7.367 543.856 8.291 257.956 10.900
+539.232 496.404 6.818 543.258 6.665 247.629 4.503
+539.390 498.774 6.362 543.292 7.695 249.926 5.357
+539.548 497.957 5.923 546.052 6.139 246.149 6.655
+539.706 497.579 6.991 543.280 7.601 255.781 7.235
+539.862 500.245 6.998 544.392 8.353 249.837 7.630
+540.019 504.942 8.124 543.764 6.891 253.958 7.411
+540.176 500.479 10.109 542.547 6.807 251.259 6.510
+540.332 500.374 5.765 543.575 6.937 247.572 7.529
+540.489 497.173 12.545 544.335 10.779 245.215 7.629
+540.646 498.581 9.260 545.223 7.162 244.582 10.004
+540.803 502.335 12.618 543.612 8.307 257.545 12.066
+540.960 498.973 9.473 543.616 7.485 253.325 7.069
+541.117 499.079 8.595 545.806 7.577 248.743 6.214
+541.274 504.160 8.233 546.948 7.352 251.647 8.046
+541.431 494.831 9.138 544.359 7.010 253.316 6.774
+541.588 501.598 9.798 543.593 6.968 255.663 6.438
+541.745 498.336 7.005 542.986 8.149 251.146 6.919
+541.902 497.743 12.883 543.419 9.346 245.571 7.328
+542.058 494.217 9.075 543.624 8.510 238.665 8.053
+542.215 493.122 8.904 543.846 9.053 256.816 7.803
+542.372 505.101 9.606 543.808 6.695 253.718 5.167
+542.529 503.631 8.118 543.988 6.985 247.807 4.415
+542.686 499.696 12.259 546.049 7.039 247.438 5.157
+542.844 501.747 12.236 545.700 7.806 244.594 5.977
+543.001 504.387 7.308 541.347 8.385 254.705 6.850
+543.158 493.353 9.879 545.033 9.384 242.067 6.021
+543.315 503.013 9.944 545.270 8.145 256.610 7.473
+543.473 503.860 9.179 543.282 6.667 260.876 5.973
+543.630 506.808 14.405 544.702 7.534 245.958 10.261
+543.787 495.198 11.056 546.567 7.263 233.869 5.529
+543.944 504.732 9.408 545.345 9.839 257.268 6.088
+544.101 504.997 8.764 544.513 6.495 253.762 6.085
+544.259 509.260 6.367 543.975 7.092 255.507 5.303
+544.417 501.682 7.270 547.179 6.727 239.625 7.063
+544.574 503.486 6.223 544.171 9.111 245.446 8.704
+544.731 503.754 6.530 543.671 6.688 255.284 3.917
+544.888 502.877 7.078 543.266 8.777 251.352 7.564
+545.045 501.948 8.217 543.542 8.025 254.293 7.655
+545.200 505.259 6.915 544.835 6.948 250.252 6.710
+545.358 503.682 7.602 545.408 6.285 247.962 4.971
+545.516 499.356 9.232 544.384 7.383 250.609 7.420
+545.673 507.533 11.079 544.073 6.261 257.266 6.040
+545.831 505.645 9.025 545.190 7.051 253.502 4.282
+545.989 501.596 7.363 542.751 8.043 244.235 12.500
+546.144 505.405 9.203 547.127 7.377 244.802 5.941
+546.301 512.414 10.269 543.911 9.648 250.818 5.508
+546.458 508.424 7.331 544.259 7.332 251.368 4.189
+546.615 509.624 7.862 547.402 8.686 236.933 6.666
+546.771 509.166 8.381 545.294 7.345 250.689 4.840
+546.928 510.521 11.403 543.733 6.270 252.376 4.632
+547.085 507.715 6.952 545.897 6.756 243.773 5.418
+547.242 514.787 8.661 546.969 8.563 248.907 6.199
+547.400 509.937 8.816 543.139 6.548 249.509 7.901
+547.558 506.779 8.965 544.581 6.392 247.185 5.097
+547.716 513.417 10.440 544.435 6.436 249.131 4.659
+547.873 512.604 8.474 545.354 6.711 245.071 7.541
+548.030 517.056 7.431 542.403 7.812 255.720 7.923
+548.188 499.360 8.726 544.374 7.272 246.167 5.201
+548.345 515.263 7.827 545.543 7.222 251.561 5.225
+548.503 514.182 8.936 540.045 7.358 244.885 5.510
+548.661 511.421 7.280 547.790 7.221 251.458 5.196
+548.819 505.714 7.597 544.698 6.604 247.954 4.592
+548.976 515.487 15.505 546.537 7.674 243.969 11.826
+549.132 508.574 8.385 541.585 7.410 249.779 7.271
+549.289 511.445 9.877 546.005 8.111 248.447 6.654
+549.446 512.044 17.035 540.150 8.189 242.404 15.700
+549.602 511.600 7.515 543.231 7.323 246.264 7.297
+549.759 507.966 12.676 542.652 7.292 250.182 4.846
+549.917 509.609 7.658 543.696 8.314 249.911 7.895
+550.073 508.716 6.898 542.247 7.429 251.869 6.482
+550.230 504.237 7.790 543.142 6.810 246.238 7.743
+550.387 507.452 8.801 544.991 6.599 254.022 6.917
+550.544 508.274 7.395 545.719 6.522 250.870 5.176
+550.701 504.432 8.874 543.357 6.960 250.678 5.833
+550.859 501.434 9.120 546.703 7.081 251.056 8.228
+551.015 507.344 7.686 544.187 7.029 248.730 4.444
+551.172 513.703 11.387 545.791 11.714 246.017 11.685
+551.331 503.547 15.223 543.877 7.069 245.390 7.872
+551.487 506.565 8.005 544.788 8.814 253.933 7.002
+551.643 506.005 9.206 541.758 8.172 256.539 4.650
+551.801 501.620 9.361 543.727 7.451 242.975 6.277
+551.958 498.326 7.523 545.577 7.962 241.739 6.072
+552.115 505.153 12.821 540.815 7.346 249.217 15.941
+552.271 509.681 11.723 540.978 7.311 254.262 9.419
+552.429 505.316 9.038 544.319 7.365 250.772 5.446
+552.586 501.243 8.793 544.633 6.870 242.477 5.718
+552.744 505.872 7.339 543.056 6.511 249.504 4.034
+552.901 498.798 7.456 541.400 6.354 251.845 5.869
+553.059 502.498 8.204 539.904 6.697 256.008 7.525
+553.216 507.905 5.972 541.629 6.336 249.960 3.514
+553.374 504.599 6.991 543.686 7.030 240.639 6.611
+553.530 503.046 6.296 540.576 6.315 250.186 3.934
+553.688 500.750 9.333 543.085 7.245 251.191 4.342
+553.845 500.377 7.559 538.950 6.756 255.281 7.570
+554.003 499.613 7.292 542.899 8.094 242.502 6.426
+554.159 491.796 9.928 541.039 9.828 242.805 6.185
+554.316 505.308 8.231 539.230 6.657 251.858 5.848
+554.474 506.003 9.662 540.942 11.743 259.768 9.518
+554.631 496.740 10.121 539.529 7.399 251.577 7.913
+554.787 498.657 9.577 541.415 8.150 238.165 6.581
+554.944 499.526 9.674 541.794 7.828 252.011 7.000
+555.101 495.505 7.988 537.568 7.088 251.810 5.447
+555.258 487.295 9.491 536.915 8.395 255.278 6.809
+555.415 502.562 9.193 539.579 10.595 245.142 11.125
+555.572 505.415 9.806 538.015 7.604 244.591 10.437
+555.729 504.924 9.484 540.220 6.830 245.905 6.464
+555.886 503.279 7.164 540.772 7.262 251.179 7.551
+556.042 493.422 10.476 536.297 9.295 253.831 5.708
+556.200 499.064 9.729 538.243 8.844 246.988 6.570
+556.356 503.380 21.355 542.272 13.307 240.989 23.173
+556.511 506.053 16.340 541.262 11.686 253.529 9.531
+556.668 492.360 16.869 538.692 9.799 248.745 13.042
+556.824 512.673 8.922 540.936 10.332 257.307 10.195
+556.982 510.346 14.820 540.639 7.533 260.163 14.420
+557.139 491.893 12.773 542.006 9.127 239.891 10.830
+557.296 487.428 8.942 540.940 7.759 249.778 11.957
+557.455 514.174 11.572 538.689 7.371 266.297 4.935
+557.613 498.031 14.963 539.956 7.946 255.873 11.459
+557.770 497.990 16.422 543.939 10.636 231.328 8.214
+557.927 502.379 13.766 539.609 8.252 259.983 12.528
+558.084 511.793 8.887 536.826 8.566 275.789 8.283
+558.240 496.338 11.916 540.138 7.753 248.017 8.563
+558.396 497.033 14.325 541.861 8.727 231.250 7.023
+558.553 505.840 10.955 539.858 10.054 252.082 13.886
+558.710 508.188 9.480 537.858 7.750 262.880 8.763
+558.867 500.001 14.865 542.508 7.234 254.618 9.911
+559.023 496.230 7.187 542.285 7.398 231.066 5.898
+559.181 501.212 7.723 539.972 8.747 251.990 6.298
+559.338 497.552 9.108 537.599 7.541 269.559 9.404
+559.496 490.185 11.248 539.376 7.478 253.205 14.112
+559.652 502.031 15.011 541.373 8.116 250.042 11.048
+559.808 493.760 11.008 540.923 9.434 249.130 7.020
+559.965 503.507 11.373 539.799 8.379 254.511 7.681
+560.122 499.005 10.672 539.368 7.560 254.205 14.612
+560.279 498.310 7.304 537.963 6.789 254.992 7.362
+560.437 502.603 8.653 540.629 6.848 247.929 6.212
+560.594 499.326 12.184 538.226 10.498 248.949 8.057
+560.751 502.623 8.807 541.052 7.189 252.399 5.565
+560.908 495.496 8.867 539.470 7.354 254.863 8.424
+561.064 490.755 7.094 539.344 6.775 249.988 8.327
+561.221 497.387 7.691 540.173 7.037 249.929 7.484
+561.378 494.193 7.411 539.161 7.557 247.429 7.803
+561.534 496.611 6.980 538.441 7.899 252.364 7.452
+561.691 492.196 7.372 541.604 7.685 250.343 4.807
+561.848 493.192 8.382 537.166 10.784 251.153 8.417
+562.005 483.132 12.240 538.611 7.882 249.011 7.654
+562.162 494.751 7.407 535.706 7.473 253.570 12.239
+562.319 490.217 11.015 540.737 6.506 252.225 6.120
+562.476 483.302 7.376 539.877 6.930 249.162 9.128
+562.633 489.033 8.192 539.458 7.627 255.371 6.397
+562.791 487.780 7.933 541.704 7.275 252.033 6.852
+562.947 478.637 7.784 538.987 7.629 249.810 6.284
+563.105 491.006 9.592 540.679 6.845 253.488 8.324
+563.263 484.180 7.277 540.786 6.934 255.524 8.884
+563.420 485.271 6.969 537.987 7.543 253.915 5.336
+563.577 485.822 8.301 539.949 6.976 245.479 6.294
+563.734 488.698 7.836 540.339 9.027 254.484 7.359
+563.891 484.517 8.270 540.453 8.898 254.674 7.009
+564.049 483.975 9.151 542.624 7.720 260.446 5.507
+564.206 478.949 6.396 542.056 6.946 249.544 6.203
+564.364 478.659 7.862 539.590 8.220 259.175 6.525
+564.521 485.706 7.119 542.945 7.205 246.601 11.963
+564.678 479.277 8.807 537.239 9.284 252.126 5.189
+564.835 485.062 6.287 538.552 8.098 257.751 5.082
+564.993 484.410 7.935 541.495 7.238 243.127 7.771
+565.150 481.954 8.018 541.144 8.265 253.341 4.390
+565.307 482.489 7.334 540.741 9.615 253.693 9.030
+565.465 486.604 8.856 538.287 10.831 261.316 16.501
+565.622 487.866 8.803 539.722 6.437 254.893 4.566
+565.780 474.748 11.671 538.907 8.671 234.108 7.437
+565.936 473.077 7.468 541.089 10.283 251.401 9.300
+566.093 485.580 9.041 538.520 11.370 254.384 7.804
+566.250 484.595 8.689 535.955 9.041 273.853 4.737
+566.408 485.555 7.509 543.769 8.288 236.898 7.560
+566.564 481.035 7.948 540.507 7.745 240.669 8.195
+566.719 488.850 8.553 539.785 8.538 252.746 6.736
+566.876 487.538 7.197 541.037 7.534 248.307 11.472
+567.034 489.495 6.707 537.370 9.304 257.233 5.345
+567.192 485.084 9.015 539.353 6.805 252.682 10.777
+567.349 483.570 10.598 538.623 7.951 249.076 6.834
+567.505 485.435 7.523 543.686 6.672 247.970 6.588
+567.662 486.544 6.969 541.036 7.153 250.439 4.339
+567.819 481.695 7.928 539.030 8.178 249.834 6.416
+567.976 484.347 12.130 538.420 7.490 253.188 8.024
+568.133 487.623 8.451 539.324 6.770 255.431 4.728
+568.290 480.926 6.339 539.463 8.776 247.754 10.685
+568.447 485.319 7.504 539.654 11.104 254.147 6.569
+568.604 485.313 7.998 540.406 8.870 252.511 7.530
+568.760 482.893 7.839 539.434 8.211 253.635 5.135
+568.917 482.028 8.640 539.264 9.402 252.556 6.312
+569.074 479.030 8.148 539.472 8.073 246.725 6.151
+569.231 488.800 10.521 539.774 8.331 249.637 7.165
+569.388 484.378 6.926 540.287 6.700 252.496 6.712
+569.545 488.153 7.264 542.032 6.858 250.845 7.318
+569.702 486.521 9.036 538.820 7.833 258.078 3.974
+569.860 483.055 6.528 540.498 7.311 248.870 6.898
+570.017 483.740 6.139 540.615 7.208 247.838 8.282
+570.174 487.087 7.218 545.276 7.173 246.298 7.323
+570.331 490.060 8.122 538.962 7.037 253.092 6.631
+570.489 489.560 7.252 540.159 6.974 256.270 5.384
+570.647 490.145 6.341 543.351 6.854 245.352 6.301
+570.805 495.721 8.165 539.673 7.399 247.863 10.888
+570.961 484.957 8.173 543.136 6.807 246.768 5.265
+571.118 487.899 6.447 543.131 6.659 247.717 5.383
+571.277 489.609 7.927 540.041 6.575 260.847 7.709
+571.434 495.736 6.918 541.830 6.728 252.858 5.703
+571.591 489.967 6.801 540.998 6.778 248.188 5.768
+571.750 491.219 8.655 539.040 6.354 254.191 5.589
+571.907 490.932 6.732 540.310 6.933 251.041 5.115
+572.065 493.189 9.517 537.973 7.059 256.890 4.884
+572.223 495.821 6.460 540.229 6.438 251.458 4.349
+572.381 495.258 7.589 542.012 6.919 244.824 5.756
+572.539 497.902 8.440 541.290 8.450 251.828 11.045
+572.696 495.079 6.984 540.603 6.808 252.288 7.063
+572.853 492.230 5.443 538.466 6.360 255.102 6.512
+573.011 493.582 6.311 539.734 7.010 249.791 7.582
+573.168 506.105 8.317 540.337 6.226 254.187 4.348
+573.325 494.801 10.016 540.843 6.513 244.171 5.074
+573.483 499.388 10.121 540.458 7.048 245.511 8.967
+573.639 502.013 6.836 541.154 6.962 256.335 4.910
+573.797 502.190 7.236 540.221 8.019 244.033 7.249
+573.955 499.331 6.241 539.272 7.552 252.550 4.524
+574.112 500.163 8.128 540.422 7.153 250.975 7.190
+574.269 500.071 7.735 537.864 7.101 255.029 8.106
+574.425 495.800 8.223 541.958 7.232 244.080 6.573
+574.583 498.188 8.690 542.539 6.848 248.490 6.120
+574.740 503.641 5.607 539.135 7.165 245.684 4.855
+574.898 498.066 6.959 538.881 8.526 257.616 7.098
+575.055 501.110 8.746 540.788 6.798 239.586 5.400
+575.212 501.271 7.795 539.237 7.242 259.785 7.770
+575.369 503.362 9.504 542.122 8.250 249.587 9.122
+575.526 493.723 8.515 539.231 7.744 245.775 13.373
+575.682 501.277 13.143 541.062 8.354 255.977 7.638
+575.838 500.902 10.920 541.550 7.053 243.269 7.870
+575.995 496.649 8.723 538.465 10.228 251.552 8.092
+576.151 501.946 6.948 541.414 7.848 255.745 6.193
+576.309 497.229 7.186 540.964 7.332 244.057 6.834
+576.465 495.212 8.388 539.249 6.670 250.060 4.824
+576.622 499.062 8.178 542.472 8.306 253.950 7.155
+576.779 502.240 9.604 539.284 6.359 252.959 7.481
+576.936 500.462 7.948 539.172 6.518 251.009 4.966
+577.093 498.594 8.960 540.641 6.297 246.710 5.653
+577.251 500.985 6.267 540.246 6.770 252.907 5.371
+577.409 499.189 11.136 541.242 7.625 245.099 8.148
+577.566 496.381 13.402 540.472 8.767 249.811 11.272
+577.723 499.583 7.983 538.774 7.563 255.298 12.843
+577.879 499.175 9.356 541.077 6.703 245.742 5.601
+578.037 500.891 9.704 541.400 6.447 247.077 8.069
+578.193 502.208 9.452 541.904 6.092 243.000 10.886
+578.350 503.272 12.229 541.779 9.077 252.710 8.844
+578.507 498.152 7.614 538.707 7.814 255.637 5.426
+578.664 500.591 7.177 542.117 6.852 252.886 5.328
+578.821 495.775 6.223 539.831 6.641 246.948 7.315
+578.978 495.427 8.849 540.648 6.726 242.309 5.337
+579.136 505.234 9.756 537.816 6.189 256.933 7.423
+579.294 500.522 7.432 540.228 6.274 259.259 7.341
+579.451 497.975 6.600 540.152 6.180 249.282 4.267
+579.609 496.829 7.450 540.371 7.544 245.712 6.763
+579.767 500.158 6.412 540.813 6.291 249.067 8.540
+579.925 498.241 6.445 540.428 7.527 256.250 6.358
+580.083 496.162 7.225 540.414 6.832 254.972 6.317
+580.240 504.221 7.339 540.624 7.376 245.619 5.490
+580.398 496.572 6.466 540.756 6.391 250.276 4.525
+580.555 502.515 9.537 542.577 9.221 246.262 7.938
+580.711 499.385 10.083 540.275 7.193 246.072 6.099
+580.869 504.253 7.561 538.082 7.054 244.370 6.940
+581.026 496.202 12.287 540.060 8.155 260.923 9.286
+581.183 501.462 14.633 539.180 6.961 252.869 9.215
+581.339 501.584 10.487 541.621 7.625 239.218 9.210
+581.496 501.205 8.997 542.256 6.473 247.162 5.853
+581.653 500.652 8.011 537.042 7.237 251.191 8.512
+581.810 503.826 6.710 541.430 6.989 255.161 5.816
+581.968 498.558 7.000 539.104 6.614 249.971 8.507
+582.125 499.075 10.261 538.451 7.842 247.839 12.142
+582.283 499.960 7.268 539.534 6.534 256.188 4.217
+582.441 500.499 10.500 539.635 7.056 255.541 5.909
+582.598 502.345 8.711 539.596 6.528 242.645 3.882
+582.756 495.123 7.229 540.786 6.231 245.526 5.513
+582.914 509.981 11.226 539.937 6.919 257.235 8.683
+583.072 498.729 12.846 539.149 9.252 256.262 8.411
+583.229 499.407 9.763 541.141 7.372 246.402 7.416
+583.386 501.744 8.266 543.641 9.105 250.974 8.853
+583.543 505.117 8.651 538.466 8.173 239.509 8.989
+583.698 504.741 9.236 543.884 10.168 243.115 14.009
+583.855 498.997 8.867 535.688 9.398 248.931 10.189
+584.012 503.550 8.229 540.956 8.013 243.419 15.066
+584.169 504.215 8.816 540.059 6.520 253.544 11.107
+584.325 486.282 8.703 541.420 7.655 245.845 6.736
+584.482 499.872 9.967 540.934 7.061 248.728 6.462
+584.639 504.888 8.377 542.649 8.586 260.887 7.546
+584.796 499.218 6.953 543.356 7.562 246.708 5.392
+584.953 498.662 13.020 539.793 9.157 243.817 8.222
+585.109 496.696 9.504 539.728 7.011 260.248 4.892
+585.267 506.427 8.371 542.147 7.015 248.072 10.870
+585.423 501.124 13.081 538.891 10.948 245.550 12.195
+585.580 503.971 10.641 539.968 9.602 247.115 17.532
+585.736 499.279 14.311 540.539 11.372 239.481 12.386
+585.892 501.232 12.741 540.205 8.660 256.584 13.993
+586.049 496.032 12.319 541.132 8.930 257.355 8.938
+586.206 496.600 11.844 540.091 6.758 247.083 11.928
+586.363 499.076 12.929 545.541 6.944 230.320 6.943
+586.520 501.840 10.584 540.145 7.521 255.243 7.476
+586.678 500.318 7.098 538.701 8.164 263.782 6.811
+586.836 507.673 7.430 537.537 8.256 259.017 7.611
+586.994 492.326 6.723 542.615 7.246 234.570 8.694
+587.151 490.103 8.253 540.746 6.508 238.935 5.931
+587.309 501.581 8.133 540.687 7.398 263.199 5.998
+587.467 500.655 8.583 537.846 6.938 266.682 6.391
+587.624 499.516 7.475 541.138 6.859 246.416 6.913
+587.781 505.345 11.516 544.781 8.684 236.594 6.971
+587.938 509.983 10.151 541.207 7.666 248.395 20.817
+588.096 495.819 10.143 536.662 8.016 259.883 6.777
+588.254 497.398 9.246 539.006 7.042 251.998 6.421
+588.411 507.614 9.520 544.360 9.849 245.259 13.010
+588.567 496.356 8.127 537.093 7.937 248.732 6.896
+588.723 492.523 8.726 541.770 7.261 239.067 6.530
+588.881 501.175 11.991 540.457 7.643 260.760 8.721
+589.038 511.871 8.120 539.014 8.108 247.917 6.706
+589.194 497.298 13.167 539.620 12.447 255.089 16.166
+589.350 494.343 21.929 543.176 10.547 251.600 19.913
+589.506 504.923 9.783 538.621 9.459 251.746 5.582
+589.663 501.459 10.460 540.186 8.409 247.447 8.900
+589.820 506.284 7.508 542.331 6.838 248.584 12.069
+589.978 512.042 13.428 538.633 8.701 255.655 13.246
+590.134 510.820 9.631 540.746 9.141 247.726 8.346
+590.291 500.058 8.772 540.167 8.583 243.537 6.281
+590.448 488.100 6.831 540.951 8.401 211.655 7.510
+590.606 511.931 9.322 537.569 12.155 265.676 11.137
+590.764 508.899 8.371 537.925 6.635 268.856 7.628
+590.922 500.529 10.931 541.569 6.040 256.958 8.102
+591.079 499.225 9.205 546.785 7.309 236.279 6.848
+591.236 506.012 10.636 543.607 7.019 243.312 7.660
+591.394 506.790 7.553 538.116 6.940 263.523 4.042
+591.552 492.987 7.834 539.561 6.892 260.865 6.841
+591.709 488.869 11.016 540.415 8.758 245.098 5.601
+591.866 501.898 10.054 541.084 8.479 244.631 10.137
+592.023 493.479 10.684 539.790 7.191 246.146 6.861
+592.180 503.564 9.384 543.148 7.175 243.561 5.654
+592.337 505.565 6.854 542.081 6.547 253.065 5.965
+592.495 500.025 10.102 543.620 9.590 241.560 11.044
+592.653 501.380 8.820 542.796 7.244 245.685 6.716
+592.809 501.043 10.371 543.788 7.088 254.686 8.004
+592.968 505.950 7.762 544.767 6.695 249.566 10.013
+593.124 506.359 8.036 544.347 8.466 247.395 4.195
+593.281 508.433 10.264 547.243 7.600 239.323 6.111
+593.440 508.544 7.537 544.802 6.973 254.933 10.228
+593.597 506.225 8.525 544.758 7.800 252.719 12.354
+593.754 505.132 7.862 547.507 6.600 249.497 8.188
+593.910 510.291 10.953 548.295 7.424 242.915 4.535
+594.067 511.022 9.349 543.153 6.398 254.549 7.070
+594.225 512.350 7.719 545.131 6.489 250.025 5.788
+594.382 508.573 10.138 550.171 7.418 239.900 8.428
+594.539 512.615 11.222 543.611 7.339 254.719 6.281
+594.697 510.696 7.492 545.546 7.677 255.917 6.051
+594.855 509.657 7.559 545.915 7.988 244.139 6.397
+595.011 505.706 8.370 544.419 7.811 247.911 8.595
+595.168 512.607 10.393 545.544 7.537 252.379 4.049
+595.325 511.786 7.707 544.745 8.117 251.693 5.094
+595.482 509.927 9.647 546.687 7.230 253.176 6.561
+595.640 508.599 9.892 542.716 8.065 252.111 5.857
+595.797 517.226 10.013 544.077 9.235 258.121 10.176
+595.954 508.092 7.325 546.700 8.004 246.671 6.650
+596.110 515.890 14.798 545.467 8.284 245.406 11.944
+596.268 512.559 10.328 544.174 8.402 249.724 6.810
+596.425 511.965 8.171 545.691 8.203 255.597 4.735
+596.582 507.709 7.189 541.477 7.829 253.015 4.745
+596.739 511.787 6.971 543.404 7.580 255.120 6.639
+596.896 513.947 11.074 544.084 9.199 244.681 6.456
+597.053 507.429 9.537 547.530 7.112 235.626 13.926
+597.208 501.364 8.604 544.075 7.356 241.866 7.604
+597.366 509.023 9.361 543.740 6.424 257.888 6.639
+597.524 506.890 10.210 550.317 7.735 258.418 11.584
+597.681 508.938 7.791 546.673 7.994 243.864 5.344
+597.838 511.059 7.022 554.456 7.650 243.028 7.343
+597.994 511.560 7.503 547.774 6.740 238.490 4.447
+598.152 507.385 7.237 545.137 7.924 256.544 6.752
+598.309 506.593 8.482 544.661 7.621 258.355 9.422
+598.466 509.145 8.793 547.746 6.939 244.593 5.953
+598.623 508.901 7.873 547.697 7.159 245.435 4.875
+598.780 508.609 7.760 547.877 6.995 246.044 5.722
+598.937 509.716 10.582 546.868 6.671 251.630 7.079
+599.094 510.627 11.116 548.888 8.753 252.366 4.324
+599.251 515.506 7.644 547.118 6.741 238.703 4.485
+599.408 516.875 6.009 548.281 6.831 251.457 4.933
+599.566 512.688 11.591 547.202 6.600 252.624 4.230
+599.724 509.986 12.825 550.352 7.197 249.786 10.471
+599.881 512.699 8.405 543.993 9.398 249.187 9.810
+600.038 513.867 6.396 547.860 7.477 244.131 6.062
+600.195 513.908 9.673 549.848 7.465 253.261 5.138
+600.354 517.409 9.040 546.528 9.027 254.882 7.202
+600.510 509.394 8.725 547.585 6.805 244.118 5.796
+600.668 517.644 9.265 548.825 8.922 243.801 7.707
+600.826 513.436 6.788 548.288 7.383 248.248 5.927
+600.983 515.754 7.082 547.202 7.862 250.842 5.017
+601.141 514.217 7.856 545.862 7.679 244.458 6.532
+601.299 513.102 8.596 548.678 6.690 244.304 5.077
+601.457 514.031 7.785 544.206 6.560 251.353 4.838
+601.615 512.580 9.218 548.582 7.882 250.383 4.502
+601.772 511.865 8.970 545.345 7.570 249.213 9.253
+601.927 515.568 11.397 547.473 6.865 252.572 8.876
+602.084 516.045 10.441 550.354 9.390 248.355 5.104
+602.242 514.440 6.388 551.053 6.508 245.303 5.462
+602.401 515.564 7.445 547.260 6.914 248.633 6.563
+602.558 521.335 10.872 548.832 8.061 250.176 5.972
+602.715 516.023 9.125 546.628 7.052 242.101 6.761
+602.873 513.820 8.790 546.116 7.295 256.781 6.057
+603.031 514.528 6.764 545.671 6.237 245.437 6.880
+603.188 515.645 8.497 543.836 7.351 251.594 5.628
+603.347 512.886 8.654 544.198 7.332 255.645 4.777
+603.505 518.108 8.551 546.722 7.894 242.286 8.194
+603.661 520.791 8.462 544.417 8.006 241.532 4.576
+603.818 514.557 8.759 545.894 7.384 245.005 5.688
+603.975 514.475 6.826 546.259 6.894 247.410 6.817
+604.133 515.664 8.870 544.422 6.936 256.844 7.532
+604.290 511.756 10.535 545.764 7.123 248.328 6.381
+604.449 513.937 6.538 545.707 7.537 254.493 6.661
+604.606 511.489 6.779 548.687 7.242 243.214 6.165
+604.764 516.854 10.134 543.376 7.145 248.862 4.660
+604.921 513.708 12.437 543.603 7.233 251.738 4.591
+605.079 512.417 9.247 544.526 7.784 248.627 5.967
+605.236 509.884 9.270 544.445 6.644 242.916 4.550
+605.394 514.728 8.787 543.014 6.894 253.549 4.600
+605.552 510.747 8.014 546.410 6.990 249.815 5.109
+605.708 511.987 7.195 545.624 6.518 244.688 4.713
+605.866 512.839 6.432 545.316 6.746 251.836 5.526
+606.024 513.658 13.445 545.783 8.568 249.088 9.748
+606.181 512.336 6.860 545.417 6.591 244.490 5.618
+606.339 510.143 8.673 543.204 8.254 250.554 6.563
+606.495 510.151 10.453 543.732 7.378 244.855 4.842
+606.652 511.751 6.320 543.227 7.524 251.418 4.680
+606.811 515.587 8.583 545.382 9.647 246.794 9.082
+606.967 521.085 6.722 543.263 7.118 253.397 7.989
+607.124 510.500 9.416 544.122 8.280 248.473 5.047
+607.281 517.305 7.193 543.601 7.165 249.964 4.598
+607.438 513.453 8.077 545.776 7.150 241.679 7.352
+607.595 513.174 10.268 545.127 7.495 251.636 5.538
+607.753 513.261 7.800 544.451 6.943 241.546 6.190
+607.911 511.212 9.806 542.394 8.938 249.285 4.895
+608.068 512.252 9.509 545.884 7.189 253.452 8.156
+608.224 512.542 8.030 548.898 8.125 242.344 6.697
+608.382 513.725 7.393 540.849 7.126 256.963 6.530
+608.540 507.107 10.329 553.798 9.491 235.109 7.465
+608.696 517.251 9.115 540.678 8.417 244.641 4.749
+608.855 507.122 8.202 548.446 8.391 256.836 6.395
+609.013 510.941 14.672 542.724 6.682 254.348 6.040
+609.170 512.899 9.996 535.877 7.571 259.313 9.470
+609.326 511.909 6.974 546.008 7.707 245.153 5.042
+609.484 513.369 8.858 541.150 7.938 249.771 5.835
+609.641 511.933 8.834 542.001 9.276 238.487 8.070
+609.798 509.909 6.803 537.580 7.220 254.594 6.623
+609.955 520.109 8.882 539.535 8.032 246.395 4.719
+610.112 519.301 11.599 541.795 7.538 247.253 9.681
+610.268 516.133 7.651 534.888 6.892 253.772 3.693
+610.426 513.561 9.368 541.708 7.628 232.337 11.629
+610.582 520.425 7.670 544.367 7.241 247.533 13.069
+610.739 508.464 10.960 540.233 7.037 253.525 7.440
+610.896 503.604 9.514 545.052 9.472 230.615 5.284
+611.053 500.896 6.714 543.760 7.273 234.596 9.730
+611.210 516.629 10.012 533.647 8.796 277.405 15.915
+611.368 515.376 12.701 544.286 9.198 241.744 12.192
+611.524 513.343 10.464 543.732 9.317 236.817 9.735
+611.681 511.613 9.351 542.997 8.630 233.318 5.628
+611.837 512.276 7.289 541.670 8.315 253.183 8.035
+611.994 514.542 8.399 534.086 7.412 266.731 8.586
+612.152 511.745 8.632 539.420 8.844 250.227 7.099
+612.309 505.687 7.881 539.964 7.176 243.912 10.023
+612.466 510.546 6.706 538.279 7.282 249.379 5.711
+612.623 513.855 6.233 543.022 7.784 246.783 8.747
+612.781 514.938 11.972 533.160 8.139 252.417 9.320
+612.938 508.879 6.818 541.001 7.527 248.794 4.490
+613.096 506.598 7.814 544.100 7.834 242.137 5.998
+613.253 509.456 7.586 538.741 7.142 253.541 4.618
+613.410 505.674 7.310 540.147 7.645 248.925 6.747
+613.568 510.086 8.926 540.461 7.624 241.569 6.774
+613.725 511.020 7.733 540.094 7.296 250.325 4.413
+613.882 501.860 6.889 537.531 8.291 249.983 5.108
+614.040 500.808 9.496 540.105 8.325 250.919 8.572
+614.197 505.828 7.559 540.211 7.548 252.149 4.661
+614.354 503.668 8.982 539.832 7.708 246.311 4.750
+614.511 505.706 8.263 538.688 8.668 251.293 6.336
+614.669 501.287 7.612 538.997 6.640 250.652 4.218
+614.826 495.822 6.823 541.220 7.493 244.476 6.090
+614.984 504.378 7.961 536.582 7.006 258.464 9.314
+615.140 497.733 7.129 542.665 6.556 245.024 4.318
+615.298 499.877 13.059 538.696 9.017 251.500 5.487
+615.455 502.148 10.076 540.827 6.859 247.715 5.320
+615.612 496.811 8.247 539.848 7.350 251.027 4.964
+615.770 494.698 10.462 538.538 7.948 251.340 6.035
+615.927 499.717 10.950 541.765 6.922 245.373 8.821
+616.083 502.227 9.326 540.037 8.124 252.493 5.693
+616.240 502.052 8.533 539.360 6.227 249.724 5.622
+616.398 492.640 6.496 541.333 6.448 244.677 5.687
+616.556 501.166 7.935 539.263 7.045 252.466 9.915
+616.712 500.061 10.322 538.622 9.773 251.724 5.230
+616.869 495.170 7.478 538.016 8.058 250.987 6.735
+617.027 502.781 9.849 543.100 7.427 246.189 5.951
+617.184 501.567 6.950 542.111 7.320 248.941 6.500
+617.342 503.525 5.774 538.791 7.124 252.949 5.486
+617.499 503.235 7.538 542.358 6.321 248.329 4.115
+617.657 501.922 6.883 539.673 9.603 251.133 8.396
+617.814 495.889 9.572 540.886 7.840 250.191 9.965
+617.971 499.778 10.224 539.128 6.306 255.431 5.483
+618.129 504.547 7.509 541.251 6.941 253.624 7.642
+618.286 499.815 8.739 539.622 7.151 251.696 7.463
+618.443 503.138 6.851 539.296 6.691 252.316 3.767
+618.600 502.001 6.326 541.813 7.965 249.473 7.365
+618.757 501.540 9.214 541.318 8.125 243.844 6.879
+618.914 498.155 5.905 539.703 6.912 249.618 4.588
+619.072 495.141 8.218 538.817 6.578 254.096 5.759
+619.230 503.141 6.575 539.418 6.912 253.680 4.333
+619.387 501.411 7.664 540.194 6.574 241.666 5.963
+619.545 504.614 8.760 541.801 6.604 249.306 7.005
+619.702 497.666 6.563 542.938 6.586 247.133 6.208
+619.859 499.666 7.565 540.099 6.593 247.811 6.728
+620.016 495.106 8.435 540.621 7.996 251.718 4.885
+620.172 496.281 7.059 539.946 8.253 251.747 5.408
+620.329 496.232 6.350 542.019 7.611 253.007 11.729
+620.486 494.082 7.224 540.920 7.613 252.770 6.414
+620.644 498.120 7.389 540.159 8.453 250.477 5.388
+620.801 493.231 6.359 542.401 6.418 243.204 3.899
+620.959 490.272 6.914 540.424 6.583 250.132 4.940
+621.117 482.822 7.493 538.754 10.868 248.821 9.544
+621.274 491.958 7.335 542.737 7.268 254.348 4.877
+621.432 483.849 8.006 542.907 7.154 249.083 9.654
+621.589 498.478 6.592 541.419 7.729 255.760 8.626
+621.746 489.784 7.723 545.564 9.020 243.147 7.832
+621.902 489.537 7.031 542.515 7.183 251.281 4.298
+622.059 483.655 10.478 541.025 9.395 253.902 6.441
+622.216 485.046 8.100 547.860 11.934 251.609 9.420
+622.372 495.650 6.307 544.848 7.794 252.906 7.376
+622.530 492.566 8.261 541.048 7.800 248.319 5.392
+622.688 487.465 11.699 544.220 8.351 245.753 9.971
+622.845 489.934 10.850 545.412 11.978 246.627 7.492
+623.002 485.949 8.842 543.504 7.606 253.836 6.969
+623.159 484.239 8.419 543.425 8.006 251.528 6.222
+623.316 489.022 7.314 544.484 9.843 255.535 8.632
+623.473 483.570 9.983 541.954 7.964 249.265 10.417
+623.629 473.435 9.215 544.509 7.348 243.572 13.808
+623.785 483.744 7.367 541.555 11.008 250.265 7.064
+623.942 482.977 7.362 544.615 9.276 253.282 9.738
+624.099 485.079 7.184 543.286 7.562 250.672 8.806
+624.256 481.920 7.357 546.133 9.198 252.516 9.920
+624.414 486.009 8.158 543.051 6.824 255.985 11.355
+624.571 481.330 8.160 545.230 8.281 249.759 6.793
+624.727 484.293 9.174 542.342 8.180 249.777 5.770
+624.884 485.802 6.635 541.343 10.323 253.487 4.138
+625.042 476.948 7.791 544.913 8.802 249.864 5.938
+625.199 485.039 8.078 541.859 9.189 254.858 4.524
+625.356 482.120 9.353 543.108 7.318 253.118 4.485
+625.514 488.141 7.158 546.241 9.939 254.161 8.743
+625.670 489.071 6.665 540.932 7.849 254.731 4.575
+625.828 487.210 8.526 546.379 8.394 249.057 5.587
+625.986 474.052 9.041 543.653 9.349 251.020 6.011
+626.143 482.010 7.990 545.036 9.891 249.030 7.803
+626.299 480.730 9.965 542.160 8.089 243.420 4.384
+626.456 487.887 6.974 543.141 7.338 257.644 5.895
+626.613 481.678 7.589 542.541 7.819 248.456 6.190
+626.770 480.416 10.780 542.335 11.028 259.474 10.152
+626.930 481.484 9.573 545.033 8.515 259.214 11.313
+627.088 475.804 11.040 540.710 13.987 237.602 6.223
+627.244 486.538 8.951 540.567 13.973 247.166 6.585
+627.402 488.665 11.031 546.625 10.152 245.861 9.210
+627.559 474.156 11.454 544.476 12.886 254.638 8.641
+627.716 477.541 9.843 540.804 10.744 258.306 10.480
+627.873 483.505 9.313 543.998 9.131 252.683 5.878
+628.031 480.055 7.137 544.780 10.802 245.846 6.403
+628.189 477.510 7.825 543.057 11.261 246.688 6.639
+628.345 488.735 9.610 542.370 12.188 253.856 8.289
+628.502 482.287 8.530 542.963 10.095 257.008 8.027
+628.660 483.262 9.863 542.219 9.048 248.330 5.492
+628.816 479.572 7.439 544.002 8.512 249.553 4.631
+628.974 488.415 7.368 540.910 8.351 252.915 6.020
+629.132 484.064 10.986 543.429 8.973 248.559 8.628
+629.288 478.120 7.039 542.244 7.505 248.345 5.259
+629.446 486.401 10.053 540.642 9.578 255.823 8.818
+629.602 486.794 6.387 541.586 7.830 252.588 8.942
+629.759 489.298 6.744 541.716 8.872 257.785 6.364
+629.917 472.793 11.285 545.377 9.431 244.317 12.125
+630.073 480.157 8.766 540.133 10.590 252.473 7.623
+630.230 482.641 8.258 539.941 7.663 249.874 7.594
+630.386 480.936 7.674 546.419 7.963 249.958 6.744
+630.543 481.139 6.129 545.064 7.226 247.389 9.638
+630.700 478.101 6.752 543.390 6.828 250.943 5.052
+630.857 475.531 6.496 539.793 6.961 257.889 4.594
+631.014 484.015 7.043 544.008 8.007 249.568 4.505
+631.172 482.500 7.039 545.600 8.529 248.075 6.442
+631.329 483.325 6.306 543.706 8.761 241.310 4.538
+631.487 485.643 7.827 543.577 10.276 259.863 9.159
+631.644 482.696 8.519 543.905 8.945 253.058 6.663
+631.801 478.867 8.399 543.979 7.200 250.150 6.607
+631.958 480.578 7.244 544.359 8.139 247.331 6.523
+632.115 477.275 6.838 540.043 10.473 256.603 7.922
+632.273 483.202 6.730 540.370 7.272 256.036 5.013
+632.432 472.782 7.436 544.073 6.523 241.690 6.472
+632.588 483.317 8.103 541.530 8.478 252.886 3.468
+632.745 481.983 8.853 542.035 7.309 253.328 4.959
+632.903 480.259 8.044 542.270 8.566 245.953 8.972
+633.059 478.952 8.338 543.222 7.843 250.719 8.731
+633.214 474.419 6.342 542.192 8.489 246.767 7.266
+633.372 485.114 7.755 545.501 9.003 252.157 6.736
+633.528 474.851 7.794 543.725 8.803 245.931 6.832
+633.684 478.098 6.995 543.337 8.499 253.339 6.517
+633.842 483.401 7.418 545.313 11.996 252.233 6.692
+633.999 489.184 6.683 540.113 6.982 256.692 5.548
+634.157 475.201 8.998 547.401 9.326 240.986 18.911
+634.313 485.462 8.495 544.174 10.328 250.379 13.610
+634.470 482.574 8.741 541.501 11.881 255.163 6.325
+634.627 481.585 7.273 542.505 8.094 255.591 6.318
+634.784 478.625 9.774 543.855 10.035 241.525 7.995
+634.940 481.066 8.601 547.238 8.972 245.825 5.556
+635.097 483.690 7.125 541.112 7.219 252.808 5.465
+635.255 483.746 8.017 544.061 8.356 251.138 14.709
+635.411 475.977 7.803 542.850 13.800 246.101 6.127
+635.567 480.309 10.539 542.428 11.286 249.991 7.984
+635.724 481.433 6.342 543.414 7.345 248.419 4.572
+635.882 487.924 7.574 543.204 7.162 254.234 7.134
+636.039 480.929 7.216 544.222 8.132 244.632 7.361
+636.195 480.259 10.410 541.562 8.440 248.596 5.750
+636.352 472.362 8.201 542.255 9.021 255.525 7.880
+636.509 481.203 7.048 542.622 8.253 256.165 7.416
+636.667 483.572 8.496 543.286 7.171 253.081 6.322
+636.824 484.485 9.181 546.702 9.977 239.990 6.914
+636.980 479.194 9.981 538.847 8.190 253.149 7.292
+637.136 488.331 8.875 541.258 14.832 248.721 6.253
+637.293 491.943 7.961 543.332 9.268 254.827 12.174
+637.449 472.769 11.390 544.973 8.866 242.168 8.188
+637.606 481.267 7.922 542.579 7.216 255.981 9.591
+637.762 482.972 7.721 541.505 11.312 257.969 5.912
+637.920 475.839 7.252 543.515 7.878 241.289 6.525
+638.078 484.898 9.479 547.075 11.336 247.812 8.319
+638.234 485.089 7.152 544.230 8.861 251.928 5.363
+638.392 484.370 9.405 539.632 7.715 258.899 5.111
+638.550 477.443 13.119 547.186 12.567 244.669 10.390
+638.707 477.474 6.565 545.811 9.207 252.006 6.501
+638.865 485.454 8.994 540.288 9.007 252.920 6.483
+639.022 473.064 6.966 546.532 10.102 247.439 16.478
+639.178 479.190 9.414 541.535 7.399 253.234 6.286
+639.336 481.431 8.579 543.135 6.769 254.882 5.151
+639.493 483.864 7.759 541.921 6.549 253.738 7.434
+639.650 482.358 7.416 543.239 9.365 253.447 8.461
+639.807 482.423 10.560 543.462 8.645 247.674 4.789
+639.964 485.874 10.414 542.494 9.155 250.706 8.602
+640.121 480.268 10.386 542.235 7.839 250.657 7.951
+640.277 476.232 8.830 544.652 6.482 252.526 5.767
+640.435 483.922 12.291 541.576 7.008 255.375 12.416
+640.592 482.219 6.718 540.575 8.550 253.513 4.207
+640.750 480.732 7.326 542.475 7.637 247.635 6.700
+640.907 482.257 6.873 542.614 6.603 255.976 5.374
+641.065 485.302 6.582 541.926 7.361 249.689 7.745
+641.221 485.533 8.659 543.409 7.162 248.746 5.679
+641.378 487.545 7.201 543.944 7.619 252.027 5.604
+641.536 487.415 6.945 542.779 6.884 255.110 4.063
+641.693 485.484 5.929 543.007 6.851 250.211 6.236
+641.850 485.944 7.398 543.180 8.392 247.112 7.063
+642.007 489.579 7.934 543.941 8.843 253.841 4.656
+642.165 488.105 6.674 543.269 7.846 254.458 8.771
+642.322 483.941 9.356 541.622 8.112 246.274 7.005
+642.479 486.749 8.025 542.786 7.257 253.762 10.475
+642.636 490.867 7.042 544.337 8.744 258.867 4.547
+642.793 489.928 7.731 540.613 7.946 251.088 5.082
+642.950 493.509 7.953 543.636 7.269 246.830 7.109
+643.107 497.465 7.343 545.956 8.148 249.938 5.686
+643.263 491.404 7.528 543.219 7.074 250.089 3.848
+643.421 490.244 6.980 541.992 6.812 251.410 5.852
+643.579 492.592 7.255 544.330 6.767 254.044 4.897
+643.736 493.415 6.098 542.003 6.396 253.650 4.965
+643.895 492.894 6.569 541.540 6.649 250.636 4.254
+644.052 496.448 7.491 542.675 6.628 249.786 6.536
+644.209 497.994 6.914 542.646 6.446 254.337 4.478
+644.367 496.259 6.345 543.686 6.851 251.183 4.638
+644.524 494.322 9.433 544.216 7.129 250.721 8.742
+644.681 492.123 6.550 541.312 6.989 250.337 4.786
+644.838 496.021 7.503 541.753 7.395 251.703 7.660
+644.995 500.070 7.936 541.587 7.874 255.777 8.781
+645.150 500.130 8.070 541.395 7.771 245.417 14.596
+645.306 507.261 19.321 540.204 8.630 252.774 22.380
+645.461 497.262 16.225 542.062 10.030 236.387 20.556
+645.616 490.682 10.889 541.360 11.634 238.133 13.400
+645.774 496.726 11.318 542.513 11.861 252.431 11.747
+645.931 495.137 9.667 541.955 7.109 256.044 8.946
+646.087 494.751 10.310 542.799 9.227 242.450 18.230
+646.243 496.027 9.338 547.738 9.275 237.914 12.544
+646.399 493.970 15.403 544.477 6.952 251.739 8.205
+646.556 499.249 9.600 541.284 7.638 252.507 13.756
+646.712 500.642 9.601 540.492 7.177 262.865 9.055
+646.869 499.116 7.988 545.955 9.052 247.728 9.079
+647.025 500.391 10.806 542.809 8.484 250.007 6.132
+647.183 502.503 8.478 543.548 9.929 253.010 7.901
+647.339 498.475 9.724 542.475 7.389 243.650 6.351
+647.496 498.294 8.622 543.164 8.627 246.196 11.708
+647.652 495.613 12.150 541.731 8.663 247.491 10.833
+647.809 500.476 8.349 542.267 8.576 244.994 7.940
+647.965 501.074 7.108 541.852 7.817 251.549 10.216
+648.122 499.390 8.329 543.798 7.380 253.075 7.462
+648.278 496.934 8.556 542.858 6.352 243.150 5.143
+648.436 502.589 7.732 544.138 7.992 243.601 10.316
+648.592 504.765 9.421 543.021 6.059 256.306 5.519
+648.750 499.427 6.368 543.100 7.530 248.573 5.761
+648.908 501.634 6.725 544.521 7.889 246.365 6.000
+649.066 499.036 9.764 544.055 6.888 253.843 6.954
+649.224 498.200 7.125 541.680 7.007 257.678 5.335
+649.383 499.892 11.417 543.196 7.582 250.606 6.375
+649.539 498.228 9.910 546.112 6.742 245.416 5.301
+649.697 502.152 11.273 541.871 8.589 257.074 6.706
+649.854 503.851 8.242 542.208 7.006 245.330 8.809
+650.011 498.428 7.435 542.772 7.507 248.483 7.219
+650.167 504.344 7.038 543.407 7.622 246.464 5.460
+650.325 498.973 7.718 543.114 8.738 245.564 6.150
+650.482 500.999 9.060 541.501 6.844 255.925 7.379
+650.640 496.490 7.921 544.855 6.862 246.479 4.275
+650.798 501.044 7.542 544.308 6.594 256.884 6.601
+650.955 500.690 7.037 543.933 7.103 252.558 5.677
+651.113 500.416 8.315 542.599 7.238 244.525 4.857
+651.270 501.694 7.942 540.336 7.540 253.635 4.408
+651.427 498.916 7.401 544.663 7.564 249.546 5.122
+651.584 504.349 6.417 542.926 6.680 246.035 5.245
+651.743 498.063 6.292 543.129 8.316 252.970 7.437
+651.901 497.850 8.965 541.301 8.823 257.919 6.633
+652.058 511.018 13.896 543.883 8.775 256.029 10.660
+652.216 495.550 8.938 543.668 8.711 249.920 15.231
+652.372 500.795 8.324 540.826 7.129 256.139 4.768
+652.530 500.817 9.683 545.118 6.273 249.851 6.106
+652.688 501.658 11.097 541.141 7.681 253.268 5.161
+652.846 502.496 10.488 542.111 8.368 244.282 6.123
+653.003 504.325 9.073 542.901 10.003 252.082 9.067
+653.159 497.843 10.127 542.889 8.359 245.500 6.031
+653.316 492.718 7.171 542.558 8.346 250.785 4.970
+653.474 502.437 8.308 543.745 7.319 256.707 6.646
+653.630 493.564 6.759 541.487 8.569 249.637 5.102
+653.788 500.475 7.087 543.354 6.910 250.716 5.472
+653.945 498.084 8.985 545.113 8.017 239.927 7.587
+654.102 503.030 7.467 542.241 7.381 259.819 6.849
+654.259 501.180 6.268 541.702 7.335 259.458 5.807
+654.417 498.061 8.317 544.757 6.358 246.494 4.718
+654.574 498.580 6.272 544.137 7.582 247.734 7.052
+654.732 499.255 7.867 543.721 6.615 255.327 6.347
+654.890 500.392 7.045 543.187 6.841 254.543 6.732
+655.046 501.753 7.288 542.541 7.853 248.125 5.146
+655.204 496.077 6.988 543.365 8.495 241.881 8.969
+655.360 498.950 9.491 544.603 8.439 249.818 9.490
+655.517 502.679 7.414 543.136 8.684 252.828 7.300
+655.674 499.076 6.064 543.731 6.915 253.298 4.899
+655.832 499.030 7.935 543.547 6.437 250.883 6.106
+655.989 500.220 8.382 544.785 8.615 245.728 7.712
+656.146 504.992 7.542 543.467 6.774 260.777 9.803
+656.304 495.729 13.319 544.214 11.584 244.487 14.132
+656.461 495.757 9.976 544.922 8.917 225.884 12.548
+656.619 504.057 10.166 540.989 8.917 279.138 14.192
+656.776 502.520 8.749 540.619 8.859 271.311 9.581
+656.933 499.115 6.647 541.806 6.553 241.723 13.091
+657.089 499.121 10.291 546.508 8.288 237.917 5.235
+657.247 498.791 8.491 544.715 8.620 244.799 11.864
+657.404 504.227 7.337 540.207 7.610 275.818 7.499
+657.562 500.282 7.427 542.932 6.894 265.228 6.914
+657.720 495.842 7.878 544.969 6.525 238.122 3.834
+657.878 502.638 7.324 544.669 6.144 245.971 6.903
+658.036 502.376 7.020 543.086 6.249 258.699 4.535
+658.194 500.823 6.611 541.300 6.207 256.627 7.442
+658.352 496.408 6.838 542.313 6.529 250.176 6.061
+658.509 505.854 11.723 547.163 7.466 248.931 6.890
+658.666 502.208 10.191 544.051 7.834 251.249 5.174
+658.823 506.662 10.203 543.530 6.720 254.082 7.240
+658.980 504.186 12.756 545.005 7.232 247.560 7.569
+659.137 500.121 7.234 541.610 6.243 245.275 5.942
+659.294 504.021 8.414 545.136 7.390 247.562 5.756
+659.452 502.050 12.296 541.991 7.423 254.705 6.179
+659.608 503.800 8.231 544.519 6.444 251.697 5.241
+659.766 505.658 11.912 543.265 8.311 246.876 7.756
+659.922 503.976 7.846 543.062 7.461 250.458 3.821
+660.080 505.909 6.653 544.380 8.465 256.924 11.243
+660.238 506.479 8.094 542.183 8.395 248.659 7.198
+660.394 511.874 8.877 547.491 8.229 246.076 9.428
+660.550 503.168 7.434 543.965 8.606 249.660 8.735
+660.706 502.771 12.596 545.529 8.065 248.766 6.413
+660.863 503.017 8.339 543.545 8.473 251.067 6.361
+661.020 505.320 7.918 541.485 8.127 253.510 7.769
+661.176 500.473 7.116 541.284 8.075 250.595 4.556
+661.332 505.364 8.567 543.942 7.803 251.375 6.126
+661.490 504.243 12.326 547.059 8.300 241.903 8.676
+661.648 505.192 7.356 539.150 8.213 257.739 9.776
+661.803 504.201 16.378 542.701 8.142 249.217 10.030
+661.960 505.942 10.912 546.587 7.628 248.292 8.483
+662.117 504.769 7.482 544.285 7.126 252.352 5.791
+662.275 507.307 7.745 544.232 8.124 254.443 5.819
+662.431 502.573 8.550 543.562 8.078 246.284 5.054
+662.588 508.715 8.963 544.345 9.578 239.772 11.929
+662.745 506.847 12.207 541.513 8.365 253.167 7.768
+662.902 505.648 10.910 543.535 8.998 254.811 9.207
+663.059 508.986 8.445 544.275 7.382 250.858 4.970
+663.216 508.169 7.417 541.702 7.060 245.908 6.765
+663.374 513.501 10.475 543.067 8.627 245.389 10.177
+663.530 513.735 12.092 540.950 8.090 250.833 5.161
+663.687 510.087 10.404 545.529 9.851 249.998 5.657
+663.844 514.500 15.416 544.085 10.167 243.630 8.544
+664.001 516.495 8.918 540.970 9.762 257.886 7.997
+664.157 498.965 7.142 540.509 8.930 244.698 7.458
+664.314 507.869 7.779 546.865 8.234 247.847 7.688
+664.470 515.488 7.428 545.418 9.262 250.338 6.005
+664.628 507.874 8.621 538.744 8.526 253.403 7.167
+664.784 510.238 6.576 539.607 7.833 249.054 5.360
+664.942 508.572 9.524 544.366 10.145 245.120 7.845
+665.099 516.315 18.528 541.363 12.990 235.001 22.840
+665.254 511.623 10.018 542.823 7.753 252.560 6.101
+665.413 511.636 7.948 545.338 9.460 243.975 7.689
+665.569 501.676 6.635 546.143 10.359 251.489 7.496
+665.726 508.406 9.771 545.471 8.153 250.224 4.926
+665.882 507.604 9.395 547.554 8.507 240.242 4.270
+666.040 515.696 10.593 545.005 10.028 263.742 8.365
+666.197 516.027 8.737 543.670 8.153 250.157 6.803
+666.355 509.060 8.561 553.316 11.647 240.011 8.749
+666.511 502.420 15.536 547.123 11.048 241.160 9.755
+666.669 510.384 9.247 547.891 11.375 252.611 8.761
+666.826 512.053 15.754 546.459 9.721 265.116 9.732
+666.982 505.660 14.771 548.294 10.525 246.961 6.378
+667.139 513.516 11.869 546.473 14.542 238.529 6.074
+667.295 512.965 15.534 544.194 9.225 239.705 8.779
+667.454 513.339 10.505 542.022 9.988 270.057 6.216
+667.613 514.933 12.490 544.250 8.858 254.420 10.118
+667.770 508.509 9.232 548.152 10.637 237.014 10.170
+667.928 514.855 9.742 548.281 8.829 248.260 10.993
+668.085 504.608 8.803 545.842 9.094 245.792 6.770
+668.243 524.496 9.009 543.178 11.355 258.637 9.617
+668.400 513.144 10.172 547.541 9.110 249.576 7.870
+668.557 510.061 9.503 544.295 8.720 239.945 9.629
+668.713 514.380 7.900 547.883 8.306 240.659 8.172
+668.869 509.693 8.664 550.488 9.323 248.846 6.761
+669.026 511.056 9.322 544.694 10.554 263.228 8.529
+669.183 508.220 12.212 546.537 9.208 248.102 10.017
+669.340 516.292 9.112 548.445 8.009 236.221 8.738
+669.497 516.552 7.554 544.744 9.152 255.082 7.047
+669.654 513.025 9.011 545.907 7.971 247.660 4.423
+669.811 511.730 6.748 546.429 7.462 252.726 5.357
+669.969 512.607 7.695 544.614 8.867 248.867 8.382
+670.126 507.076 9.602 547.836 7.332 244.208 7.181
+670.283 516.000 6.690 545.928 7.390 253.562 9.608
+670.440 514.160 8.824 548.079 11.625 245.965 7.589
+670.597 515.331 8.324 544.840 8.810 236.229 12.104
+670.755 514.363 11.053 547.498 9.850 260.202 12.818
+670.912 512.103 8.459 544.485 8.665 251.882 8.244
+671.069 505.381 7.295 546.944 8.660 247.708 10.740
+671.225 516.143 9.978 549.609 7.217 247.897 7.852
+671.382 514.931 9.672 544.566 7.724 249.548 6.985
+671.540 519.359 7.577 543.315 9.504 251.225 14.369
+671.695 520.573 7.810 547.093 7.254 243.362 8.306
+671.852 512.625 7.647 545.601 8.601 247.513 6.595
+672.009 514.516 11.035 544.766 10.432 246.935 8.032
+672.166 516.415 9.642 543.477 8.897 247.649 7.752
+672.323 512.784 11.577 544.084 9.947 246.086 16.126
+672.479 512.507 9.491 547.310 9.041 240.880 8.084
+672.636 520.065 10.776 547.643 8.164 253.478 6.888
+672.794 505.420 8.725 545.606 10.545 252.064 6.170
+672.951 513.304 8.770 543.696 10.351 247.720 7.170
+673.109 507.823 9.430 547.717 8.805 241.297 7.123
+673.265 510.448 9.226 543.207 9.111 254.982 6.331
+673.423 517.674 7.048 543.132 9.156 258.979 6.934
+673.582 516.296 10.366 540.591 9.458 242.269 6.790
+673.739 509.013 7.148 545.496 8.570 241.072 5.253
+673.896 516.600 7.461 544.784 7.391 242.810 6.342
+674.054 516.106 8.152 543.207 8.373 262.508 8.689
+674.211 512.641 9.527 543.742 9.729 253.155 7.149
+674.367 515.196 7.660 546.707 11.625 236.741 8.837
+674.524 510.412 9.208 545.317 10.780 244.467 8.780
+674.682 515.294 13.807 542.873 10.600 252.804 9.617
+674.839 508.842 7.171 545.118 9.039 250.228 5.444
+674.996 513.648 7.191 541.731 8.307 250.622 4.891
+675.153 508.206 10.811 547.567 8.423 247.346 7.525
+675.309 517.592 8.626 547.795 9.531 243.763 8.206
+675.466 509.145 9.021 546.008 11.046 245.187 9.324
+675.623 512.881 9.763 547.730 9.079 244.411 9.761
+675.779 519.048 10.278 545.897 7.871 245.394 5.744
+675.937 512.690 6.649 545.359 8.140 251.543 11.383
+676.094 514.806 7.629 548.803 7.863 249.325 5.617
+676.251 510.718 8.560 548.148 8.338 239.033 5.589
+676.408 517.577 10.017 543.121 9.648 254.180 7.096
+676.565 504.995 6.663 545.331 6.710 249.961 6.462
+676.722 516.709 8.178 550.493 8.825 250.659 7.966
+676.879 509.787 6.900 544.884 8.729 244.936 10.405
+677.035 515.157 9.144 547.688 9.321 246.569 6.623
+677.192 510.461 8.085 548.386 9.446 247.495 7.153
+677.348 514.944 8.160 546.193 9.912 250.804 7.467
+677.506 510.709 8.618 546.352 9.661 250.178 7.385
+677.662 510.737 9.662 545.393 10.193 245.981 9.451
+677.818 521.217 12.726 546.834 9.890 254.089 19.017
+677.975 507.382 7.082 546.818 10.376 240.150 10.206
+678.133 512.933 7.244 542.898 8.502 247.211 7.187
+678.290 515.179 7.284 549.159 8.758 246.072 6.015
+678.448 508.821 10.523 544.251 7.895 253.040 8.383
+678.604 512.408 8.508 544.402 8.927 250.640 7.170
+678.761 521.274 6.770 546.764 8.074 245.616 12.039
+678.918 521.022 8.437 547.137 8.947 247.016 8.485
+679.076 510.990 8.131 543.771 9.466 242.270 7.866
+679.231 517.519 9.943 548.697 8.137 244.142 5.724
+679.388 515.235 6.977 548.177 8.441 252.131 7.191
+679.545 511.792 7.024 543.231 8.550 250.001 9.174
+679.703 514.357 8.214 546.662 8.920 247.270 9.298
+679.859 520.613 20.570 546.626 9.314 246.992 8.258
+680.016 508.686 10.735 544.356 9.871 247.779 8.947
+680.174 511.266 7.908 543.813 8.912 250.097 6.374
+680.331 516.262 8.623 548.338 8.899 243.991 6.222
+680.488 510.492 10.317 547.333 7.036 250.709 7.613
+680.646 515.074 10.219 543.883 8.925 249.027 9.826
+680.803 529.870 15.757 548.568 10.123 257.420 14.709
+680.960 510.948 18.591 545.825 8.612 250.084 21.605
+681.116 505.309 16.414 545.668 10.900 237.340 13.188
+681.272 514.543 11.203 546.266 11.500 250.503 6.663
+681.429 514.365 16.853 545.902 8.256 251.735 7.858
+681.585 507.633 6.816 543.299 8.148 255.337 18.198
+681.740 509.136 10.216 543.473 8.632 244.123 8.684
+681.897 515.971 7.499 547.514 7.156 246.811 8.950
+682.054 517.149 12.596 544.995 6.917 243.358 10.248
+682.211 509.731 10.997 544.340 9.515 255.003 10.634
+682.369 513.187 10.110 544.843 7.073 249.130 8.269
+682.526 511.271 9.966 542.428 8.393 246.711 10.241
+682.682 503.362 14.484 543.254 8.715 246.117 7.726
+682.838 509.753 9.657 546.202 7.336 246.261 13.797
+682.995 512.217 8.367 544.312 8.847 253.672 8.857
+683.152 511.352 7.571 544.773 7.027 252.626 7.950
+683.308 513.803 14.896 545.657 7.164 238.436 5.353
+683.465 513.158 9.688 546.096 8.144 241.444 8.627
+683.622 503.671 6.870 543.531 7.542 251.154 8.270
+683.779 508.076 9.744 539.325 8.168 255.321 6.283
+683.937 506.400 15.177 545.333 10.900 257.983 12.066
+684.093 509.814 13.502 545.693 13.240 242.649 38.127
+684.248 506.218 14.769 544.977 7.621 236.576 10.324
+684.404 506.172 8.498 543.189 8.941 249.325 9.312
+684.561 504.121 11.394 543.101 7.228 251.743 8.655
+684.718 509.221 7.555 542.571 9.201 253.977 6.423
+684.876 501.222 10.611 544.075 7.515 253.479 8.407
+685.033 505.472 10.608 544.020 7.801 252.044 7.768
+685.190 508.174 10.543 546.200 7.156 249.190 6.205
+685.347 503.701 7.933 543.812 7.806 250.541 6.969
+685.503 504.727 12.916 543.218 6.775 246.615 8.814
+685.659 503.167 12.632 542.242 8.006 252.906 6.907
+685.816 503.851 8.274 546.312 7.200 246.709 11.835
+685.972 502.408 10.152 542.893 8.635 251.747 10.972
+686.129 502.724 22.994 547.209 11.547 235.307 19.922
+686.286 507.497 16.107 541.962 7.724 259.233 15.117
+686.442 498.705 8.695 544.379 6.631 248.192 5.911
+686.599 503.907 8.428 543.163 6.583 243.751 8.498
+686.755 504.259 9.981 542.121 9.110 245.837 8.913
+686.912 500.112 10.361 546.911 8.750 238.528 7.450
+687.070 499.201 9.165 544.229 7.322 251.185 11.083
+687.227 499.902 13.712 544.862 6.104 244.361 13.525
+687.383 501.439 8.746 546.428 7.007 246.663 8.013
+687.539 501.294 8.472 541.234 7.153 246.746 6.351
+687.696 497.062 7.062 547.232 7.096 242.247 6.500
+687.853 494.630 6.463 544.222 7.097 257.902 7.002
+688.011 501.826 6.805 543.642 6.363 260.519 6.826
+688.169 500.028 6.846 550.876 7.271 251.215 5.798
+688.327 498.160 9.693 544.238 8.300 251.072 10.470
+688.483 498.991 6.482 547.602 7.224 249.280 5.071
+688.640 503.879 7.584 544.666 6.477 254.912 4.480
+688.799 495.718 6.580 544.036 7.197 257.989 4.923
+688.956 497.047 7.953 544.130 6.802 248.269 6.976
+689.113 498.170 7.455 545.601 6.429 248.192 4.893
+689.271 494.521 11.875 547.536 9.086 241.321 10.702
+689.427 490.615 10.945 545.425 8.812 260.113 6.159
+689.585 489.356 6.681 541.334 7.163 255.551 6.284
+689.743 492.763 6.915 543.713 6.110 253.745 5.870
+689.901 492.317 7.121 548.587 8.844 251.017 4.405
+690.059 487.103 7.081 541.295 7.380 248.560 5.297
+690.216 491.601 7.591 541.283 7.665 251.995 8.979
+690.373 483.406 7.076 543.312 8.154 259.420 5.351
+690.530 493.144 7.910 545.643 7.506 250.704 6.364
+690.687 484.251 6.495 541.246 8.023 247.487 7.841
+690.843 489.382 6.755 545.552 8.704 253.774 6.039
+691.001 492.033 6.752 547.205 7.684 251.027 6.574
+691.158 481.760 6.501 543.192 7.547 250.370 9.983
+691.315 491.167 7.068 541.072 8.751 254.133 9.682
+691.472 495.121 7.218 544.760 8.746 245.001 7.318
+691.628 483.351 8.285 545.247 8.450 245.220 9.262
+691.784 485.383 7.641 548.462 7.756 251.112 7.497
+691.941 486.153 6.078 545.294 9.166 253.171 6.148
+692.099 485.501 7.284 538.063 10.106 259.101 7.198
+692.256 483.885 9.908 546.940 9.373 247.041 5.933
+692.414 483.778 11.340 551.749 7.153 243.520 9.974
+692.572 476.307 6.194 538.977 9.501 259.545 7.616
+692.730 486.633 9.134 534.529 7.195 259.565 6.938
+692.888 482.486 13.440 541.975 7.892 258.085 12.959
+693.043 474.914 8.815 543.779 8.672 244.570 6.249
+693.200 471.379 8.961 545.557 7.905 246.165 9.826
+693.356 479.833 11.112 538.395 7.703 267.071 9.041
+693.514 481.288 11.417 540.864 8.548 264.840 8.628
+693.672 477.872 8.857 553.578 10.470 252.768 10.538
+693.829 474.458 8.107 536.765 7.027 249.977 7.281
+693.986 486.444 11.892 543.197 13.469 251.509 10.771
+694.142 481.834 9.533 542.512 8.772 250.565 10.544
+694.299 478.578 7.824 540.075 12.295 251.345 8.587
+694.456 484.525 8.434 544.540 12.950 251.203 8.683
+694.613 485.135 13.006 543.405 12.985 242.962 6.118
+694.771 485.421 10.200 544.344 15.742 254.619 9.738
+694.927 475.534 7.515 544.803 13.670 242.896 8.880
+695.082 479.785 12.237 543.608 7.635 246.568 10.042
+695.240 483.437 9.023 539.956 7.780 254.895 8.837
+695.397 466.104 10.461 543.929 8.908 242.918 14.006
+695.554 472.551 7.881 541.439 9.898 251.709 5.704
+695.710 483.035 8.004 542.854 8.684 252.217 6.966
+695.868 475.580 10.199 541.078 8.145 255.812 7.804
+696.024 467.395 8.886 538.580 8.474 247.028 11.129
+696.181 483.244 11.399 547.425 8.440 259.400 7.835
+696.338 477.242 6.756 541.904 7.653 252.634 5.333
+696.496 482.562 8.572 541.959 10.499 246.446 9.144
+696.652 483.185 7.958 541.349 9.548 246.804 8.726
+696.809 473.061 11.531 540.473 7.454 243.698 9.530
+696.965 483.970 8.448 544.414 9.862 259.577 7.816
+697.122 472.439 9.555 541.524 9.963 248.955 9.369
+697.279 483.744 6.041 546.735 7.335 252.179 5.362
+697.436 484.557 6.404 543.717 8.313 241.211 4.090
+697.594 476.365 6.725 546.607 8.282 243.242 4.154
+697.751 481.253 8.608 542.446 10.178 244.492 7.452
+697.907 460.092 12.747 543.144 11.711 251.704 8.355
+698.065 479.640 15.369 535.451 12.660 262.997 9.757
+698.222 482.926 10.354 542.514 11.351 254.099 13.614
+698.379 481.169 7.210 541.755 9.685 246.781 6.616
+698.536 481.431 6.114 542.957 6.362 249.737 7.622
+698.694 482.274 7.837 545.859 7.417 244.537 6.736
+698.852 477.622 8.154 540.598 9.662 261.075 8.776
+699.008 464.886 11.907 544.566 15.196 246.710 10.003
+699.166 477.428 8.925 541.635 10.642 252.127 6.338
+699.323 481.834 8.749 542.586 13.026 250.961 8.459
+699.479 479.328 7.081 541.285 8.947 245.949 7.074
+699.636 485.383 7.938 547.612 9.637 246.089 5.179
+699.794 476.823 6.725 540.316 8.301 246.200 11.780
+699.951 477.348 8.276 541.103 8.892 257.362 9.259
+700.108 478.993 11.232 543.711 11.480 251.053 10.518
+700.264 472.739 8.757 543.297 9.105 252.250 5.527
+700.421 487.857 10.164 542.403 9.423 251.402 4.978
+700.578 480.418 9.398 546.074 7.720 242.024 7.076
+700.734 485.854 8.528 542.380 13.528 248.710 6.885
+700.890 492.038 8.766 543.813 7.346 253.217 6.778
+701.046 478.850 6.703 542.738 7.451 244.172 6.533
+701.203 487.018 6.277 540.307 8.141 253.721 6.269
+701.361 492.780 6.827 546.893 7.947 258.017 6.223
+701.519 486.997 7.434 544.189 6.424 253.110 5.441
+701.677 478.460 9.477 543.201 8.581 247.321 5.256
+701.834 492.294 7.462 546.192 7.073 247.583 4.985
+701.991 500.372 8.026 542.451 8.262 255.595 6.804
+702.147 488.663 8.223 543.694 7.412 246.486 4.921
+702.305 483.416 7.505 544.186 8.066 248.514 6.372
+702.462 488.954 7.187 540.561 11.078 255.135 7.425
+702.620 493.479 6.453 543.145 8.434 262.541 4.049
+702.778 489.194 6.981 541.831 6.854 256.935 6.451
+702.936 497.741 7.923 546.288 6.869 250.199 5.932
+703.094 490.837 8.567 543.112 7.353 247.322 11.654
+703.250 494.078 9.162 545.681 7.737 249.343 12.138
+703.407 496.530 7.015 543.806 6.873 253.193 7.321
+703.564 490.885 7.597 540.178 7.292 252.841 5.185
+703.723 495.268 6.259 543.321 6.635 249.898 8.496
+703.880 495.372 10.580 544.463 10.365 245.158 9.374
+704.038 497.463 9.861 542.594 8.041 264.711 6.500
+704.194 496.714 9.816 545.096 8.652 252.827 16.344
+704.350 496.017 9.681 541.491 9.069 253.418 20.459
+704.508 498.110 6.703 542.674 8.112 255.964 6.445
+704.665 501.221 6.727 545.186 7.532 253.689 5.568
+704.823 499.482 8.783 543.141 7.021 250.206 6.564
+704.979 499.644 7.881 543.271 8.268 254.062 5.570
+705.137 497.326 7.723 544.332 7.625 245.250 5.334
+705.294 503.163 7.875 541.063 7.883 251.842 4.763
+705.451 498.511 10.816 546.420 7.551 248.448 7.030
+705.608 494.795 7.783 542.114 7.272 255.144 5.761
+705.766 506.457 21.517 544.841 9.085 246.771 6.975
+705.923 500.034 8.689 545.918 8.437 249.677 7.916
+706.079 503.620 10.124 544.739 8.021 249.616 8.686
+706.235 492.226 8.142 543.897 7.416 246.716 4.669
+706.393 500.532 8.454 541.689 7.154 263.557 10.113
+706.550 494.855 10.354 544.576 7.011 254.135 10.040
+706.707 497.078 11.463 545.125 7.311 252.941 9.259
+706.864 500.330 7.334 544.251 7.962 248.989 8.362
+707.020 493.423 9.736 543.042 7.282 246.649 8.315
+707.176 501.144 7.478 540.830 8.689 251.356 7.871
+707.333 508.391 14.173 544.658 8.932 253.153 8.123
+707.489 498.493 9.496 546.186 7.517 238.111 9.317
+707.645 492.644 8.219 540.851 7.119 245.841 7.228
+707.802 506.026 9.662 546.168 7.178 258.038 6.751
+707.961 503.730 8.363 542.821 8.616 247.690 11.166
+708.117 499.727 8.056 543.018 6.535 250.216 9.324
+708.273 506.077 15.349 545.750 7.062 250.992 9.567
+708.429 497.390 14.592 543.467 7.202 237.499 8.832
+708.586 499.164 12.993 546.224 7.982 260.685 13.431
+708.743 504.851 10.607 541.082 7.101 261.186 14.241
+708.898 500.168 10.381 547.080 8.997 241.021 6.991
+709.055 501.071 9.730 543.810 6.982 249.270 6.899
+709.211 507.560 12.215 543.398 9.699 247.152 6.975
+709.368 506.405 18.961 549.824 8.657 245.351 8.679
+709.524 512.454 17.067 547.918 12.708 257.883 7.388
+709.681 509.524 11.087 538.689 10.466 246.648 7.832
+709.838 511.595 9.581 548.866 7.605 248.146 5.782
+709.996 510.606 8.854 546.318 7.096 246.711 13.042
+710.152 508.006 9.515 546.663 7.507 256.927 11.665
+710.309 511.910 10.334 548.026 10.279 250.149 15.841
+710.466 505.429 8.179 544.780 8.081 241.701 5.614
+710.622 513.244 7.675 544.697 7.106 249.307 4.543
+710.780 518.342 6.745 546.287 7.120 249.323 7.374
+710.937 515.683 8.787 544.242 8.232 254.093 6.141
+711.094 515.256 8.787 543.992 9.483 242.690 12.016
+711.251 523.262 9.606 547.680 8.832 240.436 6.214
+711.408 518.462 8.598 542.556 8.305 245.804 6.494
+711.565 516.894 6.945 543.525 7.896 260.068 8.620
+711.722 520.739 6.994 544.075 8.086 248.950 7.580
+711.879 517.937 9.811 542.420 8.342 246.369 5.730
+712.036 518.399 13.331 546.474 9.712 251.943 7.293
+712.193 518.424 10.355 545.414 8.587 234.239 7.594
+712.351 520.764 12.998 540.784 11.560 255.432 6.542
+712.508 516.757 13.496 545.937 8.279 247.664 8.421
+712.665 516.767 9.015 545.649 9.985 249.316 9.120
+712.821 521.337 12.393 539.086 8.041 241.983 6.781
+712.978 515.223 11.621 545.750 9.750 246.079 8.409
+713.134 527.582 8.046 544.837 8.377 252.100 5.361
+713.291 519.655 10.197 545.048 7.250 247.671 7.907
+713.448 519.576 8.957 548.780 8.818 235.046 8.833
+713.605 516.945 8.833 543.687 10.082 248.480 7.318
+713.761 517.849 7.870 539.776 7.354 240.444 8.508
+713.918 520.798 7.592 543.867 9.745 253.544 5.506
+714.076 512.858 8.059 539.908 7.153 249.195 6.052
+714.233 512.408 8.420 547.919 7.643 238.781 7.670
+714.390 526.314 15.974 542.899 10.446 246.587 7.818
+714.545 515.963 9.454 539.629 6.740 249.595 5.500
+714.703 515.749 10.063 546.726 7.276 240.505 11.953
+714.859 522.847 6.983 542.497 7.496 249.045 6.697
+715.018 522.798 9.918 540.475 7.535 260.100 6.715
+715.176 515.438 7.416 545.574 7.674 249.901 6.155
+715.334 528.784 10.056 543.175 9.474 248.129 9.972
+715.491 515.977 9.465 545.181 8.672 244.481 17.273
+715.647 532.029 9.410 539.061 9.648 249.484 11.025
+715.804 516.930 6.950 543.090 8.325 254.954 5.703
+715.962 513.099 9.066 544.861 7.488 250.229 4.460
+716.120 514.211 8.912 543.808 7.420 244.972 8.810
+716.276 512.112 8.487 541.608 7.585 238.499 6.519
+716.432 525.711 9.297 545.626 11.227 242.825 12.365
+716.589 521.797 10.453 545.406 9.091 253.768 9.741
+716.746 524.388 7.149 541.614 8.119 246.787 8.982
+716.903 519.523 7.947 547.756 10.201 242.737 6.155
+717.060 521.855 14.170 542.017 9.371 255.087 5.835
+717.217 518.258 9.651 540.340 9.141 243.460 10.309
+717.373 520.292 6.992 544.883 10.355 242.254 9.207
+717.530 526.483 8.697 537.908 9.610 248.362 13.202
+717.686 512.034 14.660 541.049 9.378 246.073 8.671
+717.843 518.390 8.432 541.910 10.000 253.850 8.105
+718.000 520.513 9.667 543.429 8.864 244.618 6.190
+718.157 517.035 11.575 539.254 8.766 245.656 9.930
+718.315 509.850 10.812 544.832 11.063 243.296 8.634
+718.471 514.938 15.587 545.068 8.064 244.402 9.124
+718.628 525.999 9.359 542.930 7.720 252.404 7.883
+718.785 516.950 8.459 544.189 7.310 246.664 5.940
+718.943 520.219 9.170 544.011 9.039 245.716 7.532
+719.100 522.422 11.419 540.560 8.658 244.047 11.674
+719.256 518.174 8.141 539.825 7.825 248.190 8.099
+719.413 517.551 9.473 543.748 9.174 243.271 5.064
+719.571 528.885 12.257 542.167 8.372 250.522 7.002
+719.728 511.018 8.394 539.111 7.354 247.515 7.651
+719.885 517.540 7.102 545.131 7.861 242.205 4.889
+720.042 521.645 6.194 542.741 7.444 247.652 6.831
+720.200 520.146 9.713 540.887 9.620 252.426 9.659
+720.356 519.681 8.606 544.518 8.743 240.234 10.037
+720.513 512.316 8.424 550.535 9.363 240.872 9.102
+720.669 521.823 9.672 541.345 7.613 244.778 8.719
+720.826 524.798 8.351 542.273 8.680 248.587 5.019
+720.984 521.918 6.951 545.042 6.497 246.415 5.913
+721.141 517.049 7.668 540.150 8.115 247.264 6.536
+721.298 523.080 14.286 546.151 8.834 241.692 6.880
+721.455 510.420 7.346 544.851 7.286 249.026 4.427
+721.611 527.874 18.971 548.048 11.304 249.310 18.674
+721.768 513.208 9.570 542.150 8.198 250.443 13.357
+721.924 519.742 7.894 545.391 7.364 243.334 4.225
+722.081 518.227 7.209 541.584 7.513 240.753 4.516
+722.240 524.552 9.693 539.235 8.562 261.957 8.110
+722.396 521.315 10.397 543.752 10.483 239.439 8.423
+722.554 515.653 8.937 540.557 9.140 239.034 6.097
+722.711 513.386 6.638 543.185 7.720 249.840 4.044
+722.867 516.493 9.255 544.001 8.569 237.458 4.214
+723.025 526.334 7.019 544.010 7.606 245.754 7.252
+723.182 517.513 9.832 542.750 8.496 247.897 8.088
+723.338 520.275 8.977 539.927 7.157 256.669 4.768
+723.496 514.762 7.484 546.729 7.606 242.556 7.519
+723.653 536.017 8.256 543.617 7.484 250.145 4.214
+723.810 514.910 7.712 540.416 8.659 244.021 7.147
+723.966 528.809 8.648 543.004 7.919 247.480 10.743
+724.123 513.328 7.885 542.830 7.669 248.234 6.981
+724.280 520.203 9.120 545.368 8.828 247.272 5.034
+724.437 521.772 7.567 544.723 8.083 246.262 6.026
+724.595 517.897 16.720 539.247 7.607 244.702 10.844
+724.751 525.409 13.740 539.782 10.350 248.937 13.628
+724.908 518.064 12.088 541.597 9.575 237.259 5.873
+725.066 525.850 9.355 545.036 7.550 253.602 7.297
+725.223 515.148 11.148 541.040 7.167 251.426 10.044
+725.381 524.281 12.666 541.120 10.852 251.184 6.167
+725.539 526.962 14.508 545.321 9.536 237.411 14.549
+725.695 526.029 13.448 541.933 9.852 244.894 12.252
+725.852 521.820 14.430 539.389 8.824 249.538 13.734
+726.007 519.398 10.142 540.643 7.725 246.165 6.600
+726.164 521.314 8.028 545.196 8.176 246.731 5.082
+726.321 515.813 8.925 541.132 7.546 246.547 5.004
+726.479 510.388 7.155 541.131 10.538 245.585 10.132
+726.636 526.993 14.068 547.671 9.736 240.385 14.342
+726.793 512.250 10.064 544.486 8.137 241.553 12.987
+726.950 527.622 9.896 544.514 7.617 253.465 10.134
+727.107 521.126 8.958 541.765 7.063 249.314 6.328
+727.264 515.571 7.068 540.627 8.050 246.343 8.484
+727.421 514.715 10.766 542.606 8.903 244.403 10.780
+727.578 515.207 8.940 540.916 7.903 245.364 10.736
+727.735 526.942 8.254 544.399 7.518 255.993 10.005
+727.892 516.299 8.290 545.134 8.343 238.459 7.993
+728.048 517.433 8.015 542.171 8.676 244.204 5.749
+728.205 523.164 10.156 541.061 8.510 250.682 8.183
+728.362 517.891 6.920 546.450 9.333 240.166 5.945
+728.520 516.368 7.739 544.144 7.471 243.341 9.360
+728.677 516.793 9.844 540.881 9.245 249.043 7.564
+728.835 520.888 12.375 539.178 8.105 248.660 15.426
+728.992 519.039 10.954 543.311 8.240 250.316 13.073
+729.149 520.650 10.658 544.013 8.176 248.673 8.357
+729.306 520.126 6.841 541.960 9.033 246.406 7.899
+729.463 538.971 14.848 540.469 9.944 247.224 9.758
+729.619 508.509 7.853 545.884 7.209 241.562 5.613
+729.776 519.385 10.630 542.098 7.507 244.965 10.956
+729.933 529.603 8.047 543.491 8.415 255.739 15.162
+730.089 515.416 9.496 545.965 10.837 243.687 6.968
+730.247 525.054 6.937 543.829 8.120 250.666 4.696
+730.404 520.750 8.671 539.678 7.558 239.246 10.156
+730.562 521.447 10.639 543.346 7.177 249.792 12.638
+730.719 516.434 8.521 542.623 9.266 250.297 9.633
+730.875 521.324 9.682 544.056 6.848 245.303 6.138
+731.032 516.713 6.618 541.220 6.866 251.213 5.207
+731.190 508.307 8.224 543.092 7.466 246.242 5.896
+731.347 519.593 11.076 543.010 8.819 253.732 11.133
+731.503 516.496 9.813 543.970 8.123 250.167 6.463
+731.661 519.115 10.374 543.949 7.441 246.311 6.470
+731.818 512.361 8.691 543.399 8.163 252.813 7.840
+731.975 521.533 8.697 541.574 7.232 239.828 9.501
+732.131 511.425 9.059 541.885 7.460 249.668 5.150
+732.288 514.334 9.353 543.448 7.257 251.126 6.411
+732.446 513.153 7.219 542.364 6.705 249.181 5.115
+732.604 512.701 12.332 543.283 8.188 244.421 7.775
+732.760 511.967 11.400 542.432 7.887 242.174 11.529
+732.918 513.469 12.173 542.004 7.248 248.251 7.077
+733.076 508.794 12.313 542.070 6.882 257.742 4.929
+733.234 504.088 7.266 540.800 7.390 248.057 5.478
+733.391 507.030 8.855 544.988 6.647 247.180 6.807
+733.549 507.840 7.770 544.589 7.416 248.671 4.869
+733.707 506.378 7.627 540.876 6.635 249.666 4.500
+733.864 513.653 9.819 544.498 7.771 247.876 13.001
+734.021 507.376 10.931 544.785 7.555 251.188 6.407
+734.179 506.203 8.490 543.537 7.366 246.781 6.701
+734.336 500.762 7.675 541.745 6.760 253.587 7.524
+734.493 500.347 7.142 541.067 6.787 254.475 5.058
+734.651 506.163 9.668 542.850 7.535 249.984 8.378
+734.808 503.841 6.983 540.508 7.280 247.919 9.061
+734.964 502.748 11.807 541.965 8.381 243.889 6.019
+735.123 502.907 8.983 540.749 7.210 255.138 6.802
+735.279 505.259 12.879 539.147 8.543 253.701 8.238
+735.436 502.052 6.772 540.241 8.400 251.487 7.623
+735.593 500.680 15.609 543.312 7.925 247.674 5.224
+735.749 501.346 8.432 542.643 7.086 250.636 3.874
+735.906 503.653 8.761 541.456 8.156 246.546 8.016
+736.061 496.766 11.176 541.644 6.715 251.875 5.020
+736.219 501.447 11.581 542.606 6.934 248.688 5.960
+736.377 498.564 7.727 542.476 7.297 251.056 5.862
+736.535 498.375 10.932 540.864 6.394 253.410 5.260
+736.693 504.203 11.410 541.468 7.087 249.354 5.243
+736.850 498.272 6.599 540.514 7.332 251.063 5.807
+737.008 499.392 5.838 543.625 6.686 246.690 4.346
+737.166 502.014 8.101 541.036 6.988 247.196 7.428
+737.323 495.490 7.753 542.720 8.152 254.932 6.044
+737.480 496.584 7.476 543.697 6.758 250.569 8.498
+737.636 501.265 6.380 542.027 7.629 250.155 4.174
+737.793 494.552 10.962 541.750 6.732 251.101 5.780
+737.951 493.865 9.677 542.467 6.818 250.911 5.760
+738.109 498.428 6.404 541.974 6.282 248.969 5.646
+738.267 497.844 6.400 542.919 7.564 251.769 5.964
+738.425 484.778 7.246 544.939 7.847 245.887 9.038
+738.581 493.857 6.349 540.069 7.298 253.318 4.811
+738.739 485.638 5.863 542.600 6.775 249.823 4.781
+738.897 487.676 5.933 542.136 6.108 253.608 5.161
+739.055 490.746 7.129 540.121 7.037 250.046 8.740
+739.213 486.187 6.400 542.261 7.046 252.570 8.224
+739.370 490.361 9.030 543.572 6.552 256.245 7.861
+739.527 482.073 10.011 542.795 7.361 245.762 4.956
+739.684 485.540 6.414 545.828 7.704 250.727 4.372
+739.842 485.875 6.404 541.818 7.130 257.127 4.534
+740.000 484.548 7.556 540.348 7.496 253.541 5.479
+740.158 484.685 7.309 543.963 7.017 250.075 4.847
+740.315 485.856 6.696 540.629 7.427 250.050 5.097
+740.473 480.988 9.816 540.836 8.825 251.120 10.453
+740.630 483.849 7.350 540.068 8.243 254.591 7.310
+740.787 485.288 7.705 542.380 11.362 251.865 6.133
+740.944 479.202 6.201 544.473 8.258 251.808 5.634
+741.101 489.122 6.807 543.074 8.180 253.548 4.948
+741.259 487.151 6.443 544.570 8.522 248.365 5.324
+741.416 482.971 9.219 544.925 7.483 254.013 5.161
+741.574 482.819 10.663 543.859 7.777 251.180 5.379
+741.732 479.818 7.996 541.588 6.550 254.671 5.880
+741.890 484.448 6.921 542.275 6.540 256.076 4.755
+742.048 481.334 7.234 543.682 6.687 250.010 4.984
+742.205 485.083 7.158 541.386 7.751 249.120 3.922
+742.362 477.540 6.514 539.993 6.978 247.691 6.402
+742.520 484.685 7.567 542.690 6.801 251.056 5.486
+742.677 485.466 7.510 541.516 7.679 254.180 4.432
+742.835 484.694 8.385 541.605 7.568 254.451 6.551
+742.992 481.886 6.336 542.976 7.280 247.934 5.489
+743.149 484.358 5.977 541.919 8.160 250.689 5.133
+743.307 480.343 8.059 543.429 8.997 249.706 6.018
+743.464 492.313 7.867 542.474 8.210 256.647 5.134
+743.622 474.573 8.852 542.094 6.886 245.326 6.264
+743.779 483.065 7.570 541.131 7.697 257.513 5.309
+743.938 482.650 6.702 543.871 7.133 253.255 6.701
+744.095 481.386 6.549 543.868 7.546 249.832 4.432
+744.253 486.383 6.395 543.608 7.071 252.798 3.511
+744.411 484.583 7.142 542.636 8.103 251.267 8.123
+744.568 478.125 8.256 542.796 6.991 257.682 7.934
+744.724 480.101 8.729 543.978 6.772 254.566 6.127
+744.882 484.081 6.017 542.109 6.756 258.215 4.044
+745.040 480.190 5.941 542.041 7.832 250.072 6.462
+745.198 486.991 6.277 541.120 7.832 256.090 5.785
+745.356 482.709 6.571 542.511 7.809 250.780 4.629
+745.514 488.867 7.152 544.855 6.951 253.467 7.361
+745.671 478.098 8.306 539.818 7.602 252.384 5.782
+745.828 480.821 6.663 544.108 9.287 250.343 7.113
+745.985 488.808 6.362 542.311 7.842 255.393 7.172
+746.143 482.608 5.827 541.803 7.010 251.973 5.515
+746.301 482.216 6.617 543.438 6.853 247.219 4.591
+746.459 487.372 7.083 540.984 6.292 251.582 11.922
+746.616 472.133 8.118 546.449 7.913 244.295 8.264
+746.772 478.771 14.333 540.374 7.879 253.332 10.815
+746.929 473.897 8.890 539.523 7.840 264.283 7.070
+747.085 475.559 8.787 543.545 7.608 252.432 9.612
+747.242 492.515 6.080 542.435 7.914 261.894 8.741
+747.399 484.975 17.407 549.614 7.833 226.808 16.627
+747.553 468.529 7.455 542.356 7.432 236.388 9.638
+747.710 492.495 7.665 544.943 6.801 270.263 15.342
+747.868 488.034 8.808 543.749 8.146 269.142 10.713
+748.025 479.440 7.825 541.487 8.035 257.301 6.924
+748.181 468.924 11.424 549.504 6.665 238.523 6.960
+748.338 484.009 6.101 545.375 8.282 250.225 5.261
+748.496 483.290 7.198 541.273 7.181 263.612 6.345
+748.654 493.272 8.390 543.052 7.075 263.266 11.445
+748.811 482.562 7.237 546.130 7.843 244.382 4.132
+748.967 479.605 6.877 542.331 6.322 250.903 4.516
+749.125 484.866 7.157 545.713 7.908 255.339 5.397
+749.283 478.028 6.655 539.117 6.638 257.593 3.862
+749.441 485.570 6.287 543.451 6.948 256.535 5.037
+749.600 478.675 7.381 545.414 7.997 247.655 7.946
+749.756 484.396 7.981 541.814 9.071 252.856 7.578
+749.913 490.603 6.250 539.158 6.790 262.498 5.715
+750.071 481.826 7.272 542.681 6.316 253.755 7.065
+750.229 486.658 8.363 544.846 6.433 236.777 7.559
+750.385 481.676 7.652 543.838 8.028 258.187 10.123
+750.542 494.426 6.893 544.048 6.601 257.921 7.636
+750.699 485.134 9.373 542.040 6.657 251.159 10.656
+750.856 490.551 9.414 545.500 8.306 243.371 12.680
+751.014 489.255 6.772 540.705 6.911 238.623 7.203
+751.171 493.612 8.436 545.447 6.698 254.246 5.485
+751.330 496.396 6.314 541.794 7.219 261.842 5.232
+751.488 493.774 7.253 541.078 6.072 254.328 4.929
+751.646 500.447 6.626 547.570 8.458 240.983 6.305
+751.803 496.334 12.247 545.465 7.794 242.639 12.811
+751.960 494.353 10.407 543.904 8.497 247.196 9.362
+752.116 498.823 7.316 544.469 7.161 253.621 6.614
+752.273 496.238 6.091 544.224 6.897 251.476 4.546
+752.432 495.792 9.622 545.042 6.928 252.984 10.590
+752.588 499.517 10.840 540.820 8.993 255.509 9.861
+752.744 499.695 14.168 544.708 7.123 247.885 9.655
+752.900 500.386 8.498 544.997 7.882 251.918 5.341
+753.057 501.733 7.148 543.240 8.469 257.689 7.381
+753.214 498.607 10.922 543.662 8.118 248.246 7.757
+753.370 507.466 11.715 541.756 7.072 244.732 11.335
+753.527 498.504 7.714 546.537 7.614 242.367 6.187
+753.684 502.615 8.589 541.905 7.930 250.033 13.897
+753.840 494.126 11.585 547.549 8.823 247.500 19.654
+753.996 494.221 6.791 543.675 7.218 255.685 5.987
+754.154 498.092 8.283 543.476 7.234 254.996 7.490
+754.311 499.610 12.425 550.464 6.857 244.670 8.314
+754.468 501.986 11.147 543.014 9.591 257.326 7.985
+754.625 493.139 7.560 545.060 7.769 252.353 6.900
+754.782 502.231 10.457 545.220 7.350 246.343 6.846
+754.938 499.072 8.620 544.842 6.309 247.793 3.978
+755.096 504.790 7.126 545.708 6.933 255.257 5.388
+755.254 505.097 8.699 547.037 7.681 249.722 6.927
+755.411 503.531 8.486 545.540 6.960 252.427 8.168
+755.567 511.615 6.475 547.115 7.354 249.864 6.286
+755.725 509.726 7.722 544.971 6.580 247.258 5.325
+755.883 508.697 7.581 543.209 7.933 254.012 5.980
+756.040 512.207 7.919 546.412 7.423 249.330 7.922
+756.196 512.982 8.500 544.874 6.511 246.653 8.237
+756.354 512.039 7.114 545.368 7.431 255.326 12.335
+756.511 514.970 9.112 543.003 7.813 248.893 5.130
+756.669 518.669 6.937 544.290 7.829 248.378 4.277
+756.825 517.556 14.086 541.323 10.930 253.853 6.368
+756.982 520.165 11.761 545.833 12.260 247.408 8.085
+757.138 520.201 8.879 543.158 7.832 251.224 11.253
+757.296 521.622 9.867 546.701 7.770 254.432 6.702
+757.453 519.236 12.501 547.107 8.237 247.134 7.319
+757.608 523.202 9.603 540.891 7.114 251.151 9.469
+757.766 520.332 8.094 544.089 7.556 252.041 12.238
+757.923 516.413 11.574 543.860 8.146 248.540 9.527
+758.080 519.344 8.431 542.268 8.047 247.905 5.617
+758.237 513.883 14.958 544.812 11.964 246.729 8.996
+758.395 527.278 10.646 545.208 7.659 251.857 10.508
+758.553 519.642 12.428 543.522 11.100 243.308 11.726
+758.710 520.976 11.205 546.575 9.626 247.003 14.493
+758.867 518.699 8.831 548.405 7.240 248.300 6.379
+759.024 522.737 10.974 544.504 7.344 251.713 4.886
+759.181 516.127 7.579 543.325 6.585 249.887 4.846
+759.339 522.431 8.089 547.593 8.144 246.998 6.163
+759.496 515.284 14.113 545.116 10.951 240.060 10.225
+759.653 522.232 15.860 546.181 9.078 249.660 9.973
+759.808 521.372 11.030 545.971 7.318 252.326 4.649
+759.967 517.273 8.003 540.269 8.700 251.123 5.713
+760.124 516.462 9.006 542.132 7.571 249.111 4.111
+760.281 512.104 8.399 547.051 7.041 247.261 7.923
+760.438 508.721 10.179 540.620 7.897 244.242 6.372
+760.595 513.467 7.031 541.346 6.536 250.122 7.385
+760.753 510.544 8.810 541.553 6.559 259.511 3.598
+760.911 507.585 9.656 540.365 7.083 251.935 6.023
+761.068 507.705 7.799 542.943 6.252 250.189 4.699
+761.226 510.007 8.582 543.369 8.394 249.281 3.935
+761.383 502.650 9.840 542.223 6.386 246.832 5.964
+761.540 502.276 8.925 540.942 8.026 253.858 9.267
+761.697 501.042 7.097 541.229 8.366 259.188 7.514
+761.854 501.120 10.196 541.852 8.617 255.571 10.396
+762.012 503.091 9.100 541.618 8.632 245.685 18.105
+762.168 495.930 8.179 543.856 8.185 244.226 10.443
+762.324 495.739 11.800 536.078 7.723 254.622 9.337
+762.480 507.107 18.930 540.140 9.033 247.566 28.008
+762.636 515.451 14.649 544.951 7.903 252.865 7.490
+762.794 497.524 11.721 542.849 9.258 241.528 15.878
+762.949 498.435 12.195 542.148 7.454 238.155 14.200
+763.105 491.784 12.476 544.281 7.488 242.961 8.922
+763.263 499.317 12.585 538.062 8.988 269.029 8.348
+763.420 496.533 9.875 539.650 8.419 258.020 7.704
+763.577 495.805 14.811 546.606 11.428 248.260 15.676
+763.733 489.758 9.100 546.276 9.049 231.992 17.538
+763.889 499.197 12.214 541.402 8.233 265.539 13.296
+764.047 492.982 8.279 546.454 11.246 263.305 11.427
+764.204 489.529 10.345 539.184 9.032 240.653 11.321
+764.361 496.165 11.287 541.241 9.082 240.876 7.920
+764.518 498.341 13.841 545.522 6.637 256.048 7.086
+764.675 516.013 7.869 544.725 7.802 258.490 19.484
+764.832 506.290 8.268 542.547 7.359 243.404 10.762
+764.988 497.882 11.281 548.785 8.572 240.494 8.366
+765.145 507.988 13.304 538.687 8.033 253.034 6.202
+765.303 491.989 10.160 544.306 6.996 256.260 12.267
+765.460 500.289 9.460 539.923 7.748 253.682 10.726
+765.617 501.302 10.909 544.159 7.304 240.826 11.021
+765.774 501.613 9.432 544.631 7.522 244.768 10.035
+765.931 508.726 11.996 541.326 7.533 249.227 10.071
+766.089 506.567 13.384 543.203 6.838 257.242 13.560
+766.246 503.065 10.200 541.562 8.411 248.502 15.069
+766.402 492.760 10.329 542.535 10.235 244.055 9.793
+766.559 491.897 9.246 542.235 8.834 245.750 15.598
+766.715 504.199 10.316 543.862 9.558 255.437 9.879
+766.872 503.702 10.933 541.768 9.360 254.954 7.045
+767.029 499.967 11.696 544.267 9.177 250.039 7.725
+767.186 500.989 8.952 544.982 7.956 246.670 5.417
+767.344 499.939 6.792 544.069 10.333 251.006 7.530
+767.501 491.739 9.853 541.150 8.014 254.470 10.137
+767.658 502.397 10.408 541.301 8.465 258.584 17.784
+767.815 486.034 8.988 543.283 7.571 250.825 10.229
+767.972 497.400 7.570 539.502 8.888 250.108 8.677
+768.129 503.274 9.378 546.345 8.543 252.861 7.255
+768.285 515.092 6.669 545.273 6.863 245.588 10.295
+768.443 515.390 8.509 541.792 6.939 254.005 11.957
+768.602 507.973 9.486 542.848 7.669 263.390 7.334
+768.759 513.839 10.485 545.088 9.156 226.743 13.549
+768.915 502.888 10.915 542.810 8.673 234.777 12.853
+769.073 528.108 10.125 543.568 6.516 278.827 9.070
+769.231 515.661 8.204 539.945 7.219 252.268 10.310
+769.388 507.936 7.870 540.099 7.848 254.652 9.672
+769.545 512.649 8.687 549.241 6.406 218.546 5.683
+769.703 519.496 9.668 539.532 10.066 250.035 6.354
+769.861 526.025 8.458 540.005 7.576 268.320 11.738
+770.019 514.060 18.502 539.430 10.459 255.013 9.377
+770.176 512.070 9.600 542.874 7.056 239.260 12.805
+770.333 505.100 8.752 540.928 9.109 232.872 12.250
+770.489 507.671 16.879 539.719 11.418 247.268 13.051
+770.646 501.046 11.371 539.887 8.364 259.712 6.461
+770.803 499.890 8.496 540.478 8.157 252.417 5.733
+770.960 500.278 9.288 539.274 8.342 247.914 5.514
+771.117 496.472 10.355 544.942 9.714 249.569 12.050
+771.275 490.974 11.899 538.919 7.257 254.005 9.219
+771.433 498.719 11.472 539.439 8.124 250.070 15.836
+771.589 502.527 12.587 541.394 7.385 254.840 16.702
+771.745 499.655 12.082 541.664 7.871 244.538 7.337
+771.902 495.806 15.543 542.256 7.730 254.655 8.952
+772.059 499.138 8.085 539.302 6.853 252.166 8.648
+772.215 499.991 7.353 543.203 7.710 247.791 5.698
+772.372 503.479 8.515 539.322 8.213 252.077 5.981
+772.530 496.194 15.025 543.843 9.589 244.110 13.806
+772.686 503.382 14.213 544.398 8.459 252.231 10.283
+772.842 500.433 8.459 542.614 6.810 247.382 6.653
+772.999 500.094 8.231 543.796 8.030 242.953 9.855
+773.155 496.030 7.255 540.388 9.665 254.909 7.431
+773.313 500.590 10.376 542.823 7.967 255.659 8.740
+773.470 504.745 13.705 541.518 8.837 248.136 8.996
+773.627 493.177 9.604 540.705 7.941 249.151 8.500
+773.783 499.111 10.360 542.557 8.316 253.161 8.694
+773.940 502.871 10.134 540.405 9.188 255.691 9.190
+774.097 498.718 9.813 541.104 7.723 254.676 10.332
+774.254 499.657 7.635 544.941 8.010 246.046 8.891
+774.409 497.976 8.029 540.589 6.727 244.420 8.410
+774.566 495.479 14.110 542.435 8.923 252.894 9.554
+774.723 502.604 9.543 541.504 8.402 252.928 6.458
+774.879 500.966 9.655 541.095 7.502 247.999 8.309
+775.036 501.379 6.352 541.701 7.605 253.630 5.735
+775.193 490.023 9.446 543.317 7.994 234.856 7.558
+775.349 502.710 9.191 540.983 6.716 260.438 7.160
+775.507 497.627 10.552 543.719 7.385 244.464 6.323
+775.665 507.426 9.265 541.667 6.604 255.484 20.193
+775.821 491.954 11.696 543.016 7.805 243.594 8.944
+775.977 504.309 15.382 541.890 8.262 253.555 17.258
+776.133 498.673 13.216 542.578 7.318 255.625 8.925
+776.290 497.636 6.869 543.485 8.200 255.106 7.278
+776.447 496.916 7.082 540.944 6.892 249.081 9.927
+776.604 502.149 6.769 542.329 8.721 253.280 10.579
+776.760 497.651 12.852 541.463 7.339 248.142 7.218
+776.918 496.056 9.508 536.074 6.899 257.281 4.627
+777.075 499.860 9.478 542.930 7.744 250.282 5.501
+777.233 498.598 14.032 541.729 8.525 246.142 7.817
+777.390 501.196 9.830 539.647 7.004 256.111 5.452
+777.547 500.862 9.961 543.336 8.402 249.861 6.940
+777.704 497.718 7.667 541.133 6.679 256.498 9.863
+777.861 497.847 8.287 542.741 7.054 245.405 7.700
+778.017 498.198 7.210 541.837 8.706 252.404 10.275
+778.174 498.652 7.828 540.808 7.352 250.234 5.090
+778.331 501.976 8.339 541.648 7.612 261.602 8.548
+778.489 499.759 7.993 542.446 6.938 247.586 5.487
+778.645 500.927 5.941 541.364 6.820 247.825 5.057
+778.803 497.429 7.063 540.673 7.287 244.998 3.958
+778.961 500.164 8.610 539.836 6.546 250.160 6.481
+779.118 498.451 7.897 539.138 6.070 255.871 5.696
+779.275 498.444 7.482 540.931 6.664 250.318 9.109
+779.432 499.464 7.575 542.479 7.030 250.353 7.396
+779.589 501.594 6.083 541.824 7.121 248.363 5.541
+779.746 500.395 7.858 543.028 7.122 248.063 5.290
+779.903 501.103 7.090 542.660 6.953 247.460 7.348
+780.060 495.181 7.524 541.526 7.859 251.584 6.401
+780.217 499.411 11.752 539.955 6.604 256.785 5.850
+780.376 501.794 9.748 541.449 6.342 252.147 6.658
+780.532 499.437 7.755 540.114 6.710 249.211 7.934
+780.688 498.394 5.950 542.041 7.897 248.522 6.141
+780.846 500.133 8.434 540.770 9.774 249.615 7.342
+781.003 501.141 7.874 539.987 8.303 255.106 8.311
+781.160 500.541 18.073 542.459 8.569 249.611 12.773
+781.316 501.955 7.743 539.324 6.154 247.106 10.513
+781.474 496.979 8.846 541.473 6.378 258.161 5.834
+781.632 496.789 5.774 541.954 6.515 254.331 6.868
+781.789 498.117 8.688 542.449 6.431 240.053 8.341
+781.946 504.591 7.787 541.974 7.504 253.790 10.373
+782.102 500.045 8.379 542.459 7.754 247.567 7.049
+782.259 499.880 7.175 542.434 7.076 250.005 10.029
+782.415 503.328 9.051 541.764 7.668 252.590 6.196
+782.573 499.923 6.245 539.247 6.328 251.405 6.597
+782.730 497.379 6.659 541.922 6.908 248.014 4.782
+782.888 500.523 6.835 541.359 6.696 248.640 7.774
+783.045 494.385 10.255 540.753 7.696 248.216 11.097
+783.202 499.103 9.187 542.237 6.742 248.042 6.996
+783.359 498.851 7.144 541.362 6.506 246.420 6.917
+783.515 498.258 7.370 542.523 6.770 251.264 4.475
+783.673 501.512 8.609 539.625 7.666 253.282 6.309
+783.830 496.645 9.512 541.406 7.116 248.342 8.436
+783.987 495.696 9.776 540.754 6.773 251.953 6.488
+784.145 495.927 9.508 542.207 6.709 248.839 11.369
+784.302 504.169 8.339 541.412 8.795 252.768 7.887
+784.458 496.011 7.160 541.024 8.075 252.197 5.231
+784.616 500.030 7.549 542.720 7.420 254.062 6.148
+784.774 500.240 9.438 540.727 10.069 253.280 8.991
+784.931 498.742 7.167 543.777 6.805 242.982 8.525
+785.088 502.867 11.040 539.577 8.135 255.689 7.009
+785.245 495.528 7.770 542.195 7.243 246.756 8.746
+785.401 499.315 7.210 541.652 7.132 250.137 6.509
+785.559 499.373 6.925 541.526 6.681 245.911 5.039
+785.717 501.573 6.337 540.285 6.295 253.569 6.277
+785.875 499.225 6.154 540.422 7.846 252.885 4.374
+786.033 499.112 7.423 541.294 7.298 249.928 9.027
+786.190 499.341 11.389 540.853 8.878 255.289 7.146
+786.346 503.513 8.726 542.478 7.107 246.782 6.570
+786.504 501.885 11.460 540.864 11.237 256.017 7.658
+786.662 496.178 11.256 540.148 7.976 255.380 4.978
+786.819 500.391 7.797 541.661 9.132 241.743 5.098
+786.977 503.024 7.923 539.026 7.992 262.807 7.431
+787.133 497.570 11.742 540.900 7.178 239.288 11.341
+787.289 505.885 9.377 541.169 7.287 252.822 7.240
+787.446 499.408 6.319 541.921 7.077 251.928 6.722
+787.604 496.764 6.782 540.129 7.217 251.629 5.715
+787.762 503.597 9.651 541.711 7.641 252.346 7.793
+787.919 496.335 11.879 542.987 8.535 244.053 5.298
+788.077 500.203 7.333 541.019 7.084 255.770 6.090
+788.235 496.192 8.835 543.040 7.127 254.547 6.024
+788.392 500.541 8.626 541.240 7.544 246.805 5.647
+788.549 501.675 14.156 539.632 8.081 250.718 9.667
+788.705 500.086 10.102 542.726 8.704 241.877 11.410
+788.862 498.700 7.982 540.177 7.420 255.838 5.324
+789.020 498.117 7.287 541.281 7.363 247.838 6.345
+789.178 496.051 8.785 540.832 8.167 249.148 12.905
+789.334 502.180 6.727 543.868 8.106 243.301 7.522
+789.490 501.871 10.803 543.348 8.197 247.833 12.727
+789.648 492.248 9.829 542.453 7.801 252.518 7.072
+789.805 506.222 8.993 542.894 7.055 258.065 6.278
+789.963 491.122 11.907 547.299 10.047 236.890 9.241
+790.120 508.751 11.753 539.923 11.744 264.698 12.335
+790.277 503.057 10.601 542.699 7.551 259.997 9.447
+790.435 499.790 10.395 540.147 8.923 253.849 9.443
+790.591 500.487 8.807 541.621 7.838 246.998 5.522
+790.749 506.474 13.940 542.856 10.007 247.700 7.719
+790.906 499.704 12.604 540.738 8.110 250.697 9.213
+791.062 501.797 13.064 539.637 6.463 247.257 9.630
+791.219 503.898 10.694 540.816 8.874 240.962 6.927
+791.376 506.679 15.185 545.658 14.211 238.489 22.712
+791.531 495.136 9.191 542.286 9.080 246.644 11.675
+791.688 502.381 8.572 542.252 9.070 253.836 18.990
+791.844 490.593 11.113 542.022 6.310 245.248 8.054
+792.000 488.395 6.672 544.470 8.437 239.462 9.593
+792.157 504.834 8.649 539.584 6.870 264.174 11.651
+792.315 499.468 8.260 541.425 6.659 260.651 5.943
+792.473 503.834 16.614 544.324 8.181 235.946 19.025
+792.628 488.138 11.547 544.063 7.581 244.659 19.662
+792.784 488.071 7.823 542.660 8.643 256.846 11.471
+792.942 501.280 9.046 539.356 9.804 260.428 5.852
+793.099 503.422 7.768 541.013 8.542 259.624 12.449
+793.256 492.564 9.211 546.560 8.540 219.136 9.729
+793.413 499.915 17.908 542.725 10.106 255.391 16.003
+793.568 507.499 7.981 539.837 7.508 281.343 10.600
+793.726 503.585 12.968 543.998 9.554 243.393 18.456
+793.881 495.985 9.619 543.500 7.023 227.743 15.511
+794.037 502.429 9.858 546.735 8.531 244.987 5.570
+794.196 491.644 7.589 539.107 6.883 277.839 8.818
+794.352 507.376 8.223 541.531 9.337 271.148 7.740
+794.510 498.543 11.228 548.275 6.719 239.681 9.462
+794.667 500.055 10.466 546.752 7.826 232.006 10.071
+794.824 498.710 8.008 540.627 8.456 254.580 8.403
+794.981 501.577 9.332 543.356 9.806 257.955 8.050
+795.137 505.065 7.369 543.473 11.223 257.769 7.639
+795.295 498.170 7.470 547.194 7.467 236.257 4.947
+795.452 498.291 6.620 540.941 7.304 253.682 8.728
+795.609 496.942 7.058 545.009 7.366 253.266 10.076
+795.767 503.189 6.714 546.450 6.645 248.392 12.446
+795.924 499.411 7.141 544.844 7.914 248.613 6.543
+796.081 496.914 6.759 545.468 6.806 246.606 7.465
+796.238 505.819 7.900 542.824 7.787 250.296 6.133
+796.396 496.388 6.184 543.698 6.606 256.432 9.242
+796.553 493.353 11.057 544.317 7.167 248.814 8.697
+796.710 493.803 8.543 541.903 7.257 248.038 8.617
+796.867 499.678 6.298 546.469 7.249 251.810 4.378
+797.025 503.426 7.945 544.884 7.703 253.838 6.376
+797.182 499.324 8.821 548.298 8.675 246.598 7.685
+797.338 503.983 6.585 542.273 7.170 252.606 6.984
+797.495 499.029 9.042 542.082 6.937 252.026 5.003
+797.652 497.910 5.888 542.490 8.156 247.140 4.238
+797.810 492.839 7.311 543.904 7.607 247.961 8.435
+797.967 498.008 7.726 541.169 7.619 261.009 5.383
+798.126 495.460 8.817 542.041 7.896 248.850 6.722
+798.282 500.374 6.562 542.540 7.047 249.018 4.882
+798.439 503.263 9.022 543.905 7.455 247.660 5.289
+798.597 500.802 8.047 544.289 7.163 251.416 7.659
+798.754 496.008 8.810 540.602 7.110 259.304 5.335
+798.912 496.430 9.849 544.726 6.689 247.053 15.659
+799.068 498.094 7.124 545.567 7.383 246.410 7.602
+799.225 498.000 7.931 542.945 7.091 249.294 4.930
+799.382 500.230 6.914 540.979 8.050 256.802 7.282
+799.540 502.182 7.007 542.839 7.301 254.588 6.595
+799.697 502.461 6.528 543.478 8.624 254.725 4.570
+799.855 496.354 8.364 545.694 7.434 244.417 6.952
+800.012 504.403 10.212 544.806 6.387 252.004 5.357
+800.170 503.544 10.067 544.978 7.095 254.590 7.768
+800.326 495.915 8.762 546.369 7.015 230.725 8.170
+800.484 501.899 8.261 542.283 6.569 260.067 10.971
+800.642 498.849 9.902 547.802 7.850 255.180 10.624
+800.799 497.438 6.564 544.208 6.522 258.081 6.476
+800.957 496.894 8.407 548.482 8.061 236.690 7.059
+801.113 493.978 10.635 549.204 10.275 232.066 10.617
+801.272 504.239 6.929 543.532 7.871 267.880 6.934
+801.430 502.922 7.293 545.445 7.331 268.198 6.431
+801.587 493.009 9.066 551.634 7.181 226.102 7.118
+801.745 495.210 8.250 547.146 6.826 246.811 7.408
+801.902 498.742 8.631 550.121 7.888 254.628 9.435
+802.059 497.417 8.435 541.031 6.732 261.036 4.693
+802.217 493.954 7.957 545.990 6.188 256.830 4.292
+802.374 499.569 11.395 552.879 7.417 237.268 5.517
+802.533 508.535 8.588 544.598 8.205 249.512 13.403
+802.690 507.925 11.300 545.836 7.523 271.405 5.783
+802.848 493.989 8.036 546.508 8.579 257.274 7.407
+803.006 507.419 7.478 544.615 7.011 261.042 9.378
+803.163 504.644 10.821 548.486 9.198 240.100 16.855
+803.318 500.356 10.905 546.544 7.515 248.751 10.898
+803.476 503.223 9.842 542.955 7.337 256.597 4.135
+803.634 494.522 9.457 546.099 8.952 257.236 8.291
+803.791 492.865 9.019 544.871 8.654 249.992 11.682
+803.948 490.338 8.537 543.758 7.075 257.829 8.304
+804.105 478.803 8.363 544.637 7.842 227.958 13.142
+804.262 487.948 6.687 548.406 6.607 251.489 9.740
+804.419 490.129 7.009 546.954 7.164 278.344 10.339
+804.577 482.021 7.368 540.249 8.308 254.513 4.976
+804.735 483.800 6.124 542.612 6.625 234.955 9.624
+804.892 478.727 7.273 548.376 8.139 242.369 5.644
+805.050 482.617 8.896 549.013 8.206 274.763 6.214
+805.208 499.006 8.053 539.570 6.469 282.567 6.799
+805.366 482.160 7.478 549.255 9.117 232.985 9.744
+805.522 491.431 7.535 549.062 7.285 234.219 9.471
+805.678 484.494 8.512 550.960 7.695 230.692 5.336
+805.836 490.805 12.855 541.199 8.440 255.566 6.427
+805.994 495.718 9.848 545.832 8.128 273.215 5.524
+806.152 486.067 7.261 550.848 8.855 242.172 7.521
+806.309 483.190 7.526 543.628 7.231 237.251 5.167
+806.467 477.131 11.645 543.826 8.102 253.602 7.836
+806.624 483.301 6.419 541.898 7.978 262.986 9.544
+806.781 487.363 8.041 548.619 8.564 255.219 8.219
+806.938 484.963 7.662 544.476 7.357 260.032 6.681
+807.096 486.239 7.540 541.904 7.534 240.350 15.176
+807.251 484.102 8.262 543.219 7.235 253.673 5.462
+807.409 484.671 10.056 541.112 6.986 260.096 9.129
+807.565 486.506 6.604 543.811 6.432 255.270 4.714
+807.723 479.865 9.649 552.848 7.127 248.342 4.202
+807.880 480.598 6.369 542.948 7.463 257.963 8.950
+808.037 482.576 9.253 539.189 7.140 250.809 4.408
+808.194 484.195 10.277 545.541 7.675 250.308 8.433
+808.351 480.212 8.199 545.355 6.456 255.883 7.920
+808.508 477.752 7.405 544.663 7.331 251.138 6.103
+808.666 479.947 7.591 549.286 7.093 252.201 6.918
+808.824 480.529 7.723 544.332 7.685 255.282 6.264
+808.981 481.295 6.788 543.173 6.320 245.932 8.843
+809.139 481.872 10.986 547.841 6.527 258.029 9.541
+809.295 481.348 6.780 543.038 7.900 248.600 5.358
+809.453 483.083 9.851 543.780 6.341 260.436 8.647
+809.610 478.820 7.257 547.167 7.794 246.814 10.122
+809.766 477.298 8.283 547.021 7.064 249.958 4.988
+809.924 481.433 6.993 543.850 7.429 252.999 5.364
+810.082 476.164 8.575 541.158 6.886 237.470 10.945
+810.240 493.651 9.747 541.621 8.650 258.824 9.191
+810.397 466.386 9.029 541.876 6.892 237.638 8.320
+810.553 483.783 8.366 546.658 9.588 256.866 8.359
+810.709 478.467 6.532 542.586 7.330 246.868 4.519
+810.866 484.104 6.539 545.335 6.786 253.198 4.462
+811.024 486.821 9.675 551.643 8.518 246.382 14.237
+811.180 486.218 7.941 546.666 8.749 256.603 5.728
+811.337 473.322 7.175 545.606 8.479 241.846 6.742
+811.494 479.883 7.326 545.146 8.305 247.508 4.792
+811.652 485.328 9.412 542.551 9.903 263.275 4.521
+811.810 476.933 8.006 547.335 7.787 247.682 8.055
+811.966 491.919 7.840 544.123 7.946 263.176 4.835
+812.123 489.319 7.671 548.111 6.559 241.841 8.619
+812.280 489.253 7.294 545.111 9.732 248.688 7.303
+812.436 484.712 15.551 544.201 8.474 251.706 8.686
+812.592 471.227 11.054 547.342 11.232 239.487 14.280
+812.749 474.292 6.769 540.063 9.027 249.804 10.180
+812.907 488.712 8.813 543.660 6.666 269.348 5.446
+813.065 480.737 9.489 539.686 9.263 254.223 10.154
+813.222 484.837 11.040 541.626 7.686 254.442 8.982
+813.379 489.198 10.982 552.076 7.519 246.914 14.334
+813.535 481.862 10.359 547.620 11.351 227.409 7.410
+813.693 477.638 9.659 544.216 11.490 261.294 7.324
+813.850 487.006 7.681 545.452 8.600 251.112 7.938
+814.007 483.990 7.330 544.174 7.955 257.801 8.167
+814.164 482.209 6.440 545.141 10.554 253.058 10.596
+814.322 487.582 7.587 544.971 7.489 244.310 8.187
+814.478 491.645 8.255 545.299 8.185 239.603 5.995
+814.635 482.606 6.365 543.283 6.817 251.996 6.349
+814.793 483.656 8.049 543.192 8.192 255.889 6.342
+814.950 485.386 8.519 544.162 8.326 267.148 5.888
+815.108 479.383 8.529 543.051 6.641 253.491 6.537
+815.265 483.693 8.274 545.980 8.305 248.284 4.462
+815.422 477.166 7.094 543.519 7.567 237.092 11.825
+815.579 483.041 7.950 541.415 7.307 258.310 8.948
+815.736 478.400 8.130 546.474 8.134 251.063 8.797
+815.891 484.074 7.427 541.654 8.592 253.670 7.108
+816.049 482.890 7.645 542.266 8.025 253.606 5.542
+816.206 485.309 10.518 543.252 7.591 255.256 5.716
+816.364 479.333 6.510 540.142 9.721 254.552 6.578
+816.522 488.423 9.283 544.521 6.938 259.235 6.968
+816.679 487.184 10.229 543.045 8.525 244.272 6.333
+816.836 482.331 9.227 545.570 7.534 247.232 8.329
+816.994 489.123 7.062 543.385 7.351 248.252 6.960
+817.151 479.511 6.988 545.423 8.827 246.442 9.581
+817.308 475.005 7.428 540.994 7.235 261.094 7.232
+817.465 488.100 10.338 549.600 10.178 242.570 7.836
+817.622 489.531 8.913 540.856 6.514 253.615 5.260
+817.780 480.755 7.101 542.418 7.670 250.536 5.474
+817.937 483.887 6.583 546.514 7.479 241.895 4.959
+818.095 485.738 7.378 543.435 10.997 256.399 5.224
+818.253 497.147 10.836 544.964 6.945 252.974 10.835
+818.411 478.431 7.222 545.219 6.965 249.549 7.978
+818.567 488.144 6.922 543.742 8.249 254.405 6.967
+818.724 485.051 6.521 543.457 10.659 242.104 8.341
+818.882 484.860 7.277 547.874 7.166 247.401 8.215
+819.038 490.428 8.497 545.098 6.667 245.814 6.219
+819.195 479.814 9.769 541.941 7.800 254.688 6.315
+819.353 483.218 7.903 541.569 7.974 253.556 5.888
+819.509 483.142 6.488 547.735 8.439 244.865 7.002
+819.667 477.321 7.157 548.427 8.383 248.178 5.013
+819.824 488.623 10.301 541.674 8.636 251.401 7.117
+819.981 494.706 9.082 542.796 7.955 252.494 6.327
+820.138 488.707 9.932 546.828 8.357 245.584 7.039
+820.295 482.127 10.834 547.668 10.887 252.005 11.120
+820.453 487.191 8.527 542.596 8.955 252.520 5.450
+820.610 482.241 6.632 544.796 8.494 255.115 7.734
+820.767 486.632 8.229 543.748 8.710 243.761 5.336
+820.924 490.506 6.638 544.177 8.364 245.847 5.473
+821.082 484.955 7.150 543.291 7.285 249.948 6.700
+821.239 488.199 7.033 546.163 7.692 250.329 7.066
+821.395 480.792 6.517 542.191 9.474 249.513 11.018
+821.552 482.317 6.282 546.111 7.391 250.095 5.346
+821.709 481.743 7.259 545.981 7.431 252.470 4.047
+821.867 483.837 8.245 544.869 6.987 254.484 5.492
+822.025 480.748 9.470 547.168 8.030 247.454 7.788
+822.181 482.417 10.228 541.271 8.498 247.694 8.904
+822.338 479.464 10.888 546.552 8.483 252.866 8.435
+822.495 484.074 7.979 542.325 8.076 259.518 6.243
+822.652 476.070 8.102 543.453 8.269 251.285 7.276
+822.809 484.990 8.920 545.644 9.208 250.592 6.126
+822.966 485.849 7.310 546.656 8.909 245.125 7.234
+823.123 480.498 8.194 543.736 8.298 246.791 10.048
+823.279 479.235 8.019 546.347 8.645 254.297 8.309
+823.435 490.982 10.043 539.203 7.163 252.292 5.944
+823.593 484.469 7.614 547.952 9.194 250.132 6.324
+823.750 481.964 8.857 543.679 7.599 247.311 5.123
+823.907 476.409 9.185 541.686 7.893 253.993 9.256
+824.064 488.514 10.511 540.996 7.485 257.389 11.062
+824.221 481.385 7.452 542.740 6.453 249.003 8.738
+824.378 483.783 11.691 545.817 11.335 245.490 9.396
+824.534 483.237 9.609 542.648 7.799 245.364 4.323
+824.692 480.432 9.178 542.066 8.288 258.233 7.591
+824.848 479.744 8.487 545.730 9.279 251.602 6.130
+825.005 480.517 6.567 545.227 9.131 249.756 5.717
+825.163 486.545 8.629 542.512 7.352 247.117 12.091
+825.320 482.045 13.867 546.645 7.955 241.931 13.607
+825.476 482.110 8.937 540.946 9.115 252.209 8.197
+825.632 485.781 12.901 544.619 10.783 253.292 6.793
+825.789 474.737 7.528 542.446 9.395 256.912 4.983
+825.947 485.617 8.637 544.994 9.868 247.369 9.412
+826.103 485.886 8.352 542.830 7.909 248.033 6.193
+826.260 476.628 6.557 543.198 8.140 251.460 7.214
+826.416 478.796 7.229 543.072 8.485 248.264 6.052
+826.574 481.707 7.925 545.470 7.711 256.432 5.380
+826.731 478.697 8.257 541.674 7.986 253.234 8.733
+826.887 478.387 7.936 545.086 7.267 238.532 7.621
+827.044 495.503 8.204 544.390 8.322 258.225 6.654
+827.201 480.905 9.296 542.834 8.942 249.382 8.327
+827.358 475.759 10.835 543.998 7.305 252.633 6.064
+827.516 484.877 10.043 546.980 10.693 259.986 9.458
+827.673 485.458 8.664 543.519 9.619 249.129 8.915
+827.829 479.324 7.219 546.015 8.504 247.401 6.753
+827.986 482.853 8.956 545.790 10.685 239.494 6.159
+828.143 482.208 7.763 541.737 10.031 253.374 8.833
+828.300 481.432 7.960 545.207 9.731 254.673 10.181
+828.457 485.634 7.171 547.762 7.144 250.536 5.176
+828.614 476.426 9.069 542.857 6.548 251.085 7.233
+828.772 479.124 7.910 544.808 8.316 240.940 4.234
+828.929 483.981 9.761 546.238 9.132 256.929 6.849
+829.086 475.429 7.585 539.652 7.399 250.929 7.700
+829.242 486.164 6.696 547.286 8.916 248.299 8.715
+829.399 476.241 9.869 543.152 10.591 249.563 7.484
+829.555 474.682 6.220 539.301 6.864 250.735 4.794
+829.713 479.976 6.652 545.203 9.670 247.577 13.477
+829.870 483.719 8.298 542.752 9.089 249.015 11.266
+830.027 487.777 8.092 546.147 7.535 253.370 6.571
+830.184 482.827 8.865 545.621 6.706 252.983 6.003
+830.342 487.478 8.380 545.766 7.099 251.349 6.837
+830.498 485.904 7.516 543.477 8.955 251.413 8.632
+830.655 478.829 6.858 542.874 7.076 249.294 4.957
+830.812 476.168 6.880 544.268 7.126 244.692 6.339
+830.970 498.041 9.078 541.532 6.906 258.016 6.249
+831.128 488.530 9.851 547.285 8.322 241.830 4.909
+831.284 474.535 7.863 543.972 7.096 245.438 5.687
+831.442 487.195 10.502 540.869 7.173 252.784 5.002
+831.599 484.672 7.523 543.918 7.864 266.277 7.765
+831.756 486.366 8.923 545.479 6.861 242.002 7.076
+831.912 480.983 8.136 547.034 7.694 245.570 6.189
+832.069 479.869 7.335 541.760 8.370 242.225 9.279
+832.227 493.668 8.644 544.817 7.002 250.042 7.941
+832.384 496.846 9.900 542.288 7.104 286.350 8.186
+832.540 482.198 9.067 547.452 7.395 226.443 9.306
+832.696 477.112 11.901 543.854 7.635 243.344 14.560
+832.853 479.431 7.957 544.038 6.852 246.193 8.183
+833.011 505.494 7.356 543.090 6.729 278.201 8.332
+833.168 493.044 7.227 542.531 6.798 262.392 14.254
+833.325 480.620 10.066 547.325 7.934 228.823 6.606
+833.480 486.116 9.039 545.033 8.258 228.498 10.348
+833.637 502.631 10.020 542.140 7.459 259.625 14.396
+833.794 496.246 7.719 541.251 7.868 265.536 8.846
+833.950 489.342 8.239 543.422 6.837 249.295 4.679
+834.107 486.383 10.579 547.504 6.398 232.132 6.060
+834.265 490.973 10.374 543.565 7.548 254.951 10.620
+834.423 496.649 6.488 540.635 6.837 274.729 6.403
+834.582 498.136 9.760 545.736 7.872 255.257 11.624
+834.737 501.701 11.058 548.397 7.711 243.402 16.384
+834.893 491.837 9.770 549.554 7.584 231.784 6.608
+835.051 494.558 8.017 539.135 7.167 261.217 5.793
+835.209 501.715 7.135 541.441 8.007 267.302 5.661
+835.367 494.857 9.520 545.824 7.016 249.643 7.022
+835.523 491.588 11.611 543.908 7.628 230.126 6.411
+835.679 495.195 8.470 545.849 6.754 233.201 9.246
+835.837 502.112 7.637 543.948 6.669 267.732 5.289
+835.995 495.451 8.777 540.999 7.432 262.037 7.311
+836.152 489.234 7.137 543.720 6.327 245.220 4.637
+836.311 492.252 8.350 545.437 10.209 255.422 7.496
+836.468 490.152 6.279 545.784 8.481 252.564 7.268
+836.626 493.771 6.742 544.757 7.361 246.855 8.453
+836.782 503.867 8.523 543.077 8.245 255.088 10.898
+836.940 500.018 7.604 542.180 7.767 258.310 7.884
+837.097 501.580 11.100 545.561 8.973 240.883 12.625
+837.253 491.455 7.187 543.845 6.778 242.568 6.522
+837.411 502.834 6.654 545.018 6.128 255.305 6.949
+837.569 504.798 10.801 543.600 11.347 254.663 8.560
+837.727 501.498 8.915 539.316 6.704 260.396 7.285
+837.884 496.905 9.603 544.233 6.645 240.444 6.975
+838.040 503.949 8.278 543.932 7.716 231.094 6.290
+838.199 503.499 12.388 541.819 9.578 251.110 12.074
+838.356 492.305 11.551 542.808 9.996 263.761 6.057
+838.514 495.413 10.969 541.978 7.105 257.727 6.912
+838.671 501.194 7.614 544.139 7.882 250.167 4.317
+838.828 499.461 8.301 544.451 10.349 235.241 6.394
+838.984 497.764 8.809 542.944 7.327 245.272 7.898
+839.141 503.817 8.950 540.279 8.034 260.662 12.327
+839.298 506.458 7.803 541.542 7.317 250.356 6.934
+839.455 506.134 6.469 537.175 6.925 254.963 4.349
+839.613 497.391 11.773 542.241 7.828 236.959 6.494
+839.771 492.603 6.809 542.942 7.209 253.379 10.765
+839.929 501.496 7.707 537.989 7.427 264.573 5.540
+840.087 500.914 10.234 541.199 6.432 252.635 6.073
+840.244 494.879 12.848 542.912 10.217 246.036 6.775
+840.401 499.298 6.534 541.509 7.013 242.530 5.670
+840.558 503.933 10.299 541.535 8.695 250.685 6.415
+840.715 497.459 9.628 538.215 9.270 253.756 10.679
+840.872 498.154 6.643 538.962 7.149 252.677 6.321
+841.029 496.911 8.321 541.999 7.045 248.816 8.551
+841.187 496.809 7.253 541.270 6.644 243.798 9.848
+841.342 503.798 9.125 539.622 7.015 245.048 12.016
+841.499 504.798 7.085 540.546 7.887 249.850 6.275
+841.656 500.348 7.293 538.005 11.484 250.318 11.094
+841.813 499.773 8.982 542.210 7.006 253.603 4.857
+841.970 498.017 7.834 541.062 7.637 248.776 8.601
+842.127 498.060 7.776 540.850 8.808 250.767 7.837
+842.284 502.720 9.346 541.318 6.843 254.347 5.288
+842.442 498.587 9.354 539.973 7.407 251.353 5.906
+842.599 505.485 11.672 539.699 7.231 252.663 6.017
+842.756 503.774 10.314 541.737 7.657 239.336 13.746
+842.914 500.527 8.872 541.647 7.361 248.503 14.060
+843.071 497.135 8.002 539.536 8.150 246.415 8.392
+843.228 498.171 7.928 541.165 6.339 258.644 8.249
+843.385 500.571 10.460 540.531 8.438 241.876 6.067
+843.543 497.645 8.345 538.735 8.238 250.438 7.798
+843.699 497.386 9.622 541.867 8.419 244.484 12.757
+843.855 497.203 10.077 538.878 7.063 249.944 8.125
+844.013 499.672 10.349 541.438 7.325 255.279 8.435
+844.170 501.476 7.605 542.274 7.833 243.792 5.999
+844.328 499.074 7.739 539.882 6.416 253.117 6.056
+844.485 493.210 7.389 541.138 7.508 253.901 6.802
+844.643 491.382 13.471 538.451 9.359 250.059 15.970
+844.799 497.943 9.610 542.794 7.203 254.920 11.023
+844.956 499.419 7.972 540.428 7.209 250.449 6.996
+845.113 503.004 8.562 541.354 10.986 249.164 7.255
+845.271 504.850 9.073 544.223 7.834 261.331 17.420
+845.428 489.868 12.360 536.212 7.143 237.683 12.880
+845.584 494.018 9.032 540.382 8.490 252.516 12.138
+845.741 494.060 7.130 543.153 6.266 246.115 7.890
+845.898 495.910 8.737 536.531 6.790 256.481 10.098
+846.055 506.789 6.818 541.505 7.518 257.104 5.916
+846.213 506.377 10.246 545.125 7.999 242.771 7.942
+846.369 487.923 7.787 538.421 8.742 236.627 9.806
+846.525 492.149 9.592 541.224 7.953 252.616 6.911
+846.681 495.851 10.161 539.802 10.593 253.596 6.536
+846.838 491.938 9.727 537.808 7.205 258.505 9.694
+846.995 493.779 9.605 539.998 9.002 248.175 7.030
+847.151 502.877 8.595 541.680 6.770 256.221 5.117
+847.310 500.548 8.462 542.456 7.394 245.442 11.131
+847.466 495.115 7.563 538.184 6.879 247.114 5.434
+847.623 499.871 7.350 543.531 7.161 243.701 7.074
+847.780 493.558 7.653 539.755 12.657 247.677 8.213
+847.937 501.735 7.179 537.397 9.217 272.606 9.120
+848.093 493.727 9.192 544.374 7.679 237.026 8.679
+848.249 500.197 10.591 542.263 7.590 241.160 6.000
+848.405 497.662 8.532 541.522 6.480 232.831 6.971
+848.563 496.416 12.046 538.505 10.684 260.358 4.912
+848.722 499.144 10.010 538.315 7.398 278.743 5.138
+848.881 499.041 9.047 541.203 6.522 258.017 17.478
+849.037 496.270 7.755 542.782 7.598 228.520 10.255
+849.194 496.022 9.654 543.227 8.012 250.525 8.012
+849.350 496.560 9.346 539.512 7.869 264.015 7.454
+849.508 502.065 10.530 534.805 7.360 264.020 7.894
+849.666 496.870 9.720 543.438 7.994 242.540 17.207
+849.821 494.118 11.817 541.754 7.903 243.495 5.148
+849.978 491.991 7.474 540.077 7.406 247.984 6.929
+850.135 497.919 6.580 540.130 6.626 262.949 4.957
+850.294 496.729 10.698 541.581 7.837 249.159 5.746
+850.451 500.987 7.902 541.555 6.911 241.391 9.880
+850.607 495.429 6.224 541.115 6.861 255.093 7.760
+850.765 496.604 6.683 540.101 6.151 246.870 7.411
+850.923 499.536 7.222 542.071 7.886 247.868 7.287
+851.079 493.295 8.489 540.880 10.119 249.688 11.996
+851.236 495.142 9.082 539.278 9.528 240.706 7.168
+851.393 503.161 7.004 542.512 11.583 267.747 6.782
+851.550 492.501 6.762 540.485 6.717 252.787 5.085
+851.708 500.685 7.582 542.584 6.434 239.057 4.726
+851.866 497.186 6.894 541.485 7.118 250.780 10.855
+852.023 497.281 9.913 542.614 7.270 253.207 11.604
+852.180 502.152 10.136 538.316 8.449 266.782 9.104
+852.337 500.471 8.237 542.493 8.965 241.697 4.475
+852.494 499.784 6.455 542.274 6.159 247.426 5.556
+852.653 492.897 6.954 538.642 6.661 256.234 5.163
+852.811 499.669 8.123 542.576 9.424 248.912 6.706
+852.966 505.406 6.271 540.885 6.763 244.759 5.643
+853.125 504.724 8.446 542.008 8.751 247.137 11.693
+853.281 494.037 9.082 541.690 6.831 238.871 8.525
+853.438 502.890 9.933 540.386 7.533 260.998 7.945
+853.595 498.908 6.796 541.903 6.623 253.800 4.954
+853.753 497.399 8.344 539.779 6.346 252.438 4.566
+853.910 493.904 9.393 543.357 7.987 246.804 8.921
+854.066 508.809 9.014 542.083 6.570 249.608 7.159
+854.224 498.698 6.981 541.160 7.093 253.976 7.492
+854.381 501.247 10.080 542.261 7.090 249.659 8.984
+854.538 500.392 7.597 540.602 6.856 240.346 4.400
+854.696 500.193 6.898 538.376 6.787 264.873 7.115
+854.854 498.882 6.665 541.653 7.176 255.528 8.154
+855.011 498.508 9.444 540.956 8.544 244.915 7.726
+855.167 498.695 9.039 541.179 8.736 246.919 10.084
+855.323 495.786 7.092 543.481 7.540 251.789 5.972
+855.481 502.587 8.200 539.474 9.818 251.347 8.488
+855.638 499.745 6.900 540.954 6.495 257.373 7.770
+855.795 496.537 10.365 538.629 7.514 250.903 8.603
+855.951 495.085 6.664 544.736 6.543 240.049 6.686
+856.110 503.770 10.180 542.677 8.358 253.430 4.405
+856.267 499.587 7.533 541.536 6.785 251.264 4.351
+856.425 495.015 8.336 540.465 7.228 261.762 5.270
+856.583 491.930 7.155 543.134 7.384 247.907 9.002
+856.740 503.929 12.219 542.341 7.306 248.189 9.620
+856.896 496.779 7.747 538.923 11.183 257.311 10.019
+857.055 497.517 13.699 541.559 9.930 244.843 12.775
+857.210 498.735 9.394 540.865 10.011 238.688 8.364
+857.367 498.817 7.831 541.858 8.455 258.386 8.137
+857.524 500.338 9.549 539.968 7.705 255.733 5.612
+857.681 494.483 12.801 541.209 6.584 249.287 6.159
+857.838 495.094 8.689 543.752 9.236 237.512 8.121
+857.994 498.621 6.537 541.677 7.732 243.045 11.804
+858.153 502.206 8.362 538.656 6.724 265.180 4.232
+858.311 503.932 7.807 540.186 6.894 252.621 8.251
+858.468 496.779 7.301 543.321 7.168 235.616 5.206
+858.625 498.747 8.856 541.543 7.356 246.626 7.157
+858.782 500.477 7.283 540.145 8.601 249.026 8.745
+858.939 501.254 8.110 537.391 8.079 264.370 6.586
+859.096 499.092 7.274 541.214 7.231 252.123 10.014
+859.253 500.130 8.163 542.212 8.613 240.591 7.416
+859.410 499.011 7.895 540.082 7.677 245.765 8.326
+859.566 494.190 9.390 540.330 8.506 251.047 9.046
+859.723 501.651 9.212 539.813 8.760 256.790 7.284
+859.880 500.506 7.464 540.818 7.115 253.997 5.153
+860.037 497.445 8.175 542.718 7.065 245.479 8.166
+860.193 498.804 10.024 541.277 6.711 252.224 4.072
+860.350 495.888 12.992 541.392 7.887 248.512 7.658
+860.506 500.058 8.234 541.964 8.585 246.835 6.315
+860.663 496.080 9.431 539.579 7.329 249.048 7.549
+860.820 498.600 9.131 540.555 7.607 251.710 6.972
+860.977 496.876 9.719 540.625 8.410 246.717 8.556
+861.134 498.348 8.835 542.256 7.861 241.437 7.134
+861.290 493.683 8.439 539.872 7.720 254.904 12.009
+861.447 499.986 10.650 540.348 7.015 252.339 8.115
+861.604 498.129 6.903 542.203 8.389 251.673 7.869
+861.761 497.501 7.820 541.762 6.345 248.716 6.983
+861.918 499.485 11.086 543.427 8.524 248.237 7.253
+862.074 500.144 11.798 541.964 7.611 245.872 6.688
+862.232 504.571 6.552 540.769 7.600 257.818 6.578
+862.389 501.815 7.935 541.367 6.649 241.518 6.096
+862.547 500.648 8.128 542.943 7.595 246.995 3.885
+862.705 499.626 7.208 542.799 7.454 244.519 6.106
+862.862 510.306 9.611 541.368 7.297 249.495 10.128
+863.019 502.243 8.720 540.733 7.943 250.874 5.953
+863.176 506.232 10.728 547.497 9.102 247.698 6.124
+863.333 506.062 7.232 541.025 6.562 251.597 6.654
+863.491 506.070 7.699 544.660 7.802 256.086 5.613
+863.649 501.760 7.823 540.836 7.518 249.710 7.766
+863.805 504.367 8.594 546.978 8.346 242.667 6.156
+863.962 509.653 10.586 542.989 8.381 248.296 7.419
+864.120 503.666 7.808 538.739 7.648 255.522 4.128
+864.277 501.086 9.681 541.807 8.177 247.825 6.669
+864.433 505.620 8.259 544.038 7.514 252.078 5.822
+864.591 502.896 7.145 543.290 6.579 246.630 8.618
+864.748 504.478 10.164 539.573 8.086 251.526 6.502
+864.905 506.414 7.476 540.955 8.460 250.725 7.989
+865.061 511.724 8.069 543.229 6.744 242.207 4.642
+865.219 512.347 6.375 539.792 7.934 252.572 6.601
+865.376 509.323 9.893 543.427 9.466 250.675 6.355
+865.533 508.833 7.242 545.834 9.245 241.776 6.429
+865.690 507.318 7.443 541.468 9.297 247.367 8.894
+865.846 508.163 11.166 539.774 7.961 250.973 5.365
+866.004 507.381 7.198 539.127 6.862 249.869 6.098
+866.162 514.273 7.471 544.091 8.160 246.798 5.531
+866.319 511.202 8.576 541.561 7.930 241.998 7.528
+866.475 510.622 7.048 541.475 8.123 250.209 9.822
+866.632 507.366 7.021 538.854 7.038 253.352 4.798
+866.790 508.073 9.641 541.828 6.778 246.113 5.885
+866.947 512.420 6.175 544.248 7.743 241.561 7.017
+867.105 508.694 7.584 537.772 7.569 251.495 9.176
+867.262 504.876 9.229 539.017 7.533 244.554 7.215
+867.418 501.558 6.994 538.500 6.430 249.455 4.916
+867.576 510.675 8.660 542.965 7.753 254.324 11.918
+867.733 508.426 8.215 538.319 8.495 241.333 8.743
+867.889 508.304 11.741 540.373 8.750 248.903 15.631
+868.046 508.683 10.362 541.313 7.540 247.219 14.197
+868.202 507.166 8.471 539.823 6.983 244.622 5.692
+868.360 512.851 7.069 540.998 7.337 255.726 5.783
+868.519 516.668 9.361 540.310 8.781 246.287 10.318
+868.677 499.486 14.083 545.693 9.171 239.742 10.417
+868.833 504.134 10.420 540.347 6.645 251.657 6.023
+868.990 508.501 11.563 538.453 7.124 252.206 9.303
+869.146 506.635 7.600 541.344 8.130 243.512 10.572
+869.303 509.306 7.538 539.723 8.208 254.655 6.175
+869.460 503.683 9.159 543.217 9.645 240.776 8.498
+869.616 508.926 7.845 543.612 10.590 245.727 6.215
+869.773 506.419 8.907 539.936 7.362 256.157 8.549
+869.930 503.224 7.605 541.859 9.518 245.681 9.571
+870.086 502.552 6.371 538.758 6.850 246.856 5.982
+870.244 506.345 6.641 540.667 7.266 253.808 6.468
+870.403 502.373 8.200 542.176 7.575 249.618 5.979
+870.560 508.203 7.965 540.161 7.529 254.896 5.044
+870.717 502.622 6.995 539.201 7.675 244.798 5.316
+870.873 511.306 8.333 543.752 7.680 242.298 6.153
+871.032 503.703 8.963 539.087 6.856 253.152 6.636
+871.188 505.607 10.266 537.660 7.505 253.511 5.400
+871.346 502.846 6.469 540.386 6.926 249.755 6.180
+871.504 510.578 8.063 543.093 8.204 238.547 4.398
+871.660 508.165 8.891 539.211 8.825 253.805 5.251
+871.817 516.801 8.172 538.512 8.282 254.368 7.278
+871.974 506.918 9.884 540.655 6.771 241.803 7.161
+872.130 508.429 9.271 543.906 7.372 242.038 8.775
+872.286 514.334 8.456 540.449 8.118 250.270 6.507
+872.443 510.633 6.971 541.504 7.771 248.622 5.250
+872.600 508.136 8.441 539.575 7.937 252.786 5.481
+872.757 504.041 6.676 540.545 7.259 248.117 6.740
+872.914 505.400 8.503 537.875 8.345 240.941 6.742
+873.070 506.074 7.910 541.088 7.104 247.949 6.655
+873.226 508.080 8.687 540.310 7.409 251.819 4.175
+873.384 510.280 7.121 541.543 7.369 247.778 8.571
+873.541 511.062 11.527 540.495 8.300 248.477 7.302
+873.698 512.670 8.624 539.094 6.618 247.704 5.244
+873.855 515.836 6.462 540.071 7.240 248.397 9.745
+874.012 506.318 7.298 540.150 7.765 251.783 5.990
+874.170 504.683 6.422 539.701 7.331 249.717 5.429
+874.328 503.296 7.756 539.457 8.281 243.937 6.254
+874.485 508.322 6.975 540.604 8.014 251.509 5.515
+874.642 502.423 8.814 540.456 8.544 243.005 7.267
+874.799 508.364 8.129 538.184 7.366 250.210 6.263
+874.956 507.373 9.224 538.451 6.266 239.402 9.620
+875.113 505.563 7.193 539.164 7.654 248.994 5.864
+875.271 507.995 7.464 544.271 6.700 245.149 7.669
+875.429 510.229 8.385 541.972 7.101 248.081 9.135
+875.586 503.592 8.038 540.009 8.239 249.240 9.702
+875.742 506.935 10.575 543.080 8.399 244.072 6.267
+875.899 503.779 6.246 541.340 8.813 245.810 6.973
+876.056 509.717 8.837 543.353 7.251 253.048 5.370
+876.213 499.937 11.573 541.503 7.950 249.560 5.785
+876.370 509.669 6.595 540.025 6.969 244.065 4.189
+876.527 506.096 10.967 541.930 7.345 243.410 6.683
+876.685 506.260 8.222 541.949 8.267 244.134 8.850
+876.840 508.732 6.947 539.229 8.460 257.051 5.203
+876.998 500.517 8.587 542.602 8.422 248.800 8.257
+877.155 505.925 6.950 542.086 7.741 244.558 6.786
+877.312 504.469 6.608 540.030 7.905 246.855 6.097
+877.469 508.074 6.390 542.020 7.387 253.778 4.678
+877.627 503.800 8.165 540.080 7.752 253.097 5.933
+877.784 507.018 7.154 543.090 7.041 241.601 5.866
+877.942 504.900 7.193 542.770 7.727 248.896 5.217
+878.100 502.119 8.555 539.427 7.951 246.938 7.678
+878.256 504.271 8.282 539.984 8.627 248.789 6.339
+878.414 501.472 8.126 540.409 7.237 251.687 8.530
+878.571 504.484 8.322 540.324 8.242 251.666 9.284
+878.727 509.364 7.925 541.273 7.443 248.486 5.991
+878.884 506.413 7.340 540.842 6.687 253.154 6.605
+879.041 503.334 8.574 539.628 8.108 242.201 8.080
+879.197 500.983 6.422 540.006 6.906 244.832 5.097
+879.355 504.969 7.743 541.220 7.646 252.748 5.374
+879.513 509.849 6.726 540.852 6.669 253.407 5.294
+879.670 508.928 8.677 539.408 8.151 252.364 12.632
+879.827 506.449 7.125 539.144 8.142 249.033 8.865
+879.983 505.234 7.247 542.371 8.376 247.440 7.847
+880.139 504.682 7.125 539.693 7.975 252.664 5.988
+880.296 505.526 6.555 539.787 7.367 253.226 5.961
+880.454 504.725 8.232 539.117 8.816 238.622 9.248
+880.610 502.957 7.448 541.581 7.722 245.036 9.074
+880.767 503.629 8.443 539.355 8.021 252.040 4.907
+880.923 494.556 10.587 541.703 6.426 242.460 5.198
+881.081 506.195 7.060 539.677 7.145 254.364 8.666
+881.239 507.212 9.368 541.436 7.622 253.263 10.285
+881.395 510.712 7.437 539.634 7.820 246.852 5.782
+881.552 502.457 7.681 540.136 7.323 240.678 4.584
+881.708 504.854 8.645 541.481 7.553 244.516 5.009
+881.866 500.948 8.191 540.054 7.532 250.665 8.523
+882.023 498.959 7.963 538.770 6.910 257.336 5.786
+882.180 504.779 8.907 541.097 6.947 249.833 6.887
+882.336 496.857 8.228 540.891 7.776 239.158 5.022
+882.494 505.058 6.933 540.189 6.577 251.511 4.739
+882.651 507.250 7.063 539.701 6.703 251.325 6.624
+882.809 503.212 7.067 540.807 7.275 246.803 6.357
+882.965 504.292 8.045 538.968 6.868 245.848 7.301
+883.122 502.112 7.864 539.459 8.951 250.128 7.491
+883.278 505.611 7.770 541.084 7.006 253.471 6.237
+883.435 504.116 8.630 540.190 7.672 249.414 5.648
+883.592 500.581 8.179 541.861 7.420 247.204 8.129
+883.748 503.245 7.336 540.778 7.787 253.732 4.812
+883.906 498.082 8.209 539.267 7.369 248.787 14.821
+884.062 500.540 7.392 541.382 7.930 248.397 8.067
+884.218 503.555 7.169 542.003 6.918 238.933 8.786
+884.374 505.035 7.719 544.210 7.456 244.949 7.182
+884.530 507.430 7.298 540.592 6.807 248.749 6.191
+884.689 500.544 7.585 542.135 7.123 245.297 8.820
+884.845 502.165 7.795 540.571 7.148 245.792 7.683
+885.002 498.711 8.043 541.615 8.211 250.757 8.995
+885.158 502.777 6.564 540.316 8.956 249.287 8.342
+885.315 503.287 7.029 539.553 9.246 247.132 9.730
+885.471 501.302 6.445 541.265 7.623 247.861 7.487
+885.628 502.803 7.099 539.952 8.142 250.318 6.125
+885.785 504.348 9.550 539.019 7.087 252.123 15.514
+885.941 500.923 12.782 540.170 9.786 249.731 8.312
+886.098 503.479 8.576 542.211 7.753 251.397 6.877
+886.254 505.034 10.699 542.542 7.562 248.593 5.496
+886.412 502.230 6.258 540.735 7.418 249.415 4.578
+886.569 499.422 7.809 540.997 7.785 249.504 8.436
+886.726 496.074 7.594 541.080 7.741 252.075 7.222
+886.882 502.480 7.086 540.570 7.267 248.460 4.198
+887.039 499.714 8.602 539.925 7.379 250.264 9.056
+887.196 504.207 8.141 540.759 7.467 247.112 7.197
+887.352 502.602 7.232 540.217 8.735 245.551 5.387
+887.510 500.496 7.454 539.732 7.892 250.215 6.170
+887.667 500.444 7.188 538.827 7.077 250.552 5.857
+887.824 498.934 6.506 540.718 7.504 247.515 6.548
+887.982 501.609 7.109 538.547 7.153 249.565 5.698
+888.139 493.676 7.075 539.275 8.733 248.825 6.005
+888.296 496.686 7.046 538.302 7.154 255.378 7.116
+888.454 490.726 6.372 538.513 9.061 254.393 8.367
+888.611 494.957 6.690 537.945 7.852 254.003 6.613
+888.768 496.979 8.576 539.609 7.954 249.390 10.943
+888.924 499.379 7.104 539.116 9.909 241.083 6.081
+889.082 500.093 7.210 542.191 9.190 249.900 6.685
+889.238 497.721 6.512 538.301 7.828 250.359 5.710
+889.396 494.837 7.091 541.523 7.059 250.113 7.091
+889.553 496.028 6.998 540.295 7.990 249.221 5.317
+889.709 496.840 6.766 539.303 7.987 253.502 5.203
+889.867 499.788 9.314 540.373 10.888 247.345 6.074
+890.024 494.507 10.490 539.923 8.752 253.503 9.649
+890.181 499.615 8.463 539.409 12.791 246.225 5.446
+890.338 496.566 6.138 539.814 8.002 250.562 5.047
+890.495 497.505 6.306 540.908 7.462 249.165 4.866
+890.653 501.555 6.622 539.649 6.822 260.291 4.104
+890.811 492.975 9.548 542.836 8.158 249.772 6.036
+890.968 500.209 7.027 540.618 6.746 248.067 7.746
+891.125 493.712 6.538 538.606 8.341 250.160 4.746
+891.282 498.817 7.180 539.396 8.275 254.141 5.921
+891.439 499.298 6.415 540.244 7.262 249.721 6.245
+891.597 492.083 6.285 538.822 7.178 245.057 5.204
+891.755 502.160 7.319 541.798 6.598 252.900 7.170
+891.912 494.831 7.741 541.048 7.305 241.709 8.486
+892.069 497.938 6.257 540.210 6.611 256.087 8.293
+892.226 498.399 7.539 539.932 6.812 248.700 5.820
+892.383 496.804 7.007 539.699 7.113 242.227 4.715
+892.540 499.948 9.096 542.657 8.119 251.662 5.638
+892.696 494.139 8.553 540.666 7.555 250.596 7.442
+892.853 498.831 7.795 540.836 6.788 247.875 9.197
+893.010 493.388 7.307 541.038 6.595 246.988 9.365
+893.167 500.093 7.790 543.590 7.862 250.579 9.868
+893.323 496.381 6.940 541.765 7.379 246.445 5.999
+893.480 501.803 10.984 542.897 9.846 245.334 7.361
+893.637 503.358 11.243 540.559 9.073 249.613 8.827
+893.793 497.533 7.981 540.805 8.811 255.356 10.633
+893.949 496.015 6.936 540.808 6.447 249.033 3.996
+894.108 496.040 6.368 541.048 6.945 249.010 4.960
+894.266 498.730 9.205 540.460 6.729 250.780 6.437
+894.423 503.047 5.840 543.154 8.278 259.747 5.189
+894.581 495.340 8.739 541.081 8.542 249.667 5.771
+894.738 497.603 10.336 540.960 8.701 242.526 7.468
+894.895 497.256 9.953 542.449 7.503 244.885 10.359
+895.053 496.902 7.937 540.434 7.117 257.768 6.027
+895.211 497.149 7.787 539.994 8.576 257.807 6.858
+895.369 498.961 10.509 541.719 7.297 244.578 6.806
+895.526 498.299 7.426 540.957 8.428 249.025 9.850
+895.682 498.583 7.019 540.699 7.022 254.250 6.621
+895.839 496.545 6.542 541.847 7.605 257.592 5.523
+895.998 496.005 9.062 539.438 6.995 254.035 5.204
+896.156 498.770 9.719 541.684 6.536 244.830 9.205
+896.313 500.647 7.695 540.236 10.753 245.608 10.145
+896.470 501.166 6.657 540.222 6.424 254.376 3.965
+896.628 501.221 7.806 540.322 6.820 249.383 5.810
+896.784 500.842 5.753 540.363 6.877 254.723 5.946
+896.943 502.888 7.672 540.683 8.237 249.367 5.875
+897.099 499.268 7.254 541.806 7.069 245.463 4.978
+897.257 495.632 6.708 541.868 7.766 248.044 7.486
+897.414 493.596 7.372 540.998 6.957 247.060 8.092
+897.571 497.785 10.238 538.120 7.403 257.240 8.506
+897.728 500.947 7.225 538.851 7.415 253.342 5.981
+897.886 502.489 6.434 541.248 6.798 248.923 6.746
+898.043 500.634 7.108 542.192 7.344 247.409 4.738
+898.201 496.146 6.693 540.681 6.322 250.194 3.980
+898.359 498.091 6.812 541.856 6.357 256.521 4.381
+898.516 501.480 10.757 539.648 7.409 250.145 4.883
+898.673 504.554 8.008 542.256 7.651 252.151 4.336
+898.830 496.575 6.591 540.752 6.362 238.811 4.729
+898.988 497.305 7.191 539.137 6.555 261.538 7.477
+899.145 497.143 6.478 541.731 6.438 251.005 7.564
+899.303 497.671 8.544 540.387 8.188 250.450 6.368
+899.460 495.916 6.471 542.363 7.190 248.864 4.556
+899.617 499.929 8.771 540.833 7.696 244.998 7.712
+899.775 503.039 8.194 541.678 6.211 259.760 8.551
+899.932 496.970 7.990 541.816 6.791 245.947 6.358
+900.089 499.979 6.122 541.168 6.563 249.179 5.469
+900.247 500.969 6.161 541.721 6.457 241.721 5.185
+900.405 500.749 6.530 542.137 7.222 252.117 4.577
+900.563 498.527 6.776 541.981 6.273 254.891 6.720
+900.720 498.535 6.172 539.529 6.250 246.998 4.903
+900.878 498.335 7.471 541.875 6.998 243.390 6.092
+901.036 497.703 5.907 540.398 7.183 248.743 7.244
+901.194 501.247 5.930 540.914 6.233 254.077 4.712
+901.352 501.492 6.447 540.019 6.589 250.010 3.760
+901.509 495.975 7.091 538.940 8.844 249.770 7.048
+901.665 495.999 7.819 541.359 6.266 249.447 6.214
+901.824 500.970 6.917 540.153 7.882 255.374 6.055
+901.981 506.009 11.302 541.051 7.836 238.723 9.699
+902.139 502.770 7.840 538.170 7.025 258.477 13.436
+902.296 498.187 7.195 538.021 12.263 262.444 9.838
+902.453 493.491 9.010 542.110 8.178 232.184 6.641
+902.610 494.044 6.875 541.951 7.862 255.641 9.631
+902.767 500.560 7.069 539.099 11.251 261.056 8.808
+902.925 500.065 8.980 538.351 6.615 261.150 14.128
+903.082 499.220 7.623 542.783 7.765 243.261 7.643
+903.238 496.302 11.968 539.237 6.734 245.182 5.646
+903.395 499.813 8.408 542.812 6.826 249.281 6.924
+903.551 495.238 6.524 538.468 6.960 254.082 3.746
+903.710 497.822 6.849 534.954 6.511 257.830 4.427
+903.868 497.948 7.449 539.109 7.004 248.078 6.485
+904.025 496.769 7.598 545.811 8.286 241.280 10.314
+904.182 500.037 6.357 539.558 9.836 256.872 4.792
+904.340 500.460 9.559 537.625 10.347 253.558 7.135
+904.497 492.424 7.950 538.376 6.915 245.415 9.165
+904.653 490.064 7.222 541.403 8.677 247.924 7.045
+904.810 497.200 6.967 538.254 8.560 253.259 5.274
+904.968 499.052 7.749 539.212 12.078 249.122 7.667
+905.124 497.240 8.509 543.072 13.783 247.701 6.755
+905.280 496.522 7.234 541.380 8.400 246.857 5.622
+905.438 492.135 6.405 541.653 8.045 248.458 4.532
+905.594 499.091 9.360 540.776 7.993 253.564 6.002
+905.752 496.310 8.065 543.547 9.840 254.725 11.083
+905.908 488.613 9.381 540.125 10.186 249.367 6.614
+906.065 493.906 6.610 539.851 11.252 249.033 6.461
+906.222 494.639 7.687 540.778 12.498 248.170 8.616
+906.379 496.826 7.247 540.257 9.555 250.591 5.631
+906.536 490.928 7.766 537.852 13.632 252.505 11.123
+906.694 496.379 8.182 535.978 8.039 255.535 7.996
+906.850 496.143 7.911 544.089 7.743 248.015 7.679
+907.006 492.631 9.642 539.710 7.368 247.110 6.638
+907.163 493.196 8.125 538.057 7.145 262.191 8.262
+907.320 494.012 9.562 537.950 9.131 253.101 5.666
+907.477 494.710 6.417 542.219 7.252 247.821 5.125
+907.635 498.267 7.510 542.262 8.339 252.128 4.533
+907.792 493.982 6.336 539.782 9.090 246.201 4.715
+907.950 494.039 8.123 538.477 8.343 250.922 8.321
+908.106 498.830 6.991 540.414 6.329 257.289 4.834
+908.264 489.998 7.159 538.804 7.752 247.512 6.771
+908.421 486.970 7.762 538.568 8.458 242.765 5.201
+908.579 496.719 7.861 538.265 7.537 254.627 4.351
+908.736 493.267 6.832 541.432 6.909 254.586 3.810
+908.894 493.292 7.452 540.574 9.556 250.785 5.048
+909.051 493.802 6.645 540.375 7.694 247.007 4.855
+909.208 498.418 6.719 541.133 7.610 244.610 4.096
+909.366 494.034 7.787 542.171 7.879 248.426 5.737
+909.523 500.400 7.122 538.951 7.884 252.304 5.924
+909.680 500.944 7.118 539.209 7.597 251.063 4.265
+909.837 491.399 7.316 540.852 7.130 251.250 8.222
+909.994 493.254 6.755 542.738 7.785 249.082 5.603
+910.151 493.812 9.681 539.737 8.054 247.460 6.620
+910.308 494.248 6.474 542.847 9.530 250.074 6.043
+910.465 495.902 6.574 540.828 7.618 248.780 5.195
+910.622 496.079 7.499 541.468 7.701 251.007 6.038
+910.780 502.600 9.107 542.574 8.974 248.400 6.640
+910.937 493.986 11.156 536.415 10.327 254.584 16.321
+911.093 491.359 9.622 539.374 8.012 243.055 8.947
+911.249 490.363 8.001 540.743 7.251 240.420 14.139
+911.405 491.113 11.193 542.947 7.693 251.854 11.312
+911.562 490.101 12.737 538.189 7.252 256.008 9.233
+911.720 489.991 7.162 540.821 8.217 249.760 7.223
+911.877 495.939 6.771 539.418 8.501 251.727 6.437
+912.034 500.099 8.495 541.494 7.742 248.977 4.472
+912.192 498.681 9.997 540.005 8.129 248.839 7.165
+912.349 495.906 11.304 538.410 10.707 243.928 15.800
+912.505 496.349 9.320 542.354 8.633 250.109 7.908
+912.662 491.973 7.943 543.933 8.928 244.921 7.678
+912.818 486.809 8.889 539.139 7.822 254.899 3.784
+912.975 489.848 9.972 538.881 11.438 252.369 18.726
+913.131 494.578 8.791 540.828 8.575 250.273 6.090
+913.288 496.745 7.815 542.498 7.629 249.422 6.118
+913.445 496.867 6.997 541.585 8.241 246.494 6.459
+913.602 505.278 8.007 542.995 8.174 245.904 4.582
+913.759 500.662 8.453 541.780 9.214 245.889 5.830
+913.915 501.896 8.397 540.957 9.187 247.818 6.500
+914.072 504.149 6.769 542.929 8.451 251.158 5.145
+914.230 492.921 8.511 543.809 8.356 246.771 14.178
+914.387 493.749 10.225 539.758 9.915 248.947 11.393
+914.544 497.887 8.491 539.887 10.700 253.999 7.475
+914.701 498.968 6.329 540.918 9.299 255.840 4.223
+914.860 499.239 7.627 541.819 7.869 244.298 4.681
+915.017 500.952 7.013 541.478 10.221 245.003 5.262
+915.175 503.849 8.859 540.484 8.369 247.460 7.353
+915.332 505.148 8.372 538.954 9.620 253.314 6.733
+915.488 499.541 6.941 541.849 8.216 250.663 5.290
+915.646 496.305 8.102 539.198 8.788 249.806 10.633
+915.802 492.053 7.701 541.712 7.936 245.478 6.346
+915.958 493.820 8.679 543.367 10.146 254.054 8.287
+916.117 497.948 6.868 538.893 8.158 257.760 6.018
+916.274 493.459 6.942 541.348 7.075 240.457 6.723
+916.431 500.844 7.960 542.323 7.582 239.304 4.670
+916.588 502.808 8.435 542.173 7.788 256.073 5.148
+916.746 500.518 8.182 541.861 8.584 251.210 8.708
+916.903 499.165 7.581 540.598 7.106 244.022 4.538
+917.061 503.361 6.796 539.926 8.627 258.470 5.868
+917.218 497.253 9.276 541.189 8.083 248.524 7.452
+917.374 492.852 7.107 540.721 8.360 250.395 8.073
+917.531 496.738 6.332 542.097 7.324 256.373 4.543
+917.688 499.747 7.037 540.441 8.609 246.683 4.599
+917.846 502.347 7.252 541.254 9.009 247.096 6.308
+918.003 504.563 6.692 540.822 9.036 252.111 4.494
+918.160 504.205 7.167 542.738 7.090 243.291 4.849
+918.317 500.552 7.762 542.267 8.238 245.722 5.532
+918.474 498.335 7.038 539.322 7.392 254.997 5.257
+918.632 492.933 7.931 543.693 7.110 253.940 6.159
+918.788 490.139 6.880 539.707 8.053 250.149 7.050
+918.945 497.571 6.764 538.537 10.085 256.951 5.430
+919.103 497.945 6.677 539.515 8.840 253.409 5.055
+919.261 499.149 6.534 539.815 7.464 248.054 5.345
+919.418 500.661 6.920 540.048 8.308 248.850 5.600
+919.575 503.946 6.944 542.610 8.195 243.098 4.629
+919.732 503.759 7.460 541.206 11.230 246.961 5.151
+919.889 502.327 6.738 541.852 6.413 247.859 4.985
+920.047 495.893 7.435 539.748 8.245 250.228 4.006
+920.204 492.428 8.010 538.257 8.511 254.892 6.288
+920.360 493.054 8.151 541.292 7.371 248.988 5.587
+920.518 495.180 7.420 539.682 9.244 253.429 5.218
+920.675 490.521 6.589 539.156 7.729 253.824 5.177
+920.833 494.795 8.143 542.441 8.202 247.728 4.358
+920.989 502.947 6.665 540.094 8.123 245.977 5.150
+921.147 504.159 7.707 539.531 8.575 251.459 5.214
+921.304 501.301 8.116 540.965 8.655 244.144 5.279
+921.461 498.193 6.765 541.589 9.628 246.881 4.819
+921.618 497.701 6.393 539.815 9.325 253.518 5.473
+921.776 496.707 7.244 539.838 7.849 249.765 6.055
+921.933 492.517 6.910 538.608 8.230 252.107 5.813
+922.090 494.185 7.222 540.506 8.691 248.741 6.042
+922.247 493.871 6.478 539.535 8.278 253.377 4.594
+922.406 497.048 6.588 539.495 8.920 256.953 6.383
+922.563 497.700 8.026 540.905 7.327 244.889 6.159
+922.720 501.637 6.593 541.249 8.232 249.818 6.202
+922.878 500.586 7.722 541.262 7.544 249.728 5.775
+923.035 500.785 6.483 541.442 8.298 249.207 3.865
+923.193 494.487 7.388 539.804 8.947 249.742 7.472
+923.349 495.664 6.341 539.058 7.700 253.597 5.062
+923.507 496.276 6.785 540.610 7.184 252.336 4.704
+923.664 494.562 6.490 539.956 7.934 247.943 5.283
+923.822 494.765 7.359 540.059 7.958 255.559 4.980
+923.980 499.757 6.778 540.290 7.317 253.305 3.939
+924.137 498.447 6.084 540.073 7.534 244.543 7.651
+924.294 496.434 6.413 539.850 6.912 248.075 4.385
+924.452 494.564 7.047 541.168 7.855 252.110 6.395
+924.609 498.535 6.551 538.691 7.291 251.761 7.979
+924.766 498.025 6.357 542.556 6.654 246.717 4.372
+924.924 499.930 6.816 539.935 6.944 249.807 5.146
+925.082 500.029 5.991 541.079 6.979 254.588 3.975
+925.239 499.960 7.109 541.280 6.717 250.315 5.754
+925.396 494.079 6.888 539.622 8.242 242.323 5.428
+925.554 493.690 7.118 538.966 7.498 256.233 4.950
+925.713 496.656 6.721 538.969 8.260 258.542 8.172
+925.870 493.856 6.315 538.809 6.837 245.495 6.750
+926.028 498.338 7.418 539.958 6.761 250.694 6.482
+926.185 500.623 6.738 539.799 7.009 250.486 4.804
+926.342 504.266 6.475 540.378 6.984 253.164 4.374
+926.500 507.942 7.110 541.473 7.031 241.951 7.837
+926.656 507.519 5.785 540.874 6.391 240.149 6.173
+926.814 495.745 6.276 540.048 6.206 249.291 5.188
+926.973 496.757 5.751 539.920 6.743 252.862 4.278
+927.130 494.837 6.279 539.439 6.780 254.508 4.378
+927.289 494.538 6.377 540.434 6.144 251.545 4.275
+927.446 495.605 6.565 539.724 7.037 251.395 5.337
+927.604 499.816 6.036 540.997 6.309 246.553 4.542
+927.763 497.498 5.869 539.800 6.066 246.615 4.414
+927.921 502.095 7.212 541.038 6.253 247.696 7.716
+928.078 500.381 6.510 540.380 6.502 252.766 4.510
+928.235 500.533 5.678 542.003 6.327 248.577 4.687
+928.393 500.085 6.451 541.440 6.531 247.265 5.227
+928.551 501.420 6.106 540.064 6.527 248.982 3.750
+928.710 497.084 5.891 540.890 6.509 252.819 4.606
+928.869 495.790 6.206 540.478 6.905 249.368 5.030
+929.026 498.407 6.869 541.664 7.023 246.433 4.949
+929.183 498.864 7.563 538.726 7.143 253.734 5.574
+929.341 501.388 6.551 539.147 7.176 253.197 5.316
+929.498 498.173 7.035 542.481 6.223 246.482 5.207
+929.656 501.251 7.271 541.404 6.614 245.774 5.713
+929.813 496.972 7.961 539.724 6.785 252.527 3.430
+929.971 501.469 6.331 539.867 7.186 255.495 4.427
+930.130 501.074 7.317 539.788 6.806 246.544 4.185
+930.287 500.780 7.467 542.477 6.808 246.795 4.487
+930.444 504.647 6.555 539.134 7.544 249.847 6.386
+930.601 500.046 6.856 541.831 7.271 251.408 5.227
+930.759 496.970 10.352 539.888 7.697 247.944 4.998
+930.917 502.399 8.590 540.318 7.284 249.289 5.147
+931.074 495.774 8.675 540.203 8.094 250.672 8.040
+931.230 498.317 9.741 540.682 6.973 253.826 7.218
+931.387 496.903 7.743 540.016 8.366 246.458 5.608
+931.544 498.519 7.308 541.790 7.632 248.074 5.923
+931.702 503.565 6.537 539.008 7.736 262.740 5.510
+931.861 495.285 6.345 540.930 6.906 252.407 11.405
+932.018 500.152 10.621 541.669 8.457 237.574 8.138
+932.175 498.741 7.491 539.066 7.247 250.375 7.377
+932.332 506.357 9.964 541.720 6.486 261.543 4.373
+932.490 499.743 6.169 542.707 6.072 242.625 5.311
+932.648 501.377 7.009 541.977 7.843 244.976 6.441
+932.805 501.153 7.318 540.249 7.679 254.409 5.398
+932.962 501.921 7.072 542.832 7.718 248.524 4.651
+933.119 499.349 8.354 541.208 7.116 252.365 6.262
+933.277 494.233 6.532 537.612 6.838 251.163 5.396
+933.435 500.702 6.722 539.826 8.977 246.411 7.492
+933.592 506.937 6.998 543.288 8.744 247.924 6.517
+933.749 506.689 6.871 543.702 8.267 248.349 7.942
+933.905 505.106 6.741 541.707 8.264 249.773 5.185
+934.062 505.031 7.473 541.057 7.338 250.147 5.048
+934.220 503.710 7.357 542.310 7.155 241.691 5.015
+934.377 501.747 7.643 539.193 7.317 256.586 6.874
+934.535 497.927 7.076 541.611 8.500 254.365 5.736
+934.693 501.539 7.059 540.986 6.817 250.713 4.794
+934.851 505.085 6.830 541.739 6.493 249.797 4.920
+935.008 504.960 6.906 542.117 7.582 245.467 7.964
+935.165 505.969 7.122 541.601 9.967 245.584 7.220
+935.322 505.879 7.703 540.416 7.281 256.515 7.056
+935.480 506.258 6.430 541.754 9.471 249.765 5.155
+935.637 508.602 6.384 542.787 7.302 241.557 4.902
+935.795 507.876 7.263 539.697 8.022 251.565 4.858
+935.951 510.228 6.643 541.107 6.979 256.485 5.053
+936.110 502.212 6.546 541.551 6.814 243.024 10.410
+936.267 497.402 11.652 542.025 6.496 240.250 6.297
+936.425 502.434 8.986 541.020 7.044 261.602 7.100
+936.582 498.374 7.020 539.820 7.159 258.516 5.801
+936.740 502.303 6.662 542.238 7.545 244.645 6.072
+936.897 509.393 7.587 540.732 7.524 245.586 4.172
+937.056 509.274 6.626 540.507 7.373 253.945 5.936
+937.214 514.792 8.050 542.085 8.055 251.859 8.196
+937.370 512.407 9.375 543.910 7.822 232.508 5.233
+937.527 507.984 8.738 542.389 8.275 245.285 5.255
+937.685 505.859 7.841 538.193 10.155 258.932 8.743
+937.841 503.768 7.107 541.701 8.226 255.279 4.681
+937.998 498.527 6.439 542.117 7.482 241.012 6.032
+938.157 501.615 8.635 541.041 6.903 252.950 7.908
+938.314 505.266 6.306 541.250 7.737 258.759 4.225
+938.472 506.232 6.749 539.752 7.533 249.017 6.867
+938.630 508.892 7.495 542.407 8.866 243.670 8.780
+938.786 510.748 7.424 541.204 8.593 247.776 5.844
+938.943 512.927 6.908 541.132 9.776 251.067 6.378
+939.100 512.879 6.988 541.431 7.542 247.030 5.460
+939.258 510.268 7.408 543.134 8.250 247.200 5.506
+939.415 504.892 6.630 540.771 7.855 247.402 4.730
+939.574 506.399 6.244 542.017 6.470 252.214 4.898
+939.732 502.624 8.125 540.590 10.530 257.652 7.731
+939.889 505.466 6.535 541.176 7.352 251.186 7.118
+940.046 503.304 6.303 539.621 9.361 244.321 6.738
+940.204 504.443 6.897 540.186 8.450 251.043 6.693
+940.361 509.534 6.434 539.381 7.617 257.320 6.172
+940.519 509.485 6.649 540.223 6.405 246.723 4.375
+940.676 507.784 6.361 540.772 7.318 240.507 4.432
+940.834 507.727 6.334 541.147 7.487 254.315 5.616
+940.993 513.447 6.749 540.741 8.048 254.083 6.836
+941.150 512.914 7.667 541.117 9.375 239.450 5.287
+941.308 507.169 8.208 542.691 8.214 239.164 5.641
+941.465 506.201 7.432 538.976 8.321 256.691 6.547
+941.623 504.562 6.973 539.689 6.560 258.596 7.089
+941.780 500.975 8.156 539.936 8.193 249.116 6.887
+941.937 504.259 7.034 542.189 7.833 245.441 5.869
+942.094 505.352 7.698 540.921 7.961 251.444 5.581
+942.251 507.093 6.563 539.309 8.352 256.764 4.555
+942.408 511.100 6.770 541.343 10.066 251.107 7.245
+942.565 510.671 7.742 540.583 10.800 245.461 7.341
+942.721 510.446 8.997 540.945 8.444 244.724 5.637
+942.879 510.834 7.969 541.889 10.752 251.157 8.293
+943.035 510.078 7.115 541.448 6.871 254.511 5.158
+943.193 509.260 6.824 542.524 7.401 240.285 5.406
+943.351 504.042 6.517 541.635 7.889 246.172 5.160
+943.508 504.370 9.050 539.436 6.978 259.331 6.617
+943.666 506.203 7.544 540.064 7.145 256.143 4.834
+943.823 502.182 8.454 541.980 7.723 241.581 5.232
+943.981 505.121 9.011 541.049 8.207 245.415 7.220
+944.137 507.241 6.633 540.350 6.366 255.214 3.696
+944.296 504.972 6.539 539.113 8.706 250.782 8.330
+944.452 509.499 7.264 541.261 8.386 247.797 5.890
+944.610 509.945 6.912 541.122 8.719 242.307 6.370
+944.767 510.419 8.415 542.431 10.874 245.663 8.851
+944.924 511.324 8.088 541.014 6.869 258.436 4.747
+945.082 514.563 7.160 541.840 7.684 247.634 10.571
+945.240 499.265 9.392 541.568 7.851 239.186 7.565
+945.396 500.272 7.362 540.355 8.206 249.301 10.842
+945.554 502.542 6.625 539.733 7.525 261.053 4.481
+945.712 503.505 6.927 539.237 9.157 255.490 6.384
+945.870 506.135 6.889 542.412 8.169 251.264 4.916
+946.026 513.241 7.524 541.574 8.815 239.802 5.110
+946.183 514.402 5.998 540.355 7.570 247.348 3.844
+946.341 509.414 6.634 538.763 6.600 249.993 5.465
+946.499 514.914 6.584 543.267 7.454 243.269 6.973
+946.656 513.319 8.317 542.772 7.449 238.042 8.635
+946.814 512.003 7.155 538.387 7.580 254.030 5.232
+946.973 510.260 6.362 539.983 8.113 258.850 5.925
+947.131 503.332 7.940 542.219 8.163 242.178 6.761
+947.286 506.513 7.442 541.652 7.718 247.901 5.844
+947.443 505.395 6.072 540.186 6.958 255.799 5.018
+947.602 504.534 6.796 539.271 8.783 257.048 7.848
+947.759 506.315 7.147 542.412 8.926 248.840 6.638
+947.915 508.843 6.894 541.344 8.847 241.918 7.730
+948.072 516.458 7.686 541.303 10.065 244.459 7.488
+948.228 519.804 8.724 541.813 9.161 248.504 6.921
+948.385 520.028 7.130 543.018 8.063 247.125 6.185
+948.542 516.190 7.399 543.370 7.893 242.021 5.326
+948.700 510.921 6.859 540.453 6.914 249.070 4.561
+948.857 504.909 6.918 541.334 7.542 253.220 4.400
+949.015 501.149 7.165 541.513 6.628 258.212 4.916
+949.173 503.271 6.760 539.675 6.940 250.672 5.099
+949.330 505.212 6.282 541.266 7.139 249.346 5.770
+949.488 505.092 6.094 541.022 7.537 250.243 4.402
+949.646 507.780 6.088 539.430 7.692 252.172 4.432
+949.804 510.747 6.525 542.394 7.825 250.991 6.325
+949.962 512.407 8.571 541.634 13.332 246.059 10.115
+950.118 511.684 6.758 540.486 9.028 244.480 4.351
+950.275 513.846 7.351 542.414 8.735 244.144 5.952
+950.432 512.398 9.159 541.494 8.081 251.351 5.526
+950.590 513.994 7.487 543.175 8.245 251.943 6.135
+950.748 508.909 7.160 543.371 7.977 247.969 5.421
+950.905 503.679 8.584 540.273 10.743 243.029 7.573
+951.062 501.126 6.828 540.972 8.120 247.680 5.216
+951.219 502.181 7.731 540.359 7.549 261.716 6.395
+951.377 503.511 7.225 540.303 8.246 259.027 4.281
+951.535 505.225 8.561 540.603 8.829 237.690 6.302
+951.693 507.352 6.328 541.516 8.423 246.156 4.684
+951.850 510.653 8.009 540.335 8.276 258.271 5.096
+952.008 512.936 6.161 541.503 7.116 252.942 4.543
+952.166 509.039 7.709 541.725 6.754 239.839 4.672
+952.324 511.530 6.948 541.807 7.622 241.748 7.204
+952.481 510.695 6.602 541.328 7.497 252.737 4.903
+952.639 511.716 6.868 539.403 8.286 256.267 6.262
+952.797 510.677 7.650 541.724 7.260 248.732 6.498
+952.954 507.626 7.641 542.737 9.613 238.497 7.346
+953.112 506.206 7.597 542.487 8.331 252.545 6.335
+953.270 503.292 6.187 537.964 6.204 265.925 6.718
+953.428 507.202 8.208 539.989 7.204 252.089 6.611
+953.585 506.912 7.322 542.389 8.156 243.200 7.550
+953.742 508.749 6.430 541.393 8.099 249.812 5.866
+953.899 510.907 6.979 540.874 7.802 252.038 6.484
+954.057 512.209 8.250 540.758 7.245 252.100 5.854
+954.214 510.912 9.607 541.807 10.640 244.931 7.029
+954.371 509.299 7.499 540.438 7.349 244.969 4.652
+954.529 509.263 6.949 540.364 6.973 247.399 4.794
+954.686 508.362 7.198 541.333 8.353 255.514 6.143
+954.845 507.033 6.463 540.633 7.331 257.245 4.628
+955.003 502.270 6.778 542.036 6.935 241.052 4.264
+955.161 503.742 7.310 541.090 7.540 244.370 6.048
+955.318 505.327 7.417 541.501 7.868 261.023 5.572
+955.477 507.883 6.311 540.095 8.456 258.570 5.174
+955.635 507.038 7.105 542.061 7.478 242.025 4.148
+955.793 506.510 6.840 541.580 6.449 241.900 4.800
+955.951 507.195 6.030 540.065 6.926 255.679 5.091
+956.110 507.931 6.324 540.610 7.529 254.436 4.485
+956.268 507.169 7.267 540.076 6.585 247.504 4.657
+956.425 503.931 6.401 541.450 6.311 243.565 4.501
+956.583 503.679 6.288 541.064 8.255 252.395 5.707
+956.742 505.996 6.190 540.800 6.837 258.543 4.439
+956.900 503.850 6.394 540.778 7.493 250.775 5.027
+957.058 503.638 5.848 541.187 7.620 243.437 5.505
+957.215 503.316 6.654 541.091 6.753 248.454 4.771
+957.372 505.043 12.232 540.431 7.410 255.224 5.308
+957.530 502.800 7.149 540.194 6.664 253.212 3.841
+957.687 504.768 7.091 541.042 6.759 246.822 4.545
+957.844 504.797 6.794 540.310 6.473 244.458 4.363
+958.002 505.708 5.987 541.743 6.528 250.024 3.624
+958.160 505.477 6.182 540.477 6.961 254.200 4.111
+958.317 502.374 6.221 541.214 6.754 251.832 4.274
+958.474 502.363 6.373 541.532 6.799 246.408 5.912
+958.631 503.803 7.650 541.375 6.592 248.714 4.442
+958.788 501.988 7.934 542.253 7.298 250.427 6.801
+958.944 501.119 7.007 540.812 7.169 251.704 4.459
+959.102 499.241 6.959 541.478 8.837 254.507 5.933
+959.259 501.912 5.642 540.854 7.225 253.285 4.579
+959.417 502.439 6.429 541.058 9.576 241.052 7.333
+959.574 502.304 9.869 542.390 9.534 244.390 7.000
+959.731 501.173 6.941 540.493 7.247 257.263 4.422
+959.889 502.891 6.792 540.915 8.677 258.672 6.380
+960.047 500.918 8.471 541.379 7.527 239.906 6.692
+960.204 501.859 6.334 540.693 6.643 243.879 5.748
+960.362 500.978 7.904 539.767 7.743 258.218 4.818
+960.520 502.079 7.102 540.527 7.380 257.702 4.807
+960.677 500.120 7.674 540.065 6.634 246.967 4.705
+960.835 499.671 7.772 542.050 7.566 244.009 5.948
+960.991 500.446 6.292 543.410 7.853 250.100 4.820
+961.148 499.324 7.105 539.974 7.134 254.321 4.554
+961.305 500.113 8.336 541.329 11.500 251.223 10.404
+961.462 501.111 6.940 541.483 8.817 249.792 7.283
+961.619 499.961 7.599 543.414 8.299 250.327 5.161
+961.776 499.579 7.701 540.824 7.470 250.283 5.360
+961.934 498.845 8.778 540.538 9.089 244.552 6.559
+962.091 501.068 6.628 540.525 9.136 251.115 5.723
+962.248 500.750 10.214 541.385 7.028 257.221 6.650
+962.406 498.587 6.363 542.093 6.909 248.342 5.816
+962.563 498.185 6.220 541.891 6.672 244.523 4.624
+962.721 500.531 6.397 539.509 6.996 253.885 4.620
+962.879 498.905 6.730 541.375 7.822 256.158 4.103
+963.037 500.239 6.546 541.723 8.333 248.591 6.768
+963.194 500.782 6.497 541.017 8.094 250.985 4.836
+963.351 501.317 8.198 541.280 6.997 249.639 5.106
+963.508 499.243 7.249 541.692 6.545 245.046 3.541
+963.666 500.382 7.158 543.027 6.425 249.190 4.300
+963.824 504.953 5.963 540.190 7.083 262.191 5.282
+963.983 500.349 7.006 541.421 7.255 250.641 4.044
+964.140 497.893 9.041 541.434 8.133 237.306 4.810
+964.296 497.299 9.245 542.134 7.371 244.983 4.674
+964.455 501.563 7.315 541.651 7.831 261.359 4.499
+964.612 498.155 6.645 541.056 6.866 256.633 4.421
+964.770 496.221 8.662 540.560 7.800 242.796 4.880
+964.928 497.832 7.124 541.825 7.862 244.897 4.035
+965.085 498.898 7.228 542.328 6.807 258.979 4.656
+965.243 499.639 6.404 541.963 7.319 254.759 4.954
+965.400 500.256 6.581 540.139 7.524 250.537 5.818
+965.557 500.702 9.059 542.731 7.858 249.835 4.298
+965.714 499.217 8.191 541.797 8.051 245.938 5.662
+965.871 499.262 6.941 543.118 7.252 250.149 4.530
+966.028 502.682 7.488 542.591 7.454 254.071 3.916
+966.186 499.996 6.488 541.356 8.280 257.020 7.956
+966.343 496.540 10.975 544.573 7.847 245.390 5.352
+966.501 492.915 12.608 544.825 7.466 236.193 4.772
+966.658 499.779 8.004 542.718 7.348 256.821 5.060
+966.816 498.537 8.185 544.787 8.092 264.118 4.841
+966.973 496.775 6.900 546.508 7.550 250.941 6.172
+967.131 494.537 8.388 548.825 7.383 239.539 5.142
+967.288 495.885 7.925 549.838 8.903 249.975 4.847
+967.445 498.698 6.735 545.958 8.027 265.349 5.588
+967.604 499.497 7.145 542.309 7.826 257.293 6.106
+967.762 498.595 7.064 545.893 6.962 241.312 5.076
+967.919 499.085 7.081 547.449 6.837 243.993 4.589
+968.076 498.880 6.602 545.374 7.293 251.929 6.078
+968.234 501.148 6.854 544.413 7.051 256.879 5.145
+968.393 499.881 6.135 545.904 8.096 248.498 7.138
+968.549 505.118 6.865 548.179 7.088 255.165 6.096
+968.707 501.151 6.714 547.901 6.697 251.951 6.827
+968.864 496.611 6.257 548.729 6.831 244.989 4.751
+969.022 494.866 6.411 546.207 7.225 250.819 4.071
+969.180 498.138 7.031 546.312 6.769 258.378 4.025
+969.338 494.561 6.257 547.903 6.701 253.883 4.510
+969.496 492.755 6.876 550.359 7.134 248.418 5.527
+969.653 499.387 6.997 548.743 7.408 256.444 6.339
+969.811 498.323 8.337 549.067 9.142 252.714 6.238
+969.968 500.793 6.762 550.890 7.075 243.397 4.905
+970.125 502.648 6.682 548.339 7.335 247.973 5.156
+970.284 503.556 8.302 550.253 8.189 253.249 5.508
+970.441 502.775 8.597 549.912 8.754 248.862 6.811
+970.598 503.817 8.219 552.139 8.830 252.998 4.837
+970.756 500.918 9.385 549.901 9.349 251.630 10.645
+970.913 493.089 6.626 549.659 8.000 248.076 7.525
+971.069 493.850 7.522 549.856 6.316 250.470 5.468
+971.228 500.218 6.455 551.088 6.651 264.334 4.522
+971.386 497.152 5.864 550.950 6.958 257.693 4.579
+971.544 495.521 6.916 553.079 6.876 246.026 4.644
+971.701 496.435 6.161 553.300 6.946 252.110 4.400
+971.860 499.584 5.978 550.493 6.501 260.011 3.955
+972.018 502.365 5.881 551.034 6.327 251.540 4.190
+972.176 503.063 7.982 551.120 6.346 249.025 5.633
+972.333 503.620 7.395 552.281 7.887 245.670 4.250
+972.490 502.926 6.630 551.492 6.722 242.176 4.199
+972.647 501.859 6.787 551.274 6.457 254.031 3.747
+972.806 498.928 6.502 549.692 7.854 260.850 3.963
+972.964 497.279 6.297 550.047 7.853 254.908 5.341
+973.122 499.972 6.933 553.570 7.581 242.929 8.014
+973.279 500.289 6.613 550.795 6.649 249.139 4.708
+973.437 499.562 6.578 549.578 6.797 258.521 4.291
+973.595 500.115 5.995 549.465 7.220 250.875 4.177
+973.753 496.851 6.715 552.884 7.419 244.798 5.571
+973.911 498.518 7.194 549.928 6.999 250.277 4.335
+974.069 501.795 5.779 549.969 7.138 258.072 3.290
+974.229 501.517 6.189 548.639 6.386 254.160 3.575
+974.387 499.015 6.629 548.926 6.705 249.471 4.624
+974.545 498.380 5.951 548.509 8.084 249.864 4.971
+974.702 500.843 6.564 548.915 6.344 245.938 3.734
+974.861 502.858 6.593 547.939 6.740 253.309 3.981
+975.019 499.008 6.799 546.839 7.480 259.293 4.781
+975.176 496.650 6.757 547.808 7.918 250.562 5.949
+975.333 498.596 6.855 550.078 8.125 243.305 5.453
+975.491 503.225 6.513 548.100 6.757 254.333 4.609
+975.650 501.892 6.373 548.931 7.633 258.383 4.960
+975.809 499.268 8.740 547.339 6.669 246.373 4.368
+975.965 496.862 7.303 548.383 8.091 244.193 5.580
+976.122 496.968 6.473 548.603 6.390 255.271 4.040
+976.281 499.739 6.154 547.046 6.724 262.622 4.943
+976.439 499.837 8.317 546.900 7.152 250.726 4.530
+976.596 499.348 6.239 548.369 7.193 238.047 4.046
+976.754 501.433 6.977 548.533 6.214 248.540 4.443
+976.912 502.464 7.569 545.125 7.780 262.805 6.207
+977.070 498.864 5.788 546.691 7.075 256.218 4.421
+977.228 495.838 6.796 548.826 6.570 239.072 4.358
+977.385 497.758 7.096 548.768 7.377 247.270 6.685
+977.543 501.327 7.052 546.797 6.587 263.742 4.307
+977.701 500.103 7.093 545.898 7.860 253.517 5.542
+977.858 500.401 6.047 548.069 7.952 243.445 5.018
+978.015 502.724 6.766 548.440 8.004 248.144 6.132
+978.173 502.327 7.827 546.074 6.889 256.241 7.152
+978.330 501.393 6.239 544.840 6.341 260.102 4.011
+978.489 498.623 6.886 546.718 7.252 250.541 5.230
+978.646 498.046 8.697 548.167 6.480 246.795 4.452
+978.803 499.350 6.157 546.311 6.466 246.357 4.143
+978.961 502.693 5.946 545.263 6.320 255.763 4.057
+979.119 502.547 6.603 546.202 6.437 251.147 4.377
+979.277 499.785 7.913 547.612 6.586 243.261 4.489
+979.434 503.917 6.344 544.556 6.456 252.742 3.587
+979.593 502.149 6.199 545.425 6.537 251.747 3.999
+979.750 499.491 6.148 545.364 6.555 251.287 3.951
+979.908 498.614 7.474 546.393 7.854 252.742 5.511
+980.065 499.936 6.124 547.483 7.665 250.927 3.985
+980.222 499.799 5.813 547.234 6.346 252.759 4.370
+980.380 499.088 6.407 545.662 7.635 252.147 4.688
+980.538 499.540 7.039 546.086 8.578 248.421 6.155
+980.695 504.425 6.802 546.331 7.122 255.644 4.276
+980.853 503.124 6.538 546.363 6.148 251.236 3.974
+981.010 499.141 5.975 546.093 6.320 243.712 3.439
+981.167 498.631 8.654 545.361 8.315 252.387 5.477
+981.326 503.476 6.342 544.903 6.148 258.913 4.327
+981.485 500.594 6.839 546.509 7.083 249.549 4.240
+981.642 500.215 6.977 547.025 6.546 238.565 4.056
+981.799 501.502 6.323 545.850 6.833 253.875 4.582
+981.958 500.475 6.039 545.098 6.968 267.008 3.964
+982.117 500.184 5.801 544.901 6.688 246.980 6.016
+982.275 497.791 6.222 547.249 6.771 236.769 4.598
+982.432 503.067 6.607 545.402 6.761 253.787 4.246
+982.591 504.000 8.120 544.294 6.627 262.907 5.440
+982.750 499.730 7.515 543.393 6.784 251.869 7.032
+982.906 500.907 6.226 546.293 7.026 239.248 5.941
+983.064 502.149 7.070 544.723 6.475 237.052 5.790
+983.223 504.271 5.810 541.187 6.803 266.170 4.076
+983.382 501.702 6.123 544.241 6.623 264.511 4.390
+983.540 495.667 6.167 547.262 6.779 238.405 4.096
+983.698 497.426 6.508 545.342 6.965 238.534 4.834
+983.855 503.284 8.526 544.343 8.298 262.755 5.293
+984.014 501.692 6.325 543.653 6.935 261.637 4.362
+984.172 499.686 6.649 546.606 6.049 242.586 4.397
+984.330 500.646 6.523 547.866 6.046 245.485 4.079
+984.488 504.466 9.010 548.088 6.576 256.434 7.909
+984.645 502.604 6.332 546.000 6.527 256.594 4.488
+984.803 500.476 6.101 546.590 6.804 244.765 3.901
+984.961 497.574 7.526 546.515 6.445 252.837 5.819
+985.118 500.285 6.809 546.125 7.283 252.588 6.617
+985.275 498.012 6.149 546.111 6.247 247.505 6.631
+985.433 497.050 6.106 545.631 6.245 253.645 4.155
+985.592 503.000 6.278 546.226 6.247 266.436 4.320
+985.751 499.820 6.366 546.552 7.021 252.154 4.852
+985.908 500.908 6.838 544.745 6.273 234.811 5.921
+986.066 502.629 7.034 546.727 6.785 243.938 3.921
+986.224 498.506 6.800 544.927 6.365 255.369 6.582
+986.382 501.435 7.099 544.759 6.459 263.663 4.032
+986.539 504.534 7.242 546.657 6.184 244.216 5.585
+986.697 496.755 7.244 546.666 6.678 242.342 4.387
+986.855 497.327 6.647 543.666 7.161 265.363 8.572
+987.013 500.073 6.624 544.186 6.493 256.993 6.182
+987.171 500.290 10.932 547.581 6.430 244.699 7.318
+987.327 501.022 7.596 546.395 7.065 245.977 4.898
+987.484 500.410 8.200 545.284 6.571 253.279 4.211
+987.642 498.794 6.794 544.722 7.945 253.302 4.439
+987.799 498.648 8.534 543.787 7.699 252.303 4.612
+987.955 498.246 6.991 547.307 7.343 244.053 3.918
+988.113 504.052 6.170 545.023 7.401 250.810 4.121
+988.271 500.730 6.519 543.300 7.426 253.448 4.336
+988.429 494.467 6.362 543.683 7.270 249.694 4.985
+988.587 492.644 6.816 543.066 7.896 248.676 3.929
+988.744 497.226 8.954 545.760 8.297 256.486 8.300
+988.901 496.882 7.984 543.777 7.655 248.014 5.169
+989.058 494.908 8.206 543.407 7.825 244.750 5.767
+989.215 493.259 6.693 542.444 7.508 254.997 5.529
+989.373 494.622 7.609 542.574 8.284 256.150 5.331
+989.531 494.766 6.322 542.555 7.558 251.761 5.226
+989.689 497.437 6.744 543.785 8.646 246.657 4.254
+989.846 496.864 7.507 546.277 8.811 243.806 5.694
+990.003 493.698 6.323 543.272 8.713 248.978 5.850
+990.161 495.777 7.942 541.972 8.671 251.479 7.792
+990.318 495.587 6.719 542.559 6.700 254.324 6.610
+990.475 492.775 6.769 542.295 7.391 251.373 5.352
+990.633 491.537 7.300 543.313 7.617 254.023 7.473
+990.790 489.885 10.072 542.083 7.702 252.840 7.689
+990.947 490.898 7.718 542.710 7.976 251.018 5.890
+991.105 492.459 6.877 543.707 9.650 250.530 5.103
+991.262 495.544 6.400 541.777 9.711 249.245 5.906
+991.419 494.865 8.379 542.497 8.627 251.252 6.369
+991.577 493.548 7.952 543.015 9.452 255.682 6.263
+991.733 490.625 6.812 543.530 9.111 247.776 7.186
+991.890 494.866 8.312 539.605 8.834 250.607 5.680
+992.046 490.988 7.586 541.496 7.786 252.776 6.306
+992.204 493.399 8.089 542.014 7.463 251.577 5.839
+992.361 493.324 6.510 540.140 7.492 249.405 4.873
+992.519 492.983 6.213 542.801 6.740 248.794 4.887
+992.676 495.659 7.385 542.128 9.305 253.027 6.362
+992.834 493.806 6.896 540.981 7.705 251.720 5.098
+992.992 493.228 8.801 543.399 8.346 249.197 5.603
+993.149 491.692 6.846 543.074 8.665 247.941 7.222
+993.305 494.836 6.869 543.110 8.100 252.129 5.235
+993.462 494.418 6.572 542.521 7.636 251.591 6.672
+993.620 493.154 7.786 543.395 7.256 254.935 4.579
+993.778 492.571 7.835 542.374 9.281 253.599 7.448
+993.933 489.685 8.305 541.703 8.830 248.606 6.366
+994.090 492.136 6.803 543.097 7.952 247.416 4.461
+994.247 498.701 8.411 543.211 7.982 260.344 6.303
+994.404 494.977 8.137 543.932 8.196 254.083 7.308
+994.561 490.809 8.006 545.169 6.683 240.530 5.497
+994.718 493.018 7.714 546.781 7.098 242.035 6.011
+994.877 498.210 6.865 545.027 6.851 272.700 6.374
+995.035 490.122 6.425 547.110 8.431 260.127 5.094
+995.193 485.931 6.483 549.141 6.647 237.261 7.026
+995.350 491.579 7.928 546.391 7.079 251.552 4.202
+995.507 490.975 8.748 546.634 7.089 265.615 6.188
+995.664 490.659 7.542 545.726 7.406 246.856 6.268
+995.822 490.986 12.530 546.317 9.821 242.898 11.496
+995.979 492.389 10.687 549.903 7.324 250.238 5.505
+996.138 491.273 7.339 543.529 8.276 258.222 6.141
+996.296 491.812 7.078 545.615 6.205 257.772 9.270
+996.453 494.638 9.257 547.756 7.770 252.137 7.888
+996.610 486.856 7.439 548.107 6.949 231.891 6.274
+996.768 491.458 6.739 543.541 7.158 252.478 5.491
+996.926 496.974 6.939 548.255 7.411 275.594 5.535
+997.086 487.989 6.630 544.062 7.276 249.125 6.797
+997.243 486.019 9.834 545.580 6.332 233.671 6.634
+997.401 492.840 7.761 544.625 7.705 249.706 10.332
+997.558 497.998 9.047 543.436 7.944 269.207 7.769
+997.715 492.600 6.765 541.514 7.483 252.792 9.979
+997.872 489.556 8.292 546.695 6.671 237.067 6.110
+998.029 495.415 8.079 545.376 7.483 247.000 4.924
+998.187 494.404 7.381 541.903 7.873 257.590 7.301
+998.345 490.354 6.747 543.459 6.626 254.685 6.450
+998.502 489.653 6.535 544.374 7.005 247.426 6.226
+998.660 488.696 7.916 543.483 6.775 240.334 8.767
+998.816 492.747 6.603 538.004 6.683 256.883 4.806
+998.975 493.787 6.072 541.220 7.315 266.018 6.912
+999.133 490.357 6.017 544.462 6.764 243.710 5.584
+999.291 489.193 6.967 544.424 7.284 241.367 7.721
+999.448 494.541 7.914 541.124 7.647 256.433 4.411
+999.606 496.045 7.675 540.701 7.085 261.924 8.895
+999.763 493.820 6.508 543.537 6.366 248.149 5.411
+999.920 492.828 8.152 545.055 6.774 241.061 6.105
+1000.077 496.848 7.893 544.680 7.446 249.890 5.883
+1000.235 491.278 7.539 541.116 7.024 263.148 10.539
+1000.393 491.082 6.758 541.011 7.944 260.181 5.549
+1000.550 488.210 6.187 545.450 6.925 238.151 7.658
+1000.708 487.402 6.847 547.044 7.582 238.771 6.055
+1000.867 495.034 6.153 538.790 7.240 270.327 3.911
+1001.026 492.190 6.256 542.358 6.962 260.073 4.996
+1001.185 490.471 7.357 544.793 7.206 237.440 6.725
+1001.342 497.504 6.131 542.928 6.519 248.964 4.379
+1001.501 498.295 6.756 540.709 7.511 262.449 6.503
+1001.659 492.982 6.547 543.177 7.387 245.104 6.483
+1001.817 491.479 6.438 544.661 7.364 241.051 6.174
+1001.975 494.704 8.803 543.376 8.489 254.570 5.968
+1002.132 496.347 6.920 541.483 7.264 260.595 8.932
+1002.289 491.023 7.059 542.904 8.682 252.486 6.598
+1002.446 489.470 6.223 544.259 7.121 245.214 4.526
+1002.604 489.564 6.424 546.342 8.153 245.932 7.580
+1002.762 496.235 7.132 541.653 6.912 263.449 4.411
+1002.921 494.292 7.399 544.346 7.540 256.484 5.811
+1003.078 489.252 7.321 544.893 6.851 242.484 5.738
+1003.236 493.412 6.719 543.449 6.758 244.534 5.895
+1003.394 495.924 7.339 544.274 7.176 256.675 4.379
+1003.552 493.809 6.434 543.692 7.177 258.156 5.611
+1003.711 490.838 6.798 547.247 6.962 243.431 7.702
+1003.868 489.528 6.624 544.352 7.375 234.894 4.776
+1004.026 495.535 8.372 544.183 6.615 262.708 6.941
+1004.184 494.065 6.347 544.901 7.455 264.487 6.041
+1004.343 486.750 7.277 545.159 7.032 237.504 6.446
+1004.499 485.247 6.195 544.591 6.936 240.735 7.742
+1004.658 495.992 5.804 544.676 6.704 270.957 3.630
+1004.817 489.690 7.859 545.036 6.821 248.899 5.321
+1004.975 486.186 7.129 546.340 6.530 241.159 4.692
+1005.133 494.281 7.770 545.563 7.610 256.421 6.194
+1005.292 492.692 7.017 545.925 7.570 259.624 5.922
+1005.450 488.276 8.265 542.699 6.398 245.226 7.993
+1005.607 493.262 8.199 547.577 7.995 243.742 4.326
+1005.764 496.992 10.833 543.795 7.534 257.277 7.231
+1005.923 494.180 7.085 542.898 6.428 261.792 4.704
+1006.080 495.711 5.873 544.409 7.461 242.177 3.807
+1006.238 491.827 7.190 545.584 7.929 249.671 11.460
+1006.395 490.808 9.596 541.825 9.071 253.596 11.534
+1006.552 483.388 7.076 541.698 6.755 247.515 8.206
+1006.709 487.963 6.169 544.997 7.397 257.115 3.849
+1006.869 491.499 6.963 543.000 6.886 263.031 8.492
+1007.026 492.185 6.805 542.100 7.203 250.050 5.542
+1007.184 494.991 8.698 544.171 8.371 247.200 6.050
+1007.341 499.819 8.219 544.641 6.942 251.382 10.217
+1007.498 501.278 7.015 542.076 7.512 255.343 12.925
+1007.655 495.732 7.090 543.280 6.798 250.103 9.328
+1007.812 490.947 6.240 545.262 7.152 239.521 3.615
+1007.970 491.859 6.400 543.832 7.471 249.145 5.481
+1008.129 497.098 6.003 541.718 6.488 264.831 5.530
+1008.287 490.541 7.318 545.747 6.248 245.578 5.706
+1008.445 488.285 7.716 544.457 7.127 240.365 6.042
+1008.604 494.842 7.247 543.224 8.129 268.833 6.063
+1008.763 492.538 7.835 543.702 6.701 260.588 4.859
+1008.920 487.865 7.730 543.697 7.185 247.345 3.932
+1009.077 493.238 7.084 546.717 7.247 244.953 5.708
+1009.235 490.462 8.225 544.067 6.911 245.809 5.243
+1009.394 498.074 7.076 542.480 6.354 267.168 7.222
+1009.551 493.220 7.729 545.464 7.639 254.131 6.548
+1009.709 489.752 7.103 546.024 6.894 237.511 4.299
+1009.866 493.207 5.986 541.750 6.661 245.785 4.606
+1010.024 493.822 9.485 542.427 7.300 259.587 4.924
+1010.183 490.968 7.504 544.174 6.863 262.505 4.947
+1010.340 487.529 7.163 543.711 8.366 245.545 6.490
+1010.498 485.005 8.701 543.337 7.726 241.065 4.336
+1010.656 490.930 5.966 543.043 7.362 263.220 6.055
+1010.816 485.399 6.644 541.690 7.283 259.342 4.139
+1010.974 484.744 6.333 543.156 7.234 254.673 6.076
+1011.133 489.467 6.734 543.701 7.093 255.416 4.645
+1011.290 492.024 7.922 544.467 7.863 248.254 6.339
+1011.446 495.990 7.590 541.894 7.469 252.732 6.320
+1011.605 496.799 9.521 544.669 10.227 251.497 8.118
+1011.761 492.868 7.313 546.586 7.405 237.474 6.841
+1011.918 492.218 9.538 542.485 9.883 243.694 4.845
+1012.076 490.692 8.317 542.324 10.503 262.386 5.614
+1012.235 485.036 7.747 543.233 8.887 262.173 5.512
+1012.392 485.800 8.682 541.852 9.637 250.221 5.883
+1012.549 491.298 7.034 543.748 9.192 255.452 6.822
+1012.707 495.513 6.858 541.777 7.754 251.444 7.536
+1012.863 495.405 7.280 542.347 7.961 244.234 5.085
+1013.021 499.214 8.124 543.623 9.381 251.262 6.564
+1013.178 498.512 7.280 544.136 8.410 251.732 6.844
+1013.335 500.165 7.120 542.141 8.158 248.947 5.580
+1013.493 497.841 7.917 541.351 6.792 251.659 4.356
+1013.649 494.028 7.139 542.763 7.305 248.336 5.398
+1013.806 493.930 7.303 543.767 7.845 246.943 5.837
+1013.963 497.639 6.901 541.957 7.038 255.789 5.747
+1014.122 495.266 8.548 542.669 6.548 258.657 5.266
+1014.279 494.522 11.442 544.366 9.292 246.356 5.530
+1014.436 494.625 7.978 544.233 8.551 245.043 6.057
+1014.594 500.646 6.691 545.002 7.490 258.530 4.469
+1014.753 498.116 8.868 544.870 6.713 246.805 5.262
+1014.910 502.701 8.502 543.688 7.896 245.328 6.656
+1015.068 503.867 7.310 543.896 7.401 258.103 7.660
+1015.224 496.868 9.123 546.589 7.012 248.611 5.860
+1015.381 492.328 9.791 543.966 9.812 241.016 5.710
+1015.539 501.713 5.870 542.449 6.404 257.500 6.655
+1015.696 498.627 7.883 543.634 6.936 257.745 8.153
+1015.853 496.426 8.783 543.206 6.755 255.627 7.107
+1016.010 496.964 6.887 547.522 6.452 236.666 6.186
+1016.167 500.969 6.488 547.225 6.980 247.746 4.112
+1016.325 499.519 9.213 544.012 6.683 267.677 7.208
+1016.482 502.715 7.553 545.660 6.948 250.896 4.886
+1016.639 504.157 7.591 549.846 6.593 238.569 4.143
+1016.796 505.521 7.925 543.838 7.043 249.745 4.354
+1016.953 508.045 6.226 544.978 8.333 251.617 4.819
+1017.111 506.670 6.262 545.299 7.787 248.616 4.649
+1017.269 503.906 6.430 547.183 7.294 244.686 4.106
+1017.427 499.189 6.513 543.061 6.750 241.136 4.658
+1017.585 504.071 8.474 541.030 8.016 266.631 7.197
+1017.744 502.450 7.235 543.870 6.791 260.066 5.958
+1017.902 497.484 6.387 544.728 7.974 245.040 6.386
+1018.059 513.584 6.961 545.117 6.396 244.640 4.898
+1018.218 509.645 7.292 548.651 6.743 244.076 4.634
+1018.376 510.426 7.277 543.976 6.455 255.380 4.319
+1018.533 507.584 5.970 545.679 6.722 248.653 5.491
+1018.691 506.545 6.515 544.986 7.783 248.476 4.469
+1018.849 509.845 8.407 542.289 7.036 256.194 4.456
+1019.006 510.328 7.426 544.273 7.643 250.671 3.995
+1019.164 509.693 9.394 544.862 7.781 247.476 5.785
+1019.321 508.336 6.776 545.388 6.761 252.594 3.360
+1019.479 509.643 5.978 544.573 7.636 248.865 6.687
+1019.636 510.176 6.112 545.285 6.637 246.978 7.463
+1019.794 507.201 6.446 547.002 6.622 253.469 3.693
+1019.952 508.402 7.108 542.430 7.551 255.244 6.713
+1020.109 510.204 8.012 545.414 7.225 246.452 7.089
+1020.265 511.572 8.280 543.484 7.004 248.764 5.010
+1020.422 510.005 5.840 545.044 7.198 248.797 4.216
+1020.580 513.540 6.279 545.690 6.293 252.977 4.483
+1020.739 508.395 7.889 545.036 7.392 249.799 4.898
+1020.897 512.004 6.384 542.710 8.166 249.678 5.577
+1021.055 514.290 6.576 547.957 6.844 252.686 4.956
+1021.214 514.212 8.674 545.249 8.574 250.636 6.003
+1021.372 503.462 8.843 543.942 9.300 248.456 8.029
+1021.528 510.484 7.652 545.509 7.872 248.524 7.813
+1021.685 513.184 6.072 545.255 6.316 251.805 4.279
+1021.844 512.721 6.474 544.132 6.558 252.258 3.419
+1022.001 511.317 6.440 545.521 6.863 245.412 4.315
+1022.159 516.893 7.012 545.585 6.212 252.164 3.853
+1022.317 515.978 9.354 544.745 6.331 251.031 3.874
+1022.475 513.629 6.537 542.837 7.029 250.940 6.508
+1022.633 512.536 7.133 546.118 6.069 245.879 3.689
+1022.791 512.995 7.555 544.331 7.424 251.118 6.178
+1022.950 512.690 7.350 544.083 7.001 252.451 4.958
+1023.107 512.016 6.651 543.650 6.796 248.814 5.434
+1023.265 520.050 8.494 545.076 7.974 245.468 4.224
+1023.421 519.850 6.881 544.770 6.690 249.154 3.773
+1023.580 518.958 9.200 544.737 6.302 247.301 7.259
+1023.737 518.909 7.649 545.747 6.681 249.533 4.421
+1023.895 517.039 6.388 544.167 6.228 247.115 4.125
+1024.054 514.870 6.378 544.881 7.260 248.991 5.651
+1024.213 514.018 6.343 543.588 6.424 251.549 3.549
+1024.371 514.500 6.897 545.165 6.579 252.475 4.563
+1024.529 514.875 7.771 543.451 6.675 253.004 5.879
+1024.688 517.208 6.693 545.694 7.624 249.280 4.325
+1024.845 521.252 6.443 543.757 7.091 249.492 5.023
+1025.003 517.602 7.071 543.497 6.415 244.774 8.037
+1025.160 520.236 7.777 544.965 7.846 246.857 6.157
+1025.317 516.822 6.356 545.409 6.848 246.258 4.062
+1025.475 520.558 6.684 545.054 7.233 250.452 3.330
+1025.633 515.455 6.864 543.830 7.040 252.954 3.836
+1025.791 510.454 7.027 544.468 6.585 251.349 3.798
+1025.949 512.824 6.264 542.974 7.067 252.283 4.112
+1026.107 515.118 6.487 543.959 7.439 252.162 3.926
+1026.264 515.461 7.513 543.759 7.542 250.801 4.998
+1026.422 518.404 7.066 546.047 7.443 245.568 6.515
+1026.580 518.724 6.229 547.390 7.184 242.545 4.755
+1026.738 522.057 6.760 543.803 7.981 259.725 7.773
+1026.896 522.050 7.758 543.408 7.448 249.967 8.130
+1027.052 517.910 8.112 545.064 6.978 239.499 8.931
+1027.209 515.099 6.774 544.780 6.516 246.634 4.527
+1027.367 516.901 6.061 542.857 6.654 257.966 4.330
+1027.526 514.539 6.273 543.328 6.654 251.039 3.707
+1027.685 513.715 6.376 543.843 7.580 246.380 4.158
+1027.843 514.347 6.090 543.978 7.180 249.863 3.667
+1028.002 514.313 6.731 544.309 7.443 254.738 5.455
+1028.160 515.873 6.165 543.523 7.543 250.357 5.056
+1028.319 518.428 8.244 545.725 7.977 240.773 6.083
+1028.475 520.984 6.434 544.417 7.843 246.517 5.613
+1028.634 518.969 5.953 541.504 7.602 255.225 5.061
+1028.792 519.099 7.454 543.095 6.736 250.282 4.056
+1028.950 516.311 6.641 544.091 9.516 243.372 5.114
+1029.107 516.023 7.371 543.541 8.205 249.273 5.323
+1029.266 515.410 6.608 540.355 12.050 254.372 7.263
+1029.423 515.454 7.665 542.673 8.745 253.053 5.669
+1029.581 515.454 6.398 544.266 8.948 245.150 4.698
+1029.738 516.974 8.366 541.822 7.865 246.821 5.167
+1029.897 515.979 6.552 541.858 8.661 251.478 5.420
+1030.055 513.999 6.770 542.468 7.815 253.254 4.766
+1030.213 517.870 6.228 541.864 10.355 248.992 6.280
+1030.372 519.728 9.469 543.618 9.610 245.549 6.655
+1030.529 511.017 9.318 543.486 9.396 252.545 8.784
+1030.686 516.580 7.435 542.054 7.324 256.055 5.038
+1030.844 515.955 6.244 545.960 8.529 243.760 5.017
+1031.002 515.879 8.314 544.569 7.763 247.617 4.744
+1031.160 515.568 6.022 544.345 9.859 251.296 5.141
+1031.318 519.925 6.975 542.233 7.173 254.982 4.606
+1031.476 515.819 7.846 545.752 9.215 243.059 5.430
+1031.633 518.348 7.385 543.667 9.745 247.370 5.834
+1031.791 514.123 7.787 544.506 8.294 249.443 5.450
+1031.948 518.031 6.140 547.285 6.397 250.814 4.377
+1032.106 517.830 6.318 545.992 7.098 249.088 3.807
+1032.265 513.168 8.704 544.300 8.350 247.090 6.226
+1032.423 514.231 6.456 544.763 6.689 251.740 3.586
+1032.581 516.712 7.567 544.387 8.672 249.817 6.235
+1032.740 514.657 5.997 544.443 6.201 246.238 3.474
+1032.898 518.676 6.123 543.334 7.114 249.722 4.642
+1033.057 518.496 6.681 544.143 5.947 254.807 4.836
+1033.215 516.255 6.410 544.311 6.477 248.358 3.479
+1033.373 515.422 6.227 544.003 7.604 246.553 5.011
+1033.531 517.094 6.732 545.740 8.285 251.285 6.163
+1033.690 514.971 6.483 544.157 7.931 252.092 6.767
+1033.848 518.439 6.600 545.031 6.252 248.180 5.770
+1034.006 519.094 7.707 545.550 8.199 248.831 4.040
+1034.163 517.740 6.877 542.065 7.081 250.598 4.948
+1034.321 518.797 5.958 546.080 6.941 252.126 3.817
+1034.479 519.428 8.626 543.180 8.616 243.811 6.327
+1034.636 516.524 6.087 543.411 7.343 248.668 5.429
+1034.795 518.985 7.320 542.474 8.887 257.906 6.377
+1034.953 519.329 6.435 543.554 7.993 250.329 5.145
+1035.111 517.333 7.054 545.385 7.154 240.163 5.886
+1035.269 515.953 5.763 542.553 7.808 250.761 5.637
+1035.427 521.669 7.908 540.735 10.053 256.627 6.877
+1035.584 517.576 7.604 544.537 6.360 246.066 6.421
+1035.741 516.395 6.645 541.615 6.656 245.490 4.306
+1035.899 521.574 7.319 543.026 7.205 250.664 5.722
+1036.057 511.435 6.418 542.230 7.582 252.326 4.744
+1036.215 520.864 7.656 542.922 6.689 256.543 4.739
+1036.373 515.228 7.092 541.599 7.729 247.565 6.485
+1036.530 515.932 6.399 543.396 6.840 254.045 5.343
+1036.689 517.069 5.895 542.354 7.746 252.940 4.977
+1036.847 515.440 8.251 544.653 9.403 248.259 4.668
+1037.004 517.544 8.000 543.426 11.017 248.692 6.455
+1037.161 518.005 6.484 542.164 7.257 252.756 5.194
+1037.319 519.530 7.059 546.611 8.675 242.497 8.127
+1037.475 527.585 6.997 547.926 9.843 250.545 9.650
+1037.632 519.565 6.783 544.319 7.315 251.595 9.260
+1037.790 508.295 17.320 544.413 7.913 240.305 23.229
+1037.945 525.493 8.908 542.744 7.638 248.463 10.320
+1038.102 517.485 9.354 541.797 9.067 255.934 7.314
+1038.260 513.144 6.934 542.948 6.735 254.949 6.122
+1038.419 514.341 7.155 543.859 6.185 249.199 5.185
+1038.577 511.963 6.748 542.568 7.458 247.742 4.520
+1038.735 517.959 7.008 543.415 7.922 251.797 5.977
+1038.892 521.889 6.552 544.814 9.424 253.598 6.065
+1039.050 521.088 6.427 544.608 8.273 242.216 6.467
+1039.207 524.610 8.903 542.666 8.787 243.892 5.969
+1039.365 520.066 7.638 544.446 7.913 246.368 5.311
+1039.523 520.080 7.278 544.764 6.187 255.993 4.427
+1039.682 516.420 6.076 542.677 6.433 248.039 3.870
+1039.841 514.804 6.942 543.376 6.454 243.690 4.159
+1040.000 512.468 6.931 541.023 6.875 255.856 4.118
+1040.159 514.374 7.759 545.610 7.530 255.248 4.125
+1040.316 516.093 6.666 544.296 6.701 244.892 5.253
+1040.474 518.640 6.041 544.773 9.716 245.198 4.808
+1040.632 519.206 7.086 542.617 9.887 252.192 7.120
+1040.789 521.712 8.389 545.256 8.196 250.871 7.348
+1040.946 521.637 6.403 543.432 6.790 242.158 4.287
+1041.104 519.666 6.219 543.204 7.316 246.151 4.947
+1041.262 515.156 7.717 543.222 7.812 254.881 3.934
+1041.420 517.071 6.756 545.682 6.989 252.438 4.063
+1041.578 513.010 6.303 544.006 6.807 249.054 4.554
+1041.737 516.870 8.081 544.290 8.419 251.680 6.402
+1041.895 514.728 7.516 543.883 8.210 256.316 6.464
+1042.053 516.737 6.730 544.258 7.531 249.603 6.997
+1042.210 519.937 7.336 544.922 7.766 248.976 5.571
+1042.368 519.479 7.318 545.499 7.510 245.919 4.839
+1042.525 521.634 7.759 544.425 7.102 244.469 6.488
+1042.682 519.906 7.055 544.334 8.366 251.014 5.438
+1042.840 518.699 7.670 545.913 8.988 248.090 6.583
+1042.997 517.527 6.689 545.529 7.078 246.770 6.569
+1043.155 517.785 5.980 544.305 7.556 249.037 6.701
+1043.313 520.537 6.954 543.903 8.377 257.530 6.299
+1043.471 518.275 7.435 543.639 6.772 244.595 5.500
+1043.628 512.862 6.592 542.876 8.007 249.875 5.682
+1043.786 514.378 7.623 542.038 7.650 257.388 4.897
+1043.944 518.473 6.854 543.430 7.558 255.863 5.212
+1044.102 518.714 6.800 545.114 6.176 241.968 5.483
+1044.261 520.037 7.030 544.441 7.218 244.559 4.413
+1044.419 520.380 7.796 542.584 7.282 253.485 6.019
+1044.576 521.253 7.832 543.615 9.176 249.244 5.830
+1044.732 522.072 7.365 543.586 8.058 243.852 5.486
+1044.890 519.750 6.641 543.445 8.112 247.578 5.000
+1045.047 519.717 6.560 541.704 6.436 255.855 4.701
+1045.205 514.247 6.322 542.147 6.712 248.638 3.967
+1045.363 513.622 7.046 542.771 6.619 244.276 5.115
+1045.522 514.536 6.238 544.177 7.164 247.002 6.795
+1045.681 515.455 6.187 543.711 7.057 258.100 6.180
+1045.840 514.774 7.214 544.417 7.811 250.441 5.230
+1045.998 523.587 6.106 546.764 6.932 241.704 3.869
+1046.156 517.435 7.836 543.737 7.701 241.717 6.712
+1046.313 522.944 6.811 543.947 7.194 249.647 5.312
+1046.471 520.319 7.067 544.829 7.328 247.196 4.860
+1046.628 521.323 7.703 543.488 7.148 251.551 4.962
+1046.785 518.803 7.204 542.724 5.913 249.655 4.378
+1046.944 514.398 6.971 542.847 6.883 247.256 4.088
+1047.102 511.424 6.308 544.028 6.194 251.092 4.832
+1047.259 510.004 5.656 543.610 6.249 253.790 3.620
+1047.417 515.740 9.463 543.696 7.020 251.217 5.015
+1047.575 518.457 6.821 544.207 8.442 244.122 6.456
+1047.733 520.874 6.605 543.562 7.838 249.301 3.509
+1047.890 524.278 7.066 542.585 7.182 252.913 3.552
+1048.048 522.052 6.767 545.865 10.805 246.299 7.135
+1048.205 518.490 6.741 542.658 8.063 245.213 7.088
+1048.362 518.474 7.905 541.636 8.462 248.602 4.449
+1048.520 520.984 7.814 543.376 7.709 256.286 5.718
+1048.678 518.299 8.479 547.083 8.976 252.232 6.510
+1048.835 518.473 7.084 544.670 7.229 241.962 5.870
+1048.992 516.804 7.913 543.586 8.438 246.509 6.369
+1049.149 520.168 6.840 543.225 6.831 256.515 4.936
+1049.307 516.391 9.089 543.122 7.186 255.615 8.157
+1049.465 517.814 7.067 548.111 8.717 238.676 6.349
+1049.622 518.548 6.886 543.631 6.960 247.126 4.731
+1049.780 521.235 6.206 542.216 6.938 255.771 5.820
+1049.938 523.922 6.655 543.292 6.538 249.537 5.723
+1050.096 520.659 6.371 543.212 7.410 237.945 4.024
+1050.254 519.826 7.569 544.832 7.211 243.519 7.579
+1050.412 525.378 6.966 541.408 7.531 260.885 5.714
+1050.571 516.983 7.393 542.284 6.068 254.938 7.738
+1050.728 512.029 6.042 544.792 7.444 244.269 4.690
+1050.886 517.740 7.534 544.018 6.547 242.462 3.256
+1051.045 515.987 7.561 543.220 7.338 252.024 5.013
+1051.204 519.079 6.696 543.092 8.112 255.220 7.180
+1051.361 519.310 6.493 545.470 6.556 243.202 5.176
+1051.519 517.823 8.151 543.844 6.799 245.422 5.694
+1051.676 521.158 6.509 542.578 6.814 253.914 4.502
+1051.834 520.181 7.083 543.555 7.069 254.039 6.079
+1051.992 519.301 6.530 544.005 6.290 244.450 4.163
+1052.150 519.983 6.853 543.440 7.285 239.964 4.754
+1052.308 521.119 6.732 544.694 6.592 248.699 4.587
+1052.467 522.381 6.563 543.197 6.764 260.897 8.082
+1052.624 516.273 6.471 543.552 6.024 246.288 4.116
+1052.782 511.372 7.064 544.125 6.558 240.712 9.285
+1052.939 512.063 6.552 543.201 7.170 253.987 6.366
+1053.098 519.260 7.105 542.692 6.382 260.469 5.652
+1053.257 519.822 6.663 544.917 7.267 241.724 7.569
+1053.413 522.558 6.438 544.349 6.900 239.307 4.427
+1053.572 520.745 7.103 543.883 9.847 251.343 5.100
+1053.730 522.787 6.651 542.658 9.643 257.383 7.744
+1053.887 524.297 7.581 544.036 6.882 239.623 4.009
+1054.044 519.123 7.124 544.930 7.196 248.286 4.913
+1054.203 517.361 7.575 543.369 6.879 251.802 8.207
+1054.360 515.783 6.957 541.333 8.589 254.518 9.160
+1054.517 517.287 6.580 543.743 7.279 241.885 4.224
+1054.675 515.082 6.104 544.257 6.701 246.798 4.072
+1054.833 514.950 7.741 540.682 8.926 256.948 5.834
+1054.992 516.999 6.651 541.216 9.320 246.539 7.462
+1055.150 520.500 7.377 544.082 7.461 244.035 5.383
+1055.308 522.435 7.136 544.020 6.384 253.330 4.102
+1055.465 519.964 6.166 541.820 6.781 251.603 5.389
+1055.624 517.929 7.287 544.968 7.643 242.796 5.258
+1055.782 521.829 6.500 546.269 8.471 246.307 4.289
+1055.940 522.678 6.561 543.222 6.741 253.713 5.037
+1056.098 517.586 6.348 545.102 7.016 248.297 4.494
+1056.256 516.015 8.114 543.611 10.527 244.803 7.083
+1056.413 515.600 6.212 546.816 8.304 251.708 4.934
+1056.572 516.716 7.349 542.678 6.533 258.577 4.524
+1056.730 520.487 7.536 544.026 8.362 248.845 11.527
+1056.888 515.674 7.159 544.790 6.753 243.488 4.502
+1057.045 520.596 7.217 544.528 7.513 256.144 4.734
+1057.203 524.906 7.766 545.835 6.938 255.761 4.632
+1057.362 519.269 9.493 545.598 8.589 244.167 7.270
+1057.518 523.802 6.414 547.486 7.523 241.101 5.950
+1057.677 520.428 6.489 546.094 7.817 252.011 11.213
+1057.834 519.604 7.732 547.011 8.592 252.990 5.690
+1057.993 521.996 7.545 546.650 6.363 242.529 6.827
+1058.150 513.690 8.841 544.876 7.356 245.655 9.257
+1058.308 510.646 7.311 543.268 7.241 259.486 6.787
+1058.466 514.976 5.969 541.992 6.146 256.484 5.285
+1058.624 521.149 6.420 546.630 6.340 240.954 4.812
+1058.783 516.481 8.354 545.016 8.151 246.549 6.153
+1058.940 521.044 7.231 543.650 6.457 253.325 4.653
+1059.098 520.890 6.258 543.446 7.182 250.373 4.712
+1059.256 519.898 8.092 544.944 7.344 244.563 6.650
+1059.412 522.089 8.070 542.629 8.219 247.045 5.488
+1059.571 517.420 7.226 542.356 7.745 248.980 4.119
+1059.729 516.744 9.405 543.633 9.003 250.549 6.943
+1059.885 522.777 7.837 543.056 6.424 249.725 6.104
+1060.043 518.917 6.055 544.920 7.110 245.537 5.078
+1060.201 515.919 6.282 541.979 6.736 248.565 5.078
+1060.360 516.089 7.159 543.359 7.368 254.745 4.616
+1060.517 517.860 7.320 543.953 8.280 251.287 5.200
+1060.674 518.788 6.128 544.119 8.362 245.792 6.518
+1060.832 521.917 6.059 542.471 8.136 247.997 5.386
+1060.991 522.089 6.856 545.354 7.367 249.979 4.913
+1061.149 521.500 6.104 545.963 7.707 248.489 5.526
+1061.307 519.195 8.696 545.869 8.827 244.564 4.950
+1061.464 519.681 6.419 543.608 7.328 246.805 4.920
+1061.622 521.466 6.984 545.116 7.387 252.538 4.993
+1061.780 519.844 8.374 545.701 10.610 247.425 6.312
+1061.937 519.358 7.039 546.697 7.649 243.194 8.409
+1062.094 516.443 6.249 543.707 7.122 253.961 5.054
+1062.253 515.154 8.739 544.267 7.750 260.309 7.511
+1062.411 515.681 7.438 543.352 6.501 243.843 4.024
+1062.568 515.776 6.946 543.703 8.715 244.758 6.527
+1062.725 518.917 6.603 544.097 6.678 251.407 4.773
+1062.883 520.829 6.338 544.191 6.878 251.974 4.906
+1063.041 522.598 6.632 547.011 7.503 243.799 5.117
+1063.199 520.496 6.096 545.800 6.433 241.478 6.180
+1063.357 515.815 6.484 549.298 6.998 245.164 6.224
+1063.517 516.808 6.057 544.643 6.220 260.311 4.520
+1063.676 515.038 6.138 543.716 6.666 254.043 5.451
+1063.834 511.850 6.363 545.747 8.320 238.200 5.079
+1063.993 509.868 6.970 545.077 7.244 256.712 7.184
+1064.151 512.518 6.054 542.770 6.821 262.027 4.726
+1064.310 514.305 6.295 545.027 6.842 246.630 6.022
+1064.468 512.663 6.257 544.620 7.281 239.266 6.519
+1064.626 513.876 9.127 544.496 8.150 250.672 4.792
+1064.783 517.538 5.980 543.225 6.868 256.586 3.706
+1064.942 513.575 7.294 542.552 6.631 248.975 4.827
+1065.100 511.585 7.152 544.375 7.306 244.419 3.927
+1065.258 509.645 6.468 546.183 7.074 248.264 5.016
+1065.416 509.776 5.974 545.551 7.111 255.342 3.952
+1065.574 507.927 7.288 545.805 7.224 255.943 4.751
+1065.732 505.299 8.800 548.748 7.255 251.509 5.051
+1065.889 505.343 6.385 548.787 6.807 245.415 4.606
+1066.046 510.683 7.355 548.217 6.882 251.934 4.248
+1066.204 510.436 6.100 546.092 6.879 256.669 4.218
+1066.362 506.784 6.189 547.581 6.663 248.586 4.782
+1066.521 510.337 5.883 547.685 6.771 242.055 4.368
+1066.679 508.383 6.127 549.756 6.943 247.690 4.522
+1066.838 505.933 6.281 549.667 7.522 256.796 5.102
+1066.997 506.319 6.702 548.966 7.597 257.768 5.289
+1067.155 504.213 6.172 552.159 6.368 246.967 4.176
+1067.313 504.462 7.313 549.431 7.830 250.359 4.743
+1067.471 504.924 7.736 549.684 8.383 258.453 4.571
+1067.629 502.209 7.116 548.876 7.587 253.444 5.832
+1067.786 503.832 6.455 551.718 7.909 254.114 5.685
+1067.943 502.928 6.883 553.797 7.475 247.521 4.896
+1068.101 505.029 6.341 550.238 7.117 249.685 5.412
+1068.260 505.430 7.674 549.712 8.013 256.086 5.977
+1068.417 503.804 6.281 552.237 7.807 250.900 4.984
+1068.576 504.958 6.713 552.682 6.895 244.099 5.465
+1068.734 504.039 6.226 551.146 7.520 250.811 5.388
+1068.893 501.790 8.474 548.761 8.047 257.908 6.091
+1069.050 500.637 6.343 549.747 8.447 250.749 6.933
+1069.207 497.516 6.793 553.947 6.812 248.557 4.640
+1069.366 497.235 6.142 550.559 7.703 259.685 5.342
+1069.524 501.262 6.794 551.075 6.498 257.886 5.769
+1069.683 499.792 9.012 553.170 7.934 244.758 11.965
+1069.839 502.757 7.837 550.551 7.056 249.057 8.349
+1069.996 500.837 6.433 550.665 8.204 257.080 4.829
+1070.155 502.768 6.516 550.826 7.611 252.250 4.920
+1070.313 501.957 7.216 553.978 6.879 250.732 6.879
+1070.470 498.749 5.917 551.809 8.014 247.607 4.979
+1070.628 496.657 7.274 551.808 6.968 254.696 8.804
+1070.786 496.516 8.034 550.028 7.961 262.697 7.125
+1070.942 494.625 6.946 556.400 8.496 242.536 4.737
+1071.099 493.796 8.464 552.974 7.358 240.155 5.457
+1071.257 494.877 7.904 552.619 7.195 258.181 6.284
+1071.415 492.848 6.294 552.076 7.286 257.951 8.827
+1071.573 490.848 6.462 552.510 7.493 242.619 4.495
+1071.731 494.388 7.219 551.565 7.084 253.636 3.963
+1071.888 496.823 6.723 552.165 6.921 255.406 5.014
+1072.046 497.798 6.361 552.941 6.756 251.664 8.618
+1072.202 497.178 7.742 553.459 7.118 243.476 10.796
+1072.359 495.741 6.678 551.684 6.712 250.874 6.532
+1072.516 494.267 6.766 549.596 7.499 263.388 6.324
+1072.675 490.612 6.119 553.806 7.001 252.703 6.096
+1072.832 496.386 6.974 555.658 8.984 242.657 6.848
+1072.990 493.353 12.340 554.046 6.710 257.726 9.373
+1073.147 491.403 8.120 552.940 6.881 256.337 5.541
+1073.305 495.974 6.751 554.119 6.992 250.643 5.750
+1073.462 492.129 6.125 551.161 7.726 251.026 5.957
+1073.621 495.921 7.054 553.271 8.525 245.030 5.461
+1073.779 489.909 7.547 554.722 8.624 248.660 5.687
+1073.936 488.199 6.838 552.477 7.233 252.806 6.488
+1074.094 486.762 7.103 549.954 8.168 254.328 11.388
+1074.252 495.037 7.194 556.849 6.492 259.023 4.820
+1074.411 502.620 9.569 552.578 7.199 259.410 6.733
+1074.567 490.876 10.995 550.425 8.299 247.294 10.946
+1074.725 492.898 7.525 555.494 7.372 247.702 8.644
+1074.881 488.379 7.708 554.725 8.105 243.497 8.290
+1075.039 485.673 10.217 554.337 8.159 255.415 7.439
+1075.196 492.156 5.880 550.943 7.282 262.154 6.735
+1075.354 483.891 9.125 552.769 12.885 254.891 9.033
+1075.510 489.498 7.483 552.107 7.492 249.558 7.308
+1075.667 483.335 8.482 552.221 9.404 248.245 14.163
+1075.823 488.243 9.317 552.042 7.488 252.282 10.694
+1075.981 494.692 7.661 552.460 9.202 259.142 15.455
+1076.137 487.697 8.561 549.014 9.256 260.031 9.153
+1076.294 492.117 7.752 551.680 10.199 246.950 10.274
+1076.451 492.311 8.632 553.066 9.183 243.179 8.633
+1076.607 494.103 7.086 553.920 8.607 250.041 7.064
+1076.765 493.391 10.479 552.859 13.581 252.930 9.616
+1076.922 489.813 7.824 553.188 12.947 254.399 5.389
+1077.079 492.478 7.312 548.201 6.609 263.604 10.797
+1077.236 492.884 8.717 551.422 8.170 250.176 5.583
+1077.394 494.988 7.047 553.724 9.375 246.621 7.664
+1077.551 495.889 6.976 554.327 8.970 247.576 12.042
+1077.709 496.348 7.295 551.213 6.753 255.495 9.321
+1077.865 491.143 6.857 548.922 7.801 245.974 6.921
+1078.023 499.711 6.603 550.099 8.028 250.789 7.897
+1078.181 494.977 6.062 548.821 10.702 258.347 8.963
+1078.338 491.249 8.734 548.958 12.244 245.323 5.807
+1078.495 495.132 8.617 549.979 9.134 240.033 7.237
+1078.653 490.911 12.865 548.039 6.959 255.710 5.176
+1078.812 493.559 10.074 549.870 8.674 265.047 6.812
+1078.970 490.915 8.883 547.418 8.364 263.670 10.023
+1079.128 495.849 8.265 548.014 8.726 248.546 9.316
+1079.284 497.288 8.741 551.880 7.319 244.045 9.384
+1079.440 497.512 8.813 551.848 8.895 248.920 7.423
+1079.597 492.635 8.837 550.938 6.968 246.309 10.201
+1079.754 493.596 7.968 547.759 7.824 255.103 6.813
+1079.912 489.535 8.366 550.777 7.448 256.081 4.814
+1080.070 494.315 8.267 548.887 8.362 259.030 8.101
+1080.228 491.913 7.512 547.878 8.625 246.890 6.655
+1080.385 491.169 9.415 548.858 9.325 258.208 11.497
+1080.542 494.581 9.853 548.698 11.988 250.072 9.404
+1080.700 497.725 8.266 549.257 7.644 243.970 6.568
+1080.856 498.917 6.695 548.952 10.138 247.229 5.981
+1081.014 501.299 6.122 546.939 8.601 252.412 5.068
+1081.173 493.273 6.370 549.669 8.975 252.944 11.649
+1081.331 496.492 7.756 548.996 9.199 246.599 9.752
+1081.488 496.975 7.193 546.770 11.178 255.726 7.478
+1081.645 494.909 6.278 549.267 11.386 256.007 10.587
+1081.805 495.079 10.972 548.492 11.915 253.250 10.931
+1081.962 492.130 7.056 549.384 9.700 246.892 7.398
+1082.119 497.661 7.498 549.323 8.298 253.368 7.136
+1082.276 491.756 8.488 549.293 8.047 253.763 5.941
+1082.433 497.117 7.123 550.013 7.102 250.047 5.501
+1082.592 501.971 6.777 548.390 6.407 256.000 8.812
+1082.749 496.879 6.095 549.313 6.999 246.270 4.004
+1082.907 493.458 5.964 548.053 7.205 245.032 7.658
+1083.064 501.874 6.454 545.870 6.968 251.160 5.715
+1083.222 496.308 8.242 546.748 6.367 255.501 6.043
+1083.379 497.993 7.289 547.427 6.292 256.995 7.517
+1083.538 495.639 6.414 547.924 7.472 248.879 6.283
+1083.695 496.206 7.540 548.209 7.184 245.408 5.441
+1083.853 493.842 6.862 547.392 7.606 249.264 8.354
+1084.010 493.998 6.356 546.834 6.671 251.592 7.377
+1084.168 494.060 7.349 547.568 7.110 254.995 5.553
+1084.327 493.980 7.649 546.605 7.650 258.549 5.991
+1084.485 500.319 13.392 548.276 7.221 248.425 11.675
+1084.642 501.753 9.134 544.892 8.629 243.504 6.930
+1084.798 502.447 7.682 550.519 8.242 240.555 5.886
+1084.956 502.464 7.242 548.125 7.351 249.695 12.055
+1085.113 497.744 7.426 546.281 7.205 251.376 6.321
+1085.270 496.127 6.696 545.632 7.332 255.743 5.039
+1085.428 501.761 8.805 545.986 7.622 254.757 5.755
+1085.585 497.117 9.541 547.019 6.607 244.897 6.951
+1085.742 501.021 9.650 547.310 6.552 249.199 4.200
+1085.901 504.510 7.200 546.403 7.665 260.722 12.716
+1086.058 496.765 6.576 546.894 7.613 246.417 7.044
+1086.215 501.787 5.958 546.868 7.119 248.104 5.030
+1086.373 499.937 7.009 544.968 8.059 249.481 6.072
+1086.530 499.209 6.474 546.559 7.491 248.114 4.802
+1086.687 502.362 6.393 544.385 8.110 252.101 6.020
+1086.846 497.113 7.359 544.893 7.760 258.011 9.087
+1087.003 493.261 7.627 545.389 6.630 248.100 5.295
+1087.161 498.852 6.829 543.793 8.233 250.161 7.323
+1087.318 502.448 8.681 545.238 8.267 253.221 4.921
+1087.474 494.554 7.249 545.292 7.115 248.792 4.389
+1087.632 496.965 6.984 544.442 7.716 246.197 6.796
+1087.789 495.249 7.894 545.404 6.890 246.462 5.502
+1087.946 501.652 6.810 545.964 8.398 248.594 5.501
+1088.104 503.786 6.883 546.479 6.862 252.105 6.481
+1088.262 501.237 6.858 544.534 7.228 250.521 7.601
+1088.418 499.042 6.527 545.585 6.787 251.285 5.242
+1088.576 498.970 10.684 544.415 6.221 247.742 7.978
+1088.733 491.769 7.106 544.004 7.055 251.387 7.173
+1088.891 499.177 10.629 544.400 8.800 256.543 4.646
+1089.048 499.101 6.155 542.314 8.048 250.375 4.674
+1089.206 502.501 8.260 544.843 7.107 250.943 5.207
+1089.363 505.215 7.878 545.768 7.269 251.879 6.550
+1089.521 506.262 6.714 543.957 7.712 241.908 5.875
+1089.678 504.512 9.918 543.689 7.992 253.779 5.295
+1089.836 504.375 7.827 544.726 6.794 249.837 9.203
+1089.992 499.733 9.848 541.747 7.947 255.078 7.583
+1090.149 495.837 7.157 544.207 11.432 241.250 8.912
+1090.306 500.158 6.804 544.112 7.681 250.152 4.888
+1090.464 499.211 6.801 544.341 8.221 254.261 5.649
+1090.622 504.492 7.272 545.113 9.494 245.802 8.767
+1090.778 506.874 8.868 544.151 8.872 248.758 7.704
+1090.935 498.028 8.210 546.461 7.670 256.847 5.986
+1091.093 499.220 8.077 544.684 7.900 250.448 8.496
+1091.248 500.902 7.694 542.896 7.629 252.844 9.444
+1091.405 501.249 19.513 544.489 7.841 237.788 13.606
+1091.561 507.682 10.614 547.104 7.229 251.117 11.280
+1091.718 500.666 8.085 546.361 10.651 245.861 12.738
+1091.875 504.076 14.437 544.093 9.619 244.318 8.649
+1092.031 503.680 10.129 544.420 11.698 258.493 8.208
+1092.188 503.236 7.471 545.474 9.185 255.514 8.516
+1092.345 499.452 9.879 548.764 8.108 237.035 5.268
+1092.502 498.304 8.139 541.607 8.529 251.070 5.218
+1092.659 500.023 10.180 546.846 7.141 252.420 7.396
+1092.817 503.610 12.063 546.668 7.143 244.814 5.071
+1092.975 500.656 8.766 541.296 7.805 249.448 6.973
+1093.132 500.976 7.122 546.573 7.148 261.174 6.537
+1093.291 503.079 7.007 547.555 7.213 249.341 5.796
+1093.448 504.210 7.293 544.215 7.620 238.563 5.603
+1093.606 498.562 8.441 545.652 8.562 246.665 5.465
+1093.763 496.795 8.274 541.286 7.858 263.196 11.766
+1093.921 501.877 8.860 541.002 6.636 252.541 5.267
+1094.078 503.428 7.588 543.800 7.613 243.515 7.622
+1094.235 505.594 6.728 547.648 7.061 255.375 6.468
+1094.393 504.735 7.919 546.986 8.125 251.263 7.389
+1094.550 504.717 9.483 543.559 6.739 247.862 9.060
+1094.707 501.797 6.981 544.755 6.425 244.258 5.429
+1094.866 501.058 6.545 544.987 7.698 259.772 4.716
+1095.024 498.320 7.484 545.759 7.507 256.017 7.015
+1095.182 502.333 8.602 544.887 7.403 247.240 5.410
+1095.340 502.333 8.157 544.818 7.013 241.712 7.754
+1095.496 501.723 6.757 545.008 6.605 250.827 3.919
+1095.654 502.197 5.742 544.420 6.769 250.578 5.513
+1095.812 499.662 7.905 543.784 7.629 254.465 7.170
+1095.969 502.756 6.447 545.217 6.553 251.694 4.395
+1096.127 499.587 5.812 543.512 6.873 253.336 4.760
+1096.285 500.735 6.612 545.375 7.500 245.473 5.249
+1096.443 499.027 7.912 544.123 8.376 257.184 5.748
+1096.601 502.300 11.434 545.981 9.491 253.811 8.603
+1096.757 499.963 7.118 543.989 6.543 249.088 3.824
+1096.914 504.659 7.928 544.580 6.350 249.670 5.046
+1097.072 500.046 6.938 545.465 6.884 255.046 5.981
+1097.230 500.750 6.614 544.944 6.839 253.760 6.205
+1097.388 502.857 8.795 544.679 8.193 251.267 5.954
+1097.546 498.818 6.276 544.186 6.676 251.362 4.724
+1097.703 498.508 9.923 544.581 7.773 250.683 8.430
+1097.860 500.465 9.766 543.285 7.184 247.736 5.205
+1098.018 501.174 6.654 545.062 7.571 253.677 6.472
+1098.175 498.591 6.338 546.310 7.153 249.236 6.788
+1098.334 502.115 6.769 544.843 6.581 254.152 5.213
+1098.492 504.151 8.372 543.558 7.259 249.791 5.766
+1098.649 499.511 7.110 544.105 6.941 246.607 6.625
+1098.807 500.845 7.695 543.961 7.419 253.706 5.490
+1098.965 496.868 7.310 544.919 7.368 251.127 7.716
+1099.122 501.878 9.491 543.389 7.605 252.761 8.238
+1099.279 501.508 10.279 543.303 6.832 242.417 14.882
+1099.436 502.715 6.902 543.743 6.650 250.494 5.658
+1099.593 502.847 6.772 544.407 8.397 252.144 6.911
+1099.751 502.308 7.865 545.174 7.301 251.311 6.058
+1099.909 499.393 6.436 545.471 6.873 245.263 4.697
+1100.066 501.123 7.104 544.564 6.985 254.962 9.359
+1100.224 503.161 8.189 543.555 8.070 254.679 7.202
+1100.379 502.971 9.022 544.545 6.812 247.136 5.450
+1100.537 501.879 8.083 545.555 6.114 253.501 13.869
+1100.694 500.638 8.124 544.915 8.812 250.735 5.048
+1100.851 501.146 7.240 544.379 6.564 251.667 7.219
+1101.008 498.111 7.678 543.873 6.280 254.526 4.027
+1101.166 498.801 6.228 544.368 6.653 253.045 5.372
+1101.324 503.648 5.918 545.033 6.146 249.550 4.554
+1101.482 508.056 6.185 545.040 7.806 250.145 7.500
+1101.640 499.990 6.347 545.260 6.411 252.891 4.063
+1101.798 500.289 6.169 542.702 7.078 251.308 4.207
+1101.956 498.552 9.104 542.907 8.243 246.053 4.252
+1102.113 499.635 8.234 544.189 6.804 253.770 3.718
+1102.270 498.476 8.295 545.331 8.364 249.197 7.057
+1102.426 502.414 7.005 543.743 8.246 246.312 6.365
+1102.583 501.814 6.609 544.907 6.682 250.343 4.480
+1102.741 498.778 8.991 544.729 7.318 250.913 8.277
+1102.897 499.937 8.211 544.017 7.565 246.069 5.259
+1103.055 502.939 7.209 544.510 7.634 252.410 6.467
+1103.213 501.199 6.451 545.275 8.166 253.834 6.406
+1103.370 498.832 7.473 543.022 7.062 238.538 4.741
+1103.527 497.698 8.342 545.010 7.963 245.275 7.635
+1103.685 498.277 6.048 543.390 7.202 260.422 6.078
+1103.843 496.492 9.107 544.533 7.219 253.204 5.186
+1104.000 503.014 6.923 543.445 7.827 249.042 6.560
+1104.158 501.210 6.608 547.104 7.008 239.600 5.490
+1104.315 501.762 10.359 545.011 9.750 257.006 8.214
+1104.473 502.317 7.732 544.480 8.483 264.920 5.102
+1104.631 499.203 7.237 543.474 6.509 254.619 5.466
+1104.789 498.252 7.726 544.604 7.632 245.146 5.244
+1104.947 501.012 7.772 547.346 7.083 245.501 5.920
+1105.105 500.630 6.409 544.483 8.402 257.115 6.701
+1105.263 502.256 6.646 544.664 8.682 254.921 7.055
+1105.421 503.672 7.335 545.106 7.458 238.299 8.403
+1105.578 502.066 6.532 545.071 6.565 250.653 4.356
+1105.735 499.620 11.971 543.750 8.337 252.416 7.946
+1105.892 498.206 8.898 541.447 8.019 254.324 10.155
+1106.048 502.652 9.446 542.154 7.973 251.893 5.381
+1106.205 504.316 9.480 545.761 7.325 253.598 6.232
+1106.363 503.383 7.820 544.207 9.585 239.226 7.955
+1106.519 498.563 7.247 543.102 9.319 244.682 6.186
+1106.677 499.215 6.775 543.701 6.230 262.046 3.669
+1106.836 500.072 6.438 543.487 7.694 250.490 5.319
+1106.993 496.320 9.402 545.094 8.415 248.384 8.146
+1107.149 500.603 10.165 542.771 6.926 247.903 8.087
+1107.306 504.246 8.350 545.797 7.323 249.549 6.037
+1107.464 501.062 7.143 543.658 8.016 248.505 4.894
+1107.621 498.260 7.046 541.156 7.668 256.555 6.229
+1107.780 500.472 6.415 544.321 6.556 252.785 6.271
+1107.938 499.894 6.657 542.883 8.974 246.937 4.746
+1108.096 502.819 6.702 543.188 7.046 255.169 6.181
+1108.254 501.128 7.456 542.361 6.400 253.931 4.693
+1108.412 505.161 6.557 542.863 8.880 254.389 8.409
+1108.569 502.351 6.303 542.838 6.792 248.823 6.155
+1108.727 501.663 6.714 541.698 7.194 249.528 4.172
+1108.884 509.746 8.005 544.697 7.717 250.685 5.169
+1109.043 507.767 7.389 543.057 7.077 258.316 4.671
+1109.200 503.467 7.062 544.960 8.829 246.143 5.221
+1109.358 502.264 6.804 544.109 8.132 246.961 10.101
+1109.515 508.672 6.088 543.871 6.738 258.699 4.694
+1109.674 494.056 8.285 542.498 7.504 249.427 11.869
+1109.831 510.150 6.671 544.625 6.234 252.724 3.934
+1109.989 510.671 6.509 545.036 6.061 247.307 6.836
+1110.146 506.036 6.654 548.180 7.013 244.603 4.373
+1110.304 508.280 7.082 543.341 6.713 254.806 4.365
+1110.462 509.922 7.728 544.683 7.377 255.108 5.093
+1110.620 509.459 8.695 548.166 7.491 242.021 6.270
+1110.778 526.734 11.953 545.411 9.177 244.160 13.970
+1110.934 505.637 9.060 544.544 8.008 247.701 8.834
+1111.090 509.496 6.136 540.825 8.990 249.707 7.028
+1111.248 512.095 8.628 548.808 10.685 244.247 6.437
+1111.406 512.391 6.581 542.658 9.839 257.272 7.174
+1111.563 509.864 7.887 541.646 9.526 251.982 6.503
+1111.721 514.068 9.995 547.266 7.254 251.499 8.573
+1111.877 514.840 9.358 544.442 7.885 240.025 6.427
+1112.034 512.788 8.472 548.154 8.483 246.060 7.568
+1112.191 524.167 13.231 543.861 10.966 244.210 13.569
+1112.349 511.921 13.468 543.298 10.518 234.292 18.006
+1112.505 521.919 8.777 547.463 11.678 250.512 7.389
+1112.662 511.469 10.162 543.904 10.465 254.835 9.320
+1112.820 512.944 8.025 542.359 9.233 269.408 10.026
+1112.977 510.029 7.313 544.913 7.648 248.754 12.740
+1113.134 505.120 6.616 544.489 11.347 242.097 10.122
+1113.292 508.131 14.813 548.854 8.418 238.100 11.830
+1113.448 514.051 6.812 544.858 8.186 235.661 6.444
+1113.606 519.780 6.590 544.348 8.219 257.846 5.163
+1113.765 513.067 7.907 542.153 6.811 264.368 6.413
+1113.923 503.130 6.742 549.301 7.803 245.553 6.501
+1114.081 514.681 8.621 545.873 7.859 241.835 6.433
+1114.237 518.276 8.201 542.638 7.185 246.298 4.362
+1114.394 519.062 8.107 538.896 9.004 250.062 6.383
+1114.551 517.800 10.957 542.639 8.006 249.790 5.007
+1114.708 515.408 7.715 544.996 7.971 245.077 6.467
+1114.866 515.344 7.749 548.120 7.262 254.020 6.205
+1115.025 519.503 11.602 544.591 8.576 260.860 7.637
+1115.182 514.245 5.947 543.496 7.756 240.918 5.607
+1115.340 517.192 7.361 545.485 8.453 230.149 5.565
+1115.498 519.311 7.639 546.044 8.578 246.931 8.456
+1115.655 512.403 6.982 542.590 9.260 244.659 7.534
+1115.812 514.034 7.817 541.936 7.644 256.236 8.788
+1115.970 514.600 7.516 545.509 8.748 252.062 5.663
+1116.128 512.126 9.141 546.015 8.014 242.310 11.444
+1116.285 509.851 9.127 546.280 9.089 255.263 8.153
+1116.443 508.388 6.049 544.532 7.196 247.942 4.797
+1116.600 515.623 8.214 546.195 8.440 246.039 5.199
+1116.758 518.286 7.304 545.612 7.886 246.660 5.471
+1116.916 517.412 7.397 543.766 7.088 252.346 6.653
+1117.073 517.214 7.913 546.277 8.859 245.213 6.329
+1117.230 515.732 6.651 544.122 7.814 245.022 14.003
+1117.387 510.007 7.101 547.021 8.095 248.780 10.570
+1117.544 514.340 10.064 546.150 8.017 249.617 8.423
+1117.701 516.213 7.545 546.091 9.913 251.636 9.910
+1117.859 516.032 8.275 545.900 6.788 243.886 5.217
+1118.017 513.100 8.536 541.559 7.709 250.968 5.551
+1118.175 521.901 7.031 544.345 8.285 254.649 8.240
+1118.333 516.249 8.199 541.683 9.358 253.946 7.807
+1118.490 512.192 6.711 543.236 6.811 246.419 7.633
+1118.647 514.611 7.608 544.852 8.205 239.614 6.739
+1118.804 522.396 10.287 544.428 8.615 252.406 8.325
+1118.961 516.704 9.909 544.204 7.542 256.464 6.389
+1119.119 510.807 10.647 544.922 8.282 244.394 7.785
+1119.276 510.278 7.912 543.109 9.526 252.043 6.408
+1119.433 503.502 9.210 547.061 7.911 247.150 6.331
+1119.589 504.725 7.548 541.320 8.148 243.171 7.749
+1119.746 509.587 9.614 544.193 8.066 253.371 7.393
+1119.904 517.875 7.807 543.292 7.907 262.953 6.246
+1120.062 517.858 8.571 544.712 7.069 246.519 4.799
+1120.220 511.538 11.391 547.967 7.871 246.185 6.357
+1120.377 506.385 6.903 545.669 7.603 243.551 5.846
+1120.535 511.433 6.432 543.446 7.605 246.035 8.450
+1120.692 509.414 7.648 541.974 7.515 249.950 5.702
+1120.849 511.494 8.516 546.319 9.634 249.219 8.971
+1121.007 508.644 8.609 543.663 6.997 248.172 8.980
+1121.164 516.516 8.910 544.206 8.464 241.761 8.595
+1121.320 522.685 9.857 544.392 8.918 250.597 7.604
+1121.477 514.726 8.572 544.064 8.460 266.386 9.614
+1121.635 517.257 10.270 547.920 6.986 240.063 10.092
+1121.792 519.162 8.947 546.019 8.810 245.180 5.730
+1121.950 516.671 13.367 544.520 7.586 248.441 7.092
+1122.107 508.326 7.861 542.725 7.709 250.764 9.749
+1122.264 514.793 9.643 541.597 8.423 258.617 6.859
+1122.421 508.338 7.476 542.796 7.007 248.806 6.816
+1122.579 507.103 11.760 543.408 9.134 256.908 6.391
+1122.736 517.951 11.550 546.614 8.233 233.559 9.008
+1122.894 531.459 9.886 543.766 9.483 262.545 6.615
+1123.051 532.184 15.398 540.807 12.014 265.835 20.000
+1123.208 511.731 18.399 544.218 11.217 229.488 21.902
+1123.364 517.907 14.245 543.772 7.828 235.944 6.019
+1123.523 506.899 7.354 540.967 8.280 263.329 10.179
+1123.681 506.599 15.989 543.429 8.673 256.773 10.657
+1123.837 523.226 9.497 539.504 9.746 256.117 11.463
+1123.994 513.992 13.560 546.645 9.315 240.821 8.344
+1124.151 507.669 11.924 545.526 8.559 244.268 9.129
+1124.308 522.706 11.484 539.805 13.071 244.082 15.383
+1124.465 513.717 13.259 544.728 9.465 252.170 9.980
+1124.622 503.787 7.619 542.787 9.749 256.721 9.492
+1124.779 510.267 8.522 540.697 7.624 251.487 8.197
+1124.935 519.762 8.468 544.037 9.319 237.884 8.745
+1125.091 527.407 9.035 545.070 6.970 252.798 5.338
+1125.250 516.934 9.648 544.390 6.951 251.318 10.987
+1125.408 506.939 9.646 539.454 7.343 244.463 10.263
+1125.564 527.259 10.817 545.504 7.465 248.314 13.386
+1125.721 513.192 7.731 540.875 6.568 245.833 8.107
+1125.878 511.361 7.066 539.808 8.239 249.458 4.982
+1126.036 519.693 7.989 538.738 7.681 253.324 10.096
+1126.193 512.247 11.737 542.127 7.643 249.513 8.191
+1126.350 520.032 10.650 541.341 7.397 247.955 7.904
+1126.507 515.000 10.702 541.563 9.116 243.739 12.957
+1126.664 518.780 12.772 541.975 7.075 241.667 11.186
+1126.822 521.637 9.422 541.319 7.614 248.246 6.889
+1126.979 512.986 7.078 545.123 6.810 249.772 7.146
+1127.137 521.019 10.757 541.981 7.043 248.857 8.281
+1127.294 513.250 8.188 540.199 8.662 241.298 9.335
+1127.450 509.412 8.147 543.322 7.457 232.873 11.565
+1127.607 522.434 16.555 542.863 8.889 257.868 16.726
+1127.763 519.304 11.761 543.208 6.640 251.618 6.618
+1127.921 518.173 8.800 542.002 6.891 251.986 6.572
+1128.078 522.771 7.361 542.320 7.034 243.989 9.134
+1128.235 515.977 9.690 545.863 7.725 232.829 6.298
+1128.393 520.009 19.755 544.648 8.609 249.858 26.731
+1128.549 518.410 10.626 538.686 10.715 260.408 16.427
+1128.706 505.314 7.741 540.286 8.528 257.704 7.807
+1128.863 519.053 9.993 539.812 8.164 248.517 11.268
+1129.020 516.130 10.987 544.308 11.772 243.325 15.689
+1129.177 517.351 13.589 545.013 9.022 259.683 11.231
+1129.335 517.903 13.088 543.300 8.757 258.096 8.554
+1129.492 510.149 25.434 546.153 13.568 236.000 20.575
+1129.647 500.711 19.279 543.391 11.331 233.460 15.378
+1129.802 526.977 12.584 540.584 9.649 255.324 13.352
+1129.959 523.999 15.725 543.255 9.377 249.303 10.532
+1130.115 522.710 9.367 543.012 7.728 244.043 12.073
+1130.272 515.707 10.728 542.380 6.491 238.330 5.756
+1130.430 507.007 16.051 542.493 7.362 230.513 8.893
+1130.585 522.000 8.571 544.014 7.506 252.655 8.307
+1130.742 518.870 7.777 538.610 6.363 262.506 5.265
+1130.901 515.718 6.303 544.426 6.182 256.035 3.989
+1131.061 519.307 8.788 545.334 8.421 237.830 14.817
+1131.217 526.603 7.693 546.133 7.118 233.508 8.943
+1131.373 528.526 7.223 546.651 6.985 247.265 5.281
+1131.532 523.675 9.212 540.326 7.427 262.902 8.353
+1131.690 511.966 8.062 543.853 8.131 249.089 5.500
+1131.847 514.279 7.148 542.778 7.800 247.890 6.221
+1132.005 516.252 9.488 542.587 8.069 252.588 9.181
+1132.161 515.652 7.556 543.515 8.448 248.275 6.437
+1132.318 523.316 6.973 541.595 7.080 250.222 7.992
+1132.476 511.053 9.201 539.956 9.013 246.612 8.386
+1132.632 516.160 15.886 541.189 14.128 247.476 8.374
+1132.787 516.261 13.568 541.511 7.443 245.614 7.203
+1132.944 518.652 10.814 540.825 7.597 248.356 5.841
+1133.102 520.136 10.116 539.538 10.195 245.963 15.153
+1133.260 521.261 8.657 541.695 7.703 245.899 11.417
+1133.417 515.062 9.560 546.297 9.143 244.819 7.132
+1133.574 516.420 12.476 542.353 8.280 252.678 12.116
+1133.731 515.754 11.257 538.743 8.386 256.926 5.621
+1133.890 515.877 10.660 543.157 6.682 242.299 9.144
+1134.047 522.538 11.072 542.441 9.404 243.773 12.432
+1134.204 513.745 7.831 541.644 6.596 250.387 10.152
+1134.361 510.057 9.450 538.636 6.856 245.213 15.491
+1134.518 518.420 7.603 543.646 8.895 252.872 6.423
+1134.675 509.134 7.838 539.216 7.494 243.348 7.957
+1134.831 511.441 6.885 543.022 7.172 248.693 9.900
+1134.988 509.214 8.303 541.810 6.911 251.466 6.164
+1135.145 509.052 6.250 541.038 6.903 252.254 5.993
+1135.303 512.530 6.203 538.920 6.574 248.102 7.975
+1135.461 510.775 6.492 538.869 6.818 243.121 4.035
+1135.619 505.877 9.313 541.778 7.134 250.571 7.988
+1135.776 501.828 12.600 537.217 8.516 253.765 9.006
+1135.933 511.298 14.181 536.852 9.048 252.307 11.522
+1136.089 503.143 7.343 543.948 9.043 243.093 5.775
+1136.246 505.961 7.274 537.059 8.003 245.380 6.848
+1136.403 500.989 9.501 543.840 8.483 249.013 4.554
+1136.562 506.979 12.939 535.178 14.002 256.770 9.442
+1136.719 500.369 8.736 539.521 7.343 255.587 4.362
+1136.876 496.333 8.246 539.775 7.770 234.625 7.986
+1137.033 498.793 10.004 545.017 9.812 249.416 11.226
+1137.191 506.417 8.874 544.410 8.174 263.354 5.039
+1137.348 499.624 7.676 542.104 7.037 250.033 5.691
+1137.505 502.216 9.029 541.271 8.040 244.120 5.372
+1137.662 498.792 8.395 541.602 8.192 249.471 5.636
+1137.819 500.637 7.248 541.746 7.802 246.424 5.333
+1137.976 503.116 6.897 539.917 6.734 249.174 8.946
+1138.133 500.601 8.033 542.479 7.551 250.701 6.037
+1138.290 504.006 7.920 540.624 6.442 243.897 8.467
+1138.447 501.540 6.536 539.406 6.989 251.298 5.680
+1138.605 502.945 10.193 539.734 7.142 251.243 6.388
+1138.764 495.619 7.314 540.607 7.296 258.892 7.426
+1138.921 497.506 6.656 540.596 6.321 251.438 8.645
+1139.078 502.795 6.051 540.716 6.519 251.804 9.488
+1139.236 503.157 7.928 541.257 8.109 245.198 10.215
+1139.392 503.721 7.061 538.342 7.919 246.212 5.989
+1139.550 497.727 6.504 540.453 6.588 246.012 5.992
+1139.708 496.677 7.576 540.634 7.340 251.720 6.729
+1139.866 503.966 7.309 539.986 6.364 262.257 7.058
+1140.024 497.079 7.745 540.989 7.005 248.372 6.484
+1140.181 499.190 7.778 541.279 7.751 250.743 6.414
+1140.339 498.661 9.431 540.082 8.445 249.777 7.035
+1140.496 494.226 7.228 542.180 7.330 250.707 5.704
+1140.655 502.502 6.759 540.651 6.213 264.917 6.355
+1140.813 493.515 9.137 543.196 6.919 242.319 14.065
+1140.969 491.995 6.183 541.612 7.663 245.913 8.474
+1141.127 499.280 8.748 543.886 6.502 248.979 7.581
+1141.284 495.702 6.555 543.428 6.444 250.749 4.944
+1141.442 496.467 6.670 543.534 6.610 255.117 4.932
+1141.599 496.904 10.879 543.885 6.132 247.491 6.974
+1141.757 497.439 6.657 541.048 6.660 247.374 5.956
+1141.914 497.284 10.117 540.720 8.041 252.893 5.374
+1142.072 495.152 8.353 546.067 6.763 254.248 4.363
+1142.229 498.371 11.740 543.100 7.431 245.312 4.020
+1142.386 491.853 8.988 542.751 6.444 250.683 4.161
+1142.543 502.468 5.754 542.107 6.399 256.126 4.641
+1142.702 499.004 9.891 541.861 7.080 254.071 11.878
+1142.859 494.940 8.286 542.118 6.152 247.940 5.302
+1143.017 499.799 8.057 542.891 7.376 252.569 4.620
+1143.174 500.688 6.354 545.259 7.103 249.935 6.141
+1143.332 501.446 6.625 541.192 7.176 253.759 7.858
+1143.489 494.734 7.373 541.561 6.848 251.117 9.278
+1143.646 496.027 8.113 541.765 6.943 247.171 5.693
+1143.804 503.540 7.923 542.307 6.333 254.191 6.183
+1143.961 499.335 6.367 541.213 6.670 250.861 6.138
+1144.119 498.873 6.903 541.222 6.159 250.738 5.301
+1144.277 501.428 9.328 543.332 7.900 245.167 6.042
+1144.433 503.744 6.878 542.233 6.892 249.121 7.330
+1144.591 500.497 7.931 541.942 8.059 254.091 5.616
+1144.748 496.705 8.588 542.619 7.320 250.370 6.605
+1144.904 501.497 7.619 541.706 7.440 249.453 4.662
+1145.061 504.035 6.697 543.187 6.323 250.934 4.823
+1145.219 501.860 7.367 542.461 7.353 250.799 4.870
+1145.376 499.838 6.282 541.304 5.816 252.028 3.635
+1145.535 496.558 5.850 542.103 6.478 253.910 3.869
+1145.693 499.215 6.192 542.701 6.904 246.219 5.340
+1145.851 500.642 7.892 541.747 6.416 254.192 12.625
+1146.007 500.486 7.577 542.047 6.201 248.431 9.411
+1146.164 503.604 6.759 542.470 6.221 247.934 5.460
+1146.322 502.076 7.413 542.264 6.110 249.549 5.663
+1146.479 499.380 6.398 542.632 6.408 249.285 4.270
+1146.638 501.733 6.358 542.316 6.161 255.802 4.737
+1146.795 499.807 6.497 541.673 6.499 248.028 4.928
+1146.953 504.428 7.442 543.546 6.946 248.730 5.151
+1147.111 497.284 7.011 542.515 7.346 244.687 5.812
+1147.268 503.922 8.174 541.025 7.365 256.766 6.334
+1147.426 501.479 6.560 542.400 6.539 247.487 4.695
+1147.584 499.994 7.621 540.114 6.821 255.254 7.406
+1147.741 503.809 7.757 541.321 7.043 250.552 6.412
+1147.899 497.888 6.802 541.673 7.059 243.825 6.225
+1148.058 500.578 5.715 540.746 6.539 260.558 5.172
+1148.217 501.615 7.900 541.577 6.473 249.685 10.060
+1148.373 502.646 10.814 541.975 6.440 249.256 8.299
+1148.531 502.856 8.011 541.769 6.294 245.102 10.913
+1148.688 499.448 8.537 541.547 6.580 249.951 4.404
+1148.846 502.504 6.175 542.055 6.318 243.219 6.912
+1149.003 505.335 6.568 540.210 7.408 251.302 4.446
+1149.161 501.303 7.411 541.782 6.929 254.173 10.330
+1149.318 502.213 6.653 542.907 6.686 237.961 5.173
+1149.477 496.472 7.257 540.999 6.128 249.139 7.800
+1149.635 499.754 6.713 541.090 6.604 258.321 6.579
+1149.792 502.787 6.642 541.331 6.346 249.373 4.120
+1149.950 498.347 7.299 540.583 6.422 243.763 7.936
+1150.107 503.683 8.738 538.465 6.864 254.117 6.180
+1150.265 503.916 6.520 543.764 6.114 254.161 5.354
+1150.423 498.809 6.114 542.257 6.133 240.371 4.280
+1150.582 500.298 6.730 539.252 6.714 255.603 5.039
+1150.741 503.143 6.034 541.372 6.903 258.596 5.474
+1150.899 500.991 7.890 541.683 6.060 251.866 4.336
+1151.057 495.589 8.745 542.296 7.393 234.948 6.642
+1151.214 501.635 8.702 542.683 6.429 257.199 8.982
+1151.372 500.946 8.297 541.476 7.245 255.162 6.640
+1151.529 497.889 7.982 537.684 6.673 244.061 7.565
+1151.686 499.098 7.335 541.046 6.588 246.620 4.903
+1151.843 499.511 6.313 542.220 6.221 251.256 4.306
+1152.000 500.655 5.718 543.092 6.156 255.602 4.560
+1152.159 504.106 5.803 538.991 6.669 255.436 4.379
+1152.317 499.411 7.255 543.109 6.225 253.904 9.411
+1152.475 502.194 5.970 543.651 6.293 233.779 7.020
+1152.632 502.422 7.451 541.796 6.729 244.807 9.605
+1152.789 505.304 11.559 538.978 10.946 264.878 12.846
+1152.947 504.043 7.294 541.149 7.018 260.068 5.289
+1153.106 497.610 6.171 539.471 6.079 244.420 4.041
+1153.264 504.326 8.678 542.154 6.364 247.514 5.222
+1153.422 499.563 9.305 541.331 6.271 254.165 5.232
+1153.580 496.975 6.503 539.823 6.531 252.851 8.029
+1153.737 501.889 7.551 540.148 6.467 254.568 9.152
+1153.896 504.328 6.474 542.481 6.827 241.955 4.731
+1154.053 499.473 7.708 541.874 5.937 250.189 4.533
+1154.211 502.264 6.556 538.368 6.427 252.951 5.545
+1154.369 499.542 5.858 540.343 6.064 252.869 4.539
+1154.528 498.475 6.769 541.393 6.654 251.358 6.090
+1154.685 499.154 6.590 539.853 6.488 243.643 4.570
+1154.843 500.601 6.108 540.248 6.390 257.006 6.797
+1155.001 499.746 7.498 542.662 6.141 253.740 4.930
+1155.159 498.367 5.668 541.046 6.908 248.857 7.371
+1155.317 501.633 6.720 540.710 5.993 249.558 5.978
+1155.475 502.356 5.755 542.097 5.775 256.655 3.755
+1155.633 498.423 6.388 540.391 5.944 248.846 4.222
+1155.791 499.854 6.209 541.314 6.083 248.378 6.585
+1155.949 500.508 6.546 543.063 5.977 246.553 8.312
+1156.106 499.865 5.918 541.670 6.116 253.055 5.093
+1156.264 495.278 5.916 540.696 6.648 250.290 5.995
+1156.422 501.322 9.802 542.377 6.422 252.642 8.346
+1156.578 501.603 7.167 542.743 7.093 254.356 7.660
+1156.735 497.866 6.301 541.957 6.332 246.383 4.047
+1156.894 506.508 5.823 540.199 6.187 250.233 4.909
+1157.052 502.555 8.401 540.182 8.551 253.572 4.663
+1157.209 502.185 8.672 542.321 6.430 237.885 7.577
+1157.365 500.761 7.566 540.603 7.172 237.228 6.899
+1157.524 499.677 6.827 536.786 10.571 273.972 6.671
+1157.682 500.456 7.623 540.927 7.195 260.969 7.091
+1157.840 502.194 7.308 540.569 5.915 248.729 3.928
+1157.998 499.161 5.699 542.165 5.872 242.567 3.828
+1158.156 502.381 6.297 542.381 6.692 254.995 4.419
+1158.315 499.463 6.145 541.413 6.895 251.789 3.790
+1158.473 503.244 6.929 537.624 6.085 256.327 4.011
+1158.631 500.472 5.895 542.046 6.040 249.733 5.762
+1158.788 499.044 6.978 542.560 6.978 242.967 5.125
+1158.946 499.770 6.561 541.655 6.555 257.129 5.465
+1159.105 502.937 6.082 539.876 5.767 254.041 4.233
+1159.263 500.149 6.387 541.318 6.133 247.520 5.230
+1159.421 499.791 6.068 541.093 6.008 244.565 3.811
+1159.579 500.927 5.737 541.460 6.573 251.945 3.618
+1159.738 493.729 6.311 541.834 5.961 251.169 5.218
+1159.896 490.567 6.831 539.828 6.385 251.591 5.468
+1160.055 491.385 7.987 540.748 6.791 256.475 6.208
+1160.212 490.333 7.130 537.977 6.406 254.534 7.203
+1160.369 490.193 5.738 541.889 6.199 249.705 4.618
+1160.527 496.722 5.914 541.108 6.182 248.097 4.730
+1160.685 492.827 11.285 540.371 7.634 243.010 15.110
+1160.841 491.058 14.794 541.013 12.817 241.340 12.790
+1160.998 493.420 10.818 544.320 6.872 249.503 8.358
+1161.155 491.324 8.464 541.493 7.444 253.805 10.208
+1161.312 489.193 6.994 540.475 6.994 250.858 6.348
+1161.470 488.711 7.317 541.734 7.445 252.458 5.182
+1161.629 483.707 6.242 540.907 6.407 252.634 9.409
+1161.786 493.527 15.398 539.849 7.672 262.996 16.411
+1161.942 504.985 7.148 542.048 6.155 254.829 9.802
+1162.100 498.029 9.261 543.290 8.216 248.308 9.049
+1162.256 496.470 6.523 539.533 6.358 253.073 6.496
+1162.414 502.254 9.172 539.895 7.704 260.620 5.267
+1162.572 503.732 7.646 544.049 6.933 231.036 5.841
+1162.730 499.487 10.077 541.730 7.085 242.240 4.637
+1162.888 494.854 9.191 537.547 8.448 259.552 7.866
+1163.045 501.338 8.646 539.845 8.733 250.005 13.486
+1163.201 493.523 9.280 542.318 8.633 252.790 9.091
+1163.357 497.825 6.887 539.153 6.536 251.237 10.469
+1163.515 498.298 9.302 542.061 6.959 239.812 5.357
+1163.672 501.153 6.843 541.770 6.024 249.008 7.655
+1163.830 499.571 6.727 540.137 8.431 258.660 8.761
+1163.987 492.895 9.879 541.481 8.911 246.016 8.009
+1164.143 506.019 8.322 542.274 6.105 249.240 8.736
+1164.300 512.220 6.907 542.952 7.268 257.052 6.922
+1164.458 503.382 9.712 541.969 10.578 246.860 16.585
+1164.614 494.353 13.288 541.059 10.588 237.508 10.210
+1164.772 497.873 11.608 540.160 7.923 267.545 7.548
+1164.930 497.008 7.239 541.081 7.127 260.305 8.000
+1165.086 505.590 13.988 541.100 9.096 248.473 9.212
+1165.242 499.135 6.715 539.461 7.109 249.204 6.498
+1165.399 494.091 9.871 538.164 7.890 248.452 8.649
+1165.554 500.430 7.417 539.311 7.580 251.784 5.758
+1165.712 505.794 8.128 541.073 7.423 260.727 5.882
+1165.870 502.277 9.135 539.620 8.294 257.217 7.048
+1166.026 499.882 7.693 541.876 6.122 232.332 6.657
+1166.184 496.438 9.333 540.438 7.106 252.553 8.209
+1166.341 490.034 7.331 541.244 7.120 251.735 6.794
+1166.499 503.680 8.771 538.992 7.093 261.197 6.826
+1166.658 505.966 8.535 541.280 7.485 260.912 6.803
+1166.815 509.329 7.558 545.272 6.893 244.679 6.289
+1166.972 512.323 7.834 542.122 8.243 249.616 8.998
+1167.129 506.203 11.109 542.631 6.946 248.786 14.314
+1167.286 513.142 12.922 541.736 9.311 251.957 17.055
+1167.442 507.431 7.234 540.707 6.762 247.949 8.711
+1167.599 503.584 6.682 539.067 6.345 247.999 5.581
+1167.756 510.205 10.185 538.800 7.064 251.780 5.236
+1167.915 514.142 9.199 541.268 6.557 250.647 5.913
+1168.073 510.251 6.593 542.522 7.124 250.586 5.794
+1168.229 510.632 9.985 541.895 7.255 246.725 4.863
+1168.387 514.316 7.875 542.849 6.556 244.637 5.977
+1168.544 518.533 10.003 540.778 7.641 251.076 6.870
+1168.701 520.635 7.875 541.277 7.556 243.090 5.444
+1168.858 518.576 9.423 542.652 9.520 240.990 6.241
+1169.015 506.785 8.045 541.476 8.112 252.839 7.143
+1169.172 503.437 8.902 539.534 7.230 259.248 5.947
+1169.329 500.694 8.324 538.035 6.696 252.102 6.205
+1169.487 507.066 6.793 538.340 6.235 266.441 6.819
+1169.646 501.590 9.100 539.453 6.542 258.354 9.571
+1169.803 511.495 7.815 538.494 7.321 247.773 5.494
+1169.960 510.394 9.619 541.905 7.014 251.277 6.371
+1170.118 511.064 8.448 540.639 7.747 250.252 6.302
+1170.275 501.330 6.765 540.646 7.047 242.962 8.093
+1170.432 498.973 7.763 538.956 7.511 244.839 7.255
+1170.588 499.559 6.958 540.739 7.257 251.228 8.503
+1170.745 502.185 7.465 539.667 6.671 254.852 4.625
+1170.903 499.101 7.851 538.966 7.486 254.058 6.440
+1171.060 500.741 6.592 543.279 6.535 236.890 6.146
+1171.218 504.947 8.608 540.812 8.228 245.938 8.672
+1171.375 502.509 6.609 540.008 7.357 255.789 4.075
+1171.533 504.335 7.239 539.880 5.891 255.367 3.918
+1171.690 502.123 6.911 539.348 7.772 248.693 5.071
+1171.848 500.511 7.737 540.303 8.635 244.626 4.382
+1172.006 503.705 7.577 538.953 6.889 260.866 6.089
+1172.164 506.747 7.459 540.279 6.770 248.668 5.596
+1172.321 502.167 7.526 541.202 8.132 245.656 5.746
+1172.478 499.001 5.777 540.312 6.305 243.026 4.675
+1172.637 503.010 7.730 539.623 6.531 258.220 4.813
+1172.795 498.180 9.586 540.416 8.290 248.952 9.334
+1172.953 497.981 6.108 540.554 8.565 254.739 8.147
+1173.110 499.209 8.354 541.085 8.730 240.537 8.026
+1173.266 504.152 10.085 540.370 7.725 247.935 11.267
+1173.424 501.601 8.981 537.843 8.570 258.149 7.622
+1173.581 503.476 9.234 540.568 7.512 252.131 6.308
+1173.738 502.374 8.606 540.445 8.556 246.251 7.249
+1173.895 500.613 5.978 540.334 8.375 255.092 5.770
+1174.053 501.806 6.401 539.533 6.550 248.000 6.341
+1174.212 500.408 7.723 541.355 6.602 256.980 5.832
+1174.370 497.494 6.020 539.553 8.574 246.489 5.135
+1174.528 498.715 11.252 538.925 12.592 247.884 10.017
+1174.685 507.217 8.914 542.609 9.868 256.498 8.391
+1174.842 501.342 6.378 540.336 8.567 248.095 5.474
+1175.000 500.263 8.498 540.443 7.344 252.840 8.233
+1175.157 501.192 6.446 538.864 7.999 251.528 5.750
+1175.314 502.472 5.965 540.988 6.786 252.975 4.937
+1175.472 499.774 5.731 539.199 6.027 252.739 3.795
+1175.630 499.807 5.867 540.272 6.249 248.247 3.697
+1175.789 503.668 6.919 538.792 6.551 251.742 4.518
+1175.947 501.136 8.500 540.408 6.086 251.637 9.193
+1176.103 499.611 7.659 539.254 7.126 248.086 6.737
+1176.261 500.666 7.232 541.412 6.455 246.190 4.953
+1176.419 501.786 6.235 541.914 6.150 248.081 3.838
+1176.578 501.777 6.313 541.029 7.386 254.350 5.089
+1176.736 500.117 6.787 538.420 6.192 247.463 5.113
+1176.894 498.591 6.581 542.464 7.424 245.764 4.767
+1177.051 499.025 7.649 539.804 6.836 254.347 5.396
+1177.210 504.900 8.764 540.368 7.805 258.163 9.605
+1177.367 498.839 8.107 540.853 6.551 252.581 8.270
+1177.524 499.358 7.479 543.758 7.700 248.375 5.508
+1177.681 501.943 7.916 540.227 6.701 248.703 4.310
+1177.838 503.239 11.773 543.672 9.768 245.887 14.758
+1177.995 502.112 22.706 541.196 8.933 247.978 31.869
+1178.150 503.921 13.285 539.882 8.109 244.649 10.297
+1178.308 494.309 11.435 538.698 7.325 250.166 6.488
+1178.465 504.973 9.929 540.177 7.045 256.871 7.978
+1178.623 495.259 12.815 541.281 7.938 252.918 6.563
+1178.780 496.202 8.115 542.892 6.754 246.119 7.509
+1178.937 499.472 6.439 540.489 7.091 251.061 7.948
+1179.094 499.014 7.392 539.884 6.683 251.150 8.413
+1179.251 502.020 5.802 539.218 6.215 253.081 4.894
+1179.409 501.320 6.890 541.382 6.573 246.670 5.722
+1179.566 501.983 6.460 540.683 6.345 247.226 4.028
+1179.724 501.369 6.641 541.866 7.622 252.632 5.970
+1179.881 500.023 8.281 539.928 7.228 251.786 4.959
+1180.039 497.490 7.817 540.989 6.494 253.677 7.059
+1180.196 496.844 9.101 540.729 6.150 250.276 3.415
+1180.353 498.928 5.921 541.277 5.974 252.042 5.643
+1180.510 499.049 6.433 540.752 6.280 242.510 4.079
+1180.668 500.990 8.201 540.907 6.325 254.355 5.720
+1180.825 501.409 6.417 542.179 6.325 246.343 3.796
+1180.983 497.754 6.803 541.801 7.174 249.833 5.868
+1181.140 495.887 9.328 542.478 7.596 251.208 9.238
+1181.297 497.788 5.717 540.954 6.357 258.452 9.215
+1181.455 494.897 7.421 541.919 7.254 242.774 5.045
+1181.613 499.099 7.577 543.409 6.875 246.197 8.252
+1181.770 499.560 6.477 542.344 7.019 249.002 6.298
+1181.927 502.585 5.947 542.083 6.739 247.860 9.268
+1182.084 501.045 7.134 543.250 6.641 251.238 4.243
+1182.242 497.490 6.303 543.502 7.083 249.752 4.834
+1182.400 498.514 7.993 545.115 6.708 248.747 4.528
+1182.558 500.855 8.457 541.461 6.914 254.107 7.699
+1182.715 498.778 6.928 544.384 7.155 256.811 9.424
+1182.872 499.707 7.834 541.553 7.761 252.638 8.156
+1183.028 503.677 8.670 545.375 7.141 244.526 4.735
+1183.185 499.406 7.112 544.893 6.837 251.695 4.400
+1183.343 501.194 7.993 544.639 6.931 258.436 5.625
+1183.501 498.392 8.393 545.076 6.279 254.314 4.584
+1183.659 498.774 8.214 543.830 6.551 247.793 5.840
+1183.817 502.177 6.010 545.358 6.600 250.327 4.782
+1183.975 497.901 6.829 545.943 7.917 252.483 6.695
+1184.132 501.319 7.052 544.669 6.480 255.314 4.709
+1184.289 503.813 5.974 544.606 6.448 250.543 3.884
+1184.447 500.718 6.100 546.666 6.155 248.255 5.523
+1184.606 502.237 6.331 544.916 6.221 253.882 4.324
+1184.764 501.592 5.701 544.349 6.119 253.048 5.281
+1184.922 498.265 7.011 545.553 6.535 249.400 4.612
+1185.080 501.042 6.588 546.885 6.104 247.774 3.836
+1185.237 500.340 7.493 546.928 6.989 248.247 4.687
+1185.395 504.133 5.909 544.819 6.158 251.822 3.296
+1185.553 497.631 6.682 544.328 7.057 253.318 4.968
+1185.711 497.266 6.472 544.453 7.046 249.363 6.021
+1185.869 502.442 6.478 545.314 5.861 255.773 3.867
+1186.027 501.804 8.062 545.103 6.563 249.417 3.326
+1186.185 499.168 5.591 547.311 6.098 239.914 4.966
+1186.342 503.301 6.640 546.243 6.121 252.079 4.489
+1186.499 501.003 5.744 545.032 6.267 251.690 3.635
+1186.657 498.380 6.582 546.110 6.301 249.376 4.006
+1186.814 497.383 7.036 545.691 6.033 254.863 3.993
+1186.972 502.803 6.740 548.676 6.863 254.448 4.697
+1187.130 499.848 7.465 548.506 6.767 249.984 9.468
+1187.287 504.098 7.824 547.505 6.726 249.639 6.756
+1187.444 500.481 6.496 549.345 6.593 249.916 5.373
+1187.602 500.134 6.577 547.743 6.589 253.789 5.491
+1187.761 500.681 6.833 547.797 6.443 256.827 5.134
+1187.920 501.656 6.352 548.498 6.130 254.978 7.484
+1188.077 497.196 6.674 549.655 6.205 243.859 5.622
+1188.235 500.712 8.133 548.406 6.541 251.058 7.359
+1188.392 503.167 5.998 546.304 7.189 258.140 5.015
+1188.550 498.471 6.759 548.463 6.675 255.701 4.193
+1188.708 502.114 6.059 548.194 7.074 255.597 5.407
+1188.866 503.281 6.630 551.232 6.592 246.635 6.763
+1189.023 503.312 6.258 548.622 7.144 244.646 4.224
+1189.182 499.123 7.052 548.456 6.580 256.786 5.687
+1189.339 496.671 6.532 547.764 7.112 255.127 5.245
+1189.498 504.636 7.457 549.107 7.938 251.871 5.970
+1189.655 505.946 8.180 549.111 6.456 254.748 7.252
+1189.812 499.629 8.559 550.131 7.406 240.697 9.811
+1189.969 495.646 10.615 547.051 6.869 246.347 10.076
+1190.128 501.796 9.862 548.060 6.829 267.123 4.577
+1190.286 499.217 7.890 545.560 8.822 256.231 10.638
+1190.443 497.852 8.301 546.485 7.121 251.522 5.829
+1190.600 504.338 9.371 553.864 8.661 240.015 4.054
+1190.758 502.683 6.439 550.588 7.552 250.470 5.202
+1190.916 500.746 6.722 545.466 7.375 261.404 6.412
+1191.074 503.747 7.949 548.644 6.976 257.284 7.148
+1191.231 497.777 11.366 547.766 7.067 237.642 8.550
+1191.388 501.057 6.306 550.277 6.693 242.456 7.712
+1191.546 506.680 7.542 545.502 6.739 271.704 5.591
+1191.704 494.246 7.785 550.945 6.450 260.617 7.634
+1191.860 496.912 8.649 546.859 7.288 249.326 5.505
+1192.017 500.629 7.338 550.148 6.741 239.643 8.564
+1192.174 501.436 6.794 550.111 6.791 254.856 4.036
+1192.332 499.434 9.253 542.461 7.725 260.308 10.928
+1192.489 500.314 11.115 548.324 7.033 251.583 8.066
+1192.646 504.663 9.030 545.653 8.732 246.535 13.991
+1192.802 498.686 11.266 548.516 11.274 239.845 9.818
+1192.959 494.036 7.795 550.635 9.147 253.058 9.006
+1193.116 502.310 8.486 546.426 6.700 251.000 8.473
+1193.273 508.793 8.227 542.524 6.744 268.260 8.671
+1193.431 497.957 8.082 545.985 7.409 247.602 5.715
+1193.588 501.369 10.250 546.669 6.865 246.806 13.945
+1193.745 500.753 8.207 546.246 6.883 255.778 5.791
+1193.903 509.877 9.266 546.372 7.154 252.667 12.739
+1194.060 503.268 8.941 542.803 6.465 255.706 8.915
+1194.218 503.102 6.716 545.498 7.308 251.907 11.286
+1194.375 496.661 8.800 545.435 6.679 250.019 4.692
+1194.532 504.976 8.138 544.814 8.388 243.000 6.269
+1194.690 502.319 9.357 543.398 7.578 262.340 10.115
+1194.848 500.793 12.925 542.144 9.616 245.113 8.892
+1195.004 502.197 8.219 543.921 8.882 236.761 12.782
+1195.161 500.422 10.330 548.739 7.817 242.937 10.575
+1195.319 494.244 8.259 546.367 8.134 242.249 16.345
+1195.475 507.312 10.616 538.973 8.341 267.262 6.076
+1195.633 499.973 6.367 546.239 6.538 248.282 11.619
+1195.790 501.919 7.809 544.362 6.248 245.692 6.562
+1195.947 498.529 8.307 541.103 8.170 250.496 5.966
+1196.103 502.515 11.783 544.651 9.685 253.364 6.027
+1196.261 504.635 8.803 541.886 7.280 258.343 6.877
+1196.419 501.566 6.614 544.768 6.300 246.363 5.886
+1196.577 499.895 9.681 545.237 6.758 251.973 8.952
+1196.735 505.228 6.921 542.562 8.001 250.629 8.087
+1196.891 504.952 8.123 542.455 7.676 252.536 6.194
+1197.048 486.919 16.022 543.044 8.294 244.075 9.489
+1197.204 498.719 11.821 543.060 7.371 254.880 8.965
+1197.361 503.137 7.844 544.440 8.959 252.808 5.335
+1197.519 503.601 6.899 543.074 7.149 259.278 4.643
+1197.677 505.276 10.136 542.690 6.971 251.432 6.601
+1197.834 507.362 8.602 545.757 7.536 235.514 8.901
+1197.991 512.423 13.858 544.137 7.744 254.765 12.447
+1198.147 509.434 13.182 544.261 8.802 242.317 14.046
+1198.303 506.594 6.900 543.462 8.052 247.653 6.442
+1198.461 513.216 6.529 541.574 6.704 260.946 4.287
+1198.620 513.432 7.251 542.625 6.151 250.739 5.335
+1198.779 514.964 7.061 542.566 7.141 251.727 5.727
+1198.936 521.719 7.735 543.105 6.659 244.857 6.170
+1199.094 520.057 11.572 546.891 9.973 244.998 5.389
+1199.252 524.540 12.379 547.889 11.731 247.950 11.490
+1199.409 520.695 11.154 541.438 9.483 247.949 10.911
+1199.567 516.567 7.079 542.514 7.264 251.069 5.133
+1199.726 521.965 9.422 545.305 7.264 254.270 5.931
+1199.883 523.599 12.195 547.503 8.660 245.612 11.549
+1200.040 512.246 12.616 541.625 9.012 236.536 7.658
+1200.196 525.792 9.397 546.366 11.829 243.965 11.197
+1200.353 514.157 7.878 545.503 9.437 246.589 6.049
+1200.511 523.381 18.101 542.575 7.992 251.725 10.738
+1200.668 514.063 12.553 549.555 10.461 251.427 4.534
+1200.824 522.000 9.227 540.845 10.023 244.684 8.910
+1200.981 515.360 7.759 540.678 10.292 246.626 9.936
+1201.137 530.233 9.800 545.006 7.844 250.816 9.293
+1201.294 509.872 11.108 537.730 10.021 244.738 9.349
+1201.451 522.398 9.618 538.327 8.646 255.647 8.355
+1201.609 520.614 9.725 545.893 9.547 244.146 8.923
+1201.765 522.566 8.564 538.829 7.954 240.711 9.710
+1201.922 524.575 7.515 538.808 8.697 256.387 4.651
+1202.080 513.565 7.881 547.358 8.952 245.243 6.478
+1202.237 539.975 11.604 541.133 9.044 255.172 10.060
+1202.394 510.719 7.992 537.261 7.883 241.101 5.895
+1202.551 520.217 7.106 542.662 9.221 238.701 5.660
+1202.709 527.972 7.901 543.216 7.874 254.207 6.321
+1202.865 517.399 18.596 540.422 10.231 246.562 12.902
+1203.023 523.364 11.106 542.684 8.267 248.175 6.635
+1203.180 528.243 7.611 544.146 8.156 242.601 6.889
+1203.336 521.882 10.205 543.061 7.407 246.026 10.396
+1203.494 519.238 8.621 538.090 9.167 250.430 8.347
+1203.651 524.012 8.485 543.631 8.270 238.534 8.101
+1203.807 521.400 9.969 542.226 10.349 251.655 6.885
+1203.965 521.604 12.575 539.122 9.390 247.616 5.046
+1204.123 519.766 12.526 546.371 9.094 232.956 9.991
+1204.279 525.667 6.831 540.703 8.419 253.049 5.682
+1204.437 526.216 9.188 542.857 6.871 254.610 9.518
+1204.593 518.912 6.676 543.678 6.746 241.876 5.827
+1204.751 520.259 6.914 540.516 7.027 253.208 6.162
+1204.909 526.692 8.782 546.065 7.752 246.352 4.816
+1205.066 522.326 7.303 539.650 7.107 245.463 5.659
+1205.224 522.143 7.821 537.496 7.010 248.074 6.071
+1205.381 520.241 12.621 541.675 7.304 244.280 6.688
+1205.538 518.602 9.728 541.576 7.924 249.232 6.665
+1205.694 521.776 10.534 540.295 10.070 255.192 5.860
+1205.853 519.317 8.404 547.383 7.675 242.421 6.693
+1206.010 528.553 7.918 540.353 8.171 250.584 7.599
+1206.166 522.065 7.764 540.763 8.471 251.165 7.416
+1206.324 532.180 19.911 545.767 10.751 243.801 28.055
+1206.480 518.381 14.009 542.007 8.692 257.908 7.091
+1206.638 519.463 22.265 544.820 13.346 244.519 34.145
+1206.793 519.264 9.959 542.128 8.502 248.255 8.176
+1206.949 524.732 7.094 534.421 8.242 243.752 11.295
+1207.106 520.117 14.029 535.114 8.842 250.067 19.098
+1207.262 521.681 11.279 537.351 13.942 267.460 16.887
+1207.418 519.666 10.237 542.263 8.045 232.944 10.047
+1207.576 522.986 7.975 541.072 8.225 247.249 13.254
+1207.733 528.589 11.439 537.900 11.115 252.212 6.423
+1207.891 518.065 8.673 544.089 7.317 247.822 5.806
+1208.049 518.110 6.757 541.410 8.792 258.658 6.166
+1208.207 511.871 7.390 542.224 7.072 240.036 9.276
+1208.364 523.468 10.298 541.782 7.524 245.600 10.023
+1208.522 514.524 15.987 537.537 8.855 249.146 8.230
+1208.678 520.675 9.158 542.545 7.650 247.791 8.080
+1208.835 524.636 8.235 545.415 7.981 249.257 5.883
+1208.993 516.806 17.361 537.394 12.951 247.102 14.950
+1209.149 515.898 9.455 544.444 7.698 233.641 7.000
+1209.306 523.909 11.331 541.224 7.679 243.686 9.539
+1209.464 519.959 7.896 533.922 7.852 254.736 8.955
+1209.620 524.879 6.903 544.509 6.757 247.207 5.131
+1209.778 522.578 11.765 537.455 7.230 242.372 11.897
+1209.935 523.265 10.259 542.274 8.964 243.333 10.240
+1210.092 516.412 12.730 542.512 8.085 246.843 10.110
+1210.249 522.264 9.845 535.725 9.676 265.638 6.789
+1210.406 516.302 8.856 545.397 10.390 230.836 10.179
+1210.563 518.593 13.195 543.824 7.412 238.338 6.082
+1210.720 532.606 14.249 543.718 10.083 251.793 9.380
+1210.877 521.286 14.733 538.027 7.791 248.127 14.271
+1211.033 516.962 17.648 538.980 10.856 243.321 9.710
+1211.189 522.359 9.903 542.059 9.317 238.273 7.097
+1211.346 528.943 21.033 542.390 12.961 247.182 13.033
+1211.502 522.559 11.114 540.373 9.296 258.231 9.077
+1211.659 515.615 9.127 542.393 8.854 245.592 8.468
+1211.815 537.206 9.240 539.473 8.418 247.415 6.197
+1211.973 521.322 9.931 538.574 8.865 255.404 12.046
+1212.129 515.173 9.824 545.065 8.040 244.444 9.266
+1212.286 532.721 17.431 541.960 7.154 257.794 13.195
+1212.443 524.627 29.801 542.279 10.459 239.237 22.678
+1212.599 522.616 7.957 537.562 7.984 259.912 10.306
+1212.755 527.006 14.049 540.195 9.614 245.739 4.736
+1212.912 525.800 9.042 544.592 7.521 246.417 8.473
+1213.070 517.098 9.955 540.176 9.935 256.634 8.071
+1213.227 509.131 12.752 538.181 7.608 252.196 11.311
+1213.385 524.931 9.344 540.421 8.240 255.551 8.393
+1213.543 520.599 11.037 540.694 8.139 235.555 7.603
+1213.700 517.296 11.750 537.037 9.759 251.535 10.846
+1213.858 510.302 8.138 541.490 7.351 257.185 8.931
+1214.015 508.233 12.289 538.354 7.202 244.301 9.178
+1214.171 507.052 11.123 539.763 7.304 253.733 6.083
+1214.329 503.360 10.684 543.697 7.131 238.317 8.246
+1214.485 505.533 7.898 533.647 9.102 252.743 4.624
+1214.644 498.115 10.478 539.606 7.735 266.317 6.297
+1214.802 496.741 7.018 541.636 8.897 240.663 11.007
+1214.959 493.217 8.916 536.276 9.065 247.516 8.145
+1215.114 493.512 7.588 544.612 6.487 233.265 5.445
+1215.272 497.235 6.588 536.476 7.000 255.612 7.166
+1215.430 480.512 10.140 535.274 8.006 258.066 13.795
+1215.586 486.915 8.326 540.952 7.481 249.540 8.868
+1215.743 477.599 8.485 542.129 8.905 251.735 9.999
+1215.899 491.576 7.506 539.861 6.709 246.377 3.568
+1216.058 491.955 8.516 540.458 9.108 261.893 6.239
+1216.216 488.279 6.671 545.594 8.344 260.148 5.581
+1216.375 485.212 9.252 547.606 7.250 242.601 14.433
+1216.531 478.152 10.202 542.286 11.416 254.616 10.767
+1216.689 477.751 9.519 539.312 8.611 253.826 9.159
+1216.845 480.157 7.657 539.113 8.625 242.928 5.887
+1217.003 486.621 8.310 538.281 7.807 257.459 6.606
+1217.160 485.066 8.215 536.442 6.447 249.814 11.131
+1217.318 465.980 13.488 536.334 12.683 254.948 17.967
+1217.474 483.249 14.262 541.623 8.152 253.179 27.435
+1217.630 479.952 7.364 541.396 8.154 244.361 7.071
+1217.787 476.259 7.230 538.324 6.747 253.023 9.032
+1217.944 479.292 11.426 537.313 11.067 246.690 8.983
+1218.100 478.542 6.359 540.063 7.020 252.036 5.915
+1218.259 487.565 9.046 535.960 10.220 258.570 9.134
+1218.416 458.975 6.277 543.289 9.010 239.825 11.645
+1218.574 477.059 7.888 538.562 10.037 257.918 11.959
+1218.731 474.940 10.364 536.425 7.837 255.549 12.134
+1218.888 487.759 6.695 539.004 8.899 247.945 11.220
+1219.045 478.567 8.126 540.360 8.494 245.179 13.100
+1219.201 483.275 8.336 539.853 9.665 249.221 7.562
+1219.358 476.352 10.423 540.198 9.257 258.932 8.908
+1219.516 465.173 6.205 537.382 8.325 261.829 6.561
+1219.675 482.061 9.630 537.633 9.292 251.698 8.035
+1219.831 474.810 14.347 538.716 15.252 244.457 7.608
+1219.987 492.678 11.362 541.217 9.461 248.174 5.987
+1220.145 482.216 8.550 541.062 8.079 246.431 6.669
+1220.302 487.462 8.365 537.200 12.489 254.524 5.032
+1220.459 469.884 6.718 539.702 9.930 247.555 4.639
+1220.617 469.878 7.787 539.197 8.606 265.355 6.608
+1220.774 478.958 9.058 536.622 8.842 254.853 8.722
+1220.931 480.889 11.798 540.116 10.300 242.048 8.960
+1221.088 475.948 8.309 539.571 9.478 247.840 6.115
+1221.245 488.289 10.147 538.545 8.574 255.358 7.403
+1221.402 479.042 9.259 539.195 7.752 248.633 8.673
+1221.559 475.460 7.323 538.832 8.324 258.586 6.228
+1221.718 471.634 9.996 535.288 9.591 255.215 7.134
+1221.875 479.176 12.269 537.302 9.918 266.862 7.885
+1222.031 482.871 16.971 539.413 7.404 253.828 8.477
+1222.187 486.908 6.218 541.684 8.067 240.998 4.842
+1222.344 461.209 7.595 539.446 11.729 234.930 21.625
+1222.501 482.172 15.213 536.444 10.894 256.489 9.343
+1222.658 479.171 10.096 540.494 7.863 253.034 7.208
+1222.816 450.551 8.691 533.225 9.883 239.810 38.585
+1222.971 479.695 11.064 541.402 9.566 245.888 12.619
+1223.128 490.577 9.896 542.884 11.263 250.228 9.811
+1223.285 478.845 11.569 538.138 8.022 263.442 11.639
+1223.442 470.718 15.166 539.541 11.153 243.484 10.498
+1223.600 477.957 12.375 543.125 7.969 254.294 5.745
+1223.757 477.429 7.046 538.531 7.392 255.592 8.288
+1223.914 469.374 11.790 539.955 8.959 251.815 9.686
+1224.071 486.933 9.655 538.589 8.769 246.418 4.676
+1224.228 485.549 9.454 538.445 8.424 253.544 8.467
+1224.384 477.435 9.427 539.474 9.769 241.305 16.791
+1224.540 479.234 14.311 533.474 10.527 261.123 14.581
+1224.697 477.902 14.735 540.044 12.201 249.561 11.354
+1224.855 466.739 8.523 537.080 10.207 257.145 10.039
+1225.013 474.877 8.760 540.580 8.702 255.231 9.242
+1225.171 485.028 12.623 540.645 8.536 252.902 5.782
+1225.328 474.950 9.151 542.196 8.095 238.639 15.964
+1225.484 476.209 18.029 538.892 10.695 254.556 11.747
+1225.640 484.282 11.996 538.449 7.827 251.875 6.724
+1225.797 473.052 9.419 538.114 8.810 253.048 6.108
+1225.954 482.150 8.607 540.451 8.552 249.330 7.151
+1226.111 484.041 7.308 534.644 8.076 246.453 7.779
+1226.269 485.660 8.222 538.336 8.197 256.674 6.180
+1226.426 454.666 7.293 535.523 8.319 245.366 7.845
+1226.582 484.936 9.050 539.145 8.162 258.403 5.947
+1226.740 483.259 8.244 537.971 10.114 244.404 8.660
+1226.897 467.742 7.697 536.689 8.222 258.354 7.888
+1227.053 482.207 9.439 541.666 9.640 248.763 7.733
+1227.210 484.882 15.234 539.726 10.923 253.047 8.960
+1227.367 479.468 7.897 540.507 8.880 243.400 7.665
+1227.523 481.974 8.903 540.785 10.776 245.114 7.721
+1227.681 484.659 9.463 536.727 6.984 263.971 5.612
+1227.839 486.676 9.042 537.417 8.169 247.349 6.921
+1227.996 482.336 7.436 539.864 7.486 250.113 9.107
+1228.152 481.633 8.109 540.628 7.782 245.181 5.679
+1228.310 457.326 7.281 540.416 9.587 228.211 26.121
+1228.466 487.213 16.054 535.444 8.692 273.782 11.451
+1228.623 486.792 15.798 539.354 9.439 256.147 10.677
+1228.779 461.227 13.393 541.053 9.664 223.691 23.560
+1228.935 483.042 9.836 540.780 7.519 259.246 7.895
+1229.093 480.010 9.788 539.057 12.297 267.212 5.258
+1229.251 477.510 8.224 538.240 8.171 257.002 11.153
+1229.408 478.175 19.331 540.722 10.732 255.920 7.641
+1229.565 478.661 9.209 539.757 9.835 255.219 5.416
+1229.723 470.216 15.560 537.047 10.960 253.922 11.915
+1229.881 476.532 14.609 537.610 9.101 262.779 13.659
+1230.037 458.575 11.407 544.566 11.139 227.277 10.948
+1230.193 486.885 11.445 537.855 8.293 262.962 21.541
+1230.350 455.878 9.487 537.238 8.297 245.249 53.497
+1230.506 479.688 14.516 535.212 11.923 267.812 11.817
+1230.663 476.556 14.426 540.062 8.675 251.188 12.662
+1230.819 470.905 7.642 540.970 9.279 242.481 4.386
+1230.977 470.159 12.748 540.799 13.693 257.754 8.738
+1231.133 478.121 8.171 538.768 9.004 254.467 12.563
+1231.290 477.711 12.088 537.317 11.371 251.634 12.095
+1231.447 475.837 14.505 536.033 7.485 262.566 11.586
+1231.603 481.118 9.355 537.760 9.331 254.395 6.860
+1231.761 473.541 7.805 541.697 7.053 245.763 10.959
+1231.917 474.605 10.154 536.237 7.536 243.267 16.483
+1232.073 476.236 11.001 541.252 9.715 246.352 12.514
+1232.230 488.392 7.086 536.122 8.082 256.743 11.501
+1232.387 471.873 15.458 541.921 7.902 243.567 17.567
+1232.543 473.878 8.953 536.039 11.156 250.595 19.082
+1232.700 484.728 10.449 540.930 9.964 256.805 11.206
+1232.858 483.457 7.345 539.699 9.444 259.628 4.946
+1233.015 474.564 13.160 544.137 9.323 246.506 14.911
+1233.171 486.105 10.353 539.521 7.589 246.805 12.107
+1233.329 489.361 8.073 542.235 8.735 252.578 12.673
+1233.486 476.623 10.966 540.392 8.729 234.905 22.350
+1233.643 496.726 7.042 544.043 7.662 262.089 9.644
+1233.801 496.867 6.776 544.270 6.959 241.740 9.577
+1233.958 498.298 7.898 538.462 6.318 259.557 8.263
+1234.115 485.083 7.251 543.894 6.644 239.975 9.815
+1234.273 497.300 9.883 540.099 7.550 244.759 8.021
+1234.429 498.913 8.464 542.411 8.069 257.237 15.839
+1234.585 491.489 7.903 542.174 6.937 249.822 5.609
+1234.742 494.374 6.993 540.091 7.070 253.148 8.698
+1234.900 504.163 5.965 539.801 6.358 260.641 4.459
+1235.058 490.521 6.722 542.268 8.968 240.916 9.241
+1235.215 503.205 8.380 540.952 7.827 263.369 10.158
+1235.373 490.522 9.076 538.199 8.680 250.203 8.565
+1235.529 499.985 8.911 540.592 6.469 259.662 16.163
+1235.687 500.689 7.693 539.325 7.178 252.336 5.839
+1235.844 495.906 6.494 539.693 6.313 250.493 4.657
+1236.002 505.319 6.751 541.616 8.098 254.244 5.111
+1236.158 508.383 10.442 541.626 7.321 247.012 4.961
+1236.316 520.343 10.502 542.276 7.300 245.620 18.551
+1236.472 502.733 11.273 538.152 8.645 251.556 5.931
+1236.629 510.627 7.008 542.111 6.575 250.565 6.777
+1236.786 509.546 6.709 540.441 6.964 248.275 6.330
+1236.944 513.145 6.784 541.474 6.659 242.792 5.085
+1237.102 517.441 8.989 537.514 7.193 252.857 4.463
+1237.259 521.344 7.889 542.245 7.777 242.398 10.326
+1237.417 523.333 11.159 537.822 6.990 257.824 12.387
+1237.574 518.693 9.876 542.088 8.840 241.658 9.021
+1237.730 522.607 7.378 543.380 9.192 236.626 8.551
+1237.887 527.866 9.090 539.343 8.615 253.746 11.065
+1238.045 506.618 8.822 537.473 7.900 252.597 8.118
+1238.201 512.966 9.890 536.294 8.840 248.755 6.639
+1238.358 523.269 10.721 547.803 9.666 233.867 9.974
+1238.516 527.402 10.715 542.588 7.663 237.148 23.863
+1238.672 520.724 12.092 532.765 10.666 253.591 7.163
+1238.830 523.547 7.120 543.797 8.161 246.745 7.578
+1238.986 522.225 7.925 546.678 11.776 246.557 6.242
+1239.143 528.332 6.809 536.306 7.034 250.485 8.391
+1239.300 523.183 14.671 545.663 7.350 243.334 11.270
+1239.457 520.281 9.739 538.336 9.349 240.583 11.262
+1239.614 526.802 7.477 541.173 8.771 249.715 7.720
+1239.771 528.298 8.064 538.191 6.916 245.197 6.711
+1239.928 526.673 8.107 535.251 7.418 249.201 12.545
+1240.085 520.976 11.057 539.582 7.656 245.662 7.321
+1240.242 542.249 15.041 537.135 14.390 252.706 16.715
+1240.398 511.022 14.825 533.661 14.693 247.237 33.140
+1240.553 523.860 8.839 539.416 8.552 238.632 17.838
+1240.709 530.408 9.115 538.944 8.951 243.686 15.489
+1240.866 524.004 17.673 539.059 14.241 242.066 12.640
+1241.021 527.490 14.873 541.630 10.000 256.670 21.718
+1241.178 521.944 11.968 537.556 8.670 243.136 11.980
+1241.336 528.009 23.753 536.905 9.595 234.361 24.650
+1241.493 526.390 15.271 545.669 11.681 249.493 11.109
+1241.649 528.183 9.454 541.146 7.768 249.784 5.529
+1241.807 524.691 8.297 538.011 9.036 252.957 9.532
+1241.964 518.336 14.871 544.220 10.405 242.149 5.467
+1242.122 512.743 18.140 541.742 8.054 241.931 10.450
+1242.277 526.317 14.134 540.537 9.434 242.109 11.380
+1242.434 520.733 10.902 541.155 8.386 249.981 10.163
+1242.591 525.827 9.367 541.301 9.159 247.319 6.108
+1242.750 522.538 9.377 544.563 7.781 252.603 11.135
+1242.906 516.465 6.822 538.495 9.492 239.356 11.257
+1243.063 520.344 7.412 537.065 7.586 246.913 6.503
+1243.221 541.213 9.988 536.140 9.381 255.069 11.160
+1243.378 518.812 9.191 536.511 9.115 234.160 11.632
+1243.535 523.268 17.489 542.515 8.876 243.501 7.223
+1243.691 520.292 9.600 540.915 7.809 244.285 10.381
+1243.848 522.942 9.901 532.239 7.669 247.612 6.445
+1244.005 515.919 15.173 541.162 8.134 244.496 11.610
+1244.162 521.969 13.567 538.901 7.683 243.765 13.421
+1244.318 534.849 24.684 546.499 12.528 239.147 42.074
+1244.473 516.298 14.940 538.475 8.923 236.971 11.027
+1244.629 524.513 17.689 536.744 7.864 248.849 9.806
+1244.786 523.435 8.273 543.357 9.145 254.388 11.308
+1244.943 518.554 11.485 538.843 8.430 257.873 9.642
+1245.100 521.225 18.574 540.348 10.630 237.858 12.291
+1245.257 532.222 30.378 543.113 17.067 228.798 20.166
+1245.412 518.502 11.548 534.051 11.661 247.137 14.166
+1245.568 514.825 9.040 539.280 10.256 246.251 9.046
+1245.726 523.948 14.140 535.962 8.526 249.372 14.609
+1245.881 525.039 11.660 537.869 8.716 248.743 7.962
+1246.038 526.360 15.733 541.828 8.196 251.857 11.448
+1246.195 525.723 18.579 540.488 9.957 246.248 20.321
+1246.351 525.417 9.568 535.554 10.001 244.822 14.636
+1246.509 516.744 15.025 542.465 10.649 249.698 7.344
+1246.666 523.427 11.520 534.824 9.770 256.127 8.619
+1246.823 525.334 6.940 538.818 9.460 251.201 8.495
+1246.980 531.973 13.512 537.388 11.343 243.372 10.114
+1247.136 545.029 19.266 544.603 15.635 239.383 16.167
+1247.291 529.900 22.797 543.786 8.678 255.583 8.066
+1247.447 522.409 7.413 541.567 7.148 248.795 7.009
+1247.605 510.974 30.876 543.165 12.322 261.628 68.969
+1247.758 516.389 15.070 538.811 9.120 243.896 13.327
+1247.914 521.903 11.398 536.488 9.253 242.408 7.125
+1248.071 517.189 7.923 541.884 9.213 246.204 9.043
+1248.228 527.581 12.235 537.318 8.345 250.112 6.370
+1248.386 518.445 15.242 539.253 10.028 249.021 21.914
+1248.542 520.334 11.551 547.532 8.116 242.290 4.699
+1248.699 503.393 24.323 540.965 9.130 237.572 18.649
+1248.855 522.524 16.189 538.279 8.448 243.875 15.295
+1249.011 522.095 14.592 541.692 14.006 257.598 14.148
+1249.167 511.821 9.429 543.287 7.227 249.256 7.860
+1249.324 529.948 11.737 540.722 8.269 259.602 6.529
+1249.482 517.129 11.926 541.107 8.717 241.106 10.602
+1249.639 520.131 14.986 536.581 9.934 253.101 11.536
+1249.797 526.131 10.254 541.675 12.789 256.061 11.039
+1249.955 514.571 11.564 538.496 7.942 251.370 7.360
+1250.113 518.705 7.723 534.805 8.961 261.483 7.017
+1250.271 510.247 13.515 541.648 7.027 239.934 6.695
+1250.427 516.302 7.897 538.966 7.415 242.189 9.602
+1250.584 520.513 15.454 538.239 7.223 258.421 9.971
+1250.741 507.425 6.834 539.642 8.429 240.884 9.244
+1250.898 517.714 16.266 540.666 8.347 257.398 7.231
+1251.054 507.717 12.210 540.026 8.978 249.674 6.393
+1251.211 509.457 7.814 539.870 6.762 250.906 7.741
+1251.368 512.524 13.961 541.878 8.485 252.729 11.721
+1251.525 501.465 18.405 542.158 11.179 244.617 9.720
+1251.681 510.364 12.188 536.191 6.591 250.926 8.951
+1251.838 508.463 15.533 537.951 8.724 244.409 11.074
+1251.995 501.854 13.059 537.789 10.869 249.544 11.874
+1252.152 502.878 15.951 538.398 8.871 255.515 4.416
+1252.309 501.738 7.646 540.144 6.957 250.555 5.487
+1252.466 501.797 6.586 536.811 7.120 246.825 7.933
+1252.622 503.248 9.749 539.508 8.422 246.368 7.865
+1252.778 505.292 7.520 538.515 7.929 246.853 6.304
+1252.935 503.252 8.918 537.995 7.306 255.748 6.474
+1253.093 505.542 8.038 538.380 7.219 249.857 9.474
+1253.249 496.645 9.857 538.803 6.573 240.168 6.362
+1253.406 504.446 8.731 538.468 7.281 249.221 6.164
+1253.563 505.284 9.992 540.144 7.153 250.402 9.177
+1253.719 499.352 6.373 540.851 6.921 247.704 6.241
+1253.876 497.283 10.837 540.708 7.172 243.717 10.022
+1254.033 505.192 8.082 540.597 7.027 256.217 11.067
+1254.191 505.072 9.493 540.946 6.691 246.262 11.441
+1254.349 499.120 8.546 539.069 6.638 252.722 7.476
+1254.506 509.361 7.805 535.880 8.009 262.387 6.195
+1254.664 496.153 7.782 541.388 7.244 246.273 5.090
+1254.821 503.881 7.926 539.243 7.185 251.062 10.968
+1254.978 498.908 6.647 540.492 10.147 233.540 9.782
+1255.135 489.799 6.963 539.495 6.474 249.885 8.345
+1255.293 507.688 7.066 538.735 7.782 262.258 12.404
+1255.450 499.026 8.280 538.337 6.558 241.462 8.041
+1255.605 497.850 5.603 539.503 7.091 253.934 6.572
+1255.763 500.608 9.998 545.405 6.257 235.149 8.989
+1255.919 498.726 7.314 539.424 6.526 253.631 7.214
+1256.077 503.637 7.008 535.244 6.326 259.646 6.729
+1256.235 498.326 8.579 538.752 7.498 247.346 8.189
+1256.392 499.103 5.912 540.297 6.147 244.713 8.451
+1256.550 502.561 8.279 537.313 6.809 245.517 6.940
+1256.707 496.265 6.288 538.223 6.542 258.295 6.248
+1256.867 501.622 7.030 537.942 6.123 255.772 6.007
+1257.025 503.116 7.613 535.799 6.102 251.517 10.274
+1257.182 506.321 7.637 537.348 8.863 249.595 6.428
+1257.339 506.863 9.181 538.183 6.583 248.345 3.695
+1257.496 497.838 6.822 538.541 6.074 248.023 6.022
+1257.654 495.858 8.363 537.605 8.333 257.990 4.324
+1257.812 500.058 5.784 538.356 6.801 252.639 5.531
+1257.971 502.740 8.992 540.003 6.377 246.476 4.601
+1258.129 500.257 9.122 538.880 6.913 249.104 8.737
+1258.285 497.692 9.491 538.188 9.780 252.871 10.600
+1258.443 505.146 7.530 539.701 7.912 254.458 13.221
+1258.600 501.881 10.746 538.547 6.567 254.394 13.040
+1258.757 500.118 10.687 537.785 8.216 253.923 12.585
+1258.914 500.561 15.702 540.847 7.488 249.929 15.945
+1259.070 500.995 11.181 540.508 6.640 248.839 6.192
+1259.229 497.209 7.664 538.505 6.684 252.228 6.718
+1259.386 504.302 7.470 537.955 7.897 254.862 8.258
+1259.543 505.113 8.872 540.119 7.794 253.208 15.977
+1259.699 500.201 9.650 538.801 6.361 247.602 7.537
+1259.856 497.392 7.295 539.298 7.285 248.436 6.516
+1260.013 504.153 7.335 539.563 6.508 250.804 8.964
+1260.170 504.081 6.139 540.255 6.878 250.018 6.206
+1260.328 505.030 7.332 539.372 6.139 249.740 6.625
+1260.485 502.260 6.459 540.963 6.751 244.687 7.431
+1260.642 498.082 6.957 538.209 6.301 251.316 8.548
+1260.798 499.740 5.766 539.832 7.094 247.653 4.634
+1260.957 498.247 6.321 538.608 6.277 253.756 7.089
+1261.116 497.832 8.447 537.596 7.531 255.307 6.420
+1261.273 507.048 8.818 540.576 8.204 243.623 15.302
+1261.429 503.590 7.440 541.885 6.588 246.186 6.902
+1261.586 499.585 9.541 537.968 6.287 252.951 6.520
+1261.745 498.745 6.285 539.939 6.980 256.989 7.237
+1261.903 500.187 7.402 539.229 6.202 255.319 4.918
+1262.060 501.241 9.618 540.952 7.340 236.293 6.856
+1262.217 501.332 7.468 537.599 6.019 252.862 4.767
+1262.375 501.953 7.709 538.976 6.661 246.418 10.292
+1262.532 490.829 7.684 538.979 7.600 244.524 6.751
+1262.690 496.308 6.888 537.639 7.285 256.025 4.254
+1262.848 502.263 7.902 539.516 6.645 248.000 5.603
+1263.005 498.602 8.612 540.465 6.228 248.640 7.215
+1263.162 495.706 6.504 540.244 6.135 249.726 6.838
+1263.320 495.927 6.980 541.152 7.022 249.277 7.677
+1263.477 495.949 8.131 539.681 6.184 261.042 6.502
+1263.635 488.089 7.308 540.586 6.385 247.820 6.130
+1263.792 495.770 8.098 538.855 11.278 244.708 9.043
+1263.949 490.607 7.242 537.768 7.218 255.047 6.865
+1264.107 495.386 6.563 538.907 7.381 255.780 9.069
+1264.264 499.793 7.524 538.729 9.783 254.377 7.381
+1264.422 490.427 9.249 539.187 10.493 257.283 5.945
+1264.580 495.624 9.692 543.221 8.890 232.662 10.049
+1264.736 497.396 9.771 539.442 8.231 252.326 8.070
+1264.893 493.174 7.914 532.634 8.207 261.843 6.624
+1265.049 492.741 8.436 540.586 9.228 242.018 5.797
+1265.207 502.497 9.534 541.445 8.793 252.900 10.468
+1265.364 493.935 8.498 536.404 8.608 242.988 10.817
+1265.521 493.299 8.635 542.164 8.431 255.029 7.766
+1265.679 493.913 8.189 537.751 7.156 261.200 4.537
+1265.836 484.949 7.585 535.927 8.372 253.052 4.403
+1265.993 487.579 9.987 540.059 9.211 241.490 7.318
+1266.150 501.015 8.686 537.690 7.350 251.824 5.180
+1266.308 480.440 14.823 537.226 12.070 246.498 21.587
+1266.464 485.634 15.196 535.162 9.302 252.805 8.727
+1266.619 490.526 7.248 536.881 7.295 248.868 9.812
+1266.777 492.205 7.567 542.808 8.572 256.098 8.790
+1266.934 493.882 7.053 539.018 7.321 235.051 9.037
+1267.090 479.758 9.751 541.590 8.074 248.360 7.822
+1267.247 498.187 8.457 537.395 7.529 253.823 9.606
+1267.404 489.451 6.377 539.314 8.641 254.068 6.019
+1267.562 477.544 7.468 542.223 6.660 250.580 5.830
+1267.719 491.665 7.721 537.812 7.405 248.895 5.560
+1267.876 488.306 6.921 545.068 7.923 242.798 4.920
+1268.033 479.803 7.292 538.240 8.631 250.467 8.671
+1268.189 493.828 8.901 541.602 10.464 240.974 7.397
+1268.347 486.158 10.617 539.446 7.432 254.659 13.223
+1268.505 483.061 10.141 538.784 8.693 256.366 10.936
+1268.663 488.540 11.293 540.137 11.154 259.383 5.837
+1268.822 472.585 7.128 537.161 6.705 255.213 6.861
+1268.979 491.765 12.987 541.251 11.483 234.842 11.816
+1269.137 487.357 12.229 540.392 7.285 239.748 7.367
+1269.294 481.633 8.111 536.814 8.510 265.397 17.487
+1269.451 490.906 9.665 539.668 7.400 251.394 6.236
+1269.608 485.919 11.394 540.996 8.019 250.103 8.158
+1269.765 483.619 7.967 543.080 8.526 238.441 6.165
+1269.922 475.686 7.344 541.120 7.473 244.274 8.382
+1270.079 489.646 9.405 539.171 9.665 253.762 6.687
+1270.236 489.346 8.948 538.331 7.318 273.317 9.872
+1270.393 482.663 9.367 539.913 6.825 238.223 8.132
+1270.549 483.676 6.099 539.119 7.956 244.742 9.737
+1270.705 477.526 7.541 537.621 7.398 252.737 4.428
+1270.863 470.425 8.549 537.896 8.506 260.607 6.884
+1271.021 487.574 11.209 541.879 7.150 256.836 9.920
+1271.178 495.005 9.408 540.408 10.419 245.908 11.524
+1271.335 480.130 7.465 543.034 8.241 244.859 9.998
+1271.492 479.861 7.729 543.420 8.992 249.548 10.121
+1271.649 482.588 8.373 538.274 7.836 254.895 4.466
+1271.806 474.945 6.777 539.682 6.974 254.978 6.259
+1271.964 479.849 25.091 539.676 12.278 243.539 28.387
+1272.120 499.128 7.303 536.036 7.134 256.705 18.600
+1272.276 491.811 10.115 544.300 8.492 243.897 7.640
+1272.433 477.948 8.918 537.123 8.768 241.238 8.071
+1272.589 479.709 11.885 542.631 9.948 249.902 17.103
+1272.746 489.627 8.217 537.636 9.933 265.889 9.662
+1272.904 474.056 7.253 540.656 8.557 257.358 6.730
+1273.061 480.440 7.443 543.186 6.984 243.193 14.185
+1273.218 488.854 8.859 541.311 9.668 249.491 8.069
+1273.374 491.778 11.061 539.153 8.961 239.514 16.165
+1273.530 483.507 12.182 543.101 7.423 248.615 4.721
+1273.688 483.575 8.221 539.961 7.581 253.856 8.846
+1273.845 484.075 9.939 539.259 7.895 251.638 7.761
+1274.001 474.850 8.933 537.372 8.029 255.246 6.197
+1274.158 491.478 11.738 538.193 7.092 249.682 4.274
+1274.316 489.534 8.433 538.672 7.595 242.306 8.112
+1274.472 479.245 7.968 541.126 8.078 239.763 12.361
+1274.629 498.792 7.010 539.061 7.290 252.597 9.611
+1274.786 495.737 7.204 538.190 7.927 248.196 6.783
+1274.943 481.587 7.445 540.701 7.770 245.082 5.781
+1275.100 492.985 8.070 542.057 6.101 254.700 13.333
+1275.257 496.599 9.455 537.440 7.177 277.887 8.308
+1275.414 493.066 9.269 545.564 7.654 239.818 12.234
+1275.571 483.110 8.290 538.525 7.535 236.468 6.923
+1275.727 493.241 6.256 539.285 6.796 257.074 4.999
+1275.885 498.682 10.327 537.892 7.232 258.520 7.174
+1276.043 493.706 8.732 538.868 7.787 253.715 10.673
+1276.200 491.647 6.437 540.458 6.831 243.257 4.749
+1276.358 504.996 9.812 539.364 6.548 238.732 9.717
+1276.514 490.930 8.218 538.363 7.375 245.867 8.754
+1276.671 497.229 13.791 540.323 8.203 258.948 10.328
+1276.828 499.532 11.198 539.733 7.529 244.679 9.750
+1276.986 499.205 7.895 539.247 7.939 246.576 7.255
+1277.142 500.112 8.067 541.572 6.701 240.955 6.317
+1277.298 501.691 8.298 539.825 8.673 256.059 6.355
+1277.457 502.046 10.238 539.688 7.194 248.530 5.472
+1277.614 507.160 7.517 540.497 9.528 249.185 13.935
+1277.771 496.891 7.719 542.215 6.946 243.491 7.832
+1277.928 504.438 8.019 541.182 8.525 253.624 11.613
+1278.085 508.254 8.839 539.941 6.583 257.656 13.861
+1278.243 509.592 8.938 536.999 7.476 260.186 7.714
+1278.401 503.395 14.142 549.380 7.620 235.311 14.997
+1278.557 506.704 7.503 540.333 6.418 253.483 7.658
+1278.715 508.527 7.311 540.543 6.696 265.534 6.340
+1278.873 502.615 8.394 538.885 6.568 248.745 8.401
+1279.029 511.956 6.153 540.848 7.105 243.727 7.364
+1279.187 503.349 10.453 543.758 7.623 239.897 10.429
+1279.345 510.783 10.486 536.517 8.101 257.119 12.967
+1279.502 507.047 9.136 536.655 6.755 250.551 7.425
+1279.659 502.440 6.383 544.406 7.954 243.215 6.524
+1279.816 506.214 8.281 540.544 8.375 252.072 10.847
+1279.973 517.922 9.379 543.605 6.676 251.930 10.806
+1280.130 514.799 8.603 545.156 8.671 247.459 16.030
+1280.286 510.608 6.707 540.181 7.591 249.174 6.527
+1280.444 514.526 9.150 543.191 10.805 244.451 8.489
+1280.601 512.025 8.174 540.361 8.081 241.594 6.542
+1280.757 510.480 8.720 536.633 8.633 252.785 9.212
+1280.914 513.414 21.930 540.006 9.909 245.947 18.599
+1281.071 504.134 9.069 544.140 9.486 249.379 6.346
+1281.228 520.881 11.399 537.721 8.010 253.303 9.952
+1281.385 525.918 12.942 534.007 10.533 255.503 9.106
+1281.543 512.739 10.306 547.160 11.186 235.625 10.360
+1281.700 513.437 10.520 538.951 8.494 230.626 16.600
+1281.856 518.024 9.216 541.729 9.521 258.046 13.740
+1282.014 520.640 9.472 539.407 8.279 258.760 9.876
+1282.171 507.856 9.435 537.134 7.699 245.697 8.429
+1282.327 510.948 8.796 537.291 7.862 245.587 9.619
+1282.483 509.639 17.103 540.423 8.599 253.515 16.333
+1282.639 512.086 9.581 536.954 7.646 254.315 9.561
+1282.796 520.430 9.705 539.639 10.318 240.543 10.527
+1282.953 506.244 10.220 542.866 12.058 240.995 8.374
+1283.110 513.662 7.499 536.648 10.676 256.759 7.070
+1283.269 509.836 9.220 538.206 7.159 240.937 8.628
+1283.426 518.168 8.679 537.312 8.554 255.109 6.567
+1283.583 509.831 11.433 542.903 8.421 244.591 7.685
+1283.739 507.048 8.295 537.609 7.179 242.785 5.006
+1283.897 511.820 8.067 541.486 9.417 248.027 6.643
+1284.055 515.998 7.678 539.004 6.993 254.110 9.629
+1284.213 509.350 6.767 539.280 8.164 247.221 12.580
+1284.369 512.123 8.606 540.432 7.884 249.632 9.789
+1284.526 515.021 10.863 543.764 7.924 243.756 9.373
+1284.683 510.470 6.861 536.927 9.158 246.967 6.706
+1284.841 514.294 8.284 541.059 7.976 244.189 9.227
+1284.998 513.063 8.690 545.710 8.666 243.681 5.346
+1285.155 523.010 10.586 539.597 6.783 249.506 9.273
+1285.313 509.090 8.430 539.056 7.499 252.815 9.531
+1285.469 524.030 7.975 542.500 8.942 246.928 6.608
+1285.625 511.470 11.457 540.385 11.055 236.269 6.173
+1285.783 524.744 9.286 539.933 9.560 240.642 7.227
+1285.940 520.647 12.198 539.459 8.853 242.216 10.964
+1286.097 518.816 13.279 537.954 7.529 250.982 8.536
+1286.254 520.858 12.042 540.949 7.475 243.479 12.349
+1286.411 516.348 8.001 540.109 6.472 251.854 5.878
+1286.569 523.033 8.736 540.971 9.514 254.098 11.204
+1286.726 520.220 13.256 540.969 8.288 241.331 8.578
+1286.883 518.502 9.369 539.929 8.353 247.563 8.513
+1287.040 521.805 9.036 532.329 9.526 254.565 11.544
+1287.197 513.848 7.775 544.263 11.069 238.755 8.707
+1287.354 514.438 15.448 538.992 8.076 254.187 9.984
+1287.510 521.194 7.638 541.610 8.172 248.631 4.796
+1287.667 515.461 9.309 538.366 9.565 246.016 6.670
+1287.824 520.444 7.023 537.903 8.359 248.490 6.684
+1287.981 511.704 7.836 541.549 10.401 242.904 5.667
+1288.139 512.407 7.555 537.645 9.004 249.129 8.211
+1288.296 509.314 9.849 541.766 8.229 244.011 4.768
+1288.453 516.653 8.268 539.057 8.229 247.360 7.040
+1288.611 513.916 7.364 537.740 9.083 255.893 7.049
+1288.769 511.829 8.084 540.747 7.973 238.148 6.523
+1288.926 513.608 8.091 541.667 9.252 239.081 9.500
+1289.082 512.376 8.245 539.706 8.329 249.990 6.357
+1289.241 524.763 13.677 536.837 8.921 263.239 18.390
+1289.397 518.067 8.696 544.238 8.812 246.752 13.984
+1289.555 516.120 9.257 541.632 9.208 249.207 11.916
+1289.712 512.221 9.191 540.866 9.911 239.902 9.108
+1289.869 509.602 8.352 542.148 7.650 241.939 6.513
+1290.026 514.116 9.087 539.621 11.110 253.079 7.562
+1290.183 515.081 13.989 536.426 8.844 256.210 11.648
+1290.340 513.940 8.179 538.434 7.597 248.472 7.555
+1290.497 516.939 8.205 540.314 7.352 246.564 6.714
+1290.654 511.689 8.283 538.793 9.246 232.575 7.080
+1290.811 512.206 7.226 540.698 8.388 246.825 6.832
+1290.969 509.312 7.662 538.707 6.801 257.598 7.247
+1291.126 507.973 7.053 538.877 6.550 249.096 12.952
+1291.284 502.359 7.655 539.838 8.091 244.420 5.547
+1291.441 509.423 9.812 539.948 8.748 245.314 11.830
+1291.597 502.764 8.587 541.129 6.614 245.983 5.169
+1291.755 512.867 8.798 538.831 6.479 252.739 11.706
+1291.912 505.118 7.506 541.218 7.304 242.337 10.519
+1292.068 501.731 15.782 539.212 7.522 244.933 9.408
+1292.225 502.287 7.301 540.582 7.479 252.209 10.346
+1292.382 506.112 8.117 539.145 7.038 251.662 7.622
+1292.539 507.871 8.399 539.861 6.948 249.116 6.095
+1292.697 505.528 7.166 540.188 7.345 249.851 9.291
+1292.854 495.885 6.308 539.191 6.151 251.018 11.017
+1293.012 500.088 6.941 540.352 6.837 247.660 9.935
+1293.170 507.000 9.808 535.253 6.515 263.736 5.036
+1293.328 500.890 8.137 539.922 7.891 245.737 5.867
+1293.485 499.018 10.493 540.699 6.942 249.977 9.558
+1293.642 504.560 10.331 538.917 9.087 256.169 18.496
+1293.798 499.345 10.660 539.479 6.918 243.311 8.295
+1293.956 502.493 6.648 541.554 8.582 249.623 9.006
+1294.112 509.024 7.351 540.435 7.407 247.896 5.888
+1294.271 500.710 7.748 541.084 6.114 246.348 5.403
+1294.428 500.627 7.068 537.520 6.901 245.023 10.887
+1294.585 500.496 7.216 540.045 7.184 254.210 8.025
+1294.743 504.265 8.985 540.110 6.862 248.422 13.099
+1294.900 504.522 9.864 538.541 7.119 251.394 14.902
+1295.056 501.585 8.857 539.465 7.418 250.073 7.890
+1295.212 503.245 8.122 539.374 6.428 251.780 5.910
+1295.369 498.702 9.387 540.493 6.507 244.997 8.483
+1295.526 498.627 14.123 538.194 8.085 241.479 17.004
+1295.681 497.636 14.330 540.162 9.539 248.174 23.559
+1295.837 499.726 9.421 539.691 8.206 252.351 13.285
+1295.993 497.987 9.269 540.847 8.279 252.523 7.521
+1296.150 500.149 10.298 540.008 7.763 247.375 7.254
+1296.308 491.631 9.254 543.230 9.155 246.573 9.708
+1296.465 501.006 14.228 540.732 8.977 257.915 5.916
+1296.622 498.330 10.577 538.527 9.977 250.459 7.170
+1296.779 503.863 9.928 541.145 9.411 252.804 11.073
+1296.936 502.298 17.489 540.311 8.883 249.128 34.316
+1297.091 499.833 8.701 540.463 8.594 243.641 15.651
+1297.247 502.558 8.411 540.624 7.110 254.306 5.850
+1297.405 495.475 7.179 537.046 7.565 250.293 10.564
+1297.562 503.544 15.641 539.730 9.830 249.322 8.887
+1297.718 501.565 11.055 540.707 7.992 247.913 18.888
+1297.875 501.275 6.529 540.187 7.119 252.779 6.710
+1298.033 499.502 7.876 538.731 6.939 247.717 10.097
+1298.190 497.795 8.256 539.117 6.243 256.277 4.230
+1298.348 501.288 7.337 538.451 7.682 253.472 8.312
+1298.505 500.762 7.365 539.654 7.991 251.094 6.410
+1298.663 491.717 11.313 538.646 6.975 247.050 5.108
+1298.820 498.487 8.551 538.126 7.854 248.020 5.809
+1298.978 489.914 6.861 541.111 7.008 255.590 5.778
+1299.136 495.989 7.948 537.741 8.506 253.725 7.431
+1299.293 489.399 7.975 537.277 7.118 249.707 9.681
+1299.449 500.884 6.463 537.962 6.478 259.387 7.294
+1299.607 486.058 11.402 544.129 8.334 236.523 12.005
+1299.764 491.580 9.506 536.341 8.397 248.145 5.318
+1299.921 481.185 8.274 537.293 8.374 256.401 8.413
+1300.078 489.841 8.558 544.823 9.518 245.004 6.327
+1300.236 486.968 7.870 538.308 7.577 258.320 10.740
+1300.393 479.569 8.163 541.223 7.289 241.293 8.283
+1300.549 491.985 7.364 540.312 10.427 244.232 8.114
+1300.705 471.059 10.241 537.273 8.552 239.472 14.291
+1300.862 479.700 8.769 538.462 7.796 254.824 11.972
+1301.019 493.047 7.291 539.094 8.278 259.618 5.823
+1301.176 485.160 7.108 544.441 8.675 242.166 6.417
+1301.333 479.401 7.040 537.414 7.403 250.191 8.765
+1301.490 484.194 7.047 539.284 7.546 246.631 6.383
+1301.648 483.531 12.144 534.792 6.789 258.426 11.797
+1301.806 478.025 8.467 536.008 7.887 249.264 16.838
+1301.962 488.310 6.769 546.070 7.664 253.292 12.869
+1302.119 474.843 8.614 540.320 7.056 241.742 6.003
+1302.277 474.588 7.096 539.203 7.700 256.407 7.477
+1302.435 486.855 7.042 537.852 7.510 259.734 7.403
+1302.592 485.288 9.403 537.908 9.287 250.857 14.253
+1302.748 476.662 8.351 544.859 7.878 241.798 8.026
+1302.904 477.826 6.721 541.098 10.354 238.957 10.074
+1303.062 478.768 7.690 534.771 8.122 260.459 5.626
+1303.220 480.557 7.763 540.327 8.892 255.404 5.289
+1303.378 485.155 8.259 536.193 7.874 258.104 6.723
+1303.535 477.981 7.653 540.122 6.894 246.291 7.654
+1303.692 483.799 8.681 544.371 6.531 242.632 10.268
+1303.849 481.198 10.877 540.503 11.557 251.776 10.696
+1304.007 482.232 7.056 536.825 8.111 265.457 5.375
+1304.165 479.242 9.592 538.298 8.742 249.554 8.449
+1304.322 481.902 12.505 540.673 7.966 248.005 10.005
+1304.479 476.009 9.790 535.056 9.368 256.100 14.243
+1304.637 481.590 6.956 540.440 10.333 251.441 12.804
+1304.795 482.675 11.277 536.664 7.904 252.394 16.150
+1304.952 496.226 8.307 541.816 7.264 257.863 5.520
+1305.110 482.952 8.776 542.138 7.531 243.178 6.080
+1305.268 478.179 6.771 533.951 9.695 257.651 9.859
+1305.425 482.281 8.585 539.939 11.477 252.816 10.625
+1305.582 485.752 10.346 540.149 7.589 254.888 4.864
+1305.739 482.047 7.760 539.951 6.998 250.058 8.384
+1305.897 481.120 7.297 539.399 7.528 244.060 8.678
+1306.053 478.121 7.573 540.394 7.143 253.920 4.936
+1306.211 479.251 8.030 539.803 8.573 256.599 5.501
+1306.369 484.422 7.007 545.778 6.875 252.606 6.672
+1306.526 481.904 7.709 540.027 8.746 251.686 8.918
+1306.683 481.549 10.743 538.600 8.463 253.596 13.894
+1306.841 483.115 6.824 539.856 11.013 260.505 8.715
+1306.998 482.411 9.800 538.538 8.679 253.775 9.099
+1307.155 482.684 8.244 540.615 9.970 251.637 5.994
+1307.312 484.926 7.795 536.886 10.720 254.276 8.193
+1307.470 490.119 7.780 539.948 10.847 254.362 5.191
+1307.628 486.581 7.345 539.309 13.966 251.593 7.363
+1307.783 477.295 6.240 539.233 9.690 245.885 5.946
+1307.942 484.902 7.238 539.262 8.628 256.698 5.510
+1308.100 482.049 7.426 539.552 8.290 255.007 6.152
+1308.258 480.030 8.235 537.825 11.345 250.230 5.751
+1308.416 491.790 11.001 541.418 7.575 249.352 7.235
+1308.573 478.607 8.832 538.874 7.588 244.603 8.467
+1308.730 476.666 7.949 535.518 7.466 253.436 6.447
+1308.887 486.916 9.008 538.495 12.344 253.154 5.674
+1309.044 487.009 7.824 539.034 8.537 251.831 6.543
+1309.201 478.050 6.693 539.310 7.044 243.688 8.517
+1309.357 483.670 6.458 539.533 10.076 255.776 5.327
+1309.516 485.806 6.105 535.935 8.807 257.027 4.477
+1309.674 473.678 8.072 537.489 8.729 251.710 6.484
+1309.831 482.546 9.274 539.354 8.204 241.627 7.453
+1309.988 486.965 8.000 538.003 7.060 254.826 4.604
+1310.145 478.389 8.465 533.700 8.404 249.308 9.044
+1310.302 483.723 7.387 538.477 9.266 257.553 6.383
+1310.460 478.387 7.214 537.254 10.560 247.535 6.944
+1310.617 484.943 12.227 535.692 8.018 252.365 16.003
+1310.773 477.029 8.550 533.657 9.102 246.103 19.079
+1310.929 484.280 8.057 535.876 8.103 253.921 5.646
+1311.087 483.582 6.391 534.808 6.704 250.859 5.931
+1311.245 487.325 8.557 533.658 8.277 250.918 5.927
+1311.403 479.713 10.368 537.946 7.748 252.429 8.204
+1311.561 487.947 7.876 533.809 9.139 256.934 6.230
+1311.717 479.769 9.378 539.488 8.281 246.149 7.903
+1311.874 483.087 8.441 535.724 8.290 253.791 6.542
+1312.031 484.080 8.529 532.057 9.458 250.797 11.921
+1312.187 474.580 8.525 533.450 10.242 245.187 5.790
+1312.345 488.775 7.007 531.414 9.108 253.471 8.727
+1312.502 486.907 9.388 530.684 10.883 247.584 12.059
+1312.659 492.069 7.859 533.436 7.648 249.255 13.802
+1312.816 484.870 11.469 532.154 7.198 249.272 6.189
+1312.974 492.698 12.560 530.171 8.841 247.532 5.565
+1313.131 488.967 7.046 529.841 7.177 252.225 4.413
+1313.289 486.499 7.655 533.448 7.020 245.422 6.432
+1313.445 499.005 7.762 530.854 7.113 250.774 5.317
+1313.603 485.980 7.177 527.368 7.234 245.457 12.012
+1313.761 499.309 7.639 534.143 7.909 254.594 6.877
+1313.918 488.333 6.940 529.471 8.481 252.235 7.386
+1314.075 494.083 7.890 534.614 8.127 251.302 7.915
+1314.231 497.440 7.319 532.676 7.814 248.023 8.669
+1314.388 498.134 6.951 526.986 7.379 250.280 8.159
+1314.545 497.291 8.282 529.769 7.707 245.422 8.822
+1314.702 494.642 7.882 531.717 7.107 251.384 7.765
+1314.858 498.286 8.950 531.607 6.856 249.283 6.710
+1315.015 502.612 8.134 529.936 6.728 250.792 13.563
+1315.171 502.506 11.555 531.259 6.925 246.267 6.025
+1315.328 502.375 7.772 531.562 8.743 251.142 6.838
+1315.485 492.733 8.787 529.785 7.232 248.781 8.678
+1315.642 505.997 8.424 529.767 8.969 252.167 11.662
+1315.800 505.830 14.801 531.157 8.259 248.591 19.275
+1315.956 491.078 13.241 527.401 9.462 236.125 15.439
+1316.111 511.040 11.421 527.054 9.116 248.401 14.832
+1316.268 495.540 8.636 530.270 10.053 246.164 11.719
+1316.424 503.495 10.064 531.272 10.054 251.411 6.272
+1316.582 489.914 8.330 528.612 8.019 249.954 12.228
+1316.739 505.199 7.872 531.116 9.332 247.739 18.043
+1316.896 503.392 16.814 540.801 7.769 255.827 17.293
+1317.051 496.883 10.782 534.088 9.490 241.658 10.613
+1317.208 498.808 8.294 533.640 8.100 253.726 8.372
+1317.365 500.408 7.225 537.806 10.137 253.847 6.005
+1317.523 502.424 8.345 546.718 6.641 254.888 6.208
+1317.681 494.694 8.777 541.667 6.725 250.378 7.598
+1317.839 501.956 8.409 536.916 7.486 251.723 6.972
+1317.996 500.979 11.136 539.289 9.032 244.677 17.231
+1318.152 490.239 12.955 537.843 7.785 244.406 9.540
+1318.309 499.142 9.824 535.478 8.042 257.364 6.847
+1318.466 508.061 10.225 536.854 8.524 248.933 10.143
+1318.624 502.400 9.790 538.358 7.214 252.709 7.391
+1318.781 496.094 12.897 543.193 6.823 253.337 10.176
+1318.938 501.840 11.942 539.832 8.161 254.303 8.323
+1319.096 504.208 7.286 538.288 8.287 248.803 9.057
+1319.253 503.572 12.966 538.412 8.859 245.878 28.159
+1319.408 499.595 11.328 541.824 7.611 250.958 15.683
+1319.565 494.635 9.416 541.078 6.938 250.999 15.383
+1319.722 501.536 7.408 538.990 7.238 252.810 10.690
+1319.880 500.555 6.508 540.429 7.229 252.108 14.150
+1320.037 501.925 9.430 539.724 6.412 249.101 8.792
+1320.194 509.639 12.070 541.167 6.530 252.941 10.664
+1320.352 495.996 8.420 540.841 8.792 242.369 13.223
+1320.508 500.000 13.469 539.378 8.379 249.643 18.105
+1320.663 504.269 10.333 540.653 6.040 254.736 6.862
+1320.822 502.672 10.093 538.376 6.557 258.567 9.080
+1320.979 497.036 7.264 540.273 6.616 243.315 6.403
+1321.136 497.780 8.105 540.972 7.561 251.023 8.240
+1321.293 506.267 12.204 538.539 8.668 257.320 8.638
+1321.450 498.522 7.170 540.235 10.158 242.083 6.703
+1321.607 502.575 6.704 541.162 9.069 255.250 10.136
+1321.765 503.735 7.223 538.691 7.918 246.922 10.858
+1321.922 501.717 7.261 538.407 6.672 249.169 7.613
+1322.080 499.077 6.551 540.994 6.119 243.521 5.572
+1322.239 502.060 8.456 539.750 6.341 246.115 7.084
+1322.396 504.400 6.775 541.027 6.639 246.001 5.077
+1322.554 504.854 11.894 541.820 7.563 245.980 13.932
+1322.710 501.218 7.558 540.368 6.908 248.609 5.733
+1322.868 499.552 11.520 538.613 8.768 254.166 5.444
+1323.025 498.415 6.466 539.836 6.267 248.461 5.055
+1323.184 502.664 7.310 540.628 6.816 247.384 6.813
+1323.341 496.706 9.605 541.266 6.851 247.023 12.694
+1323.497 498.517 10.488 538.942 6.720 250.690 5.845
+1323.654 502.845 6.985 541.379 6.093 244.836 11.506
+1323.812 502.868 8.762 541.423 6.838 251.168 5.644
+1323.970 499.148 12.296 539.624 6.360 243.141 10.326
+1324.127 501.151 8.455 538.146 7.552 245.131 12.657
+1324.285 502.181 7.322 541.011 7.679 256.271 10.728
+1324.443 501.381 7.833 536.840 8.990 263.902 14.149
+1324.601 501.363 7.719 542.518 6.907 231.259 7.278
+1324.758 500.023 12.359 540.295 8.005 243.242 11.039
+1324.915 501.760 7.838 538.913 6.714 253.252 6.185
+1325.074 502.817 6.893 537.059 6.312 260.912 5.470
+1325.233 500.388 7.461 539.190 6.811 243.809 4.169
+1325.390 501.083 6.762 541.181 6.476 240.658 5.334
+1325.548 501.840 6.956 539.511 6.773 247.236 6.740
+1325.705 512.508 7.873 537.745 6.780 258.172 5.490
+1325.863 501.555 6.834 540.107 6.644 243.991 5.616
+1326.021 504.285 6.338 539.411 7.629 246.339 4.658
+1326.178 506.432 6.905 537.014 6.436 256.483 5.000
+1326.337 501.254 6.929 539.670 6.853 253.714 3.816
+1326.495 498.932 7.263 539.386 6.584 246.627 4.890
+1326.652 506.929 7.358 539.043 6.958 250.856 6.676
+1326.810 511.039 7.477 539.770 7.170 256.308 8.483
+1326.967 507.420 8.917 540.877 6.345 254.593 5.137
+1327.125 507.564 6.384 535.488 6.176 249.195 7.698
+1327.283 502.895 7.566 539.234 9.023 248.531 6.358
+1327.440 507.849 6.169 541.962 7.793 249.495 6.134
+1327.598 511.678 8.117 540.219 8.664 247.454 5.048
+1327.755 506.856 7.460 539.152 8.029 253.314 7.386
+1327.912 510.898 8.105 540.421 7.202 247.043 6.035
+1328.071 504.899 8.169 538.524 12.718 263.570 8.663
+1328.228 509.319 11.153 537.905 8.612 241.215 19.135
+1328.385 511.103 9.028 536.389 9.956 257.002 11.892
+1328.543 508.071 8.690 538.213 8.717 239.910 8.732
+1328.699 512.330 7.968 538.322 8.093 240.499 8.479
+1328.856 519.723 9.028 535.173 7.972 255.665 8.656
+1329.012 508.627 11.265 539.151 8.270 239.466 7.914
+1329.169 500.816 11.458 539.921 6.768 240.984 13.729
+1329.326 509.578 7.266 538.069 8.796 255.219 7.103
+1329.483 511.285 9.761 539.070 8.559 251.602 8.351
+1329.639 508.502 8.072 538.340 8.683 245.026 12.504
+1329.796 509.795 7.598 538.883 6.697 239.890 11.207
+1329.953 512.578 8.218 538.908 8.835 246.908 14.926
+1330.110 504.975 9.708 538.339 8.951 250.689 10.091
+1330.266 516.459 6.409 539.693 6.585 252.866 4.755
+1330.424 505.964 10.233 537.697 8.047 245.088 6.838
+1330.581 505.469 7.567 539.557 9.103 243.590 6.888
+1330.738 507.224 7.043 542.005 7.502 246.795 5.484
+1330.896 508.592 7.517 543.960 7.833 248.297 11.065
+1331.053 505.305 9.214 538.579 8.697 248.062 6.237
+1331.211 502.883 9.362 540.305 7.155 246.080 4.172
+1331.367 513.948 6.400 538.973 7.866 249.810 5.791
+1331.526 509.359 8.574 540.529 7.677 255.368 10.642
+1331.684 507.563 8.191 541.385 7.199 248.303 8.757
+1331.840 504.005 6.647 538.823 7.078 246.103 5.440
+1331.998 510.980 7.260 537.298 7.012 244.391 5.722
+1332.156 505.789 13.564 537.483 6.748 254.443 6.824
+1332.313 505.287 7.394 540.394 7.671 252.214 6.404
+1332.470 506.692 7.194 536.564 6.705 244.412 5.287
+1332.628 501.216 7.311 537.715 7.058 248.554 5.898
+1332.786 509.962 8.005 540.277 7.239 250.045 7.918
+1332.943 506.659 9.828 538.012 7.068 250.200 6.291
+1333.100 503.876 8.214 539.550 7.019 245.822 7.334
+1333.256 504.618 8.685 538.545 6.766 249.258 4.315
+1333.413 504.436 7.886 537.175 6.444 249.612 5.502
+1333.570 502.474 11.141 536.751 7.112 248.626 6.582
+1333.727 503.904 6.916 537.377 6.265 251.966 5.121
+1333.885 500.839 6.287 541.453 7.210 244.849 5.741
+1334.043 506.788 8.323 540.124 6.499 246.968 6.219
+1334.200 507.737 7.508 538.371 7.437 254.059 7.475
+1334.357 501.837 7.963 539.793 6.380 245.980 5.511
+1334.515 506.958 12.546 537.288 8.483 252.449 14.333
+1334.672 495.799 9.336 539.612 7.330 249.254 14.956
+1334.828 500.808 8.139 539.416 7.212 248.252 7.157
+1334.985 504.998 6.405 538.114 7.044 254.542 6.389
+1335.143 499.820 8.327 539.491 7.627 251.685 6.072
+1335.300 503.928 11.261 537.364 7.489 250.106 5.323
+1335.458 497.809 8.189 540.613 6.786 239.931 4.505
+1335.615 502.048 11.195 536.666 14.007 259.839 5.941
+1335.773 500.730 12.807 540.716 8.965 231.708 12.991
+1335.928 495.727 8.116 539.887 13.366 240.767 14.734
+1336.084 506.187 9.187 539.028 10.120 268.747 4.795
+1336.242 502.551 8.117 537.530 6.673 252.897 4.813
+1336.399 502.475 7.096 538.395 6.538 248.968 4.118
+1336.557 499.914 7.535 544.874 6.295 224.069 6.316
+1336.714 501.759 7.906 538.718 6.823 253.620 8.441
+1336.871 498.387 6.949 536.907 6.812 263.076 9.492
+1337.029 502.853 8.732 539.149 8.687 259.720 8.220
+1337.186 498.398 6.967 540.151 6.252 241.627 5.927
+1337.344 499.024 7.038 542.891 6.420 242.376 5.535
+1337.502 502.660 6.730 537.259 8.209 259.523 4.952
+1337.660 501.176 7.784 539.342 9.558 249.275 6.579
+1337.817 501.741 9.925 538.713 7.006 264.252 12.723
+1337.974 500.357 12.353 540.137 10.894 241.042 7.044
+1338.131 504.493 8.702 540.671 9.296 248.600 5.242
+1338.289 507.194 7.620 539.076 6.300 246.136 7.359
+1338.446 503.021 8.698 540.760 7.789 247.691 8.949
+1338.603 500.650 6.415 536.627 6.744 258.146 7.149
+1338.761 498.486 8.425 539.506 6.151 244.781 11.317
+1338.918 501.754 7.952 539.255 7.386 246.967 7.097
+1339.075 506.057 6.413 540.272 6.495 243.859 8.361
+1339.232 503.220 7.158 540.662 7.092 254.248 5.405
+1339.390 502.802 8.630 539.226 7.395 252.942 8.711
+1339.548 499.598 7.531 538.342 6.857 251.809 4.882
+1339.705 499.596 6.418 539.253 6.372 239.058 7.412
+1339.862 505.645 7.297 538.122 8.457 254.850 5.306
+1340.020 496.856 9.117 541.281 10.314 242.718 5.556
+1340.177 500.718 6.544 541.402 6.821 246.957 5.435
+1340.336 502.677 8.923 536.724 6.873 260.889 12.831
+1340.495 503.866 10.204 539.137 8.065 260.928 12.990
+1340.651 505.018 10.356 537.871 7.795 250.489 4.256
+1340.809 502.900 7.540 543.508 6.690 237.684 7.281
+1340.966 497.839 10.311 540.665 7.870 243.636 7.664
+1341.123 492.628 8.275 538.746 7.036 261.306 8.179
+1341.280 498.326 6.223 537.387 7.047 259.863 7.367
+1341.438 508.883 10.521 539.843 11.758 240.828 11.868
+1341.594 504.458 12.003 541.308 7.058 243.908 9.869
+1341.751 508.344 8.643 540.683 9.818 238.219 10.770
+1341.908 504.373 9.520 538.276 8.853 269.202 11.736
+1342.065 495.043 7.191 536.462 8.844 249.592 7.759
+1342.222 488.190 9.217 542.194 6.485 239.925 12.902
+1342.379 509.241 12.710 537.222 7.895 255.039 12.009
+1342.536 499.462 14.639 538.952 8.324 245.430 22.262
+1342.693 491.464 11.547 537.579 6.706 250.264 9.623
+1342.851 515.894 7.203 539.645 6.946 258.032 10.778
+1343.009 497.929 7.908 542.176 7.797 239.700 8.501
+1343.165 491.119 6.956 540.341 6.602 254.127 6.838
+1343.323 500.521 7.094 538.523 7.583 256.121 8.952
+1343.480 510.445 9.504 538.595 7.629 251.551 13.944
+1343.636 504.604 7.989 541.306 9.241 239.105 8.659
+1343.792 500.806 6.832 539.423 7.532 247.431 5.558
+1343.950 500.728 7.123 540.314 7.025 254.124 7.459
+1344.108 500.617 11.588 537.353 6.769 243.171 15.857
+1344.265 500.846 10.433 540.763 8.005 247.251 9.794
+1344.421 500.978 12.058 544.007 8.287 245.672 13.132
+1344.579 504.919 14.187 537.870 7.887 259.626 17.608
+1344.735 504.159 8.903 535.688 8.139 257.436 8.937
+1344.891 495.561 9.898 543.716 7.279 236.054 9.903
+1345.047 492.785 8.168 543.437 6.813 239.170 6.720
+1345.205 502.237 8.300 534.974 12.548 266.641 10.025
+1345.362 491.602 7.359 539.719 9.046 263.326 5.164
+1345.520 492.106 11.414 538.657 6.243 252.713 16.130
+1345.676 491.161 8.657 542.896 7.761 244.317 7.326
+1345.833 489.051 7.187 540.849 6.335 248.143 7.641
+1345.991 494.770 6.585 541.398 7.371 253.551 6.502
+1346.149 490.357 8.319 540.174 7.114 257.465 8.102
+1346.305 490.763 8.836 538.331 6.623 251.464 5.154
+1346.463 480.417 8.801 540.243 7.110 243.544 5.844
+1346.620 485.264 10.092 540.482 6.471 252.555 5.670
+1346.778 482.952 12.804 542.644 7.518 256.575 8.928
+1346.936 490.929 8.089 537.006 6.878 249.835 13.116
+1347.092 485.079 8.607 541.450 7.256 247.398 4.026
+1347.249 495.240 7.635 545.874 7.251 249.333 6.721
+1347.406 482.542 9.867 538.888 6.482 252.963 10.571
+1347.562 471.025 10.473 538.748 7.478 255.399 10.272
+1347.720 477.520 7.755 539.447 6.705 257.944 5.837
+1347.879 488.025 8.406 540.194 7.213 258.619 7.524
+1348.037 490.980 5.926 539.722 6.373 257.046 6.052
+1348.195 480.639 8.946 542.357 6.971 237.400 8.104
+1348.352 494.836 12.099 539.683 7.509 246.864 5.853
+1348.509 488.778 6.760 538.496 7.143 251.218 7.270
+1348.667 475.597 9.890 539.405 7.045 253.662 12.001
+1348.824 476.626 9.549 538.914 7.501 250.476 11.194
+1348.982 483.026 11.024 538.069 8.258 255.814 10.053
+1349.140 477.360 12.050 538.670 6.492 253.218 14.652
+1349.296 479.683 12.414 540.486 10.107 251.792 6.844
+1349.454 482.756 8.071 537.954 6.286 251.157 10.081
+1349.610 491.777 5.918 542.459 6.913 251.191 3.845
+1349.769 486.807 16.311 546.844 8.980 252.461 14.793
+1349.924 478.858 8.635 539.238 8.225 250.204 11.035
+1350.082 482.178 7.304 539.142 7.547 249.922 4.186
+1350.240 468.141 13.222 537.811 9.661 254.559 10.061
+1350.398 479.481 11.263 538.918 7.402 260.185 8.026
+1350.555 484.084 10.101 543.699 10.012 244.621 11.235
+1350.711 481.310 6.694 536.417 9.036 247.886 5.218
+1350.871 491.103 11.101 537.134 8.058 265.938 11.642
+1351.028 481.301 7.448 539.911 6.754 250.269 14.971
+1351.184 484.933 6.452 541.179 8.315 246.472 17.230
+1351.340 461.069 14.375 537.581 9.685 239.624 7.459
+1351.496 489.080 16.139 539.865 7.558 265.166 13.682
+1351.652 472.860 11.256 540.838 8.576 251.471 14.597
+1351.809 470.098 12.211 540.108 8.841 254.134 13.958
+1351.966 482.911 9.892 538.801 8.780 261.761 9.144
+1352.123 483.349 13.432 545.088 8.074 221.177 28.270
+1352.278 478.473 8.549 538.610 9.164 256.771 8.573
+1352.436 481.164 6.091 537.486 8.078 268.937 7.531
+1352.593 474.861 9.770 539.774 7.883 252.769 7.887
+1352.749 471.088 11.151 540.057 8.018 248.097 7.637
+1352.906 484.090 9.817 543.260 9.121 246.761 8.425
+1353.063 484.330 11.420 540.102 8.397 254.867 5.527
+1353.222 488.343 15.012 536.541 7.437 269.818 6.346
+1353.380 488.033 9.903 545.275 7.676 233.248 5.998
+1353.538 478.610 6.916 543.202 7.588 237.312 5.877
+1353.696 477.496 7.573 537.832 7.190 260.033 5.031
+1353.855 484.335 6.280 537.768 7.222 262.380 5.643
+1354.014 485.273 8.722 541.037 8.156 257.823 4.968
+1354.172 483.382 7.992 543.300 7.315 238.998 8.573
+1354.328 486.803 9.716 542.523 7.345 245.320 7.768
+1354.486 480.508 9.520 537.095 6.978 262.743 9.195
+1354.643 486.265 7.612 542.831 7.379 250.657 15.960
+1354.800 479.582 14.867 537.988 7.784 258.716 7.767
+1354.957 469.605 9.479 540.119 7.557 253.067 6.217
+1355.115 474.746 15.583 540.231 8.288 253.300 15.444
+1355.272 493.517 10.407 539.242 7.681 249.163 12.206
+1355.429 481.915 8.278 539.002 7.739 250.271 14.540
+1355.586 468.159 12.946 536.930 10.646 239.812 15.902
+1355.742 487.331 12.985 542.959 7.935 256.458 13.131
+1355.900 476.603 10.917 543.299 7.281 259.164 7.896
+1356.057 478.206 6.798 539.803 7.328 252.541 7.911
+1356.214 480.442 8.585 538.758 9.721 250.245 8.316
+1356.370 481.124 8.887 540.297 8.051 250.272 15.041
+1356.527 484.081 7.115 541.083 7.664 256.272 5.448
+1356.684 485.970 10.502 541.610 6.602 247.962 9.252
+1356.841 484.759 12.104 537.566 9.371 248.179 10.080
+1356.998 483.027 10.030 539.255 7.564 241.891 9.347
+1357.154 479.890 7.668 542.032 9.060 252.878 7.712
+1357.311 479.438 7.318 540.480 8.236 253.598 8.850
+1357.468 478.284 7.757 540.134 7.513 242.736 8.085
+1357.625 488.912 9.186 539.341 7.555 259.387 10.382
+1357.783 474.149 17.390 541.723 9.362 245.093 12.074
+1357.939 487.061 8.930 537.547 9.031 256.610 5.911
+1358.097 490.040 8.303 542.705 8.520 251.516 5.315
+1358.254 483.720 8.157 544.147 8.611 244.615 9.963
+1358.409 472.737 7.888 538.991 7.297 243.956 6.670
+1358.566 471.257 14.700 544.039 8.689 252.019 8.019
+1358.722 488.012 9.296 537.450 7.743 254.100 8.502
+1358.879 489.450 7.652 541.824 8.530 253.111 11.251
+1359.036 480.464 9.686 544.628 9.108 241.551 6.547
+1359.193 483.894 7.981 543.276 9.641 247.495 7.033
+1359.350 483.069 7.805 540.332 8.217 254.394 5.325
+1359.508 477.410 6.791 541.803 9.482 253.513 5.768
+1359.666 477.474 9.430 539.658 6.727 257.205 5.876
+1359.824 487.554 10.876 543.086 8.391 251.982 8.491
+1359.983 488.315 9.849 542.570 8.010 259.729 7.822
+1360.140 477.003 8.663 539.995 7.982 240.747 12.044
+1360.297 487.840 10.383 543.389 8.073 250.917 5.891
+1360.455 486.318 7.186 538.623 7.985 250.569 5.650
+1360.612 480.873 11.205 539.556 8.990 251.925 5.601
+1360.769 483.388 10.767 540.365 8.311 252.729 7.238
+1360.927 480.823 8.347 542.373 7.841 248.267 7.100
+1361.084 484.788 10.399 538.073 6.901 247.462 9.027
+1361.240 472.627 10.332 541.860 6.446 242.784 8.979
+1361.398 483.806 8.414 541.138 6.633 253.997 8.528
+1361.555 480.158 10.457 542.161 8.446 247.479 7.044
+1361.712 473.881 13.897 539.391 7.640 248.714 5.107
+1361.870 483.158 8.367 539.514 8.428 252.257 23.305
+1362.026 484.531 9.127 539.695 8.463 253.292 7.623
+1362.183 488.805 5.658 540.316 6.752 253.252 5.925
+1362.341 484.168 9.136 541.853 7.419 246.102 8.021
+1362.497 485.731 9.346 541.638 8.821 255.181 14.564
+1362.654 479.897 7.822 539.556 7.488 258.941 9.422
+1362.811 477.149 8.379 539.695 9.252 250.779 7.281
+1362.968 478.521 6.239 539.547 8.468 251.937 6.085
+1363.126 482.755 7.113 540.325 9.264 254.549 4.017
+1363.282 483.397 7.083 542.393 7.424 251.715 4.358
+1363.440 477.174 9.603 544.184 7.112 249.187 5.332
+1363.598 484.221 11.565 538.781 7.089 251.841 12.608
+1363.755 492.022 9.470 539.327 10.378 252.848 5.153
+1363.912 475.940 6.878 541.393 7.244 252.368 6.145
+1364.070 478.689 8.024 540.454 7.437 257.483 5.604
+1364.228 481.456 7.767 540.824 7.430 253.194 7.505
+1364.385 486.704 10.426 544.198 8.618 247.551 4.875
+1364.542 476.997 8.925 539.822 6.597 249.695 7.688
+1364.699 462.769 13.826 538.438 8.246 247.607 36.217
+1364.854 481.277 12.676 544.974 8.844 265.186 21.746
+1365.011 467.322 6.764 540.609 8.648 250.721 9.585
+1365.168 491.763 9.562 538.416 10.791 262.197 12.342
+1365.326 486.567 11.198 542.764 8.360 240.121 9.098
+1365.483 486.265 7.712 543.157 6.780 258.611 6.756
+1365.641 481.372 10.196 540.011 9.269 250.526 7.060
+1365.797 460.523 11.920 537.570 12.362 247.865 9.963
+1365.955 491.155 24.881 539.215 10.639 269.848 16.199
+1366.110 485.521 16.097 541.332 7.932 228.638 28.281
+1366.265 488.755 12.407 538.673 9.142 233.046 8.149
+1366.422 489.247 8.008 539.526 8.052 260.310 6.035
+1366.579 490.622 6.871 539.785 8.525 259.563 6.758
+1366.736 491.746 10.135 539.877 8.104 243.335 8.177
+1366.892 481.527 9.820 546.188 8.026 246.763 18.477
+1367.048 473.875 11.945 538.751 9.237 257.307 11.610
+1367.204 493.398 7.417 539.397 9.996 248.433 9.990
+1367.360 488.054 8.591 539.794 7.602 248.594 5.286
+1367.518 477.410 11.305 546.408 6.597 242.865 21.862
+1367.676 483.434 8.824 542.154 6.989 244.488 6.605
+1367.832 490.484 6.743 539.231 6.899 256.764 4.694
+1367.990 475.294 8.079 538.962 7.870 259.417 9.074
+1368.147 486.132 16.132 545.989 9.824 264.154 20.731
+1368.303 485.721 8.542 540.249 11.310 243.421 12.123
+1368.461 479.867 8.352 544.972 8.671 239.904 6.432
+1368.618 479.278 7.026 539.019 9.051 247.979 12.985
+1368.775 477.712 7.621 543.320 7.988 245.999 7.958
+1368.932 483.477 7.335 538.243 8.171 264.410 8.602
+1369.088 481.724 6.895 543.852 7.681 253.814 11.243
+1369.246 457.217 6.656 536.528 7.765 254.558 22.239
+1369.403 479.112 8.861 543.585 7.619 253.495 11.698
+1369.560 482.721 10.995 541.175 7.443 249.134 10.656
+1369.717 484.977 8.072 537.531 6.734 251.071 15.342
+1369.873 476.739 9.082 544.545 7.365 247.630 17.687
+1370.029 485.547 8.977 541.245 7.963 253.766 19.719
+1370.185 483.465 9.664 544.482 8.409 253.217 10.090
+1370.343 471.394 5.849 542.024 7.925 248.412 11.409
+1370.501 477.234 6.192 539.090 10.484 253.714 18.780
+1370.657 489.872 8.185 543.700 11.476 251.607 9.096
+1370.814 493.818 7.954 538.157 7.601 253.796 6.078
+1370.972 476.348 7.957 543.671 8.675 240.887 8.809
+1371.128 483.493 12.110 541.186 9.092 243.898 11.333
+1371.285 492.884 12.297 539.591 10.686 260.109 18.436
+1371.441 470.658 9.712 541.515 7.579 246.081 9.539
+1371.598 486.646 22.094 542.485 8.299 263.580 23.810
+1371.755 486.886 11.613 544.824 8.839 244.035 10.169
+1371.913 488.118 10.154 534.078 7.117 254.890 5.870
+1372.070 477.801 10.623 541.310 7.212 245.668 6.296
+1372.227 472.878 9.742 545.643 7.734 253.436 17.446
+1372.383 480.788 10.234 536.066 8.739 252.874 18.795
+1372.541 497.697 8.624 541.750 8.216 250.768 24.032
+1372.698 462.947 7.914 541.667 12.564 259.827 22.235
+1372.855 487.089 11.806 539.856 10.153 259.198 18.558
+1373.011 486.990 10.196 542.868 11.303 250.752 5.731
+1373.170 484.099 8.294 540.068 9.242 238.527 8.584
+1373.328 478.401 7.563 543.400 8.136 248.255 8.326
+1373.484 487.404 7.913 541.584 7.717 260.372 9.578
+1373.641 490.914 12.037 539.655 9.264 251.013 15.490
+1373.797 478.859 9.742 541.616 7.780 246.290 8.177
+1373.954 483.278 16.579 544.666 11.729 249.352 9.277
+1374.111 488.192 10.093 544.536 7.342 251.533 7.767
+1374.269 489.561 7.818 537.505 7.801 259.655 7.044
+1374.426 491.495 8.940 542.695 8.325 242.356 12.750
+1374.582 479.634 7.696 544.147 7.352 226.053 14.266
+1374.740 486.676 12.722 538.181 7.908 262.300 14.322
+1374.896 471.446 20.148 542.991 12.278 256.723 17.146
+1375.053 487.864 19.519 543.080 7.381 252.937 11.333
+1375.210 484.888 8.969 539.700 9.557 251.809 5.811
+1375.367 483.258 9.653 541.607 9.268 242.968 7.944
+1375.523 487.232 8.671 540.646 8.318 252.889 8.000
+1375.679 459.162 10.525 548.746 7.452 234.708 30.007
+1375.836 489.241 12.906 542.957 9.057 260.007 11.129
+1375.993 480.682 10.835 541.689 8.710 246.360 10.345
+1376.150 478.046 7.777 542.497 7.754 253.483 15.197
+1376.307 483.250 6.962 539.895 7.222 255.554 4.856
+1376.465 490.582 8.056 541.249 8.412 258.595 7.387
+1376.622 473.195 7.834 537.692 8.264 244.175 12.662
+1376.778 481.422 9.195 544.376 7.324 243.461 27.655
+1376.935 479.044 8.203 542.703 7.485 256.834 7.017
+1377.093 482.650 7.171 540.397 9.849 262.498 7.534
+1377.251 480.446 8.284 535.924 6.535 258.145 5.436
+1377.410 486.314 7.795 544.829 7.571 245.821 7.407
+1377.567 491.873 7.137 539.118 8.107 248.988 7.408
+1377.724 484.918 6.988 540.101 7.649 247.699 4.883
+1377.882 492.099 8.073 542.521 8.522 259.527 5.960
+1378.039 489.211 9.388 538.315 9.155 245.955 5.284
+1378.197 487.542 9.958 541.713 8.843 253.439 11.180
+1378.355 485.085 9.039 539.727 7.155 262.084 5.645
+1378.513 503.420 7.980 546.017 8.026 242.250 11.153
+1378.669 499.744 7.701 543.310 6.694 241.362 7.754
+1378.826 487.257 8.931 545.183 7.393 241.353 5.753
+1378.983 487.812 7.914 539.591 6.895 254.133 6.103
+1379.141 497.468 7.656 541.706 7.950 262.051 7.921
+1379.298 501.464 7.374 541.107 8.504 260.360 8.734
+1379.455 498.124 7.000 545.151 6.582 246.033 11.021
+1379.612 496.461 8.470 545.981 12.229 241.300 11.399
+1379.770 501.744 11.172 542.179 6.617 256.803 9.363
+1379.927 489.517 6.708 539.971 6.775 261.528 4.838
+1380.085 493.595 6.594 541.549 6.615 253.815 5.780
+1380.243 501.606 9.458 543.915 12.240 252.198 14.141
+1380.399 504.836 11.818 542.549 10.692 236.742 13.401
+1380.555 501.058 15.219 541.385 10.570 225.497 9.131
+1380.713 505.460 7.845 540.693 7.680 266.245 12.618
+1380.870 501.174 8.635 540.836 6.368 258.352 7.196
+1381.028 498.441 6.531 541.418 6.338 252.303 5.371
+1381.187 495.274 9.535 542.224 8.783 242.583 10.193
+1381.344 499.332 6.401 543.862 6.744 243.675 9.995
+1381.501 510.633 7.021 540.538 7.773 255.756 6.993
+1381.659 499.886 8.465 539.275 7.591 265.487 4.922
+1381.817 498.448 8.578 541.312 6.649 253.144 8.088
+1381.974 492.774 16.435 543.893 13.498 243.211 21.419
+1382.129 501.727 23.696 539.658 7.678 251.892 17.322
+1382.285 503.277 10.758 540.106 7.567 257.678 5.699
+1382.444 498.262 7.172 542.261 6.368 244.816 4.510
+1382.601 497.072 8.209 542.212 7.331 247.368 7.176
+1382.759 492.900 8.575 538.382 8.515 259.793 11.439
+1382.917 501.379 17.083 540.913 9.261 244.727 9.799
+1383.074 499.193 8.172 540.799 9.500 260.567 13.748
+1383.231 512.902 8.285 540.798 7.347 257.705 6.003
+1383.390 496.909 19.279 544.998 10.294 240.727 8.281
+1383.546 488.129 9.838 544.590 6.890 237.557 4.606
+1383.704 506.881 12.582 543.486 6.837 258.475 11.275
+1383.861 499.528 6.693 538.524 6.520 263.514 6.986
+1384.019 501.655 7.001 541.335 7.304 260.225 7.390
+1384.176 500.836 11.458 544.283 6.313 240.992 15.290
+1384.334 504.598 12.257 545.522 8.700 248.399 4.915
+1384.491 500.685 14.279 540.105 6.938 236.974 15.582
+1384.647 502.796 7.298 542.371 7.100 252.779 8.740
+1384.806 499.277 6.078 541.323 6.277 266.507 5.566
+1384.964 500.562 7.259 544.413 6.197 238.935 7.413
+1385.122 509.035 8.475 542.334 6.415 245.929 14.787
+1385.277 505.640 13.694 545.763 9.409 248.289 11.888
+1385.433 501.006 13.740 541.227 8.301 248.172 9.110
+1385.590 507.340 8.714 542.222 9.113 248.571 7.329
+1385.747 502.713 7.261 546.762 8.322 262.595 7.819
+1385.904 500.997 11.661 542.547 8.154 250.036 7.582
+1386.061 507.050 8.455 542.025 8.969 244.190 12.040
+1386.218 509.350 8.053 541.470 7.506 247.701 6.845
+1386.376 506.353 8.911 542.664 7.120 247.067 14.429
+1386.532 510.953 8.783 537.686 6.670 256.290 6.599
+1386.690 507.599 7.411 545.726 7.463 254.742 7.316
+1386.846 506.076 12.358 544.657 7.926 239.847 6.724
+1387.003 507.950 6.834 541.556 7.914 250.778 5.913
+1387.161 512.279 7.004 544.335 7.428 250.317 5.095
+1387.320 510.972 6.876 541.683 6.914 251.663 5.138
+1387.478 510.209 6.460 540.976 6.573 255.986 5.958
+1387.636 504.612 7.330 542.269 6.790 241.189 9.089
+1387.792 509.706 8.948 544.262 7.445 244.521 8.764
+1387.949 509.637 6.856 541.282 6.430 253.145 4.938
+1388.108 511.896 6.786 540.382 7.193 252.561 8.662
+1388.265 512.669 8.206 540.773 6.220 256.135 4.935
+1388.423 505.266 7.281 542.337 6.430 235.731 3.982
+1388.580 511.602 7.059 538.123 7.171 254.027 4.462
+1388.738 509.696 8.017 541.971 6.624 246.760 6.084
+1388.896 509.797 7.254 540.749 6.658 251.617 5.834
+1389.054 510.227 7.874 539.517 7.092 252.306 6.555
+1389.211 503.492 8.952 542.955 7.263 249.823 4.599
+1389.368 510.194 9.729 540.649 7.710 246.478 11.995
+1389.526 508.401 8.105 538.806 7.046 252.804 9.847
+1389.683 510.014 8.028 540.468 6.732 246.788 5.200
+1389.841 513.150 8.958 540.654 7.134 252.357 4.334
+1389.998 507.691 7.011 541.386 7.295 245.153 6.797
+1390.155 509.357 10.220 540.843 8.048 249.401 10.074
+1390.311 509.113 9.753 541.658 7.410 248.714 4.095
+1390.469 510.261 7.073 540.036 6.761 254.187 5.151
+1390.627 509.072 7.421 540.380 8.242 249.481 6.868
+1390.784 509.080 9.202 540.183 9.364 249.784 9.106
+1390.940 515.640 9.060 542.361 6.839 252.857 6.851
+1391.098 504.756 7.571 543.253 8.972 245.078 6.519
+1391.255 498.887 7.063 540.842 9.780 239.190 6.164
+1391.413 511.088 6.920 540.858 7.079 245.661 8.748
+1391.570 505.610 10.067 541.808 11.116 249.386 6.034
+1391.728 497.166 7.099 540.408 8.063 240.743 4.084
+1391.886 501.811 9.198 537.864 10.760 263.157 11.313
+1392.043 505.648 7.466 543.688 7.484 260.001 9.803
+1392.200 510.426 7.055 542.906 7.767 248.330 7.647
+1392.357 508.674 8.313 543.989 7.971 241.353 9.946
+1392.513 507.626 8.726 546.759 9.294 240.573 5.145
+1392.671 496.586 6.922 541.557 8.397 247.825 8.766
+1392.829 503.025 7.083 536.785 6.880 271.038 5.620
+1392.987 506.860 9.715 541.957 7.008 252.270 12.512
+1393.144 496.708 11.364 546.229 8.298 237.502 28.384
+1393.300 520.337 11.012 546.262 8.722 240.115 16.020
+1393.456 545.313 16.467 583.422 12.734 251.121 7.463
+1393.613 512.573 11.476 543.954 9.882 252.861 8.092
+1393.772 511.715 7.354 540.769 7.687 259.218 6.864
+1393.929 505.597 7.978 549.427 8.409 241.162 7.435
+1394.085 511.875 13.373 542.604 7.942 240.971 16.959
+1394.242 510.288 8.986 541.456 7.915 256.559 8.743
+1394.398 502.752 8.876 542.934 6.997 249.195 5.258
+1394.556 509.767 8.182 543.729 7.600 253.311 7.847
+1394.714 515.327 12.214 545.787 7.116 257.353 12.486
+1394.872 505.263 9.803 543.827 7.117 234.153 9.937
+1395.028 504.702 7.121 543.098 6.462 243.731 8.456
+1395.185 509.697 7.061 546.901 6.579 253.017 8.720
+1395.343 500.517 7.646 540.969 7.059 262.100 8.955
+1395.501 506.245 7.656 543.259 6.824 266.841 8.829
+1395.657 498.552 6.580 545.462 6.609 248.368 5.481
+1395.815 497.335 7.034 545.404 7.670 235.403 7.833
+1395.972 500.423 8.930 541.974 8.123 260.494 9.001
+1396.129 486.294 9.835 541.699 6.286 242.304 14.689
+1396.286 493.433 16.322 540.457 6.838 259.723 6.841
+1396.444 496.914 6.627 539.684 6.333 260.587 13.091
+1396.601 497.439 13.893 544.526 10.321 240.465 20.824
+1396.758 498.134 6.276 542.345 6.919 242.594 4.991
+1396.916 498.971 10.071 545.213 7.166 254.085 5.294
+1397.073 497.079 9.893 541.802 6.632 261.370 8.947
+1397.231 493.870 12.607 540.278 6.228 256.953 4.401
+1397.389 490.178 10.824 540.702 6.808 246.009 7.246
+1397.546 496.181 7.612 546.267 7.185 238.880 7.067
+1397.704 497.721 6.534 541.802 6.389 263.128 5.753
+1397.862 493.577 8.467 543.068 5.924 244.911 8.581
+1398.020 499.745 5.820 538.400 6.364 252.359 11.094
+1398.177 501.967 10.924 546.904 6.388 242.263 4.494
+1398.334 494.649 10.322 546.119 8.095 240.172 8.118
+1398.491 504.846 7.922 543.591 7.099 269.511 6.924
+1398.649 499.428 8.103 547.515 7.263 257.655 9.049
+1398.806 493.684 8.972 546.055 7.798 232.756 5.034
+1398.963 495.366 6.332 549.140 6.811 240.887 4.350
+1399.120 503.443 6.891 547.291 7.121 248.758 6.010
+1399.278 505.384 9.550 542.942 7.769 261.907 5.602
+1399.437 498.743 9.036 546.189 7.560 259.699 5.840
+1399.595 494.977 8.750 552.651 7.681 241.837 10.432
+1399.752 494.339 7.951 545.576 6.973 242.708 7.474
+1399.909 497.273 7.055 544.945 8.176 259.367 8.052
+1400.065 502.392 9.157 548.229 6.959 257.523 5.879
+1400.223 494.614 8.757 546.342 6.648 253.585 8.152
+1400.380 500.226 9.406 547.593 9.156 246.955 6.255
+1400.537 496.722 8.126 548.506 7.082 242.529 12.021
+1400.695 498.317 10.176 541.905 7.459 278.555 10.084
+1400.853 500.413 8.060 545.999 7.737 264.965 11.072
+1401.011 498.294 13.308 549.390 8.603 231.729 9.414
+1401.166 494.562 11.527 545.643 7.594 237.357 9.447
+1401.322 475.805 7.019 546.616 7.707 246.743 7.923
+1401.478 508.208 13.810 541.606 9.191 270.727 17.205
+1401.635 504.702 9.516 544.936 8.069 270.287 9.314
+1401.791 498.657 11.184 548.699 6.763 245.662 10.184
+1401.948 493.346 9.875 546.207 8.067 218.496 6.119
+1402.106 499.503 14.090 546.162 7.482 257.824 5.405
+1402.264 500.115 10.013 540.821 7.957 278.308 6.114
+1402.422 492.981 13.811 541.578 9.508 261.863 5.897
+1402.579 500.179 9.005 548.725 9.129 238.778 6.063
+1402.735 504.751 9.939 547.387 9.180 236.277 6.259
+1402.892 503.507 8.850 544.603 9.151 255.932 8.560
+1403.049 502.905 9.226 543.076 7.745 251.239 10.013
+1403.206 502.479 7.327 542.960 8.477 256.302 5.560
+1403.365 501.554 11.302 544.039 8.241 253.133 5.672
+1403.523 502.635 9.898 545.210 7.096 236.271 6.829
+1403.680 515.026 9.386 545.042 7.519 250.922 8.261
+1403.837 507.170 7.007 544.830 6.858 255.829 6.123
+1403.995 506.251 8.981 544.198 9.691 249.368 8.974
+1404.152 512.352 10.004 545.692 7.630 244.943 7.096
+1404.309 513.753 12.801 542.287 8.137 250.779 11.316
+1404.465 514.017 9.005 544.412 11.063 242.677 16.996
+1404.622 516.180 8.870 546.184 8.805 241.936 12.731
+1404.778 522.841 10.820 537.691 7.983 252.869 6.985
+1404.936 519.898 11.300 540.467 9.237 249.778 7.760
+1405.092 521.579 10.184 543.484 7.790 247.807 11.156
+1405.250 513.595 12.905 552.364 12.777 239.398 7.656
+1405.406 514.226 13.006 535.633 8.806 251.663 4.316
+1405.563 510.502 12.516 546.366 8.519 243.136 6.951
+1405.719 511.905 11.192 537.403 9.588 257.231 12.168
+1405.876 508.159 11.493 542.924 9.239 231.602 6.245
+1406.033 513.491 10.440 542.299 10.922 241.646 10.143
+1406.191 507.784 9.236 540.753 9.038 255.926 9.318
+1406.348 528.227 14.405 539.267 11.083 258.599 8.251
+1406.505 519.452 9.853 543.782 9.191 241.176 9.569
+1406.661 511.764 17.247 545.317 9.558 228.351 8.905
+1406.817 523.967 8.462 543.743 9.677 248.263 5.629
+1406.975 515.889 11.926 538.707 9.501 262.242 6.361
+1407.133 508.908 12.786 541.067 8.833 254.702 8.261
+1407.289 506.689 11.475 546.480 7.621 227.537 11.169
+1407.446 518.346 9.560 542.314 10.102 248.755 7.995
+1407.604 513.963 6.824 543.203 7.244 261.937 6.107
+1407.762 512.779 9.555 542.902 10.431 239.099 5.222
+1407.920 511.747 8.392 545.339 7.918 237.391 5.979
+1408.077 511.217 9.108 545.303 7.727 256.843 5.140
+1408.235 514.672 11.234 539.473 7.497 256.568 5.247
+1408.395 504.996 7.025 541.984 8.513 259.435 5.949
+1408.553 509.410 6.774 548.319 8.092 230.664 7.214
+1408.709 510.384 9.263 540.073 7.478 235.696 6.705
+1408.868 515.673 7.084 538.560 7.386 261.257 5.365
+1409.027 514.496 8.617 540.615 6.822 265.212 9.126
+1409.183 525.675 7.437 542.136 6.591 252.272 5.137
+1409.342 508.106 9.655 543.311 9.004 247.082 8.097
+1409.498 513.451 11.722 541.363 8.010 233.720 8.771
+1409.653 516.724 7.699 539.243 7.336 247.047 5.729
+1409.811 511.087 7.239 539.182 7.498 254.260 4.410
+1409.968 515.290 7.852 536.111 7.610 259.022 4.774
+1410.127 513.962 9.385 541.361 7.282 246.640 7.580
+1410.284 513.309 7.916 542.733 7.218 243.416 6.959
+1410.441 517.833 12.041 540.877 7.072 238.254 9.630
+1410.597 518.998 9.054 540.868 7.159 248.902 5.472
+1410.754 515.110 8.523 538.098 9.433 251.259 4.668
+1410.912 506.431 9.390 541.161 6.683 252.592 4.718
+1411.068 521.314 10.344 541.811 11.056 250.595 17.774
+1411.226 520.033 9.538 538.598 6.978 243.355 10.180
+1411.383 514.600 8.521 543.576 8.822 243.383 7.538
+1411.539 522.296 10.833 541.955 7.349 250.783 4.640
+1411.697 513.433 7.495 538.739 8.642 245.297 5.942
+1411.855 515.024 9.550 539.917 7.914 246.042 6.286
+1412.013 510.540 8.336 537.909 8.286 245.480 6.146
+1412.170 514.845 12.958 541.589 8.434 249.754 6.021
+1412.328 515.418 8.654 539.825 10.860 255.477 5.565
+1412.487 509.294 7.374 538.768 7.975 244.584 4.330
+1412.643 510.192 8.713 538.197 9.856 246.575 5.733
+1412.801 511.072 8.133 541.952 10.118 246.875 5.641
+1412.959 503.250 8.176 540.129 8.884 249.098 7.856
+1413.115 514.212 8.160 541.001 8.898 252.441 8.573
+1413.272 510.102 8.994 540.010 7.755 238.954 7.391
+1413.429 513.731 9.538 537.200 6.890 250.549 4.762
+1413.587 509.637 7.252 541.752 6.958 242.625 5.641
+1413.744 514.976 7.457 541.427 9.573 243.806 6.300
+1413.902 514.689 7.622 539.254 8.155 253.488 5.516
+1414.060 514.366 9.936 538.522 7.501 247.914 10.411
+1414.217 516.443 10.963 540.225 7.304 259.469 5.289
+1414.376 511.424 9.178 542.112 7.254 240.944 6.984
+1414.533 511.194 8.340 537.631 10.052 239.749 5.200
+1414.691 508.151 9.071 541.446 9.072 246.757 7.830
+1414.847 510.681 7.610 537.244 7.349 246.227 5.042
+1415.006 512.206 7.530 537.162 8.598 262.832 4.828
+1415.164 508.972 7.307 543.721 6.488 246.158 7.517
+1415.321 507.449 7.059 539.297 6.445 242.701 6.082
+1415.478 508.594 7.071 544.453 7.678 239.057 6.219
+1415.634 514.085 7.217 541.974 6.450 250.100 6.196
+1415.793 509.240 6.451 538.429 7.540 253.761 6.109
+1415.951 506.552 7.468 539.624 7.885 257.817 7.379
+1416.108 499.685 6.481 539.166 6.814 243.048 6.271
+1416.266 511.166 6.728 541.371 7.312 246.590 5.329
+1416.423 510.701 7.777 542.743 7.621 245.985 5.726
+1416.581 511.287 8.073 540.807 8.087 249.099 6.646
+1416.738 512.092 6.655 539.368 7.521 256.681 5.968
+1416.896 505.040 6.502 542.153 6.611 233.796 8.174
+1417.052 514.130 8.617 539.751 6.975 244.437 5.962
+1417.209 512.981 8.501 541.027 8.089 245.454 7.067
+1417.366 509.779 7.518 539.980 8.342 245.084 5.719
+1417.524 511.207 8.809 538.159 6.906 252.830 5.777
+1417.681 515.182 7.120 542.131 7.049 248.168 5.812
+1417.839 517.691 7.595 542.021 7.271 241.351 9.119
+1417.996 520.926 9.257 543.020 7.528 246.233 5.472
+1418.154 519.349 7.012 541.990 8.868 243.462 5.181
+1418.312 517.963 7.791 538.569 7.424 254.374 7.762
+1418.469 519.319 8.801 541.535 7.234 256.463 4.558
+1418.628 513.263 8.809 542.445 7.086 241.534 5.146
+1418.785 514.202 8.134 541.054 7.409 242.055 8.086
+1418.942 516.192 7.200 540.770 7.547 243.990 5.902
+1419.099 522.662 10.297 539.047 8.004 252.769 5.449
+1419.257 508.936 8.000 538.830 6.877 249.317 5.104
+1419.414 514.249 7.349 541.548 6.982 250.883 4.540
+1419.572 516.732 8.578 539.435 7.271 237.148 6.091
+1419.730 510.807 8.157 539.734 7.452 241.991 4.971
+1419.888 510.658 6.188 538.827 6.638 252.619 5.954
+1420.046 513.246 10.872 539.308 6.876 252.956 6.739
+1420.203 510.252 9.108 539.643 7.888 246.129 7.149
+1420.360 515.312 8.981 541.416 7.247 240.341 5.481
+1420.518 510.473 9.675 540.554 8.349 246.613 5.184
+1420.675 506.414 10.269 539.665 7.587 248.566 7.827
+1420.831 510.774 8.634 541.686 6.682 250.735 5.257
+1420.990 513.937 9.399 538.726 7.984 258.847 7.553
+1421.147 519.679 9.664 539.957 9.828 234.998 8.282
+1421.304 514.116 10.059 544.369 8.394 248.259 7.527
+1421.461 506.891 9.087 537.553 8.467 244.342 9.047
+1421.618 511.528 6.867 538.715 8.234 250.483 8.047
+1421.776 513.475 6.672 542.657 6.826 249.924 6.178
+1421.934 508.364 7.107 538.986 7.794 250.269 7.627
+1422.090 518.243 7.044 542.089 7.882 249.562 5.775
+1422.248 509.822 13.744 542.861 9.206 235.545 6.707
+1422.404 523.418 9.638 538.918 6.906 254.855 11.628
+1422.561 514.844 11.632 539.529 9.566 249.448 3.821
+1422.718 515.678 8.814 541.735 10.483 255.694 4.980
+1422.877 513.596 10.368 541.147 8.005 254.516 8.366
+1423.035 505.385 10.746 541.091 6.915 239.155 4.478
+1423.192 523.163 8.618 538.931 8.255 255.531 6.387
+1423.350 508.681 7.804 538.319 7.253 237.045 5.674
+1423.508 507.646 6.687 535.563 6.960 251.810 4.245
+1423.665 511.066 7.905 541.155 7.078 242.838 7.348
+1423.821 510.930 6.621 538.811 7.187 241.808 15.556
+1423.978 519.589 9.986 537.498 7.844 257.458 5.497
+1424.136 522.625 12.304 544.445 8.891 241.574 4.533
+1424.294 503.776 10.928 539.704 7.624 239.805 5.896
+1424.451 509.087 10.361 539.197 6.856 242.958 4.690
+1424.609 508.800 8.064 538.282 7.385 240.359 10.476
+1424.766 515.858 8.938 540.872 8.411 263.023 11.167
+1424.924 517.618 7.618 538.388 7.098 268.430 7.162
+1425.082 512.936 6.911 546.323 7.018 233.784 9.836
+1425.239 509.239 7.671 543.423 6.941 246.657 4.994
+1425.396 492.912 10.122 537.684 8.174 225.916 8.687
+1425.554 512.959 9.725 536.116 7.821 274.189 5.948
+1425.714 498.359 12.066 538.491 7.712 254.091 7.020
+1425.871 479.323 10.729 536.154 7.395 231.230 11.082
+1426.028 502.223 12.902 543.561 8.173 253.042 7.972
+1426.185 496.242 10.642 539.275 6.783 241.420 13.912
+1426.342 509.402 7.587 532.542 8.000 284.324 10.418
+1426.499 487.174 9.199 543.455 6.478 226.333 15.782
+1426.656 496.731 9.613 539.124 7.063 258.093 13.908
+1426.812 493.617 8.722 539.291 7.124 248.250 10.532
+1426.969 502.996 11.004 538.202 6.690 262.072 7.814
+1427.126 502.700 8.629 542.912 6.911 242.820 6.931
+1427.282 502.837 7.562 543.099 8.596 235.898 6.493
+1427.439 498.688 7.366 538.201 6.408 248.598 5.722
+1427.598 501.576 9.507 537.892 6.888 254.966 10.884
+1427.755 495.815 6.878 539.839 6.442 249.889 4.705
+1427.914 499.438 8.175 539.018 6.681 251.998 4.215
+1428.070 500.304 8.724 538.630 6.626 252.250 6.040
+1428.227 502.283 7.368 540.306 6.208 250.902 4.379
+1428.385 503.472 7.056 538.793 6.385 251.259 4.195
+1428.542 500.024 7.072 541.388 6.830 243.352 6.734
+1428.700 502.200 8.127 537.533 7.639 256.943 5.545
+1428.859 501.632 6.859 540.255 6.196 250.849 6.828
+1429.017 499.096 7.083 539.742 7.128 253.728 4.876
+1429.174 500.840 8.161 541.367 6.192 247.417 4.465
+1429.331 504.268 6.645 539.183 6.818 249.524 8.470
+1429.488 501.972 5.971 540.141 7.162 249.865 6.918
+1429.646 498.739 8.370 540.871 7.178 245.418 5.766
+1429.803 499.387 6.083 539.108 6.726 249.154 4.805
+1429.961 504.763 9.827 537.661 7.797 254.141 11.500
+1430.118 496.187 10.322 541.016 8.100 245.961 9.721
+1430.274 510.901 6.722 540.380 7.039 248.419 4.654
+1430.432 514.899 6.328 541.433 6.655 249.524 5.290
+1430.591 519.649 7.261 539.354 7.802 255.605 8.427
+1430.747 514.616 11.409 541.243 7.480 248.376 10.025
+1430.904 518.906 8.233 542.832 6.740 251.163 4.934
+1431.062 513.459 8.369 538.378 8.983 247.601 6.658
+1431.219 510.254 8.097 541.053 7.244 249.606 5.101
+1431.376 511.842 9.240 538.950 8.447 250.966 5.021
+1431.534 526.258 12.541 539.409 8.469 246.269 5.383
+1431.691 515.432 13.926 539.434 7.717 248.472 9.047
+1431.848 514.104 12.442 542.384 9.591 230.564 5.202
+1432.005 514.521 10.951 538.163 9.361 246.345 6.366
+1432.162 515.425 6.408 538.161 7.669 263.713 7.234
+1432.320 520.044 7.050 539.001 7.075 250.917 6.435
+1432.478 515.930 9.667 541.250 9.814 245.319 9.049
+1432.634 528.469 8.704 539.222 8.377 234.693 4.787
+1432.791 520.534 7.656 542.252 7.507 245.316 7.815
+1432.948 512.955 9.325 533.652 8.554 256.993 6.223
+1433.107 511.219 6.828 536.416 7.446 253.519 5.170
+1433.264 514.742 7.029 542.094 6.487 247.875 4.446
+1433.422 518.927 9.282 536.961 7.500 250.448 6.466
+1433.580 524.619 10.039 543.409 6.934 243.164 6.658
+1433.739 515.066 8.043 537.324 6.592 255.101 4.689
+1433.896 521.460 8.134 534.793 7.296 248.401 5.172
+1434.054 515.364 7.242 537.268 6.888 244.144 7.795
+1434.211 505.983 7.047 536.732 6.186 243.241 6.785
+1434.370 505.299 9.377 535.907 7.277 237.082 6.176
+1434.527 521.693 8.455 539.199 7.369 251.370 7.170
+1434.685 523.597 7.337 534.372 6.724 257.393 5.569
+1434.843 518.656 8.112 539.103 7.024 245.693 6.763
+1434.999 518.126 10.241 544.161 7.760 230.196 5.790
+1435.157 515.641 7.271 540.711 7.990 248.092 5.217
+1435.315 505.346 6.735 535.787 7.278 258.660 4.773
+1435.474 511.013 7.487 540.427 6.747 254.286 9.205
+1435.631 515.620 7.633 538.404 6.591 250.752 5.050
+1435.789 511.516 7.153 538.604 7.527 241.757 4.849
+1435.947 518.475 6.069 537.446 6.548 250.387 5.019
+1436.106 510.694 7.672 538.664 6.846 253.363 4.396
+1436.264 510.697 6.008 540.176 7.052 248.173 4.196
+1436.422 509.317 8.229 538.291 6.663 249.841 4.297
+1436.579 512.683 9.866 538.633 6.574 253.098 5.664
+1436.737 507.116 8.407 537.636 7.127 249.241 6.903
+1436.895 503.821 7.141 540.836 7.005 244.602 5.386
+1437.052 510.608 7.549 537.748 6.290 250.236 5.654
+1437.211 503.106 7.191 538.337 7.458 252.382 5.064
+1437.369 508.021 6.669 538.233 7.595 250.903 7.609
+1437.526 506.140 10.154 539.542 6.965 248.909 6.973
+1437.683 503.191 8.350 539.585 6.751 242.069 7.327
+1437.840 507.041 6.236 538.755 6.522 247.540 4.324
+1437.997 507.780 7.935 539.477 6.573 246.425 6.415
+1438.154 500.987 7.186 540.014 6.157 250.034 5.888
+1438.312 505.779 10.145 536.400 8.176 250.110 6.933
+1438.469 504.747 11.778 539.484 8.951 247.551 7.284
+1438.626 499.197 9.995 540.634 6.232 246.755 12.379
+1438.783 498.422 8.473 540.796 6.825 256.367 7.027
+1438.941 500.904 7.059 537.238 10.347 262.933 9.995
+1439.099 502.539 11.375 539.452 7.772 243.899 4.293
+1439.257 503.445 8.832 541.014 10.114 247.909 9.842
+1439.414 508.834 8.470 537.590 9.152 252.139 8.758
+1439.571 507.188 11.594 536.746 11.316 251.071 8.019
+1439.728 500.521 8.001 538.227 9.827 257.700 5.811
+1439.885 497.995 9.509 540.032 7.198 238.747 8.109
+1440.042 498.830 8.337 543.070 7.498 238.987 11.762
+1440.199 505.068 8.842 537.200 7.429 253.849 5.767
+1440.357 505.260 7.792 535.822 7.153 256.838 7.353
+1440.515 498.372 8.298 538.598 6.358 247.888 11.548
+1440.672 502.753 10.679 542.306 7.145 246.528 8.071
+1440.828 498.987 8.986 540.663 9.299 242.065 6.643
+1440.986 501.229 6.359 539.006 7.023 262.570 6.068
+1441.145 498.762 6.136 537.990 6.765 243.995 5.877
+1441.303 500.227 7.699 540.139 6.623 253.359 4.631
+1441.462 499.922 7.793 540.521 7.015 260.133 7.615
+1441.619 501.579 10.121 541.885 9.100 250.371 8.057
+1441.777 507.945 11.408 536.638 10.703 262.803 12.549
+1441.935 481.399 17.640 542.796 9.749 220.348 10.895
+1442.091 498.144 13.820 538.668 8.618 250.273 10.465
+1442.248 497.101 6.618 539.986 7.511 260.652 5.800
+1442.407 504.781 7.272 537.819 6.375 262.756 7.267
+1442.566 495.157 11.531 539.248 13.420 239.027 7.572
+1442.722 500.661 9.830 542.062 7.113 248.140 8.752
+1442.879 494.736 6.852 536.570 8.593 250.151 5.007
+1443.036 497.057 7.784 536.565 6.473 255.511 5.778
+1443.194 496.940 6.021 543.445 7.670 244.855 5.037
+1443.353 503.469 8.504 535.314 8.072 260.008 9.052
+1443.509 501.754 7.347 538.783 14.604 248.530 7.967
+1443.665 496.787 9.461 542.427 6.717 247.125 10.492
+1443.822 499.047 6.330 540.294 9.920 248.491 8.771
+1443.979 501.570 11.321 542.243 6.911 255.714 8.372
+1444.135 495.005 16.014 538.852 8.245 245.507 9.233
+1444.292 499.080 9.024 537.928 7.137 253.995 5.834
+1444.450 498.040 8.619 539.779 6.113 248.809 11.412
+1444.606 499.770 10.446 538.527 8.438 251.098 7.591
+1444.763 497.807 9.548 538.745 8.066 245.521 8.466
+1444.919 490.918 12.008 539.077 9.075 242.185 7.754
+1445.077 505.649 6.204 540.730 7.852 268.311 5.413
+1445.235 497.586 8.197 540.037 8.420 250.483 10.031
+1445.393 499.585 9.638 538.440 7.608 252.444 6.972
+1445.549 500.625 14.513 540.214 10.039 250.164 8.308
+1445.706 501.986 11.743 538.492 13.124 254.641 13.614
+1445.861 494.989 11.711 535.764 7.946 234.876 5.288
+1446.019 500.879 8.971 537.787 9.810 262.088 9.159
+1446.177 500.578 7.040 538.117 7.097 243.730 4.231
+1446.335 505.125 9.193 534.011 6.386 253.287 10.829
+1446.492 497.891 7.438 544.090 8.222 246.222 10.382
+1446.649 500.489 8.309 539.920 7.006 248.972 5.992
+1446.807 499.364 10.930 539.629 7.358 254.639 6.704
+1446.965 506.643 9.058 540.416 8.554 248.956 8.157
+1447.121 499.486 10.147 539.154 8.660 244.179 4.693
+1447.279 500.014 9.327 543.281 6.476 245.691 4.727
+1447.438 506.500 9.920 539.782 9.661 255.176 6.029
+1447.595 497.945 9.924 536.677 7.406 253.261 6.679
+1447.752 502.699 8.998 540.426 6.730 248.692 12.167
+1447.909 498.287 10.095 538.774 6.694 245.326 10.633
+1448.066 498.332 8.359 538.067 6.450 254.053 7.660
+1448.223 500.013 8.285 540.880 7.204 247.520 5.962
+1448.382 502.240 7.598 536.888 6.963 261.565 5.764
+1448.541 497.392 10.916 540.248 7.926 241.935 7.590
+1448.697 503.843 9.342 539.442 6.444 248.429 9.213
+1448.854 501.198 7.890 537.724 6.429 252.714 8.023
+1449.011 498.332 9.236 538.787 6.652 252.607 7.928
+1449.167 499.223 8.266 537.137 7.096 250.206 5.792
+1449.325 500.222 7.934 540.811 6.558 243.642 8.567
+1449.481 498.662 12.074 537.518 8.228 247.566 10.942
+1449.637 488.546 11.029 541.215 8.073 244.035 11.566
+1449.794 499.865 7.882 538.012 6.811 257.480 9.166
+1449.951 498.998 8.261 538.030 8.960 253.844 4.958
+1450.108 495.800 9.156 537.440 6.329 253.458 5.753
+1450.266 500.518 15.083 541.434 6.404 250.654 6.487
+1450.423 501.775 8.697 540.394 8.600 256.936 8.207
+1450.580 500.197 9.887 540.473 7.612 246.819 11.714
+1450.736 497.972 8.691 540.834 8.516 249.468 10.681
+1450.894 504.649 7.029 539.478 6.830 255.394 5.123
+1451.052 499.936 10.363 538.034 7.799 248.813 8.589
+1451.209 501.819 7.621 536.440 6.822 246.158 7.508
+1451.366 505.068 8.745 540.134 6.921 250.411 4.817
+1451.524 500.750 7.041 536.781 7.068 250.154 6.984
+1451.682 497.427 10.010 539.637 7.131 251.811 9.714
+1451.839 500.844 8.253 538.906 7.590 247.518 5.091
+1451.997 499.898 7.572 539.929 6.875 256.355 4.471
+1452.156 497.389 14.845 538.549 12.019 250.723 11.723
+1452.313 503.623 9.114 540.045 7.080 252.187 6.419
+1452.471 502.336 7.394 538.530 8.690 255.931 5.702
+1452.629 503.753 10.422 538.495 6.199 255.629 8.457
+1452.787 495.527 7.685 542.105 6.749 242.006 5.047
+1452.944 499.705 6.554 538.751 7.801 250.050 6.984
+1453.101 499.207 13.584 536.807 9.186 246.770 6.462
+1453.258 501.662 7.131 539.548 6.242 264.207 6.816
+1453.416 497.226 11.157 539.425 11.567 256.442 8.549
+1453.573 503.552 9.541 538.884 7.346 243.934 5.339
+1453.731 497.765 14.444 542.448 11.659 246.679 12.991
+1453.886 499.777 9.563 541.894 8.165 237.206 10.694
+1454.043 505.857 9.891 538.848 7.728 268.162 4.260
+1454.202 490.448 14.414 540.278 8.970 243.631 13.294
+1454.358 504.194 9.277 538.082 9.704 245.006 11.157
+1454.515 502.261 7.917 544.240 9.295 244.650 7.140
+1454.672 512.742 9.934 539.042 6.658 264.156 8.694
+1454.828 507.977 10.332 538.990 7.683 242.551 7.240
+1454.986 511.409 12.155 545.309 8.390 248.015 7.828
+1455.143 509.504 11.324 538.143 7.706 232.830 5.827
+1455.301 517.815 7.915 540.051 6.362 260.018 8.588
+1455.458 522.288 13.941 540.120 8.262 255.720 20.608
+1455.614 521.532 9.623 537.741 8.384 250.477 6.449
+1455.772 522.015 8.666 542.967 8.749 249.914 6.995
+1455.929 513.380 8.006 540.219 7.407 240.989 8.256
+1456.087 520.443 9.467 536.402 8.379 259.639 7.075
+1456.244 527.194 10.438 543.084 8.200 245.966 8.502
+1456.401 522.622 9.869 536.050 7.547 249.889 6.706
+1456.559 514.416 6.999 538.680 6.755 249.298 6.198
+1456.717 524.974 9.935 543.186 7.749 253.103 7.069
+1456.874 517.859 14.059 536.881 8.522 253.721 3.914
+1457.031 518.808 7.698 541.508 8.896 244.497 5.311
+1457.188 533.968 11.794 542.935 7.018 244.545 12.035
+1457.345 512.199 10.210 537.709 9.403 247.995 11.816
+1457.503 515.522 8.524 537.927 7.504 245.679 12.551
+1457.660 510.015 7.364 539.289 7.561 254.146 5.142
+1457.818 522.180 9.471 541.062 8.214 252.471 7.119
+1457.974 521.941 8.637 540.650 7.403 249.434 7.159
+1458.131 514.809 11.826 540.736 7.473 241.624 7.026
+1458.288 524.208 7.167 540.127 7.352 251.526 9.510
+1458.446 514.842 11.094 539.811 7.201 253.595 6.770
+1458.603 516.998 8.194 535.238 8.313 253.385 8.248
+1458.760 521.400 9.180 542.692 7.474 239.253 7.049
+1458.916 518.284 9.966 540.176 6.589 243.332 6.587
+1459.074 523.012 10.796 537.621 7.484 249.273 15.138
+1459.231 520.450 9.510 542.956 7.034 253.622 7.903
+1459.388 518.754 7.159 538.989 7.787 252.306 6.400
+1459.546 516.587 7.612 537.389 7.121 249.123 5.778
+1459.705 518.535 10.108 541.473 7.849 242.451 8.395
+1459.862 518.725 8.987 536.384 7.384 253.324 5.982
+1460.020 505.187 9.469 538.283 7.606 249.123 7.798
+1460.176 509.681 7.373 541.152 6.308 255.831 5.766
+1460.334 512.006 6.077 536.221 6.878 247.208 5.981
+1460.493 512.250 7.050 539.772 6.157 261.202 6.301
+1460.652 502.562 8.544 537.667 7.105 245.492 4.332
+1460.809 507.245 14.278 537.396 8.022 248.304 4.999
+1460.966 502.442 10.608 539.814 7.023 246.613 6.008
+1461.123 503.774 8.987 537.368 6.856 248.716 6.430
+1461.281 506.957 7.646 538.293 8.354 259.647 9.804
+1461.438 496.049 6.634 543.923 8.184 244.826 7.190
+1461.595 495.120 7.027 539.379 7.300 244.538 6.024
+1461.752 501.311 8.408 539.673 6.656 255.835 11.314
+1461.910 499.943 10.547 537.306 6.822 248.738 6.021
+1462.068 501.799 8.458 541.253 7.566 253.447 9.593
+1462.225 504.028 11.523 540.312 8.056 249.094 6.716
+1462.381 502.510 10.148 539.853 6.928 246.570 11.247
+1462.539 497.595 13.438 541.158 8.948 257.375 13.652
+1462.696 499.496 8.810 540.921 11.082 244.833 10.403
+1462.853 499.684 19.729 539.809 10.825 249.118 11.973
+1463.010 499.206 13.273 540.878 7.680 241.811 7.909
+1463.166 496.072 14.597 542.168 9.582 250.148 9.495
+1463.323 501.080 14.577 536.281 9.949 267.381 17.680
+1463.479 502.210 14.980 537.372 11.793 247.853 8.969
+1463.635 496.402 16.824 540.913 7.850 238.708 10.726
+1463.791 501.024 11.753 540.999 9.671 258.087 9.459
+1463.949 504.920 8.755 537.520 7.878 253.680 6.492
+1464.106 498.399 9.289 539.805 8.144 255.246 7.236
+1464.263 501.664 8.195 541.148 6.660 243.112 6.278
+1464.420 500.826 7.444 538.241 10.176 248.771 11.205
+1464.578 501.418 10.692 537.252 7.169 256.377 6.055
+1464.736 498.094 8.397 537.952 6.844 249.073 4.941
+1464.893 504.060 6.844 539.999 6.233 257.250 6.437
+1465.051 501.190 7.285 540.260 7.353 239.622 5.494
+1465.208 497.171 8.524 536.552 6.560 255.096 5.258
+1465.367 504.221 9.143 540.865 7.383 250.790 8.330
+1465.524 499.622 6.306 540.458 7.103 245.647 5.391
+1465.682 494.226 7.404 537.634 6.717 252.186 4.594
+1465.839 497.362 7.760 539.816 6.805 251.411 4.471
+1465.996 493.133 6.430 537.428 7.125 252.194 5.134
+1466.154 502.791 8.370 542.094 7.744 245.751 4.783
+1466.311 496.477 9.688 538.301 7.142 248.197 8.423
+1466.468 499.604 6.652 538.773 6.238 250.152 4.851
+1466.626 498.986 11.253 539.427 7.054 249.361 5.674
+1466.784 503.029 8.201 541.484 6.610 255.723 4.782
+1466.942 499.380 11.046 540.424 12.326 251.597 8.029
+1467.098 494.633 6.413 537.504 8.073 248.255 6.293
+1467.255 500.606 10.293 540.275 10.510 250.792 5.677
+1467.413 497.426 6.794 540.242 8.461 243.367 5.624
+1467.570 500.084 5.968 536.192 6.719 256.043 4.173
+1467.729 502.240 9.305 539.711 8.255 252.440 7.792
+1467.885 497.372 6.119 538.557 6.776 251.634 5.806
+1468.044 499.423 8.826 540.495 6.456 248.786 4.742
+1468.201 499.334 9.425 540.894 7.689 241.457 6.811
+1468.357 496.013 6.771 540.349 7.231 251.374 4.271
+1468.515 494.050 7.893 539.193 6.384 254.323 4.788
+1468.671 497.700 7.356 541.092 6.362 249.383 5.120
+1468.829 495.597 7.091 537.900 6.130 258.623 4.038
+1468.987 490.356 7.941 540.039 7.270 248.116 9.383
+1469.144 493.243 6.671 538.780 6.780 255.611 6.268
+1469.301 495.692 10.049 539.377 9.127 257.436 8.934
+1469.459 492.906 9.831 539.173 7.413 249.014 5.622
+1469.616 490.269 6.743 539.161 7.182 247.080 4.382
+1469.774 488.992 7.504 537.201 7.494 251.740 6.886
+1469.931 488.690 8.484 539.512 8.856 253.117 3.770
+1470.088 485.226 6.983 536.735 6.480 252.411 3.890
+1470.246 479.322 9.663 537.337 8.747 245.494 8.112
+1470.402 487.283 7.226 541.783 6.394 250.604 4.730
+1470.560 486.022 6.277 535.357 6.784 250.336 5.685
+1470.718 488.050 12.485 539.133 10.930 251.363 9.525
+1470.876 489.120 7.549 541.761 7.743 254.993 7.094
+1471.034 475.661 8.274 536.227 7.528 252.449 4.482
+1471.192 480.326 9.950 540.452 7.524 251.564 8.804
+1471.349 491.223 7.553 540.474 7.794 249.045 7.620
+1471.507 482.812 9.827 538.484 7.117 254.120 7.978
+1471.663 482.578 9.524 542.474 6.607 245.131 8.543
+1471.820 492.205 8.720 532.074 8.398 263.621 9.953
+1471.977 483.642 7.803 537.830 8.232 251.196 7.980
+1472.134 480.096 9.617 538.918 6.823 252.491 6.058
+1472.291 487.510 8.858 533.149 7.836 252.434 5.772
+1472.448 486.135 8.240 535.341 7.238 249.004 5.923
+1472.607 492.861 12.352 526.343 9.565 260.140 5.444
+1472.765 489.308 9.936 522.983 7.240 245.521 7.954
+1472.922 485.193 8.379 541.919 8.241 250.935 8.989
+1473.079 482.331 9.988 522.329 8.273 252.049 11.722
+1473.236 486.183 9.029 528.753 9.539 256.840 6.137
+1473.393 482.001 8.552 530.757 8.829 242.388 6.857
+1473.550 494.680 8.600 521.907 7.624 255.283 5.597
+1473.707 482.096 10.891 531.039 9.224 239.692 6.479
+1473.865 498.400 8.058 524.460 7.262 258.576 7.912
+1474.022 484.924 9.825 516.464 8.182 251.355 8.808
+1474.178 488.989 10.183 527.704 8.559 251.423 6.387
+1474.335 484.649 10.453 521.077 10.493 250.694 5.828
+1474.493 492.816 7.694 521.720 10.631 246.176 6.845
+1474.651 496.728 12.885 520.617 9.905 248.561 7.979
+1474.808 492.867 8.680 516.386 7.492 254.045 8.625
+1474.965 500.388 9.534 524.353 11.332 231.810 15.145
+1475.122 488.403 10.979 514.723 9.288 244.688 8.584
+1475.280 496.444 12.109 521.317 8.795 257.276 6.681
+1475.438 487.704 11.355 526.113 7.994 249.222 11.385
+1475.594 500.437 7.979 516.881 10.627 244.942 11.536
+1475.751 493.544 12.044 527.818 8.722 248.629 9.496
+1475.908 498.065 9.128 517.558 7.953 230.656 8.852
+1476.064 503.630 10.762 521.305 9.711 256.186 9.227
+1476.221 492.996 11.962 518.923 10.568 256.601 5.625
+1476.380 495.730 11.068 523.139 10.811 228.186 7.212
+1476.538 497.627 11.670 522.171 8.993 259.781 6.734
+1476.695 499.406 8.250 518.041 10.048 252.047 8.106
+1476.853 498.004 11.845 520.240 8.754 242.660 10.685
+1477.010 503.320 10.815 519.822 9.178 257.546 11.775
+1477.169 491.463 7.635 523.178 7.685 248.865 6.958
+1477.326 491.664 9.099 515.071 9.415 231.828 6.074
+1477.484 507.816 8.314 516.080 10.113 265.568 5.884
+1477.642 497.008 10.395 514.800 9.151 245.685 13.241
+1477.799 494.350 9.092 520.438 7.635 242.706 7.909
+1477.955 507.313 11.054 521.584 9.429 241.897 10.049
+1478.112 475.213 7.430 517.165 9.212 239.748 8.968
+1478.270 506.552 7.644 510.301 8.595 279.187 7.429
+1478.428 503.525 9.821 521.113 11.571 238.121 10.709
+1478.584 501.295 15.963 520.351 10.442 227.671 8.670
+1478.740 495.452 8.492 517.133 9.893 243.306 5.629
+1478.899 498.724 10.811 519.621 10.018 248.823 6.520
+1479.056 485.697 8.571 514.156 11.051 255.518 10.617
+1479.214 497.677 17.776 515.221 11.593 252.865 9.854
+1479.371 496.056 11.364 518.692 11.339 258.158 7.510
+1479.529 499.710 10.757 518.657 10.332 240.201 11.918
+1479.686 506.837 10.472 521.316 9.417 238.112 8.550
+1479.844 495.458 9.526 515.513 7.714 251.911 7.170
+1480.001 498.044 10.598 527.865 8.527 241.569 10.152
+1480.159 501.450 8.324 519.498 9.562 250.675 8.656
+1480.315 494.754 11.011 512.795 12.046 255.336 15.458
+1480.473 500.817 12.705 523.857 8.874 257.523 8.810
+1480.630 495.548 13.143 521.528 10.185 236.985 10.620
+1480.787 500.395 11.498 521.755 10.533 252.349 12.302
+1480.945 493.024 10.023 521.887 8.458 247.273 7.387
+1481.102 501.650 9.537 522.438 9.195 260.652 8.590
+1481.259 497.566 10.778 520.734 12.346 240.096 9.490
+1481.416 497.835 9.017 522.027 9.932 241.321 16.354
+1481.573 504.688 9.798 527.170 13.327 265.353 12.066
+1481.730 495.986 9.279 525.601 12.133 243.203 8.093
+1481.886 498.039 10.466 526.666 9.583 239.952 8.908
+1482.043 497.220 10.245 522.856 12.428 258.689 7.421
+1482.201 497.432 8.689 529.078 10.957 238.796 7.933
+1482.357 493.734 8.717 526.650 9.550 249.307 9.201
+1482.514 495.557 9.810 526.106 8.679 258.713 7.211
+1482.671 497.645 10.672 524.761 9.072 245.607 8.830
+1482.828 499.316 9.863 527.147 9.979 248.916 8.051
+1482.984 506.723 9.747 522.231 9.232 251.489 7.695
+1483.141 491.857 8.543 529.442 7.339 248.724 8.683
+1483.298 500.018 10.801 524.784 7.494 253.667 7.466
+1483.456 496.250 8.172 528.287 8.861 247.366 6.069
+1483.613 491.612 7.962 529.562 9.236 236.693 5.916
+1483.770 500.656 9.197 523.715 9.350 262.076 9.648
+1483.927 495.136 8.289 524.477 8.096 257.800 6.761
+1484.084 495.911 9.213 528.414 9.949 240.018 7.976
+1484.240 500.419 8.461 528.234 9.438 251.620 7.557
+1484.397 506.824 12.815 525.782 9.053 264.146 13.484
+1484.553 496.098 10.043 528.867 10.154 251.241 8.390
+1484.710 493.521 12.538 526.878 9.433 221.512 16.035
+1484.867 501.285 10.108 525.268 8.773 274.055 10.219
+1485.025 495.502 8.192 527.902 9.448 266.930 9.232
+1485.182 494.175 9.957 526.499 7.200 222.769 8.631
+1485.338 503.781 9.835 532.455 8.736 248.187 10.326
+1485.496 498.987 8.855 523.324 9.359 272.841 6.301
+1485.654 492.669 10.112 529.813 8.394 232.938 11.565
+1485.812 490.716 9.904 533.808 9.204 220.329 7.751
+1485.970 496.507 8.581 524.858 9.481 279.733 8.483
+1486.128 495.965 12.178 530.718 8.139 259.537 6.363
+1486.285 494.619 10.585 529.687 8.736 232.915 7.658
+1486.442 493.636 9.543 530.056 8.371 253.199 7.368
+1486.599 491.316 9.576 526.420 8.730 249.102 8.055
+1486.756 500.693 8.931 529.244 9.443 256.091 5.941
+1486.914 500.047 9.948 532.402 8.042 249.150 11.288
+1487.071 498.300 12.033 527.164 7.507 239.781 7.060
+1487.229 505.073 10.542 531.861 9.805 259.267 6.811
+1487.387 493.910 9.941 533.968 8.673 244.722 7.536
+1487.542 494.789 8.779 528.549 7.674 239.957 8.555
+1487.700 492.517 7.374 536.965 7.143 256.619 5.654
+1487.858 497.895 7.613 530.189 7.564 246.976 6.821
+1488.016 491.659 7.982 530.151 7.528 246.699 5.043
+1488.172 500.776 6.956 529.241 7.315 255.367 5.382
+1488.330 499.417 8.574 529.762 8.319 239.033 9.470
+1488.487 505.204 10.938 531.537 8.703 250.290 8.523
+1488.645 503.402 6.808 530.915 6.871 259.642 4.827
+1488.802 496.224 8.858 531.159 7.881 243.196 5.665
+1488.959 494.192 8.994 530.711 7.992 233.601 5.957
+1489.117 497.501 8.343 526.097 7.856 254.516 6.045
+1489.274 497.915 7.635 528.461 9.097 269.555 7.338
+1489.431 495.089 6.680 533.224 7.404 239.065 8.709
+1489.588 498.720 6.323 534.102 6.617 236.680 8.477
+1489.746 506.677 7.916 529.481 7.043 268.306 5.829
+1489.904 506.926 8.238 530.424 7.522 250.743 7.005
+1490.061 507.019 9.367 534.824 6.738 230.747 5.305
+1490.218 502.750 6.548 530.708 7.602 248.607 6.332
+1490.377 506.277 7.378 527.387 7.201 268.096 5.628
+1490.535 499.452 8.691 531.693 7.446 249.211 7.367
+1490.692 501.424 10.366 536.657 10.229 235.912 7.697
+1490.850 497.754 9.975 529.336 10.610 266.569 7.083
+1491.009 504.367 7.083 529.023 7.887 261.865 5.134
+1491.166 510.553 9.200 531.000 7.497 241.258 5.685
+1491.324 507.725 7.986 532.150 6.689 233.972 5.044
+1491.481 512.057 7.113 533.201 8.197 249.969 6.018
+1491.640 514.300 8.478 533.592 7.780 253.489 8.023
+1491.797 513.523 7.197 529.746 6.635 246.604 5.399
+1491.955 504.955 8.488 532.747 7.681 238.516 5.115
+1492.113 515.289 7.572 534.067 7.002 255.925 5.549
+1492.273 508.882 6.571 532.320 7.640 260.019 4.638
+1492.431 508.188 8.346 531.413 7.640 237.400 5.359
+1492.589 507.871 7.492 533.474 7.960 242.804 7.863
+1492.746 509.718 6.210 530.844 6.486 265.668 5.085
+1492.904 513.807 7.308 531.868 7.868 244.456 6.162
+1493.061 519.098 7.872 534.788 8.427 232.244 6.006
+1493.219 519.761 7.949 530.697 7.620 253.702 6.083
+1493.377 516.857 7.473 534.037 7.182 255.117 6.571
+1493.535 516.358 6.707 531.530 7.098 239.171 5.299
+1493.693 513.453 6.555 532.145 7.202 237.161 4.677
+1493.852 515.714 7.742 532.211 6.833 260.161 3.925
+1494.010 506.427 7.569 532.162 7.906 250.101 4.793
+1494.166 511.964 8.893 530.981 7.092 238.351 6.013
+1494.324 516.799 8.962 530.979 6.818 256.013 8.522
+1494.483 519.708 6.343 530.549 6.943 258.080 5.907
+1494.641 516.827 6.864 529.275 7.019 236.990 4.897
+1494.798 517.608 7.448 533.082 6.751 234.509 5.083
+1494.956 517.566 7.210 533.230 6.805 256.175 5.366
+1495.115 517.425 6.644 529.572 6.546 256.971 5.734
+1495.273 512.964 8.333 533.785 6.827 237.149 4.368
+1495.431 509.809 6.338 533.607 7.301 241.271 6.881
+1495.589 516.138 7.407 530.606 6.933 258.302 3.929
+1495.748 520.561 6.798 532.446 8.329 260.443 5.247
+1495.906 517.385 6.666 534.964 6.200 240.094 4.936
+1496.064 514.263 6.223 533.769 6.577 242.060 4.577
+1496.223 516.162 7.047 533.437 6.180 252.180 3.666
+1496.381 517.381 7.513 533.304 6.504 254.241 4.368
+1496.540 516.993 6.480 533.983 7.334 245.652 5.954
+1496.698 516.290 6.263 535.639 6.099 240.186 4.693
+1496.856 515.782 7.114 532.056 6.387 246.731 5.490
+1497.014 521.797 6.706 532.300 6.255 261.227 5.005
+1497.173 517.878 6.518 534.923 8.683 249.582 7.485
+1497.331 514.838 7.200 535.329 7.063 232.525 5.213
+1497.489 518.038 6.919 533.673 6.679 244.125 4.499
+1497.647 522.180 5.849 535.216 7.040 265.781 5.022
+1497.806 517.531 6.794 534.042 6.714 249.627 6.404
+1497.964 516.965 5.893 536.540 6.634 229.606 4.369
+1498.122 519.839 7.067 534.875 7.184 252.506 7.049
+1498.281 518.038 8.567 533.018 7.667 266.935 5.039
+1498.438 518.380 6.371 534.880 6.154 247.219 5.197
+1498.596 517.983 8.029 537.168 7.360 235.472 5.277
+1498.753 520.389 6.578 536.491 7.269 249.414 5.130
+1498.912 518.433 7.784 533.684 8.428 259.054 7.077
+1499.070 515.994 7.619 535.516 7.458 247.640 6.209
+1499.227 520.430 7.034 537.605 6.160 235.356 5.875
+1499.385 519.554 7.431 536.626 6.536 249.033 4.009
+1499.543 520.395 6.887 534.686 6.561 259.710 5.060
+1499.701 520.384 6.533 537.456 7.137 242.907 5.551
+1499.859 518.453 7.279 539.924 6.671 231.879 5.435
+1500.017 521.864 6.848 536.799 6.564 254.768 4.956
+1500.177 525.568 7.354 534.218 6.442 263.827 4.001
+1500.334 520.155 6.239 537.042 5.965 242.868 5.088
+1500.492 519.021 6.274 538.100 7.007 230.458 4.817
+1500.651 521.660 6.363 537.261 7.508 259.634 6.293
+1500.810 521.116 6.359 535.332 7.294 264.676 4.471
+1500.968 516.421 5.890 538.433 6.576 235.856 5.208
+1501.126 517.404 7.504 538.364 6.647 240.268 4.350
+1501.284 520.514 6.641 537.133 6.811 258.102 4.010
+1501.442 523.335 6.200 534.981 6.318 255.751 3.530
+1501.601 521.443 6.953 538.329 5.911 241.317 6.428
+1501.758 516.944 7.144 537.933 6.451 241.923 3.910
+1501.917 519.139 6.926 534.429 6.235 260.409 4.758
+1502.076 517.161 6.462 534.454 6.108 255.134 4.592
+1502.233 517.621 6.518 537.554 6.266 239.621 4.156
+1502.392 514.956 6.232 538.285 6.494 243.716 4.294
+1502.551 518.809 5.986 537.102 6.491 260.187 3.317
+1502.710 517.508 6.664 536.211 6.201 256.171 4.095
+1502.868 520.525 6.015 537.112 6.203 241.071 4.668
+1503.026 511.225 7.084 538.711 6.543 237.710 7.476
+1503.183 519.282 6.676 535.247 7.088 256.837 6.555
+1503.341 517.102 6.323 536.962 6.596 254.818 4.984
+1503.500 523.171 7.260 538.389 6.297 244.478 4.064
+1503.657 521.781 6.745 539.283 6.758 244.714 4.906
+1503.815 513.747 8.121 537.312 6.019 252.317 4.054
+1503.973 516.577 7.698 534.283 6.644 250.783 5.706
+1504.130 517.685 6.100 540.082 6.183 246.617 3.790
+1504.288 516.246 6.176 537.650 5.917 251.636 3.447
+1504.447 514.062 5.860 539.386 6.523 249.556 5.197
+1504.605 520.380 7.108 536.643 6.556 249.205 4.220
+1504.762 520.973 6.190 537.666 6.336 249.022 4.512
+1504.920 520.349 6.702 535.256 6.871 255.700 3.508
+1505.078 519.823 6.631 538.532 6.824 248.447 4.424
+1505.236 521.788 6.971 538.335 6.410 242.594 4.398
+1505.393 521.787 6.658 538.123 6.985 244.525 4.312
+1505.551 519.527 6.607 536.561 6.386 254.305 4.911
+1505.710 519.365 6.507 536.375 6.992 256.473 4.143
+1505.868 517.813 6.207 538.883 6.646 243.894 3.959
+1506.026 517.288 5.624 538.068 6.139 239.608 3.702
+1506.185 517.062 6.077 536.800 6.131 259.426 3.923
+1506.343 518.870 7.130 536.308 6.225 260.294 4.701
+1506.502 518.468 6.922 538.133 6.438 237.302 5.083
+1506.660 516.504 6.151 539.181 6.401 239.553 4.483
+1506.818 516.805 6.163 537.931 5.969 260.845 4.620
+1506.978 517.928 6.067 536.319 6.985 259.148 5.498
+1507.137 513.779 5.632 537.493 5.942 238.241 4.939
+1507.296 511.837 6.719 538.375 6.241 239.132 3.619
+1507.455 516.188 6.600 538.403 6.635 259.051 4.384
+1507.614 517.211 6.453 536.554 6.150 257.650 3.606
+1507.773 514.112 6.250 536.885 6.195 245.576 4.471
+1507.931 514.941 5.823 537.878 6.401 239.415 3.628
+1508.090 513.899 6.650 538.468 5.789 243.774 4.450
+1508.249 512.989 6.233 536.754 6.653 261.677 4.567
+1508.408 513.009 6.069 536.097 5.967 258.076 4.093
+1508.568 510.620 6.757 539.511 6.742 237.070 4.672
+1508.725 508.386 5.738 539.725 6.663 239.610 4.756
+1508.884 512.173 6.275 537.437 6.777 261.536 5.196
+1509.043 511.461 6.223 535.754 6.252 258.485 4.009
+1509.202 509.924 6.399 538.837 6.552 241.944 4.095
+1509.360 509.019 6.313 539.588 7.132 240.759 4.307
+1509.519 511.340 5.676 537.285 6.514 261.607 3.794
+1509.678 510.673 6.309 537.262 6.261 252.276 4.441
+1509.835 508.156 5.785 538.712 6.714 241.062 3.557
+1509.993 509.191 6.170 538.807 6.216 247.740 3.986
+1510.151 507.691 6.182 538.198 6.166 252.837 3.958
+1510.308 508.176 6.645 538.652 6.540 250.968 3.529
+1510.467 506.211 6.749 537.036 6.887 247.189 3.956
+1510.624 506.572 5.881 538.890 6.385 248.401 4.244
+1510.781 507.025 6.526 538.408 6.525 251.464 3.656
+1510.940 506.250 6.840 539.454 6.487 248.114 4.069
+1511.097 506.332 6.125 536.814 6.302 251.131 3.652
+1511.255 506.473 6.180 539.028 7.086 251.721 4.376
+1511.413 504.094 5.758 539.290 7.196 248.617 5.757
+1511.571 505.731 6.261 539.423 6.111 252.736 4.179
+1511.729 505.037 7.873 538.534 6.333 248.047 6.113
+1511.886 504.320 6.340 539.815 6.568 248.440 3.710
+1512.045 506.113 7.169 540.178 7.142 249.164 5.311
+1512.203 505.821 7.297 537.191 6.408 255.011 4.599
+1512.360 505.918 5.778 540.342 7.808 250.840 4.153
+1512.518 500.779 6.211 539.723 6.233 239.488 4.601
+1512.676 500.427 6.881 538.547 6.240 248.314 5.263
+1512.834 502.994 6.171 536.445 6.265 258.463 3.769
+1512.993 502.609 5.826 540.114 6.251 251.684 4.073
+1513.151 500.376 6.519 540.601 6.289 241.466 4.089
+1513.309 501.343 7.015 539.196 6.145 251.394 4.414
+1513.467 500.363 7.024 537.202 6.489 255.043 4.102
+1513.625 500.683 5.586 540.022 6.356 250.030 3.941
+1513.782 500.456 6.142 539.880 6.022 251.030 3.731
+1513.941 502.064 6.221 540.218 6.433 254.200 4.824
+1514.099 499.610 5.609 539.562 6.038 248.612 3.707
+1514.258 499.226 5.777 538.945 6.409 247.876 4.690
+1514.416 502.252 5.964 537.929 5.935 257.228 3.579
+1514.575 500.282 5.796 541.449 6.361 252.162 3.839
+1514.733 499.082 6.013 541.964 6.459 246.531 4.295
+1514.892 501.880 6.417 538.419 6.908 250.225 5.342
+1515.050 499.638 6.324 541.924 6.965 250.802 3.948
+1515.208 496.366 7.181 539.539 7.003 246.048 6.802
+1515.365 498.943 6.658 540.185 6.701 254.340 5.285
+1515.524 500.659 6.786 539.541 6.409 262.103 4.871
+1515.681 495.876 5.837 538.335 6.089 242.341 5.273
+1515.839 495.268 8.706 540.323 6.511 238.083 4.694
+1515.998 500.632 7.357 538.433 6.662 262.950 3.531
+1516.158 502.416 6.412 540.434 6.854 266.709 4.099
+1516.315 497.654 6.596 541.834 6.481 235.827 5.301
+1516.473 496.866 6.323 539.368 6.411 239.588 4.445
+1516.632 500.018 10.152 538.283 6.407 261.485 4.962
+1516.791 499.470 6.641 540.232 6.233 261.024 3.820
+1516.949 494.314 7.311 539.572 6.705 240.240 5.913
+1517.106 496.243 8.873 540.645 6.449 243.042 4.094
+1517.263 493.772 7.543 540.216 6.527 254.580 5.549
+1517.422 496.477 6.830 540.592 6.519 259.165 5.226
+1517.580 493.554 7.492 539.436 7.015 245.881 7.069
+1517.737 494.495 8.029 538.874 6.696 244.758 5.910
+1517.894 495.044 6.365 538.988 7.512 250.127 5.219
+1518.053 495.440 6.637 538.659 7.470 255.941 5.846
+1518.212 496.144 7.504 538.016 8.628 257.229 5.771
+1518.371 493.341 9.113 537.730 7.762 257.282 7.313
+1518.528 490.633 8.556 540.107 7.465 240.762 6.950
+1518.684 489.816 6.478 540.521 6.543 239.547 5.166
+1518.844 494.908 8.275 538.315 6.864 257.185 6.364
+1519.003 493.669 6.891 537.813 7.613 264.071 5.389
+1519.161 491.296 7.456 539.708 6.135 253.230 4.522
+1519.318 488.352 7.874 538.987 6.355 242.312 4.938
+1519.475 490.013 6.436 540.089 6.193 248.413 4.002
+1519.634 494.860 7.175 537.621 6.219 265.774 4.755
+1519.793 491.138 8.262 539.776 6.328 257.877 7.322
+1519.951 490.881 7.458 542.547 6.776 244.228 5.649
+1520.108 491.468 8.813 540.995 6.922 241.612 6.120
+1520.265 494.934 8.035 540.649 7.135 248.846 4.233
+1520.424 490.379 7.062 537.926 6.845 256.838 5.873
+1520.583 490.473 6.385 537.109 6.579 260.518 5.132
+1520.742 487.434 7.061 540.471 6.929 254.505 4.305
+1520.900 488.144 6.139 539.554 7.019 250.455 4.237
+1521.057 490.231 6.255 539.895 7.044 248.904 5.799
+1521.215 490.912 6.456 539.269 6.365 255.209 8.203
+1521.372 491.509 7.195 539.062 6.664 253.282 6.662
+1521.529 497.545 9.711 540.680 6.507 248.312 7.564
+1521.685 493.705 9.382 538.876 6.918 239.233 5.574
+1521.842 492.637 6.498 539.688 6.428 251.752 3.506
+1522.001 494.696 7.470 538.406 6.362 261.607 4.064
+1522.160 490.607 6.402 537.224 6.313 256.006 4.190
+1522.318 485.436 6.398 540.172 6.970 241.840 4.969
+1522.476 485.074 7.259 538.561 6.988 252.168 4.225
+1522.634 490.910 6.608 539.185 6.674 259.261 4.401
+1522.793 491.709 6.483 539.501 6.378 256.352 3.868
+1522.951 490.927 6.645 539.565 6.189 245.023 3.813
+1523.109 490.349 6.468 540.725 6.371 243.920 5.583
+1523.266 495.363 5.745 538.867 6.369 255.119 3.863
+1523.425 493.223 7.479 539.308 7.506 249.321 4.669
+1523.583 494.752 6.641 540.383 6.582 250.003 4.982
+1523.742 491.507 6.474 539.943 6.331 250.270 5.852
+1523.900 489.065 6.750 538.589 6.530 249.002 4.491
+1524.058 490.980 6.482 540.185 6.650 248.400 3.524
+1524.216 490.279 7.375 538.101 6.391 255.204 4.967
+1524.375 490.782 6.775 539.121 6.989 255.342 4.812
+1524.532 489.007 6.909 540.901 6.958 249.083 6.447
+1524.689 485.210 6.852 539.269 7.004 249.270 4.279
+1524.847 490.672 6.030 538.692 6.959 258.322 4.803
+1525.006 487.996 6.500 538.787 6.310 258.673 4.538
+1525.164 491.580 7.318 539.387 7.044 253.606 4.473
+1525.321 493.625 6.550 541.583 6.615 240.236 4.372
+1525.479 493.216 8.266 539.115 6.575 249.332 5.585
+1525.637 492.402 6.057 539.821 6.153 253.873 3.582
+1525.796 491.554 6.071 540.128 6.314 255.838 4.279
+1525.954 491.805 8.120 539.321 6.657 250.398 4.418
+1526.110 489.968 8.429 539.353 6.621 247.283 3.614
+1526.268 491.209 6.813 539.213 6.583 254.292 5.392
+1526.426 491.012 6.537 539.382 6.571 256.962 4.158
+1526.585 488.330 6.787 539.033 6.386 254.229 4.140
+1526.743 488.203 6.340 539.120 6.778 248.592 7.093
+1526.900 489.172 6.712 539.841 6.226 244.715 5.500
+1527.058 489.861 8.341 538.978 7.021 250.597 5.017
+1527.216 491.488 6.663 540.169 6.858 254.196 3.828
+1527.374 490.884 6.940 538.751 6.496 254.651 5.519
+1527.532 487.808 8.566 540.097 7.835 246.436 4.962
+1527.689 487.818 5.975 541.181 6.148 246.214 3.588
+1527.847 490.358 6.925 539.261 6.489 256.252 4.359
+1528.006 491.283 6.280 538.032 6.139 259.582 4.373
+1528.165 492.892 6.773 538.780 6.370 254.275 3.431
+1528.323 489.658 5.883 538.797 6.652 241.092 4.651
+1528.480 488.206 6.391 539.658 6.943 247.280 4.334
+1528.639 494.672 7.200 537.926 6.625 263.642 4.406
+1528.798 487.476 6.760 537.139 6.946 260.246 5.717
+1528.956 488.254 7.876 541.161 6.722 244.232 5.235
+1529.113 486.902 6.327 538.971 6.734 243.382 4.084
+1529.272 489.239 10.425 539.989 7.776 261.103 5.593
+1529.431 489.302 8.732 539.229 7.114 259.851 4.237
+1529.589 485.973 6.019 538.882 6.541 248.718 4.240
+1529.747 488.609 6.919 539.788 6.666 246.747 5.025
+1529.904 485.946 6.255 539.357 6.488 253.697 3.505
+1530.063 489.649 6.557 538.653 6.058 257.767 3.640
+1530.221 486.266 6.633 537.336 6.437 252.047 4.851
+1530.379 490.922 5.948 540.493 6.084 249.610 3.732
+1530.538 484.449 7.316 539.435 6.911 247.636 4.948
+1530.695 490.784 6.078 538.824 6.079 253.036 4.888
+1530.854 487.367 5.645 538.198 6.242 254.040 3.902
+1531.013 489.253 7.067 538.452 6.382 248.780 7.196
+1531.171 485.292 6.100 540.044 6.706 247.697 4.206
+1531.328 484.192 5.957 539.910 6.978 246.077 4.424
+1531.486 488.681 7.183 538.069 6.558 257.350 4.107
+1531.645 486.606 6.569 538.020 6.583 263.123 4.932
+1531.802 486.476 7.149 540.160 6.329 252.931 5.577
+1531.960 485.504 6.774 538.521 6.124 244.299 4.577
+1532.119 491.025 8.012 538.875 6.659 257.343 7.740
+1532.277 490.290 7.655 539.118 6.573 261.973 5.400
+1532.436 484.112 7.813 539.161 6.886 250.299 5.332
+1532.594 480.711 8.006 539.121 7.852 242.703 7.515
+1532.749 492.167 5.941 538.651 6.172 248.037 5.769
+1532.909 493.561 7.407 537.666 6.029 265.160 6.702
+1533.067 482.255 6.920 538.936 6.492 256.411 7.488
+1533.224 485.992 5.524 538.749 6.185 253.544 5.296
+1533.382 487.430 7.463 539.407 6.336 246.275 4.935
+1533.539 485.724 7.325 539.084 6.015 247.052 3.731
+1533.697 491.757 7.556 538.450 6.225 258.000 3.363
+1533.856 490.497 6.150 539.004 6.674 259.640 5.292
+1534.015 483.865 6.199 538.020 6.111 252.546 3.787
+1534.173 487.868 9.969 540.050 6.153 242.235 5.213
+1534.331 488.648 6.651 538.390 7.082 251.752 5.847
+1534.489 482.996 8.207 536.943 6.874 258.257 6.876
+1534.647 486.110 8.741 536.379 7.307 257.552 6.222
+1534.805 481.611 8.895 540.323 6.458 251.815 5.663
+1534.962 481.146 9.999 541.543 7.073 248.318 9.706
+1535.119 485.321 8.882 539.035 7.626 252.243 7.510
+1535.276 490.713 8.429 537.710 6.397 258.202 4.619
+1535.434 488.857 6.053 539.047 6.547 255.612 4.698
+1535.592 481.778 10.587 538.070 7.517 244.856 5.695
+1535.749 485.297 7.826 539.260 7.036 245.338 6.555
+1535.906 485.813 6.062 540.192 6.289 254.383 4.580
+1536.066 489.938 7.678 537.972 6.750 265.533 4.994
+1536.224 485.799 8.632 540.759 7.512 248.305 8.132
+1536.381 485.698 7.290 539.317 6.968 241.993 5.934
+1536.538 485.627 8.753 539.483 6.905 251.209 6.278
+1536.696 483.876 7.890 538.934 6.436 256.722 6.669
+1536.854 485.738 6.522 537.519 7.353 261.377 5.062
+1537.012 482.407 6.232 538.655 6.582 248.393 4.709
+1537.170 483.844 7.893 540.456 6.684 245.753 5.198
+1537.328 488.258 8.350 538.714 7.112 253.857 5.580
+1537.486 482.872 7.750 537.717 7.127 256.368 6.267
+1537.644 490.038 8.194 539.007 7.592 258.123 5.438
+1537.802 486.680 6.736 539.190 7.002 251.841 6.121
+1537.960 483.616 7.253 539.931 7.423 249.968 5.040
+1538.118 482.446 8.499 538.909 7.045 251.569 5.408
+1538.276 483.974 8.700 538.159 6.749 258.645 5.295
+1538.434 484.619 7.013 538.881 6.774 252.486 4.909
+1538.591 487.276 8.989 539.538 7.446 251.644 6.497
+1538.748 489.112 9.070 538.955 8.957 252.296 6.364
+1538.905 486.581 7.844 539.159 7.712 248.882 5.966
+1539.062 483.785 7.059 539.331 6.657 244.918 5.686
+1539.220 487.667 9.116 538.193 7.495 258.449 5.180
+1539.379 487.066 10.055 537.251 7.306 266.834 5.006
+1539.537 485.310 7.342 539.362 7.631 250.458 4.735
+1539.694 483.003 9.502 538.833 7.069 239.654 6.327
+1539.851 485.530 6.388 538.918 6.594 254.646 4.276
+1540.010 484.095 8.317 538.929 6.990 263.366 5.399
+1540.168 483.540 8.443 538.679 6.940 249.903 5.068
+1540.325 485.035 6.654 538.396 6.707 243.369 5.422
+1540.484 487.240 7.496 539.944 7.253 252.913 5.679
+1540.642 488.832 7.721 538.259 6.427 258.119 7.681
+1540.799 489.288 6.321 538.102 7.309 252.711 5.974
+1540.957 486.462 8.291 537.701 7.286 247.607 7.289
+1541.113 485.264 8.477 539.397 7.146 250.056 6.625
+1541.271 485.602 8.065 537.584 7.327 254.520 5.281
+1541.428 487.716 7.773 538.155 6.967 256.435 8.307
+1541.585 490.267 8.342 536.541 6.782 255.554 6.096
+1541.743 487.462 6.991 537.805 7.108 248.605 4.909
+1541.900 485.084 7.729 537.318 7.600 248.756 7.618
+1542.058 491.750 7.166 539.743 6.318 258.157 5.095
+1542.216 489.617 6.927 537.187 7.110 253.921 6.484
+1542.373 488.206 6.838 537.771 6.929 247.509 5.574
+1542.531 488.862 7.641 538.997 6.937 246.205 5.591
+1542.690 491.638 7.952 537.830 7.551 254.712 5.168
+1542.848 492.116 7.759 536.898 6.946 257.307 5.631
+1543.006 490.131 6.890 537.959 7.130 246.263 5.651
+1543.164 489.251 6.596 538.579 6.396 244.062 3.932
+1543.322 488.802 6.162 537.715 6.309 255.590 4.354
+1543.481 490.008 6.733 537.387 6.871 257.675 5.035
+1543.639 487.950 5.672 536.763 6.525 250.696 5.169
+1543.797 490.769 6.383 538.107 7.067 246.257 4.156
+1543.955 491.437 7.517 538.221 7.430 249.862 5.200
+1544.113 491.374 6.359 537.682 6.399 253.488 4.097
+1544.272 493.183 6.761 537.576 6.898 256.414 4.131
+1544.430 492.431 7.154 538.915 7.014 249.854 6.043
+1544.587 492.334 6.814 538.509 7.534 245.778 5.286
+1544.745 495.823 6.269 537.905 6.953 253.547 4.931
+1544.903 495.558 6.524 537.699 6.129 251.175 5.035
+1545.061 493.795 6.960 539.737 6.302 250.241 4.345
+1545.219 492.277 6.669 538.977 6.552 248.542 3.807
+1545.377 494.952 6.079 537.859 6.455 253.775 4.226
+1545.536 496.339 6.808 537.498 6.362 254.607 4.077
+1545.694 497.183 6.237 539.805 5.951 252.986 4.065
+1545.852 495.231 6.220 540.068 6.316 250.359 5.325
+1546.010 495.332 5.772 537.910 6.925 245.653 4.588
+1546.168 495.653 8.251 537.599 7.291 249.556 4.684
+1546.325 496.066 6.958 537.346 7.364 253.435 4.637
+1546.483 498.300 6.643 538.753 6.723 255.754 4.979
+1546.642 495.913 7.654 539.417 6.398 252.627 3.930
+1546.800 498.649 6.970 538.894 6.801 252.706 4.940
+1546.957 494.186 8.986 536.728 6.659 247.067 6.427
+1547.114 494.621 6.967 541.687 6.632 245.650 9.557
+1547.272 495.996 7.415 536.186 6.679 255.646 5.275
+1547.431 495.160 7.447 537.201 8.844 255.556 6.344
+1547.588 496.151 6.268 535.202 6.367 241.925 7.321
+1547.746 500.061 6.728 537.562 6.504 252.959 6.243
+1547.903 488.300 6.292 538.385 6.216 249.009 3.491
+1548.061 488.463 7.923 535.473 6.465 249.400 8.925
+1548.218 489.114 6.827 538.434 5.829 256.914 3.432
+1548.377 487.591 8.014 539.164 6.384 251.629 8.427
+1548.534 493.425 7.622 542.971 8.735 251.566 8.753
+1548.690 491.654 7.617 540.689 7.285 244.425 5.487
+1548.848 482.496 9.307 535.396 6.656 253.224 8.256
+1549.005 479.305 10.577 539.014 7.112 258.202 7.508
+1549.163 487.663 6.579 540.220 7.057 251.612 4.549
+1549.319 490.436 6.086 542.902 6.471 241.056 3.977
+1549.477 489.604 6.705 539.869 6.217 252.560 6.327
+1549.636 483.476 7.508 539.638 6.071 257.565 5.885
+1549.794 491.554 11.360 539.216 8.488 255.425 8.110
+1549.950 479.005 6.356 539.462 6.196 239.584 4.172
+1550.108 491.350 7.654 538.204 8.148 250.555 5.595
+1550.265 487.853 9.633 542.312 7.782 242.285 6.967
+1550.421 487.498 8.455 538.493 6.626 258.342 5.242
+1550.580 487.165 7.442 537.865 9.386 267.713 6.768
+1550.739 482.921 9.674 539.348 6.434 241.917 7.211
+1550.896 485.079 6.740 540.183 7.212 244.379 7.384
+1551.053 485.840 9.949 541.271 10.290 242.953 7.387
+1551.211 496.528 8.550 536.992 7.708 268.379 7.845
+1551.369 494.825 7.684 540.530 6.561 263.253 4.143
+1551.528 497.328 9.777 541.535 7.633 252.062 5.392
+1551.686 498.263 7.398 541.785 7.131 245.730 9.991
+1551.842 494.312 10.338 539.967 6.981 244.917 5.952
+1552.000 495.813 7.781 541.569 7.342 245.249 4.261
+1552.157 500.028 8.303 540.485 6.579 253.392 5.657
+1552.315 511.080 9.058 538.074 7.212 251.533 8.468
+1552.471 502.580 6.272 537.820 6.276 248.775 4.071
+1552.628 498.635 6.617 534.898 7.346 241.017 4.503
+1552.786 493.586 6.346 535.919 6.338 248.110 4.641
+1552.945 500.185 7.128 537.789 6.243 263.701 5.559
+1553.104 496.721 7.707 536.658 6.928 260.977 4.997
+1553.262 495.447 6.666 538.996 6.072 244.269 6.098
+1553.420 495.894 7.262 538.410 6.602 240.702 3.890
+1553.578 501.948 7.011 537.284 7.849 250.637 4.124
+1553.734 508.009 5.955 537.752 6.025 254.296 3.912
+1553.892 511.540 7.887 540.127 6.666 255.952 3.879
+1554.050 501.135 9.680 538.181 7.493 243.909 10.265
+1554.207 503.061 8.547 540.571 7.379 237.649 5.668
+1554.365 504.980 9.335 541.705 7.104 252.466 7.149
+1554.522 507.149 6.501 539.867 6.217 266.384 6.092
+1554.680 505.011 7.811 541.288 6.832 250.733 6.384
+1554.837 504.150 6.276 539.182 6.532 238.057 5.338
+1554.995 503.381 7.039 537.461 6.421 239.200 3.809
+1555.153 504.353 7.795 535.204 6.794 258.152 4.637
+1555.312 509.983 7.221 537.532 6.336 259.501 5.213
+1555.471 510.339 6.729 535.835 6.297 261.855 3.792
+1555.631 507.613 11.258 541.898 6.429 254.188 9.240
+1555.787 515.246 11.931 542.059 9.034 232.721 10.419
+1555.945 513.212 9.878 540.040 9.485 242.747 9.468
+1556.102 507.932 9.347 534.130 7.270 253.947 5.720
+1556.260 515.579 8.188 538.801 6.540 251.209 6.122
+1556.417 511.235 6.181 537.918 6.438 243.342 4.473
+1556.576 511.492 6.175 541.809 5.861 244.223 3.302
+1556.734 512.725 7.533 540.738 6.546 251.822 4.567
+1556.891 508.807 6.956 537.667 6.588 254.118 3.862
+1557.049 514.698 8.108 537.136 6.339 251.131 3.744
+1557.207 507.727 7.167 539.751 6.066 246.491 4.543
+1557.364 506.027 6.686 538.977 6.018 249.384 5.263
+1557.522 507.440 6.884 539.699 6.114 251.033 5.156
+1557.680 507.084 6.758 539.377 6.010 246.220 5.882
+1557.838 503.920 8.329 536.593 6.249 243.192 6.757
+1557.994 503.309 7.740 539.486 6.201 248.531 5.961
+1558.153 504.213 6.485 537.544 6.410 260.575 4.485
+1558.311 502.262 6.913 542.665 6.655 246.965 4.726
+1558.468 497.942 6.272 543.166 6.370 238.789 5.120
+1558.626 499.649 6.427 536.761 6.462 252.527 3.997
+1558.784 496.366 6.406 540.487 5.871 252.375 5.038
+1558.942 494.583 6.173 539.264 5.932 254.483 4.179
+1559.100 493.875 7.125 537.812 8.222 251.154 4.674
+1559.257 495.578 6.182 540.278 6.141 250.631 3.961
+1559.415 492.415 5.734 542.882 5.951 249.706 3.367
+1559.574 496.294 6.224 540.528 5.981 259.667 6.175
+1559.732 495.952 7.145 540.525 6.550 256.626 5.590
+1559.891 486.209 12.533 541.705 7.353 232.876 8.919
+1560.047 492.472 6.126 541.687 7.402 244.348 4.768
+1560.206 489.764 6.255 538.896 6.535 264.063 4.576
+1560.365 494.737 5.922 540.929 6.127 263.870 3.928
+1560.523 489.767 5.405 538.219 5.881 243.128 4.024
+1560.681 493.807 5.648 541.202 5.796 244.361 3.735
+1560.839 491.308 6.939 541.742 6.034 256.203 3.562
+1560.998 480.543 6.095 538.847 5.925 255.142 3.723
+1561.155 481.305 9.632 540.128 6.609 256.241 7.071
+1561.313 485.443 6.135 543.691 6.281 255.462 5.436
+1561.472 483.114 9.219 541.966 7.694 247.654 5.665
+1561.628 475.951 5.980 540.739 6.765 246.126 3.949
+1561.787 492.779 6.391 537.957 6.588 269.091 9.117
+1561.946 488.617 6.936 538.679 6.139 261.880 4.638
+1562.104 488.526 7.460 540.876 7.160 244.198 5.272
+1562.261 486.025 6.741 539.098 6.068 229.822 6.122
+1562.420 491.290 6.205 536.951 6.960 257.678 8.769
+1562.579 488.932 5.909 540.959 7.811 265.496 8.418
+1562.736 490.399 7.056 542.029 6.267 256.745 7.836
+1562.893 488.464 7.372 540.500 6.521 235.427 5.878
+1563.051 485.754 6.375 537.925 6.656 253.554 4.162
+1563.210 491.177 6.260 539.309 6.473 270.055 5.882
+1563.368 486.621 6.677 535.293 6.491 255.470 4.262
+1563.526 478.946 6.394 540.363 6.168 236.954 5.376
+1563.684 482.189 5.663 538.853 6.609 252.739 4.819
+1563.844 486.491 6.778 536.428 6.047 264.037 3.888
+1564.002 484.094 6.794 535.154 6.982 257.490 5.407
+1564.160 486.471 6.639 537.991 6.425 241.564 5.528
+1564.318 490.394 9.707 537.209 6.527 251.935 4.598
+1564.476 489.914 6.773 537.062 7.045 251.059 4.807
+1564.634 490.429 6.231 535.110 5.966 255.110 3.901
+1564.793 489.794 7.178 533.921 6.270 250.731 5.540
+1564.951 485.207 7.490 537.729 7.440 247.417 4.405
+1565.108 486.712 5.770 538.427 6.592 247.724 4.198
+1565.266 485.697 6.300 535.484 6.590 257.087 4.740
+1565.425 486.517 6.587 535.384 6.927 267.250 4.217
+1565.584 487.605 6.092 537.713 6.218 247.082 4.952
+1565.742 483.546 5.966 540.047 6.319 236.580 4.483
+1565.899 483.485 6.333 534.120 6.856 252.355 5.240
+1566.058 487.264 6.848 533.661 6.430 265.853 6.155
+1566.217 487.222 6.934 535.466 6.287 256.988 4.637
+1566.375 484.192 7.022 536.334 6.500 235.109 4.666
+1566.532 493.372 6.893 536.073 6.857 251.151 5.474
+1566.691 489.263 6.066 531.580 6.717 259.891 4.868
+1566.849 477.862 7.044 534.375 6.598 252.188 6.254
+1567.007 488.778 6.598 535.083 6.925 245.751 3.989
+1567.164 487.457 7.271 536.090 7.612 251.117 4.716
+1567.321 483.174 6.273 531.501 6.120 256.161 4.926
+1567.480 482.971 6.431 533.315 6.148 251.451 4.427
+1567.639 488.919 6.143 532.793 6.179 256.254 4.199
+1567.797 482.069 7.569 532.688 6.211 252.182 4.219
+1567.955 486.760 5.927 534.866 6.566 250.281 4.094
+1568.113 488.187 5.972 534.488 7.027 249.292 3.948
+1568.270 485.231 6.143 532.715 6.586 249.492 4.281
+1568.428 492.092 6.896 533.317 7.419 253.114 4.797
+1568.586 487.380 6.803 535.873 6.581 254.001 4.584
+1568.744 488.853 7.342 533.518 7.246 248.400 5.494
+1568.901 495.928 6.061 535.125 6.837 252.774 3.895
+1569.059 489.099 9.135 533.011 8.343 253.797 5.534
+1569.217 493.571 7.153 533.020 7.233 251.628 4.027
+1569.374 492.655 7.691 535.820 6.262 246.416 3.932
+1569.532 493.116 6.650 534.648 7.045 250.634 4.446
+1569.690 488.711 7.030 532.396 7.421 250.696 6.270
+1569.848 487.057 6.066 530.744 6.448 255.996 4.704
+1570.006 496.370 6.460 534.167 6.878 258.319 4.381
+1570.164 492.003 7.099 534.641 6.568 252.433 4.569
+1570.322 493.750 6.599 534.366 6.906 248.434 4.776
+1570.479 492.747 8.420 532.203 6.746 245.204 6.590
+1570.636 491.157 6.894 534.512 8.100 249.522 5.649
+1570.793 494.301 8.148 530.805 6.496 253.015 5.262
+1570.950 489.143 6.480 532.488 6.365 250.120 5.541
+1571.108 497.841 6.780 535.714 7.049 247.491 4.574
+1571.266 490.578 7.401 533.347 7.445 249.174 5.255
+1571.424 497.275 6.437 534.163 6.850 252.031 4.413
+1571.582 494.152 6.839 533.231 6.756 245.960 5.449
+1571.740 492.751 7.087 533.202 7.465 252.469 5.264
+1571.898 497.477 6.525 532.202 7.374 258.454 5.607
+1572.056 495.624 7.820 529.162 8.139 250.214 4.597
+1572.213 494.686 7.830 533.871 9.065 245.462 5.222
+1572.371 493.846 7.227 532.608 7.569 251.744 10.366
+1572.528 492.488 7.480 530.466 7.502 257.777 4.466
+1572.686 490.034 8.229 536.054 7.169 247.677 4.892
+1572.844 492.240 12.434 533.380 7.540 242.316 16.907
+1573.000 494.692 8.194 534.573 8.080 239.943 7.254
+1573.156 497.247 8.357 533.025 7.675 251.609 6.750
+1573.313 496.062 7.338 532.250 7.388 256.056 6.643
+1573.471 495.240 7.070 535.722 6.969 251.720 5.125
+1573.629 494.882 7.129 532.197 7.946 254.877 4.784
+1573.786 492.898 7.045 533.142 6.665 253.838 4.278
+1573.944 494.999 6.780 534.661 8.191 247.438 6.435
+1574.102 489.830 6.515 533.656 8.542 249.634 4.395
+1574.259 491.338 7.307 533.016 8.104 254.516 4.222
+1574.416 491.583 6.510 533.480 7.414 252.115 4.463
+1574.573 496.655 8.137 533.664 8.175 251.121 5.356
+1574.730 496.976 7.290 535.536 7.735 251.791 4.699
+1574.887 496.039 7.230 535.205 8.062 245.697 4.752
+1575.044 494.740 8.008 532.402 6.846 247.267 5.391
+1575.201 499.337 8.872 533.104 7.820 254.562 7.417
+1575.358 490.733 6.963 531.691 8.046 249.025 5.204
+1575.516 495.217 6.362 533.216 6.830 256.450 4.140
+1575.673 491.602 6.347 535.712 7.608 247.934 4.537
+1575.831 493.636 6.200 534.327 6.806 251.279 4.336
+1575.989 492.876 8.089 532.613 7.404 251.862 4.692
+1576.146 495.648 6.466 534.926 6.462 250.888 3.719
+1576.305 492.336 7.232 534.159 7.003 250.738 4.357
+1576.462 495.783 7.165 533.611 7.526 253.447 4.673
+1576.619 494.157 6.257 532.716 8.194 251.824 4.283
+1576.777 494.361 6.305 531.727 6.198 251.068 4.186
+1576.936 493.063 6.364 534.407 6.651 249.820 4.698
+1577.094 490.510 8.163 535.174 6.967 247.418 4.730
+1577.251 494.395 9.368 532.251 7.953 253.344 6.402
+1577.407 496.353 6.965 535.492 8.097 250.433 5.910
+1577.564 494.323 7.415 532.975 7.698 250.514 7.484
+1577.721 500.453 7.014 533.059 6.798 254.915 4.762
+1577.878 496.854 6.882 533.800 7.501 250.939 3.908
+1578.036 492.408 7.548 535.978 8.329 240.159 6.937
+1578.193 495.664 6.989 533.939 6.578 251.401 5.089
+1578.352 493.336 8.885 536.169 7.418 251.664 4.236
+1578.509 496.973 8.819 533.081 8.458 251.326 5.171
+1578.666 495.119 7.684 533.720 6.939 254.973 4.559
+1578.824 494.951 5.945 534.927 6.156 247.419 5.084
+1578.982 495.729 7.171 533.879 7.133 251.644 4.697
+1579.140 496.687 6.649 535.868 8.211 253.596 8.058
+1579.297 497.986 7.465 534.998 6.690 250.686 4.503
+1579.454 495.539 9.359 532.640 8.363 252.406 4.260
+1579.611 498.615 6.323 533.656 6.868 248.684 4.092
+1579.769 499.566 7.071 535.626 7.327 250.216 4.322
+1579.927 500.125 6.433 534.516 7.385 248.012 4.346
+1580.084 501.991 7.921 535.905 7.556 250.540 4.674
+1580.242 501.359 8.011 535.399 7.868 253.585 6.866
+1580.398 498.323 6.840 532.184 8.216 249.745 6.329
+1580.556 500.333 7.032 533.261 8.695 246.677 4.497
+1580.713 498.163 7.070 533.012 6.505 256.896 4.210
+1580.871 503.421 8.553 534.160 7.453 241.288 8.968
+1581.027 501.194 8.494 534.811 7.274 247.642 5.464
+1581.184 499.211 6.797 534.808 7.416 248.956 4.549
+1581.341 497.972 7.038 532.448 6.466 247.389 5.536
+1581.499 498.969 7.790 532.844 7.095 254.993 6.052
+1581.657 501.719 6.268 534.618 6.682 252.729 4.260
+1581.815 502.927 6.444 534.426 6.578 251.237 4.419
+1581.973 503.409 6.894 535.404 6.139 248.412 3.625
+1582.131 501.894 7.222 534.474 6.093 247.054 4.358
+1582.288 502.918 6.531 533.824 6.506 249.610 4.789
+1582.446 504.109 6.145 533.128 7.201 253.736 3.943
+1582.604 501.311 6.600 532.341 6.950 252.657 4.488
+1582.761 503.983 6.206 534.203 6.482 249.556 3.754
+1582.920 506.629 6.720 537.412 6.517 246.955 7.561
+1583.077 506.806 7.515 535.124 6.374 248.609 4.651
+1583.234 506.908 7.740 534.371 6.761 248.786 4.179
+1583.392 507.669 6.885 535.043 5.970 251.217 4.148
+1583.550 501.756 7.249 533.440 7.050 249.902 4.466
+1583.707 499.747 7.485 534.634 7.186 248.629 5.021
+1583.864 501.817 7.050 535.646 7.272 249.676 4.392
+1584.021 504.638 6.424 534.546 6.185 250.196 4.027
+1584.179 503.626 6.677 534.585 6.826 251.291 4.879
+1584.337 502.906 6.482 534.425 6.221 248.872 4.495
+1584.495 504.399 6.607 533.194 6.518 247.748 4.047
+1584.653 506.204 6.567 533.662 6.293 249.877 4.766
+1584.811 504.392 6.544 535.146 6.150 248.988 4.371
+1584.969 503.473 6.002 535.611 6.585 252.189 3.795
+1585.126 500.974 6.651 535.446 6.937 249.481 4.270
+1585.284 503.399 6.133 536.714 6.410 251.004 3.735
+1585.443 505.304 7.130 536.227 6.427 249.380 3.964
+1585.600 504.583 5.970 536.012 6.440 248.373 3.760
+1585.758 506.365 6.136 536.100 6.384 250.503 4.341
+1585.916 508.453 6.207 536.221 6.598 250.655 4.527
+1586.074 502.414 6.814 537.292 6.602 246.566 4.331
+1586.231 503.794 6.558 537.673 6.329 249.955 4.733
+1586.390 503.667 6.613 537.216 6.205 250.879 4.188
+1586.547 502.246 6.133 537.812 6.653 252.598 3.454
+1586.706 502.352 7.055 537.858 6.731 248.226 4.539
+1586.863 502.433 7.616 539.308 6.572 248.062 4.831
+1587.020 504.944 7.699 538.963 6.771 251.530 4.494
+1587.178 504.819 7.139 540.269 6.818 253.555 4.370
+1587.336 505.348 7.376 539.602 7.864 247.405 4.827
+1587.493 506.013 6.404 540.996 6.466 249.394 4.849
+1587.651 503.570 7.373 539.800 5.862 253.333 4.778
+1587.808 505.275 6.364 539.508 6.198 249.963 3.680
+1587.967 503.952 5.511 539.055 5.831 248.999 3.180
+1588.126 503.279 6.013 539.790 5.880 251.790 3.809
+1588.285 503.932 8.526 538.317 5.967 253.397 5.596
+1588.443 507.259 5.941 540.053 6.340 254.113 4.003
+1588.601 505.542 6.113 541.000 6.588 247.331 4.992
+1588.758 506.685 7.171 541.170 6.959 245.093 7.357
+1588.916 505.746 5.876 542.171 6.885 248.500 4.581
+1589.073 504.837 5.877 541.581 5.913 248.665 4.067
+1589.231 504.258 7.342 540.265 5.792 249.856 4.180
+1589.389 502.922 5.794 540.092 5.978 252.388 3.193
+1589.547 502.539 6.367 538.491 6.093 255.323 3.953
+1589.705 503.265 5.438 537.764 5.898 249.313 4.275
+1589.863 503.762 5.836 539.337 6.054 248.783 3.541
+1590.021 505.757 6.190 536.533 6.029 250.187 3.749
+1590.180 505.467 7.306 537.415 6.853 247.221 4.322
+1590.337 508.064 5.860 537.534 6.343 251.132 3.783
+1590.496 505.370 6.071 535.705 5.957 246.941 3.615
+1590.654 503.493 5.901 533.807 6.550 256.289 4.641
+1590.813 501.824 6.853 534.978 6.294 251.212 4.728
+1590.971 501.268 7.437 534.509 6.365 249.342 3.981
+1591.128 502.802 7.477 535.415 7.041 252.343 5.452
+1591.286 505.778 6.462 537.294 7.086 254.243 3.971
+1591.443 506.517 6.609 535.363 6.222 249.552 4.788
+1591.601 504.035 8.832 538.493 7.924 235.605 8.110
+1591.756 502.280 7.632 535.225 6.480 246.316 4.840
+1591.913 502.702 5.943 534.872 6.926 252.203 4.294
+1592.071 500.447 9.229 534.918 8.017 247.762 6.693
+1592.228 500.994 6.655 534.399 6.127 255.327 4.602
+1592.386 502.299 6.235 535.404 6.333 254.603 4.136
+1592.545 504.013 5.560 534.644 6.080 250.836 5.446
+1592.703 504.450 6.502 535.836 7.550 244.278 5.554
+1592.860 505.564 6.322 534.028 6.178 248.752 4.682
+1593.017 505.465 6.420 535.050 5.928 246.737 4.995
+1593.175 503.204 6.149 535.120 6.791 241.507 6.298
+1593.332 503.042 7.537 536.931 6.590 250.915 4.978
+1593.490 501.610 6.530 533.859 6.919 252.849 5.695
+1593.648 504.286 7.661 532.688 6.873 249.418 4.912
+1593.806 503.042 6.153 535.896 6.356 249.134 3.697
+1593.964 504.740 8.275 533.459 6.875 254.431 4.523
+1594.122 504.227 6.867 532.634 7.040 250.014 4.193
+1594.280 505.762 6.690 533.536 6.239 249.160 5.416
+1594.438 506.267 6.409 535.395 6.488 246.891 4.327
+1594.595 504.432 6.562 533.434 6.789 248.588 4.787
+1594.753 505.774 7.058 534.614 6.697 247.985 6.090
+1594.911 504.707 7.449 535.216 7.876 246.189 5.311
+1595.068 503.357 7.244 532.262 7.420 249.011 4.559
+1595.225 499.753 7.187 535.742 7.073 248.260 4.270
+1595.383 500.847 6.180 533.627 6.939 254.962 4.642
+1595.542 502.358 7.010 535.686 6.867 251.379 5.204
+1595.700 500.093 6.534 533.186 6.887 246.133 3.711
+1595.857 501.230 6.229 533.001 6.556 250.991 4.038
+1596.016 504.292 6.797 533.850 6.144 251.399 3.652
+1596.174 505.442 5.833 533.738 6.485 248.394 4.200
+1596.332 503.324 6.358 534.257 6.921 246.213 3.721
+1596.489 502.733 6.481 535.742 6.353 250.082 4.417
+1596.648 503.757 6.277 531.767 6.677 249.490 6.153
+1596.805 502.847 6.213 535.147 6.813 246.754 3.783
+1596.963 502.268 6.386 536.051 6.701 249.807 4.575
+1597.121 502.262 6.315 533.410 6.154 247.948 3.589
+1597.279 503.002 6.738 531.634 6.519 252.169 4.067
+1597.436 501.430 6.353 532.676 6.074 251.001 4.205
+1597.595 502.524 6.472 533.326 6.547 246.180 3.916
+1597.752 505.045 6.230 532.463 6.737 248.991 5.131
+1597.910 505.720 6.255 532.054 6.239 250.169 3.804
+1598.068 504.407 7.639 532.730 6.140 248.121 4.332
+1598.226 502.764 6.698 533.847 6.372 247.271 3.914
+1598.384 505.677 6.615 533.318 6.551 248.862 4.583
+1598.541 506.086 5.914 530.393 6.288 252.408 4.811
+1598.700 504.100 6.039 535.314 5.983 253.694 4.058
+1598.857 502.051 6.414 534.133 6.213 246.626 4.321
+1599.015 503.050 5.883 532.891 6.337 248.686 3.684
+1599.173 503.700 6.470 535.829 6.461 252.046 4.511
+1599.331 504.257 6.217 533.888 6.346 253.390 4.195
+1599.490 502.822 6.899 533.718 6.454 247.193 4.082
+1599.648 504.288 6.126 534.357 6.437 248.901 5.147
+1599.806 505.142 6.188 535.433 5.777 249.069 3.789
+1599.964 504.991 5.702 535.594 6.136 250.710 3.363
+1600.123 505.239 5.686 533.156 6.420 248.657 4.515
+1600.281 505.022 6.286 534.851 6.106 247.896 5.054
+1600.440 504.680 6.370 538.078 6.069 249.828 4.713
+1600.597 504.706 6.421 533.220 5.978 248.238 5.782
+1600.755 506.297 6.034 533.652 6.096 250.872 3.778
+1600.913 506.773 6.001 535.526 5.992 251.638 3.284
+1601.071 504.227 5.789 535.275 6.507 250.526 4.354
+1601.229 503.612 6.323 534.832 6.838 247.485 5.230
+1601.387 504.226 7.234 533.328 6.317 250.434 6.504
+1601.544 504.942 7.053 536.183 5.920 253.064 3.701
+1601.703 504.429 6.121 536.701 5.881 250.370 4.204
+1601.861 504.434 6.026 537.707 6.202 248.823 4.287
+1602.019 504.684 6.159 536.437 6.042 249.878 3.993
+1602.177 504.026 5.714 536.574 5.882 251.598 3.457
+1602.335 503.800 6.398 535.885 5.906 250.016 3.730
+1602.493 503.788 5.950 535.608 6.081 248.710 3.276
+1602.651 504.717 6.370 536.956 6.070 249.087 4.062
+1602.809 504.477 5.941 532.499 6.496 249.790 4.024
+1602.967 504.944 5.662 530.215 6.218 249.707 3.606
+1603.126 504.239 6.068 532.682 6.211 248.637 3.428
+1603.284 505.182 5.739 528.966 5.805 249.046 3.845
+1603.442 504.981 6.476 527.859 6.185 247.740 3.782
+1603.600 505.839 6.293 528.078 6.007 248.857 3.303
+1603.758 505.778 6.229 528.780 6.064 248.888 4.401
+1603.917 504.517 6.360 526.497 5.923 248.798 3.550
+1604.075 504.675 5.652 524.055 6.844 250.228 4.128
+1604.233 503.936 5.865 523.810 6.135 245.712 3.858
+1604.392 506.139 6.683 521.978 6.315 248.557 3.763
+1604.550 504.871 6.042 520.899 6.018 246.805 4.088
+1604.708 504.358 6.026 523.659 5.782 248.468 5.345
+1604.866 504.143 6.137 522.476 6.083 247.914 3.720
+1605.024 504.151 6.097 519.614 6.103 247.299 4.281
+1605.183 504.311 5.962 515.296 5.788 245.813 4.287
+1605.342 503.773 5.659 518.032 6.087 247.948 3.413
+1605.500 503.917 5.591 521.850 5.653 248.589 4.097
+1605.658 504.529 6.046 518.958 5.673 247.465 3.249
+1605.816 503.875 6.270 520.079 5.656 247.354 3.634
+1605.974 504.628 5.743 523.340 5.776 249.443 3.868
+1606.132 505.306 5.456 518.233 5.609 246.984 3.054
+1606.291 504.723 5.693 510.442 5.969 244.719 3.617
+1606.449 504.077 5.571 530.984 10.518 249.167 3.275
+1606.608 502.680 6.359 547.909 6.369 252.881 4.932
+1606.765 503.556 5.728 540.709 5.837 252.418 3.523
+1606.923 504.135 5.791 542.357 5.793 249.864 3.227
+1607.081 503.951 5.427 540.563 5.754 248.498 3.376
+1607.240 504.389 5.398 541.405 5.706 251.675 3.314
+1607.398 504.103 5.410 540.964 5.734 250.176 3.346
+1607.556 503.341 5.513 541.239 5.696 250.651 3.219
+1607.714 504.613 5.349 540.562 5.679 250.796 3.223
+1607.872 504.196 5.595 541.375 5.843 250.887 3.043
+1608.031 504.311 5.497 540.743 5.774 250.468 3.170
+1608.189 504.833 5.344 541.737 5.674 250.854 3.246
+1608.346 504.178 5.385 541.257 5.680 250.808 3.447
+1608.504 504.501 5.382 541.312 5.838 249.838 3.442
+1608.662 505.075 5.437 540.823 5.737 250.458 3.490
+1608.820 504.580 5.405 541.488 5.702 250.294 3.055
+1608.978 504.235 5.443 541.144 5.753 250.232 3.030
+1609.136 504.052 5.369 541.201 5.762 250.332 3.237
+1609.295 504.770 5.396 540.992 5.735 250.393 3.274
+1609.453 504.727 5.432 541.159 5.592 250.603 3.274
+1609.611 504.467 5.381 541.641 5.706 250.346 3.279
+1609.769 504.444 5.498 541.406 5.776 250.463 3.115
+1609.927 505.034 5.475 541.374 5.750 250.414 3.396
+1610.085 504.090 5.372 540.823 5.712 250.794 3.233
+1610.243 504.080 5.350 540.908 5.746 250.157 3.052
+1610.401 504.850 5.335 540.599 5.698 250.531 3.109
+1610.559 504.548 5.440 541.946 5.735 250.375 2.964
+1610.717 504.325 5.405 540.779 5.600 251.183 3.284
+1610.876 503.663 5.481 540.947 5.657 250.831 2.913
+1611.034 504.396 5.285 541.059 5.650 250.408 3.283
+1611.191 504.404 5.307 541.690 5.716 250.524 3.179
+1611.349 504.574 5.401 541.096 5.651 250.255 3.391
+1611.507 504.205 5.491 541.261 5.729 251.112 3.271
+1611.665 504.462 5.368 541.182 5.688 250.481 3.270
+1611.823 504.394 5.381 541.561 5.714 250.984 3.095
+1611.982 504.684 5.313 541.115 5.770 249.739 3.230
+1612.140 504.526 5.355 541.231 5.727 249.897 3.273
+1612.298 504.825 5.404 540.872 5.727 250.128 3.420
+1612.456 504.238 5.351 541.588 5.708 250.591 3.379
+1612.614 504.232 5.375 542.105 5.746 249.835 3.221
+1612.772 504.402 5.317 542.381 5.739 250.958 3.083
+1612.930 504.474 5.530 541.263 5.724 250.949 3.382
+1613.088 504.694 5.589 541.542 5.740 250.449 3.107
+1613.247 504.347 5.336 541.615 5.701 250.134 2.967
+1613.405 504.143 5.546 542.086 5.661 250.561 3.028
+1613.563 504.001 5.406 541.040 5.694 250.255 3.453
+1613.720 504.440 5.374 541.620 5.713 249.942 3.213
+1613.879 504.714 5.341 541.276 5.663 251.129 2.973
+1614.037 503.637 5.469 541.412 5.810 251.051 3.282
+1614.195 504.106 5.371 541.364 5.732 250.550 3.030
+1614.353 504.121 5.301 541.033 5.786 250.455 3.326
+1614.510 504.081 5.354 542.350 5.655 250.464 3.044
+1614.668 504.570 5.368 542.923 5.800 250.034 3.572
+1614.826 504.165 5.444 542.659 5.789 251.180 3.424
+1614.984 503.531 5.400 540.376 5.733 250.961 3.399
+1615.143 503.975 5.481 541.013 5.699 250.259 3.083
+1615.301 503.869 5.453 540.490 5.637 251.162 3.134
+1615.459 504.778 5.372 539.754 5.688 250.811 3.171
+1615.617 504.327 5.374 540.507 5.826 249.828 3.004
+1615.776 505.413 5.400 540.875 5.748 250.208 2.997
+1615.934 504.494 5.404 540.228 5.784 250.242 3.113
+1616.092 504.324 5.304 540.942 5.670 249.852 3.173
+1616.250 503.863 5.357 540.959 5.780 250.108 2.996
+1616.409 503.868 5.371 541.529 5.731 251.461 3.624
+1616.567 504.008 5.370 541.125 5.794 250.034 3.048
+1616.725 504.450 5.651 540.841 5.947 250.320 3.146
+1616.883 504.404 5.321 540.978 5.840 250.113 3.256
+1617.041 504.164 5.417 540.869 5.611 250.081 3.221
+1617.200 503.811 5.392 540.958 5.697 250.870 3.150
+1617.358 504.198 5.414 541.509 5.677 250.208 3.373
+1617.516 504.272 5.300 540.435 5.753 250.592 3.156
+1617.674 504.412 5.473 541.194 5.624 249.805 3.248
+1617.833 504.504 5.469 541.102 5.741 251.168 2.870
+1617.991 504.695 5.436 541.201 5.648 250.191 3.350
+1618.148 504.107 5.474 540.832 5.759 250.591 3.105
+1618.306 504.961 5.417 541.318 5.654 250.765 3.294
+1618.464 504.249 5.347 541.623 5.780 250.357 3.411
+1618.622 504.642 5.256 541.526 5.766 250.683 3.087
+1618.780 504.526 5.397 541.705 5.643 250.766 3.065
+1618.938 504.715 5.336 541.307 5.687 250.657 2.962
+1619.096 504.267 5.378 541.403 5.728 250.696 3.129
+1619.255 504.502 5.285 541.374 5.707 250.546 3.036
+1619.413 504.205 5.395 540.813 5.692 249.825 3.251
+1619.571 504.892 5.294 541.198 5.773 250.198 3.471
+1619.729 504.789 5.424 541.672 5.844 250.662 2.955
+1619.888 504.627 5.391 541.346 5.853 250.826 3.193
+1620.046 504.656 5.372 541.253 5.665 250.698 3.083
+1620.204 504.356 5.310 541.372 5.757 250.467 3.247
+1620.362 504.453 5.302 542.013 5.611 250.704 3.103
+1620.520 504.384 5.452 541.240 5.678 250.907 3.150
+1620.678 504.733 5.268 541.422 5.619 250.769 3.341
+1620.836 504.217 5.366 541.614 5.615 250.647 3.141
+1620.995 504.052 5.358 541.086 5.725 250.876 3.387
+1621.152 504.370 5.481 541.480 5.650 250.248 3.166
+1621.311 504.383 5.405 541.594 5.687 250.502 3.140
+1621.468 504.663 5.323 541.256 5.685 250.845 3.429
+1621.626 504.076 5.281 540.892 5.746 250.688 3.178
+1621.784 504.600 5.309 541.269 5.721 250.586 3.032
+1621.943 504.646 5.338 541.152 5.759 250.295 3.131
+1622.101 504.166 5.434 541.081 5.836 251.042 3.081
+1622.259 504.571 5.344 541.800 5.644 250.920 3.127
+1622.418 503.795 5.477 541.508 5.674 251.199 3.160
+1622.576 503.627 5.493 541.145 5.697 250.422 3.038
+1622.734 504.646 5.415 541.651 5.710 250.274 3.195
+1622.892 504.036 5.293 540.776 5.670 251.492 2.910
+1623.050 504.590 5.518 540.577 5.711 250.434 3.202
+1623.208 504.765 5.385 541.775 5.726 251.304 3.272
+1623.367 504.497 5.344 540.767 5.616 250.603 3.158
+1623.525 503.775 5.406 541.787 5.640 250.036 2.930
+1623.683 504.247 5.329 541.397 5.761 250.420 3.115
+1623.842 504.462 5.307 541.544 5.731 250.704 3.324
+1624.000 504.354 5.335 541.435 5.724 250.857 3.164
+1624.158 504.323 5.362 541.094 5.759 250.218 3.158
+1624.316 504.873 5.362 541.691 5.665 250.652 3.131
+1624.474 504.708 5.429 541.806 5.812 250.386 2.977
+1624.632 504.167 5.319 541.728 5.733 250.003 3.429
+1624.790 504.431 5.535 541.527 5.741 250.630 3.050
+1624.949 504.794 5.423 541.725 5.681 250.776 3.143
+1625.107 505.038 5.311 542.087 5.708 250.937 2.890
+1625.265 504.430 5.268 542.120 5.888 250.279 3.012
+1625.423 504.774 5.405 541.501 5.695 250.762 3.091
+1625.581 504.127 5.419 541.115 5.701 250.847 3.342
+1625.739 504.411 5.372 541.831 5.744 250.208 3.184
+1625.897 504.114 5.348 541.728 5.647 250.112 3.180
+1626.055 504.041 5.367 541.557 5.675 250.601 3.099
+1626.213 504.370 5.286 541.195 5.674 251.386 3.150
+1626.371 504.183 5.399 541.672 5.837 250.893 3.279
+1626.529 504.361 5.312 540.756 5.781 250.508 3.123
+1626.687 504.183 5.312 541.077 5.688 250.515 3.178
+1626.845 504.491 5.361 541.120 5.736 250.765 3.047
+1627.003 504.044 5.288 541.291 5.776 250.227 2.978
+1627.161 504.210 5.342 541.663 5.713 250.742 3.033
+1627.319 504.172 5.382 541.506 5.694 250.247 3.059
+1627.477 504.421 5.373 541.645 5.723 251.382 3.275
+1627.635 504.064 5.431 541.566 5.786 250.873 2.971
+1627.794 504.620 5.406 541.235 5.674 250.208 3.240
+1627.952 504.096 5.496 541.222 5.778 250.572 3.014
+1628.111 504.050 5.401 541.282 5.738 250.185 3.042
+1628.269 504.160 5.378 541.302 5.711 249.521 2.962
+1628.427 504.111 5.293 541.133 5.621 251.035 3.180
+1628.585 504.131 5.287 541.691 5.699 250.940 3.284
+1628.743 504.371 5.253 541.386 5.684 250.319 3.182
+1628.900 504.283 5.459 541.483 5.579 250.493 3.145
+1629.058 504.722 5.400 541.734 5.651 250.724 2.930
+1629.216 504.547 5.444 540.517 5.686 250.487 3.118
+1629.375 504.105 5.345 541.375 5.652 250.334 3.009
+1629.533 504.391 5.344 541.303 5.755 250.423 3.277
+1629.691 503.953 5.357 541.193 5.665 250.214 3.058
+1629.849 504.189 5.400 541.042 5.718 250.812 3.318
+1630.007 504.251 5.344 540.700 5.732 250.918 3.054
+1630.165 504.672 5.372 540.657 5.680 250.769 3.386
+1630.324 504.116 5.354 541.096 5.660 250.157 3.297
+1630.481 504.081 5.365 541.211 5.608 250.491 3.179
+1630.639 504.440 5.316 541.152 5.722 250.394 3.167
+1630.797 504.694 5.328 541.571 5.704 249.923 3.106
+1630.956 504.336 5.504 541.715 5.761 249.939 3.077
+1631.114 504.233 5.404 541.077 5.755 250.269 2.960
+1631.273 504.422 5.431 540.430 5.660 250.042 3.028
+1631.431 504.104 5.372 540.764 5.742 250.400 3.076
+1631.589 504.131 5.352 540.787 5.669 250.644 3.154
+1631.748 504.671 5.380 541.227 5.680 250.376 3.142
+1631.906 504.176 5.361 541.642 5.776 251.033 3.168
+1632.065 504.191 5.320 541.576 5.799 249.880 3.199
+1632.223 504.691 5.309 541.045 5.725 249.788 3.167
+1632.381 504.026 5.279 541.690 5.730 250.427 3.076
+1632.539 503.920 5.465 541.247 5.760 250.164 3.035
+1632.697 504.539 5.381 541.782 5.877 250.711 3.268
+1632.856 504.965 5.363 540.967 5.674 250.087 2.923
+1633.014 504.209 5.326 541.269 5.657 250.670 3.058
+1633.172 504.822 5.264 540.912 5.736 250.216 3.163
+1633.331 504.618 5.288 541.149 5.659 249.992 3.148
+1633.489 504.156 5.374 541.301 5.702 250.459 2.857
+1633.647 504.001 5.473 541.403 5.783 249.894 2.924
+1633.805 504.370 5.346 541.254 5.706 250.758 2.935
+1633.964 504.133 5.291 540.812 5.683 250.307 3.163
+1634.122 503.881 5.352 541.308 5.902 250.123 3.137
+1634.280 504.428 5.341 540.373 5.704 251.091 3.161
+1634.438 504.144 5.247 541.143 5.680 250.700 3.104
+1634.596 504.051 5.391 540.801 5.720 250.697 3.337
+1634.754 504.020 5.339 541.448 5.704 250.486 3.200
+1634.912 503.880 5.464 541.054 5.648 250.154 3.397
+1635.070 504.538 5.295 542.170 5.647 251.181 3.189
+1635.228 504.725 5.451 541.291 5.750 250.911 3.433
+1635.386 504.107 5.360 540.702 5.648 250.159 3.056
+1635.544 503.871 5.313 541.287 5.679 251.131 2.907
+1635.702 504.208 5.419 540.802 5.719 249.921 3.176
+1635.860 503.532 5.294 541.128 5.687 250.759 3.111
+1636.018 503.815 5.310 541.221 5.613 250.237 3.115
+1636.176 504.088 5.402 541.022 5.638 250.522 3.124
+1636.335 504.010 5.477 541.560 5.670 250.405 2.997
+1636.493 504.180 5.383 541.085 5.806 251.074 3.312
+1636.651 504.031 5.463 541.230 5.627 251.250 3.136
+1636.809 503.880 5.416 540.852 5.713 251.042 2.976
+1636.967 504.508 5.407 540.838 5.779 250.150 3.321
+1637.125 504.225 5.398 541.328 5.625 250.441 3.097
+1637.283 504.332 5.248 541.613 5.753 250.674 3.381
+1637.441 503.443 5.283 541.036 5.687 250.556 2.944
+1637.599 504.504 5.364 540.890 5.600 250.495 3.296
+1637.756 504.365 5.415 540.998 5.686 250.614 3.223
+1637.914 503.773 5.364 540.650 5.620 250.066 3.147
+1638.073 504.137 5.382 541.146 5.810 250.900 3.028
+1638.232 504.221 5.323 541.761 5.703 251.099 3.624
+1638.390 504.482 5.347 541.497 5.725 249.641 3.246
+1638.548 503.804 5.322 541.295 5.733 250.286 3.146
+1638.706 503.818 5.443 541.653 5.711 249.432 3.004
+1638.864 504.268 5.270 541.306 5.651 250.184 3.081
+1639.022 504.102 5.442 541.193 5.668 249.931 3.027
+1639.180 504.951 5.384 541.542 5.788 250.349 3.211
+1639.338 504.469 5.333 540.995 5.657 251.033 3.215
+1639.496 503.904 5.417 541.190 5.723 250.720 3.179
+1639.655 504.219 5.420 541.561 5.733 250.237 3.098
+1639.813 504.572 5.412 541.365 5.700 250.442 2.993
+1639.971 504.355 5.378 541.723 5.784 250.464 3.119
+1640.129 504.093 5.331 540.927 5.702 250.644 3.087
+1640.288 504.550 5.355 541.649 5.767 250.316 3.208
+1640.446 504.435 5.394 541.726 5.647 249.843 3.160
+1640.604 503.964 5.435 541.637 5.761 250.288 3.272
+1640.762 503.699 5.435 540.876 5.690 251.032 3.282
+1640.920 504.437 5.395 540.278 5.648 250.430 3.100
+1641.078 503.934 5.409 541.192 5.684 250.604 3.343
+1641.236 504.539 5.376 540.491 5.744 250.706 3.472
+1641.394 504.155 5.328 541.224 5.610 250.417 3.198
+1641.552 503.981 5.296 540.532 5.709 250.584 3.137
+1641.710 504.449 5.323 541.215 5.893 250.935 3.121
+1641.869 504.414 5.331 540.922 5.767 250.549 3.183
+1642.027 504.294 5.317 541.489 5.724 250.335 2.979
+1642.186 503.933 5.378 541.034 5.707 250.713 3.242
+1642.343 504.609 5.312 542.170 5.709 250.137 3.065
+1642.501 504.406 5.334 541.401 5.703 250.631 3.122
+1642.659 504.704 5.282 541.184 5.743 250.626 3.226
+1642.817 503.997 5.370 541.461 5.693 250.486 3.325
+1642.975 504.720 5.449 541.184 5.700 250.574 3.059
+1643.133 504.587 5.398 540.791 5.704 249.865 3.070
+1643.291 504.205 5.326 541.448 5.671 250.528 3.090
+1643.449 504.282 5.383 541.484 5.653 250.525 3.205
+1643.607 504.442 5.389 541.064 5.752 250.135 3.122
+1643.765 504.304 5.312 541.270 5.726 250.211 3.056
+1643.923 504.103 5.333 541.202 5.725 250.202 2.941
+1644.081 504.381 5.328 541.192 5.746 250.662 3.055
+1644.239 504.573 5.326 541.311 5.688 250.406 3.138
+1644.398 504.385 5.351 540.523 5.647 250.074 2.914
+1644.556 503.993 5.387 541.685 5.811 249.520 3.509
+1644.714 503.899 5.351 540.736 5.808 250.405 3.134
+1644.872 504.099 5.387 541.237 5.658 250.844 3.065
+1645.030 503.921 5.313 541.452 5.634 250.768 3.089
+1645.188 504.269 5.369 541.544 5.647 251.037 3.285
+1645.346 504.652 5.376 541.155 5.716 250.040 3.034
+1645.504 504.306 5.435 541.341 5.692 250.230 3.090
+1645.662 503.773 5.326 541.173 5.699 250.512 3.157
+1645.821 504.607 5.481 541.771 5.705 250.485 2.904
+1645.978 504.336 5.434 541.787 5.713 250.494 2.899
+1646.136 504.023 5.395 541.508 5.670 250.714 3.206
+1646.294 504.240 5.255 542.065 5.715 250.087 3.106
+1646.452 504.672 5.411 540.800 5.737 250.800 3.063
+1646.611 504.276 5.357 541.048 5.653 250.758 3.313
+1646.769 504.082 5.307 541.690 5.612 250.817 2.973
+1646.927 504.560 5.230 541.696 5.741 250.378 3.216
+1647.085 503.985 5.452 541.377 5.779 249.963 3.088
+1647.243 504.159 5.420 540.913 5.841 249.869 3.039
+1647.402 503.821 5.386 541.179 5.635 249.948 3.339
+1647.560 503.698 5.385 541.051 5.732 250.379 3.211
+1647.718 503.957 5.439 541.110 5.764 250.283 3.133
+1647.876 504.099 5.351 541.841 5.776 250.232 3.280
+1648.034 504.511 5.368 541.448 5.780 251.112 3.355
+1648.192 504.105 5.365 541.004 5.711 250.871 3.273
+1648.350 503.661 5.573 541.110 5.702 249.818 3.386
+1648.508 503.356 5.339 541.231 5.722 250.908 3.050
+1648.665 503.783 5.342 540.942 5.776 250.329 3.209
+1648.824 504.117 5.330 540.779 5.825 250.083 3.074
+1648.982 504.291 5.338 541.857 5.638 250.740 3.164
+1649.140 504.442 5.443 541.298 5.722 250.397 3.010
+1649.298 503.864 5.417 541.003 5.795 250.294 3.196
+1649.456 504.008 5.401 541.380 5.654 250.332 3.060
+1649.614 504.140 5.350 541.223 5.739 250.583 3.101
+1649.772 504.371 5.381 541.292 5.718 250.015 3.099
+1649.931 504.153 5.358 540.233 5.607 250.470 2.918
+1650.088 503.911 5.305 541.212 5.753 250.874 3.253
+1650.246 504.299 5.276 541.732 5.855 250.308 3.129
+1650.405 504.083 5.376 541.027 5.817 250.823 3.066
+1650.563 503.590 5.351 541.080 5.650 250.348 3.096
+1650.721 503.995 5.261 540.600 5.675 250.943 3.116
+1650.879 504.340 5.318 540.746 5.685 250.349 3.389
+1651.036 503.663 5.335 541.247 5.677 250.263 3.151
+1651.195 503.976 5.394 541.162 5.776 250.192 2.982
+1651.353 504.579 5.318 540.911 5.601 250.471 3.051
+1651.511 504.025 5.344 540.629 5.719 251.054 3.203
+1651.669 504.140 5.373 541.346 5.711 250.020 3.100
+1651.828 504.511 5.435 542.003 5.798 250.070 3.075
+1651.986 504.545 5.299 541.680 5.597 250.330 3.192
+1652.144 504.165 5.297 541.366 5.647 250.323 3.061
+1652.302 504.621 5.291 541.063 5.679 249.923 3.093
+1652.460 504.126 5.343 541.160 5.662 250.779 3.179
+1652.618 504.351 5.395 541.091 5.824 250.667 3.033
+1652.776 504.243 5.340 540.960 5.738 249.896 3.262
+1652.934 504.762 5.432 541.929 5.698 250.619 3.119
+1653.093 503.817 5.323 541.299 5.777 249.846 3.047
+1653.251 504.548 5.410 540.913 5.643 250.308 3.048
+1653.409 504.155 5.430 540.979 5.723 249.593 3.160
+1653.567 504.531 5.417 541.279 5.692 249.395 3.283
+1653.725 503.945 5.367 541.782 5.679 250.203 3.188
+1653.883 504.459 5.321 540.377 5.771 250.012 3.028
+1654.042 504.994 5.382 541.323 5.707 250.130 3.259
+1654.200 504.149 5.362 540.963 5.781 250.881 3.011
+1654.359 504.591 5.417 541.189 5.726 250.158 3.190
+1654.517 503.665 5.410 540.771 5.642 250.241 3.144
+1654.675 504.066 5.353 540.577 5.821 250.462 3.203
+1654.833 504.110 5.428 541.145 5.610 250.694 2.991
+1654.991 504.271 5.439 541.231 5.680 250.586 2.952
+1655.149 504.972 5.434 541.572 5.710 250.985 3.041
+1655.307 504.809 5.308 541.645 5.710 250.629 3.070
+1655.466 504.378 5.305 540.866 5.793 250.196 3.183
+1655.624 503.933 5.342 541.798 5.668 250.531 3.064
+1655.783 504.169 5.223 541.178 5.702 250.045 3.004
+1655.941 504.401 5.411 541.541 5.725 251.290 3.107
+1656.099 504.034 5.345 540.895 5.813 249.842 3.273
+1656.256 504.480 5.388 541.429 5.610 249.988 3.242
+1656.414 503.864 5.375 540.804 5.686 250.059 3.334
+1656.573 504.308 5.322 541.138 5.648 250.320 3.190
+1656.731 504.923 5.317 541.431 5.637 250.683 3.211
+1656.888 504.539 5.452 541.044 5.797 249.826 3.062
+1657.047 503.795 5.398 541.590 5.720 250.348 3.266
+1657.205 504.567 5.415 541.436 5.707 250.023 3.361
+1657.363 504.275 5.394 541.294 5.683 251.280 3.059
+1657.521 504.392 5.358 541.183 5.698 250.172 3.046
+1657.679 504.424 5.356 540.821 5.722 250.351 3.210
+1657.837 504.784 5.386 541.128 5.722 250.053 3.261
+1657.995 504.737 5.319 539.981 5.738 250.960 3.343
+1658.153 504.397 5.370 540.979 5.708 250.949 2.940
+1658.312 504.774 5.409 540.499 5.773 249.959 3.169
+1658.470 504.007 5.336 540.815 5.730 250.839 3.201
+1658.628 504.230 5.469 540.878 5.782 250.598 3.170
+1658.787 504.432 5.405 541.048 5.722 250.416 3.066
+1658.945 504.354 5.390 541.590 5.744 250.264 3.399
+1659.103 504.133 5.368 540.916 5.722 249.972 3.157
+1659.261 503.841 5.436 540.679 5.668 250.109 3.109
+1659.420 503.678 5.429 541.346 5.724 249.801 3.124
+1659.578 503.786 5.384 540.673 5.721 250.508 3.232
+1659.736 503.997 5.281 541.396 5.648 250.745 3.130
+1659.894 503.600 5.371 541.324 5.705 250.597 3.077
+1660.052 504.256 5.330 541.603 5.656 249.995 3.028
+1660.211 504.232 5.325 541.146 5.866 250.289 3.042
+1660.369 505.122 5.351 541.091 5.744 250.052 3.071
+1660.527 504.221 5.399 541.351 5.689 250.220 3.058
+1660.685 504.142 5.349 541.143 5.812 249.982 3.044
+1660.844 503.571 5.453 541.501 5.788 249.739 3.151
+1661.003 504.625 5.270 541.225 5.737 250.397 3.141
+1661.161 504.156 5.368 541.202 5.660 250.583 3.166
+1661.319 503.951 5.392 541.482 5.628 250.655 3.160
+1661.477 504.709 5.296 541.524 5.768 249.966 3.021
+1661.636 504.867 5.400 541.545 5.676 250.069 3.399
+1661.794 505.098 5.355 541.815 5.759 250.180 3.057
+1661.952 504.371 5.412 541.508 5.761 250.941 3.131
+1662.111 503.963 5.449 541.695 5.800 250.799 2.933
+1662.269 504.089 5.404 541.757 5.622 250.418 3.297
+1662.426 504.490 5.297 541.657 5.728 249.954 3.352
+1662.584 504.684 5.353 541.616 5.727 250.179 2.960
+1662.743 504.626 5.451 540.896 5.767 250.811 2.903
+1662.901 504.506 5.391 542.159 5.731 250.508 3.080
+1663.059 504.395 5.370 541.361 5.620 250.265 2.952
+1663.217 504.394 5.468 541.533 5.686 250.382 3.163
+1663.376 503.774 5.304 541.545 5.635 251.033 3.393
+1663.534 504.407 5.390 541.595 5.778 250.460 3.141
+1663.692 504.684 5.326 541.936 5.776 250.854 3.200
+1663.850 504.776 5.374 542.429 5.700 250.428 3.060
+1664.008 505.087 5.405 541.464 5.683 250.694 2.953
+1664.166 503.770 5.294 541.294 5.769 251.376 3.022
+1664.325 504.727 5.371 541.213 5.644 250.203 3.084
+1664.483 504.937 5.365 541.552 5.871 250.832 3.159
+1664.641 503.829 5.400 541.715 5.697 250.908 3.051
+1664.800 505.098 5.306 541.567 5.724 250.429 3.090
+1664.958 504.631 5.345 541.705 5.804 250.694 3.105
+1665.116 504.276 5.363 541.037 5.676 250.596 3.293
+1665.274 504.512 5.362 541.670 5.639 250.885 3.500
+1665.431 504.695 5.388 541.826 5.711 250.178 3.058
+1665.590 504.517 5.437 541.578 5.680 250.371 3.428
+1665.748 504.075 5.320 541.665 5.718 250.793 2.975
+1665.906 504.340 5.370 541.986 5.676 250.617 3.128
+1666.064 504.313 5.285 540.969 5.723 250.646 3.130
+1666.222 504.543 5.301 541.209 5.669 250.176 3.059
+1666.380 503.885 5.386 542.062 5.725 250.351 3.047
+1666.538 504.628 5.252 541.600 5.671 250.783 3.226
+1666.696 504.316 5.390 541.156 5.708 250.737 3.099
+1666.855 504.273 5.423 540.681 5.725 250.897 3.030
+1667.013 504.602 5.336 541.326 5.719 250.308 3.065
+1667.171 504.656 5.323 541.233 5.745 250.063 3.054
+1667.328 504.776 5.452 541.602 5.722 251.260 3.369
+1667.486 504.777 5.334 542.116 5.777 250.242 3.128
+1667.645 504.937 5.407 541.441 5.752 250.042 3.061
+1667.803 504.969 5.441 542.254 5.640 250.380 3.240
+1667.961 504.409 5.550 541.902 5.675 250.773 3.050
+1668.119 504.684 5.322 541.099 5.657 250.117 3.172
+1668.277 504.106 5.383 541.331 5.761 250.721 3.253
+1668.435 503.781 5.428 541.203 5.691 250.347 3.171
+1668.593 505.107 5.350 541.572 5.687 250.643 3.144
+1668.751 504.261 5.351 540.985 5.679 250.476 3.138
+1668.910 503.932 5.422 541.199 5.668 250.424 2.892
+1669.068 504.399 5.331 541.602 5.744 250.914 3.161
+1669.226 504.434 5.316 541.726 5.713 250.279 3.081
+1669.384 504.334 5.389 542.227 5.714 250.122 2.986
+1669.542 504.673 5.260 541.122 5.640 250.861 3.335
+1669.700 503.956 5.410 541.231 5.778 250.408 2.987
+1669.858 503.899 5.429 541.772 5.671 249.604 3.156
+1670.016 504.549 5.374 540.897 5.646 250.766 3.099
+1670.174 504.555 5.357 540.749 5.720 251.157 3.177
+1670.333 504.125 5.404 541.807 5.692 250.901 3.141
+1670.491 504.101 5.318 540.728 5.677 250.159 2.953
+1670.649 503.731 5.424 541.197 5.710 250.061 3.225
+1670.807 504.537 5.303 541.952 5.747 251.240 3.182
+1670.966 504.375 5.342 540.869 5.670 250.722 3.032
+1671.124 504.823 5.285 541.288 5.649 250.337 3.131
+1671.282 504.648 5.389 541.502 5.662 250.023 3.381
+1671.440 504.906 5.499 541.415 5.708 250.510 2.986
+1671.598 504.209 5.411 541.094 5.790 250.525 3.022
+1671.756 504.112 5.376 541.221 5.642 250.615 3.239
+1671.913 503.911 5.329 540.762 5.713 250.086 3.014
+1672.072 504.859 5.325 540.817 5.744 250.590 3.120
+1672.230 504.218 5.410 540.988 5.599 250.125 3.177
+1672.388 503.382 5.424 541.219 5.637 250.541 3.110
+1672.546 503.953 5.360 541.412 5.631 250.215 3.172
+1672.704 504.219 5.381 541.084 5.659 250.142 3.297
+1672.862 504.612 5.384 540.990 5.841 250.141 3.099
+1673.021 504.116 5.378 541.539 5.744 251.141 3.160
+1673.179 505.051 5.464 540.935 5.761 250.521 3.117
+1673.338 504.590 5.425 541.269 5.758 249.845 3.319
+1673.496 504.895 5.371 541.472 5.658 250.568 3.024
+1673.654 504.129 5.372 541.414 5.746 250.235 3.136
+1673.812 503.191 5.348 541.104 5.712 250.592 3.496
+1673.969 504.301 5.287 541.111 5.738 250.735 3.101
+1674.127 504.283 5.319 541.471 5.672 250.097 3.150
+1674.286 504.042 5.448 541.994 5.667 250.590 3.123
+1674.444 504.510 5.289 541.190 5.672 250.475 3.060
+1674.602 504.375 5.328 541.301 5.776 250.044 3.200
+1674.760 504.373 5.247 541.783 5.666 250.260 3.025
+1674.918 504.603 5.378 541.207 5.720 250.842 3.247
+1675.076 503.976 5.361 541.242 5.696 250.548 3.278
+1675.235 504.319 5.522 541.242 5.738 250.485 3.174
+1675.393 503.663 5.559 541.172 5.651 250.334 3.091
+1675.551 504.586 5.315 541.451 5.703 250.723 3.218
+1675.709 504.605 5.348 541.484 5.646 251.247 2.887
+1675.867 504.766 5.331 541.454 5.706 249.902 2.927
+1676.026 504.747 5.400 541.514 5.655 250.349 3.031
+1676.184 503.977 5.405 541.435 5.664 249.583 3.146
+1676.342 505.209 5.425 541.294 5.700 251.535 3.421
+1676.500 504.302 5.348 541.523 5.644 251.075 3.068
+1676.658 504.163 5.458 542.205 5.768 250.020 3.227
+1676.816 504.251 5.513 541.442 5.656 251.090 3.022
+1676.975 504.452 5.313 541.164 5.699 250.870 3.005
+1677.133 504.864 5.319 541.531 5.752 250.638 3.386
+1677.291 504.778 5.350 541.205 5.731 251.006 3.451
+1677.449 504.067 5.366 541.692 5.721 250.830 3.301
+1677.607 504.030 5.377 541.236 5.877 250.598 3.170
+1677.765 504.390 5.367 541.172 5.599 250.226 3.193
+1677.923 504.573 5.286 541.151 5.667 250.372 3.297
+1678.081 504.045 5.383 541.431 5.723 249.483 3.299
+1678.239 504.430 5.352 541.614 5.775 250.064 3.144
+1678.397 504.814 5.392 541.566 5.628 250.490 3.256
+1678.555 504.758 5.343 541.515 5.772 249.974 3.046
+1678.714 504.157 5.351 541.215 5.729 250.659 3.010
+1678.872 503.941 5.378 541.372 5.733 250.996 3.122
+1679.031 504.089 5.310 541.673 5.803 250.809 3.001
+1679.189 503.880 5.488 541.396 5.789 249.598 3.031
+1679.347 503.898 5.512 541.144 5.766 250.526 3.264
+1679.505 504.669 5.363 542.131 5.692 250.095 3.055
+1679.663 504.416 5.457 541.531 5.689 250.900 2.962
+1679.821 504.434 5.349 540.935 5.628 250.339 3.523
+1679.980 504.424 5.308 541.089 5.917 250.323 3.267
+1680.138 504.464 5.303 541.570 5.724 251.573 2.998
+1680.296 504.244 5.305 541.645 5.673 249.965 3.058
+1680.455 503.862 5.432 541.536 5.676 250.769 3.112
+1680.613 504.528 5.386 541.115 5.686 250.267 3.167
+1680.771 504.115 5.362 541.441 5.671 250.242 3.088
+1680.929 504.031 5.325 541.714 5.678 251.352 3.080
+1681.087 504.220 5.350 540.837 5.666 250.323 3.164
+1681.245 504.792 5.410 540.968 5.624 250.453 3.045
+1681.403 504.417 5.298 541.429 5.666 250.774 3.028
+1681.562 504.754 5.292 542.194 5.671 250.317 3.130
+1681.720 504.167 5.374 541.872 5.641 250.903 3.043
+1681.878 504.901 5.394 541.708 5.647 249.969 3.046
+1682.036 504.689 5.429 541.617 5.680 250.119 3.069
+1682.195 503.986 5.296 541.726 5.752 251.061 3.277
+1682.353 504.039 5.344 541.347 5.649 250.620 2.973
+1682.511 503.840 5.365 541.503 5.760 250.856 2.947
+1682.669 504.468 5.247 541.455 5.693 250.938 3.249
+1682.827 504.244 5.459 540.754 5.623 250.419 2.877
+1682.985 504.542 5.373 541.207 5.813 250.604 3.184
+1683.143 504.055 5.275 541.012 5.698 250.626 3.204
+1683.301 504.920 5.445 541.150 5.674 249.936 2.967
+1683.459 504.409 5.448 541.381 5.691 250.389 3.175
+1683.618 504.044 5.495 541.303 5.731 250.683 3.322
+1683.776 504.070 5.403 541.003 5.729 250.266 3.204
+1683.934 504.880 5.391 541.000 5.687 249.912 3.153
+1684.092 504.438 5.459 540.830 5.677 251.239 3.078
+1684.250 503.704 5.301 541.368 5.615 250.052 3.271
+1684.409 504.787 5.398 541.013 5.757 250.790 2.979
+1684.567 504.327 5.390 541.170 5.742 250.197 3.086
+1684.725 504.263 5.299 541.071 5.647 250.782 3.218
+1684.883 504.302 5.346 540.860 5.734 250.327 3.255
+1685.041 504.323 5.428 541.368 5.828 250.333 3.044
+1685.199 504.103 5.352 542.023 5.652 250.003 3.196
+1685.357 504.581 5.347 540.870 5.646 250.280 3.200
+1685.515 503.955 5.464 540.988 5.677 250.362 3.007
+1685.674 504.649 5.334 541.279 5.676 250.493 3.492
+1685.832 503.796 5.339 541.722 5.719 250.584 3.141
+1685.990 504.217 5.337 540.637 5.646 250.575 3.066
+1686.148 504.562 5.432 541.436 5.711 250.085 3.056
+1686.306 504.215 5.379 541.784 5.641 250.360 3.248
+1686.464 504.292 5.360 541.567 5.707 250.313 3.349
+1686.622 504.112 5.377 540.945 5.741 250.933 3.176
+1686.780 504.381 5.390 541.539 5.765 250.279 3.327
+1686.939 504.033 5.378 541.375 5.674 250.192 3.072
+1687.097 504.320 5.342 541.333 5.736 250.111 3.101
+1687.256 504.463 5.353 541.193 5.686 249.781 3.136
+1687.413 504.024 5.389 540.912 5.772 250.607 2.989
+1687.572 504.400 5.529 541.029 5.777 250.026 3.087
+1687.730 504.034 5.337 541.250 5.772 250.370 3.250
+1687.888 504.620 5.397 541.182 5.733 250.703 3.179
+1688.046 503.826 5.442 540.801 5.713 251.067 3.208
+1688.204 504.108 5.328 541.098 5.721 250.410 3.113
+1688.362 504.131 5.304 541.371 5.711 250.784 3.236
+1688.520 504.051 5.444 541.473 5.632 250.107 3.080
+1688.678 504.950 5.374 541.364 5.698 250.331 2.931
+1688.836 504.389 5.383 542.123 5.861 249.743 3.031
+1688.994 504.323 5.355 541.831 5.673 250.407 3.127
+1689.152 504.653 5.309 541.658 5.870 250.384 2.880
+1689.310 504.816 5.335 541.516 5.706 250.333 3.119
+1689.468 505.028 5.361 541.355 5.714 250.033 3.337
+1689.627 504.810 5.411 542.163 5.702 251.200 3.379
+1689.785 504.738 5.403 541.531 5.701 251.082 3.068
+1689.943 504.817 5.443 541.385 5.658 250.350 3.165
+1690.101 504.498 5.307 541.353 5.636 250.243 3.136
+1690.259 504.415 5.501 541.673 5.714 250.182 3.078
+1690.417 504.704 5.280 541.356 5.681 250.491 3.195
+1690.575 503.847 5.337 542.063 5.636 249.714 3.029
+1690.733 504.018 5.372 540.830 5.680 250.917 3.187
+1690.891 504.220 5.332 541.778 5.635 250.219 3.082
+1691.049 504.462 5.385 541.177 5.707 250.172 2.860
+1691.207 504.234 5.427 540.851 5.601 249.901 3.065
+1691.365 504.052 5.362 541.188 5.724 250.239 3.420
+1691.523 504.690 5.315 541.461 5.682 250.532 3.164
+1691.681 503.706 5.451 540.994 5.644 250.105 3.032
+1691.840 504.897 5.326 541.730 5.664 250.561 3.021
+1691.998 504.999 5.387 541.727 5.758 250.215 3.030
+1692.156 504.660 5.403 541.397 5.675 250.732 3.133
+1692.314 503.986 5.353 541.454 5.666 251.237 2.895
+1692.472 504.989 5.382 541.434 5.763 249.992 3.234
+1692.631 504.879 5.437 541.574 5.606 250.739 3.330
+1692.788 504.118 5.418 540.955 5.704 251.337 2.957
+1692.947 504.261 5.492 541.599 5.728 250.993 3.163
+1693.105 503.602 5.369 541.066 5.683 250.639 3.025
+1693.263 503.966 5.400 541.120 5.713 250.616 3.143
+1693.421 503.839 5.317 540.431 5.648 250.806 3.157
+1693.579 504.768 5.303 541.694 5.597 250.968 3.139
+1693.738 505.157 5.262 541.537 5.701 250.089 3.003
+1693.896 504.091 5.425 541.695 5.838 250.250 3.000
+1694.054 504.660 5.409 541.967 5.656 250.882 3.246
+1694.213 504.466 5.509 540.819 5.922 249.588 3.004
+1694.371 504.294 5.328 541.178 5.680 250.225 3.235
+1694.529 504.413 5.420 541.171 5.645 250.972 3.132
+1694.688 504.664 5.329 541.281 5.683 250.559 3.219
+1694.846 504.836 5.339 541.732 5.667 250.255 3.433
+1695.003 504.408 5.423 541.387 5.709 250.182 3.171
+1695.161 504.464 5.446 540.993 5.698 251.181 3.019
+1695.320 505.084 5.365 541.669 5.763 249.981 3.168
+1695.478 504.170 5.420 541.496 5.640 250.519 3.103
+1695.636 504.931 5.384 541.455 5.777 250.095 2.952
+1695.795 504.519 5.428 541.504 5.751 250.240 3.256
+1695.953 504.465 5.397 541.245 5.736 250.632 2.999
+1696.111 504.004 5.367 541.392 5.733 250.356 2.947
+1696.269 504.360 5.321 541.493 5.706 250.573 3.068
+1696.427 504.513 5.217 541.875 5.643 249.765 2.968
+1696.585 504.465 5.379 541.618 5.694 250.867 3.071
+1696.743 504.114 5.326 541.716 5.689 250.398 2.995
+1696.901 504.581 5.427 541.637 5.702 250.504 3.132
+1697.060 504.305 5.447 541.446 5.711 250.115 2.995
+1697.218 504.733 5.263 541.914 5.739 250.231 3.202
+1697.376 504.727 5.268 541.239 5.710 250.462 3.009
+1697.535 504.477 5.323 541.562 5.679 250.304 3.300
+1697.692 504.264 5.426 541.805 5.745 249.653 3.061
+1697.851 504.812 5.431 541.358 5.726 251.256 3.416
+1698.008 504.338 5.534 541.043 5.815 250.142 3.228
+1698.166 504.603 5.318 541.850 5.806 250.811 3.195
+1698.325 504.916 5.311 541.618 5.742 250.098 3.167
+1698.483 504.059 5.359 542.096 5.712 250.691 3.173
+1698.641 505.040 5.246 541.571 5.761 250.746 3.347
+1698.798 504.330 5.456 541.455 5.715 250.377 3.069
+1698.956 504.523 5.393 541.784 5.876 251.393 2.984
+1699.115 504.435 5.434 541.087 5.719 250.063 3.179
+1699.273 504.744 5.325 541.640 5.626 250.470 2.963
+1699.431 504.137 5.414 541.406 5.629 250.254 3.066
+1699.589 503.831 5.381 541.024 5.766 250.492 3.189
+1699.747 504.708 5.370 541.900 5.732 251.404 3.037
+1699.906 504.147 5.348 541.239 5.723 248.984 3.195
+1700.064 504.311 5.285 541.292 5.748 250.349 3.209
+1700.223 504.493 5.407 541.612 5.754 251.253 3.177
+1700.381 504.584 5.325 541.436 5.740 249.752 3.255
+1700.539 504.535 5.406 541.274 5.728 249.607 2.935
+1700.697 504.235 5.229 541.572 5.754 250.606 3.064
+1700.855 504.622 5.309 541.835 5.721 250.866 3.109
+1701.013 504.226 5.401 541.218 5.663 249.928 3.370
+1701.171 504.942 5.386 541.572 5.668 249.989 3.002
+1701.330 505.359 5.315 541.995 5.672 251.089 3.122
+1701.488 504.973 5.404 541.060 5.692 249.990 3.199
+1701.646 504.589 5.402 541.550 5.642 250.529 3.240
+1701.804 504.465 5.368 541.975 5.705 250.255 3.418
+1701.962 504.684 5.379 541.469 5.829 251.022 3.005
+1702.121 503.996 5.323 541.574 5.652 251.100 3.400
+1702.279 503.990 5.348 542.035 5.748 250.341 3.350
+1702.436 504.629 5.350 541.900 5.595 250.653 3.055
+1702.595 504.296 5.412 542.269 5.780 250.726 3.183
+1702.753 504.332 5.410 541.532 5.701 250.587 2.939
+1702.911 504.213 5.388 540.985 5.689 250.245 3.103
+1703.069 504.452 5.368 541.199 5.723 250.092 3.063
+1703.227 504.334 5.408 541.592 5.667 250.570 3.391
+1703.385 504.253 5.361 541.015 5.794 250.805 3.027
+1703.543 504.282 5.301 541.630 5.678 250.448 3.105
+1703.702 505.192 5.293 542.056 5.727 250.574 3.202
+1703.859 504.651 5.413 541.760 5.717 250.305 3.270
+1704.018 504.486 5.337 541.447 5.670 250.953 3.282
+1704.176 504.924 5.475 541.934 5.675 251.039 3.093
+1704.335 504.649 5.353 542.159 5.625 250.380 3.081
+1704.493 504.786 5.289 541.741 5.782 250.653 3.236
+1704.651 504.867 5.397 541.877 5.777 250.566 3.158
+1704.809 504.988 5.280 541.558 5.826 250.145 2.991
+1704.967 504.389 5.318 541.065 5.856 250.661 3.054
+1705.125 504.393 5.406 541.640 5.682 250.186 3.292
+1705.283 504.464 5.359 541.426 5.841 250.401 3.147
+1705.441 504.044 5.250 541.784 5.738 249.624 3.123
+1705.599 504.580 5.281 540.867 5.699 250.626 3.197
+1705.757 503.875 5.331 541.478 5.808 250.886 3.428
+1705.915 504.288 5.373 541.384 5.684 250.938 3.082
+1706.073 504.722 5.463 541.763 5.714 250.829 3.148
+1706.232 504.347 5.442 541.347 5.744 250.278 3.266
+1706.390 504.743 5.420 541.123 5.729 250.252 3.044
+1706.548 504.227 5.363 541.301 5.737 249.612 2.894
+1706.706 503.792 5.328 541.213 5.676 249.806 3.099
+1706.864 504.217 5.288 541.492 5.729 249.888 3.224
+1707.022 504.752 5.419 541.754 5.803 250.308 3.042
+1707.180 504.877 5.383 542.297 5.737 250.253 3.129
+1707.338 504.298 5.287 541.683 5.709 250.082 3.121
+1707.496 504.433 5.443 542.056 5.768 250.810 2.991
+1707.654 504.504 5.271 541.050 5.693 250.388 3.058
+1707.812 504.045 5.313 541.670 5.680 250.773 3.194
+1707.971 504.590 5.266 541.546 5.737 250.167 3.145
+1708.129 505.065 5.302 541.675 5.748 251.121 3.233
+1708.287 504.550 5.491 541.846 5.741 250.471 3.037
+1708.445 504.475 5.392 541.858 5.607 250.104 3.074
+1708.603 505.164 5.277 541.888 5.659 250.651 3.175
+1708.761 505.021 5.408 541.498 5.702 249.846 3.299
+1708.919 504.500 5.309 541.605 5.752 250.408 2.980
+1709.078 504.615 5.304 541.536 5.749 250.184 3.257
+1709.235 504.456 5.406 541.345 5.775 250.681 3.024
+1709.394 504.354 5.455 541.743 5.696 250.406 3.217
+1709.552 505.023 5.266 541.457 5.703 250.714 3.006
+1709.710 504.540 5.384 541.724 5.666 250.797 3.275
+1709.868 505.075 5.327 541.907 5.702 250.917 2.938
+1710.027 504.020 5.340 541.559 5.729 250.849 3.178
+1710.184 504.420 5.315 541.695 5.845 250.298 3.224
+1710.343 504.324 5.314 541.327 5.704 250.262 3.128
+1710.500 504.543 5.342 541.213 5.819 250.682 3.163
+1710.659 504.455 5.340 541.272 5.743 250.286 3.005
+1710.817 504.474 5.386 541.302 5.770 249.902 3.178
+1710.975 504.644 5.350 542.103 5.679 250.329 3.147
+1711.133 504.246 5.292 541.331 5.692 250.833 3.207
+1711.291 504.712 5.406 541.563 5.696 251.088 3.129
+1711.450 504.277 5.311 541.705 5.724 250.110 3.102
+1711.608 504.952 5.269 541.847 5.761 250.781 3.187
+1711.766 504.239 5.350 540.588 5.695 250.157 3.104
+1711.925 504.732 5.411 541.505 5.745 250.901 3.075
+1712.083 504.677 5.398 541.685 5.761 250.419 3.120
+1712.242 504.386 5.382 541.306 5.702 250.254 2.904
+1712.400 504.073 5.441 541.893 5.701 250.502 3.105
+1712.558 504.420 5.297 541.848 5.684 249.745 2.925
+1712.716 504.134 5.329 541.398 5.690 250.427 3.206
+1712.874 504.911 5.369 541.594 5.624 249.894 3.044
+1713.032 504.179 5.322 541.686 5.604 251.298 3.082
+1713.190 504.571 5.421 541.166 5.705 250.133 3.284
+1713.348 504.355 5.367 541.711 5.663 250.691 3.300
+1713.506 504.513 5.280 541.577 5.723 249.976 3.097
+1713.664 504.655 5.402 541.595 5.623 250.009 3.039
+1713.823 504.806 5.311 541.486 5.714 249.960 3.111
+1713.981 504.928 5.461 541.334 5.702 250.759 3.085
+1714.140 504.699 5.413 541.903 5.661 250.147 3.085
+1714.298 504.777 5.356 541.759 5.708 250.771 3.091
+1714.456 504.897 5.433 541.897 5.697 249.937 3.242
+1714.614 504.499 5.291 541.359 5.723 250.409 3.034
+1714.773 504.085 5.333 541.453 5.596 250.454 3.062
+1714.930 504.810 5.488 541.634 5.666 250.184 3.176
+1715.088 505.058 5.403 541.526 5.731 250.561 3.110
+1715.246 504.520 5.349 541.575 5.756 250.635 3.090
+1715.404 504.265 5.385 541.675 5.651 250.166 3.147
+1715.562 504.842 5.443 541.556 5.635 250.911 2.966
+1715.721 504.498 5.319 541.885 5.598 250.169 2.908
+1715.878 504.565 5.370 541.848 5.625 250.911 3.228
+1716.036 504.405 5.367 541.548 5.764 250.929 3.149
+1716.195 504.564 5.283 541.285 5.721 250.169 3.043
+1716.353 504.685 5.348 542.002 5.704 249.871 3.324
+1716.511 504.246 5.419 541.020 5.927 250.018 3.077
+1716.670 504.572 5.330 541.210 5.597 250.680 3.258
+1716.827 505.215 5.451 541.612 5.703 249.946 3.257
+1716.986 504.742 5.405 542.016 5.797 250.469 3.242
+1717.143 505.127 5.543 541.720 5.809 250.454 3.200
+1717.302 505.111 5.443 541.527 5.708 250.614 3.057
+1717.460 505.261 5.327 541.625 5.611 250.706 3.159
+1717.618 504.222 5.320 541.936 5.704 249.967 3.087
+1717.777 504.312 5.318 542.309 5.719 250.299 3.401
+1717.934 504.883 5.378 541.723 5.768 249.903 3.191
+1718.093 504.598 5.405 542.047 5.822 250.949 2.985
+1718.252 504.706 5.432 541.860 5.719 250.849 3.194
+1718.410 504.957 5.317 541.968 5.678 249.828 3.232
+1718.568 505.019 5.333 541.689 5.719 250.768 3.068
+1718.726 505.240 5.366 541.566 5.847 250.277 3.262
+1718.883 504.842 5.294 541.605 5.658 250.322 3.087
+1719.041 505.258 5.438 541.686 5.795 249.323 3.239
+1719.199 504.392 5.518 541.976 5.738 250.553 3.061
+1719.358 504.873 5.333 540.999 5.646 250.875 2.988
+1719.516 504.798 5.285 541.890 5.725 250.138 3.031
+1719.674 504.118 5.380 541.648 5.895 250.121 3.428
+1719.832 504.181 5.412 541.586 5.758 250.921 3.255
+1719.990 504.391 5.301 541.706 5.726 250.959 3.066
+1720.149 504.274 5.506 541.197 5.726 250.329 3.338
+1720.307 504.742 5.447 541.542 5.641 250.083 3.192
+1720.465 504.837 5.331 542.035 5.814 249.960 3.153
+1720.624 504.208 5.383 542.230 5.773 249.969 3.152
+1720.782 504.292 5.335 541.852 5.765 250.189 3.111
+1720.941 504.342 5.346 541.828 5.688 250.051 3.197
+1721.099 504.603 5.422 540.978 5.732 250.160 3.078
+1721.257 504.726 5.362 541.269 5.692 250.421 3.044
+1721.415 504.037 5.483 541.412 5.726 249.914 3.035
+1721.573 504.530 5.368 541.894 5.744 250.979 3.074
+1721.732 504.855 5.311 542.149 5.658 249.939 3.050
+1721.890 504.698 5.438 541.491 5.686 250.639 3.368
+1722.048 504.717 5.298 541.294 5.683 250.166 3.060
+1722.206 504.397 5.379 541.383 5.643 250.091 2.925
+1722.364 504.544 5.320 541.623 5.725 250.380 3.184
+1722.522 504.215 5.330 541.436 5.766 250.543 3.302
+1722.681 504.972 5.356 541.444 5.692 250.975 3.179
+1722.839 504.699 5.359 542.134 5.640 250.109 3.009
+1722.997 504.767 5.328 541.501 5.743 250.881 3.051
+1723.156 504.597 5.369 541.205 5.682 250.378 3.185
+1723.314 504.506 5.397 541.522 5.661 250.643 3.119
+1723.472 504.775 5.393 541.975 5.693 250.696 3.104
+1723.631 504.517 5.406 541.489 5.644 250.396 3.153
+1723.789 504.635 5.313 541.744 5.674 250.223 3.015
+1723.947 504.606 5.243 541.597 5.663 250.182 3.046
+1724.105 504.886 5.298 541.176 5.674 251.221 3.023
+1724.263 504.758 5.362 541.401 5.712 250.402 3.359
+1724.421 504.877 5.392 541.844 5.716 250.684 3.224
+1724.579 505.248 5.303 541.088 5.728 250.206 3.211
+1724.738 504.812 5.434 541.570 5.693 250.402 3.189
+1724.896 504.508 5.254 541.165 5.670 250.784 3.035
+1725.054 504.045 5.390 540.721 5.775 250.297 3.065
+1725.212 505.040 5.380 541.897 5.699 250.082 3.008
+1725.370 504.710 5.447 541.819 5.786 250.740 3.267
+1725.528 505.097 5.357 542.118 5.705 250.927 3.038
+1725.686 504.810 5.445 541.771 5.670 250.789 3.168
+1725.845 504.648 5.394 542.207 5.630 249.977 3.264
+1726.003 504.266 5.357 541.352 5.884 250.039 3.058
+1726.161 504.702 5.270 541.303 5.706 250.690 2.994
+1726.320 504.847 5.491 541.853 5.769 250.346 3.094
+1726.478 504.368 5.564 541.138 5.715 250.343 3.101
+1726.636 504.393 5.346 541.761 5.722 251.023 2.986
+1726.795 504.403 5.487 541.487 5.752 250.510 3.175
+1726.953 504.264 5.243 541.784 5.686 251.455 3.043
+1727.111 505.202 5.394 541.697 5.761 250.924 3.108
+1727.269 504.952 5.415 541.827 5.620 250.459 2.973
+1727.427 504.429 5.271 541.428 5.675 250.204 2.926
+1727.585 504.094 5.367 540.984 5.805 250.712 3.125
+1727.743 504.471 5.403 541.279 5.808 250.067 3.051
+1727.902 504.164 5.434 541.382 5.691 250.010 3.046
+1728.060 504.661 5.380 541.613 5.655 250.270 3.241
+1728.218 504.816 5.333 541.296 5.672 250.792 2.951
+1728.376 504.318 5.351 541.303 5.742 250.497 3.286
+1728.534 504.663 5.292 542.123 5.666 249.845 3.177
+1728.692 504.406 5.360 541.261 5.762 250.498 3.215
+1728.850 504.344 5.391 541.612 5.597 250.575 3.114
+1729.008 504.323 5.327 541.716 5.784 250.085 2.997
+1729.167 504.563 5.387 541.617 5.699 250.090 3.180
+1729.325 504.695 5.382 541.276 5.771 250.410 2.972
+1729.483 503.867 5.464 541.472 5.656 250.134 3.140
+1729.641 504.848 5.299 541.174 5.708 250.491 3.222
+1729.799 504.738 5.377 541.111 5.737 249.784 2.959
+1729.957 504.437 5.471 541.641 5.712 250.097 3.006
+1730.115 504.354 5.351 541.176 5.704 250.371 3.185
+1730.273 504.373 5.433 541.791 5.701 250.683 3.104
+1730.432 504.373 5.289 541.427 5.760 250.556 3.404
+1730.590 504.503 5.454 541.934 5.713 249.925 3.006
+1730.748 503.905 5.354 541.779 5.695 250.109 3.265
+1730.906 505.139 5.402 541.757 5.744 250.111 2.948
+1731.065 504.331 5.247 541.497 5.711 250.471 3.024
+1731.223 503.963 5.225 541.735 5.669 251.084 3.126
+1731.381 504.599 5.409 541.137 5.773 250.370 3.063
+1731.539 504.666 5.347 541.301 5.676 250.443 3.095
+1731.697 504.316 5.402 542.093 5.706 250.724 3.162
+1731.855 504.233 5.378 541.510 5.733 250.687 3.135
+1732.013 504.412 5.353 541.625 5.731 250.896 3.415
+1732.171 504.634 5.284 541.636 5.701 250.399 3.573
+1732.329 504.526 5.427 541.656 5.704 250.464 3.250
+1732.487 505.075 5.385 541.556 5.646 250.754 3.346
+1732.645 504.920 5.392 541.575 5.706 250.577 3.393
+1732.803 504.069 5.319 541.525 5.767 249.765 3.031
+1732.961 504.470 5.277 541.445 5.642 250.317 3.109
+1733.119 504.554 5.357 541.514 5.727 250.193 3.062
+1733.278 504.205 5.349 542.005 5.703 250.181 3.097
+1733.436 504.302 5.534 541.570 5.892 250.381 3.175
+1733.594 504.723 5.521 541.735 5.685 250.453 3.155
+1733.752 504.197 5.437 542.077 5.657 250.644 3.058
+1733.910 505.061 5.442 541.470 5.768 250.156 3.096
+1734.068 504.190 5.397 541.404 5.703 250.791 3.040
+1734.226 504.651 5.272 542.054 5.660 250.377 3.121
+1734.384 504.416 5.314 541.630 5.650 250.853 3.205
+1734.542 504.154 5.355 541.656 5.642 250.718 2.993
+1734.700 504.861 5.411 541.516 5.734 250.577 3.419
+1734.858 504.638 5.369 541.245 5.696 250.945 2.919
+1735.017 504.516 5.449 541.472 5.884 250.009 3.093
+1735.175 504.785 5.297 541.334 5.714 250.350 3.190
+1735.333 505.117 5.346 541.503 5.650 250.913 3.080
+1735.491 504.551 5.370 541.475 5.723 250.509 2.962
+1735.650 505.075 5.292 541.934 5.776 250.595 3.190
+1735.807 505.190 5.260 542.469 5.700 250.205 3.318
+1735.965 505.011 5.276 540.934 5.603 251.112 2.863
+1736.123 504.850 5.355 541.489 5.724 250.781 3.458
+1736.281 505.108 5.352 541.644 5.679 250.767 3.072
+1736.439 505.071 5.377 542.316 5.627 250.027 3.209
+1736.597 504.600 5.347 541.663 5.659 250.180 2.984
+1736.756 503.916 5.353 541.496 5.738 251.081 3.105
+1736.914 504.479 5.349 541.555 5.722 250.260 3.067
+1737.072 504.634 5.378 541.185 5.722 250.942 2.984
+1737.230 503.736 5.357 542.191 5.685 250.539 3.225
+1737.388 504.827 5.289 541.342 5.710 250.815 3.005
+1737.546 504.418 5.355 541.373 5.673 250.738 3.093
+1737.704 504.664 5.405 540.743 5.618 250.317 3.111
+1737.863 504.146 5.270 541.567 5.717 250.853 3.100
+1738.021 504.131 5.416 541.285 5.637 250.258 3.328
+1738.179 504.101 5.290 541.702 5.639 250.912 3.222
+1738.336 505.211 5.358 541.887 5.820 250.519 3.235
+1738.494 504.822 5.368 541.299 5.710 250.415 3.460
+1738.652 504.638 5.284 541.913 5.766 251.024 3.376
+1738.811 504.556 5.364 542.329 5.733 250.690 2.957
+1738.969 504.475 5.335 542.553 5.778 250.806 3.351
+1739.128 505.154 5.290 542.235 5.745 250.948 3.158
+1739.286 504.521 5.459 541.762 5.646 250.329 3.271
+1739.443 504.465 5.366 541.587 5.733 250.533 3.164
+1739.602 505.304 5.353 541.875 5.648 250.525 2.965
+1739.760 504.223 5.440 542.238 5.657 250.185 3.276
+1739.918 504.612 5.275 541.832 5.731 250.641 3.042
+1740.076 504.406 5.412 541.538 5.711 250.416 3.073
+1740.234 504.394 5.307 541.865 5.752 250.564 3.073
+1740.392 504.943 5.275 542.118 5.759 250.035 3.185
+1740.550 504.199 5.439 541.551 5.658 250.740 3.065
+1740.708 504.392 5.399 541.605 5.732 250.557 3.437
+1740.866 504.503 5.487 542.236 5.793 250.705 3.230
+1741.024 504.465 5.308 541.542 5.752 250.757 3.122
+1741.183 504.014 5.416 541.415 5.650 250.537 2.883
+1741.341 504.160 5.250 540.984 5.693 249.975 3.057
+1741.499 503.961 5.322 541.639 5.683 250.159 3.018
+1741.657 504.269 5.296 541.296 5.694 251.181 2.935
+1741.816 504.472 5.449 542.103 5.742 250.201 3.240
+1741.973 505.624 5.373 541.791 5.753 250.472 2.961
+1742.131 504.616 5.315 541.538 5.748 249.934 3.152
+1742.289 504.796 5.311 542.105 5.656 250.299 3.044
+1742.447 505.148 5.401 541.681 5.683 250.333 3.222
+1742.605 504.271 5.305 541.686 5.662 250.053 3.202
+1742.763 504.712 5.384 541.526 5.637 250.060 3.006
+1742.922 504.057 5.472 541.975 5.625 251.140 3.098
+1743.080 504.660 5.379 542.179 5.796 250.301 2.968
+1743.238 504.816 5.506 542.141 5.754 250.883 3.085
+1743.396 505.058 5.354 541.601 5.742 250.198 3.176
+1743.554 504.810 5.412 542.106 5.719 250.162 3.228
+1743.713 504.308 5.334 541.811 5.762 250.461 3.337
+1743.871 504.043 5.378 541.388 5.598 250.284 2.953
+1744.029 504.180 5.352 541.623 5.766 250.532 3.084
+1744.187 504.691 5.380 541.876 5.644 250.865 2.933
+1744.346 504.306 5.370 541.358 5.725 250.408 3.175
+1744.504 504.843 5.349 541.323 5.634 250.274 3.054
+1744.662 504.498 5.393 541.573 5.768 249.822 3.316
+1744.820 504.585 5.265 541.055 5.695 250.918 3.253
+1744.978 504.325 5.269 541.200 5.806 250.979 3.159
+1745.137 504.373 5.445 541.932 5.665 250.239 3.214
+1745.295 504.493 5.488 542.339 5.674 250.892 3.227
+1745.453 504.334 5.451 542.213 5.663 250.398 3.110
+1745.611 504.443 5.419 541.702 5.758 250.844 2.975
+1745.770 504.344 5.343 542.477 5.704 250.988 3.271
+1745.928 503.993 5.361 541.114 5.672 250.049 3.141
+1746.086 504.600 5.382 541.561 5.682 250.450 3.133
+1746.245 504.546 5.343 541.165 5.728 249.944 3.319
+1746.403 504.825 5.314 541.511 5.763 250.699 3.017
+1746.561 504.668 5.458 541.685 5.683 250.947 3.113
+1746.720 504.826 5.409 541.926 5.745 249.829 3.061
+1746.878 504.928 5.373 542.359 5.779 250.198 3.251
+1747.036 504.449 5.371 542.133 5.646 250.602 2.974
+1747.194 504.314 5.327 541.141 5.828 250.466 3.023
+1747.353 504.253 5.386 541.221 5.725 250.454 3.046
+1747.511 505.122 5.368 541.292 5.638 251.124 2.981
+1747.669 504.871 5.383 541.462 5.727 249.631 2.938
+1747.827 504.508 5.462 541.384 5.736 250.896 3.100
+1747.986 504.585 5.449 540.973 5.737 250.718 3.334
+1748.144 504.795 5.303 541.589 5.661 250.387 3.160
+1748.302 504.347 5.345 541.385 5.748 250.243 3.262
+1748.460 503.943 5.367 541.233 5.665 250.512 3.031
+1748.618 503.769 5.456 541.032 5.767 250.505 3.193
+1748.776 504.337 5.333 541.210 5.742 250.095 3.101
+1748.934 504.323 5.328 541.582 5.736 250.660 3.031
+1749.093 504.453 5.338 541.595 5.772 251.266 3.076
+1749.251 505.044 5.356 541.866 5.660 250.352 2.954
+1749.409 504.640 5.290 542.328 5.676 250.473 3.029
+1749.567 504.086 5.342 541.643 5.831 249.824 3.061
+1749.725 504.390 5.345 541.746 5.658 250.458 2.959
+1749.883 504.573 5.332 542.007 5.759 250.754 2.969
+1750.041 504.265 5.256 541.940 5.687 250.497 3.152
+1750.199 504.692 5.351 541.619 5.666 250.624 2.983
+1750.357 504.396 5.396 541.726 5.717 250.556 3.135
+1750.515 504.214 5.413 541.487 5.691 251.195 3.129
+1750.673 504.222 5.330 541.864 5.641 250.301 3.081
+1750.832 504.622 5.406 541.698 5.699 250.743 3.147
+1750.990 504.476 5.360 542.267 5.788 250.637 3.237
+1751.148 504.774 5.428 542.112 5.713 250.626 3.160
+1751.306 504.357 5.262 541.181 5.666 250.576 3.163
+1751.464 504.253 5.314 541.371 5.662 250.735 3.148
+1751.622 504.272 5.353 541.593 5.775 250.337 3.256
+1751.781 504.282 5.406 542.545 5.713 251.283 2.976
+1751.939 504.322 5.375 542.205 5.708 250.802 3.243
+1752.097 504.623 5.357 541.682 5.769 250.898 3.260
+1752.256 504.396 5.362 542.086 5.680 251.078 2.966
+1752.414 505.044 5.444 542.110 5.642 251.000 3.061
+1752.572 504.700 5.388 541.721 5.792 250.480 3.067
+1752.730 504.277 5.395 541.457 5.710 250.464 3.173
+1752.888 503.742 5.375 541.384 5.739 249.914 3.270
+1753.046 504.767 5.471 541.773 5.653 250.579 3.283
+1753.204 504.537 5.252 541.757 5.644 250.795 3.063
+1753.362 504.945 5.475 541.967 5.592 249.967 3.104
+1753.521 504.779 5.360 541.529 5.659 250.539 3.272
+1753.678 504.547 5.324 541.665 5.636 250.365 3.088
+1753.837 504.865 5.359 541.936 5.717 250.393 3.450
+1753.995 504.508 5.319 541.439 5.668 250.613 3.188
+1754.153 504.585 5.407 542.284 5.750 250.906 3.066
+1754.311 504.145 5.301 541.722 5.792 250.049 3.231
+1754.469 504.891 5.284 541.837 5.788 251.190 3.182
+1754.627 504.268 5.391 542.128 5.648 251.131 3.137
+1754.785 504.392 5.296 541.571 5.695 250.211 3.081
+1754.943 504.614 5.391 542.075 5.612 251.002 3.018
+1755.102 504.556 5.209 542.330 5.791 250.790 3.190
+1755.260 504.525 5.446 542.063 5.676 250.197 2.891
+1755.417 504.445 5.292 541.810 5.692 250.242 3.077
+1755.576 504.934 5.344 541.438 5.684 250.332 2.860
+1755.734 504.549 5.430 542.074 5.739 250.823 2.902
+1755.892 504.375 5.357 541.680 5.658 250.748 3.090
+1756.050 505.043 5.325 542.406 5.742 249.377 3.098
+1756.208 505.270 5.323 542.214 5.725 250.183 3.126
+1756.366 504.382 5.348 541.432 5.664 250.881 2.955
+1756.524 504.213 5.418 541.784 5.802 250.788 2.859
+1756.682 505.202 5.347 541.907 5.734 250.897 3.011
+1756.840 504.832 5.354 541.809 5.710 250.569 3.005
+1756.998 504.668 5.353 541.428 5.732 250.565 3.129
+1757.156 505.116 5.458 541.884 5.658 249.735 2.887
+1757.314 504.471 5.321 542.408 5.613 251.017 3.105
+1757.472 504.964 5.431 541.554 5.723 250.100 2.943
+1757.631 505.009 5.409 541.645 5.738 250.291 3.349
+1757.789 504.720 5.374 542.006 5.787 250.492 3.294
+1757.947 505.247 5.366 541.860 5.760 251.164 3.218
+1758.104 504.462 5.301 542.158 5.719 250.501 3.136
+1758.263 504.334 5.403 541.901 5.694 250.785 3.224
+1758.421 505.083 5.395 541.809 5.701 250.577 2.924
+1758.578 505.030 5.404 541.698 5.688 250.475 3.213
+1758.736 504.690 5.366 541.727 5.792 250.824 3.008
+1758.895 504.996 5.332 542.047 5.774 250.918 3.103
+1759.053 504.870 5.346 541.380 5.742 250.489 2.999
+1759.211 504.758 5.298 542.613 5.785 250.604 3.188
+1759.369 503.857 5.337 541.626 5.750 250.586 3.058
+1759.527 504.288 5.397 541.606 5.802 250.715 3.197
+1759.685 504.222 5.368 541.696 5.735 250.797 3.138
+1759.843 504.362 5.455 541.627 5.754 250.987 3.136
+1760.003 504.923 5.305 541.866 5.776 250.509 3.042
+1760.161 504.179 5.485 541.598 5.708 250.865 3.371
+1760.319 504.581 5.252 541.596 5.718 250.228 3.230
+1760.477 504.245 5.364 542.056 5.820 250.632 3.196
+1760.635 504.642 5.376 541.930 5.638 251.156 3.170
+1760.793 503.726 5.374 541.389 5.854 251.211 3.120
+1760.952 504.937 5.372 541.323 5.728 250.272 3.129
+1761.110 504.739 5.470 541.423 5.700 249.902 2.970
+1761.268 504.337 5.475 542.284 5.726 250.129 2.911
+1761.426 504.893 5.316 541.232 5.737 250.201 2.861
+1761.584 504.649 5.421 541.512 5.591 250.662 3.061
+1761.743 504.816 5.372 542.335 5.758 251.276 3.203
+1761.900 504.608 5.376 542.633 5.626 250.062 3.237
+1762.059 504.556 5.469 541.896 5.642 250.350 2.936
+1762.217 505.035 5.231 541.759 5.755 250.173 3.086
+1762.375 505.190 5.406 542.097 5.785 250.161 2.997
+1762.533 504.921 5.509 541.441 5.738 250.401 3.118
+1762.691 504.709 5.306 542.324 5.725 250.304 3.151
+1762.850 504.667 5.391 541.753 5.778 250.973 3.339
+1763.008 504.326 5.373 541.647 5.752 250.289 3.284
+1763.166 504.873 5.427 542.046 5.675 250.502 3.086
+1763.324 504.368 5.382 541.820 5.655 250.825 3.012
+1763.482 504.683 5.348 541.638 5.699 250.428 3.259
+1763.640 504.246 5.328 542.136 5.677 250.754 2.946
+1763.798 504.902 5.263 542.071 5.716 250.557 3.081
+1763.956 504.469 5.397 541.850 5.694 250.105 3.072
+1764.115 504.614 5.336 542.368 5.678 250.061 3.053
+1764.273 504.546 5.362 542.103 5.747 250.720 3.280
+1764.431 504.085 5.330 541.931 5.690 250.537 3.189
+1764.589 504.560 5.418 541.919 5.633 250.765 3.014
+1764.747 505.085 5.351 542.509 5.687 250.307 3.284
+1764.905 504.270 5.278 541.725 5.713 250.813 3.203
+1765.063 504.132 5.283 541.847 5.719 250.468 2.971
+1765.220 503.821 5.393 541.708 5.769 250.184 3.186
+1765.378 503.998 5.396 541.477 5.678 250.261 3.143
+1765.537 504.480 5.357 541.384 5.724 250.742 3.238
+1765.695 504.124 5.329 541.753 5.638 250.547 3.314
+1765.853 504.651 5.483 542.137 5.666 250.415 2.973
+1766.011 504.626 5.300 541.411 5.697 250.614 2.984
+1766.169 504.196 5.465 541.684 5.700 250.236 2.979
+1766.327 504.672 5.287 542.216 5.692 250.442 3.059
+1766.486 504.816 5.307 541.802 5.705 250.934 3.035
+1766.644 503.958 5.305 541.668 5.839 250.329 3.271
+1766.802 504.629 5.440 542.096 5.786 250.583 3.088
+1766.960 504.766 5.409 541.131 5.702 250.425 3.164
+1767.118 504.287 5.291 541.901 5.714 250.704 3.090
+1767.277 504.572 5.349 541.349 5.710 250.037 3.145
+1767.435 504.685 5.346 542.573 5.721 250.300 3.413
+1767.593 504.906 5.313 542.145 5.786 250.113 2.973
+1767.751 504.309 5.340 541.711 5.677 250.201 3.010
+1767.909 504.513 5.351 541.717 5.631 250.822 2.972
+1768.068 504.085 5.354 541.437 5.771 251.028 2.959
+1768.226 504.670 5.316 541.384 5.637 250.120 2.983
+1768.384 504.676 5.479 541.333 5.676 250.841 3.120
+1768.542 504.026 5.518 541.613 5.741 250.438 3.055
+1768.700 504.820 5.336 541.506 5.698 250.624 3.177
+1768.858 504.388 5.432 541.345 5.641 250.506 3.108
+1769.016 504.473 5.407 541.463 5.700 251.315 3.182
+1769.175 504.534 5.386 541.994 5.749 250.343 3.084
+1769.333 504.955 5.345 542.500 5.728 250.633 3.301
+1769.491 505.149 5.371 542.155 5.731 250.536 3.260
+1769.649 505.021 5.472 541.641 5.703 250.535 3.210
+1769.806 504.520 5.498 541.466 5.655 250.455 3.095
+1769.965 504.815 5.449 541.754 5.741 250.844 3.142
+1770.123 504.368 5.334 541.197 5.805 250.268 3.055
+1770.281 505.093 5.571 541.822 5.712 250.822 3.184
+1770.440 504.660 5.339 542.148 5.689 250.348 3.108
+1770.598 504.526 5.360 542.061 5.658 250.373 3.215
+1770.756 503.735 5.400 541.520 5.861 250.383 3.186
+1770.914 504.347 5.303 541.705 5.736 250.463 3.169
+1771.072 505.313 5.330 541.987 5.670 250.224 3.045
+1771.230 504.713 5.349 542.159 5.685 250.422 2.962
+1771.388 504.237 5.284 541.751 5.688 250.374 3.172
+1771.546 504.742 5.418 541.767 5.631 250.373 3.114
+1771.704 504.167 5.329 541.787 5.680 249.933 2.872
+1771.863 504.391 5.355 541.387 5.863 250.189 3.026
+1772.021 504.623 5.297 541.664 5.714 250.941 3.083
+1772.179 504.436 5.329 542.206 5.814 250.199 3.028
+1772.337 504.254 5.476 541.212 5.637 250.502 3.085
+1772.495 504.422 5.407 541.832 5.744 249.825 3.223
+1772.653 503.814 5.464 541.858 5.696 251.288 3.001
+1772.812 504.938 5.328 541.598 5.648 250.502 3.153
+1772.970 504.719 5.353 542.026 5.673 250.425 3.383
+1773.127 504.337 5.293 542.020 5.713 250.904 3.154
+1773.286 504.583 5.338 541.830 5.919 250.439 3.171
+1773.444 504.485 5.297 541.778 5.652 250.644 3.122
+1773.602 504.464 5.283 541.617 5.643 250.726 3.032
+1773.760 504.984 5.318 542.176 5.695 250.687 3.217
+1773.918 504.079 5.318 541.831 5.789 250.396 3.243
+1774.076 504.900 5.265 541.888 5.671 250.913 3.025
+1774.235 504.299 5.400 541.428 5.622 250.949 3.010
+1774.393 504.873 5.378 541.344 5.649 250.939 3.118
+1774.551 504.628 5.307 541.173 5.675 250.599 3.174
+1774.709 504.396 5.367 541.691 5.754 250.996 3.099
+1774.868 504.654 5.519 541.357 5.686 250.899 3.126
+1775.027 504.556 5.482 541.593 5.696 250.249 3.093
+1775.186 503.645 5.390 541.176 5.721 251.232 3.234
+1775.343 504.076 5.284 541.451 5.745 250.432 3.010
+1775.501 504.660 5.282 541.604 5.691 250.114 2.994
+1775.659 504.876 5.450 541.786 5.657 250.421 2.981
+1775.817 504.198 5.370 541.737 5.682 249.614 3.410
+1775.975 504.602 5.354 541.377 5.650 250.006 3.072
+1776.133 504.976 5.477 541.763 5.679 251.260 3.226
+1776.291 504.139 5.431 541.287 5.669 250.262 3.133
+1776.450 503.881 5.339 541.412 5.830 250.332 2.905
+1776.608 504.668 5.361 541.474 5.833 250.413 3.008
+1776.767 504.116 5.395 541.474 5.698 250.094 3.116
+1776.925 503.951 5.339 541.894 5.645 250.470 3.153
+1777.083 504.709 5.440 542.039 5.665 249.924 3.114
+1777.241 504.877 5.491 541.710 5.666 250.379 3.294
+1777.399 504.418 5.288 541.947 5.756 250.593 3.051
+1777.557 504.244 5.331 541.649 5.698 250.085 3.397
+1777.715 504.232 5.334 541.836 5.789 250.540 2.961
+1777.873 504.282 5.346 541.658 5.610 250.635 3.054
+1778.031 504.532 5.334 541.656 5.662 250.686 2.968
+1778.189 504.805 5.460 542.296 5.674 250.766 3.270
+1778.347 504.228 5.380 542.053 5.664 250.177 3.060
+1778.506 505.252 5.294 542.750 5.625 250.221 2.993
+1778.663 504.052 5.492 541.977 5.738 250.732 3.298
+1778.821 504.460 5.393 541.169 5.711 250.377 2.952
+1778.980 504.664 5.331 542.211 5.732 249.853 3.322
+1779.138 504.586 5.353 541.932 5.799 250.188 3.171
+1779.296 504.295 5.341 542.239 5.721 250.251 3.188
+1779.454 504.942 5.385 542.322 5.730 250.232 3.193
+1779.612 504.509 5.352 541.733 5.618 250.362 2.997
+1779.770 504.445 5.336 541.687 5.725 250.323 3.233
+1779.929 504.854 5.323 541.286 5.730 250.823 3.231
+1780.087 504.888 5.490 542.342 5.750 250.668 3.207
+1780.245 504.538 5.396 541.773 5.706 250.686 3.038
+1780.404 504.955 5.377 542.547 5.743 250.296 3.275
+1780.562 504.909 5.412 542.815 5.714 250.462 3.225
+1780.720 504.619 5.370 542.008 5.694 251.064 3.240
+1780.878 505.536 5.281 541.850 5.619 251.170 2.833
+1781.036 504.785 5.336 542.218 5.774 250.391 3.113
+1781.194 504.487 5.479 541.522 5.696 250.333 3.116
+1781.352 504.514 5.403 541.705 5.634 250.783 3.232
+1781.510 504.305 5.415 541.947 5.677 251.037 3.085
+1781.668 504.103 5.393 541.529 5.673 250.250 3.345
+1781.826 504.361 5.391 541.755 5.719 250.072 2.954
+1781.984 504.463 5.312 541.777 5.603 250.900 3.294
+1782.143 504.914 5.366 541.727 5.657 250.299 2.939
+1782.302 505.069 5.220 542.157 5.669 250.773 3.240
+1782.459 504.300 5.390 541.841 5.712 250.277 3.083
+1782.617 504.253 5.293 541.638 5.689 250.452 3.201
+1782.776 503.972 5.245 541.786 5.687 250.474 2.949
+1782.934 504.259 5.333 542.077 5.716 250.134 3.080
+1783.092 504.022 5.312 541.570 5.673 250.441 2.972
+1783.249 504.360 5.414 540.845 5.654 250.914 3.048
+1783.408 504.543 5.391 541.028 5.662 250.439 3.101
+1783.566 504.255 5.278 542.180 5.668 250.434 3.126
+1783.724 504.412 5.416 541.721 5.577 250.704 3.282
+1783.881 504.304 5.364 541.347 5.640 250.317 2.946
+1784.039 504.353 5.400 542.173 5.706 249.783 3.216
+1784.198 504.873 5.347 541.721 5.680 250.437 3.032
+1784.357 504.158 5.357 541.257 5.700 250.444 3.096
+1784.514 504.971 5.303 542.092 5.866 249.954 3.108
+1784.673 504.229 5.312 541.650 5.628 250.169 3.160
+1784.831 505.002 5.331 542.006 5.674 250.641 3.246
+1784.988 504.450 5.392 542.040 5.749 250.476 3.167
+1785.146 504.864 5.353 541.910 5.634 250.604 3.305
+1785.304 504.328 5.317 542.069 5.761 250.976 3.170
+1785.463 504.593 5.405 541.480 5.716 250.269 3.092
+1785.621 504.085 5.372 541.764 5.620 250.432 3.371
+1785.778 504.470 5.319 541.527 5.835 250.974 3.069
+1785.937 504.444 5.367 541.875 5.756 250.539 3.041
+1786.095 504.784 5.460 541.588 5.655 250.175 3.152
+1786.253 503.927 5.350 541.735 5.826 250.511 3.216
+1786.411 504.689 5.346 541.797 5.702 250.415 3.273
+1786.569 504.546 5.359 542.058 5.750 250.654 2.928
+1786.727 505.325 5.438 541.850 5.685 250.216 3.083
+1786.886 504.583 5.400 541.868 5.766 250.362 3.111
+1787.044 505.585 5.316 542.348 5.748 250.403 3.367
+1787.202 504.765 5.487 542.063 5.648 251.054 3.183
+1787.360 504.827 5.406 542.500 5.676 250.350 3.273
+1787.518 504.498 5.378 542.295 5.616 250.263 3.093
+1787.676 505.155 5.322 541.573 5.705 251.042 3.154
+1787.834 504.641 5.314 541.405 5.730 250.430 3.312
+1787.992 504.496 5.388 541.764 5.674 250.434 3.045
+1788.150 504.355 5.325 542.017 5.750 250.134 2.940
+1788.308 504.573 5.372 541.670 5.741 250.001 2.981
+1788.466 504.695 5.420 541.966 5.776 250.180 3.070
+1788.625 504.037 5.418 541.669 5.723 250.051 3.311
+1788.783 504.620 5.324 541.596 5.708 250.330 3.116
+1788.941 504.946 5.321 541.896 5.702 250.263 3.229
+1789.099 503.949 5.327 541.609 5.676 250.382 2.967
+1789.257 504.739 5.318 542.456 5.724 251.123 2.916
+1789.416 505.097 5.378 542.034 5.880 250.941 3.054
+1789.574 504.840 5.345 541.830 5.743 250.399 3.366
+1789.732 504.628 5.356 541.668 5.632 250.824 3.027
+1789.890 505.636 5.374 542.146 5.698 251.058 3.029
+1790.048 504.226 5.435 541.561 5.666 250.760 3.054
+1790.206 504.742 5.390 541.275 5.736 250.977 3.133
+1790.365 504.337 5.284 542.242 5.663 250.669 3.263
+1790.523 504.763 5.381 541.992 5.790 250.966 3.116
+1790.681 504.147 5.413 542.069 5.774 250.249 3.083
+1790.839 504.441 5.453 541.000 5.752 250.762 3.142
+1790.998 504.704 5.393 541.240 5.708 251.117 3.096
+1791.156 504.747 5.306 541.312 5.750 250.191 2.909
+1791.314 504.327 5.386 541.563 5.657 250.171 3.190
+1791.472 504.573 5.333 541.835 5.693 250.631 3.018
+1791.630 504.665 5.543 541.168 5.781 251.086 3.076
+1791.788 503.886 5.439 541.901 5.672 250.620 3.007
+1791.946 504.498 5.251 541.739 5.683 250.146 3.113
+1792.104 504.485 5.289 541.607 5.669 250.781 3.149
+1792.262 504.994 5.362 541.696 5.633 250.947 3.196
+1792.420 504.859 5.395 541.887 5.735 250.169 3.225
+1792.579 504.578 5.433 541.978 5.742 250.281 3.303
+1792.737 504.545 5.330 541.659 5.691 250.452 2.903
+1792.895 504.715 5.383 541.846 5.676 250.304 3.269
+1793.054 504.607 5.297 542.308 5.672 250.753 3.116
+1793.212 504.586 5.332 542.013 5.783 250.667 3.059
+1793.370 504.765 5.376 542.340 5.694 250.406 3.097
+1793.528 504.287 5.411 541.573 5.739 250.894 3.034
+1793.686 504.612 5.414 542.515 5.746 250.408 3.121
+1793.845 505.136 5.372 542.075 5.707 250.774 3.125
+1794.002 504.761 5.437 541.360 5.737 250.767 3.283
+1794.161 504.807 5.274 541.603 5.774 250.617 3.134
+1794.319 504.368 5.263 541.766 5.742 250.556 3.160
+1794.477 505.433 5.427 542.457 5.836 250.715 3.010
+1794.636 504.784 5.333 542.144 5.675 250.037 3.084
+1794.794 504.507 5.456 541.551 5.694 250.000 3.076
+1794.953 504.505 5.405 541.875 5.661 250.540 3.281
+1795.111 504.955 5.379 541.468 5.757 250.185 3.306
+1795.268 504.399 5.468 541.574 5.721 250.881 3.315
+1795.427 504.194 5.424 542.045 5.697 251.758 3.059
+1795.585 504.472 5.402 541.130 5.683 250.517 3.319
+1795.743 503.694 5.340 541.621 5.790 251.135 3.135
+1795.901 504.267 5.344 541.586 5.730 250.961 3.094
+1796.060 504.232 5.366 541.935 5.807 250.489 3.075
+1796.218 505.292 5.362 542.049 5.667 250.954 3.030
+1796.376 504.262 5.416 541.430 5.719 249.709 3.016
+1796.535 503.912 5.383 541.404 5.836 251.107 3.113
+1796.693 504.919 5.366 541.634 5.734 250.341 2.906
+1796.851 505.119 5.418 541.996 5.702 250.963 3.236
+1797.010 504.631 5.425 541.510 5.767 250.349 3.189
+1797.168 504.846 5.477 542.205 5.682 249.893 2.909
+1797.327 504.158 5.322 541.662 5.741 250.948 3.154
+1797.485 504.731 5.581 541.526 5.766 250.319 3.074
+1797.643 504.657 5.354 541.635 5.660 250.813 3.178
+1797.802 504.396 5.330 541.716 5.710 251.028 3.026
+1797.960 505.134 5.409 541.777 5.723 249.990 3.084
+1798.118 504.501 5.331 541.867 5.793 250.629 3.118
+1798.277 504.925 5.440 542.228 5.792 250.256 3.216
+1798.435 505.209 5.335 542.352 5.717 250.372 3.042
+1798.593 505.262 5.262 541.553 5.701 250.523 3.054
+1798.751 504.562 5.396 541.645 5.628 250.345 3.057
+1798.910 504.675 5.501 542.126 5.706 250.443 3.098
+1799.068 504.586 5.431 541.471 5.786 250.614 3.100
+1799.226 504.525 5.417 541.974 5.694 250.636 3.214
+1799.384 503.765 5.349 541.899 5.739 250.736 3.313
+1799.542 504.287 5.378 541.039 5.669 250.367 3.122
+1799.700 504.072 5.360 541.250 5.632 250.193 3.358
+1799.858 504.910 5.253 542.272 5.759 250.311 3.445
+1800.016 504.229 5.401 541.322 5.765 250.083 3.047
+1800.174 504.092 5.410 541.533 5.710 251.230 3.217
+1800.332 504.390 5.241 541.115 5.806 250.902 3.360
+1800.490 505.073 5.318 541.871 5.680 251.139 3.109
+1800.648 504.900 5.358 541.918 5.750 250.101 3.080
+1800.806 504.469 5.454 541.669 5.799 250.731 3.251
+1800.965 504.884 5.295 542.446 5.722 251.397 3.203
+1801.122 504.588 5.300 542.004 5.781 250.233 3.121
+1801.281 504.415 5.319 541.740 5.782 251.172 3.007
+1801.439 504.704 5.271 542.277 5.720 250.651 3.374
+1801.597 503.997 5.451 541.492 5.707 250.456 3.173
+1801.755 504.090 5.358 541.524 5.626 250.284 3.089
+1801.913 504.390 5.329 542.015 5.748 250.922 3.154
+1802.071 504.223 5.393 541.730 5.717 250.139 3.011
+1802.229 504.382 5.307 541.727 5.709 249.901 3.177
+1802.387 503.893 5.432 541.307 5.690 251.479 3.024
+1802.545 504.608 5.319 541.403 5.627 250.234 3.350
+1802.703 504.076 5.397 541.564 5.688 250.662 3.221
+1802.861 504.470 5.447 541.155 5.808 250.626 3.093
+1803.019 504.284 5.436 541.541 5.653 250.346 3.042
+1803.178 504.312 5.415 541.155 5.677 251.013 3.273
+1803.336 504.613 5.422 541.971 5.780 250.590 3.192
+1803.494 504.446 5.402 542.049 5.701 250.635 3.116
+1803.652 504.274 5.340 541.700 5.734 250.856 3.109
+1803.810 504.072 5.319 541.437 5.734 250.648 3.151
+1803.968 504.850 5.304 541.664 5.781 250.666 3.334
+1804.126 504.338 5.450 542.426 5.613 250.706 3.156
+1804.284 504.063 5.381 541.584 5.763 250.927 3.031
+1804.442 504.670 5.351 541.625 5.683 250.589 3.179
+1804.600 504.536 5.398 541.866 5.621 250.705 3.085
+1804.759 504.235 5.352 541.948 5.708 250.347 3.124
+1804.916 504.182 5.295 541.689 5.698 250.293 2.985
+1805.074 504.041 5.377 541.776 5.693 250.282 3.218
+1805.233 503.990 5.347 541.577 5.676 250.362 3.185
+1805.391 504.649 5.455 541.475 5.657 250.543 3.284
+1805.549 504.426 5.389 541.714 5.738 250.365 3.036
+1805.707 504.284 5.280 541.437 5.612 250.743 2.995
+1805.865 504.922 5.507 542.314 5.664 250.397 3.259
+1806.024 504.299 5.460 541.663 5.785 250.654 3.177
+1806.182 504.803 5.341 541.786 5.695 250.206 3.183
+1806.340 504.498 5.360 542.057 5.765 249.992 2.988
+1806.498 504.745 5.270 541.840 5.772 250.059 3.032
+1806.656 504.527 5.406 541.828 5.697 250.740 3.273
+1806.814 504.975 5.491 541.798 5.731 250.247 3.280
+1806.973 504.219 5.401 541.618 5.835 250.912 3.253
+1807.131 504.392 5.362 541.626 5.746 251.569 3.170
+1807.289 504.693 5.456 541.916 5.682 250.665 3.469
+1807.447 504.146 5.501 541.479 5.699 250.766 3.097
+1807.606 504.131 5.381 541.394 5.782 250.547 2.892
+1807.764 504.691 5.314 541.784 5.701 250.545 3.276
+1807.922 504.616 5.434 542.057 5.709 250.815 3.084
+1808.080 504.826 5.353 542.210 5.766 251.038 3.075
+1808.238 504.798 5.463 541.402 5.737 250.190 3.215
+1808.396 504.638 5.310 541.634 5.736 250.691 3.223
+1808.554 504.456 5.408 541.826 5.624 250.376 3.107
+1808.712 504.924 5.441 541.108 5.687 250.023 3.310
+1808.870 504.489 5.325 541.301 5.672 250.240 3.159
+1809.028 504.904 5.332 541.983 5.650 250.622 3.198
+1809.186 504.949 5.444 542.009 5.697 251.316 3.199
+1809.344 504.479 5.342 541.650 5.674 250.803 3.228
+1809.502 504.474 5.279 541.616 5.742 250.018 3.072
+1809.661 504.514 5.295 541.316 5.731 250.070 3.042
+1809.819 504.425 5.315 541.793 5.758 249.770 3.163
+1809.978 504.364 5.327 541.928 5.767 250.467 3.007
+1810.136 504.003 5.355 541.219 5.767 250.244 3.353
+1810.294 504.610 5.305 541.782 5.699 249.992 3.189
+1810.453 504.366 5.379 541.437 5.705 250.449 3.155
+1810.611 504.413 5.406 541.814 5.690 250.964 3.143
+1810.769 505.084 5.285 541.328 5.697 250.609 3.169
+1810.927 504.590 5.412 541.313 5.672 250.796 3.424
+1811.085 505.025 5.331 541.173 5.807 250.397 3.089
+1811.243 504.540 5.485 542.281 5.798 251.194 3.105
+1811.402 504.565 5.387 541.542 5.712 250.861 3.039
+1811.560 505.135 5.359 542.285 5.674 250.418 2.975
+1811.718 505.291 5.517 542.352 5.703 251.254 3.136
+1811.876 504.662 5.387 542.113 5.754 250.162 3.066
+1812.034 504.826 5.280 541.561 5.712 249.861 3.344
+1812.192 504.438 5.344 541.285 5.725 249.958 2.958
+1812.350 503.624 5.417 541.482 5.708 250.799 3.068
+1812.508 504.666 5.351 541.174 5.639 250.318 3.153
+1812.666 504.746 5.355 540.541 5.756 250.413 2.954
+1812.824 504.797 5.411 541.725 5.660 250.364 3.357
+1812.982 504.858 5.608 541.897 6.011 249.743 3.827
+1813.140 504.558 5.340 541.409 5.644 250.697 2.925
+1813.299 504.865 5.459 541.484 5.754 249.817 3.475
+1813.456 504.498 5.442 541.054 5.641 250.718 3.025
+1813.615 503.675 5.342 541.560 5.722 250.277 3.240
+1813.772 504.286 5.239 541.365 5.665 250.202 3.239
+1813.931 504.042 5.360 541.173 5.641 250.592 3.455
+1814.089 504.830 5.341 541.661 5.677 250.425 3.242
+1814.246 505.108 5.368 541.376 5.700 250.924 3.411
+1814.404 504.851 5.302 542.243 5.729 250.249 3.195
+1814.562 504.358 5.491 541.442 5.673 250.502 3.063
+1814.720 504.953 5.394 541.874 5.683 249.945 3.549
+1814.878 505.109 5.338 541.868 5.664 250.549 3.091
+1815.036 505.141 5.384 542.838 5.831 249.865 3.122
+1815.195 505.141 5.351 541.508 5.697 250.278 3.202
+1815.352 504.481 5.334 542.015 5.765 250.212 2.991
+1815.510 504.864 5.334 541.940 5.703 251.202 3.112
+1815.669 503.988 5.265 540.969 5.803 251.132 3.160
+1815.827 505.409 5.392 541.299 5.722 250.871 3.205
+1815.985 505.024 5.460 542.143 5.646 251.028 3.289
+1816.142 504.770 5.370 541.881 5.770 250.860 3.119
+1816.301 505.187 5.447 541.978 5.911 250.128 3.250
+1816.459 504.181 5.386 540.849 5.899 250.841 3.209
+1816.617 505.351 5.334 541.808 5.715 250.868 3.187
+1816.775 504.483 5.407 541.568 5.697 251.248 3.175
+1816.933 504.964 5.363 541.635 5.755 250.452 3.314
+1817.092 504.449 5.355 542.126 5.817 250.214 3.152
+1817.249 504.874 5.348 542.321 5.693 250.242 2.982
+1817.407 505.268 5.488 542.053 5.724 250.262 3.079
+1817.565 504.962 5.360 541.860 5.678 250.922 3.299
+1817.723 504.879 5.433 541.928 5.672 250.769 3.650
+1817.881 505.298 5.414 542.149 5.710 250.267 3.051
+1818.039 505.173 5.312 541.621 5.717 250.732 3.117
+1818.197 504.811 13.126 542.626 19.485 247.797 21.431
+1818.353 504.828 8.730 539.086 10.105 253.298 15.016
+1818.511 505.328 6.433 542.290 8.407 248.982 7.214
+1818.667 505.363 5.467 541.913 5.732 250.049 3.973
+1818.825 504.853 5.423 541.439 5.668 251.260 3.288
+1818.983 505.048 5.393 541.704 5.662 250.702 3.222
+1819.141 505.050 5.367 542.037 5.646 250.077 3.090
+1819.299 504.850 5.316 542.320 5.633 250.770 3.031
+1819.457 504.428 5.325 541.633 5.723 250.757 3.081
+1819.615 504.834 5.307 542.396 5.705 250.777 3.156
+1819.773 504.778 5.493 541.464 5.772 250.477 3.133
+1819.932 504.497 5.346 541.814 5.749 251.094 3.167
+1820.090 504.785 5.322 542.548 5.712 250.100 2.947
+1820.248 505.137 5.329 541.745 5.796 250.591 3.202
+1820.406 504.541 5.242 541.247 5.743 250.535 3.073
+1820.564 504.695 5.424 541.762 5.706 250.485 3.084
+1820.722 505.347 5.446 542.077 5.773 250.874 3.021
+1820.880 504.983 5.333 541.580 5.669 250.818 3.122
+1821.039 505.489 5.432 541.555 5.773 250.498 3.221
+1821.197 505.254 5.229 541.745 5.738 250.845 3.075
+1821.355 504.562 5.394 541.637 5.716 250.448 3.060
+1821.513 505.535 5.329 542.056 5.743 251.004 3.219
+1821.672 504.835 5.426 541.690 5.770 250.150 3.269
+1821.830 504.898 5.307 541.786 5.691 250.711 3.172
+1821.988 504.759 5.397 541.657 5.749 250.917 3.073
+1822.147 504.797 5.355 541.286 5.778 250.189 3.245
+1822.304 505.458 5.344 541.832 5.665 249.951 3.150
+1822.463 504.534 5.409 542.328 5.720 250.529 2.880
+1822.621 505.095 5.306 541.983 5.667 249.865 3.109
+1822.779 504.750 5.379 541.609 5.706 250.508 3.540
+1822.937 504.667 5.330 542.156 5.678 250.235 3.315
+1823.095 505.056 5.353 541.511 5.693 250.512 3.275
+1823.253 504.950 5.304 541.515 5.682 250.725 3.125
+1823.411 504.279 5.489 541.915 5.608 250.567 3.118
+1823.570 505.322 5.313 542.529 5.760 250.135 2.961
+1823.728 505.333 5.379 541.885 5.683 250.431 3.046
+1823.886 505.063 5.333 542.118 5.842 250.454 3.158
+1824.044 505.190 5.465 541.821 5.682 250.104 2.998
+1824.202 504.671 5.328 541.708 5.692 250.141 3.281
+1824.360 503.936 5.365 541.717 5.663 250.881 3.154
+1824.518 503.589 5.350 541.477 5.644 250.188 3.160
+1824.676 504.455 5.437 541.804 5.744 250.551 3.163
+1824.835 504.424 5.335 541.628 5.716 251.185 2.969
+1824.993 505.304 5.343 542.056 5.717 250.561 2.976
+1825.151 504.223 5.392 541.370 5.761 250.585 3.309
+1825.309 504.892 5.363 541.043 5.692 250.675 3.156
+1825.467 504.728 5.309 541.820 5.688 250.886 3.159
+1825.625 504.617 5.344 541.068 5.790 250.868 3.040
+1825.783 504.786 5.345 541.210 5.691 250.288 3.095
+1825.941 505.177 5.326 541.152 5.692 250.202 3.038
+1826.099 504.941 5.332 541.661 5.645 250.322 3.204
+1826.257 504.609 5.442 542.666 5.690 250.323 3.422
+1826.415 504.906 5.378 541.606 5.964 250.423 3.009
+1826.574 504.649 5.492 541.936 5.709 250.604 3.583
+1826.731 504.836 5.305 542.149 5.643 250.376 3.148
+1826.889 504.538 5.325 542.081 5.683 250.873 3.082
+1827.047 504.845 5.281 541.880 5.709 250.488 3.306
+1827.205 504.928 5.404 542.238 5.629 251.054 2.976
+1827.363 505.169 5.306 542.242 5.643 250.340 3.365
+1827.521 504.831 5.397 541.302 5.817 250.253 3.123
+1827.679 504.808 5.333 541.933 5.925 250.602 3.404
+1827.838 505.448 5.335 541.539 5.717 250.266 3.320
+1827.995 505.294 5.489 541.305 5.757 250.852 3.064
+1828.153 504.822 5.527 541.703 5.685 250.378 3.207
+1828.312 504.458 5.314 541.657 5.732 250.373 3.184
+1828.470 504.844 5.333 541.516 5.872 250.673 3.430
+1828.628 504.428 5.471 542.335 5.711 251.056 3.021
+1828.786 504.634 5.454 541.773 5.777 251.070 3.073
+1828.944 504.406 5.405 541.197 5.789 250.540 3.113
+1829.102 504.624 5.316 542.142 5.611 250.905 2.976
+1829.260 504.256 5.399 542.101 5.668 250.519 3.156
+1829.418 505.062 5.516 542.231 5.706 250.035 3.225
+1829.576 504.740 5.415 542.112 5.672 250.330 3.245
+1829.735 504.457 5.315 541.001 5.686 250.103 3.317
+1829.892 504.254 5.456 542.320 5.724 250.601 3.086
+1830.051 504.782 5.323 541.803 5.717 250.596 3.101
+1830.209 505.037 5.345 541.578 5.717 250.925 2.933
+1830.367 504.040 5.536 541.695 5.780 250.819 3.248
+1830.525 504.370 5.376 541.987 5.747 250.428 3.089
+1830.683 504.103 5.300 541.489 5.756 250.254 3.443
+1830.841 504.461 5.425 541.804 5.709 249.932 2.920
+1830.999 504.334 5.386 541.438 5.572 250.019 3.343
+1831.157 504.083 5.412 542.094 5.783 250.710 3.058
+1831.315 504.740 5.387 541.891 5.780 251.177 3.083
+1831.473 505.127 5.356 542.428 5.700 250.571 3.037
+1831.631 505.411 5.344 542.014 5.703 250.265 3.130
+1831.789 505.084 5.388 542.170 5.753 250.562 3.136
+1831.947 505.060 5.355 542.731 5.655 250.325 2.984
+1832.106 504.510 5.429 541.917 5.710 250.193 3.228
+1832.264 504.835 5.323 542.669 5.696 251.081 3.184
+1832.422 504.788 5.377 542.206 5.716 250.270 3.290
+1832.579 505.257 5.329 542.502 5.677 251.462 3.036
+1832.737 504.672 5.417 542.785 5.672 250.444 3.141
+1832.895 504.856 5.351 542.017 5.853 250.624 3.107
+1833.053 505.378 5.452 541.980 5.676 250.026 4.500
+1833.211 504.483 5.459 542.239 5.694 250.060 3.075
+1833.369 504.654 5.389 542.242 5.631 251.010 3.003
+1833.527 504.896 5.334 542.612 5.712 250.640 3.306
+1833.685 504.728 5.358 542.396 5.757 249.966 3.272
+1833.844 505.367 5.412 542.034 5.875 250.339 3.212
+1834.002 504.543 5.441 541.780 5.686 250.393 3.066
+1834.161 505.155 5.403 542.167 5.801 250.253 3.276
+1834.318 504.891 5.844 541.441 5.828 250.432 4.141
+1834.476 505.178 5.342 541.614 5.679 251.254 3.127
+1834.635 504.571 5.415 542.316 5.765 250.552 3.198
+1834.793 504.595 5.385 542.333 5.661 250.275 3.500
+1834.950 504.585 5.408 541.333 5.832 250.342 3.107
+1835.109 504.755 5.303 541.953 5.826 251.163 3.148
+1835.267 505.397 5.453 542.489 5.712 250.731 3.209
+1835.425 505.234 5.399 542.154 5.752 251.157 3.211
+1835.583 505.322 5.357 542.991 5.773 250.581 3.381
+1835.741 505.913 5.495 542.799 5.765 250.405 3.057
+1835.899 504.359 5.383 542.128 5.763 251.314 3.014
+1836.057 504.683 5.350 542.781 5.630 250.103 3.180
+1836.215 504.906 5.360 542.327 5.768 249.581 3.404
+1836.373 504.229 5.411 542.113 5.676 250.705 3.273
+1836.531 504.372 5.259 541.961 5.668 250.847 2.927
+1836.689 504.363 5.319 541.919 5.807 251.268 3.279
+1836.846 505.003 5.370 541.699 5.743 250.582 2.979
+1837.004 505.050 5.422 542.137 5.627 249.865 2.910
+1837.163 504.970 5.368 542.481 5.632 251.358 2.836
+1837.321 503.939 5.349 542.344 5.734 250.613 2.964
+1837.479 504.839 5.408 542.093 5.738 250.726 3.186
+1837.636 504.498 5.356 542.991 5.640 250.977 3.288
+1837.794 505.165 5.414 542.299 5.684 250.339 3.043
+1837.952 505.101 5.374 542.023 5.682 250.633 3.280
+1838.110 504.411 5.320 542.450 5.691 250.556 2.984
+1838.268 505.044 5.411 541.934 5.714 250.435 3.274
+1838.426 504.810 5.410 542.179 5.670 250.494 3.355
+1838.583 505.088 5.390 542.391 5.786 250.884 3.041
+1838.742 504.620 5.458 542.124 5.738 251.088 2.962
+1838.900 504.636 5.464 542.001 5.617 251.250 3.196
+1839.057 505.176 5.540 542.660 5.690 250.012 3.069
+1839.216 504.581 5.376 542.286 5.821 250.130 3.426
+1839.374 504.475 5.439 542.572 5.693 250.601 3.222
+1839.532 505.324 5.348 542.795 5.687 250.446 3.016
+1839.690 505.103 5.314 541.778 5.748 249.964 3.237
+1839.848 504.411 5.381 541.777 5.651 250.649 2.989
+1840.007 505.324 5.303 542.657 5.672 250.516 3.097
+1840.165 504.953 5.393 542.586 5.720 251.095 3.085
+1840.323 504.519 5.333 542.055 5.811 250.440 3.321
+1840.481 505.185 5.401 542.350 5.771 251.074 3.126
+1840.639 504.741 5.245 542.193 5.719 251.510 3.206
+1840.797 505.187 5.325 541.652 5.717 250.825 3.072
+1840.955 504.501 5.352 542.126 5.725 250.678 3.211
+1841.113 504.865 5.422 542.121 5.720 249.956 2.954
+1841.271 504.588 5.405 542.171 5.700 250.209 2.893
+1841.429 505.075 5.352 542.091 5.785 251.022 3.109
+1841.587 504.270 5.251 541.731 5.640 250.460 3.147
+1841.745 505.652 5.339 542.287 5.693 250.624 3.193
+1841.903 504.956 5.364 542.232 5.686 250.166 3.194
+1842.061 504.529 5.290 542.062 5.818 251.161 3.027
+1842.219 504.655 5.438 542.110 5.735 250.501 3.098
+1842.377 505.246 5.356 542.061 5.735 250.145 3.314
+1842.535 504.792 5.357 541.970 5.780 250.321 3.353
+1842.693 505.487 5.328 542.469 5.831 250.913 3.021
+1842.851 504.814 5.465 541.874 5.640 250.329 3.027
+1843.009 505.288 5.411 542.038 5.621 250.403 3.129
+1843.167 504.402 5.407 542.190 5.707 250.334 3.109
+1843.325 504.454 5.370 542.001 5.679 250.453 3.135
+1843.483 504.464 5.326 541.910 5.759 250.364 3.300
+1843.641 504.984 5.406 542.219 5.738 250.443 3.143
+1843.799 504.019 5.333 541.892 5.706 250.194 2.987
+1843.957 504.450 5.342 542.149 5.711 250.461 3.003
+1844.115 504.964 5.460 541.701 5.681 250.544 3.160
+1844.273 504.699 5.280 541.797 5.791 250.595 3.152
+1844.432 504.597 5.407 541.558 5.667 250.365 3.019
+1844.590 504.625 5.314 541.755 5.712 250.763 3.049
+1844.748 504.966 5.226 541.737 5.824 251.097 2.934
+1844.906 505.179 5.377 542.517 5.721 250.941 3.189
+1845.064 504.911 5.280 542.165 5.706 250.369 3.026
+1845.222 504.819 5.434 541.821 5.731 250.873 3.124
+1845.380 504.858 5.431 541.368 5.862 251.348 3.135
+1845.539 504.818 5.372 542.003 5.733 250.923 3.159
+1845.697 504.928 5.512 541.350 5.690 250.369 3.016
+1845.855 504.449 5.300 542.013 5.710 250.163 3.236
+1846.013 504.674 5.361 541.500 5.707 251.181 3.319
+1846.171 504.466 5.349 541.645 5.749 250.251 3.085
+1846.329 504.844 5.320 541.866 5.687 250.872 3.042
+1846.488 505.148 5.394 541.358 5.787 251.438 3.202
+1846.645 504.701 5.348 541.933 5.681 250.234 3.076
+1846.804 504.717 5.502 541.879 5.784 250.732 2.908
+1846.962 504.927 5.403 541.388 5.780 250.647 3.096
+1847.121 505.059 5.310 542.233 5.639 250.376 2.894
+1847.278 505.450 5.356 542.412 5.663 250.923 3.132
+1847.437 504.754 5.349 542.464 5.653 250.309 3.145
+1847.595 504.717 5.314 542.194 5.657 250.543 3.076
+1847.753 504.887 5.387 542.811 5.703 250.735 3.142
+1847.911 505.058 5.299 541.888 5.687 250.997 3.012
+1848.070 505.320 5.378 542.338 5.688 250.629 3.086
+1848.228 505.243 5.408 542.283 5.730 250.646 3.033
+1848.386 504.792 5.457 541.652 5.722 250.386 3.182
+1848.544 505.027 5.372 542.126 5.734 250.423 2.953
+1848.702 505.110 5.424 541.691 5.650 249.814 3.014
+1848.861 505.061 5.411 542.176 5.692 250.438 3.187
+1849.018 505.360 5.340 542.101 5.737 250.494 3.101
+1849.176 505.173 5.378 541.701 5.659 250.264 3.161
+1849.334 505.081 5.363 542.347 5.636 250.142 2.948
+1849.492 505.570 5.321 542.403 5.778 250.211 3.127
+1849.650 505.045 5.288 542.194 5.775 250.932 3.210
+1849.808 504.830 5.398 542.051 5.684 250.159 3.050
+1849.966 505.128 5.506 542.390 5.761 249.951 3.244
+1850.125 505.031 5.380 542.093 5.699 250.729 3.368
+1850.282 504.290 5.380 541.861 5.663 251.007 3.104
+1850.440 505.122 5.331 541.818 5.739 251.020 3.074
+1850.599 504.971 5.421 541.688 5.733 250.630 3.575
+1850.757 505.299 5.417 542.276 5.746 250.556 3.024
+1850.915 504.763 5.358 541.742 5.796 250.755 3.118
+1851.073 504.977 5.344 542.327 5.687 250.897 3.235
+1851.231 505.009 5.438 542.013 5.709 250.399 3.260
+1851.388 505.170 5.410 542.190 5.668 250.613 2.987
+1851.546 505.131 5.264 541.901 5.664 249.986 3.235
+1851.704 504.801 5.320 542.159 5.810 250.629 3.108
+1851.863 505.388 5.316 541.741 5.757 249.886 3.117
+1852.021 504.743 5.454 542.467 5.859 250.248 3.061
+1852.179 504.797 5.331 542.224 5.752 250.082 3.241
+1852.337 504.968 5.325 542.442 5.813 250.570 3.165
+1852.496 504.709 5.428 541.794 5.716 250.955 3.024
+1852.654 504.977 5.313 542.228 5.620 250.569 3.038
+1852.812 504.699 5.400 541.902 5.719 250.885 3.139
+1852.971 504.467 5.317 541.769 5.714 250.448 3.148
+1853.129 505.114 5.449 541.897 5.693 249.544 3.151
+1853.287 504.701 5.462 541.159 5.725 250.835 3.077
+1853.445 504.377 5.360 541.691 5.738 250.748 3.055
+1853.604 505.223 5.275 541.986 5.677 250.027 3.039
+1853.762 505.322 5.437 542.469 5.744 250.180 3.157
+1853.920 504.113 5.460 541.944 5.721 250.551 2.902
+1854.078 505.211 5.397 541.879 5.727 250.435 3.000
+1854.236 505.302 5.399 541.958 5.712 250.824 3.021
+1854.394 505.043 5.407 541.779 5.674 251.268 3.139
+1854.553 504.820 5.314 542.037 5.740 250.442 3.065
+1854.710 504.918 5.349 541.610 5.668 251.004 3.079
+1854.869 504.679 5.297 541.946 5.683 250.600 3.206
+1855.027 505.206 5.389 542.009 5.680 250.226 3.026
+1855.185 504.972 5.388 541.420 5.691 250.412 3.323
+1855.343 505.509 5.384 541.494 5.781 250.424 3.323
+1855.501 505.065 5.462 542.084 5.680 250.974 3.104
+1855.660 504.410 5.436 542.020 5.724 250.539 3.109
+1855.818 504.734 5.408 541.730 5.705 250.925 3.010
+1855.976 505.597 5.295 541.637 5.695 250.159 3.268
+1856.134 505.025 5.354 541.886 5.765 251.601 3.191
+1856.292 504.910 5.402 541.958 5.714 250.746 3.290
+1856.450 505.079 5.325 542.379 5.654 250.547 3.050
+1856.608 504.930 5.371 541.903 5.685 250.815 3.116
+1856.767 505.349 5.333 542.149 5.653 250.988 3.079
+1856.925 505.263 5.342 542.211 5.667 250.579 3.050
+1857.083 505.172 5.328 542.252 5.751 250.425 3.517
+1857.240 505.321 5.351 542.792 5.668 250.684 3.158
+1857.399 504.653 5.384 542.437 5.672 250.596 3.112
+1857.557 505.016 5.397 542.234 5.728 250.225 3.277
+1857.715 505.140 5.424 542.422 5.630 250.952 3.173
+1857.873 505.551 5.312 542.584 5.688 250.989 3.086
+1858.032 505.575 5.415 542.555 5.696 250.199 3.116
+1858.190 504.935 5.395 542.095 5.740 250.252 3.259
+1858.348 504.719 5.444 542.411 5.792 251.482 3.295
+1858.506 505.137 5.287 542.634 5.759 250.424 2.981
+1858.664 506.011 5.330 541.766 5.799 250.144 3.000
+1858.822 504.820 5.341 541.637 5.673 250.581 3.132
+1858.981 504.678 5.342 542.086 5.624 250.185 3.032
+1859.139 505.466 5.364 542.470 5.698 250.211 3.210
+1859.297 505.344 5.469 541.964 5.778 249.692 3.068
+1859.455 504.723 5.381 542.299 5.751 250.566 2.996
+1859.613 505.287 5.456 542.223 5.671 250.375 3.035
+1859.771 504.902 5.386 542.042 5.691 250.123 3.290
+1859.929 505.199 5.413 542.340 5.773 249.891 3.167
+1860.087 505.702 5.337 542.293 5.641 250.238 3.449
+1860.245 504.737 5.541 541.873 5.656 250.462 2.946
+1860.403 505.297 5.344 542.498 5.656 250.204 3.159
+1860.561 505.553 5.391 542.745 5.727 250.382 3.169
+1860.719 504.855 5.366 542.297 5.691 250.553 3.171
+1860.877 505.818 5.400 542.153 5.706 251.265 3.140
+1861.036 504.868 5.362 542.481 5.694 250.752 3.126
+1861.193 504.878 5.445 542.144 5.705 250.197 3.162
+1861.352 505.238 5.413 542.561 5.696 250.812 3.119
+1861.510 504.702 5.447 542.135 5.786 251.458 3.016
+1861.668 505.457 5.364 541.981 5.799 250.364 3.163
+1861.826 505.614 5.392 542.309 5.804 250.673 3.054
+1861.984 505.006 5.465 541.833 5.647 251.076 3.179
+1862.142 504.480 5.339 542.168 5.771 250.180 3.118
+1862.300 505.334 5.326 541.951 5.699 250.551 3.007
+1862.458 505.023 5.299 542.419 5.691 250.525 3.006
+1862.616 505.640 5.395 541.924 5.703 251.055 2.957
+1862.775 505.236 5.377 542.209 5.696 250.210 3.214
+1862.932 504.932 5.319 542.262 5.764 249.982 3.067
+1863.091 504.559 5.497 542.112 5.688 249.789 3.142
+1863.249 504.935 5.560 542.031 5.738 250.617 3.153
+1863.407 505.009 5.323 542.160 5.790 250.196 3.123
+1863.565 504.640 5.350 541.271 5.692 250.221 3.140
+1863.723 505.156 5.338 542.432 5.785 250.332 3.118
+1863.881 505.071 5.440 542.154 5.709 250.623 3.263
+1864.039 505.820 5.342 542.421 5.742 250.116 3.234
+1864.197 504.748 5.431 541.894 5.775 249.981 3.185
+1864.356 505.127 5.290 542.108 5.799 250.149 3.097
+1864.513 505.101 5.251 541.921 5.674 250.421 3.135
+1864.671 505.331 5.414 542.009 5.733 250.494 3.193
+1864.829 505.593 5.361 541.710 5.884 250.564 3.132
+1864.987 505.515 5.371 542.287 5.707 250.155 3.017
+1865.145 505.035 5.373 542.062 5.704 250.641 3.171
+1865.303 505.510 5.458 541.700 5.701 250.606 3.100
+1865.461 505.285 5.348 542.677 5.709 250.096 2.980
+1865.619 504.882 5.406 541.976 5.718 250.510 3.244
+1865.777 504.818 5.413 542.609 5.687 250.775 3.097
+1865.936 505.458 5.420 542.936 5.626 250.577 3.097
+1866.094 505.324 5.541 542.509 5.615 250.745 3.049
+1866.252 505.113 5.382 542.385 5.708 250.927 3.226
+1866.410 504.521 5.299 543.003 5.718 250.169 3.066
+1866.568 505.065 5.438 542.480 5.783 250.091 3.056
+1866.726 505.660 5.324 542.854 5.756 250.730 3.116
+1866.884 505.596 5.460 542.598 5.671 250.627 3.392
+1867.042 504.946 5.438 542.716 5.736 250.236 3.003
+1867.200 505.309 5.400 542.187 5.695 251.202 2.965
+1867.358 505.023 5.602 542.511 5.775 250.512 2.981
+1867.517 504.920 5.285 541.955 5.906 250.855 3.023
+1867.675 504.819 5.324 542.259 5.675 250.898 3.189
+1867.833 504.938 5.344 542.472 5.716 250.219 2.983
+1867.991 504.319 5.354 541.904 5.820 250.732 2.989
+1868.149 504.703 5.295 542.439 5.764 251.157 3.042
+1868.307 505.307 5.365 541.994 5.790 250.611 3.334
+1868.465 505.493 5.403 542.530 5.619 250.156 3.021
+1868.623 504.684 5.391 541.845 5.707 250.921 3.121
+1868.782 505.526 5.308 541.928 5.636 251.149 3.219
+1868.940 504.695 5.361 542.039 5.717 250.271 3.070
+1869.098 504.906 5.273 542.650 5.728 250.592 3.207
+1869.256 504.619 5.401 542.236 5.730 250.415 3.121
+1869.414 504.886 5.434 541.472 5.668 250.714 3.039
+1869.573 504.658 5.374 541.524 5.758 251.047 2.866
+1869.731 504.186 5.329 542.325 5.771 250.340 3.040
+1869.889 505.021 5.436 542.353 5.765 250.923 2.998
+1870.047 505.280 5.351 542.143 5.686 250.719 3.114
+1870.205 504.532 5.401 541.641 5.805 250.527 3.347
+1870.363 505.135 5.315 541.336 5.712 250.495 3.172
+1870.521 505.081 5.503 542.143 5.706 250.204 3.099
+1870.679 504.600 5.427 541.891 5.697 250.322 3.204
+1870.837 504.876 5.350 541.649 5.718 250.493 3.071
+1870.995 504.018 5.372 541.166 5.611 249.784 3.022
+1871.153 505.210 5.355 541.511 5.654 249.757 3.474
+1871.311 504.722 5.367 540.575 5.754 250.387 3.113
+1871.469 504.867 5.318 541.695 5.650 250.133 3.114
+1871.628 504.288 5.412 542.037 5.663 250.421 3.067
+1871.786 505.052 5.447 541.560 5.739 250.964 3.307
+1871.943 504.760 5.392 542.065 5.813 250.689 3.076
+1872.102 504.877 5.425 541.250 5.872 250.506 3.470
+1872.260 505.248 5.343 541.252 5.703 250.705 2.965
+1872.417 504.062 5.291 541.592 5.720 249.787 3.182
+1872.576 505.280 5.339 541.135 5.750 250.647 3.213
+1872.734 504.832 5.403 541.921 5.745 250.406 3.173
+1872.892 504.038 5.249 541.369 5.686 250.364 3.357
+1873.050 504.620 5.356 541.543 5.692 250.473 3.261
+1873.207 504.436 5.314 541.255 5.736 250.474 3.121
+1873.366 504.464 5.430 541.092 5.684 249.924 3.246
+1873.524 504.334 5.360 541.371 5.712 250.739 2.981
+1873.682 504.983 5.382 541.003 5.714 250.917 3.057
+1873.841 505.049 5.284 541.270 5.706 249.959 3.105
+1873.999 504.570 5.442 540.932 5.692 250.519 3.235
+1874.157 504.995 5.305 541.509 5.691 250.475 3.092
+1874.315 504.759 5.350 541.135 5.643 250.094 3.177
+1874.474 505.017 5.339 541.551 5.651 250.800 3.311
+1874.632 504.330 5.442 541.145 5.817 249.678 3.011
+1874.790 505.033 5.308 541.141 5.621 251.006 3.003
+1874.948 504.630 5.474 541.921 5.790 250.330 3.011
+1875.107 505.326 5.352 541.589 5.741 250.513 3.052
+1875.265 504.433 5.367 542.135 5.723 250.015 3.182
+1875.424 505.104 5.297 541.551 5.711 250.700 3.067
+1875.582 504.821 5.501 541.835 5.719 251.037 3.100
+1875.740 504.708 5.465 541.278 5.651 250.660 3.014
+1875.899 504.907 5.326 541.572 5.643 250.546 3.026
+1876.057 504.539 5.365 540.925 5.669 250.415 3.130
+1876.215 504.875 5.420 540.929 5.675 250.514 3.104
+1876.373 504.518 5.499 541.479 5.623 251.005 3.144
+1876.531 504.585 5.364 541.434 5.630 250.580 3.299
+1876.689 504.805 5.274 541.144 5.710 250.285 3.383
+1876.847 505.048 5.320 541.161 5.754 250.392 3.181
+1877.004 505.040 5.409 540.691 5.691 250.343 3.060
+1877.162 505.080 5.362 541.107 5.641 251.393 3.359
+1877.320 505.150 5.314 540.961 5.696 250.503 3.182
+1877.478 505.101 5.359 541.589 5.668 249.885 3.238
+1877.636 504.560 5.488 541.405 5.775 250.358 3.040
+1877.795 504.435 5.384 541.714 5.657 250.233 3.406
+1877.953 504.484 5.313 541.227 5.723 249.582 2.952
+1878.111 504.644 5.341 541.152 5.790 250.505 3.174
+1878.269 504.746 5.304 541.151 5.668 250.635 3.220
+1878.427 503.987 5.334 541.121 5.707 250.796 3.096
+1878.585 504.509 5.456 541.291 5.652 250.447 3.060
+1878.743 504.305 5.265 541.432 5.697 250.504 3.223
+1878.901 504.633 5.498 541.034 5.703 249.745 3.142
+1879.060 504.676 5.344 541.220 5.644 250.647 3.435
+1879.217 504.656 5.456 541.052 5.694 250.396 3.091
+1879.375 505.036 5.357 541.280 5.666 250.253 3.101
+1879.533 504.100 5.369 541.732 5.599 250.042 3.339
+1879.691 504.371 5.224 541.177 5.792 250.670 3.015
+1879.850 504.543 5.378 541.021 5.821 250.576 3.034
+1880.008 505.125 5.324 541.930 5.805 250.085 3.085
+1880.166 504.701 5.370 541.489 5.768 250.400 3.040
+1880.324 504.627 5.358 541.224 5.668 250.304 3.070
+1880.482 504.876 5.535 541.372 5.652 250.903 3.203
+1880.640 504.458 5.395 541.783 5.732 250.519 3.317
+1880.798 504.944 5.285 541.507 5.710 250.935 3.249
+1880.956 504.899 5.473 541.225 5.725 250.689 3.056
+1881.115 504.949 5.248 541.882 5.665 250.276 3.101
+1881.273 504.869 5.490 541.048 5.744 250.342 3.205
+1881.431 504.198 5.507 541.230 5.679 250.683 3.180
+1881.589 505.462 5.446 540.952 5.734 251.196 3.307
+1881.747 505.134 5.368 541.099 5.676 249.891 3.156
+1881.906 504.341 5.335 541.141 5.654 250.788 3.351
+1882.064 504.573 5.305 541.211 5.727 250.137 3.030
+1882.222 504.715 5.392 541.382 5.688 249.861 3.034
+1882.380 504.197 5.319 541.053 5.658 250.738 3.010
+1882.538 504.802 5.305 541.400 5.674 249.787 3.004
+1882.696 504.778 5.424 541.254 5.710 250.327 3.056
+1882.854 505.107 5.368 541.082 5.702 250.533 3.288
+1883.012 504.761 5.399 541.550 5.712 250.355 3.086
+1883.170 504.697 5.348 541.035 5.739 250.203 3.370
+1883.328 504.537 5.361 541.800 5.766 250.332 2.976
+1883.486 504.965 5.384 541.658 5.766 250.693 3.085
+1883.645 504.389 5.461 541.636 5.715 250.646 2.953
+1883.803 505.293 5.402 541.616 5.676 250.466 3.121
+1883.961 504.812 5.364 541.286 5.757 249.424 3.102
+1884.119 505.118 5.335 541.152 5.675 250.844 3.204
+1884.277 505.521 5.391 541.931 5.712 250.468 3.116
+1884.435 504.965 5.317 541.599 5.756 250.434 3.152
+1884.593 505.269 5.419 541.816 5.709 250.334 3.167
+1884.751 505.382 5.380 542.038 5.722 250.543 3.063
+1884.909 505.233 5.474 542.460 5.740 250.415 3.252
+1885.067 504.872 5.403 542.954 5.711 250.414 3.351
+1885.225 504.438 5.411 542.019 5.727 251.034 3.289
+1885.383 504.964 5.386 541.650 5.759 250.530 2.990
+1885.541 504.479 5.348 541.406 5.766 250.585 3.018
+1885.699 504.874 5.350 541.904 5.805 250.255 3.047
+1885.857 505.118 5.311 541.799 5.911 250.582 3.075
+1886.016 504.801 5.331 541.878 5.715 250.085 3.153
+1886.174 504.858 5.394 542.058 5.631 250.730 2.858
+1886.332 504.798 5.423 541.380 5.648 249.887 3.225
+1886.490 504.748 5.362 541.453 5.673 250.098 3.265
+1886.648 504.117 5.297 541.664 5.694 251.061 3.124
+1886.806 504.871 5.285 541.056 5.712 250.300 2.984
+1886.964 504.968 5.284 541.570 5.754 250.463 3.493
+1887.122 504.669 5.341 541.095 5.676 250.324 3.006
+1887.281 505.316 5.398 541.411 5.662 250.503 3.262
+1887.439 504.853 5.436 541.624 5.803 250.065 3.153
+1887.597 504.458 5.316 540.906 5.739 250.570 3.026
+1887.755 504.834 5.324 541.569 5.654 250.325 3.317
+1887.913 504.828 5.412 541.115 5.692 250.003 3.208
+1888.072 504.728 5.378 541.681 5.711 250.370 3.203
+1888.230 504.867 5.435 541.116 5.766 249.863 2.999
+1888.388 504.088 5.350 541.741 5.678 249.988 3.565
+1888.546 504.200 5.346 541.127 5.686 250.669 3.044
+1888.704 504.702 5.523 541.311 5.689 250.366 3.162
+1888.862 504.807 5.418 540.803 5.796 250.203 3.440
+1889.020 504.148 5.377 541.178 5.736 250.262 3.256
+1889.178 504.371 5.375 541.201 5.759 250.502 3.023
+1889.336 504.523 5.543 541.172 5.743 249.855 3.212
+1889.494 504.815 5.393 541.721 5.679 250.388 3.206
+1889.653 504.578 5.360 541.537 5.682 249.793 3.460
+1889.811 504.305 5.452 541.655 5.717 250.247 2.971
+1889.969 505.053 5.359 541.076 5.664 249.632 3.087
+1890.127 504.430 5.350 540.880 5.755 250.906 3.186
+1890.285 504.404 5.334 541.528 5.725 250.459 3.127
+1890.443 504.974 5.385 541.275 5.711 250.714 3.094
+1890.602 503.909 5.475 541.182 5.763 250.717 3.278
+1890.760 504.749 5.325 541.121 5.801 249.697 3.376
+1890.918 504.877 5.300 541.041 5.717 250.376 3.091
+1891.076 504.318 5.299 541.630 5.755 250.323 3.393
+1891.234 504.643 5.367 541.406 5.718 249.773 2.977
+1891.392 504.466 5.400 540.704 5.808 250.747 3.147
+1891.551 504.434 5.335 540.967 5.674 250.607 3.149
+1891.709 504.894 5.518 541.739 5.678 250.416 3.013
+1891.867 505.618 5.343 541.687 5.648 250.514 3.432
+1892.025 505.336 5.314 541.706 5.819 250.545 3.042
+1892.183 504.673 5.388 541.267 5.670 250.995 3.176
+1892.342 505.066 5.400 541.232 5.680 250.679 3.006
+1892.500 504.470 5.304 541.172 5.672 249.696 2.986
+1892.658 505.074 5.349 541.411 5.652 250.186 3.207
+1892.816 505.100 5.449 541.644 5.715 249.961 3.281
+1892.975 504.501 5.416 541.546 5.686 250.349 3.199
+1893.133 505.155 5.378 542.005 5.692 250.093 3.275
+1893.291 504.661 5.487 541.030 5.780 250.070 3.237
+1893.449 504.276 5.389 541.690 5.735 250.480 3.173
+1893.607 505.252 5.362 541.286 5.624 249.784 3.075
+1893.765 505.152 5.383 541.442 5.641 250.257 3.240
+1893.923 504.461 5.357 542.354 5.613 250.762 3.104
+1894.081 504.834 5.351 541.363 5.932 249.797 3.164
+1894.240 505.178 5.444 541.083 5.767 249.607 3.032
+1894.398 505.091 5.499 541.520 5.754 250.546 3.270
+1894.556 504.970 5.472 540.785 5.684 250.505 3.052
+1894.714 504.699 5.428 541.017 5.628 250.675 3.022
+1894.872 505.177 5.344 541.100 5.776 250.886 3.111
+1895.030 504.371 5.353 541.011 5.706 250.348 3.083
+1895.188 504.653 5.270 541.400 5.610 250.073 3.276
+1895.346 504.206 5.433 541.304 5.778 250.050 3.056
+1895.505 504.762 5.244 541.513 5.647 250.200 3.332
+1895.663 505.157 5.298 540.875 5.743 250.492 3.011
+1895.821 505.111 5.358 541.758 5.729 250.184 3.214
+1895.979 505.121 5.338 541.377 5.727 250.041 3.050
+1896.138 505.371 5.388 541.243 5.700 250.130 3.007
+1896.296 504.983 5.357 541.192 5.703 250.141 3.131
+1896.454 505.309 5.421 540.972 5.695 250.241 3.054
+1896.612 505.343 5.302 541.779 5.637 250.422 3.025
+1896.770 505.323 5.511 541.447 5.730 250.194 2.994
+1896.928 504.893 5.439 542.084 5.663 249.861 3.128
+1897.086 504.839 5.451 541.390 5.649 250.648 3.090
+1897.245 504.738 5.457 541.783 5.683 250.766 3.357
+1897.403 505.077 5.352 541.407 5.791 250.747 2.944
+1897.561 504.990 5.383 542.124 5.688 251.117 3.147
+1897.719 504.999 5.356 541.381 5.769 250.571 3.140
+1897.878 505.170 5.365 542.103 5.646 250.765 2.961
+1898.036 504.551 5.380 541.591 5.780 250.827 3.141
+1898.194 504.935 5.366 541.816 5.768 250.538 2.996
+1898.353 504.309 5.411 541.448 5.644 251.225 3.168
+1898.511 505.293 5.385 541.694 5.658 250.202 2.980
+1898.669 505.252 5.445 541.816 5.737 249.982 3.306
+1898.828 504.812 5.301 541.238 5.870 250.369 3.114
+1898.986 504.918 5.370 541.362 5.702 249.823 3.086
+1899.144 504.969 5.343 541.703 5.757 250.318 3.220
+1899.302 504.869 5.342 541.967 5.680 250.133 3.082
+1899.460 505.078 5.409 541.419 5.689 249.881 3.061
+1899.618 504.940 5.437 541.694 5.703 250.368 3.236
+1899.776 504.669 5.419 541.017 5.702 250.683 3.039
+1899.934 505.526 5.427 541.650 5.611 250.636 3.085
+1900.093 505.225 5.368 541.416 5.709 250.106 3.053
+1900.251 504.792 5.295 540.834 5.628 250.051 3.169
+1900.409 505.577 5.348 541.458 5.676 251.190 2.940
+1900.567 504.515 5.330 541.564 5.689 250.881 3.127
+1900.725 505.305 5.455 541.645 5.687 250.408 2.990
+1900.884 505.123 5.398 541.116 5.786 250.434 3.267
+1901.041 504.311 5.387 541.941 5.692 249.794 3.161
+1901.199 504.733 5.314 541.269 5.787 250.427 3.144
+1901.357 505.377 5.423 541.892 5.760 250.764 3.194
+1901.515 505.043 5.388 541.889 5.747 250.057 3.193
+1901.673 504.680 5.268 541.549 5.704 250.530 3.181
+1901.831 504.926 5.358 541.635 5.761 250.465 3.378
+1901.989 504.869 5.310 541.086 5.656 250.734 3.100
+1902.148 505.238 5.303 541.140 5.628 250.477 3.164
+1902.306 504.902 5.463 541.161 5.729 250.804 3.326
+1902.463 504.419 5.357 540.411 5.764 250.088 3.170
+1902.621 504.444 5.428 541.294 5.607 250.880 3.266
+1902.780 504.874 5.446 541.333 5.752 250.038 3.219
+1902.938 505.008 5.385 541.603 5.733 250.800 3.076
+1903.096 504.570 5.428 541.626 5.709 250.178 3.038
+1903.254 504.675 5.330 541.786 5.720 249.901 3.003
+1903.412 505.036 5.236 541.498 5.708 250.949 3.116
+1903.571 504.630 5.333 541.285 5.733 250.389 3.089
+1903.729 504.806 5.346 541.882 5.691 250.783 3.084
+1903.888 504.668 5.442 541.328 5.764 250.247 3.069
+1904.046 504.766 5.283 540.923 5.751 249.982 3.272
+1904.204 504.597 5.327 541.139 5.698 250.849 3.270
+1904.363 504.466 5.409 541.681 5.803 250.558 3.136
+1904.521 505.174 5.297 541.726 5.739 250.675 3.243
+1904.679 504.501 5.374 541.147 5.589 249.936 2.906
+1904.837 504.155 5.356 541.601 5.662 249.859 3.563
+1904.995 505.001 5.332 541.426 5.694 250.538 3.033
+1905.153 505.060 5.279 541.074 5.739 250.215 3.150
+1905.311 504.980 5.326 541.520 5.638 250.282 3.064
+1905.469 504.629 5.325 541.595 5.636 250.392 3.165
+1905.627 504.586 5.345 541.606 5.776 250.753 3.322
+1905.785 504.875 5.344 541.586 5.705 250.367 3.311
+1905.943 504.838 5.298 541.335 5.784 250.333 3.229
+1906.101 504.878 5.288 541.323 5.741 250.783 3.054
+1906.259 504.848 5.434 541.333 5.640 250.707 3.170
+1906.417 504.978 5.401 541.383 5.710 250.727 3.091
+1906.575 504.449 5.310 541.253 5.644 250.857 3.491
+1906.733 505.294 5.321 541.992 5.805 250.488 3.142
+1906.891 505.092 5.339 541.219 5.804 250.294 3.101
+1907.049 504.580 5.477 541.032 5.683 249.852 3.132
+1907.207 504.535 5.279 541.730 5.712 250.468 3.100
+1907.365 505.025 5.287 541.467 5.847 250.984 3.040
+1907.523 505.670 5.370 542.114 5.734 250.339 3.224
+1907.681 504.676 5.372 541.791 5.676 250.293 3.071
+1907.839 504.986 5.439 541.208 5.737 250.442 3.313
+1907.997 505.239 5.347 541.442 5.716 250.984 3.194
+1908.154 504.992 5.344 541.334 5.762 250.979 3.106
+1908.313 505.159 5.319 541.243 5.783 251.039 3.223
+1908.471 504.951 5.441 540.652 5.681 250.470 3.117
+1908.629 504.999 5.372 541.256 5.630 250.384 3.019
+1908.787 504.440 5.379 541.162 5.779 251.003 3.152
+1908.946 505.044 5.419 541.141 5.770 250.800 3.172
+1909.104 505.180 5.374 541.001 5.786 250.368 3.254
+1909.262 505.061 5.413 541.160 5.656 250.133 3.246
+1909.419 505.440 5.233 541.901 5.818 250.071 3.215
+1909.577 505.134 5.364 541.919 5.704 251.110 3.294
+1909.735 505.441 5.334 541.529 5.734 250.241 3.298
+1909.893 505.144 5.343 541.505 5.819 250.932 3.050
+1910.051 504.341 5.340 541.795 5.651 250.659 3.216
+1910.209 504.843 5.302 541.088 5.723 250.446 3.062
+1910.366 504.668 5.372 540.950 5.697 250.454 2.853
+1910.525 504.666 5.318 541.089 5.707 250.594 3.123
+1910.683 504.996 5.356 541.380 5.694 250.475 3.119
+1910.841 504.950 5.390 541.443 5.732 250.084 3.133
+1910.999 504.969 5.296 541.434 5.721 250.190 3.041
+1911.157 505.029 5.257 541.404 5.659 249.891 3.078
+1911.316 504.790 5.431 541.444 5.695 250.258 3.323
+1911.474 504.867 5.339 541.194 5.694 250.512 3.103
+1911.632 505.168 5.345 541.072 5.750 249.885 3.251
+1911.790 504.971 5.307 541.530 5.685 250.508 3.051
+1911.948 504.549 5.337 541.635 5.677 249.905 3.005
+1912.107 504.885 5.339 541.646 5.631 250.389 3.191
+1912.265 504.548 5.400 541.056 5.802 250.323 3.267
+1912.423 504.795 5.457 541.240 5.740 250.943 3.071
+1912.582 504.097 5.374 541.182 5.668 250.719 3.159
+1912.740 504.851 5.391 541.361 5.763 251.007 3.242
+1912.898 504.898 5.358 541.753 5.666 250.350 3.110
+1913.056 504.839 5.478 540.537 5.703 250.803 3.039
+1913.214 504.918 5.299 541.575 5.760 251.358 3.117
+1913.373 504.289 5.360 541.545 5.748 250.573 3.183
+1913.531 504.752 5.420 541.705 5.745 251.065 3.053
+1913.689 505.297 5.331 541.767 5.640 250.590 3.212
+1913.847 504.852 5.516 541.577 5.717 250.165 2.953
+1914.005 504.358 5.334 541.425 5.669 250.051 3.040
+1914.163 504.643 5.353 541.264 5.607 250.430 3.292
+1914.321 505.096 5.465 541.442 5.664 250.504 3.170
+1914.479 504.171 5.343 541.484 5.753 249.945 3.033
+1914.638 504.451 5.398 541.134 5.722 250.109 3.427
+1914.795 504.724 5.301 541.551 5.827 250.241 3.302
+1914.953 504.887 5.448 541.375 5.671 250.052 3.106
+1915.111 504.788 5.426 541.543 5.709 249.860 3.007
+1915.270 504.537 5.328 541.175 5.611 250.988 3.145
+1915.428 504.765 5.338 541.281 5.671 250.209 2.961
+1915.586 504.787 5.347 541.602 5.752 250.182 3.190
+1915.744 504.867 5.389 541.226 5.710 250.091 3.020
+1915.902 504.658 5.393 541.212 5.733 251.380 3.098
+1916.060 504.746 5.482 541.462 5.732 250.243 3.205
+1916.218 504.737 5.328 541.874 5.717 250.102 3.178
+1916.377 504.707 5.422 541.178 5.630 250.181 3.309
+1916.535 505.077 5.409 541.621 5.642 250.491 3.037
+1916.693 505.080 5.345 541.276 5.684 250.614 3.245
+1916.850 505.360 5.329 541.392 5.691 250.386 3.014
+1917.009 504.903 5.303 541.403 5.713 249.963 2.859
+1917.167 505.029 5.425 541.844 5.654 249.729 3.043
+1917.325 504.550 5.394 541.338 5.661 251.217 3.110
+1917.484 505.275 5.380 541.053 5.696 250.372 3.223
+1917.642 504.972 5.370 541.370 5.675 250.563 3.150
+1917.800 505.499 5.327 541.033 5.650 250.415 3.152
+1917.958 504.894 5.370 540.850 5.711 250.104 3.132
+1918.116 504.659 5.305 541.398 5.651 250.531 3.247
+1918.274 504.486 5.364 541.254 5.711 249.775 3.116
+1918.432 504.534 5.377 541.772 5.685 250.837 3.311
+1918.591 504.945 5.331 541.467 5.751 249.758 3.264
+1918.749 504.719 5.386 541.314 5.629 250.737 3.069
+1918.907 504.357 5.413 541.343 5.774 250.057 3.094
+1919.066 504.833 5.391 541.173 5.726 250.300 3.116
+1919.224 504.968 5.289 541.331 5.767 250.203 3.025
+1919.382 504.579 5.361 540.663 5.721 250.502 3.228
+1919.540 504.585 5.428 540.866 5.665 250.355 3.040
+1919.698 504.035 5.469 540.828 5.759 250.423 3.304
+1919.856 503.980 5.422 540.688 5.710 251.234 3.141
+1920.014 504.459 5.479 541.386 5.717 250.072 3.081
+1920.173 504.504 5.311 541.143 5.701 250.890 3.333
+1920.331 504.045 5.445 541.341 5.691 249.798 3.316
+1920.488 504.640 5.314 540.943 5.700 250.608 2.972
+1920.647 504.946 5.336 541.159 5.627 249.986 3.257
+1920.805 505.129 5.483 541.821 5.708 250.679 3.298
+1920.963 504.881 5.396 541.408 5.757 250.716 3.119
+1921.121 504.798 5.538 541.894 5.679 251.017 2.914
+1921.279 504.268 5.317 541.709 5.680 250.370 3.085
+1921.438 504.902 5.333 541.367 5.768 249.883 3.092
+1921.596 505.699 5.375 541.683 5.717 250.398 3.071
+1921.754 505.097 5.454 541.986 5.703 250.374 3.432
+1921.912 504.641 5.388 541.669 5.683 250.723 3.088
+1922.070 504.646 5.402 541.056 5.794 251.217 3.612
+1922.228 505.016 5.551 541.700 5.716 249.712 3.011
+1922.386 505.160 5.363 541.557 5.680 250.377 3.280
+1922.543 504.681 5.322 541.115 5.690 250.743 3.164
+1922.702 504.626 5.487 541.281 5.703 250.777 3.296
+1922.860 504.646 5.308 541.412 5.829 250.717 3.158
+1923.018 504.596 5.392 541.794 5.731 250.207 3.123
+1923.177 505.465 5.305 541.908 5.704 250.352 3.281
+1923.334 504.854 5.360 541.289 5.686 250.983 3.295
+1923.493 503.828 5.399 541.913 5.722 250.039 3.128
+1923.651 504.898 5.422 541.519 5.726 251.090 3.032
+1923.810 504.639 5.358 541.105 5.660 250.270 3.473
+1923.967 504.936 5.383 541.151 5.761 250.632 3.078
+1924.125 504.059 5.292 541.131 5.739 250.206 2.995
+1924.283 505.170 5.308 540.801 5.768 250.982 3.138
+1924.442 504.281 5.383 541.368 5.627 250.769 2.988
+1924.600 504.052 5.407 541.083 5.666 250.547 3.093
+1924.758 505.160 5.339 540.680 5.665 250.315 3.710
+1924.916 505.051 5.340 541.226 5.686 249.913 3.163
+1925.074 504.880 5.421 540.662 5.844 251.079 3.226
+1925.232 505.118 5.421 541.756 5.758 250.810 3.199
+1925.390 504.541 5.422 541.657 5.686 250.908 3.100
+1925.548 504.705 5.448 540.826 5.756 250.529 2.995
+1925.706 505.427 5.369 541.628 5.584 250.515 3.134
+1925.865 505.204 5.358 541.096 5.675 250.605 3.323
+1926.022 504.772 5.404 541.401 5.604 250.156 3.296
+1926.180 504.797 5.339 541.284 5.715 250.641 3.123
+1926.338 505.168 5.371 541.722 5.801 250.306 3.262
+1926.496 504.391 5.396 541.017 5.725 250.723 3.224
+1926.654 504.603 5.363 541.100 5.831 249.977 3.019
+1926.813 504.496 5.454 541.021 5.787 249.879 3.216
+1926.971 504.805 5.334 541.600 5.683 250.948 3.173
+1927.129 504.848 5.342 541.806 5.663 250.709 3.049
+1927.288 504.528 5.360 541.278 5.668 250.617 3.115
+1927.446 504.335 5.329 541.832 5.644 250.306 3.187
+1927.604 504.583 5.361 541.648 5.672 250.003 2.975
+1927.763 505.145 5.333 541.616 5.642 250.260 2.941
+1927.921 505.061 5.400 540.746 5.668 249.672 3.147
+1928.079 504.870 5.432 541.327 5.705 250.756 3.044
+1928.238 505.078 5.360 541.663 5.659 250.777 3.089
+1928.396 505.310 5.321 541.506 5.765 250.867 3.095
+1928.554 504.803 5.555 541.025 5.644 250.958 3.085
+1928.713 504.628 5.404 541.590 5.720 251.289 3.157
+1928.871 504.726 5.320 541.406 5.695 250.642 3.144
+1929.028 504.987 5.354 541.314 5.641 250.176 3.250
+1929.186 504.829 5.319 541.553 5.690 250.871 3.375
+1929.344 504.308 5.360 541.325 5.554 250.718 3.042
+1929.502 504.463 5.317 540.863 5.811 250.837 3.278
+1929.661 504.324 5.348 541.178 5.691 249.968 3.203
+1929.819 504.743 5.370 540.571 5.824 250.259 3.204
+1929.977 505.007 5.300 541.345 5.718 250.952 3.106
+1930.135 504.910 5.291 541.863 5.649 249.809 3.011
+1930.293 504.709 5.399 541.298 5.661 250.918 3.265
+1930.451 504.807 5.416 542.023 5.702 250.959 3.250
+1930.609 504.928 5.326 541.290 5.761 250.239 3.120
+1930.767 504.929 5.270 541.083 5.655 250.122 3.168
+1930.925 505.139 5.384 541.990 5.683 250.811 3.207
+1931.083 505.111 5.367 541.479 5.762 249.878 3.259
+1931.242 505.271 5.354 540.854 5.682 251.078 3.089
+1931.400 504.682 5.468 541.788 5.680 250.670 3.355
+1931.558 504.746 5.323 541.837 5.858 250.466 3.292
+1931.716 504.967 5.273 541.058 5.773 249.894 3.312
+1931.874 504.559 5.358 541.540 5.706 250.188 2.999
+1932.032 504.375 5.460 540.885 5.667 250.081 2.960
+1932.190 504.763 5.468 541.138 5.654 250.950 3.006
+1932.348 504.787 5.358 541.241 5.653 250.249 3.074
+1932.506 504.997 5.326 541.142 5.762 250.262 3.185
+1932.664 505.100 5.335 541.041 5.775 250.562 3.249
+1932.822 504.721 5.377 540.940 5.704 250.385 3.089
+1932.981 505.057 5.415 541.459 5.668 251.033 3.310
+1933.138 504.780 5.293 541.214 5.719 250.220 3.050
+1933.296 505.127 5.382 541.642 5.666 250.522 3.174
+1933.454 504.071 5.315 541.716 5.759 250.195 3.141
+1933.612 504.560 5.325 541.537 5.668 250.391 3.120
+1933.771 504.235 5.313 541.195 5.832 250.133 3.444
+1933.928 504.252 5.485 541.242 5.748 250.541 3.174
+1934.086 504.502 5.277 541.042 5.708 251.285 3.220
+1934.244 504.835 5.372 541.340 5.684 249.702 3.281
+1934.402 504.938 5.314 541.333 5.721 250.447 3.066
+1934.560 504.769 5.429 541.783 5.676 250.124 3.027
+1934.718 505.137 5.422 541.957 5.672 250.001 3.109
+1934.877 504.521 5.368 541.379 5.799 250.040 3.199
+1935.035 504.905 5.304 541.723 5.723 249.860 3.127
+1935.194 505.359 5.307 541.427 5.704 250.168 3.237
+1935.352 505.463 5.344 541.544 5.738 250.441 3.139
+1935.510 505.094 5.365 540.945 5.668 250.654 3.120
+1935.668 504.821 5.348 541.459 5.652 249.736 3.249
+1935.826 504.768 5.372 541.514 5.682 250.227 3.110
+1935.984 504.797 5.422 541.495 5.732 251.032 3.044
+1936.142 504.758 5.365 541.725 5.705 250.450 3.042
+1936.300 504.987 5.315 541.507 5.836 250.674 3.148
+1936.459 504.559 5.375 540.665 5.738 250.416 3.166
+1936.617 504.395 5.406 541.096 5.802 250.774 3.247
+1936.775 504.784 5.256 541.371 5.742 251.057 3.075
+1936.933 504.587 5.337 541.393 5.622 250.050 3.164
+1937.091 504.955 5.389 541.293 5.693 250.630 3.153
+1937.250 504.329 5.272 541.073 5.776 250.576 3.247
+1937.408 504.503 5.359 540.900 5.653 250.605 3.278
+1937.566 505.015 5.331 540.939 5.736 250.906 3.088
+1937.724 505.090 5.357 541.469 5.646 249.949 3.133
+1937.882 504.710 5.454 541.154 5.687 250.089 3.185
+1938.040 504.797 5.377 541.391 5.701 251.100 3.028
+1938.199 504.548 5.474 541.264 5.676 250.681 3.530
+1938.357 504.335 5.327 541.482 5.725 249.906 3.053
+1938.515 504.713 5.276 541.224 5.745 249.999 3.164
+1938.674 504.797 5.414 541.622 5.644 250.650 3.055
+1938.832 504.248 5.336 541.136 5.744 250.206 2.934
+1938.991 504.702 5.363 541.221 5.754 250.742 3.347
+1939.148 504.597 5.327 541.402 5.819 250.297 3.263
+1939.306 505.106 5.388 541.434 5.707 249.973 3.061
+1939.465 504.921 5.329 541.714 5.696 250.299 3.047
+1939.623 504.629 5.375 541.307 5.681 250.342 3.498
+1939.781 504.826 5.403 541.053 5.677 250.743 2.988
+1939.939 504.788 5.239 541.700 5.716 250.747 3.067
+1940.097 504.697 5.359 541.907 5.670 250.187 3.241
+1940.255 504.537 5.357 541.389 5.778 250.931 3.225
+1940.414 505.105 5.414 541.174 5.885 250.119 3.120
+1940.572 504.921 5.396 541.311 5.684 250.331 3.258
+1940.730 504.989 5.371 541.443 5.736 250.283 3.504
+1940.887 504.779 5.310 541.214 5.621 250.182 3.049
+1941.045 504.357 5.393 541.442 5.758 250.381 3.099
+1941.204 505.323 5.353 541.294 5.709 250.243 3.111
+1941.362 504.903 5.383 542.243 5.690 250.512 2.955
+1941.520 505.219 5.364 541.022 5.730 250.365 3.120
+1941.678 505.202 5.384 541.690 5.742 250.883 3.092
+1941.837 505.152 5.349 541.036 5.756 250.468 3.008
+1941.995 505.321 5.343 541.060 5.649 250.534 3.329
+1942.152 505.303 5.364 541.400 5.674 250.255 3.050
+1942.310 505.503 5.278 541.104 5.694 250.492 2.927
+1942.468 504.745 5.391 541.381 5.736 251.314 3.308
+1942.626 504.787 5.459 542.403 5.858 250.193 3.164
+1942.784 504.807 5.293 541.304 5.788 250.321 3.275
+1942.943 504.898 5.343 541.483 5.701 250.143 3.270
+1943.101 504.959 5.406 541.554 5.755 249.961 3.128
+1943.259 505.179 5.360 541.045 5.702 250.069 3.161
+1943.417 504.881 5.515 541.820 5.717 250.610 3.318
+1943.575 505.518 5.319 541.578 5.717 250.326 3.176
+1943.733 505.125 5.359 542.035 5.706 250.893 2.957
+1943.891 504.531 5.387 541.360 5.679 250.248 3.073
+1944.049 504.725 5.436 541.253 5.697 250.232 3.143
+1944.207 504.997 5.379 541.442 5.614 250.282 2.934
+1944.365 505.210 5.412 541.884 5.741 249.802 3.015
+1944.523 505.122 5.354 541.408 5.693 250.398 3.254
+1944.681 505.281 5.460 541.454 5.700 250.103 3.333
+1944.839 504.742 5.323 541.654 5.735 250.581 3.308
+1944.997 505.197 5.353 541.106 5.680 249.815 3.129
+1945.156 505.272 5.313 541.791 5.682 251.328 3.133
+1945.314 505.472 5.483 541.858 5.714 250.693 3.073
+1945.472 505.034 5.384 541.838 5.711 250.826 3.429
+1945.630 504.830 5.440 540.988 5.746 250.718 3.029
+1945.789 505.008 5.472 540.919 5.726 250.407 3.233
+1945.947 505.080 5.288 541.809 5.704 250.104 3.021
+1946.105 504.410 5.319 540.928 5.706 250.691 3.060
+1946.263 504.454 5.286 541.309 5.691 250.436 3.047
+1946.422 504.564 5.466 541.773 5.771 250.934 3.319
+1946.580 504.975 5.370 541.477 5.740 250.669 3.254
+1946.738 504.539 5.410 541.404 5.722 250.386 3.086
+1946.896 504.455 5.344 541.374 5.721 250.593 3.164
+1947.054 504.344 5.434 541.193 5.742 250.145 3.210
+1947.212 504.503 5.361 541.511 5.834 250.841 3.268
+1947.371 504.975 5.449 542.205 5.682 250.308 3.145
+1947.528 504.909 5.370 541.372 5.731 250.053 2.809
+1947.686 505.079 5.368 541.643 5.641 250.940 3.376
+1947.845 504.560 5.440 541.696 5.676 250.499 3.305
+1948.003 504.445 5.304 540.837 5.759 250.134 3.024
+1948.161 504.954 5.326 541.678 5.699 250.611 3.071
+1948.319 504.979 5.560 542.096 5.824 250.626 3.092
+1948.477 504.529 5.367 541.551 5.644 249.866 3.119
+1948.636 505.405 5.348 541.725 5.685 250.798 3.081
+1948.794 504.994 5.325 541.007 5.622 250.258 3.187
+1948.952 504.690 5.322 541.300 5.809 249.812 3.062
+1949.110 505.116 5.401 541.713 5.686 250.408 2.909
+1949.268 505.061 5.385 541.647 5.760 250.634 3.027
+1949.427 504.500 5.375 542.066 5.708 250.446 3.155
+1949.584 505.745 5.263 541.450 5.721 250.534 2.959
+1949.743 504.307 5.259 541.264 5.767 250.535 3.350
+1949.901 504.433 5.339 541.442 5.703 250.675 3.221
+1950.059 505.254 5.402 541.534 5.772 250.296 3.342
+1950.217 504.882 5.326 541.335 5.756 250.312 3.133
+1950.375 505.078 5.412 541.183 5.685 250.193 3.541
+1950.533 504.470 5.482 541.731 5.708 250.471 3.106
+1950.691 504.794 5.308 541.517 5.718 250.574 3.310
+1950.849 505.298 5.421 541.685 5.685 250.635 3.119
+1951.007 504.753 5.357 542.256 5.656 250.416 3.137
+1951.165 505.447 5.298 540.882 5.714 250.444 3.050
+1951.324 504.464 5.250 541.448 5.642 250.134 3.329
+1951.481 504.554 5.375 540.924 5.666 250.621 3.172
+1951.639 504.585 5.376 541.409 5.626 250.476 3.047
+1951.797 504.735 5.321 541.354 5.645 249.904 3.100
+1951.956 504.627 5.332 541.163 5.709 250.579 3.026
+1952.114 504.776 5.407 540.821 5.671 250.555 3.250
+1952.273 504.147 5.474 541.388 5.862 250.515 3.223
+1952.431 504.971 5.409 540.553 5.828 250.595 3.072
+1952.590 504.859 5.330 541.475 5.694 250.205 3.374
+1952.748 504.838 5.371 540.544 5.700 250.422 2.879
+1952.906 504.658 5.363 540.865 5.691 250.474 3.146
+1953.064 504.586 5.420 541.848 5.700 250.814 2.937
+1953.222 504.435 5.285 540.828 5.718 250.638 3.265
+1953.380 504.794 5.543 541.398 5.860 250.146 3.180
+1953.538 505.197 5.346 541.274 5.747 249.731 3.107
+1953.697 504.912 5.361 541.352 5.700 250.687 3.229
+1953.855 504.809 5.553 541.383 5.663 250.026 3.126
+1954.013 504.868 5.458 541.373 5.680 250.330 2.982
+1954.171 504.558 5.438 541.703 5.670 249.823 3.308
+1954.330 504.665 5.416 541.717 5.712 250.388 2.959
+1954.488 504.666 5.383 542.067 5.675 249.943 3.039
+1954.646 504.786 5.346 541.040 5.749 250.149 2.924
+1954.804 504.697 5.326 541.520 5.766 250.581 3.284
+1954.962 504.936 5.376 541.615 5.725 250.435 3.234
+1955.120 504.549 5.485 540.976 5.625 250.704 3.093
+1955.279 504.645 5.304 541.659 5.691 250.207 3.065
+1955.437 504.966 5.396 541.446 5.666 249.882 3.113
+1955.596 505.309 5.354 541.414 5.773 250.368 2.996
+1955.754 504.483 5.325 541.634 5.683 250.713 3.025
+1955.911 504.624 5.292 540.986 5.739 250.367 3.222
+1956.070 504.606 5.452 541.769 5.637 250.913 3.189
+1956.228 504.806 5.404 541.427 5.798 250.019 3.216
+1956.386 504.868 5.305 541.844 5.832 250.440 3.037
+1956.544 504.708 5.373 541.088 5.755 250.084 3.189
+1956.702 504.097 5.336 541.100 5.689 249.530 3.194
+1956.860 504.731 5.428 541.541 5.703 250.515 3.210
+1957.018 504.817 5.343 541.195 5.690 250.335 3.075
+1957.176 504.528 5.315 541.342 5.684 250.063 3.236
+1957.334 504.935 5.349 540.853 5.661 251.260 3.161
+1957.492 504.589 5.346 541.468 5.795 250.872 3.159
+1957.651 504.675 5.371 540.954 5.696 250.708 3.084
+1957.809 504.686 5.440 541.159 5.769 250.087 3.103
+1957.968 504.596 5.317 540.901 5.612 250.010 3.066
+1958.126 504.785 5.390 541.139 5.644 250.600 3.043
+1958.284 504.327 5.366 541.101 5.660 250.476 3.131
+1958.442 504.593 5.289 541.411 5.772 250.424 3.386
+1958.600 504.445 5.351 541.134 5.775 250.274 2.974
+1958.758 504.764 5.275 541.601 5.674 250.632 3.393
+1958.916 504.767 5.334 540.966 5.612 250.666 3.593
+1959.074 504.447 5.366 541.239 5.692 250.556 3.251
+1959.232 504.914 5.471 541.572 5.692 250.195 3.294
+1959.390 505.219 5.347 541.295 5.677 250.281 3.008
+1959.548 504.672 5.312 541.043 5.650 250.372 3.126
+1959.706 504.906 5.361 541.900 5.660 250.053 3.372
+1959.864 505.309 5.320 541.739 5.702 251.390 2.920
+1960.023 505.143 5.330 541.427 5.721 250.423 3.082
+1960.181 505.171 5.448 541.674 5.682 250.424 3.056
+1960.339 504.551 5.441 540.926 5.708 250.554 3.123
+1960.497 504.485 5.383 541.099 5.654 250.285 2.964
+1960.655 504.744 5.460 541.341 5.607 250.472 3.303
+1960.813 505.177 5.307 541.603 5.706 249.144 3.341
+1960.971 504.461 5.389 541.176 5.698 250.841 3.123
+1961.129 504.694 5.283 540.691 5.790 250.828 3.290
+1961.288 504.686 5.351 541.126 5.697 249.778 3.103
+1961.446 504.676 5.352 541.131 5.796 249.617 3.341
+1961.603 504.946 5.418 541.541 5.665 250.326 2.991
+1961.761 504.909 5.270 541.715 5.753 250.813 2.993
+1961.920 504.319 5.301 541.227 5.780 250.368 3.005
+1962.078 504.773 5.378 540.992 5.691 250.183 3.001
+1962.237 504.387 5.310 541.030 5.720 249.861 3.041
+1962.395 505.313 5.349 541.130 5.770 250.598 2.998
+1962.553 504.773 5.401 541.341 5.812 250.116 3.039
+1962.711 504.597 5.335 541.993 5.671 250.201 3.299
+1962.869 505.356 5.460 541.360 5.647 250.092 2.932
+1963.027 504.373 5.392 541.453 5.652 249.180 3.154
+1963.185 504.923 5.335 541.224 5.613 250.221 3.453
+1963.343 504.579 5.378 541.802 5.773 250.402 3.135
+1963.501 504.775 5.392 541.738 5.709 250.474 3.227
+1963.660 504.837 5.420 540.807 5.664 250.234 3.189
+1963.818 504.798 5.384 540.978 5.659 250.482 3.156
+1963.976 504.888 5.362 541.539 5.658 250.194 3.027
+1964.134 504.548 5.319 541.415 5.620 250.231 3.307
+1964.292 505.025 5.340 540.914 5.737 250.322 3.041
+1964.450 504.640 5.396 540.959 5.683 249.923 3.223
+1964.608 504.646 5.307 541.259 5.647 250.159 3.251
+1964.766 504.856 5.425 541.082 5.801 250.401 3.067
+1964.925 504.968 5.414 541.670 5.693 250.224 3.048
+1965.083 504.499 5.535 541.416 5.679 251.002 3.135
+1965.241 504.455 5.247 541.214 5.750 250.920 3.638
+1965.399 504.934 5.354 541.902 5.628 250.169 2.990
+1965.557 505.449 5.343 541.379 5.734 250.961 3.311
+1965.715 504.534 5.405 540.893 5.742 250.489 3.446
+1965.873 504.785 5.463 541.829 5.663 250.644 3.032
+1966.031 504.457 5.359 541.948 5.726 250.536 3.457
+1966.190 504.614 5.384 541.109 5.648 251.005 2.981
+1966.348 504.826 5.308 541.611 5.713 250.610 3.163
+1966.506 504.958 5.468 541.256 5.755 250.496 3.232
+1966.664 505.059 5.459 541.392 5.645 250.595 3.215
+1966.822 504.320 5.424 540.793 5.778 250.535 3.311
+1966.980 504.173 5.378 541.248 5.737 250.645 3.255
+1967.138 504.621 5.363 541.492 5.678 250.126 3.252
+1967.296 504.876 5.352 541.834 5.776 250.191 3.106
+1967.454 505.398 5.451 541.698 5.626 251.071 3.082
+1967.612 504.744 5.317 541.337 5.742 250.680 3.234
+1967.770 504.877 5.396 541.533 5.705 250.276 3.101
+1967.929 504.498 5.390 541.765 5.617 250.262 3.191
+1968.086 504.635 5.332 541.737 5.611 250.232 3.133
+1968.245 504.756 5.345 541.057 5.684 250.612 3.190
+1968.403 504.727 5.390 540.760 5.649 250.666 3.097
+1968.561 504.087 5.390 541.307 5.602 250.506 3.326
+1968.719 505.250 5.253 541.223 5.726 250.435 3.006
+1968.877 504.812 5.441 541.532 5.670 250.754 3.123
+1969.036 504.908 5.350 541.085 5.661 250.627 3.087
+1969.194 504.539 5.376 541.700 5.730 250.036 3.034
+1969.352 505.385 5.312 541.937 5.825 250.380 3.075
+1969.510 504.923 5.386 541.359 5.618 250.773 3.244
+1969.669 505.179 5.415 542.053 5.661 249.957 3.097
+1969.827 504.311 5.438 541.090 5.734 250.619 3.058
+1969.986 505.553 5.348 541.691 5.723 250.186 3.212
+1970.143 504.355 5.376 541.726 5.725 250.751 3.259
+1970.301 504.423 5.384 540.877 5.785 250.487 3.169
+1970.460 504.564 5.326 540.938 5.720 250.454 3.307
+1970.618 504.885 5.369 541.859 5.691 249.964 3.098
+1970.776 504.778 5.322 541.688 5.628 250.219 3.154
+1970.935 504.967 5.425 541.156 5.705 250.632 3.375
+1971.093 504.879 5.468 542.041 5.621 249.966 2.930
+1971.251 504.608 5.315 540.850 5.852 250.039 3.019
+1971.409 504.796 5.387 541.688 5.681 250.220 2.948
+1971.568 504.977 5.311 541.526 5.787 250.472 3.374
+1971.726 505.079 5.380 541.605 5.695 250.384 3.199
+1971.884 504.840 5.394 541.726 5.771 250.713 3.061
+1972.043 504.918 5.306 541.617 5.701 249.767 3.055
+1972.201 505.349 5.393 541.636 5.710 250.747 3.462
+1972.359 504.633 5.473 541.076 5.718 251.307 3.001
+1972.517 505.376 5.348 541.250 5.785 250.873 3.096
+1972.675 505.523 5.391 541.252 5.719 250.458 3.175
+1972.833 505.235 5.348 541.802 5.780 249.964 2.932
+1972.991 503.822 5.346 540.938 5.641 250.399 3.193
+1973.149 505.128 5.295 541.479 5.666 249.884 3.086
+1973.307 505.091 5.432 541.694 5.763 250.968 3.180
+1973.465 504.850 5.507 541.477 5.695 250.579 3.040
+1973.623 505.258 5.271 541.434 5.644 250.585 3.288
+1973.781 503.942 5.376 541.394 5.652 250.535 3.125
+1973.939 504.479 5.299 541.144 5.745 250.365 3.104
+1974.097 504.784 5.340 541.301 5.648 251.013 3.032
+1974.255 504.787 5.287 540.643 5.749 250.920 2.939
+1974.413 505.077 5.428 541.046 5.672 249.959 3.073
+1974.571 504.440 5.352 541.690 5.726 250.339 3.225
+1974.729 504.564 5.309 541.596 5.707 250.423 3.003
+1974.887 505.415 5.339 541.646 5.750 250.474 3.209
+1975.045 505.224 5.309 541.216 5.656 250.364 3.126
+1975.203 504.432 5.375 540.992 5.724 250.353 3.025
+1975.361 504.084 5.282 541.019 5.609 250.383 3.245
+1975.519 505.020 5.333 541.540 5.807 250.333 3.083
+1975.677 504.850 5.293 541.445 5.772 250.663 3.316
+1975.835 504.828 5.340 541.814 5.707 250.826 3.168
+1975.993 505.028 5.350 542.058 5.710 250.518 3.133
+1976.151 505.430 5.405 541.930 5.769 250.495 3.137
+1976.309 504.484 5.399 541.149 5.685 251.154 3.105
+1976.468 504.934 5.387 541.251 5.746 249.991 3.065
+1976.626 504.919 5.341 541.432 5.647 250.059 2.928
+1976.785 504.849 5.405 541.144 5.742 250.860 3.027
+1976.943 505.068 5.435 541.811 5.718 250.278 3.176
+1977.101 504.850 5.487 541.328 5.705 250.182 3.092
+1977.259 504.858 5.440 540.843 5.616 250.421 3.122
+1977.417 505.068 5.435 540.708 5.671 250.544 3.173
+1977.575 505.560 5.399 542.167 5.651 250.695 3.129
+1977.733 504.945 5.377 541.781 5.694 250.137 3.117
+1977.891 504.449 5.287 541.307 5.722 250.291 3.317
+1978.049 504.734 5.348 541.213 5.737 250.332 3.144
+1978.207 505.117 5.431 541.202 5.684 250.673 3.144
+1978.365 505.011 5.406 541.022 5.722 249.856 3.028
+1978.523 505.160 5.448 541.550 5.693 250.738 2.947
+1978.681 504.381 5.383 541.115 5.638 250.347 3.159
+1978.840 504.783 5.403 541.441 5.766 250.433 2.927
+1978.998 504.627 5.374 541.334 5.682 250.434 2.921
+1979.156 504.856 5.336 541.133 5.833 250.244 3.076
+1979.314 504.408 5.293 540.101 5.698 251.462 3.143
+1979.472 504.434 5.385 541.341 5.699 250.734 3.126
+1979.630 504.334 5.373 540.803 5.676 250.377 3.026
+1979.789 504.583 5.342 541.268 5.795 249.903 3.170
+1979.947 504.475 5.444 541.032 5.672 250.989 3.158
+1980.106 505.054 5.297 541.220 5.717 250.419 3.121
+1980.263 504.690 5.314 541.332 5.653 251.014 3.053
+1980.422 504.386 5.487 541.853 5.724 250.670 3.161
+1980.580 504.943 5.436 541.538 5.804 250.396 3.376
+1980.738 505.159 5.449 541.305 5.612 250.483 3.309
+1980.897 504.621 5.484 541.093 5.746 250.144 3.188
+1981.055 504.906 5.363 540.920 5.685 250.471 3.371
+1981.213 504.909 5.391 541.329 5.724 251.124 3.106
+1981.371 505.099 5.347 541.123 5.673 250.081 3.360
+1981.529 504.810 5.270 541.861 5.682 250.770 3.195
+1981.687 505.448 5.370 541.508 5.723 250.637 3.023
+1981.845 504.824 5.350 541.215 5.800 250.756 3.248
+1982.003 504.898 5.341 541.642 5.812 250.797 3.103
+1982.161 505.379 5.322 541.926 5.811 250.148 3.246
+1982.319 504.483 5.295 541.759 5.695 251.281 2.984
+1982.477 505.564 5.407 541.437 5.717 250.092 3.168
+1982.636 505.455 5.345 542.034 5.766 250.130 2.997
+1982.794 505.464 5.417 541.300 5.858 250.981 3.156
+1982.952 505.374 5.444 542.113 5.664 250.949 3.169
+1983.111 504.793 5.307 541.601 5.640 250.619 3.164
+1983.269 505.138 5.490 541.036 5.860 250.016 3.383
+1983.427 504.881 5.360 541.780 5.625 250.370 3.159
+1983.585 504.638 5.377 541.677 5.718 250.913 3.238
+1983.743 505.126 5.427 541.676 5.782 251.209 2.984
+1983.901 504.701 5.381 541.516 5.684 250.862 3.279
+1984.059 504.477 5.392 541.085 5.655 251.008 3.184
+1984.218 505.144 5.353 541.770 5.669 250.650 3.146
+1984.376 505.041 5.350 541.667 5.679 250.516 3.002
+1984.534 504.980 5.343 541.576 5.668 250.305 3.078
+1984.692 504.549 5.350 541.575 5.706 250.643 3.007
+1984.850 504.985 5.454 542.365 5.698 250.476 3.141
+1985.008 504.999 5.279 541.743 5.703 250.534 2.966
+1985.166 504.890 5.340 541.487 5.663 250.275 3.074
+1985.324 504.538 5.416 541.254 5.681 250.152 3.125
+1985.482 504.575 5.337 540.692 5.723 250.301 3.036
+1985.640 504.935 5.401 541.306 5.660 250.413 2.909
+1985.798 504.359 5.358 541.283 5.647 250.514 3.124
+1985.956 504.843 5.371 541.622 5.724 250.675 2.989
+1986.115 504.508 5.401 541.256 5.733 250.696 3.052
+1986.273 504.705 5.349 541.602 5.604 249.796 3.186
+1986.431 504.327 5.317 541.936 5.729 250.517 3.221
+1986.589 504.933 5.352 541.919 5.635 249.995 3.194
+1986.747 504.879 5.432 540.869 5.705 250.129 3.140
+1986.906 504.598 5.375 542.278 5.666 250.251 3.115
+1987.064 504.935 5.411 541.032 5.703 250.642 3.069
+1987.223 505.339 5.331 541.020 5.678 250.346 3.358
+1987.380 505.463 5.336 541.260 5.686 250.233 3.262
+1987.538 505.474 5.373 541.952 5.704 250.192 2.985
+1987.696 504.524 5.360 541.359 5.743 250.441 2.845
+1987.854 504.715 5.336 540.893 5.730 250.034 3.117
+1988.013 504.607 5.329 541.509 5.701 250.250 3.158
+1988.171 505.136 5.324 541.465 5.785 250.332 3.203
+1988.329 504.851 5.401 541.514 5.759 249.873 3.009
+1988.487 505.048 5.303 541.905 5.754 250.848 3.008
+1988.645 505.440 5.282 541.089 5.701 249.938 3.402
+1988.803 504.904 5.392 542.020 5.642 250.719 3.273
+1988.962 504.699 5.370 541.730 5.689 250.337 3.017
+1989.120 504.686 5.409 541.297 5.610 250.483 3.169
+1989.278 505.196 5.368 541.533 5.731 250.184 3.204
+1989.436 505.142 5.548 541.425 5.702 250.131 3.080
+1989.594 505.001 5.333 541.874 5.711 250.891 3.051
+1989.752 504.640 5.365 541.728 5.775 250.298 3.072
+1989.910 504.976 5.360 541.347 5.661 250.943 3.064
+1990.069 504.739 5.367 541.073 5.729 249.769 3.163
+1990.227 504.477 5.306 541.570 5.715 250.857 3.044
+1990.385 505.504 5.355 542.215 5.689 250.088 3.211
+1990.543 505.115 5.367 541.342 5.651 250.030 3.259
+1990.701 504.711 5.392 541.563 5.689 250.660 3.010
+1990.860 504.627 5.558 541.455 5.740 251.496 3.094
+1991.018 504.816 5.381 541.494 5.682 250.104 3.232
+1991.176 504.618 5.421 541.485 5.673 250.691 3.067
+1991.334 504.926 5.313 542.064 5.713 251.586 3.267
+1991.492 505.219 5.388 541.490 5.715 250.565 3.009
+1991.650 505.242 5.423 541.924 5.780 250.475 3.185
+1991.808 505.102 5.341 542.439 5.698 249.804 3.089
+1991.966 504.801 5.533 541.754 5.680 250.798 3.290
+1992.124 505.158 5.287 542.407 5.686 250.548 3.320
+1992.281 504.951 5.343 542.194 5.693 250.235 3.291
+1992.439 505.309 5.367 541.441 5.747 250.382 3.099
+1992.597 504.473 5.268 541.674 5.673 249.853 3.158
+1992.756 504.954 5.419 542.066 5.699 250.838 3.007
+1992.914 504.819 5.319 541.310 5.902 250.728 3.137
+1993.072 504.928 5.330 541.123 5.680 250.417 2.947
+1993.231 505.389 5.261 541.371 5.624 250.324 3.062
+1993.389 505.233 5.307 541.373 5.727 250.273 3.250
+1993.546 504.512 5.425 541.423 5.763 249.992 3.202
+1993.705 505.125 5.380 540.874 5.741 250.349 3.029
+1993.863 504.781 5.367 541.328 5.671 250.083 3.351
+1994.021 505.647 5.270 541.783 5.688 250.340 3.250
+1994.179 505.226 5.393 542.067 5.725 250.813 3.200
+1994.336 505.052 5.376 541.640 5.747 250.158 3.446
+1994.494 504.650 5.350 541.286 5.694 250.071 3.023
+1994.653 504.656 5.357 541.442 5.755 250.800 3.033
+1994.811 504.796 5.349 541.104 5.879 250.458 3.062
+1994.969 504.488 5.352 541.121 5.703 250.414 2.911
+1995.127 504.204 5.346 541.611 5.704 250.754 3.469
+1995.285 504.202 5.323 541.536 5.679 250.597 3.223
+1995.443 504.432 5.396 541.435 5.701 250.255 3.160
+1995.601 504.884 5.340 541.274 5.702 250.082 3.092
+1995.759 504.228 5.358 541.192 5.591 250.770 3.084
+1995.917 504.622 5.393 541.441 5.698 250.417 3.281
+1996.075 504.796 5.384 541.224 5.689 250.904 3.179
+1996.233 504.717 5.359 541.592 5.671 250.849 3.104
+1996.392 504.757 5.282 541.566 5.648 250.328 3.019
+1996.550 505.197 5.301 541.205 5.714 250.433 3.125
+1996.707 505.512 5.214 541.572 5.729 250.314 3.073
+1996.866 505.665 5.349 541.965 5.822 250.313 3.062
+1997.024 504.946 5.395 541.579 5.701 250.633 3.237
+1997.182 505.369 5.339 541.025 5.722 251.256 3.491
+1997.339 505.033 5.385 541.910 5.820 250.392 3.206
+1997.497 505.240 5.338 540.899 5.763 250.093 3.354
+1997.655 504.542 5.266 541.289 5.786 250.960 3.403
+1997.813 505.055 5.431 541.672 5.650 250.799 3.040
+1997.971 505.000 5.382 541.426 5.724 250.428 3.203
+1998.129 504.810 5.295 541.454 5.645 249.854 3.255
+1998.287 504.718 5.350 542.034 5.795 250.758 3.369
+1998.445 504.267 5.407 541.550 5.888 251.017 3.180
+1998.604 504.482 5.369 541.915 5.725 250.710 3.280
+1998.761 505.434 5.344 542.329 5.787 250.427 3.234
+1998.919 505.144 5.333 541.733 5.786 250.484 3.103
+1999.078 505.451 5.375 541.337 5.765 249.884 3.173
+1999.236 505.524 5.327 541.593 5.654 250.588 3.044
+1999.394 505.275 5.433 541.706 5.679 249.505 3.152
+1999.552 505.302 5.418 541.887 5.717 250.865 2.952
+1999.711 505.183 5.411 541.778 5.638 249.918 3.164
+1999.869 504.631 5.357 541.727 5.710 250.299 3.105
+2000.027 504.536 5.360 541.717 5.640 250.133 3.261
+2000.185 505.025 5.364 541.607 5.714 250.821 3.094
+2000.343 504.750 5.377 541.766 5.667 250.738 3.054
+2000.501 504.897 5.305 541.197 5.681 250.297 3.229
+2000.659 504.779 5.406 541.762 5.711 251.383 3.160
+2000.817 505.167 5.293 541.667 5.677 250.093 3.271
+2000.975 504.901 5.380 541.596 5.623 250.040 2.860
+2001.133 504.539 5.357 542.176 5.693 250.500 3.097
+2001.291 505.075 5.278 541.381 5.695 250.705 3.251
+2001.449 504.920 5.389 541.553 5.729 249.867 2.972
+2001.608 505.059 5.383 541.635 5.732 250.818 3.043
+2001.766 504.780 5.383 542.226 5.684 250.438 3.428
+2001.923 504.697 5.433 541.582 5.661 250.704 3.100
+2002.082 506.207 5.320 541.745 5.742 250.387 3.141
+2002.240 505.082 5.442 541.757 5.714 250.403 3.177
+2002.398 504.870 5.390 541.597 5.615 249.944 3.012
+2002.556 504.768 5.369 541.276 5.629 249.979 3.049
+2002.715 505.717 5.306 541.052 5.738 250.589 3.067
+2002.873 504.707 5.348 541.780 5.620 250.975 3.067
+2003.032 505.137 5.289 541.607 5.712 250.669 3.263
+2003.190 505.451 5.443 541.876 5.909 251.046 3.090
+2003.348 505.184 5.422 541.598 5.764 250.250 3.202
+2003.506 505.111 5.375 541.566 5.685 250.672 2.997
+2003.664 505.191 5.438 541.625 5.659 250.966 3.116
+2003.823 505.201 5.417 541.556 5.803 250.519 3.041
+2003.981 505.202 5.307 541.645 5.690 249.845 3.033
+2004.139 505.192 5.379 541.436 5.698 250.088 3.191
+2004.297 504.851 5.429 541.584 5.746 250.700 3.186
+2004.456 504.848 5.311 541.675 5.635 251.027 3.318
+2004.614 504.948 5.345 541.536 5.918 250.020 3.041
+2004.772 504.749 5.339 541.645 5.729 250.080 2.999
+2004.931 505.237 5.330 541.426 5.703 250.450 3.209
+2005.088 505.102 5.393 541.244 5.738 250.084 3.306
+2005.246 505.731 5.292 541.772 5.637 250.600 3.086
+2005.404 505.147 5.357 541.427 5.737 251.036 3.241
+2005.562 505.061 5.389 542.034 5.728 250.240 3.267
+2005.720 504.820 5.380 541.640 5.647 250.772 3.240
+2005.878 504.908 5.402 541.526 5.794 249.347 3.426
+2006.036 504.899 5.366 541.355 5.678 251.063 3.076
+2006.194 504.859 5.344 541.723 5.658 250.300 3.430
+2006.352 504.398 5.354 542.027 5.750 250.393 3.056
+2006.510 504.484 5.400 541.330 5.669 250.533 3.270
+2006.668 505.094 5.360 541.743 5.618 250.915 3.174
+2006.826 505.050 5.328 541.487 5.684 250.729 3.253
+2006.984 505.450 5.488 541.734 5.686 250.587 3.146
+2007.142 504.594 5.279 541.477 5.796 250.475 3.099
+2007.301 505.025 5.355 541.594 5.645 250.144 3.225
+2007.459 505.120 5.445 541.946 5.706 250.261 3.124
+2007.617 504.801 5.429 540.939 5.648 250.702 3.206
+2007.775 504.968 5.432 541.819 5.669 250.747 3.060
+2007.933 505.209 5.403 540.668 5.720 250.757 2.968
+2008.091 504.142 5.433 541.496 5.726 250.707 3.007
+2008.250 505.521 5.378 541.105 5.704 250.107 3.185
+2008.408 503.995 5.393 541.531 5.793 251.171 3.422
+2008.566 504.369 5.297 541.045 5.704 250.671 3.043
+2008.724 504.453 5.411 541.300 5.652 250.066 3.018
+2008.883 505.404 5.386 541.593 5.618 250.580 3.007
+2009.041 503.974 5.345 540.356 5.708 250.845 3.231
+2009.198 504.329 5.378 541.893 5.724 250.038 2.956
+2009.357 504.963 5.400 541.389 5.747 250.490 3.016
+2009.515 504.419 5.378 541.303 5.747 251.184 3.135
+2009.674 504.614 5.337 541.683 5.714 250.381 3.072
+2009.832 504.226 5.281 541.166 5.762 250.013 3.059
+2009.991 504.652 5.314 541.421 5.688 250.300 2.985
+2010.149 504.776 5.381 540.994 5.672 250.583 2.949
+2010.307 504.767 5.323 540.370 5.697 250.065 3.125
+2010.465 504.847 5.422 540.873 5.671 250.640 3.145
+2010.623 504.178 5.332 540.798 5.617 250.706 3.219
+2010.781 505.461 5.325 541.068 5.795 250.967 3.018
+2010.940 504.594 5.425 541.040 5.666 250.829 3.264
+2011.098 504.766 5.435 541.650 5.635 250.298 3.142
+2011.256 504.447 5.321 541.866 5.657 251.253 3.058
+2011.415 504.744 5.427 541.218 5.713 250.682 3.113
+2011.573 504.967 5.317 541.782 5.736 250.056 3.054
+2011.731 504.709 5.325 542.007 5.771 249.850 3.095
+2011.889 504.777 5.288 541.700 5.676 250.518 3.089
+2012.047 505.137 5.426 541.817 5.748 250.335 3.032
+2012.205 504.881 5.416 540.958 5.758 250.223 3.102
+2012.363 505.618 5.368 541.319 5.715 250.792 3.083
+2012.522 505.066 5.360 541.773 5.717 249.977 3.187
+2012.680 504.890 5.370 541.447 5.709 251.089 2.886
+2012.838 504.428 5.269 542.054 5.736 250.820 3.094
+2012.996 504.794 5.427 541.400 5.688 250.998 2.993
+2013.155 505.097 5.371 541.124 5.751 250.430 3.135
+2013.313 504.861 5.415 541.351 5.654 250.494 3.246
+2013.471 505.068 5.393 541.323 5.691 250.274 2.978
+2013.630 504.920 5.363 540.693 5.750 250.822 3.098
+2013.788 504.469 5.312 541.676 5.736 249.928 2.982
+2013.946 504.484 5.319 541.616 5.681 250.569 2.998
+2014.105 505.324 5.339 541.416 5.691 250.735 3.145
+2014.263 504.513 5.426 541.154 5.725 250.477 2.918
+2014.421 504.425 5.339 541.191 5.759 250.104 2.965
+2014.579 505.144 5.375 540.931 5.756 250.491 3.353
+2014.737 504.571 5.374 541.219 5.768 250.114 3.100
+2014.895 504.115 5.481 541.082 5.721 250.521 3.110
+2015.053 504.721 5.339 541.400 5.616 250.585 3.096
+2015.211 505.177 5.354 541.644 5.733 251.025 3.220
+2015.369 504.861 5.245 541.086 5.737 250.090 3.274
+2015.527 504.658 5.355 541.200 5.736 250.510 3.092
+2015.685 504.076 5.360 540.642 5.713 250.545 3.110
+2015.843 504.360 5.383 541.016 5.802 250.505 3.236
+2016.000 504.323 5.398 541.370 5.750 250.925 3.187
+2016.159 504.853 5.365 541.413 5.597 250.219 3.237
+2016.316 504.748 5.401 541.214 5.759 250.682 3.232
+2016.474 504.477 5.312 541.172 5.716 250.816 3.123
+2016.632 504.714 5.432 541.401 5.735 250.208 3.286
+2016.790 504.587 5.301 541.104 5.769 249.662 3.494
+2016.948 504.645 5.388 541.161 5.652 251.186 3.047
+2017.106 504.786 5.370 541.671 5.740 250.851 3.173
+2017.263 504.137 5.484 541.516 5.795 250.758 3.246
+2017.421 504.121 5.374 541.615 5.720 250.567 3.247
+2017.580 504.271 5.445 541.046 5.719 250.265 3.301
+2017.737 504.372 5.333 540.670 5.760 250.272 3.373
+2017.895 504.623 5.353 541.266 5.703 250.122 3.509
+2018.053 504.396 5.388 541.192 5.819 249.931 3.221
+2018.212 504.994 5.397 541.472 5.798 250.029 3.065
+2018.371 504.809 5.383 541.284 5.672 249.950 3.313
+2018.528 504.948 5.421 541.392 5.635 249.389 3.228
+2018.686 504.769 5.524 541.283 5.711 250.433 3.158
+2018.845 504.177 5.476 540.622 5.674 250.644 3.183
+2019.003 504.771 5.285 541.196 5.716 250.706 3.156
+2019.161 505.087 5.396 540.632 5.688 251.187 3.108
+2019.318 504.830 5.370 541.146 5.737 250.281 3.070
+2019.476 504.908 5.305 541.381 5.590 251.162 3.344
+2019.634 505.299 5.353 541.123 5.707 250.151 3.165
+2019.792 505.483 5.409 541.981 5.750 250.661 3.192
+2019.951 504.704 5.362 541.809 5.782 250.296 3.122
+2020.109 504.467 5.362 541.568 5.660 250.572 3.163
+2020.267 504.624 5.463 541.315 5.737 250.115 3.267
+2020.426 504.636 5.395 541.253 5.690 250.621 3.212
+2020.583 504.816 5.506 541.552 5.782 250.366 3.049
+2020.742 504.528 5.373 541.595 5.705 250.113 3.141
+2020.900 504.515 5.331 541.886 5.660 249.871 2.964
+2021.058 504.805 5.347 541.898 5.686 251.338 3.322
+2021.216 505.218 5.514 541.379 5.870 250.353 2.991
+2021.374 504.922 5.287 541.273 5.719 250.493 3.227
+2021.531 504.509 5.428 541.212 5.640 250.104 2.965
+2021.689 504.465 5.431 541.452 5.757 250.961 3.040
+2021.848 504.724 5.369 540.994 5.692 250.629 3.203
+2022.007 503.987 5.419 541.580 5.727 250.536 3.260
+2022.165 504.279 5.295 541.075 5.677 250.205 3.050
+2022.323 504.742 5.407 541.540 5.776 250.902 3.231
+2022.481 504.627 5.347 541.545 5.716 250.129 3.360
+2022.639 505.086 5.385 541.735 5.802 250.331 3.334
+2022.797 505.010 5.298 541.577 5.720 250.153 3.042
+2022.955 504.920 5.583 541.135 5.811 250.571 3.191
+2023.113 504.509 5.446 541.441 5.611 250.855 3.553
+2023.271 504.455 5.423 541.234 5.769 251.228 3.629
+2023.429 504.774 5.367 541.282 5.701 250.162 3.212
+2023.587 505.027 5.372 541.512 5.682 250.021 3.050
+2023.745 504.530 5.438 540.705 5.701 250.140 3.062
+2023.904 504.335 5.370 541.297 5.578 251.051 3.332
+2024.061 504.423 5.326 540.873 5.615 251.000 2.938
+2024.220 504.694 5.281 541.638 5.679 250.940 3.156
+2024.379 504.526 5.473 541.216 5.691 250.179 3.059
+2024.537 504.665 5.348 541.242 5.886 251.081 3.076
+2024.695 504.536 5.538 541.402 5.753 250.460 3.235
+2024.853 504.535 5.406 541.264 5.612 250.604 3.169
+2025.011 504.185 5.491 541.342 5.723 250.416 3.181
+2025.169 504.971 5.310 540.983 5.780 250.854 3.052
+2025.327 504.619 5.455 540.719 5.817 249.768 2.990
+2025.486 504.126 5.487 541.327 5.794 250.987 3.427
+2025.643 504.871 5.551 541.183 5.658 250.409 3.482
+2025.802 504.378 5.245 541.041 5.720 249.724 3.023
+2025.960 504.653 5.306 541.230 5.711 250.277 3.320
+2026.117 504.966 5.338 541.502 5.702 250.352 2.968
+2026.276 504.559 5.376 541.305 5.709 250.573 3.363
+2026.434 504.345 5.463 541.653 5.711 250.105 2.911
+2026.592 504.503 5.431 541.316 5.761 250.811 3.392
+2026.750 504.325 5.319 541.233 5.757 251.068 3.107
+2026.908 504.673 5.329 541.772 5.706 250.310 3.228
+2027.066 504.596 5.388 541.307 5.850 250.373 3.267
+2027.224 504.825 5.428 541.223 5.740 250.673 3.154
+2027.383 505.038 5.480 541.512 5.732 251.246 3.414
+2027.541 504.900 5.351 540.345 5.666 250.322 3.172
+2027.699 504.699 5.332 541.513 5.712 250.373 3.243
+2027.857 504.887 5.294 541.495 5.705 250.813 3.043
+2028.016 504.258 5.410 540.844 5.762 250.408 3.095
+2028.174 504.152 5.359 541.138 5.804 250.804 3.165
+2028.332 504.821 5.341 541.291 5.727 250.188 3.323
+2028.490 504.648 5.276 540.942 5.684 250.731 3.129
+2028.648 504.206 5.438 541.399 5.700 250.697 2.915
+2028.806 505.352 5.432 541.544 5.685 249.797 3.018
+2028.965 505.083 5.488 541.445 5.668 249.848 3.004
+2029.123 504.330 5.356 541.884 5.666 250.698 3.197
+2029.281 505.483 5.287 541.688 5.782 250.547 3.169
+2029.439 504.824 5.346 541.356 5.707 250.765 2.964
+2029.597 504.948 5.353 541.963 5.751 250.307 3.320
+2029.755 504.249 5.438 541.739 5.783 250.303 3.017
+2029.913 504.482 5.382 541.337 5.704 250.363 3.244
+2030.071 504.564 5.357 541.953 5.714 250.633 3.156
+2030.230 505.195 5.292 541.899 5.655 251.086 3.278
+2030.388 505.472 5.559 541.939 5.633 250.360 3.045
+2030.546 504.614 5.388 541.529 5.623 251.153 3.152
+2030.704 505.526 5.330 541.995 5.625 250.531 3.169
+2030.862 504.845 5.287 541.330 5.820 250.255 3.121
+2031.020 504.738 5.401 542.233 5.710 250.722 3.084
+2031.178 505.457 5.302 541.792 5.811 250.747 3.070
+2031.336 504.764 5.425 541.377 5.736 250.817 2.976
+2031.495 505.007 5.340 541.623 5.691 250.508 3.211
+2031.653 504.580 5.404 541.966 5.664 250.155 3.063
+2031.811 504.655 5.498 541.699 5.773 250.211 3.095
+2031.968 504.776 5.355 541.587 5.653 251.062 3.040
+2032.127 505.117 5.378 541.315 5.701 250.430 3.307
+2032.284 504.911 5.474 541.843 5.726 251.064 3.437
+2032.442 505.179 5.457 541.698 5.681 250.420 3.053
+2032.601 504.971 5.460 541.277 5.678 249.794 3.091
+2032.759 504.669 5.317 541.442 5.741 250.637 3.075
+2032.917 504.786 5.346 541.734 5.661 250.776 3.193
+2033.075 504.507 5.548 541.817 5.720 251.217 3.035
+2033.233 504.835 5.249 541.578 5.701 250.182 3.242
+2033.391 504.688 5.401 541.955 5.798 250.411 3.111
+2033.549 505.426 5.346 541.579 5.834 250.654 2.986
+2033.707 505.024 5.423 541.375 5.764 250.666 3.133
+2033.866 504.720 5.261 541.753 5.626 250.216 2.899
+2034.024 504.817 5.391 541.487 5.608 249.872 3.129
+2034.182 504.678 5.392 542.144 5.728 250.198 3.387
+2034.339 504.886 5.320 541.491 5.686 250.592 3.200
+2034.497 504.768 5.428 540.924 5.743 250.115 3.091
+2034.656 504.647 5.506 541.059 5.698 250.371 3.179
+2034.814 505.016 5.487 541.800 5.659 251.083 3.126
+2034.972 504.660 5.299 541.768 5.774 250.660 3.138
+2035.130 505.076 5.287 541.677 5.788 250.216 3.099
+2035.288 505.090 5.380 541.756 5.764 250.232 3.142
+2035.446 504.960 5.417 541.757 5.628 250.682 3.176
+2035.604 504.489 5.409 541.707 5.674 249.906 3.359
+2035.762 505.054 5.385 541.177 5.648 251.199 3.061
+2035.920 504.520 5.383 541.401 5.770 250.482 3.088
+2036.078 504.255 5.319 541.194 5.648 250.404 3.086
+2036.236 504.692 5.313 541.292 5.659 250.864 3.062
+2036.394 504.767 5.371 541.823 5.667 251.168 3.022
+2036.552 504.867 5.437 541.348 5.730 248.991 2.966
+2036.711 504.798 5.432 541.153 5.949 250.679 3.132
+2036.870 505.548 5.313 541.761 5.733 250.246 2.975
+2037.028 504.315 5.459 541.657 5.778 249.522 3.046
+2037.186 504.933 5.459 541.516 5.947 250.685 3.023
+2037.345 505.069 5.414 541.095 5.763 250.666 3.352
+2037.502 504.450 5.346 541.611 5.739 250.456 3.018
+2037.660 504.304 5.449 541.486 5.730 250.904 3.202
+2037.819 505.493 5.340 540.804 5.716 250.469 2.955
+2037.977 505.155 5.461 541.358 5.689 250.114 3.208
+2038.134 505.171 5.274 541.493 5.805 250.411 3.149
+2038.292 505.031 5.383 540.725 5.737 249.924 3.309
+2038.451 504.520 5.369 541.517 5.766 250.349 3.055
+2038.609 504.525 5.295 541.715 5.635 251.373 3.104
+2038.767 505.305 5.305 541.327 5.790 250.423 3.203
+2038.925 504.513 5.303 541.313 5.695 250.174 3.251
+2039.083 505.225 5.276 541.243 5.605 250.601 3.453
+2039.241 504.382 5.326 540.842 5.619 250.526 2.949
+2039.399 504.423 5.371 540.878 5.674 251.315 3.119
+2039.557 504.634 5.284 541.028 5.597 251.003 3.063
+2039.715 504.906 5.430 541.470 5.705 249.620 2.928
+2039.873 504.769 5.369 541.134 5.646 250.586 3.038
+2040.031 504.597 5.389 541.291 5.684 250.645 3.117
+2040.190 504.036 5.531 540.962 5.824 249.816 3.081
+2040.348 504.860 5.487 540.869 5.726 250.918 3.156
+2040.506 504.738 5.344 541.178 5.664 250.569 3.100
+2040.664 504.807 5.353 541.261 5.745 251.225 3.209
+2040.822 504.958 5.461 541.362 5.720 250.182 3.217
+2040.981 504.769 5.323 541.343 5.726 250.421 3.173
+2041.139 504.997 5.417 541.403 5.644 250.614 3.034
+2041.297 504.480 5.343 540.684 5.611 250.226 3.355
+2041.454 505.104 5.335 540.816 5.728 250.542 3.304
+2041.612 504.771 5.306 541.508 5.630 251.125 2.907
+2041.770 504.577 5.320 540.675 5.711 250.701 3.082
+2041.928 505.005 5.349 541.926 5.699 250.427 3.127
+2042.086 505.120 5.328 541.599 5.707 251.434 3.032
+2042.245 505.011 5.384 541.516 5.627 250.404 3.026
+2042.403 504.550 5.397 541.735 5.725 250.644 3.154
+2042.561 505.005 5.388 541.257 5.676 250.766 3.148
+2042.719 504.360 5.410 541.022 5.721 250.897 3.063
+2042.877 505.183 5.418 541.530 5.637 250.758 2.909
+2043.036 505.161 5.455 541.065 5.736 250.767 3.026
+2043.193 505.061 5.326 541.480 5.655 250.637 3.072
+2043.352 504.880 5.288 541.264 5.734 250.586 3.230
+2043.510 504.998 5.420 541.422 5.682 250.495 3.054
+2043.668 504.940 5.422 541.544 5.694 250.264 2.945
+2043.826 505.239 5.265 541.805 5.710 250.692 3.224
+2043.984 504.472 5.454 540.828 5.709 251.146 3.032
+2044.142 504.524 5.314 540.958 5.714 250.501 3.187
+2044.300 505.055 5.259 540.909 5.728 250.585 3.166
+2044.458 504.730 5.470 540.899 5.736 250.645 2.838
+2044.617 505.137 5.384 541.429 5.725 250.736 2.983
+2044.775 504.991 5.375 541.064 5.722 249.877 3.190
+2044.933 505.279 5.304 541.590 5.711 251.188 3.221
+2045.090 504.662 5.461 541.515 5.839 250.531 3.179
+2045.249 504.656 5.413 541.545 5.786 250.395 3.005
+2045.407 504.456 5.354 541.025 5.798 250.463 3.102
+2045.565 504.434 5.437 541.320 5.852 250.564 3.309
+2045.723 504.424 5.342 541.363 5.773 250.475 3.144
+2045.881 504.774 5.284 541.683 5.692 250.314 3.272
+2046.039 505.027 5.357 540.896 5.665 249.713 3.381
+2046.197 505.040 5.328 541.259 5.674 250.597 2.957
+2046.354 504.950 5.351 541.252 5.680 250.875 3.330
+2046.512 504.649 5.272 541.472 5.684 250.088 3.123
+2046.670 504.756 5.268 541.214 5.656 249.860 3.347
+2046.828 504.627 5.301 540.872 5.704 250.288 3.135
+2046.987 504.986 5.278 541.428 5.643 250.442 2.980
+2047.145 505.079 5.307 540.864 5.756 249.554 3.274
+2047.303 504.370 5.428 540.938 5.672 250.325 2.930
+2047.461 504.863 5.342 541.289 5.712 249.323 2.859
+2047.619 504.278 5.380 540.742 5.762 250.683 3.204
+2047.777 504.462 5.441 541.367 5.780 250.346 3.367
+2047.935 504.424 5.267 541.243 5.759 250.713 3.074
+2048.093 504.174 5.531 540.882 5.808 250.667 3.168
+2048.252 504.271 5.264 541.188 5.648 251.076 3.044
+2048.411 504.382 5.307 541.771 5.676 251.120 3.184
+2048.569 505.003 5.409 541.227 5.644 249.961 3.028
+2048.727 504.880 5.405 541.062 5.713 250.479 3.179
+2048.884 504.648 5.452 540.760 5.800 250.454 3.280
+2049.043 504.626 5.354 540.857 5.670 249.784 3.192
+2049.201 504.126 5.364 541.198 5.706 250.417 3.157
+2049.359 504.341 5.376 541.322 5.611 250.714 3.208
+2049.517 504.773 5.417 541.213 5.667 250.797 3.229
+2049.675 505.247 5.401 541.622 5.740 249.548 3.188
+2049.833 504.502 5.354 540.626 5.832 250.585 3.122
+2049.991 505.325 5.356 541.336 5.679 250.875 3.103
+2050.150 504.743 5.481 541.633 5.785 250.088 3.233
+2050.307 504.997 5.335 541.136 5.796 249.970 2.864
+2050.466 504.769 5.303 541.551 5.796 250.199 3.055
+2050.625 505.147 5.386 540.715 5.676 250.462 3.184
+2050.783 504.271 5.352 541.067 5.758 250.844 3.081
+2050.941 504.442 5.348 541.340 5.649 249.778 3.188
+2051.099 504.334 5.352 540.663 5.702 249.717 3.336
+2051.257 504.733 5.337 541.306 5.676 250.847 3.256
+2051.415 504.417 5.411 541.163 5.680 250.428 3.338
+2051.573 504.594 5.339 540.721 5.651 250.754 2.911
+2051.731 504.785 5.451 540.787 5.710 250.937 3.116
+2051.889 505.167 5.314 540.767 5.770 250.439 3.007
+2052.048 504.511 5.408 541.357 5.762 250.854 2.993
+2052.206 504.455 5.403 541.163 5.636 250.788 2.995
+2052.364 505.264 5.283 541.391 5.675 250.087 3.202
+2052.523 504.652 5.384 540.524 5.699 251.020 3.007
+2052.681 504.176 5.355 541.445 5.785 250.480 3.051
+2052.839 504.221 5.396 541.524 5.666 250.094 2.999
+2052.998 504.172 5.366 541.065 5.659 250.980 3.268
+2053.156 504.681 5.402 540.590 5.667 250.099 3.156
+2053.314 504.426 5.350 540.825 5.636 250.681 3.184
+2053.472 504.574 5.427 540.848 5.574 250.056 3.051
+2053.630 504.715 5.342 540.888 5.741 250.600 2.943
+2053.788 504.927 5.338 541.118 5.681 251.506 3.209
+2053.947 504.019 5.366 540.711 5.710 249.595 3.184
+2054.105 504.590 5.335 541.237 5.892 251.305 3.140
+2054.263 504.295 5.428 540.942 5.664 250.193 2.985
+2054.421 504.402 5.396 540.909 5.650 250.951 3.089
+2054.580 504.494 5.337 541.519 5.735 251.119 3.123
+2054.739 504.975 5.362 541.735 5.715 250.311 3.070
+2054.897 503.969 5.443 540.987 5.672 250.503 2.984
+2055.055 503.909 5.350 541.439 5.740 251.415 3.130
+2055.213 504.569 5.513 541.174 5.706 250.074 3.269
+2055.371 504.575 5.382 541.681 5.678 250.570 3.075
+2055.530 504.005 5.445 541.336 5.721 250.995 3.034
+2055.688 504.630 5.355 541.503 5.678 250.799 3.144
+2055.846 504.926 5.373 541.035 5.739 250.198 3.121
+2056.004 504.449 5.375 541.290 5.740 251.212 3.213
+2056.163 504.704 5.365 541.163 5.662 249.982 2.999
+2056.321 504.997 5.486 540.851 5.757 250.229 2.950
+2056.479 504.700 5.406 540.708 5.672 250.492 3.245
+2056.637 504.627 5.563 540.797 5.624 250.514 3.027
+2056.796 504.266 5.311 540.718 5.621 250.895 3.158
+2056.954 504.852 5.407 540.757 5.724 250.008 3.284
+2057.112 504.688 5.513 541.147 5.642 250.820 3.138
+2057.270 504.586 5.385 540.821 5.718 250.398 3.151
+2057.428 504.445 5.361 541.698 5.604 250.824 2.868
+2057.586 504.264 5.345 540.987 5.652 250.558 3.171
+2057.745 505.412 5.297 541.389 5.750 250.125 3.158
+2057.903 504.734 5.372 541.193 5.688 250.771 3.132
+2058.061 504.577 5.433 540.322 5.752 251.357 3.100
+2058.219 504.725 5.381 541.023 5.647 250.633 3.092
+2058.378 504.327 5.321 540.790 5.689 250.186 3.117
+2058.536 504.763 5.442 541.077 5.623 250.541 3.177
+2058.693 504.487 5.329 541.230 5.715 250.395 3.285
+2058.851 504.574 5.314 541.022 5.749 250.833 3.005
+2059.010 504.755 5.378 540.870 5.699 251.218 3.316
+2059.168 504.727 5.285 541.058 5.653 250.582 3.055
+2059.326 504.727 5.397 540.880 5.708 250.995 3.034
+2059.485 505.007 5.434 541.158 5.755 250.119 3.114
+2059.643 504.110 5.347 540.801 5.628 250.221 3.026
+2059.801 504.861 5.349 541.078 5.703 250.352 3.086
+2059.959 504.518 5.384 540.660 5.637 250.603 3.285
+2060.117 504.085 5.430 540.716 5.706 251.156 3.169
+2060.275 504.450 5.375 540.927 5.673 250.631 3.236
+2060.433 504.414 5.396 540.909 5.666 250.626 3.067
+2060.592 504.174 5.408 540.449 5.700 250.526 3.215
+2060.750 504.551 5.318 540.434 5.700 250.675 3.331
+2060.908 505.165 5.350 541.034 5.605 250.676 3.086
+2061.065 505.131 5.404 541.190 5.660 250.536 3.038
+2061.223 504.251 5.451 540.622 5.686 250.115 2.985
+2061.381 504.922 5.388 540.686 5.675 250.281 3.201
+2061.540 504.439 5.483 541.276 5.738 250.452 2.991
+2061.698 504.274 5.453 541.342 5.720 251.164 3.117
+2061.856 504.492 5.345 541.543 5.754 250.941 3.576
+2062.014 504.664 5.490 540.725 5.617 250.539 3.188
+2062.172 505.056 5.399 541.307 5.623 249.935 3.149
+2062.331 504.700 5.410 540.633 5.733 250.889 2.987
+2062.489 505.887 5.395 541.096 5.584 249.958 2.932
+2062.648 504.658 5.395 541.591 5.713 250.809 3.033
+2062.806 504.796 5.516 541.515 5.676 250.388 3.075
+2062.965 504.488 5.395 540.655 5.717 250.923 3.248
+2063.123 505.324 5.341 541.436 5.665 250.139 3.034
+2063.282 504.743 5.303 541.404 5.678 250.241 3.176
+2063.440 504.787 5.307 541.454 5.654 250.832 3.124
+2063.598 504.837 5.419 541.334 5.654 249.728 3.085
+2063.757 503.988 5.289 541.513 5.689 250.127 3.201
+2063.915 505.559 5.315 541.555 5.685 250.601 3.222
+2064.073 504.635 5.396 540.885 5.656 250.746 3.550
+2064.231 505.376 5.361 541.318 5.658 250.457 2.952
+2064.389 504.473 5.402 541.653 5.687 250.484 2.934
+2064.547 504.494 5.317 541.736 5.654 250.324 3.040
+2064.705 504.834 5.407 542.107 5.674 250.423 2.999
+2064.863 504.498 5.273 541.631 5.633 250.254 2.962
+2065.021 504.275 5.343 541.386 5.703 251.582 3.113
+2065.179 504.812 5.490 541.553 5.638 250.625 3.144
+2065.338 503.998 5.414 541.035 5.658 250.686 3.144
+2065.496 504.180 5.349 541.280 5.741 249.936 2.927
+2065.654 505.151 5.364 541.572 5.705 250.619 3.245
+2065.812 504.571 5.365 540.815 5.800 250.126 3.006
+2065.970 504.155 5.401 541.558 5.771 250.641 3.270
+2066.129 504.701 5.374 541.385 5.846 250.106 3.394
+2066.287 504.917 5.420 541.473 5.699 249.761 3.191
+2066.445 504.659 5.362 541.074 5.666 250.547 3.403
+2066.603 504.256 5.307 540.840 5.662 249.855 2.990
+2066.761 505.042 5.307 541.608 5.795 250.438 3.114
+2066.919 505.300 5.307 541.116 5.762 250.414 3.297
+2067.077 505.013 5.412 540.881 5.670 250.934 2.962
+2067.236 505.030 5.374 541.158 5.637 250.379 3.119
+2067.394 504.460 5.378 541.111 5.709 250.773 3.057
+2067.552 504.584 5.360 541.201 5.741 250.377 3.249
+2067.710 504.345 5.452 540.812 5.694 250.823 3.050
+2067.868 504.493 5.446 541.558 5.749 250.888 2.991
+2068.026 504.384 5.321 541.315 5.674 250.618 3.251
+2068.184 504.953 5.392 540.673 5.663 250.676 2.966
+2068.342 504.459 5.411 541.696 5.784 250.536 3.113
+2068.501 504.234 5.416 541.477 5.702 249.865 3.182
+2068.659 504.532 5.395 541.964 5.643 250.628 3.133
+2068.817 505.265 5.402 541.499 5.748 251.056 3.064
+2068.975 504.572 5.442 541.605 5.667 250.770 3.100
+2069.134 505.395 5.417 541.366 5.678 250.637 3.240
+2069.292 504.974 5.434 541.243 5.745 250.236 3.052
+2069.450 504.299 5.326 541.312 5.690 250.492 3.087
+2069.608 504.253 5.276 541.143 5.621 250.494 3.063
+2069.766 505.012 5.315 542.151 5.846 250.794 3.020
+2069.924 504.780 5.270 541.621 5.871 250.877 3.079
+2070.082 504.927 5.378 542.126 5.788 250.648 3.091
+2070.240 504.709 5.422 541.461 5.740 249.716 2.920
+2070.398 504.867 5.362 541.634 5.671 250.487 3.121
+2070.556 505.018 5.449 541.306 5.702 250.314 3.404
+2070.714 505.040 5.323 541.453 5.756 250.843 3.380
+2070.872 504.650 5.335 541.464 5.928 250.568 3.287
+2071.030 505.846 5.474 541.274 5.765 250.585 3.176
+2071.188 504.988 5.452 541.102 5.735 249.845 3.000
+2071.346 504.579 5.358 540.671 5.659 251.008 3.103
+2071.505 504.415 5.354 541.006 5.684 251.030 3.342
+2071.663 504.294 5.413 541.690 5.714 250.350 3.039
+2071.821 505.213 5.388 541.436 5.751 250.623 3.192
+2071.979 505.282 5.377 541.264 5.737 250.436 3.200
+2072.137 504.672 5.372 540.292 5.786 249.974 3.082
+2072.295 505.226 5.377 541.593 5.713 250.369 3.301
+2072.453 504.362 5.396 540.906 5.664 250.263 3.087
+2072.611 504.253 5.316 541.429 5.766 250.732 3.010
+2072.769 504.892 5.579 540.944 5.653 250.057 2.928
+2072.928 504.989 5.303 540.719 5.635 250.020 3.085
+2073.086 504.789 5.493 541.417 5.785 250.050 3.049
+2073.245 504.637 5.394 540.914 5.653 250.280 2.960
+2073.403 505.246 5.359 541.289 5.669 250.402 3.035
+2073.561 504.632 5.352 541.712 5.762 250.904 3.144
+2073.719 505.106 5.274 541.447 5.695 249.929 3.098
+2073.878 504.311 5.320 541.364 5.767 250.519 3.131
+2074.036 504.863 5.310 540.523 5.701 250.255 3.043
+2074.194 505.038 5.491 541.935 5.774 250.132 3.117
+2074.352 504.490 5.307 540.219 5.755 250.501 3.081
+2074.510 503.874 5.313 541.262 5.671 249.735 3.035
+2074.668 505.178 5.400 540.852 5.702 251.267 2.992
+2074.827 505.211 5.408 541.068 5.784 251.042 3.046
+2074.984 504.012 5.308 540.950 5.724 250.700 2.948
+2075.142 504.740 5.417 540.779 5.645 251.237 3.010
+2075.301 504.837 5.344 540.587 5.728 249.712 3.239
+2075.459 504.838 5.454 541.845 5.734 251.067 3.193
+2075.617 504.408 5.373 541.528 5.749 250.270 3.105
+2075.775 504.414 5.375 541.715 5.777 250.182 3.101
+2075.933 504.614 5.314 541.547 5.772 250.191 3.158
+2076.092 504.476 5.356 541.235 5.698 250.431 3.197
+2076.250 505.324 5.347 540.762 5.781 250.134 3.063
+2076.408 505.253 5.341 541.387 5.625 250.181 3.230
+2076.566 504.542 5.332 541.563 5.789 250.941 3.043
+2076.725 505.145 5.378 541.615 5.680 250.359 3.043
+2076.883 504.431 5.352 541.666 5.762 250.313 3.259
+2077.042 504.414 5.370 541.176 5.770 250.613 3.140
+2077.200 504.734 5.260 541.691 5.773 250.216 3.121
+2077.358 505.497 5.299 541.326 5.699 251.072 3.137
+2077.515 505.155 5.353 541.513 5.656 250.560 3.100
+2077.674 504.781 5.388 541.955 5.700 250.955 3.178
+2077.832 504.847 5.297 541.659 5.620 250.019 3.179
+2077.991 504.538 5.330 541.626 5.722 250.940 3.252
+2078.150 504.435 5.294 541.716 5.687 250.359 3.219
+2078.308 504.734 5.302 541.067 5.783 250.423 3.159
+2078.466 504.727 5.507 541.890 5.834 250.824 3.112
+2078.625 504.017 5.420 541.168 5.757 249.588 3.159
+2078.783 504.770 5.484 541.211 5.791 250.945 3.221
+2078.941 504.807 5.329 541.192 5.628 250.859 2.984
+2079.099 504.998 5.399 540.722 5.673 250.278 3.031
+2079.258 504.380 5.320 541.527 5.683 251.462 3.020
+2079.416 504.803 5.316 541.765 5.715 250.184 3.023
+2079.574 504.988 5.480 541.767 5.775 250.721 2.886
+2079.733 505.049 5.362 542.587 5.668 250.637 3.114
+2079.891 504.830 5.259 542.645 5.742 250.116 2.949
+2080.049 504.368 5.261 542.596 5.715 251.241 2.947
+2080.207 504.913 5.322 543.286 5.708 250.482 3.149
+2080.365 504.199 5.437 543.232 5.820 250.034 3.359
+2080.523 504.892 5.559 543.232 5.675 251.030 3.056
+2080.681 504.958 5.500 545.212 5.695 250.820 3.136
+2080.840 504.679 5.318 545.342 5.753 250.518 3.082
+2080.998 504.546 5.379 546.983 5.830 251.705 3.276
+2081.157 504.275 5.306 546.759 5.758 251.067 3.206
+2081.315 504.632 5.348 545.027 5.813 251.390 3.112
+2081.473 504.656 5.342 546.820 5.676 251.153 3.148
+2081.631 504.336 5.509 547.748 5.789 251.771 3.252
+2081.790 504.473 5.567 547.037 5.741 251.437 3.276
+2081.948 505.194 5.540 546.940 5.761 251.154 3.254
+2082.106 504.161 5.506 546.759 5.789 250.821 3.149
+2082.264 505.131 5.520 547.797 5.716 252.308 3.232
+2082.422 505.591 5.477 548.388 5.797 252.223 3.180
+2082.580 504.845 5.424 548.043 5.863 251.362 3.425
+2082.738 505.068 5.506 546.570 5.798 251.443 3.191
+2082.897 504.390 5.379 546.025 5.781 252.044 3.201
+2083.055 504.803 5.310 547.540 5.889 251.680 3.115
+2083.213 504.228 5.430 547.895 5.734 251.456 3.324
+2083.371 504.662 5.344 546.279 5.640 251.274 3.597
+2083.529 504.716 5.350 547.032 5.736 250.472 3.439
+2083.687 504.477 5.411 547.420 5.761 251.714 3.489
+2083.844 504.794 5.569 547.354 5.809 252.687 3.164
+2084.003 504.277 5.359 547.163 5.747 251.706 3.142
+2084.161 504.512 5.644 547.001 5.747 251.587 3.432
+2084.319 504.845 5.441 547.450 5.870 251.065 3.643
+2084.477 504.928 5.461 547.794 5.745 252.320 3.523
+2084.635 505.469 5.266 547.458 5.793 251.873 3.943
+2084.792 504.994 5.692 548.694 5.907 251.088 4.070
+2084.950 505.190 5.396 546.866 5.844 251.720 3.235
+2085.108 506.021 5.489 548.208 5.846 251.007 3.584
+2085.266 504.490 5.638 547.372 5.738 251.780 3.616
+2085.424 505.064 5.469 548.363 5.853 250.467 3.365
+2085.581 506.260 5.412 548.303 5.751 250.484 3.348
+2085.739 506.202 5.736 548.433 5.859 250.104 3.309
+2085.897 505.472 5.616 550.314 6.008 251.911 3.463
+2086.055 505.314 5.580 549.763 5.941 251.639 3.327
+2086.213 505.763 5.573 550.327 5.941 251.886 3.904
+2086.371 505.037 5.449 549.663 5.900 251.488 3.074
+2086.530 505.630 5.631 551.416 5.824 251.504 3.161
+2086.688 505.216 5.988 553.104 5.948 250.675 3.529
+2086.846 506.382 5.662 551.181 5.822 252.486 4.909
+2087.003 505.893 5.370 552.721 5.757 251.704 3.693
+2087.161 505.598 5.325 552.137 5.783 250.977 3.661
+2087.318 505.946 5.788 551.961 5.873 251.329 3.525
+2087.477 504.889 5.621 551.559 5.879 251.893 3.551
+2087.635 505.368 5.479 550.895 5.919 251.668 3.103
+2087.793 505.633 5.786 552.609 5.827 250.826 3.383
+2087.951 505.486 5.568 551.456 5.929 252.568 3.210
+2088.109 505.434 5.444 551.224 5.973 251.315 3.027
+2088.267 506.894 6.151 551.642 5.907 251.693 3.335
+2088.425 505.698 5.638 550.956 6.016 251.476 3.330
+2088.583 504.567 5.641 551.999 6.030 251.314 3.564
+2088.742 504.645 6.222 552.270 5.822 251.883 3.398
+2088.900 504.416 6.180 551.862 6.063 250.878 3.242
+2089.059 503.444 5.855 552.298 5.829 251.508 3.404
+2089.217 504.304 5.488 551.783 5.830 254.165 3.226
+2089.375 504.863 6.108 552.137 6.045 252.261 3.153
+2089.533 504.728 5.630 550.361 5.829 250.902 3.668
+2089.692 505.527 5.550 551.773 6.056 252.309 4.103
+2089.849 505.615 5.390 551.027 6.012 250.653 3.234
+2090.007 505.656 5.614 551.740 5.922 251.106 3.666
+2090.165 505.816 5.918 552.117 5.939 252.121 3.403
+2090.324 506.918 5.828 551.711 6.067 252.171 3.150
+2090.482 504.549 5.555 552.047 5.891 252.281 3.319
+2090.640 504.965 6.181 551.940 6.224 250.512 3.648
+2090.798 505.159 5.827 552.149 6.302 249.735 3.142
+2090.956 505.031 6.024 551.531 6.008 253.577 3.351
+2091.115 505.160 5.533 551.675 6.024 253.775 3.413
+2091.273 504.471 6.040 551.546 6.331 251.897 3.866
+2091.431 505.084 7.178 552.655 5.839 250.248 5.392
+2091.588 506.220 5.485 553.246 5.889 247.802 3.404
+2091.746 505.352 5.463 551.552 5.972 252.958 3.809
+2091.905 505.583 6.013 552.405 6.043 254.699 3.469
+2092.063 504.485 5.543 552.614 6.069 251.817 4.306
+2092.221 504.224 5.480 553.426 6.333 251.148 3.540
+2092.379 504.142 5.498 552.754 5.827 251.501 3.396
+2092.537 505.521 5.648 552.237 5.842 253.435 3.546
+2092.695 505.795 5.699 552.072 5.938 252.094 3.474
+2092.853 503.507 5.859 552.690 6.081 250.330 3.430
+2093.011 503.915 5.574 552.846 5.875 252.653 3.486
+2093.168 503.959 5.817 551.768 6.020 253.936 3.575
+2093.327 504.069 5.931 552.407 6.224 252.089 4.004
+2093.485 502.800 5.743 552.194 5.957 250.780 3.907
+2093.643 503.158 5.377 553.251 6.184 250.807 3.352
+2093.801 505.261 5.529 552.522 5.936 251.558 3.190
+2093.960 505.622 5.818 551.535 5.984 251.725 3.214
+2094.118 505.666 6.130 553.735 5.871 253.577 3.670
+2094.276 503.616 5.969 552.997 6.009 249.995 3.434
+2094.435 503.376 6.166 551.830 6.075 251.049 3.199
+2094.594 503.973 5.686 552.708 6.007 253.230 3.564
+2094.752 503.149 5.506 551.797 5.822 254.822 3.346
+2094.911 502.351 5.438 552.738 6.120 251.448 3.441
+2095.068 503.693 5.651 553.117 5.981 250.444 3.973
+2095.226 504.176 5.679 553.191 5.998 250.614 3.618
+2095.383 505.411 5.561 552.951 5.940 253.306 3.298
+2095.542 505.604 5.410 552.889 5.983 254.183 3.513
+2095.700 506.096 5.958 553.598 5.942 250.671 3.002
+2095.858 505.750 5.790 553.726 5.894 248.096 3.216
+2096.017 503.887 5.951 553.497 6.232 250.470 4.741
+2096.175 503.588 6.262 552.065 6.629 250.864 5.512
+2096.333 502.625 5.870 552.560 5.905 253.468 3.618
+2096.491 500.596 6.171 553.205 6.284 249.994 6.055
+2096.649 501.065 5.804 553.952 6.509 251.769 4.053
+2096.806 501.540 5.942 552.789 5.915 257.207 3.454
+2096.965 503.115 5.424 552.698 5.882 252.552 5.493
+2097.123 503.871 6.042 552.677 5.768 249.745 3.044
+2097.282 505.388 5.558 552.786 6.033 249.797 3.842
+2097.440 505.753 5.891 552.637 5.885 251.107 3.343
+2097.598 506.207 5.508 552.366 6.175 253.641 3.969
+2097.756 504.932 5.766 552.213 6.442 252.546 3.400
+2097.914 503.889 5.788 552.852 5.932 250.805 3.199
+2098.073 501.958 5.826 552.468 5.936 250.698 3.504
+2098.231 503.249 5.378 553.174 6.040 254.426 3.098
+2098.389 503.342 5.667 553.321 5.943 253.404 4.594
+2098.547 502.663 5.937 552.853 5.861 252.164 3.161
+2098.706 504.046 5.618 552.758 5.943 255.921 3.343
+2098.865 507.020 5.530 552.087 5.944 257.109 3.618
+2099.023 504.740 6.050 552.841 6.363 248.161 3.508
+2099.181 504.817 5.509 552.988 5.869 246.391 3.429
+2099.339 505.128 5.966 553.949 6.137 249.073 3.536
+2099.497 506.311 5.882 553.579 6.553 252.220 3.975
+2099.655 504.083 6.801 551.625 6.524 252.742 4.655
+2099.813 505.160 5.949 552.936 6.263 259.977 4.163
+2099.972 505.861 5.687 552.749 6.046 253.479 4.252
+2100.131 503.068 5.927 553.817 6.095 251.134 3.575
+2100.289 502.230 6.568 553.338 6.421 250.881 4.185
+2100.447 506.832 5.615 551.813 6.316 248.998 3.693
+2100.606 502.688 7.512 553.168 6.134 243.440 3.945
+2100.763 504.096 5.631 553.121 5.929 251.954 5.057
+2100.921 505.530 6.414 552.571 6.163 258.219 5.195
+2101.079 504.405 6.031 551.525 6.001 258.272 3.818
+2101.238 504.604 5.874 552.265 6.294 254.802 4.375
+2101.396 505.996 5.498 552.722 5.993 250.018 3.583
+2101.554 507.940 6.070 553.217 5.933 249.160 4.608
+2101.713 505.259 6.600 552.912 6.054 249.041 4.603
+2101.871 509.252 5.867 552.509 5.999 254.030 3.651
+2102.029 508.222 5.970 552.615 6.020 250.510 3.771
+2102.186 507.402 5.732 551.116 6.187 252.175 4.254
+2102.345 506.334 6.805 552.401 6.228 253.341 3.465
+2102.503 503.923 7.139 552.314 6.811 245.893 4.714
+2102.661 504.439 7.449 553.083 6.444 248.388 9.312
+2102.818 506.484 7.525 552.570 6.583 251.893 6.212
+2102.976 506.974 9.374 552.025 6.809 251.748 4.490
+2103.133 509.749 6.938 552.240 6.779 253.077 3.739
+2103.291 515.047 6.078 550.032 6.224 248.620 4.842
+2103.450 507.800 6.138 551.580 6.465 254.916 4.624
+2103.609 509.788 6.856 551.595 5.946 254.439 4.945
+2103.766 505.047 5.656 550.646 6.180 251.034 4.138
+2103.924 505.570 5.622 549.926 5.948 255.020 3.556
+2104.083 505.065 8.884 550.349 6.483 246.280 5.567
+2104.240 506.530 5.681 551.223 7.232 248.512 5.279
+2104.398 506.025 7.896 550.232 8.153 259.575 5.672
+2104.556 508.750 7.805 549.722 6.063 262.285 4.353
+2104.714 509.667 6.977 550.337 6.700 247.962 4.289
+2104.871 508.876 6.367 549.773 5.956 241.689 4.298
+2105.029 508.888 8.289 549.947 7.640 248.196 4.531
+2105.186 506.628 6.079 550.609 6.598 250.361 3.860
+2105.344 506.926 5.812 548.876 6.323 251.653 3.812
+2105.502 509.109 5.808 548.998 6.330 253.426 3.984
+2105.661 506.711 7.181 545.990 6.711 256.054 4.840
+2105.820 503.137 5.899 547.789 6.055 251.950 3.477
+2105.978 501.771 5.875 548.858 6.485 252.259 3.919
+2106.136 500.147 6.162 550.178 6.610 249.422 4.383
+2106.294 502.861 6.074 549.011 6.587 239.184 4.039
+2106.452 505.858 7.994 545.450 9.510 246.951 7.921
+2106.609 506.488 5.961 545.984 6.661 263.699 3.629
+2106.769 502.464 6.593 547.909 6.286 262.617 4.300
+2106.928 502.164 5.606 550.129 5.915 253.436 3.595
+2107.086 501.941 7.636 549.191 6.038 237.784 4.055
+2107.243 503.079 7.191 546.872 5.984 249.497 3.934
+2107.401 500.720 7.008 547.018 6.297 259.545 3.895
+2107.560 502.627 6.380 547.600 6.156 262.335 4.085
+2107.717 501.956 6.012 547.276 6.553 247.463 4.627
+2107.875 502.949 6.900 547.082 6.322 243.044 5.026
+2108.033 506.909 5.760 548.550 6.000 254.170 3.443
+2108.191 504.309 6.281 547.865 6.169 256.371 3.800
+2108.350 502.343 5.641 547.038 5.789 244.333 4.464
+2108.507 502.083 5.866 546.080 5.958 242.853 4.288
+2108.665 507.140 5.754 545.260 6.006 267.078 4.361
+2108.825 504.591 6.022 543.822 6.443 266.970 4.739
+2108.984 503.085 5.626 546.968 5.885 240.429 7.449
+2109.141 501.910 7.267 549.059 6.292 224.794 6.227
+2109.298 501.749 6.828 545.070 6.053 252.847 3.918
+2109.457 506.377 6.066 542.250 6.483 278.238 4.845
+2109.617 501.733 6.954 543.642 6.214 267.412 5.078
+2109.774 495.537 10.527 548.266 7.070 225.914 7.083
+2109.931 497.545 6.581 546.512 6.168 235.749 3.463
+2110.090 502.105 8.059 545.075 6.605 256.827 5.564
+2110.249 505.331 7.169 544.040 6.549 270.478 5.440
+2110.407 503.783 6.342 545.460 5.951 252.404 4.191
+2110.565 504.047 7.929 545.624 6.821 246.884 4.699
+2110.722 504.800 6.103 542.966 6.180 255.558 4.582
+2110.881 511.078 6.333 545.289 5.906 248.815 5.557
+2111.039 519.250 16.925 547.913 10.515 231.528 17.675
+2111.194 514.692 7.173 545.559 6.868 249.695 4.789
+2111.353 513.547 6.597 544.755 7.671 262.566 5.770
+2111.512 514.095 6.879 546.417 6.423 244.275 6.331
+2111.670 511.090 9.589 548.124 6.310 240.852 8.174
+2111.827 501.410 7.330 544.551 7.221 250.838 4.290
+2111.985 507.704 9.551 540.065 7.013 267.008 5.278
+2112.144 510.677 8.466 542.980 7.677 250.520 5.789
+2112.302 504.206 5.975 545.879 6.725 247.045 5.154
+2112.460 505.932 9.992 544.208 7.918 247.170 7.212
+2112.617 512.499 10.515 545.692 7.475 255.401 5.373
+2112.775 511.865 10.783 542.876 6.778 254.404 4.063
+2112.932 515.628 6.875 544.278 6.233 243.534 4.268
+2113.091 514.416 6.565 543.752 5.870 250.005 5.382
+2113.249 514.794 6.192 540.847 6.169 253.170 4.473
+2113.408 511.107 6.276 543.208 6.546 249.571 4.834
+2113.565 509.001 7.499 545.992 6.464 249.595 4.923
+2113.724 514.570 10.152 541.759 8.968 251.025 4.880
+2113.882 504.395 9.564 544.887 8.142 254.050 6.239
+2114.039 520.014 7.842 545.238 7.636 245.470 12.523
+2114.197 513.690 10.899 549.312 6.624 246.634 5.624
+2114.354 512.166 8.404 542.223 8.920 253.886 6.567
+2114.512 515.271 6.989 544.322 6.427 250.848 3.823
+2114.671 513.622 7.145 544.073 6.091 246.718 3.757
+2114.829 509.336 6.313 543.840 5.973 245.097 3.800
+2114.987 509.083 7.053 542.018 6.324 251.550 4.547
+2115.145 511.460 6.183 541.660 6.330 257.325 3.644
+2115.305 513.684 12.459 544.306 12.087 258.383 14.806
+2115.462 514.526 10.156 545.073 6.655 250.073 4.639
+2115.620 509.525 7.859 545.710 6.423 246.030 5.831
+2115.779 517.975 7.436 540.337 7.183 255.780 7.076
+2115.937 506.819 11.615 538.823 7.008 248.117 11.318
+2116.095 509.698 12.143 541.478 6.698 246.711 13.509
+2116.252 501.737 10.412 539.894 7.071 251.897 6.743
+2116.409 500.597 8.385 541.779 6.705 255.548 6.210
+2116.567 501.235 9.033 543.907 7.198 248.415 6.568
+2116.723 497.102 7.287 543.809 7.753 250.574 4.136
+2116.880 495.221 5.993 540.308 6.272 249.945 3.955
+2117.039 499.302 6.591 540.283 5.873 258.959 3.434
+2117.197 495.333 6.846 541.752 5.989 247.279 5.398
+2117.355 494.483 8.432 540.847 8.919 244.032 6.230
+2117.512 501.004 7.471 542.308 6.318 247.050 4.430
+2117.671 501.710 9.069 543.323 7.273 258.280 7.011
+2117.828 498.397 10.796 544.783 8.211 251.852 8.938
+2117.984 484.294 6.365 542.807 6.524 244.128 5.132
+2118.142 484.282 10.566 542.678 6.521 244.131 6.483
+2118.300 497.472 6.964 540.816 6.635 260.951 4.153
+2118.460 497.054 8.048 541.328 6.681 266.469 5.316
+2118.617 499.490 7.586 544.073 6.526 253.424 3.771
+2118.776 493.864 11.312 543.820 6.682 241.194 6.668
+2118.933 489.718 7.452 544.258 6.376 251.441 5.014
+2119.090 490.547 7.418 542.162 6.106 257.994 3.735
+2119.249 480.325 6.699 540.261 6.002 250.159 4.249
+2119.407 488.323 6.865 544.382 6.155 252.491 7.129
+2119.565 482.923 7.093 544.713 5.986 252.934 6.033
+2119.723 483.479 6.369 540.027 6.529 260.199 7.069
+2119.881 482.334 6.707 542.050 6.458 257.402 3.708
+2120.040 486.683 6.566 539.090 5.985 256.654 6.972
+2120.198 485.996 6.810 541.431 6.951 253.306 5.895
+2120.356 492.630 6.426 541.974 6.118 248.353 5.444
+2120.514 492.516 6.137 544.259 6.208 241.123 4.254
+2120.672 492.705 6.417 544.162 6.305 242.471 7.705
+2120.830 494.567 8.194 544.001 7.156 256.644 6.361
+2120.989 487.155 8.115 541.130 7.510 257.586 4.716
+2121.147 486.351 8.919 542.271 6.243 254.975 4.132
+2121.305 491.293 8.169 543.122 6.468 252.219 5.978
+2121.463 488.183 6.149 541.441 5.987 242.572 5.173
+2121.622 490.201 6.183 543.764 6.125 259.565 6.763
+2121.781 499.322 5.901 541.647 6.907 265.295 4.215
+2121.939 501.313 6.567 544.916 6.111 257.542 5.624
+2122.097 494.203 7.745 544.309 6.154 237.435 7.313
+2122.254 494.252 7.233 546.753 6.117 241.944 5.571
+2122.413 503.832 6.915 541.707 7.012 261.039 5.552
+2122.572 500.518 9.005 544.457 6.641 256.500 6.413
+2122.728 497.595 8.589 543.794 6.274 239.195 4.222
+2122.887 497.815 6.579 540.028 6.836 251.861 5.286
+2123.046 501.158 6.765 542.220 6.257 265.028 5.322
+2123.205 501.101 8.133 540.312 6.404 253.510 3.850
+2123.362 500.861 6.785 542.273 6.253 243.595 4.386
+2123.520 502.668 8.857 543.162 6.801 247.815 6.705
+2123.677 506.466 8.477 541.041 6.225 255.918 5.428
+2123.836 504.104 7.037 544.440 6.425 251.319 5.474
+2123.994 506.921 8.244 541.064 6.401 251.753 3.962
+2124.151 505.869 7.512 539.420 6.823 251.027 4.430
+2124.308 500.768 6.344 540.534 7.519 246.010 5.543
+2124.467 502.107 8.292 541.235 7.668 250.870 6.009
+2124.624 502.131 6.960 541.042 7.538 256.458 4.911
+2124.782 501.141 6.955 541.780 6.518 257.454 3.918
+2124.941 502.461 6.715 543.107 6.403 254.424 5.432
+2125.098 504.054 6.116 544.211 6.060 242.814 4.721
+2125.257 503.000 6.378 541.712 6.629 249.488 4.302
+2125.414 505.220 6.942 541.157 6.044 260.104 4.125
+2125.572 505.972 8.307 541.611 6.476 254.621 4.152
+2125.730 503.279 8.178 545.086 8.381 241.396 7.562
+2125.886 505.602 7.678 541.841 6.095 246.863 4.014
+2126.044 501.656 12.512 538.578 7.224 252.448 6.118
+2126.202 499.036 6.872 539.595 6.839 259.354 5.597
+2126.361 504.240 8.273 540.596 7.763 252.393 6.086
+2126.518 499.792 7.399 537.666 6.569 255.023 4.034
+2126.675 495.417 8.419 538.416 6.522 246.350 9.078
+2126.832 503.304 9.596 541.834 6.877 250.283 5.922
+2126.990 513.393 8.985 540.678 7.149 250.732 9.743
+2127.147 502.343 8.820 539.026 7.286 244.857 6.985
+2127.303 504.253 8.447 539.750 6.577 254.278 4.822
+2127.461 504.962 7.266 539.837 6.326 247.982 6.665
+2127.618 502.599 7.109 540.248 6.403 247.009 4.527
+2127.778 501.236 6.707 539.842 7.225 253.760 5.127
+2127.936 504.222 8.502 539.648 6.323 257.567 4.021
+2128.094 496.882 7.281 542.796 8.184 247.995 5.581
+2128.250 501.958 6.827 541.088 6.886 247.319 4.574
+2128.408 506.399 6.402 540.000 6.496 253.063 4.166
+2128.566 504.214 11.992 540.230 6.810 248.000 8.707
+2128.723 505.562 8.225 540.282 8.943 246.160 6.121
+2128.880 502.385 7.683 539.352 7.690 251.241 6.671
+2129.038 510.683 13.245 541.493 7.439 240.582 15.197
+2129.195 500.666 6.174 539.844 6.708 262.045 8.756
+2129.352 504.746 13.441 541.398 7.285 248.670 11.520
+2129.509 504.737 10.734 540.514 7.103 253.716 7.445
+2129.667 498.817 10.156 541.985 6.746 246.077 5.225
+2129.824 499.778 8.296 540.239 6.663 250.060 5.868
+2129.982 498.977 7.361 540.322 6.112 254.340 4.875
+2130.141 501.559 7.494 540.043 6.812 259.103 4.397
+2130.299 500.745 7.811 541.050 7.066 248.201 4.942
+2130.456 502.387 6.609 540.290 6.431 244.952 3.938
+2130.614 496.573 6.771 538.893 6.624 244.309 7.632
+2130.772 510.055 8.835 539.218 6.861 258.643 9.682
+2130.928 509.550 10.692 540.602 6.348 252.696 6.748
+2131.086 499.425 6.301 538.936 6.244 250.387 5.488
+2131.245 514.404 13.134 538.099 8.575 241.483 6.834
+2131.402 505.144 7.824 540.911 7.011 253.244 6.500
+2131.560 499.361 15.957 539.619 7.845 254.162 7.579
+2131.715 503.693 7.704 538.006 7.033 252.471 6.083
+2131.873 498.676 7.391 539.000 6.673 247.684 4.596
+2132.030 496.526 6.497 539.810 6.978 248.716 4.516
+2132.189 500.775 8.110 539.278 7.337 260.247 6.585
+2132.347 496.617 6.379 538.082 8.381 258.462 5.469
+2132.505 496.666 7.473 540.310 7.540 244.614 6.683
+2132.662 492.776 6.798 538.953 7.135 242.226 4.455
+2132.820 501.717 7.946 538.049 7.466 253.992 6.965
+2132.977 499.797 8.807 537.080 8.474 261.829 10.438
+2133.134 501.727 9.064 542.090 7.003 246.188 7.993
+2133.290 500.267 8.371 540.081 7.437 246.761 8.312
+2133.446 501.912 7.669 538.680 7.139 242.457 4.774
+2133.604 497.749 8.347 537.016 6.993 258.644 5.090
+2133.762 502.477 6.883 536.870 6.199 259.656 6.667
+2133.920 496.244 10.711 539.548 6.878 251.086 5.930
+2134.078 497.702 7.721 539.725 6.613 245.230 5.455
+2134.235 496.167 9.827 539.687 8.443 245.782 7.748
+2134.392 496.051 8.729 539.466 7.132 256.197 5.055
+2134.550 491.560 9.872 538.504 12.636 258.622 10.823
+2134.707 495.695 7.286 539.365 7.560 254.876 6.102
+2134.864 497.567 6.696 539.543 7.678 240.938 5.170
+2135.021 496.145 9.794 541.195 7.758 242.679 4.703
+2135.179 499.871 7.834 538.692 6.789 260.916 6.146
+2135.337 499.128 9.032 539.497 6.874 258.719 6.397
+2135.495 498.381 7.629 540.345 6.939 248.947 4.998
+2135.653 499.933 7.272 541.003 6.985 236.839 7.466
+2135.809 502.399 7.435 541.830 6.602 248.848 6.286
+2135.966 494.184 11.097 539.908 7.171 253.548 5.554
+2136.125 499.001 6.519 540.099 11.393 257.155 8.433
+2136.282 495.850 6.855 540.131 7.901 250.601 5.692
+2136.440 495.568 9.087 542.131 9.547 245.436 4.974
+2136.597 494.475 6.111 541.771 8.349 249.364 5.142
+2136.756 496.834 10.824 538.667 7.314 258.953 8.355
+2136.914 494.398 9.275 539.106 7.953 256.309 7.568
+2137.071 495.954 10.909 541.461 7.385 248.723 6.302
+2137.228 494.579 6.764 542.434 6.532 246.307 7.026
+2137.385 498.125 9.984 540.814 8.220 256.243 5.991
+2137.544 495.081 9.430 540.008 9.142 254.132 7.167
+2137.702 496.240 9.356 543.100 7.481 249.701 7.381
+2137.858 499.152 6.615 543.951 7.723 246.617 5.031
+2138.016 498.881 8.041 542.529 6.682 250.226 5.389
+2138.174 497.728 10.184 541.405 6.658 251.102 12.408
+2138.331 496.307 6.093 541.044 6.738 250.991 4.455
+2138.490 496.863 9.833 540.320 8.133 251.529 5.637
+2138.647 497.178 8.791 540.703 7.136 251.565 4.260
+2138.804 493.261 7.759 542.267 8.718 252.215 8.732
+2138.962 495.312 8.146 540.342 8.683 256.352 7.496
+2139.118 496.043 12.286 542.073 8.231 252.553 9.602
+2139.275 494.600 7.739 540.790 7.752 247.855 5.916
+2139.432 496.676 8.992 542.898 7.191 247.298 6.530
+2139.589 495.936 6.268 542.219 7.433 260.173 5.805
+2139.749 497.029 7.134 541.732 7.008 256.531 9.524
+2139.906 492.880 6.470 540.247 7.297 243.725 5.427
+2140.064 503.818 9.010 542.632 6.832 243.657 11.489
+2140.221 500.118 8.862 541.056 7.114 256.676 8.692
+2140.379 497.111 7.926 541.970 7.903 249.836 5.134
+2140.536 495.781 7.923 541.669 8.837 250.218 5.918
+2140.693 492.837 7.517 540.486 10.154 247.742 8.460
+2140.850 495.778 10.401 542.364 9.691 255.347 9.335
+2141.007 492.427 11.824 542.833 9.016 255.733 9.913
+2141.164 494.314 9.465 543.588 6.158 254.127 7.310
+2141.322 496.013 8.758 543.475 7.732 247.241 6.707
+2141.479 494.740 10.164 544.944 9.636 248.542 9.314
+2141.636 494.447 7.084 546.429 7.574 255.615 5.204
+2141.794 497.504 8.315 547.504 8.456 254.396 8.029
+2141.950 498.125 10.721 546.805 7.259 249.983 7.026
+2142.107 492.621 9.365 547.998 8.724 241.209 8.479
+2142.264 494.776 6.460 545.800 7.796 254.882 4.932
+2142.423 496.647 18.593 547.708 12.632 254.898 12.855
+2142.579 490.946 8.490 548.217 7.294 246.189 5.891
+2142.737 492.699 7.934 547.292 7.232 248.661 4.608
+2142.895 495.307 6.455 545.612 9.173 258.346 8.110
+2143.053 495.613 7.887 546.296 8.003 258.153 6.891
+2143.210 493.776 6.176 546.573 7.049 251.111 5.224
+2143.368 493.667 6.730 546.425 6.962 250.391 6.853
+2143.526 495.906 8.202 546.904 8.356 249.603 7.356
+2143.682 498.499 8.461 546.059 8.295 254.066 6.501
+2143.839 498.975 7.839 545.640 7.108 248.740 10.393
+2143.997 498.439 9.362 548.916 7.547 245.487 8.524
+2144.154 500.394 7.633 546.719 7.153 250.214 4.754
+2144.312 499.593 7.333 544.597 7.526 253.802 7.956
+2144.469 498.415 23.249 546.216 13.483 250.058 12.872
+2144.625 497.024 8.583 545.902 7.718 254.780 5.343
+2144.784 495.520 8.056 545.199 7.403 257.647 5.807
+2144.942 496.985 9.673 545.412 7.363 253.876 9.336
+2145.099 493.589 8.960 546.674 7.151 246.128 6.633
+2145.256 497.775 9.526 545.656 7.461 256.741 8.417
+2145.414 499.107 9.762 546.246 8.452 258.387 9.237
+2145.571 498.731 8.553 546.312 7.880 244.903 6.335
+2145.727 501.147 9.937 547.373 8.648 243.319 7.151
+2145.884 504.491 6.911 544.913 8.615 257.713 8.765
+2146.042 501.854 8.780 545.349 9.208 257.417 5.358
+2146.200 502.198 10.491 547.893 7.026 251.964 6.823
+2146.359 506.592 9.348 547.439 8.086 246.839 9.645
+2146.514 499.045 7.189 547.274 7.485 251.318 7.340
+2146.672 501.870 8.157 546.462 6.551 261.003 5.250
+2146.830 502.648 6.537 547.364 7.502 255.170 6.636
+2146.987 498.096 6.713 549.673 6.766 242.101 5.859
+2147.145 498.381 7.061 547.816 7.954 250.411 6.824
+2147.302 498.493 7.804 547.218 7.227 263.664 5.089
+2147.461 504.184 7.882 549.142 6.527 251.976 5.051
+2147.618 503.601 7.996 548.751 7.680 249.869 7.397
+2147.774 499.966 8.861 546.717 7.603 244.338 8.316
+2147.931 505.149 6.511 548.647 6.739 252.303 4.026
+2148.089 506.301 8.760 548.046 8.252 263.033 8.054
+2148.246 506.703 13.640 549.650 7.278 250.690 7.308
+2148.403 501.957 9.767 548.866 8.388 240.816 10.124
+2148.559 501.719 6.748 546.498 7.176 252.078 5.880
+2148.718 501.947 7.242 546.115 7.685 264.580 6.707
+2148.876 505.009 8.978 549.271 8.431 256.615 7.461
+2149.032 494.960 7.761 548.612 9.070 234.016 6.047
+2149.190 503.139 8.564 546.836 8.100 250.500 6.215
+2149.347 502.801 7.951 545.018 8.408 267.325 6.425
+2149.505 502.848 10.959 546.900 7.670 263.733 8.533
+2149.663 501.768 8.462 547.749 7.039 243.407 7.644
+2149.819 498.657 7.298 548.437 6.522 240.034 5.124
+2149.977 517.556 8.893 546.364 7.689 256.390 8.203
+2150.134 506.175 9.113 547.273 9.279 248.523 15.457
+2150.290 500.051 8.284 549.922 7.708 234.355 13.798
+2150.447 504.140 7.869 544.299 8.483 258.413 6.061
+2150.605 508.061 6.498 543.423 7.112 259.194 6.388
+2150.763 496.240 6.793 547.294 6.250 243.331 7.057
+2150.920 494.922 6.785 547.363 7.534 242.613 5.107
+2151.078 502.829 7.540 544.093 6.466 260.276 5.881
+2151.238 502.828 7.642 542.501 7.767 258.742 9.994
+2151.395 502.388 6.759 546.705 9.408 232.907 16.734
+2151.552 505.703 11.580 547.067 7.555 243.799 10.067
+2151.710 509.867 7.989 543.130 7.040 253.688 5.243
+2151.867 504.908 9.020 544.521 6.816 246.836 8.188
+2152.023 504.699 9.273 543.665 7.113 248.258 6.322
+2152.180 507.737 6.850 545.926 7.672 250.882 4.771
+2152.338 506.857 6.821 542.659 7.272 257.818 4.644
+2152.496 500.078 7.901 542.516 8.129 258.318 6.254
+2152.653 503.870 6.830 542.365 7.032 254.453 6.206
+2152.811 501.108 6.694 542.593 7.570 240.404 6.327
+2152.968 508.851 7.721 543.676 7.499 258.114 6.905
+2153.126 508.918 8.508 544.376 6.613 257.961 6.858
+2153.285 504.249 8.194 542.483 8.180 240.849 9.770
+2153.440 504.032 8.899 543.724 6.235 243.978 7.089
+2153.598 514.420 11.114 544.337 6.725 259.309 7.053
+2153.756 509.014 8.833 544.903 8.902 246.713 7.449
+2153.912 506.840 9.728 543.479 8.521 243.417 8.314
+2154.069 506.778 7.619 543.244 6.876 260.224 5.995
+2154.228 503.227 7.319 544.072 8.191 259.812 8.150
+2154.385 502.352 6.760 545.740 6.811 245.218 5.179
+2154.542 504.563 8.071 545.377 7.390 240.722 8.584
+2154.699 510.435 8.410 542.413 8.197 258.527 10.091
+2154.856 509.354 7.061 543.534 7.404 258.115 8.693
+2155.012 502.933 7.348 545.215 7.803 243.491 4.984
+2155.169 509.469 10.254 544.712 9.470 241.754 7.147
+2155.326 507.964 7.579 542.647 6.677 253.197 5.799
+2155.486 503.999 6.834 544.046 8.068 264.572 4.956
+2155.644 509.780 9.527 545.150 9.272 254.225 12.293
+2155.801 508.307 10.441 542.561 7.289 246.112 8.806
+2155.958 501.223 7.787 541.815 7.533 256.191 8.596
+2156.116 500.872 6.981 543.848 6.766 253.571 7.154
+2156.273 504.158 6.932 543.748 6.857 244.305 6.168
+2156.430 505.101 7.139 544.837 6.736 249.843 6.200
+2156.588 508.151 7.296 542.018 6.914 257.448 5.430
+2156.747 507.271 8.139 544.910 6.236 249.404 7.656
+2156.903 502.372 7.119 545.329 7.507 244.734 5.457
+2157.061 507.863 6.916 541.943 7.228 257.837 3.904
+2157.219 509.778 10.382 542.999 6.560 249.958 11.863
+2157.376 507.217 6.966 543.680 7.198 240.349 5.883
+2157.534 506.812 8.125 543.306 6.575 254.113 7.761
+2157.692 502.888 7.193 542.383 7.530 260.991 6.577
+2157.851 503.418 6.498 542.413 6.372 251.959 6.059
+2158.009 501.934 7.203 544.044 6.933 240.679 4.714
+2158.167 506.209 6.745 543.780 6.278 247.516 4.337
+2158.325 503.342 6.841 543.367 6.805 257.255 5.259
+2158.484 505.813 6.528 544.763 6.345 242.822 8.414
+2158.640 508.478 8.345 542.467 7.465 247.808 4.455
+2158.797 506.614 6.415 541.504 6.246 259.038 5.004
+2158.956 505.536 6.740 544.105 7.543 245.030 4.707
+2159.113 504.465 6.432 543.951 7.038 242.640 4.009
+2159.271 510.784 7.041 541.379 6.621 259.926 5.230
+2159.429 510.477 7.490 543.453 6.996 252.469 6.843
+2159.586 508.834 6.700 544.284 6.589 242.604 4.434
+2159.745 508.268 6.871 544.602 6.881 249.556 7.814
+2159.902 506.372 6.437 543.646 6.525 264.115 6.373
+2160.061 506.553 6.247 544.186 6.717 250.631 4.087
+2160.219 505.855 6.565 545.091 6.566 240.006 4.480
+2160.376 505.688 6.705 544.431 6.808 252.520 5.132
+2160.534 508.886 6.532 544.164 6.973 254.945 4.651
+2160.692 501.938 8.543 545.131 7.034 258.169 6.159
+2160.850 506.499 8.196 543.711 8.077 253.951 6.616
+2161.007 504.685 6.366 542.587 7.578 241.929 5.248
+2161.165 504.586 5.805 544.175 6.623 253.809 6.759
+2161.323 503.695 6.070 543.141 6.346 249.388 6.248
+2161.481 502.707 7.142 544.271 6.249 239.543 3.672
+2161.639 502.697 6.859 543.232 6.754 254.705 6.929
+2161.797 496.977 7.349 541.392 5.937 257.807 5.334
+2161.956 498.709 6.920 541.103 8.370 256.278 5.594
+2162.114 502.987 8.785 543.941 10.410 242.092 7.467
+2162.272 504.509 7.874 544.319 7.062 246.470 4.477
+2162.429 499.015 6.955 545.183 6.880 253.694 5.048
+2162.587 499.230 7.409 545.491 7.502 250.246 5.555
+2162.745 502.882 7.148 542.444 6.809 250.682 6.015
+2162.902 502.748 6.999 541.984 6.486 247.426 4.185
+2163.060 503.527 8.582 539.189 7.052 255.454 4.915
+2163.218 498.815 7.017 542.901 6.216 252.834 5.555
+2163.376 498.158 6.636 543.379 7.263 248.198 4.588
+2163.533 497.961 6.962 542.373 6.896 254.022 4.090
+2163.692 497.479 8.213 542.443 7.108 258.520 5.461
+2163.849 497.904 7.298 542.914 6.635 246.545 7.145
+2164.007 502.599 6.012 542.509 7.046 253.525 4.173
+2164.165 504.276 6.615 541.395 6.603 251.585 5.900
+2164.322 503.692 6.611 544.924 6.566 243.985 4.282
+2164.481 503.047 8.865 543.509 7.381 254.809 6.481
+2164.638 497.470 7.768 542.285 6.525 256.008 7.336
+2164.796 494.094 9.581 541.562 6.787 241.250 4.980
+2164.952 494.971 6.151 543.675 7.307 251.492 5.496
+2165.111 499.529 7.255 540.796 6.878 269.784 6.125
+2165.269 499.635 10.591 539.998 7.681 256.117 8.079
+2165.426 496.436 7.073 541.440 6.580 236.681 4.077
+2165.584 505.604 9.556 539.504 8.355 253.946 9.163
+2165.741 509.336 12.001 541.095 8.695 259.539 7.742
+2165.898 500.743 12.492 542.741 8.340 236.995 9.923
+2166.054 498.667 11.448 541.867 8.157 244.729 8.022
+2166.211 500.816 8.961 538.488 6.576 269.367 4.481
+2166.370 498.818 9.111 540.244 7.235 251.373 7.820
+2166.527 498.758 8.693 543.092 7.126 245.303 8.630
+2166.684 500.557 6.938 540.470 6.591 250.003 3.965
+2166.842 504.635 10.270 540.224 8.008 251.210 6.985
+2166.999 503.846 10.219 542.552 9.147 241.172 6.486
+2167.156 502.498 7.659 540.765 6.562 255.011 4.740
+2167.314 505.335 6.285 541.457 7.034 254.790 5.897
+2167.472 506.813 9.726 543.474 8.896 245.757 5.806
+2167.629 504.828 7.287 543.094 6.440 251.457 5.223
+2167.787 501.298 10.503 543.101 9.314 245.694 5.283
+2167.945 498.933 7.724 542.871 6.379 245.386 5.055
+2168.103 502.269 7.182 541.468 9.448 261.393 6.008
+2168.262 499.812 8.149 539.344 8.410 255.623 5.578
+2168.419 502.008 6.515 541.033 6.842 250.336 6.488
+2168.576 504.610 9.590 543.720 7.016 247.653 5.377
+2168.734 505.926 9.413 540.787 7.207 252.426 4.947
+2168.892 506.379 7.570 544.297 7.439 248.064 6.631
+2169.049 503.403 10.493 542.143 10.050 248.740 6.883
+2169.205 500.104 7.783 539.431 8.186 252.477 4.642
+2169.362 499.361 8.129 541.834 7.577 248.554 5.391
+2169.519 501.763 7.175 542.238 8.202 247.145 5.163
+2169.677 503.287 6.012 541.332 6.621 263.351 4.175
+2169.837 501.742 6.681 541.093 6.631 260.863 4.293
+2169.995 498.887 6.947 541.991 6.991 243.808 5.261
+2170.152 498.488 6.961 542.819 8.874 239.738 6.768
+2170.309 498.174 7.673 540.388 8.141 251.487 7.183
+2170.466 500.321 6.658 542.033 6.314 258.094 4.990
+2170.625 503.413 8.454 540.720 6.386 258.490 5.265
+2170.783 505.034 6.631 542.937 7.217 241.764 4.281
+2170.941 501.250 10.083 542.529 7.168 241.197 6.929
+2171.098 505.412 10.286 542.215 8.391 254.612 5.518
+2171.256 502.064 8.147 540.792 6.249 254.336 7.419
+2171.414 497.730 9.909 541.377 6.316 250.063 4.076
+2171.571 498.077 7.178 539.743 6.908 253.190 5.216
+2171.729 500.850 11.451 540.677 9.765 255.231 5.988
+2171.885 502.818 7.766 542.216 8.193 248.242 7.960
+2172.042 506.278 7.579 540.362 7.035 248.022 6.895
+2172.199 502.952 7.264 539.453 6.689 258.370 4.581
+2172.358 498.679 9.005 544.214 6.772 241.173 4.882
+2172.514 502.676 7.666 542.592 7.404 241.931 5.146
+2172.673 507.506 7.073 537.716 6.422 273.999 4.553
+2172.832 503.745 8.821 542.377 8.560 242.930 9.060
+2172.987 504.197 9.845 543.693 6.932 228.589 5.954
+2173.145 509.252 9.940 541.787 7.411 266.825 8.569
+2173.302 502.732 7.197 539.157 7.327 254.298 5.397
+2173.460 494.857 7.103 543.511 9.028 227.503 4.727
+2173.618 502.868 8.389 539.735 6.918 272.245 4.682
+2173.777 501.778 7.031 540.097 7.470 261.242 6.584
+2173.934 486.607 8.359 542.331 7.958 232.572 5.850
+2174.092 508.296 7.894 539.733 6.350 261.145 6.872
+2174.250 507.972 9.899 540.147 6.913 264.751 8.043
+2174.407 502.139 7.782 544.491 7.296 236.687 8.099
+2174.564 502.071 7.212 543.424 8.530 241.896 6.469
+2174.721 502.070 10.862 540.894 9.213 252.638 7.107
+2174.878 498.560 7.900 543.478 9.024 255.696 5.998
+2175.035 497.595 6.900 544.514 8.244 247.316 7.408
+2175.192 498.446 9.894 538.955 7.308 259.253 5.052
+2175.350 498.034 7.481 543.159 8.006 257.042 8.542
+2175.508 495.700 7.613 544.051 8.847 233.690 6.044
+2175.665 501.037 7.494 542.230 9.432 245.526 5.478
+2175.823 504.700 8.265 541.502 9.450 260.445 5.083
+2175.981 503.537 5.887 542.515 7.115 260.314 5.084
+2176.139 501.985 9.532 544.215 6.479 249.223 6.619
+2176.296 500.089 6.351 542.762 6.147 244.152 4.476
+2176.454 502.190 7.548 546.367 8.176 246.101 7.530
+2176.611 507.061 6.655 547.663 6.014 256.421 3.534
+2176.769 506.580 7.062 544.186 6.688 264.404 6.800
+2176.927 501.725 9.945 546.081 7.252 246.684 4.493
+2177.084 497.287 7.373 544.200 7.775 243.636 5.200
+2177.242 503.102 7.742 547.722 7.489 259.776 6.112
+2177.400 498.291 8.225 544.887 6.454 243.337 4.976
+2177.558 502.302 7.732 544.848 7.151 251.273 6.311
+2177.717 504.293 7.930 545.708 7.321 263.212 5.793
+2177.875 503.482 7.044 544.777 6.551 246.562 8.792
+2178.031 502.724 8.457 548.057 7.546 239.275 5.627
+2178.189 504.417 8.405 542.660 7.000 255.202 5.820
+2178.347 503.564 9.916 545.616 8.366 261.752 6.774
+2178.504 501.205 7.487 547.316 6.635 247.837 4.639
+2178.661 501.932 8.367 545.123 7.397 248.298 6.057
+2178.818 501.419 7.762 544.771 6.515 251.742 3.841
+2178.976 504.434 7.033 546.447 6.321 257.157 4.437
+2179.134 501.994 6.353 545.424 6.945 247.041 4.510
+2179.292 500.669 8.253 543.974 7.838 244.680 6.184
+2179.449 501.806 7.082 546.549 6.711 255.686 4.425
+2179.607 501.298 7.682 547.615 6.991 254.726 6.431
+2179.764 498.863 7.197 546.916 6.550 247.207 5.428
+2179.922 499.788 6.007 546.149 7.221 245.562 7.798
+2180.079 502.767 7.345 546.201 6.951 252.345 5.675
+2180.239 505.487 10.391 546.202 6.934 261.263 4.903
+2180.395 498.284 14.407 546.112 7.572 242.472 6.695
+2180.552 499.122 8.464 545.581 7.282 247.494 4.617
+2180.709 501.521 6.738 544.895 7.598 261.824 5.264
+2180.868 498.155 10.829 548.789 6.126 252.558 5.042
+2181.026 500.771 7.458 547.417 6.543 254.235 5.312
+2181.183 500.887 7.971 550.354 6.213 254.642 4.531
+2181.340 500.968 8.280 551.053 7.822 242.366 6.752
+2181.497 504.999 6.951 552.990 6.843 248.523 4.980
+2181.656 498.910 8.328 546.889 6.342 258.015 3.674
+2181.814 499.909 6.888 549.398 8.137 260.730 5.240
+2181.972 502.129 7.530 552.654 7.495 255.487 5.284
+2182.130 501.261 9.244 552.856 6.853 239.784 4.212
+2182.287 502.602 6.561 553.098 6.840 249.027 4.525
+2182.446 506.996 6.255 549.331 6.850 267.960 6.895
+2182.604 500.319 9.240 552.583 7.457 250.579 6.413
+2182.760 500.603 8.972 549.485 6.942 251.135 5.404
+2182.917 502.636 8.160 551.854 6.478 249.541 5.412
+2183.074 499.546 8.127 553.928 7.129 248.705 4.666
+2183.232 503.875 8.439 552.339 6.482 258.267 6.089
+2183.390 502.688 6.780 550.853 7.215 259.442 4.966
+2183.548 502.566 8.094 551.058 7.227 239.494 6.531
+2183.703 501.195 7.082 551.360 7.067 240.414 4.500
+2183.862 502.632 11.785 554.983 7.869 264.314 6.254
+2184.020 504.796 8.805 549.189 8.140 258.773 5.787
+2184.177 506.877 9.992 551.161 7.982 248.097 5.208
+2184.334 502.768 9.473 550.241 6.649 256.831 6.621
+2184.491 496.907 9.067 550.852 7.091 231.078 5.117
+2184.649 502.009 8.377 552.238 7.621 255.190 5.466
+2184.807 503.400 9.408 546.412 8.868 259.921 8.322
+2184.965 503.744 8.581 549.754 8.975 258.719 5.993
+2185.122 506.977 9.050 551.477 7.364 260.077 4.617
+2185.280 504.259 10.988 555.694 7.900 241.810 9.605
+2185.436 504.622 8.388 553.167 6.922 244.068 5.992
+2185.595 506.036 10.402 554.491 6.997 263.020 4.411
+2185.754 502.820 6.838 548.684 7.893 252.720 7.169
+2185.910 501.208 6.850 550.256 6.568 249.977 6.022
+2186.068 502.022 8.743 549.432 7.250 254.369 7.162
+2186.224 501.980 8.257 552.604 9.456 244.953 7.308
+2186.381 504.699 7.383 550.426 9.132 258.839 5.714
+2186.539 504.467 8.332 552.674 6.268 258.318 6.525
+2186.697 504.054 7.093 553.426 8.586 248.353 6.541
+2186.854 499.590 8.174 551.534 6.799 247.863 5.635
+2187.011 500.035 5.968 549.365 8.432 256.698 5.371
+2187.170 506.000 5.810 550.433 6.890 256.097 5.083
+2187.329 503.810 6.424 549.844 6.735 245.090 3.691
+2187.487 501.838 6.008 551.068 6.038 248.740 4.230
+2187.645 499.988 8.115 552.440 7.012 247.697 7.696
+2187.802 501.769 8.501 551.734 7.804 249.357 4.204
+2187.960 503.167 8.053 554.337 6.889 254.483 5.783
+2188.117 503.531 7.141 551.993 7.075 244.634 4.272
+2188.274 498.685 7.631 556.069 7.012 247.416 6.781
+2188.431 503.136 7.909 550.970 6.504 260.954 4.863
+2188.591 500.841 8.037 556.989 7.397 245.809 13.570
+2188.747 492.378 6.605 548.399 6.620 252.888 4.375
+2188.905 500.243 9.873 552.304 6.470 252.888 5.650
+2189.063 509.332 8.463 552.253 7.149 249.208 14.926
+2189.219 502.453 19.105 549.672 9.021 248.042 21.336
+2189.376 497.894 11.329 547.726 6.941 259.060 6.561
+2189.534 498.559 9.374 552.717 6.272 246.100 7.377
+2189.691 502.455 6.400 554.437 7.696 256.121 5.737
+2189.850 507.384 6.637 549.774 6.577 264.991 7.918
+2190.007 504.093 16.530 552.617 10.445 243.129 17.630
+2190.163 502.110 11.522 549.846 7.277 254.451 17.453
+2190.320 498.921 11.062 549.498 7.456 251.654 9.973
+2190.478 503.509 7.601 553.825 6.694 264.986 5.512
+2190.637 504.775 6.785 551.518 6.737 264.429 6.677
+2190.795 498.557 9.226 553.945 6.766 239.124 4.086
+2190.952 505.235 9.589 548.349 6.528 243.521 7.118
+2191.110 503.472 12.305 548.393 6.824 254.475 6.869
+2191.268 498.554 9.169 549.694 7.009 252.214 7.428
+2191.424 502.945 10.680 549.986 8.164 259.122 12.027
+2191.581 497.229 8.165 554.029 7.658 247.181 5.268
+2191.739 502.712 6.107 551.770 6.244 251.081 5.140
+2191.897 508.717 7.036 555.957 6.855 247.410 8.009
+2192.054 505.787 8.598 549.529 6.535 253.884 5.008
+2192.212 500.627 9.989 551.515 6.598 251.898 7.974
+2192.369 501.996 7.124 551.855 6.752 248.979 7.777
+2192.526 504.910 8.331 550.348 6.637 251.789 5.354
+2192.683 500.949 9.461 552.243 6.531 256.357 7.949
+2192.840 505.329 10.275 552.562 8.625 251.043 7.280
+2192.998 503.863 5.883 550.975 7.310 253.210 5.458
+2193.157 500.578 10.357 552.969 6.932 251.732 5.922
+2193.315 503.535 9.914 545.079 7.094 262.137 6.947
+2193.472 499.165 12.099 549.040 6.750 244.041 7.509
+2193.629 507.141 13.685 554.260 6.733 246.510 4.632
+2193.786 498.491 11.478 552.652 9.196 244.935 11.450
+2193.943 498.984 6.139 550.246 7.109 249.529 6.901
+2194.102 501.109 10.286 550.972 7.431 258.055 7.013
+2194.259 502.361 14.405 551.369 7.934 246.100 7.765
+2194.415 499.123 21.416 552.953 9.978 249.571 9.425
+2194.572 506.371 6.293 552.939 7.418 249.965 10.233
+2194.730 497.863 8.460 549.009 9.630 251.529 9.086
+2194.888 499.428 13.579 552.490 7.052 251.475 6.400
+2195.045 501.554 16.069 551.484 7.909 256.004 7.313
+2195.201 499.185 11.461 550.464 8.226 249.940 5.850
+2195.358 506.521 11.123 550.294 6.948 250.449 9.751
+2195.516 504.515 8.212 552.093 6.772 258.234 6.800
+2195.673 502.865 12.982 552.101 8.057 248.262 7.551
+2195.830 505.128 6.968 550.061 6.449 250.132 9.013
+2195.986 504.631 8.788 552.050 6.243 247.491 4.779
+2196.143 499.806 11.867 550.470 7.463 243.894 9.752
+2196.300 500.418 9.846 551.474 8.876 251.538 6.849
+2196.457 501.394 6.892 553.144 6.793 256.255 5.153
+2196.615 504.153 10.161 553.641 6.223 254.482 7.639
+2196.773 504.221 9.843 552.566 9.883 238.454 13.315
+2196.929 494.892 6.865 547.985 8.211 250.884 6.177
+2197.087 508.258 11.692 547.829 8.007 252.258 6.327
+2197.244 501.772 7.707 554.608 6.947 258.182 16.704
+2197.401 493.937 8.580 553.466 7.335 245.831 10.143
+2197.558 500.489 6.809 549.704 7.407 259.988 7.617
+2197.716 503.654 14.000 552.247 8.431 244.659 11.903
+2197.872 508.396 10.156 551.962 6.767 248.766 7.709
+2198.029 503.124 11.292 551.669 6.123 254.317 11.531
+2198.187 496.991 7.272 553.426 7.141 249.473 5.019
+2198.345 501.819 8.684 549.834 7.162 253.584 8.221
+2198.502 499.448 11.078 550.198 8.612 259.195 14.183
+2198.658 504.314 8.732 552.002 9.183 255.432 11.102
+2198.815 500.713 14.383 552.800 10.185 247.794 10.931
+2198.972 497.737 8.759 548.198 7.378 253.217 4.861
+2199.130 509.907 8.265 548.532 6.858 253.572 7.986
+2199.287 499.869 12.878 549.325 9.390 251.135 11.081
+2199.443 495.118 7.311 550.953 8.275 249.251 9.887
+2199.600 502.381 13.354 551.049 6.277 240.342 7.701
+2199.757 503.623 11.678 548.770 7.480 252.993 7.132
+2199.914 498.866 9.978 548.597 9.767 258.399 7.196
+2200.071 503.938 6.843 550.376 6.308 246.654 6.422
+2200.229 505.039 8.299 551.963 7.194 249.716 8.139
+2200.386 504.550 9.576 548.379 6.987 250.767 7.433
+2200.543 500.725 7.871 553.173 6.762 247.737 8.705
+2200.700 505.827 10.178 549.981 6.579 252.537 7.449
+2200.857 500.328 11.833 549.679 9.297 254.735 6.801
+2201.014 501.593 9.040 550.326 6.540 250.077 5.766
+2201.172 501.725 10.778 553.663 7.238 247.170 7.080
+2201.329 509.007 7.527 547.816 7.220 263.121 6.737
+2201.487 491.540 11.568 550.988 10.793 250.131 10.978
+2201.645 499.265 8.158 548.749 7.766 259.491 10.769
+2201.803 504.292 14.565 550.677 8.145 240.804 15.882
+2201.958 501.662 9.254 551.636 9.359 246.088 9.086
+2202.115 499.186 8.888 549.586 8.847 253.560 9.185
+2202.272 502.421 13.052 547.195 8.615 260.425 8.881
+2202.430 496.634 8.682 546.662 6.913 256.134 5.311
+2202.588 508.346 7.811 548.586 6.907 254.571 4.134
+2202.746 497.783 8.429 550.355 6.885 239.485 14.363
+2202.902 502.417 8.845 546.563 9.117 251.014 6.543
+2203.060 504.144 16.848 546.225 7.895 255.540 9.515
+2203.217 499.691 8.053 553.182 7.479 247.125 14.004
+2203.373 495.357 13.782 545.661 8.265 256.941 10.113
+2203.529 497.883 8.775 548.606 7.721 241.599 5.104
+2203.686 503.058 7.561 551.956 6.917 250.336 10.114
+2203.844 493.900 8.554 545.259 8.543 260.633 7.565
+2204.001 499.419 13.170 547.662 6.891 245.546 6.973
+2204.157 492.214 7.256 547.066 7.255 247.605 11.648
+2204.314 496.352 11.110 549.430 6.329 252.056 4.246
+2204.472 500.273 6.124 547.624 6.738 256.110 7.103
+2204.630 488.882 7.489 550.996 8.880 246.701 5.488
+2204.789 497.008 7.614 546.360 7.046 256.267 4.361
+2204.946 494.390 8.970 545.243 8.353 251.002 8.825
+2205.104 497.173 6.902 546.192 7.092 260.610 5.787
+2205.261 491.641 10.865 551.602 7.015 253.046 5.230
+2205.420 487.516 7.083 547.956 7.552 253.520 9.453
+2205.578 496.305 6.242 548.519 6.595 251.575 5.692
+2205.736 488.953 6.188 545.705 6.867 251.385 7.142
+2205.893 494.429 6.686 546.757 7.136 254.823 4.953
+2206.051 487.564 9.416 545.397 9.048 255.628 7.428
+2206.207 489.995 6.688 545.874 6.868 251.236 6.759
+2206.365 496.069 11.459 551.618 6.882 242.002 16.509
+2206.521 481.150 16.808 546.996 7.674 248.750 9.625
+2206.677 494.591 9.125 543.800 6.483 253.667 4.562
+2206.834 493.495 7.608 542.498 7.163 254.886 5.426
+2206.992 490.555 6.665 544.865 7.052 254.788 4.636
+2207.151 484.535 10.096 549.718 7.038 237.477 11.482
+2207.307 495.685 8.801 547.117 7.632 252.114 7.469
+2207.464 484.586 10.245 544.421 7.234 256.301 8.445
+2207.622 495.445 7.354 546.184 6.178 248.743 5.449
+2207.779 484.524 7.446 547.801 6.961 247.697 8.544
+2207.936 489.685 7.356 544.718 7.185 256.857 8.100
+2208.094 490.526 6.393 547.387 7.149 250.628 6.926
+2208.252 489.555 10.899 544.063 7.873 260.926 17.081
+2208.408 486.385 9.232 548.840 8.710 233.679 20.772
+2208.565 500.903 10.329 544.758 7.512 258.806 5.855
+2208.722 490.889 7.890 544.097 7.130 257.268 5.704
+2208.880 486.868 5.599 548.501 7.417 244.262 6.022
+2209.038 491.608 10.555 547.485 8.477 248.462 6.776
+2209.195 483.396 19.108 547.874 10.282 245.254 23.100
+2209.350 480.294 21.782 546.508 9.935 251.192 12.869
+2209.506 490.382 9.530 545.105 6.910 255.261 7.644
+2209.663 485.743 9.976 540.921 6.981 251.422 7.172
+2209.820 485.227 15.743 546.959 9.137 252.194 17.045
+2209.976 487.292 7.630 546.909 6.860 248.211 9.159
+2210.134 484.822 21.607 543.009 7.742 261.032 18.486
+2210.291 487.048 17.955 544.640 10.814 256.520 9.554
+2210.447 490.310 9.276 545.246 9.115 250.735 17.610
+2210.602 490.133 7.974 543.362 7.640 249.307 5.650
+2210.759 488.201 11.406 545.133 8.160 251.283 13.222
+2210.916 485.282 7.522 539.751 7.458 254.282 5.226
+2211.074 493.992 11.506 541.197 8.153 256.872 8.800
+2211.231 490.690 11.111 546.212 8.088 230.288 9.642
+2211.388 491.776 8.332 540.272 7.583 253.592 4.914
+2211.546 486.337 8.549 545.462 6.666 256.755 6.864
+2211.704 489.283 7.722 537.874 7.261 256.027 7.083
+2211.861 490.452 7.413 547.338 7.335 249.960 11.783
+2212.018 483.784 8.475 543.383 9.084 243.979 5.444
+2212.175 491.757 7.881 537.513 7.524 253.929 4.647
+2212.333 493.367 8.028 539.875 7.285 250.919 4.485
+2212.490 497.913 15.535 543.168 8.497 236.449 18.668
+2212.646 486.819 16.760 535.901 7.606 258.364 14.561
+2212.802 495.038 7.495 541.749 8.785 249.353 7.305
+2212.959 488.890 11.151 541.587 7.926 247.673 7.393
+2213.117 491.588 12.364 543.265 7.247 244.696 5.158
+2213.274 499.935 8.332 540.532 7.591 241.126 12.658
+2213.431 492.829 8.739 543.905 7.877 256.911 7.172
+2213.587 484.458 10.674 538.129 8.580 242.259 15.133
+2213.744 491.764 11.822 541.751 9.774 245.742 12.542
+2213.901 486.287 10.466 542.557 7.897 258.137 6.090
+2214.059 496.422 7.836 539.605 8.450 240.741 10.262
+2214.217 491.994 10.536 536.976 10.688 233.657 10.701
+2214.374 491.649 9.585 543.459 7.916 266.576 7.815
+2214.531 476.956 7.768 539.024 7.141 261.615 7.070
+2214.688 488.459 8.453 536.320 7.899 259.996 10.777
+2214.846 485.424 10.878 546.073 8.144 242.449 10.060
+2215.002 484.294 9.474 541.730 7.329 253.344 9.628
+2215.159 489.492 10.790 536.347 9.359 256.613 9.835
+2215.316 496.644 8.795 535.323 7.716 265.576 5.585
+2215.474 487.726 16.556 526.413 10.666 234.875 9.217
+2215.630 482.967 9.862 531.424 8.723 257.778 8.345
+2215.788 493.009 15.253 529.234 12.877 253.227 11.221
+2215.945 489.680 11.511 534.892 7.416 258.812 9.036
+2216.102 488.676 15.428 538.769 10.252 244.118 11.551
+2216.258 495.916 10.183 534.207 9.249 254.821 8.794
+2216.416 491.599 9.743 530.112 8.759 264.988 4.884
+2216.573 495.266 13.679 533.601 9.157 227.629 15.928
+2216.728 493.272 9.535 526.156 9.680 248.646 11.167
+2216.887 496.042 10.242 532.591 9.985 258.146 7.448
+2217.044 492.060 10.757 538.256 11.166 251.061 7.343
+2217.202 499.770 14.852 535.502 9.187 255.870 12.384
+2217.359 489.847 12.050 522.975 9.328 253.428 14.651
+2217.514 497.588 13.257 530.999 11.944 219.794 11.721
+2217.672 486.005 16.911 518.350 9.511 263.257 8.795
+2217.829 500.110 10.321 517.863 9.891 252.912 11.667
+2217.986 480.781 9.918 528.048 7.908 243.179 5.929
+2218.144 503.747 8.634 522.870 7.848 259.001 6.220
+2218.302 486.507 7.936 527.498 8.115 222.660 12.364
+2218.459 508.975 8.255 524.565 8.054 265.606 7.133
+2218.617 479.489 13.664 519.065 9.004 243.736 11.297
+2218.773 505.454 8.241 525.660 9.714 249.897 10.033
+2218.931 513.314 10.417 527.136 9.290 254.258 11.737
+2219.088 476.893 9.809 522.331 8.364 240.492 13.678
+2219.244 518.668 7.905 524.883 9.656 247.584 10.704
+2219.402 502.776 11.485 530.518 11.299 251.625 9.408
+2219.559 496.727 11.391 520.635 8.939 249.276 7.987
+2219.716 500.337 9.795 522.556 8.629 255.972 8.369
+2219.872 519.863 14.149 528.555 10.425 242.809 14.335
+2220.029 493.028 13.730 527.215 8.941 239.818 12.277
+2220.186 517.410 12.490 525.952 14.896 255.448 9.461
+2220.344 496.854 14.777 524.549 8.727 237.604 16.606
+2220.500 499.528 23.948 525.725 8.144 261.246 26.095
+2220.656 510.895 20.033 519.717 11.193 259.652 11.787
+2220.813 494.939 8.607 527.177 10.183 239.096 8.927
+2220.970 501.999 10.209 525.141 11.444 253.480 12.383
+2221.128 504.590 10.590 530.671 8.384 229.844 12.867
+2221.285 507.145 16.372 516.036 12.436 251.828 18.171
+2221.441 486.121 10.453 515.500 13.451 255.748 10.906
+2221.597 504.981 13.430 525.945 9.198 244.337 11.016
+2221.755 510.819 17.014 528.799 14.145 245.683 28.990
+2221.910 493.938 15.702 528.768 8.542 245.966 13.958
+2222.065 487.609 14.983 526.427 13.077 243.089 7.664
+2222.221 505.936 18.297 520.644 13.075 250.450 9.398
+2222.377 507.179 9.824 519.516 10.815 254.074 8.823
+2222.534 506.301 11.942 526.205 9.337 245.920 9.325
+2222.691 496.813 8.119 531.932 11.456 247.309 7.387
+2222.847 507.998 10.749 522.969 10.721 246.893 15.521
+2223.004 503.250 17.321 524.889 8.087 233.188 15.110
+2223.160 503.452 10.695 521.828 11.254 261.371 8.159
+2223.319 508.894 12.947 524.508 14.307 247.863 12.827
+2223.474 498.188 12.488 525.535 9.700 248.388 9.621
+2223.631 507.101 11.184 518.545 8.608 247.913 7.509
+2223.788 500.431 10.519 523.645 9.947 232.949 9.151
+2223.946 503.844 10.015 526.316 8.899 268.899 9.339
+2224.102 498.018 11.430 529.853 9.675 259.139 12.024
+2224.260 503.760 9.675 536.638 8.996 251.471 13.448
+2224.417 505.197 11.234 528.086 9.208 254.164 10.640
+2224.575 505.912 8.058 525.700 7.202 249.791 7.317
+2224.732 502.069 9.632 527.717 8.562 251.397 9.209
+2224.889 484.260 8.694 532.077 9.651 239.404 7.933
+2225.045 512.752 15.752 527.710 12.543 242.594 12.129
+2225.203 491.127 11.842 519.897 9.302 275.035 8.439
+2225.360 509.911 18.317 532.389 11.360 245.160 23.672
+2225.517 503.469 12.061 537.533 8.845 220.131 21.587
+2225.674 504.814 18.268 526.565 10.682 268.631 15.073
+2225.831 510.968 9.498 532.125 10.663 267.726 8.323
+2225.988 490.849 13.523 538.081 8.898 235.487 9.627
+2226.144 498.038 15.116 536.400 13.315 248.814 10.392
+2226.303 500.600 9.291 528.994 10.800 261.338 9.048
+2226.461 497.935 11.127 525.340 11.738 228.713 8.122
+2226.618 511.439 18.825 529.443 11.428 244.477 19.296
+2226.774 499.074 10.939 527.674 10.075 281.334 11.761
+2226.932 503.360 12.961 532.266 8.662 250.333 16.353
+2227.087 506.573 14.618 539.842 10.169 230.873 13.369
+2227.245 502.065 12.541 530.048 12.051 270.468 9.906
+2227.403 497.350 11.923 528.900 10.263 252.964 10.413
+2227.559 504.713 9.888 536.059 10.235 228.579 8.936
+2227.717 508.177 8.836 533.500 8.709 257.175 9.817
+2227.874 505.521 7.924 533.415 10.341 249.051 10.394
+2228.031 497.195 8.657 534.994 8.067 241.310 6.606
+2228.187 500.291 10.962 529.389 10.063 253.593 10.071
+2228.346 502.342 8.874 534.973 8.124 267.235 7.313
+2228.503 493.683 9.653 535.139 8.004 234.252 8.743
+2228.659 502.226 10.393 536.941 9.465 246.382 9.253
+2228.815 497.912 8.993 533.199 7.828 256.043 5.730
+2228.973 507.949 10.155 536.172 9.685 239.710 7.516
+2229.129 510.419 9.827 535.591 8.447 248.177 9.581
+2229.285 501.444 10.611 531.166 8.841 247.821 11.397
+2229.444 498.074 9.914 539.921 9.254 249.768 8.787
+2229.600 498.470 9.693 535.359 7.884 249.677 6.608
+2229.757 508.804 10.509 531.893 8.765 257.946 7.066
+2229.915 497.798 9.073 533.699 7.956 253.389 8.573
+2230.072 503.518 8.722 538.237 8.697 241.053 7.424
+2230.228 507.015 10.102 533.092 9.974 248.700 6.853
+2230.387 506.210 9.938 531.191 9.243 270.247 6.850
+2230.545 498.152 9.583 537.551 8.334 237.392 9.837
+2230.701 503.651 10.496 534.175 8.548 254.213 7.985
+2230.859 509.226 9.464 539.161 9.260 247.122 13.204
+2231.015 503.042 9.865 534.121 8.557 242.121 6.880
+2231.173 502.050 7.708 536.521 7.293 252.611 6.085
+2231.332 499.440 7.759 532.555 8.646 258.436 5.213
+2231.489 506.964 9.434 535.335 8.641 253.594 11.043
+2231.647 503.069 12.421 536.623 8.644 248.155 9.284
+2231.803 497.000 8.165 534.226 8.687 250.831 5.646
+2231.960 503.640 7.544 535.832 7.580 253.678 6.385
+2232.117 498.466 7.377 539.218 9.591 253.616 7.351
+2232.274 501.664 9.338 538.772 8.841 251.236 6.149
+2232.431 500.376 8.929 536.327 7.393 248.972 6.225
+2232.588 498.273 7.067 538.163 8.136 251.659 5.401
+2232.746 496.082 8.810 537.241 7.764 260.066 6.955
+2232.903 497.790 7.542 538.612 8.766 247.480 7.243
+2233.060 500.247 9.051 536.166 8.935 252.344 9.498
+2233.216 496.352 9.551 538.501 8.572 247.663 7.493
+2233.373 497.193 8.929 537.605 7.732 247.936 5.020
+2233.530 503.222 7.261 536.616 7.129 253.049 4.511
+2233.688 503.772 7.907 539.436 7.000 251.430 5.364
+2233.845 497.627 6.511 538.324 6.947 247.204 6.328
+2234.003 497.756 8.032 538.453 7.819 247.932 5.663
+2234.160 494.547 8.054 537.154 8.059 252.899 5.206
+2234.318 501.795 6.741 537.351 7.131 257.159 6.509
+2234.475 497.038 7.652 536.503 6.402 247.281 4.700
+2234.633 499.130 6.766 535.545 6.428 256.122 4.510
+2234.791 500.931 7.227 530.755 6.959 252.381 4.914
+2234.949 498.329 7.935 532.547 8.464 243.233 4.914
+2235.105 498.613 7.797 537.295 6.738 254.622 5.823
+2235.263 499.476 6.546 537.153 6.566 252.306 5.030
+2235.421 499.464 11.239 537.441 8.127 247.233 7.263
+2235.577 497.194 7.937 536.334 6.955 246.422 4.377
+2235.735 497.701 7.603 536.723 7.340 255.704 5.549
+2235.893 500.367 6.729 535.427 7.205 247.597 5.791
+2236.050 501.703 7.290 536.044 6.216 247.075 5.195
+2236.209 497.627 8.087 535.660 6.600 258.050 4.644
+2236.366 494.496 11.021 535.066 6.777 251.880 6.763
+2236.523 496.085 9.041 535.910 6.401 248.268 9.189
+2236.680 498.810 7.564 535.079 7.267 257.002 4.793
+2236.839 496.528 7.995 534.880 6.099 254.470 5.224
+2236.997 495.445 7.423 535.288 5.941 246.164 4.731
+2237.154 501.444 5.954 535.742 6.129 247.571 3.799
+2237.312 500.674 5.804 535.917 6.094 253.565 3.827
+2237.470 498.116 5.791 536.809 6.030 251.805 4.055
+2237.628 497.401 6.340 535.258 6.792 248.888 4.134
+2237.786 498.294 7.297 534.582 6.326 255.128 4.501
+2237.944 494.072 7.254 535.125 6.292 253.001 5.120
+2238.103 493.760 6.586 536.731 6.242 248.290 7.267
+2238.260 498.277 6.577 537.227 7.150 250.322 6.631
+2238.418 498.532 6.194 536.262 6.792 251.063 4.073
+2238.576 499.855 6.705 536.452 6.929 251.270 4.452
+2238.732 499.498 6.297 538.004 6.245 248.212 4.452
+2238.890 499.515 6.463 536.550 6.373 249.782 4.706
+2239.048 498.705 5.910 537.245 5.979 247.037 3.513
+2239.207 497.027 7.179 536.852 6.144 254.720 6.894
+2239.364 494.630 6.726 534.878 6.058 253.217 3.584
+2239.522 490.286 6.963 536.458 5.993 245.862 5.572
+2239.679 493.862 6.426 536.434 6.060 251.108 4.803
+2239.838 497.138 6.249 536.504 6.275 262.401 3.625
+2239.997 498.971 6.982 536.615 6.060 249.384 9.868
+2240.154 498.809 7.116 538.316 6.653 235.543 8.060
+2240.311 502.418 8.966 538.523 6.523 248.385 5.405
+2240.468 500.114 8.581 538.985 6.079 254.363 3.751
+2240.626 493.731 7.101 538.109 6.526 244.643 5.692
+2240.784 494.397 6.117 538.081 6.066 245.366 3.608
+2240.942 497.934 6.101 538.030 6.390 257.543 4.911
+2241.101 495.099 6.407 538.780 6.068 256.555 6.088
+2241.259 493.111 5.652 538.587 6.103 251.545 4.686
+2241.417 495.651 6.209 538.175 5.981 252.115 4.978
+2241.576 496.076 6.220 538.691 6.745 256.331 4.823
+2241.734 496.350 6.168 540.517 6.268 252.393 5.042
+2241.892 496.103 6.201 540.365 6.641 244.163 5.085
+2242.049 498.441 6.574 539.603 6.209 244.241 4.204
+2242.207 501.094 6.845 539.506 6.266 254.842 3.755
+2242.366 497.141 5.777 539.635 5.920 254.458 3.393
+2242.524 497.941 5.853 540.246 6.318 248.414 3.272
+2242.682 494.569 5.951 540.592 6.330 251.614 4.221
+2242.840 496.705 5.897 539.295 6.110 254.356 4.013
+2242.999 497.177 5.910 541.293 6.225 252.223 5.085
+2243.157 499.141 6.349 541.083 6.479 251.902 3.762
+2243.315 501.301 6.166 539.690 6.146 252.499 4.658
+2243.473 499.473 6.412 540.007 6.883 249.765 3.676
+2243.631 499.704 6.429 540.880 6.728 252.637 4.638
+2243.789 497.987 6.931 540.468 7.608 249.776 5.101
+2243.947 500.039 8.433 540.184 7.412 249.157 3.826
+2244.104 499.210 7.172 541.841 7.487 249.981 5.917
+2244.262 498.292 6.608 539.918 6.643 253.559 5.105
+2244.420 499.852 7.829 539.029 7.347 253.865 5.600
+2244.578 496.058 6.354 540.570 6.686 250.288 4.378
+2244.736 497.480 6.858 539.875 6.562 254.432 3.876
+2244.893 497.264 7.692 539.878 7.954 253.804 4.454
+2245.051 497.022 8.319 539.998 6.683 251.738 4.059
+2245.209 500.420 7.186 540.450 6.252 247.267 5.621
+2245.367 499.214 6.735 542.214 6.788 246.452 5.025
+2245.524 500.782 6.323 541.552 6.438 254.834 4.196
+2245.682 498.137 6.098 541.305 6.806 254.278 4.392
+2245.840 500.961 6.979 541.503 6.335 245.202 4.038
+2245.998 502.989 6.391 541.235 6.492 251.062 3.827
+2246.156 500.729 7.391 541.462 6.514 253.510 5.951
+2246.314 497.547 8.016 540.744 6.460 250.405 4.098
+2246.470 497.945 11.404 541.787 7.574 248.304 5.313
+2246.628 501.369 9.302 541.527 7.320 252.533 6.653
+2246.786 502.863 8.334 542.505 8.268 252.735 5.097
+2246.943 502.548 6.940 541.025 6.741 243.717 7.800
+2247.100 502.675 9.097 542.210 6.516 245.587 4.848
+2247.257 499.136 7.473 541.752 7.880 253.265 6.395
+2247.414 500.561 6.971 539.967 6.808 253.562 5.157
+2247.571 501.725 7.363 542.299 6.518 251.135 6.090
+2247.729 500.367 8.248 541.673 6.900 245.091 6.196
+2247.886 501.003 7.958 541.226 7.104 247.210 7.160
+2248.043 500.200 7.087 541.022 6.600 252.922 5.362
+2248.201 505.182 8.073 542.110 6.639 255.779 6.513
+2248.359 501.491 8.092 542.841 7.071 244.597 10.045
+2248.515 501.684 6.403 541.968 6.544 251.706 5.027
+2248.674 504.266 6.415 542.309 6.118 252.787 4.902
+2248.832 505.512 7.103 542.453 6.909 253.787 4.266
+2248.989 503.245 8.574 541.354 6.966 250.867 4.856
+2249.146 501.162 8.821 543.723 6.877 243.438 5.663
+2249.303 500.881 6.550 540.987 6.480 251.564 8.741
+2249.461 502.048 10.915 542.709 7.810 256.655 7.009
+2249.619 501.730 10.137 541.727 7.262 247.526 8.010
+2249.776 505.307 11.850 543.717 6.696 249.305 5.212
+2249.933 503.183 9.285 540.597 6.995 251.933 5.769
+2250.091 502.151 8.860 541.396 6.405 248.749 9.583
+2250.247 506.321 11.603 542.784 6.705 246.327 4.660
+2250.405 507.473 6.455 543.377 6.202 253.603 7.249
+2250.562 503.934 8.005 543.363 6.697 251.106 5.096
+2250.720 499.769 7.192 541.593 6.832 251.721 5.437
+2250.877 502.887 7.885 543.385 7.326 251.557 7.242
+2251.034 506.298 8.736 540.893 8.248 254.475 6.807
+2251.191 501.593 8.062 544.019 11.029 251.554 5.523
+2251.349 500.455 8.312 541.280 6.809 245.215 6.009
+2251.506 505.214 9.127 541.912 8.305 255.512 8.362
+2251.664 502.992 7.073 540.449 7.227 257.685 4.600
+2251.821 507.099 10.977 542.534 10.764 237.026 13.484
+2251.977 503.751 6.394 543.375 7.318 245.830 6.627
+2252.137 501.917 9.257 540.723 7.445 268.688 6.348
+2252.294 505.649 9.492 541.647 6.919 249.376 5.485
+2252.452 503.876 6.998 542.546 7.133 237.213 6.102
+2252.610 502.068 8.469 541.905 6.369 254.522 5.379
+2252.769 499.800 7.606 541.429 7.315 262.835 7.068
+2252.926 499.738 6.721 542.504 7.756 250.218 4.085
+2253.083 499.907 6.913 544.765 7.183 238.252 5.062
+2253.240 506.269 6.548 542.867 8.098 248.912 6.600
+2253.398 503.632 8.662 541.228 6.317 270.609 3.959
+2253.556 501.426 11.377 545.952 7.155 245.286 6.765
+2253.714 503.804 8.853 543.769 6.575 232.672 7.950
+2253.871 503.628 7.832 541.247 6.297 257.826 8.926
+2254.028 507.476 7.404 542.812 6.183 256.808 4.885
+2254.187 504.024 6.801 542.128 7.425 252.468 4.682
+2254.344 500.320 9.038 542.011 6.452 241.914 6.990
+2254.501 502.033 9.443 541.190 6.467 245.889 6.219
+2254.659 503.460 6.475 540.801 6.253 260.678 5.366
+2254.817 502.014 8.607 542.948 6.962 251.696 6.946
+2254.974 499.240 8.065 541.379 7.044 246.646 6.245
+2255.131 503.892 6.338 540.733 7.034 253.676 5.105
+2255.289 502.139 7.478 542.197 6.606 244.586 7.729
+2255.446 504.071 10.118 542.152 8.117 240.855 6.464
+2255.603 507.000 8.440 542.341 7.706 255.848 5.164
+2255.762 505.550 6.557 541.983 6.415 256.138 5.636
+2255.921 500.355 6.838 541.619 6.333 248.701 3.455
+2256.079 501.383 6.744 541.466 7.555 249.097 3.852
+2256.237 502.673 7.707 542.934 6.103 254.500 5.825
+2256.395 500.026 7.491 541.079 6.436 255.505 4.330
+2256.552 500.270 7.172 543.850 7.550 247.115 4.814
+2256.709 503.472 8.252 543.448 7.778 249.261 4.885
+2256.866 501.774 6.343 541.794 6.320 255.772 4.146
+2257.025 502.027 8.887 542.388 6.218 255.257 6.314
+2257.182 502.800 6.146 543.753 6.709 245.472 8.249
+2257.339 500.738 8.129 542.437 7.616 251.084 5.211
+2257.496 504.177 6.916 540.394 6.154 256.530 3.467
+2257.654 504.081 9.432 542.374 6.113 249.645 5.003
+2257.812 502.120 6.792 542.583 6.427 243.636 3.856
+2257.969 502.981 8.277 544.185 7.522 250.506 4.478
+2258.127 505.059 6.104 541.951 7.443 257.095 3.913
+2258.286 502.670 7.576 542.479 6.787 252.100 4.890
+2258.443 497.356 12.673 542.714 9.471 249.761 6.509
+2258.599 495.873 7.367 541.357 7.007 250.817 6.001
+2258.757 503.688 11.193 541.323 7.049 258.538 7.807
+2258.915 500.976 11.414 542.383 7.067 254.955 4.518
+2259.072 501.619 6.901 542.073 6.586 248.449 4.283
+2259.230 504.626 7.816 543.290 6.570 250.954 4.231
+2259.389 506.486 7.964 542.093 7.394 252.979 4.680
+2259.547 506.984 6.264 542.770 7.386 249.929 4.282
+2259.704 503.499 7.634 542.947 8.174 244.309 4.939
+2259.862 503.615 7.731 543.459 6.239 250.213 5.372
+2260.020 502.816 6.986 541.034 7.754 255.822 7.399
+2260.178 501.508 8.035 540.350 7.896 251.258 5.707
+2260.334 502.545 6.130 543.083 6.325 250.252 4.018
+2260.492 500.135 6.552 543.180 6.136 252.652 4.980
+2260.651 501.521 8.607 542.441 7.026 253.256 6.672
+2260.808 500.655 7.265 542.754 6.739 252.262 5.309
+2260.966 501.796 8.160 542.537 7.500 246.422 7.881
+2261.122 503.177 6.706 544.505 6.470 249.934 3.896
+2261.280 506.271 7.141 542.215 6.448 252.549 4.664
+2261.437 505.752 6.899 543.452 6.813 248.025 5.099
+2261.594 504.047 7.858 543.494 6.369 248.880 5.298
+2261.752 504.080 9.056 543.465 6.501 252.458 5.071
+2261.909 503.570 6.631 542.794 6.539 253.604 4.477
+2262.067 502.285 9.032 544.528 6.670 249.276 5.253
+2262.224 502.922 7.008 541.215 7.918 248.962 4.402
+2262.382 500.409 10.421 542.872 7.038 253.199 5.107
+2262.540 502.264 7.249 541.778 7.238 251.082 5.394
+2262.698 505.312 10.542 544.217 6.670 251.760 6.637
+2262.855 502.083 8.131 542.902 8.291 249.267 4.817
+2263.013 504.720 6.107 543.239 6.635 247.972 4.476
+2263.171 504.557 6.243 542.642 6.228 252.259 3.903
+2263.329 504.795 6.775 542.526 6.231 253.342 4.840
+2263.488 504.577 8.134 543.785 7.193 243.113 4.315
+2263.645 505.585 7.044 542.537 6.365 246.021 3.884
+2263.804 502.665 10.754 541.525 7.108 262.610 4.335
+2263.961 502.196 8.761 540.825 7.188 249.526 5.821
+2264.118 499.612 7.982 541.938 6.537 243.275 4.816
+2264.276 500.146 6.931 541.809 6.078 258.012 4.690
+2264.434 503.571 7.471 541.268 6.420 260.220 5.280
+2264.592 503.635 8.421 543.632 8.216 246.912 6.301
+2264.749 503.356 8.485 541.736 6.545 247.439 4.541
+2264.906 506.733 7.509 543.227 6.496 251.924 5.348
+2265.064 507.257 8.201 541.922 6.236 254.099 3.953
+2265.222 502.872 6.358 541.949 7.696 246.271 4.151
+2265.379 501.938 6.623 541.889 6.172 248.432 4.298
+2265.539 504.419 7.743 541.208 6.943 254.384 4.915
+2265.696 503.084 9.636 542.532 7.967 252.873 5.102
+2265.853 505.430 11.043 542.115 7.080 252.338 3.968
+2266.010 500.364 6.606 543.581 6.448 247.573 4.061
+2266.167 503.013 7.531 543.215 6.236 248.915 5.205
+2266.326 504.140 7.619 540.222 6.349 253.979 5.320
+2266.485 504.711 8.541 540.942 6.157 255.769 6.846
+2266.642 503.777 7.164 541.889 6.439 249.347 4.243
+2266.799 502.707 6.606 543.988 6.228 250.193 4.823
+2266.957 506.377 7.213 542.069 6.035 250.731 4.154
+2267.114 504.883 8.485 542.730 7.683 254.927 4.281
+2267.271 503.778 11.000 542.207 6.271 249.269 4.211
+2267.428 503.557 6.809 542.132 6.425 242.132 4.974
+2267.585 502.835 5.676 542.661 6.045 251.261 4.411
+2267.745 503.618 6.161 542.676 6.186 262.672 4.295
+2267.903 502.386 8.125 542.066 6.514 247.866 4.628
+2268.060 503.723 9.735 542.800 6.621 241.888 4.481
+2268.217 504.487 10.192 541.638 6.953 254.268 4.743
+2268.375 507.004 8.077 541.596 6.507 260.132 5.246
+2268.534 500.790 6.577 541.196 7.306 246.641 4.684
+2268.691 502.847 6.276 542.362 6.538 245.236 4.979
+2268.849 503.148 7.007 541.863 6.368 255.242 5.095
+2269.007 502.061 6.298 541.338 6.056 256.302 4.680
+2269.166 502.190 7.112 543.743 7.747 243.593 6.607
+2269.323 503.501 9.263 542.827 6.056 244.235 5.162
+2269.482 505.705 6.795 544.018 6.127 257.012 4.407
+2269.640 505.747 8.991 539.310 7.122 254.390 6.136
+2269.797 501.387 6.935 542.203 6.989 243.723 5.112
+2269.955 502.113 7.229 543.522 6.951 249.037 3.755
+2270.113 504.521 5.966 542.645 6.442 258.680 4.090
+2270.271 501.825 8.163 542.926 7.146 253.096 4.619
+2270.428 503.068 8.811 542.989 7.203 239.720 5.614
+2270.586 501.110 6.479 542.719 8.050 250.827 4.341
+2270.744 505.481 7.022 542.097 6.538 262.778 4.455
+2270.902 503.384 6.472 542.141 6.088 250.707 4.963
+2271.060 503.143 6.033 543.881 6.517 242.677 3.677
+2271.218 505.671 8.240 542.288 6.993 252.726 3.992
+2271.376 503.366 5.850 543.112 5.884 257.567 5.111
+2271.534 502.633 6.465 541.581 7.041 251.695 4.645
+2271.692 501.316 6.317 542.765 6.592 249.366 4.052
+2271.849 501.643 6.439 542.927 6.113 247.963 4.479
+2272.007 500.606 6.505 543.379 5.884 249.579 3.786
+2272.164 501.686 6.095 541.263 6.821 253.935 5.489
+2272.323 503.106 6.927 543.232 7.068 254.749 3.778
+2272.480 503.061 7.700 541.722 6.447 249.727 4.417
+2272.638 502.630 6.436 543.137 6.737 247.377 4.152
+2272.796 505.416 5.968 541.621 7.046 251.363 3.757
+2272.954 505.154 7.988 542.166 6.899 257.193 5.615
+2273.112 502.441 6.228 541.591 7.011 253.641 4.034
+2273.269 503.344 6.747 543.466 6.440 242.446 4.816
+2273.427 505.713 6.092 543.214 6.355 247.724 4.829
+2273.584 505.427 7.547 540.992 7.031 258.387 5.782
+2273.743 502.844 7.744 541.399 7.292 252.363 5.350
+2273.901 502.588 6.831 542.074 6.829 249.043 4.957
+2274.058 503.935 8.870 542.830 6.339 253.660 5.293
+2274.215 498.499 7.358 542.778 7.391 248.516 5.416
+2274.372 501.245 7.339 540.777 8.463 251.495 4.611
+2274.529 503.372 7.646 542.007 7.366 253.044 4.300
+2274.687 506.533 6.879 542.800 6.430 247.050 5.060
+2274.844 504.675 6.579 543.248 5.972 252.450 4.639
+2275.002 502.746 6.169 542.052 6.400 250.694 4.759
+2275.160 502.707 6.979 541.900 6.676 248.736 4.888
+2275.318 503.037 6.801 542.169 7.360 252.527 4.497
+2275.476 504.750 7.622 543.301 6.265 253.555 4.684
+2275.634 504.197 7.281 541.923 6.355 246.515 5.189
+2275.791 503.142 8.438 542.599 6.546 248.215 4.155
+2275.949 502.241 6.086 541.066 6.093 257.612 4.818
+2276.107 503.512 6.582 541.020 7.139 252.046 4.781
+2276.264 502.675 6.230 544.460 6.267 244.540 6.150
+2276.423 500.756 6.678 543.254 7.008 240.925 4.801
+2276.580 499.697 7.104 544.092 6.570 252.869 3.562
+2276.739 505.077 6.426 543.061 6.777 265.698 4.433
+2276.896 502.530 7.286 544.870 7.142 242.457 5.909
+2277.054 502.575 7.085 546.408 6.221 238.784 4.172
+2277.212 504.345 6.061 546.124 7.137 256.847 4.360
+2277.371 506.083 7.662 545.331 7.826 262.238 5.524
+2277.530 502.020 6.892 547.353 6.328 243.002 5.271
+2277.687 501.830 5.863 547.063 6.655 240.020 3.710
+2277.846 502.138 7.435 545.640 6.442 250.880 3.976
+2278.004 503.831 6.348 542.776 7.379 260.438 5.971
+2278.163 503.888 6.959 545.347 7.148 260.554 6.298
+2278.321 503.848 7.682 547.853 8.059 254.045 8.065
+2278.477 503.818 8.958 547.398 6.108 239.380 5.267
+2278.634 504.398 6.828 546.564 8.635 243.143 5.681
+2278.793 503.884 7.011 548.485 7.324 262.701 4.544
+2278.952 507.528 6.877 547.584 7.316 264.267 7.462
+2279.109 500.915 8.712 548.655 8.562 236.662 7.960
+2279.265 503.589 8.995 547.626 7.648 241.556 6.041
+2279.424 506.235 6.337 545.786 8.529 259.955 5.923
+2279.582 503.682 7.317 545.237 7.636 262.869 5.434
+2279.741 501.926 6.719 547.512 7.183 250.468 5.227
+2279.898 500.529 7.694 546.485 7.185 243.274 4.930
+2280.056 502.175 7.737 548.634 7.053 247.872 5.648
+2280.214 506.931 6.967 546.526 6.801 266.028 5.023
+2280.373 503.599 9.413 547.155 7.432 255.220 4.984
+2280.531 502.636 8.641 548.891 7.510 239.672 4.937
+2280.688 503.196 7.148 550.978 6.121 247.726 3.268
+2280.846 506.642 7.075 545.229 6.376 258.817 5.346
+2281.004 503.006 7.600 547.832 6.519 254.888 5.804
+2281.162 501.730 6.341 547.858 6.419 248.648 4.418
+2281.320 502.617 7.157 548.268 6.682 256.426 6.077
+2281.479 503.576 6.356 548.022 7.724 253.514 4.409
+2281.637 503.755 6.401 548.510 6.013 246.415 4.638
+2281.795 499.267 6.933 550.105 6.600 247.214 5.199
+2281.953 503.342 5.922 549.521 6.261 249.482 3.947
+2282.111 503.493 7.354 551.885 6.451 255.784 4.938
+2282.268 500.864 7.243 551.108 8.087 253.487 5.348
+2282.426 500.908 7.810 553.871 7.837 238.994 7.146
+2282.583 503.779 6.666 549.978 8.045 249.839 5.989
+2282.742 503.817 6.144 551.489 7.469 265.708 5.521
+2282.900 501.048 6.733 550.404 6.998 253.737 4.621
+2283.057 498.260 6.411 555.184 6.725 242.237 4.802
+2283.214 504.262 7.884 550.891 6.989 254.632 5.066
+2283.372 506.732 7.202 547.589 6.487 262.916 5.637
+2283.531 502.867 6.826 553.775 7.150 253.579 4.029
+2283.687 503.638 6.807 554.977 6.850 247.515 4.504
+2283.845 502.736 7.481 553.879 6.537 248.235 5.792
+2284.003 505.667 6.556 550.228 7.271 261.352 5.854
+2284.161 504.456 7.611 553.242 7.046 255.603 6.387
+2284.319 500.744 6.932 553.512 6.753 245.656 3.625
+2284.476 500.317 9.500 549.785 7.261 248.076 4.932
+2284.634 502.083 6.380 550.107 6.166 257.810 4.542
+2284.792 501.250 6.856 552.041 6.469 262.578 4.873
+2284.951 501.352 6.656 555.380 6.692 253.345 3.799
+2285.109 499.863 10.081 554.853 7.488 237.833 5.410
+2285.266 504.358 13.637 553.508 6.624 246.698 5.940
+2285.424 506.153 7.213 550.125 7.903 261.627 5.672
+2285.582 503.661 6.846 552.531 6.933 252.226 4.665
+2285.739 505.086 6.489 553.275 7.066 243.062 4.682
+2285.897 503.230 7.535 552.062 6.764 260.570 3.948
+2286.055 504.112 7.788 550.290 6.147 263.755 3.602
+2286.213 501.431 6.325 553.543 6.779 239.697 5.893
+2286.371 502.454 7.000 556.925 6.275 243.197 5.156
+2286.529 500.104 6.337 553.479 6.569 262.812 4.984
+2286.688 504.211 6.463 549.624 6.343 259.988 4.228
+2286.847 501.552 6.263 551.506 6.251 245.799 3.875
+2287.005 501.835 6.937 554.795 6.721 250.998 3.708
+2287.164 500.458 6.704 555.468 6.761 253.079 4.405
+2287.322 502.094 6.832 553.524 7.190 250.560 4.642
+2287.480 501.071 7.840 553.015 7.817 256.185 5.846
+2287.638 501.650 7.325 553.890 6.686 251.951 4.766
+2287.796 505.376 8.461 551.549 7.740 247.639 5.354
+2287.954 502.123 7.034 555.475 7.160 256.096 4.508
+2288.112 501.881 6.199 553.194 6.164 257.620 4.884
+2288.271 504.338 6.701 552.852 6.758 254.716 3.823
+2288.429 500.353 7.732 552.188 6.765 245.837 5.645
+2288.586 501.383 9.211 553.931 7.763 242.588 6.434
+2288.744 502.943 6.398 553.559 5.880 260.945 3.621
+2288.904 503.029 5.796 553.805 6.500 264.669 4.203
+2289.062 505.210 7.502 551.328 6.675 249.266 4.743
+2289.220 503.432 8.330 553.173 6.833 245.172 6.626
+2289.377 502.364 8.636 554.801 6.624 258.031 4.076
+2289.535 500.503 6.928 554.028 6.618 250.880 4.355
+2289.692 503.835 11.213 556.600 7.670 241.058 5.537
+2289.850 501.718 8.036 554.556 7.496 256.270 5.313
+2290.008 505.637 7.903 552.425 6.604 260.282 4.592
+2290.167 501.686 6.089 556.184 7.248 253.812 4.961
+2290.325 502.106 6.549 556.131 6.307 249.188 4.581
+2290.483 503.581 5.676 552.861 8.570 254.581 4.392
+2290.641 501.235 9.496 553.378 6.945 257.785 5.517
+2290.799 500.302 7.215 555.013 6.333 252.177 4.596
+2290.957 503.243 11.795 554.080 8.027 253.421 5.538
+2291.114 503.942 7.260 554.600 6.298 255.354 4.246
+2291.271 507.129 7.015 553.936 8.120 241.943 6.681
+2291.428 510.141 7.682 552.589 6.784 256.629 3.964
+2291.587 505.161 7.535 554.255 7.502 254.896 6.063
+2291.745 502.811 6.833 555.052 8.866 239.538 5.286
+2291.903 500.738 6.323 550.250 6.388 259.755 4.038
+2292.062 501.547 6.883 554.502 6.458 255.087 7.738
+2292.219 500.295 7.101 556.175 6.797 245.570 5.958
+2292.376 501.163 7.730 555.341 6.925 254.445 3.831
+2292.533 501.911 8.969 555.333 7.300 251.414 5.769
+2292.691 507.949 6.953 557.733 7.423 258.684 3.693
+2292.849 502.879 11.639 553.597 10.797 251.556 9.647
+2293.007 501.568 7.603 555.636 6.730 252.065 5.174
+2293.166 504.125 9.174 553.246 8.078 264.210 5.648
+2293.323 500.701 9.223 552.002 8.016 252.722 6.560
+2293.481 502.187 6.997 555.220 6.446 249.437 3.829
+2293.638 501.871 6.617 553.442 7.221 248.334 6.388
+2293.796 502.318 6.836 550.804 7.036 255.123 6.499
+2293.954 502.983 9.032 553.628 7.257 250.191 4.985
+2294.111 501.619 7.751 552.256 10.469 252.031 9.618
+2294.267 500.526 7.746 556.402 6.801 236.710 5.896
+2294.425 502.285 7.334 551.184 6.620 250.217 6.334
+2294.583 505.242 6.906 560.561 6.827 264.342 6.088
+2294.741 502.382 7.936 550.355 7.594 252.383 5.853
+2294.898 504.343 7.223 556.863 7.915 244.363 7.660
+2295.054 503.833 7.802 551.578 6.902 245.883 4.799
+2295.212 502.638 7.388 551.175 6.865 262.778 6.246
+2295.370 508.886 6.872 555.751 8.352 259.227 6.745
+2295.528 507.298 7.800 550.597 6.672 251.282 9.112
+2295.684 501.903 7.430 553.876 7.017 245.392 4.939
+2295.842 503.489 7.420 553.098 7.011 264.743 4.008
+2296.000 504.444 7.140 557.601 7.483 248.357 7.121
+2296.157 509.904 8.246 548.886 6.711 238.333 5.707
+2296.315 506.179 7.504 550.408 6.039 262.043 9.062
+2296.473 500.691 7.517 558.934 6.525 258.180 6.436
+2296.631 498.697 6.995 555.389 6.978 240.361 4.199
+2296.789 508.257 8.226 552.353 6.742 254.243 4.225
+2296.947 503.362 11.802 553.053 8.657 256.792 9.812
+2297.103 502.273 7.894 554.450 7.336 252.427 5.147
+2297.260 506.112 9.930 552.464 7.308 247.324 7.037
+2297.417 506.161 9.311 556.064 7.747 252.083 5.334
+2297.575 502.721 7.496 550.930 9.266 263.330 6.704
+2297.732 502.867 9.076 554.429 6.627 256.523 5.076
+2297.890 500.988 6.320 553.804 6.257 251.845 5.132
+2298.049 502.569 7.451 553.038 6.586 251.218 3.897
+2298.207 503.655 8.839 550.060 6.972 255.052 5.564
+2298.365 502.826 6.850 553.500 6.314 251.750 5.008
+2298.523 504.488 6.466 553.565 7.566 251.447 5.770
+2298.682 502.794 6.105 554.595 7.511 257.414 4.080
+2298.840 502.077 9.051 550.656 7.084 255.344 5.014
+2298.998 502.870 7.947 556.056 6.479 253.833 5.788
+2299.155 504.008 10.610 553.720 8.727 250.068 4.759
+2299.313 504.810 6.348 552.607 7.301 251.380 4.529
+2299.471 504.328 8.406 553.526 6.082 251.573 4.681
+2299.629 504.483 6.804 554.535 6.542 256.275 6.596
+2299.788 502.044 6.183 554.315 6.904 253.762 5.719
+2299.946 499.670 7.482 554.913 6.997 253.227 4.797
+2300.104 501.606 7.310 554.119 6.154 254.322 5.186
+2300.262 502.466 6.889 554.811 7.764 255.443 5.293
+2300.420 504.014 13.716 549.598 8.911 253.534 8.847
+2300.576 501.100 10.656 552.606 8.791 248.145 7.658
+2300.733 506.091 7.594 551.416 6.549 254.951 5.297
+2300.892 509.210 8.570 551.794 8.287 249.729 7.344
+2301.049 501.742 7.310 549.578 7.447 255.337 6.245
+2301.207 500.777 10.718 555.485 6.887 260.633 5.873
+2301.366 498.267 7.462 553.134 7.586 250.656 6.144
+2301.524 503.482 7.114 555.661 6.950 250.736 5.387
+2301.682 503.324 6.679 552.016 8.500 251.297 5.233
+2301.839 500.243 10.462 553.570 7.249 252.602 8.635
+2301.997 503.472 7.948 556.155 6.398 251.106 4.266
+2302.154 502.154 9.639 554.271 8.013 245.981 8.318
+2302.310 503.051 7.960 550.722 7.949 249.819 6.718
+2302.466 503.010 12.237 552.967 7.844 246.618 8.369
+2302.623 504.850 7.654 550.389 6.875 250.886 5.708
+2302.781 499.538 7.887 551.853 6.884 255.828 5.266
+2302.938 502.015 11.469 552.198 8.360 250.378 8.930
+2303.096 502.240 9.107 554.562 7.389 254.133 5.413
+2303.254 504.292 8.974 555.555 7.283 252.831 9.836
+2303.410 496.322 10.138 551.725 7.024 246.218 7.645
+2303.568 504.013 8.115 555.287 7.891 254.462 6.770
+2303.724 510.240 8.385 552.822 7.224 253.114 7.452
+2303.882 500.822 8.404 552.048 7.047 243.891 6.871
+2304.038 507.038 7.222 551.250 8.074 257.708 8.653
+2304.195 503.240 11.704 552.772 7.673 256.277 7.231
+2304.352 500.052 12.424 554.227 6.632 254.062 6.183
+2304.510 499.480 8.154 554.062 7.038 253.280 5.701
+2304.667 502.794 9.615 553.680 8.535 259.842 5.648
+2304.826 504.507 16.527 555.376 8.826 250.318 9.488
+2304.981 501.975 12.054 550.203 11.896 249.323 7.326
+2305.138 504.099 7.755 551.992 6.688 255.513 4.449
+2305.296 500.911 7.409 551.469 6.544 251.465 6.524
+2305.453 503.409 7.571 549.254 7.344 244.494 5.591
+2305.611 505.304 10.805 553.652 7.784 256.114 6.545
+2305.769 500.743 7.861 552.706 6.820 252.231 5.484
+2305.928 504.837 11.289 547.777 7.421 256.082 11.870
+2306.085 505.058 8.255 550.997 8.733 250.590 7.856
+2306.242 498.030 6.229 549.560 8.591 248.765 12.241
+2306.399 495.950 9.821 547.915 7.742 254.397 4.502
+2306.557 504.639 11.188 555.749 6.789 260.583 5.625
+2306.716 504.386 11.410 550.487 6.885 253.665 8.263
+2306.873 507.183 9.284 553.654 7.490 241.376 11.390
+2307.029 503.131 9.519 547.596 7.396 252.293 5.203
+2307.187 506.621 7.802 549.476 8.061 259.122 8.673
+2307.345 501.866 8.037 546.364 7.455 259.651 7.646
+2307.502 501.008 10.446 548.673 11.485 250.756 8.014
+2307.660 500.350 8.871 553.886 6.275 237.847 13.360
+2307.816 500.443 9.268 547.638 8.853 248.708 6.833
+2307.973 497.574 10.018 550.396 8.188 246.867 9.236
+2308.130 499.945 11.958 542.434 13.215 259.858 10.065
+2308.287 507.969 9.505 548.324 6.747 255.028 8.150
+2308.445 498.089 12.683 545.713 9.207 252.380 8.983
+2308.602 503.400 11.329 547.307 8.021 249.993 7.048
+2308.759 502.624 12.830 544.923 6.789 239.219 10.171
+2308.917 500.506 12.585 543.189 7.949 266.042 12.079
+2309.075 503.435 12.990 547.661 10.498 251.390 11.812
+2309.232 500.744 7.000 541.566 7.523 250.743 7.293
+2309.390 504.117 6.913 544.685 8.264 255.067 9.098
+2309.547 506.691 16.500 541.116 9.705 253.170 8.256
+2309.703 504.056 14.445 545.691 7.626 246.991 4.012
+2309.861 502.310 9.234 545.726 6.833 253.749 13.259
+2310.017 504.773 15.721 544.777 7.673 242.297 10.106
+2310.172 503.137 11.196 541.187 7.795 249.592 7.384
+2310.331 504.291 9.117 542.951 7.367 257.535 5.926
+2310.489 504.122 6.820 540.989 7.186 254.335 8.687
+2310.646 499.881 8.389 541.299 7.564 237.463 8.197
+2310.802 506.578 17.242 543.423 7.999 247.944 9.756
+2310.958 500.015 9.593 542.624 7.352 257.299 11.774
+2311.116 502.290 11.018 541.406 7.490 254.503 13.087
+2311.273 502.212 9.245 542.764 7.397 253.345 9.084
+2311.430 504.332 12.044 544.247 7.077 245.953 12.065
+2311.588 501.023 8.816 541.862 7.962 253.979 8.335
+2311.745 499.560 9.502 541.128 8.443 249.579 8.528
+2311.901 500.915 8.704 542.691 7.393 246.825 4.687
+2312.059 501.969 11.688 540.706 6.561 248.448 8.514
+2312.217 500.369 6.248 540.687 7.159 247.204 5.216
+2312.375 506.703 8.605 541.206 7.185 260.432 6.541
+2312.532 505.287 12.127 541.352 7.192 244.164 10.554
+2312.689 498.532 6.185 545.313 7.727 231.301 8.068
+2312.846 501.705 8.586 542.353 10.192 259.833 7.308
+2313.005 505.787 10.752 539.523 7.085 268.068 8.313
+2313.163 500.247 6.657 540.235 6.305 246.850 5.503
+2313.321 503.012 9.304 543.162 7.030 242.358 10.686
+2313.477 496.630 9.516 544.511 9.403 244.663 5.996
+2313.635 507.356 10.553 540.695 10.125 255.476 8.959
+2313.792 501.053 9.846 541.007 7.679 249.994 6.913
+2313.950 502.770 11.026 544.280 9.123 247.659 6.834
+2314.107 511.237 15.120 542.082 8.248 251.086 14.277
+2314.263 505.022 12.360 542.170 6.992 246.180 8.554
+2314.421 501.270 13.828 539.701 10.614 263.021 8.376
+2314.579 500.422 12.095 541.657 11.821 243.210 11.717
+2314.736 497.664 9.397 542.216 6.569 241.042 6.031
+2314.893 506.816 11.233 540.812 9.935 246.870 12.637
+2315.050 506.238 12.051 544.678 10.034 251.548 16.766
+2315.206 496.832 19.193 539.566 10.621 244.825 13.178
+2315.363 497.478 9.277 544.515 13.042 244.378 9.012
+2315.519 501.514 10.512 544.325 7.834 255.663 9.453
+2315.676 501.195 10.025 541.453 7.327 250.546 9.903
+2315.833 505.892 17.528 539.164 9.497 265.515 8.498
+2315.990 506.188 11.993 545.231 7.733 247.555 16.330
+2316.145 506.401 9.794 542.242 7.669 244.795 10.840
+2316.303 499.164 7.666 541.132 7.044 250.927 4.630
+2316.461 504.911 6.339 543.021 6.912 254.869 9.624
+2316.618 504.299 11.055 540.520 8.862 245.808 7.331
+2316.776 499.213 14.151 542.965 11.429 249.118 8.692
+2316.933 503.592 14.377 542.519 7.765 252.451 16.131
+2317.088 506.005 9.049 543.815 9.665 246.404 15.855
+2317.245 508.790 9.544 540.268 6.444 265.294 6.022
+2317.402 504.947 11.329 542.292 8.123 241.452 9.001
+2317.559 494.609 10.827 545.883 10.957 223.944 12.832
+2317.716 499.086 14.306 543.838 9.082 265.689 14.023
+2317.875 502.760 11.408 541.738 7.730 260.006 5.732
+2318.033 506.367 7.792 540.167 7.766 246.220 5.088
+2318.191 505.443 9.843 544.771 6.344 240.252 5.717
+2318.348 501.764 9.141 545.007 8.053 244.812 8.134
+2318.505 502.347 7.141 539.030 6.447 268.798 6.551
+2318.665 507.103 7.123 542.560 7.355 265.058 8.042
+2318.824 505.881 7.036 543.545 8.183 242.610 11.550
+2318.980 498.128 6.416 543.505 7.264 242.546 6.029
+2319.139 498.521 6.448 539.645 6.264 264.025 7.133
+2319.298 506.395 6.640 541.266 6.413 260.640 4.612
+2319.456 501.054 8.148 541.522 6.563 253.076 4.388
+2319.613 498.880 8.581 541.935 7.209 239.860 5.479
+2319.769 507.528 9.014 542.349 7.250 249.608 10.011
+2319.927 512.275 7.560 538.203 8.398 263.786 4.859
+2320.085 501.512 10.714 542.452 10.719 238.977 9.070
+2320.242 510.385 7.625 541.374 7.497 248.619 9.138
+2320.398 508.053 8.150 540.133 7.439 252.386 8.818
+2320.555 503.140 10.148 538.271 6.405 254.643 4.805
+2320.713 503.561 7.584 535.802 8.330 253.606 5.240
+2320.872 503.835 10.544 542.228 8.887 240.376 7.446
+2321.029 508.758 10.033 537.562 7.360 249.443 9.335
+2321.186 501.307 6.560 536.125 7.127 252.574 4.066
+2321.344 504.583 7.749 535.491 6.402 251.655 4.765
+2321.501 506.995 8.770 532.854 7.296 250.316 5.485
+2321.659 505.709 6.855 530.208 7.102 249.233 6.073
+2321.816 500.437 9.357 529.222 8.533 244.672 6.661
+2321.974 507.054 6.876 535.832 8.658 255.206 5.470
+2322.131 507.550 13.929 531.278 9.310 260.452 6.224
+2322.290 494.695 9.990 534.332 11.445 247.004 9.935
+2322.447 505.767 7.699 528.013 11.761 243.900 7.965
+2322.604 497.117 8.404 533.550 8.814 256.199 5.975
+2322.761 509.291 9.175 531.955 9.386 256.342 5.442
+2322.920 498.812 10.808 526.949 12.291 242.203 10.043
+2323.077 500.938 7.961 528.829 9.313 259.882 6.671
+2323.234 514.419 11.131 532.128 9.262 252.148 8.046
+2323.390 488.644 12.524 523.601 17.667 230.741 10.108
+2323.547 498.706 11.491 525.416 8.688 252.587 12.800
+2323.704 503.267 10.685 526.814 11.632 248.425 9.935
+2323.861 504.972 7.811 525.058 8.114 250.174 9.667
+2324.019 509.599 10.290 516.510 7.863 265.751 9.197
+2324.175 496.766 8.824 524.455 12.257 233.917 9.143
+2324.332 508.127 9.033 525.584 11.330 229.209 12.895
+2324.490 501.601 9.391 521.115 8.710 276.462 9.094
+2324.647 496.156 8.684 527.371 7.037 226.444 6.886
+2324.804 501.791 17.227 521.853 12.748 250.444 15.754
+2324.960 499.947 9.685 522.958 10.937 281.794 7.304
+2325.118 506.809 13.327 532.099 11.801 208.087 13.624
+2325.274 502.438 9.855 520.511 8.933 223.850 6.909
+2325.432 506.444 9.075 521.935 8.825 282.508 8.094
+2325.589 497.094 9.404 526.189 9.186 240.545 8.344
+2325.745 498.871 8.844 519.441 11.606 239.705 8.197
+2325.902 509.838 15.197 515.864 10.219 273.947 10.270
+2326.059 501.058 9.359 523.468 8.662 239.639 9.304
+2326.215 506.730 12.769 518.384 8.349 224.816 9.571
+2326.373 506.667 11.480 514.133 8.554 267.678 7.166
+2326.530 502.606 7.794 523.681 8.893 246.626 5.525
+2326.688 504.546 12.466 519.826 8.094 239.526 10.173
+2326.845 500.585 10.507 515.188 11.781 248.915 7.475
+2327.002 499.875 9.878 519.731 9.308 251.709 7.178
+2327.160 500.608 12.001 516.987 8.948 257.427 7.293
+2327.317 501.316 8.460 517.759 7.547 233.334 10.891
+2327.474 510.153 7.979 524.407 10.932 245.443 9.209
+2327.631 508.111 10.966 520.924 10.375 265.214 9.094
+2327.789 504.651 11.537 517.939 9.271 231.682 7.966
+2327.947 502.986 8.879 519.049 8.586 246.366 9.783
+2328.104 503.519 10.503 522.380 8.514 262.793 7.953
+2328.261 504.375 11.678 521.213 8.346 248.457 7.481
+2328.418 503.933 9.986 521.512 9.533 238.664 7.119
+2328.575 505.279 8.344 520.165 10.971 261.776 11.165
+2328.733 501.632 8.368 523.801 8.293 256.577 6.993
+2328.890 502.056 8.195 524.718 9.207 239.115 6.553
+2329.047 506.510 13.768 524.907 8.398 247.621 11.065
+2329.204 499.525 12.164 525.439 12.201 241.436 9.788
+2329.363 508.345 9.667 524.254 9.773 259.464 10.837
+2329.520 506.733 9.553 528.352 9.980 241.954 12.200
+2329.677 504.977 11.292 526.703 10.922 241.089 8.579
+2329.836 504.699 8.933 528.857 11.297 263.230 9.563
+2329.993 498.227 8.669 528.808 9.980 235.142 10.093
+2330.150 502.192 11.948 531.738 8.495 229.021 7.595
+2330.308 504.372 9.625 526.097 11.061 265.860 7.121
+2330.466 502.013 9.841 522.680 8.848 269.448 7.409
+2330.623 505.960 8.814 533.466 8.608 234.714 10.415
+2330.779 507.849 9.164 531.944 8.570 235.857 8.096
+2330.935 512.848 10.826 531.579 9.292 250.598 7.200
+2331.094 504.638 8.184 528.845 9.345 259.576 5.958
+2331.252 499.606 7.979 532.228 10.877 241.505 9.929
+2331.408 502.876 9.311 530.792 9.464 237.425 6.291
+2331.566 504.778 9.988 527.817 8.669 266.934 10.451
+2331.724 501.477 10.092 533.248 8.745 259.909 8.247
+2331.881 504.534 8.427 531.802 8.880 238.459 6.338
+2332.038 511.385 8.583 533.908 8.229 247.204 7.367
+2332.196 507.273 8.300 532.429 8.800 256.272 7.286
+2332.353 501.172 8.186 531.124 8.720 250.222 8.555
+2332.509 498.701 8.481 532.511 7.859 241.652 6.848
+2332.667 503.657 10.860 533.105 10.461 256.896 9.571
+2332.824 503.486 7.944 533.491 7.521 255.449 6.556
+2332.980 504.894 7.892 534.594 10.762 240.004 9.252
+2333.137 505.829 8.406 532.756 8.459 244.580 9.565
+2333.294 505.348 8.767 530.317 9.139 253.405 9.745
+2333.451 505.063 8.606 532.623 8.997 250.314 7.502
+2333.608 502.180 8.429 533.186 8.228 243.793 6.863
+2333.765 498.411 9.554 533.311 7.490 251.807 5.486
+2333.922 506.244 9.513 532.043 8.732 258.188 7.912
+2334.079 500.962 8.244 535.450 8.220 238.471 7.699
+2334.235 505.549 8.613 531.804 10.673 250.064 9.169
+2334.393 509.555 7.875 532.378 8.516 260.560 7.354
+2334.550 501.695 9.406 533.923 8.836 253.475 6.261
+2334.707 499.627 9.341 536.889 10.073 237.304 9.214
+2334.864 499.986 11.249 532.648 9.811 242.473 9.687
+2335.022 502.229 10.439 534.186 9.973 255.034 9.259
+2335.180 498.422 7.610 532.311 8.578 260.940 6.434
+2335.338 497.774 10.918 534.543 7.404 239.639 6.903
+2335.495 498.697 10.377 531.425 9.339 239.006 5.388
+2335.654 502.107 8.199 531.684 7.916 272.220 6.474
+2335.811 496.841 8.745 533.496 7.192 258.542 6.374
+2335.969 495.008 10.636 535.395 8.515 228.405 8.138
+2336.125 492.230 8.230 537.784 7.555 235.574 8.292
+2336.283 495.892 7.765 532.397 9.605 266.225 7.597
+2336.442 497.589 8.060 529.024 9.317 259.562 6.125
+2336.598 488.325 10.051 535.420 7.865 239.065 7.796
+2336.754 489.873 11.154 534.744 8.847 245.330 7.742
+2336.911 494.778 7.196 529.707 7.101 261.023 4.956
+2337.070 493.467 8.151 532.707 7.048 254.020 8.815
+2337.226 489.094 7.916 536.767 7.366 237.230 5.544
+2337.384 494.731 7.124 537.317 9.066 253.032 6.652
+2337.542 497.397 8.365 535.543 8.393 262.220 6.085
+2337.700 486.964 9.713 533.375 7.739 254.422 8.111
+2337.856 485.839 8.124 534.083 7.376 242.704 6.750
+2338.013 487.038 10.871 533.520 9.099 255.827 8.953
+2338.171 482.980 7.241 531.205 7.167 258.508 7.231
+2338.329 485.129 7.125 532.242 7.219 248.485 7.836
+2338.486 490.931 8.711 535.292 6.953 245.364 7.887
+2338.644 495.109 8.063 533.752 8.510 263.913 5.773
+2338.802 488.101 7.427 534.847 6.910 256.319 6.842
+2338.960 486.631 6.946 536.408 6.950 236.923 4.696
+2339.117 485.366 8.934 535.744 8.199 244.689 6.034
+2339.274 485.583 7.203 533.827 7.172 255.236 6.037
+2339.432 484.765 8.787 534.188 6.738 258.242 14.343
+2339.589 484.887 8.044 535.801 8.031 251.722 7.278
+2339.745 478.818 7.300 536.338 6.687 243.717 5.531
+2339.903 488.738 8.972 534.223 7.028 255.577 5.890
+2340.060 487.027 7.276 536.572 6.263 255.435 6.003
+2340.219 486.730 6.708 536.845 7.467 249.034 6.585
+2340.376 486.437 6.231 536.378 6.661 253.700 4.325
+2340.534 487.054 8.641 535.193 7.242 254.197 7.408
+2340.691 487.820 7.002 536.241 8.587 253.101 10.294
+2340.848 487.328 11.021 535.432 7.188 247.171 6.978
+2341.006 491.573 6.731 536.294 7.075 248.471 7.144
+2341.163 488.475 8.127 536.563 7.807 246.844 7.336
+2341.319 488.524 7.321 534.745 6.966 260.128 7.245
+2341.476 484.395 7.487 532.897 6.187 257.031 3.986
+2341.635 486.224 6.612 533.699 6.670 253.240 6.719
+2341.792 482.772 7.848 535.517 6.436 252.692 4.909
+2341.949 487.137 7.062 534.505 7.123 256.976 6.756
+2342.108 487.161 9.040 533.765 7.112 253.509 6.264
+2342.265 491.631 10.367 530.327 7.467 256.215 7.425
+2342.423 490.926 9.759 533.513 7.897 251.902 6.901
+2342.580 493.309 7.205 536.355 8.263 242.179 6.753
+2342.737 490.693 6.884 533.963 7.351 250.361 7.064
+2342.894 491.166 11.658 531.379 6.490 255.913 5.146
+2343.051 486.051 9.631 532.503 6.280 247.089 4.909
+2343.210 486.290 7.283 533.415 6.074 248.430 5.282
+2343.368 486.372 7.212 532.334 7.362 254.434 4.195
+2343.526 484.053 6.846 531.273 7.183 256.544 5.458
+2343.684 482.320 6.392 531.172 8.070 255.385 4.680
+2343.842 485.983 5.705 531.141 5.981 259.073 5.962
+2344.000 487.629 7.737 533.701 6.090 249.980 6.920
+2344.157 487.946 8.629 533.687 6.464 244.879 6.055
+2344.315 492.239 8.504 533.656 6.773 254.878 4.554
+2344.472 488.282 10.465 531.396 7.043 256.578 12.554
+2344.629 490.182 7.362 534.124 6.344 246.235 5.286
+2344.787 489.361 13.773 534.591 6.317 247.702 4.656
+2344.944 487.353 6.569 534.206 6.330 252.837 4.273
+2345.101 486.453 7.914 533.932 6.678 257.758 6.330
+2345.260 486.664 7.432 532.659 7.239 258.417 5.466
+2345.418 485.726 6.629 535.196 6.873 246.534 5.389
+2345.576 487.197 8.949 535.632 6.754 246.745 6.185
+2345.733 487.932 7.625 533.726 7.189 256.477 5.912
+2345.892 487.239 6.852 533.437 6.393 261.894 3.754
+2346.050 485.502 6.113 534.024 6.547 251.298 5.159
+2346.208 485.925 8.514 536.120 6.328 243.943 6.403
+2346.365 489.639 7.359 536.181 7.193 245.979 15.546
+2346.522 489.506 10.110 535.681 6.227 255.299 4.946
+2346.679 487.845 6.847 534.976 6.628 248.633 6.475
+2346.836 484.668 5.906 535.969 6.586 248.076 3.728
+2346.994 486.146 8.284 536.749 6.574 252.200 3.796
+2347.152 486.721 6.546 536.627 6.739 252.832 5.380
+2347.310 485.607 8.827 536.436 6.278 254.418 4.389
+2347.467 481.966 6.525 536.374 6.377 252.574 4.402
+2347.626 487.559 7.265 537.493 6.487 261.865 5.157
+2347.784 481.105 7.233 537.634 6.445 256.348 5.954
+2347.942 487.571 7.986 537.146 6.548 244.883 5.076
+2348.099 487.075 6.495 537.581 5.758 246.698 4.609
+2348.257 487.450 6.618 537.045 6.204 258.687 5.477
+2348.416 486.964 5.926 536.460 6.851 257.666 4.671
+2348.574 486.309 6.575 537.304 6.531 245.446 6.492
+2348.732 490.723 6.085 537.883 6.182 247.604 4.885
+2348.890 487.257 7.588 537.218 6.717 261.046 5.714
+2349.049 487.332 9.198 536.072 6.844 259.490 7.027
+2349.206 483.703 7.046 537.760 6.233 246.184 4.189
+2349.364 484.657 8.362 538.537 6.947 248.591 4.659
+2349.522 483.246 7.916 538.715 6.356 252.545 4.616
+2349.680 485.732 8.170 537.237 7.716 257.445 7.879
+2349.837 483.927 7.868 537.692 6.877 259.064 6.444
+2349.995 484.219 6.561 537.917 6.330 250.420 5.454
+2350.153 486.502 7.651 539.859 6.193 249.244 5.159
+2350.312 490.245 6.944 538.298 7.182 256.282 5.005
+2350.470 490.432 7.351 538.543 6.524 253.682 5.360
+2350.628 486.164 6.576 536.895 6.344 248.526 5.136
+2350.786 488.921 8.387 539.689 7.159 249.185 3.912
+2350.944 489.899 8.449 539.726 7.392 256.761 5.404
+2351.102 486.889 6.662 537.157 7.076 254.647 5.627
+2351.259 488.868 6.277 537.801 6.077 250.476 3.421
+2351.418 487.778 7.391 539.008 6.658 250.594 5.647
+2351.576 488.847 5.868 538.720 6.242 255.195 3.738
+2351.735 491.418 7.763 537.607 7.035 252.251 4.789
+2351.892 490.304 6.481 538.036 6.416 249.492 4.092
+2352.050 490.163 7.354 538.180 6.602 251.794 5.207
+2352.208 491.981 6.889 537.461 6.535 254.737 3.958
+2352.365 491.329 5.914 537.434 6.379 251.787 4.253
+2352.524 495.233 7.442 538.774 7.719 252.707 5.005
+2352.681 492.702 6.552 538.967 6.729 246.407 4.581
+2352.839 490.947 6.661 538.029 6.625 248.494 4.990
+2352.998 492.679 7.547 536.740 8.244 255.924 4.287
+2353.156 495.016 6.324 538.667 6.739 254.869 4.630
+2353.313 493.440 8.033 538.906 6.797 249.838 4.980
+2353.471 490.974 6.171 538.379 6.532 245.688 4.323
+2353.629 493.839 6.752 537.273 6.922 253.956 4.966
+2353.788 498.018 5.801 537.952 6.400 259.199 4.016
+2353.947 493.950 6.364 538.319 7.430 252.152 4.402
+2354.104 495.069 6.114 538.243 6.907 248.141 5.498
+2354.263 492.640 7.089 538.312 6.210 250.061 4.749
+2354.421 496.176 6.739 538.273 6.373 255.610 3.825
+2354.579 497.251 6.735 538.282 7.462 252.116 3.921
+2354.736 498.222 6.474 538.002 6.836 246.961 4.897
+2354.894 497.152 7.040 539.540 6.652 249.209 4.419
+2355.051 497.571 6.557 537.885 6.666 250.432 4.364
+2355.209 496.825 6.600 539.898 7.030 249.704 5.606
+2355.367 495.738 8.908 540.069 7.107 252.977 7.448
+2355.524 499.477 8.020 537.900 6.890 258.959 4.380
+2355.681 497.524 10.632 538.149 6.704 246.009 4.988
+2355.839 496.635 5.932 538.531 6.949 245.270 4.495
+2355.997 497.656 5.937 537.345 6.112 252.482 4.443
+2356.156 503.686 7.035 538.123 5.953 259.444 4.508
+2356.314 497.496 6.858 538.741 6.445 247.104 5.429
+2356.472 500.985 5.943 538.497 6.243 243.471 4.572
+2356.630 500.199 6.988 538.515 5.995 253.844 5.193
+2356.787 502.702 5.830 538.685 6.388 255.838 3.703
+2356.946 499.637 6.137 540.046 7.597 245.668 4.709
+2357.104 502.986 8.877 538.860 7.276 249.516 5.947
+2357.263 501.959 6.615 539.198 6.661 250.875 5.366
+2357.421 499.219 6.506 539.962 6.915 249.878 5.420
+2357.578 502.652 7.295 537.879 6.329 252.378 5.591
+2357.735 502.446 6.714 539.088 6.758 250.863 5.352
+2357.893 501.524 7.174 539.091 6.316 250.408 4.667
+2358.051 500.025 6.185 538.091 6.007 248.954 5.219
+2358.209 503.220 8.187 538.660 7.106 252.979 5.212
+2358.368 502.622 6.938 537.156 6.054 254.059 4.131
+2358.526 502.086 5.968 539.121 5.966 247.500 4.298
+2358.683 498.960 6.007 539.871 7.124 249.185 5.597
+2358.841 504.479 7.757 538.578 6.070 254.171 4.850
+2358.999 504.204 7.490 537.705 7.677 254.311 6.052
+2359.157 505.182 6.513 541.087 6.357 246.313 4.370
+2359.315 505.701 6.083 539.650 6.407 245.013 4.342
+2359.473 503.177 7.609 539.836 7.067 250.880 5.354
+2359.632 500.751 5.895 538.818 6.145 256.298 4.756
+2359.790 502.317 6.990 539.388 6.530 254.123 4.782
+2359.948 500.703 6.503 539.533 5.946 245.271 4.778
+2360.105 502.307 5.973 540.945 6.191 245.642 3.360
+2360.264 503.803 6.321 538.419 6.656 255.446 4.064
+2360.422 500.468 6.684 539.554 6.293 253.864 4.949
+2360.580 501.934 6.017 539.805 6.564 244.538 4.572
+2360.738 502.009 5.833 540.418 6.243 245.395 6.179
+2360.896 502.060 7.152 539.734 6.275 255.883 3.932
+2361.055 501.900 8.023 539.197 6.664 256.118 4.223
+2361.213 504.589 6.765 539.292 6.426 250.111 4.150
+2361.371 505.905 7.436 542.283 6.807 245.351 4.313
+2361.528 502.869 7.146 539.042 6.844 249.853 5.446
+2361.685 503.438 7.057 538.930 7.367 252.148 3.664
+2361.843 505.894 6.038 539.609 6.287 254.491 4.020
+2362.002 506.299 6.716 539.776 6.339 253.304 6.071
+2362.160 503.013 7.081 541.077 7.012 245.853 3.848
+2362.318 501.890 6.304 540.160 8.365 247.158 5.354
+2362.476 506.538 5.815 539.571 7.035 254.241 4.817
+2362.634 504.925 6.352 539.885 6.468 255.652 4.783
+2362.793 507.599 5.912 540.608 7.043 247.816 5.218
+2362.951 506.586 6.762 541.796 6.594 245.108 4.220
+2363.109 507.815 7.347 538.698 6.569 252.511 4.113
+2363.266 508.158 7.128 539.997 6.900 252.715 4.196
+2363.424 509.181 6.890 540.870 6.608 248.667 4.043
+2363.582 506.241 6.958 540.158 7.496 248.436 4.568
+2363.739 507.702 6.471 540.471 6.598 248.844 4.002
+2363.896 508.487 6.604 538.764 7.197 252.258 5.101
+2364.054 509.944 6.913 540.507 7.365 249.622 5.724
+2364.212 508.279 6.249 538.285 6.703 249.886 5.705
+2364.370 510.852 6.929 539.602 6.603 252.788 4.836
+2364.527 507.568 6.591 539.106 6.307 249.237 4.513
+2364.685 509.955 6.234 538.171 6.679 248.752 4.285
+2364.843 508.809 6.584 539.321 6.330 251.167 4.280
+2365.002 512.348 6.865 541.873 6.724 249.331 5.698
+2365.160 510.753 6.871 538.968 6.635 252.663 4.709
+2365.318 510.777 8.826 540.159 7.580 245.206 5.379
+2365.475 512.347 7.080 540.491 6.642 246.212 4.529
+2365.633 512.913 7.303 538.924 6.619 250.582 5.945
+2365.792 512.849 8.657 540.539 6.662 253.665 4.969
+2365.949 511.838 6.147 538.865 6.355 252.736 3.867
+2366.108 511.718 8.179 539.798 6.395 243.677 4.078
+2366.265 511.347 7.287 539.988 6.751 246.606 4.534
+2366.422 513.453 5.960 538.079 6.586 253.366 4.956
+2366.581 514.164 7.327 540.110 7.437 255.763 5.929
+2366.739 512.821 8.247 541.391 7.048 247.567 7.015
+2366.897 512.678 7.248 541.584 7.349 243.245 6.591
+2367.054 514.656 7.403 542.025 7.555 248.992 4.159
+2367.212 517.936 7.404 540.470 6.336 254.029 3.545
+2367.371 513.339 8.170 541.444 6.667 249.810 4.987
+2367.528 519.053 9.188 540.564 7.008 248.628 5.764
+2367.685 511.480 6.487 541.545 7.121 246.656 5.310
+2367.842 517.564 7.590 542.185 6.876 246.326 5.571
+2368.000 513.735 7.142 539.231 6.490 251.653 5.319
+2368.159 511.867 7.507 538.822 6.484 256.866 3.613
+2368.318 515.418 6.543 541.018 6.668 250.018 4.856
+2368.475 521.024 6.906 540.960 7.188 246.750 7.401
+2368.632 519.930 6.726 540.129 9.468 248.627 8.209
+2368.790 517.199 8.857 539.481 6.708 257.176 5.733
+2368.948 515.972 6.702 539.564 6.406 252.011 5.291
+2369.107 516.059 7.046 540.485 7.011 245.130 5.365
+2369.264 515.010 8.281 542.074 7.736 243.191 6.705
+2369.423 516.720 8.144 540.600 8.289 253.301 6.596
+2369.579 516.417 7.686 539.616 6.649 256.803 4.838
+2369.738 515.564 7.092 541.016 7.540 245.778 5.808
+2369.896 513.225 7.331 541.530 6.700 240.357 7.040
+2370.053 515.542 8.316 542.205 6.892 250.753 5.359
+2370.212 519.195 6.930 539.282 6.672 262.407 5.278
+2370.371 516.572 6.983 541.062 6.329 250.124 5.184
+2370.529 517.495 6.816 541.180 6.817 240.701 4.818
+2370.686 516.735 7.551 541.691 6.374 243.967 4.467
+2370.845 516.907 6.976 540.457 6.998 255.499 4.497
+2371.003 518.049 6.544 539.864 6.959 250.945 5.212
+2371.161 519.200 7.180 540.158 7.000 247.969 5.739
+2371.320 512.512 6.204 540.861 7.927 243.099 4.310
+2371.477 512.005 6.305 538.688 6.284 251.901 4.044
+2371.636 516.460 7.018 539.436 6.423 254.249 4.445
+2371.795 516.474 7.605 540.404 6.317 251.812 4.079
+2371.953 517.024 6.946 539.554 6.887 246.818 3.727
+2372.111 514.480 7.455 540.055 6.748 250.538 5.820
+2372.268 516.304 6.020 541.590 6.540 250.075 3.955
+2372.426 518.633 6.695 540.525 7.645 250.580 5.284
+2372.584 516.126 6.088 540.095 6.490 247.135 4.309
+2372.743 514.421 7.402 540.261 7.583 247.611 4.302
+2372.900 517.264 6.886 541.992 8.176 249.346 4.398
+2373.058 517.992 8.460 541.120 6.425 250.633 4.816
+2373.216 517.040 6.917 539.331 6.771 248.246 6.391
+2373.373 516.200 6.569 542.273 8.278 244.182 6.833
+2373.531 513.202 6.536 540.342 7.401 248.761 5.813
+2373.689 515.982 6.107 541.093 6.029 257.527 3.669
+2373.849 512.869 6.562 538.710 6.413 250.835 4.459
+2374.007 516.678 6.068 541.947 6.860 243.938 5.340
+2374.165 514.486 6.890 540.269 6.311 247.409 5.126
+2374.324 513.604 6.191 539.532 6.025 254.824 4.077
+2374.482 515.956 6.986 540.005 7.288 254.338 4.859
+2374.639 516.709 7.319 541.000 5.993 244.293 5.023
+2374.797 518.437 6.804 540.780 7.007 248.012 3.971
+2374.956 518.754 6.854 539.397 7.192 253.320 5.689
+2375.114 516.647 7.578 540.514 7.352 256.003 5.276
+2375.274 515.886 7.541 539.065 7.211 244.920 4.796
+2375.432 513.388 6.781 540.970 7.098 244.369 7.582
+2375.590 517.674 6.208 541.009 6.412 255.553 4.596
+2375.748 520.166 8.555 539.930 7.312 252.955 5.888
+2375.906 515.761 8.107 540.559 6.169 247.579 6.179
+2376.063 516.707 7.741 541.345 6.385 247.035 5.003
+2376.221 513.967 7.532 540.133 7.036 249.840 4.500
+2376.379 517.889 7.428 541.211 7.636 254.498 5.405
+2376.537 518.348 6.359 539.752 6.254 246.095 3.715
+2376.695 515.403 5.863 539.227 6.422 243.580 3.870
+2376.854 517.924 6.357 542.742 6.759 252.235 4.078
+2377.012 511.229 7.368 538.887 6.864 255.882 5.214
+2377.169 516.082 6.919 537.748 6.300 250.328 4.287
+2377.327 516.270 7.142 539.357 6.807 247.783 4.960
+2377.485 516.162 7.390 540.993 6.430 251.927 4.918
+2377.643 521.081 7.103 539.730 6.570 254.389 5.777
+2377.801 512.730 6.828 540.807 6.266 241.593 6.048
+2377.959 517.807 6.498 541.218 6.520 249.515 3.837
+2378.117 514.028 6.729 540.682 6.831 250.345 5.493
+2378.275 517.710 6.544 540.046 6.522 251.303 4.807
+2378.432 518.557 7.810 540.390 6.191 243.973 4.637
+2378.590 519.015 7.308 540.103 6.355 248.389 4.386
+2378.749 519.210 7.726 540.131 6.022 252.113 5.688
+2378.907 516.132 7.983 540.521 6.788 249.021 5.838
+2379.065 514.041 9.703 539.375 6.899 246.380 6.310
+2379.222 516.670 7.008 540.943 7.868 250.553 5.406
+2379.380 515.356 8.749 540.299 7.172 248.805 6.547
+2379.538 514.963 8.324 540.013 6.060 251.308 5.143
+2379.696 514.099 7.507 540.880 7.235 249.233 5.043
+2379.854 517.381 6.927 540.128 6.134 257.972 4.578
+2380.014 514.323 6.773 541.301 6.433 242.689 5.084
+2380.172 519.313 8.166 541.053 6.641 244.516 6.435
+2380.330 514.513 6.734 539.740 6.933 250.395 4.484
+2380.489 516.505 7.400 541.377 7.020 256.024 5.362
+2380.647 518.535 6.274 541.013 6.711 246.080 4.450
+2380.806 515.215 6.730 539.750 6.196 237.710 5.067
+2380.964 519.872 8.725 540.127 6.418 250.077 9.999
+2381.121 518.988 8.582 540.711 7.036 254.950 7.265
+2381.279 517.340 6.357 540.127 6.388 249.669 5.042
+2381.437 513.743 6.367 539.721 6.289 246.246 4.089
+2381.595 516.627 7.062 541.107 6.138 247.972 4.546
+2381.753 516.176 9.324 540.021 7.275 251.219 7.375
+2381.911 515.861 9.310 538.860 6.863 255.142 7.657
+2382.068 519.048 10.171 539.918 6.750 254.941 6.137
+2382.226 512.340 6.562 540.199 6.616 249.099 8.280
+2382.384 510.883 9.904 541.782 7.149 235.041 9.161
+2382.541 513.278 8.388 540.707 7.046 252.950 6.185
+2382.699 520.182 9.653 539.837 8.015 257.149 4.797
+2382.857 518.841 7.447 543.188 7.354 250.701 6.197
+2383.015 518.008 6.983 543.401 6.142 241.797 4.348
+2383.174 514.170 6.485 541.874 7.581 248.657 5.170
+2383.332 518.231 6.829 541.708 6.564 256.736 4.383
+2383.490 518.702 7.543 543.367 7.224 253.707 7.301
+2383.648 519.217 7.296 541.893 7.157 241.167 6.501
+2383.805 515.952 6.616 544.718 6.236 244.901 4.252
+2383.964 518.889 9.641 543.077 7.446 251.959 6.306
+2384.121 515.468 6.603 540.480 6.130 255.409 4.030
+2384.279 516.564 7.261 540.604 7.056 254.024 5.354
+2384.437 516.665 6.638 542.706 8.110 245.810 5.574
+2384.595 519.916 6.682 543.407 6.526 247.598 5.748
+2384.754 513.999 7.859 541.274 7.744 249.086 7.080
+2384.911 515.250 6.014 541.502 6.376 255.220 4.333
+2385.069 517.692 6.802 542.435 7.004 251.372 4.766
+2385.227 519.806 7.984 543.684 7.508 240.373 5.215
+2385.384 520.768 6.917 542.806 7.544 245.193 6.571
+2385.542 519.437 7.488 541.138 6.609 257.571 5.663
+2385.700 518.424 7.784 542.381 7.252 251.045 4.915
+2385.858 512.834 9.575 542.593 6.890 240.990 6.599
+2386.015 514.218 7.287 541.936 6.752 246.539 5.205
+2386.174 517.362 7.678 541.489 7.916 258.035 4.925
+2386.332 515.553 6.480 541.715 7.200 253.230 4.472
+2386.489 515.335 6.564 540.947 7.069 243.202 6.247
+2386.647 512.063 8.611 544.009 6.389 248.502 4.266
+2386.805 515.280 6.611 541.950 6.340 257.835 5.741
+2386.964 514.652 7.138 541.339 6.869 255.988 4.295
+2387.122 513.936 6.358 540.633 6.715 244.629 5.332
+2387.281 515.249 7.071 541.676 6.294 245.256 3.954
+2387.439 515.452 6.423 542.356 6.311 254.552 4.501
+2387.597 518.314 6.789 541.023 7.566 251.865 6.767
+2387.755 516.603 8.653 542.010 7.142 245.688 5.026
+2387.913 516.416 6.749 540.500 6.924 245.606 4.880
+2388.070 513.624 6.133 543.035 8.259 245.586 5.132
+2388.228 514.606 8.807 541.230 10.008 253.645 7.044
+2388.387 509.876 6.262 541.032 8.035 255.726 5.483
+2388.544 508.798 7.466 541.500 6.335 248.167 5.456
+2388.702 508.908 6.475 541.665 6.620 241.151 5.658
+2388.860 514.869 9.387 541.836 7.234 253.451 5.121
+2389.019 512.148 8.127 540.548 7.147 263.754 5.256
+2389.177 507.681 7.029 541.285 6.898 245.277 5.127
+2389.334 507.446 7.647 543.492 6.244 239.852 3.893
+2389.492 513.254 6.340 542.465 6.765 257.108 4.096
+2389.651 511.912 7.396 541.084 6.771 254.041 5.015
+2389.809 510.869 6.121 540.700 6.789 243.310 4.555
+2389.967 509.778 8.478 541.947 6.683 243.433 5.491
+2390.125 509.467 9.406 540.509 6.917 256.484 4.581
+2390.283 508.554 6.459 541.375 6.373 254.654 5.302
+2390.441 509.355 11.139 540.083 8.462 244.306 6.328
+2390.599 507.573 7.011 541.880 6.413 248.333 4.297
+2390.757 503.715 6.659 540.458 6.373 252.033 4.124
+2390.915 504.227 7.803 541.284 7.117 254.570 4.810
+2391.072 506.382 7.758 541.332 6.827 254.065 5.454
+2391.231 507.253 6.235 542.143 6.099 251.410 4.916
+2391.388 504.082 7.932 541.521 6.350 251.764 5.611
+2391.545 503.460 9.221 541.565 6.827 246.517 4.321
+2391.702 507.714 10.016 540.885 8.114 249.375 4.413
+2391.860 508.157 6.220 540.808 6.952 248.493 4.751
+2392.017 504.131 7.051 540.098 6.836 250.404 4.250
+2392.176 503.211 12.323 539.891 7.124 248.654 12.026
+2392.333 504.692 8.217 538.459 6.672 252.516 5.127
+2392.490 504.986 6.591 540.104 6.217 248.055 4.067
+2392.648 505.249 5.846 538.331 6.649 253.160 3.718
+2392.806 499.792 6.412 540.733 5.975 252.791 3.826
+2392.964 498.317 9.254 537.557 7.161 247.687 5.278
+2393.121 499.483 7.656 537.805 6.334 255.646 4.129
+2393.279 495.464 9.595 535.328 11.459 251.156 6.584
+2393.436 489.584 8.770 534.683 7.163 249.311 5.607
+2393.593 493.725 7.588 534.466 6.512 251.443 9.400
+2393.751 488.647 7.024 534.594 7.799 245.854 5.210
+2393.909 489.866 11.603 534.516 7.035 249.518 6.304
+2394.066 498.258 10.369 533.445 7.577 255.895 7.250
+2394.224 497.332 7.852 532.204 7.168 259.188 5.036
+2394.382 496.783 10.036 537.222 9.433 239.841 9.362
+2394.539 491.597 11.028 536.092 7.863 236.018 8.189
+2394.696 491.196 7.806 534.160 6.664 264.900 5.700
+2394.853 492.502 8.383 545.981 7.314 253.999 5.325
+2395.011 491.195 8.979 541.979 7.386 244.050 5.825
+2395.169 491.911 7.716 539.829 6.561 245.650 4.781
+2395.327 488.269 10.000 536.148 8.756 251.576 9.143
+2395.484 486.962 9.335 530.791 12.239 261.915 9.869
+2395.641 483.569 8.537 535.817 9.021 252.049 5.967
+2395.798 480.045 9.087 536.318 7.235 244.870 6.633
+2395.956 482.710 13.290 536.523 8.267 254.658 8.987
+2396.113 486.347 8.500 534.305 7.673 264.216 5.843
+2396.271 488.913 7.474 532.063 7.125 260.592 4.479
+2396.429 484.439 7.830 531.750 6.809 239.715 3.965
+2396.585 494.664 6.657 534.147 7.268 244.577 5.881
+2396.743 513.086 9.947 539.381 10.817 259.275 6.823
+2396.901 519.750 11.338 535.063 8.013 247.772 6.910
+2397.057 509.807 8.735 537.790 8.456 232.697 7.160
+2397.215 491.088 12.450 532.858 8.572 244.717 19.577
+2397.371 502.890 9.205 536.688 14.247 254.607 22.892
+2397.528 506.758 11.367 540.636 12.412 257.606 15.885
+2397.684 505.327 9.495 535.956 7.593 256.186 6.884
+2397.842 493.283 9.019 534.549 8.374 248.781 7.678
+2397.999 508.022 9.186 535.485 6.865 255.757 7.697
+2398.157 508.730 10.633 538.674 6.871 251.867 5.074
+2398.315 501.577 8.780 537.126 7.449 252.208 6.438
+2398.472 522.055 7.752 537.411 6.815 254.442 6.709
+2398.630 513.960 7.174 535.224 6.671 244.204 6.051
+2398.788 521.629 21.871 537.772 13.642 235.252 18.604
+2398.944 518.316 13.688 535.577 11.618 235.222 11.666
+2399.101 514.693 16.874 536.225 9.716 255.912 11.494
+2399.258 518.366 11.554 534.632 7.570 262.449 6.759
+2399.415 509.183 9.157 545.356 7.979 242.814 10.478
+2399.572 508.111 7.477 539.713 7.582 244.308 7.423
+2399.730 515.861 7.262 534.547 7.277 262.143 6.374
+2399.887 523.348 7.265 536.025 7.009 254.651 7.622
+2400.045 512.333 9.777 539.320 9.083 238.576 11.419
+2400.202 513.123 11.383 540.243 8.847 239.105 14.775
+2400.358 515.371 13.984 537.342 6.677 249.611 8.052
+2400.515 511.603 7.414 537.303 6.821 251.186 5.303
+2400.672 507.406 6.876 541.883 7.151 247.341 6.178
+2400.829 505.134 8.156 540.648 6.513 252.013 5.781
+2400.988 503.691 7.729 537.516 7.364 254.210 9.924
+2401.144 500.536 5.956 541.065 6.274 245.262 7.875
+2401.301 513.865 11.007 544.740 8.318 248.612 6.673
+2401.460 505.268 7.399 538.187 8.304 253.546 7.022
+2401.617 508.452 9.602 537.571 8.131 254.535 8.138
+2401.773 508.844 6.736 540.705 6.580 245.285 5.179
+2401.931 509.658 15.984 542.967 6.546 246.082 12.244
+2402.088 501.716 10.844 546.869 9.705 238.110 8.812
+2402.244 502.267 6.393 543.698 6.692 257.011 4.624
+2402.403 502.492 7.344 540.727 7.487 262.460 7.137
+2402.560 500.594 8.532 541.897 8.162 249.464 5.569
+2402.717 500.565 8.130 538.859 6.860 243.804 4.482
+2402.874 496.845 6.582 539.818 5.993 249.888 5.300
+2403.033 504.718 10.795 539.198 6.922 265.448 10.950
+2403.190 499.057 8.280 543.932 7.348 250.994 5.992
+2403.348 503.130 9.494 545.049 7.890 249.529 10.519
+2403.506 500.581 8.460 539.260 7.927 245.335 7.894
+2403.663 495.015 6.205 543.322 6.104 257.683 4.732
+2403.822 493.450 7.056 539.133 6.947 257.846 5.295
+2403.980 492.934 6.296 540.371 5.908 250.118 3.557
+2404.138 493.199 7.713 540.143 6.487 252.851 5.539
+2404.297 493.972 6.348 541.841 6.076 259.048 4.512
+2404.456 496.379 5.591 542.418 5.959 249.680 4.482
+2404.614 491.593 6.377 541.724 6.281 253.646 6.132
+2404.772 497.365 8.678 541.057 6.808 252.776 5.360
+2404.930 496.933 7.552 543.160 7.466 245.127 7.240
+2405.087 496.849 8.488 540.371 6.691 243.341 7.264
+2405.244 499.708 7.429 540.923 6.389 251.193 4.294
+2405.401 497.937 6.935 541.599 6.002 255.371 3.642
+2405.559 497.749 7.116 541.816 6.189 260.983 3.721
+2405.718 498.047 9.293 543.948 6.840 244.919 8.703
+2405.876 501.020 6.035 541.209 6.184 243.699 4.729
+2406.033 502.760 7.108 543.742 5.987 251.327 4.692
+2406.191 498.987 5.974 541.277 5.946 258.043 3.816
+2406.350 501.549 5.699 541.962 6.221 258.420 3.300
+2406.509 501.725 8.047 543.939 5.858 244.004 3.638
+2406.666 501.607 7.079 542.189 6.394 243.220 4.439
+2406.823 501.016 6.386 542.261 6.789 255.952 3.513
+2406.982 502.370 7.285 541.622 6.364 255.849 6.444
+2407.139 499.263 6.752 542.966 6.574 252.888 5.710
+2407.296 500.032 6.922 543.299 6.795 251.108 3.574
+2407.454 501.240 7.262 542.393 6.398 254.471 3.865
+2407.612 502.182 6.051 541.894 6.020 248.834 6.169
+2407.769 502.801 5.883 540.579 6.384 252.988 3.222
+2407.928 505.328 6.497 541.555 5.792 250.099 3.737
+2408.086 506.163 5.599 543.265 6.310 255.621 5.308
+2408.245 502.631 5.848 542.472 6.123 241.306 7.996
+2408.402 504.906 7.388 542.604 6.102 253.963 4.553
+2408.560 501.869 6.180 541.076 5.872 246.659 5.067
+2408.718 506.918 9.143 540.740 6.917 260.246 5.908
+2408.876 503.339 7.803 542.007 6.356 251.942 4.451
+2409.034 502.513 7.233 542.490 5.960 252.169 4.847
+2409.191 500.475 6.721 543.134 6.917 249.531 5.668
+2409.349 499.334 6.645 541.231 5.969 254.115 4.275
+2409.507 502.453 5.616 541.932 5.858 252.571 3.550
+2409.664 503.764 5.932 541.779 5.961 251.515 3.374
+2409.823 502.927 6.152 542.817 6.327 250.025 3.618
+2409.982 501.809 7.116 541.658 6.172 250.530 3.682
+2410.139 504.388 8.792 540.766 6.990 248.455 4.624
+2410.297 501.003 6.693 542.147 6.160 248.774 4.705
+2410.454 502.580 9.539 540.951 8.018 246.357 9.123
+2410.611 505.545 8.289 542.509 6.474 251.713 3.276
+2410.768 504.255 5.460 541.955 5.933 250.367 4.347
+2410.926 502.782 5.713 542.739 6.111 250.323 3.571
+2411.084 502.717 5.723 542.047 6.016 251.183 5.877
+2411.243 505.117 5.840 541.810 5.944 254.961 3.520
+2411.401 501.811 6.483 541.248 5.792 250.189 4.265
+2411.558 500.358 6.606 542.532 5.872 247.941 3.866
+2411.717 502.763 5.661 540.495 5.919 254.579 3.367
+2411.875 501.917 5.684 543.115 6.023 252.675 4.144
+2412.032 500.109 6.165 541.971 6.042 247.566 3.658
+2412.191 502.311 5.632 542.589 5.844 251.555 4.050
+2412.348 506.503 5.526 541.435 5.938 255.715 4.243
+2412.506 504.265 5.816 541.914 5.953 249.967 3.472
+2412.664 503.872 8.062 542.419 5.988 248.069 4.146
+2412.822 499.908 5.758 541.454 5.901 249.780 4.138
+2412.980 503.189 6.358 540.924 6.413 254.907 4.406
+2413.137 499.911 6.334 541.139 6.333 253.499 4.635
+2413.296 497.179 7.417 541.371 6.649 247.075 3.746
+2413.453 498.421 5.853 541.433 6.699 252.520 3.643
+2413.611 489.654 6.748 541.574 6.095 252.135 4.265
+2413.769 496.406 6.075 540.445 5.934 251.621 5.614
+2413.927 494.984 6.845 538.634 6.306 255.106 4.213
+2414.086 495.689 5.976 539.976 6.637 255.471 4.359
+2414.244 495.536 8.825 540.279 9.554 249.814 6.297
+2414.400 496.855 12.231 542.702 15.802 242.438 7.993
+2414.556 498.488 7.693 536.947 6.143 250.744 3.770
+2414.714 501.934 7.031 540.459 5.950 250.877 4.483
+2414.872 499.969 8.949 541.824 7.752 252.198 5.219
+2415.029 498.769 7.522 542.478 6.137 247.522 3.472
+2415.186 500.247 5.960 540.534 6.423 251.805 4.495
+2415.345 504.682 6.320 544.745 6.101 250.158 6.493
+2415.503 501.686 6.038 542.297 6.450 254.501 3.719
+2415.661 497.116 9.036 543.043 6.577 253.665 7.176
+2415.818 493.861 7.629 542.640 6.745 248.236 5.188
+2415.975 490.018 6.296 542.876 6.707 253.862 4.569
+2416.133 498.480 6.410 543.618 6.612 252.028 6.709
+2416.291 500.624 7.156 542.546 7.558 255.020 4.808
+2416.449 499.796 7.087 543.185 5.951 251.400 4.517
+2416.606 505.827 7.225 543.171 6.212 248.374 3.744
+2416.763 508.298 6.857 543.581 5.881 251.113 3.464
+2416.921 506.803 7.031 541.525 5.947 245.791 5.698
+2417.079 506.258 5.865 541.295 6.446 251.337 3.513
+2417.238 506.092 7.599 543.273 6.278 243.883 17.210
+2417.395 500.400 10.721 542.862 7.107 248.248 4.613
+2417.553 504.784 7.220 540.878 8.076 254.772 14.127
+2417.709 496.207 10.903 541.778 6.579 262.097 8.861
+2417.867 503.392 12.104 544.337 9.138 251.441 7.856
+2418.023 509.443 9.518 541.063 6.114 245.784 3.929
+2418.180 508.104 10.514 543.500 7.177 245.717 5.436
+2418.338 507.601 6.521 543.275 6.534 249.167 4.142
+2418.496 508.646 7.030 540.972 6.439 250.511 3.567
+2418.654 506.596 5.965 540.809 6.219 250.945 3.655
+2418.812 505.746 6.232 541.898 6.474 253.709 3.657
+2418.970 504.747 6.544 542.129 6.734 249.607 4.299
+2419.128 502.827 10.416 540.201 9.021 251.176 9.168
+2419.285 503.448 7.603 542.652 6.734 254.891 7.355
+2419.441 503.514 6.049 539.706 7.320 248.208 4.974
+2419.598 504.755 8.558 542.847 6.719 250.552 4.962
+2419.755 504.177 5.999 543.348 6.162 251.005 4.391
+2419.914 505.941 7.225 540.823 9.481 248.130 6.415
+2420.072 505.759 8.158 544.208 6.400 246.841 4.756
+2420.229 503.847 10.320 541.662 6.331 248.128 5.576
+2420.386 505.008 11.225 543.996 6.493 249.861 9.266
+2420.543 503.070 8.697 543.330 6.707 253.238 6.022
+2420.701 507.980 5.654 543.193 6.758 250.352 4.130
+2420.859 506.779 6.233 543.912 6.194 249.723 3.760
+2421.017 504.557 6.221 542.509 6.010 249.987 3.753
+2421.176 501.305 6.427 542.925 6.013 254.469 3.621
+2421.334 502.833 6.488 543.749 6.566 254.874 4.242
+2421.492 503.808 6.144 544.177 6.162 250.928 4.524
+2421.650 500.928 6.696 543.721 6.006 247.329 3.977
+2421.808 503.149 9.782 542.747 6.789 258.533 6.749
+2421.965 501.471 8.157 542.717 6.876 257.505 6.257
+2422.123 506.824 6.702 543.577 6.190 255.655 4.454
+2422.282 507.438 7.874 544.335 6.092 244.896 3.624
+2422.439 506.714 8.763 542.993 6.966 252.138 4.281
+2422.596 503.657 5.716 543.440 6.419 248.341 4.879
+2422.754 499.816 7.063 543.954 6.921 248.243 5.458
+2422.912 502.228 5.628 541.789 6.169 250.072 3.350
+2423.070 501.022 6.286 541.387 6.516 253.600 3.633
+2423.228 500.340 6.128 543.383 6.016 251.276 4.195
+2423.387 502.113 6.487 542.463 6.544 255.272 4.904
+2423.545 501.101 6.445 540.844 6.204 258.122 4.266
+2423.704 503.671 6.150 542.178 6.931 254.101 5.837
+2423.862 505.656 6.550 543.391 6.557 245.481 5.658
+2424.019 507.986 7.721 544.264 6.556 248.704 4.267
+2424.176 507.359 5.882 543.102 6.093 250.467 3.567
+2424.334 504.463 6.095 542.391 6.306 247.144 3.453
+2424.492 502.054 5.866 543.184 6.020 243.931 3.523
+2424.650 499.390 5.998 543.401 6.188 247.419 3.642
+2424.809 501.743 5.930 541.694 6.466 262.304 3.467
+2424.969 502.737 6.580 541.336 6.006 263.893 4.937
+2425.127 498.807 8.022 542.423 6.360 251.648 4.573
+2425.284 497.038 5.977 543.994 7.945 239.206 10.724
+2425.442 502.200 6.054 540.769 6.004 253.332 6.107
+2425.601 504.562 6.475 541.537 6.415 261.493 5.104
+2425.759 505.795 5.882 544.205 5.866 247.724 3.812
+2425.917 507.308 5.975 544.142 6.644 239.597 3.674
+2426.075 504.443 5.995 543.181 6.470 245.845 4.352
+2426.233 504.394 6.098 540.471 6.235 258.608 4.524
+2426.392 507.253 12.210 541.404 6.481 249.256 8.181
+2426.549 507.012 9.674 541.024 7.996 254.812 5.007
+2426.707 501.510 12.976 542.310 6.546 250.018 9.583
+2426.863 502.685 6.330 542.263 6.048 251.370 5.385
+2427.021 500.406 6.993 541.822 6.361 248.483 5.942
+2427.179 498.594 5.912 540.228 6.059 255.574 3.820
+2427.338 495.455 6.671 539.062 7.615 258.395 6.093
+2427.496 504.614 6.869 541.710 6.466 252.473 4.634
+2427.654 499.076 6.155 542.847 6.366 239.294 5.062
+2427.812 504.080 6.314 541.988 6.444 248.622 6.000
+2427.971 506.390 6.790 540.139 6.443 261.036 5.631
+2428.129 507.603 6.674 543.281 6.373 252.540 6.113
+2428.287 507.716 7.658 543.032 6.640 241.705 4.779
+2428.444 508.677 8.924 542.510 6.517 244.307 5.953
+2428.602 507.356 6.037 542.315 6.565 256.973 4.420
+2428.761 501.873 8.462 542.273 6.418 251.859 3.983
+2428.918 500.578 5.808 542.042 6.536 243.018 4.080
+2429.075 501.555 5.990 542.600 6.160 247.220 6.204
+2429.234 505.925 7.861 542.326 6.285 258.372 7.810
+2429.391 502.269 6.169 541.403 5.970 256.343 5.092
+2429.549 499.862 6.491 542.154 6.017 246.733 5.068
+2429.707 498.858 6.707 542.391 6.748 243.227 5.965
+2429.864 500.358 7.695 541.834 5.861 254.432 5.377
+2430.022 505.513 7.965 541.818 6.601 257.154 5.541
+2430.179 504.975 7.013 541.338 6.005 248.691 5.842
+2430.338 503.549 5.886 543.483 5.787 244.056 3.790
+2430.496 506.385 6.995 543.034 6.169 251.540 3.281
+2430.654 506.983 7.602 540.990 6.006 253.685 3.680
+2430.812 505.289 7.731 542.259 6.827 250.256 5.071
+2430.969 504.622 6.471 542.272 6.022 251.132 3.773
+2431.127 505.856 7.235 543.172 6.358 247.041 5.245
+2431.284 499.898 5.963 543.161 6.021 249.830 3.123
+2431.442 501.329 6.226 541.091 6.841 251.478 6.446
+2431.600 502.183 6.942 541.470 6.366 257.034 4.636
+2431.758 502.971 6.256 543.124 6.501 246.250 3.350
+2431.917 503.589 6.187 543.711 5.989 248.982 3.676
+2432.075 504.345 5.972 541.127 6.206 255.009 4.355
+2432.235 503.473 5.598 541.281 6.424 257.300 4.227
+2432.393 502.484 8.069 542.622 6.230 245.823 4.072
+2432.550 503.574 5.672 542.846 6.314 244.598 4.181
+2432.708 506.565 6.838 543.008 6.274 254.376 3.824
+2432.866 503.525 5.942 541.960 5.885 250.183 3.731
+2433.024 501.365 5.851 541.459 5.903 253.501 4.703
+2433.182 502.943 5.769 542.204 5.973 255.615 4.076
+2433.340 504.929 7.848 542.622 6.190 253.836 4.597
+2433.497 505.559 5.833 542.926 6.872 243.968 4.271
+2433.655 504.395 8.375 543.209 7.142 243.139 4.516
+2433.813 506.324 6.636 540.832 6.778 260.961 4.762
+2433.972 505.023 6.601 542.938 6.935 259.079 5.003
+2434.130 501.290 6.060 543.329 6.015 246.920 3.557
+2434.289 500.882 11.745 542.813 6.989 236.739 9.165
+2434.446 515.128 15.190 545.448 7.580 256.877 4.597
+2434.604 503.771 9.214 542.714 6.656 255.698 11.110
+2434.760 505.387 7.176 543.407 6.884 252.167 6.008
+2434.917 501.533 6.459 543.174 6.640 247.411 4.516
+2435.075 504.165 7.262 541.991 6.253 242.364 7.227
+2435.232 507.981 6.504 542.929 6.137 255.323 4.459
+2435.391 508.049 6.467 542.899 6.490 254.473 4.646
+2435.549 504.170 5.974 541.809 6.530 248.194 3.661
+2435.707 500.541 5.962 541.428 5.881 251.831 4.215
+2435.865 501.875 6.318 541.704 6.280 254.088 3.284
+2436.023 503.448 6.575 541.177 6.025 256.820 6.522
+2436.182 506.164 6.820 542.941 5.934 242.748 7.693
+2436.339 507.171 7.391 541.989 5.918 246.177 4.059
+2436.497 505.291 6.223 542.749 6.532 257.111 4.754
+2436.656 504.382 6.439 542.797 6.002 257.161 4.651
+2436.814 504.123 7.046 541.618 6.728 246.141 6.286
+2436.972 505.951 6.956 541.996 6.628 242.621 4.083
+2437.129 507.419 7.136 543.520 5.946 252.516 4.222
+2437.287 505.484 7.407 541.315 6.017 256.735 3.747
+2437.445 501.794 6.473 543.053 5.809 247.307 3.952
+2437.602 502.207 5.866 542.260 6.229 250.063 3.463
+2437.761 504.632 6.003 541.982 6.047 256.670 3.402
+2437.921 506.346 5.863 542.089 5.893 254.466 4.333
+2438.079 502.933 6.500 542.680 5.909 243.694 3.335
+2438.237 503.799 6.171 542.076 5.963 252.496 3.261
+2438.396 502.768 5.647 541.000 5.790 259.215 3.634
+2438.555 502.717 6.538 543.610 6.126 255.412 4.048
+2438.713 504.417 6.797 542.756 5.950 242.314 4.308
+2438.870 507.564 9.262 541.667 6.153 249.893 4.012
+2439.028 505.705 7.230 542.426 6.282 256.598 4.330
+2439.186 503.317 5.673 541.834 6.261 254.826 5.304
+2439.344 505.883 5.707 543.538 5.860 244.938 4.685
+2439.502 502.618 6.120 541.905 5.771 248.219 5.191
+2439.660 505.736 6.143 540.929 5.936 256.992 3.777
+2439.821 504.667 5.981 542.259 5.727 253.059 4.066
+2439.978 504.376 6.191 541.062 5.979 249.350 3.176
+2440.137 501.443 7.213 541.950 6.283 246.613 4.193
+2440.294 502.884 5.654 541.629 6.026 250.546 3.526
+2440.453 506.168 6.904 542.256 6.139 253.145 4.276
+2440.611 505.481 6.213 542.852 6.127 251.301 4.143
+2440.769 505.584 6.008 540.938 6.764 253.073 4.333
+2440.927 502.325 5.704 541.349 6.066 249.410 3.743
+2441.085 503.333 6.864 543.383 6.332 244.624 3.756
+2441.243 505.703 8.275 542.273 6.586 252.206 3.958
+2441.401 507.167 6.622 539.982 5.861 260.742 4.170
+2441.559 502.071 6.015 541.849 6.063 255.957 3.584
+2441.718 500.550 6.700 543.728 6.165 245.729 5.883
+2441.876 501.045 5.901 541.687 5.920 242.757 3.829
+2442.034 504.280 5.584 541.456 5.988 254.137 3.171
+2442.193 506.942 5.567 541.174 6.265 256.521 3.055
+2442.352 504.829 5.729 542.311 5.917 248.385 3.612
+2442.509 503.288 5.743 544.963 6.043 245.373 4.210
+2442.668 504.232 6.870 541.749 5.935 251.183 3.698
+2442.826 504.122 6.191 542.207 5.994 258.881 3.834
+2442.986 504.101 6.360 540.422 6.423 256.398 4.599
+2443.144 503.541 7.942 543.364 7.467 238.264 10.146
+2443.301 500.525 6.880 543.353 6.064 248.262 6.742
+2443.458 500.125 20.830 542.303 7.166 251.082 19.135
+2443.616 502.431 8.822 542.313 6.507 256.740 6.064
+2443.773 501.414 8.786 543.893 8.048 247.347 11.547
+2443.929 502.504 7.430 542.118 6.903 245.003 5.084
+2444.088 502.065 9.527 543.061 8.810 252.390 7.669
+2444.246 503.570 10.203 540.880 6.724 261.643 7.348
+2444.404 502.335 9.070 541.448 8.087 248.156 6.929
+2444.559 501.673 9.987 543.624 9.171 240.141 6.379
+2444.717 503.516 9.737 541.356 7.538 259.151 7.005
+2444.875 503.005 14.285 540.833 8.920 257.601 10.781
+2445.033 505.180 12.008 541.198 7.127 248.816 9.753
+2445.190 503.431 6.626 542.202 7.473 246.368 4.232
+2445.347 503.074 7.276 540.972 7.230 254.463 7.310
+2445.505 500.470 7.270 541.489 6.923 256.164 4.928
+2445.663 507.964 6.716 542.674 7.360 252.091 4.497
+2445.820 500.429 10.867 543.066 7.611 245.360 6.808
+2445.977 501.784 7.274 542.830 8.394 246.893 5.060
+2446.134 499.307 9.098 541.868 6.949 249.508 6.199
+2446.292 502.833 8.038 543.078 6.588 259.175 6.814
+2446.450 504.298 7.410 539.570 6.492 258.401 6.105
+2446.608 503.352 9.009 541.945 6.245 241.964 6.372
+2446.765 501.933 7.588 544.079 6.054 244.319 3.418
+2446.924 503.169 6.598 540.720 6.397 259.243 4.477
+2447.082 519.141 10.321 542.757 6.589 261.072 5.525
+2447.242 503.321 6.003 541.807 7.016 245.690 4.470
+2447.399 504.493 12.557 542.738 6.783 233.916 10.700
+2447.557 505.924 9.249 541.817 6.524 249.909 6.517
+2447.715 506.349 6.785 541.678 7.239 260.699 5.213
+2447.874 501.863 8.623 540.096 6.280 248.317 7.095
+2448.031 502.068 6.249 543.841 5.763 246.283 3.441
+2448.189 505.190 7.827 544.028 6.333 251.222 3.753
+2448.347 504.461 5.715 541.470 6.140 254.752 3.764
+2448.506 501.564 6.601 540.744 6.230 257.517 3.668
+2448.665 503.025 8.235 540.837 6.627 252.905 6.891
+2448.822 503.480 10.231 545.098 6.356 238.549 8.405
+2448.979 508.204 10.081 542.801 6.401 254.405 4.396
+2449.138 506.472 6.381 542.638 6.803 251.644 5.853
+2449.296 502.894 7.185 540.696 6.353 250.066 4.347
+2449.454 503.869 6.339 544.887 7.014 248.270 4.612
+2449.612 503.068 6.449 542.838 6.553 252.362 4.341
+2449.769 503.820 5.984 540.168 6.724 253.123 4.446
+2449.927 503.378 7.098 540.951 6.206 253.351 5.065
+2450.085 503.063 6.228 541.959 6.542 250.043 4.976
+2450.244 501.930 7.677 541.699 6.167 253.880 6.602
+2450.402 505.759 13.248 542.747 6.391 252.678 8.353
+2450.559 504.547 8.449 538.947 7.658 251.056 5.121
+2450.716 501.755 9.323 540.499 6.738 248.400 6.059
+2450.874 499.587 9.185 541.635 7.447 247.664 5.929
+2451.032 508.425 8.760 542.926 7.395 257.756 7.550
+2451.189 499.304 7.237 541.259 6.838 252.217 6.255
+2451.346 503.433 7.286 541.682 7.047 247.652 4.319
+2451.503 505.264 7.885 542.026 6.318 247.966 4.372
+2451.661 502.402 5.922 542.120 6.498 251.629 4.487
+2451.820 503.624 8.830 541.851 6.278 258.436 4.140
+2451.977 504.156 7.463 540.788 6.226 247.464 3.388
+2452.135 501.851 6.126 542.577 6.306 246.224 4.376
+2452.293 502.948 6.276 543.865 6.883 253.542 4.349
+2452.452 501.449 6.643 540.578 6.442 256.345 4.420
+2452.610 503.164 6.320 539.765 5.939 251.983 4.597
+2452.767 503.331 7.027 543.007 6.047 243.169 4.108
+2452.925 502.853 8.477 542.150 7.984 248.491 5.563
+2453.082 505.468 5.969 541.841 6.639 255.024 5.446
+2453.240 501.954 9.595 541.898 7.215 253.690 10.060
+2453.397 505.869 10.174 540.889 8.176 246.026 7.101
+2453.554 505.178 6.672 544.248 7.085 245.600 6.710
+2453.712 504.631 6.571 541.532 6.720 257.516 5.235
+2453.870 505.166 7.583 541.175 6.905 253.185 4.412
+2454.028 501.891 6.461 540.911 6.273 251.841 4.331
+2454.186 501.268 6.887 542.739 6.520 250.278 4.308
+2454.344 504.302 6.397 543.717 6.589 250.682 4.378
+2454.502 504.913 8.485 542.237 6.804 251.366 4.461
+2454.659 504.359 6.957 541.542 6.821 249.333 9.071
+2454.816 501.613 10.332 543.405 6.152 251.033 4.157
+2454.973 502.016 7.262 542.674 6.191 250.760 4.875
+2455.131 504.250 6.774 541.746 6.862 253.737 5.755
+2455.288 505.782 8.214 540.757 6.119 253.527 4.174
+2455.446 504.337 6.597 542.517 6.026 247.725 4.913
+2455.603 504.223 6.993 541.835 6.923 244.977 5.417
+2455.761 503.732 11.585 541.928 8.425 255.439 7.101
+2455.918 503.327 7.896 541.709 7.241 253.404 4.564
+2456.075 503.533 6.176 541.637 6.492 250.384 4.394
+2456.233 504.735 6.610 542.516 6.153 250.343 4.474
+2456.390 502.587 6.848 541.615 6.263 251.263 3.782
+2456.549 503.195 6.033 540.936 5.963 258.382 3.253
+2456.707 505.122 5.739 542.499 6.592 253.843 4.579
+2456.865 504.041 7.303 539.915 6.342 250.238 6.497
+2457.022 507.080 6.283 543.619 5.906 248.502 4.438
+2457.181 505.200 6.459 542.826 6.882 249.845 7.698
+2457.338 503.222 6.312 541.878 6.647 250.298 4.315
+2457.496 500.662 6.514 541.768 6.072 250.362 4.528
+2457.654 502.636 6.777 542.297 6.103 247.733 3.581
+2457.812 503.616 6.726 542.133 6.289 254.347 4.148
+2457.970 503.776 6.057 543.061 6.368 255.983 5.861
+2458.129 504.547 6.961 542.500 7.564 248.309 4.584
+2458.287 505.555 7.141 541.905 6.097 246.703 4.017
+2458.444 505.105 6.722 541.049 5.971 251.407 5.390
+2458.603 505.211 6.395 541.510 6.064 254.794 3.400
+2458.761 504.222 6.528 542.185 6.500 250.917 5.805
+2458.918 503.602 8.045 543.871 6.431 250.769 4.325
+2459.075 504.716 7.151 542.468 6.503 250.887 4.692
+2459.233 505.687 6.189 543.314 6.214 248.858 4.103
+2459.392 499.906 11.288 540.913 8.181 259.658 7.040
+2459.549 502.319 6.663 540.159 8.353 252.236 6.118
+2459.707 505.713 11.286 543.231 6.224 252.612 6.914
+2459.864 503.067 8.914 543.432 6.205 243.036 4.736
+2460.022 505.780 7.503 543.094 6.103 248.320 4.872
+2460.179 506.607 8.606 540.961 6.585 257.073 5.465
+2460.338 504.366 6.653 540.739 6.081 258.340 5.993
+2460.496 503.733 6.597 542.337 6.127 251.003 5.159
+2460.654 501.967 9.155 542.973 6.935 245.960 4.565
+2460.811 501.989 8.075 542.389 6.542 241.929 6.977
+2460.968 501.049 6.493 541.503 5.944 254.219 4.095
+2461.127 504.070 7.880 540.675 6.736 267.792 7.578
+2461.284 500.240 8.476 541.676 6.671 253.537 6.173
+2461.442 501.332 10.628 543.236 10.012 235.015 7.422
+2461.598 505.663 8.334 541.912 7.364 241.640 7.406
+2461.756 509.446 12.662 540.489 6.878 262.636 5.501
+2461.915 502.734 10.041 539.124 5.989 263.096 4.334
+2462.073 501.357 6.981 542.391 6.213 241.661 5.150
+2462.230 501.123 8.522 543.783 7.235 237.156 5.078
+2462.388 501.571 8.858 542.017 6.653 256.231 6.172
+2462.548 505.525 6.296 539.170 6.579 264.832 3.970
+2462.706 500.735 7.315 541.411 5.787 248.588 4.832
+2462.864 501.757 11.012 542.154 6.847 244.655 8.601
+2463.021 503.237 7.331 541.991 7.262 247.846 4.278
+2463.179 505.152 8.537 540.639 7.328 258.458 4.864
+2463.337 504.171 9.260 540.686 5.995 252.734 4.148
+2463.494 506.891 9.371 541.456 6.180 251.387 6.283
+2463.651 501.938 5.816 543.534 7.045 249.673 4.581
+2463.809 500.619 6.996 542.905 6.397 240.046 5.839
+2463.967 500.586 6.018 541.199 6.394 253.100 5.698
+2464.126 509.345 7.621 539.282 6.422 264.141 6.282
+2464.284 503.073 5.843 543.392 6.275 250.041 7.038
+2464.441 501.380 6.036 542.064 6.332 236.130 4.866
+2464.599 502.563 6.683 542.040 6.204 251.661 4.686
+2464.758 501.605 6.584 539.580 6.607 265.546 4.343
+2464.917 501.046 6.307 539.365 6.916 254.105 6.622
+2465.074 499.460 6.073 542.813 5.966 241.161 3.835
+2465.233 505.794 6.582 541.758 6.263 258.381 3.962
+2465.392 505.048 5.806 540.577 6.033 257.053 4.133
+2465.550 502.240 7.765 541.905 6.707 242.590 3.927
+2465.708 503.232 5.920 542.309 6.464 245.425 4.077
+2465.866 505.392 5.915 540.633 6.061 257.654 5.810
+2466.025 506.123 6.381 541.976 5.962 251.256 5.281
+2466.183 502.241 5.913 542.889 6.059 240.322 3.930
+2466.341 504.282 6.523 540.978 6.329 243.813 4.453
+2466.500 499.622 6.486 540.999 6.173 263.198 4.659
+2466.659 498.516 6.118 540.080 6.475 256.412 4.483
+2466.817 499.775 6.095 541.360 6.248 251.094 4.278
+2466.975 505.787 6.395 542.023 6.422 245.510 3.988
+2467.133 503.607 7.059 542.620 6.477 247.265 4.000
+2467.290 499.956 6.056 541.576 5.893 263.612 4.201
+2467.450 507.889 5.691 540.215 6.277 255.266 5.364
+2467.608 503.748 5.994 541.412 5.801 241.362 4.283
+2467.766 504.947 6.596 543.934 6.182 238.733 3.504
+2467.924 507.469 6.688 542.729 6.268 257.977 4.164
+2468.083 505.364 9.398 539.357 6.166 261.629 4.181
+2468.241 503.713 8.013 540.893 6.425 247.666 4.564
+2468.398 500.797 6.243 541.089 6.368 241.566 4.344
+2468.557 508.398 9.479 542.270 7.190 252.715 5.417
+2468.715 508.964 6.988 541.192 7.277 261.277 6.273
+2468.874 511.639 5.970 539.042 6.439 251.382 4.675
+2469.031 508.036 6.761 543.210 6.384 243.943 3.758
+2469.190 505.600 6.069 542.992 6.464 246.299 4.316
+2469.347 506.796 7.072 542.279 6.459 249.493 4.291
+2469.505 513.208 6.960 540.112 6.224 255.504 4.892
+2469.663 508.752 7.207 539.371 7.287 253.765 6.131
+2469.820 507.417 6.869 539.583 6.735 247.297 6.256
+2469.978 503.514 6.134 540.615 6.411 243.892 6.985
+2470.135 504.365 7.930 539.576 6.419 252.368 8.266
+2470.294 510.013 5.965 538.985 6.604 263.263 4.393
+2470.452 508.290 6.163 539.309 6.510 245.052 4.085
+2470.610 507.722 7.172 541.573 6.347 243.920 4.778
+2470.767 509.617 9.082 541.645 6.951 252.149 5.726
+2470.926 511.336 7.583 539.746 6.393 257.101 6.900
+2471.083 511.313 10.565 539.397 6.921 250.401 4.850
+2471.241 508.233 6.930 539.714 6.555 239.614 5.645
+2471.398 509.502 5.981 541.007 7.129 244.776 4.662
+2471.556 511.255 5.673 540.400 5.954 258.457 4.331
+2471.715 507.472 7.118 538.744 6.359 259.274 4.088
+2471.874 504.624 6.729 538.807 6.484 247.912 4.664
+2472.032 506.106 7.429 540.138 6.338 242.759 4.359
+2472.190 510.021 7.865 540.821 6.351 250.167 6.693
+2472.347 511.850 7.613 540.038 6.809 257.891 5.431
+2472.505 506.718 7.352 540.680 6.598 250.718 6.303
+2472.662 503.397 5.739 540.286 6.043 244.337 4.725
+2472.820 510.284 8.027 541.052 6.382 252.033 4.403
+2472.977 510.752 8.437 540.560 6.560 250.050 4.204
+2473.136 510.287 9.100 538.135 6.563 250.700 6.308
+2473.293 505.882 7.027 540.861 7.503 252.967 9.467
+2473.450 507.648 12.016 539.618 6.196 245.319 5.146
+2473.607 505.826 7.611 539.296 6.101 249.643 3.864
+2473.765 507.768 5.666 537.753 6.276 259.056 4.778
+2473.924 507.997 6.064 538.887 5.769 254.810 3.286
+2474.082 504.790 5.799 540.178 5.855 243.688 3.442
+2474.241 503.767 5.477 539.631 5.728 246.296 3.657
+2474.399 504.387 6.317 539.556 6.017 255.792 4.295
+2474.557 505.823 6.623 538.935 6.283 250.667 3.982
+2474.715 506.218 6.384 540.409 6.117 248.836 5.036
+2474.873 507.082 7.831 539.304 6.613 253.058 6.399
+2475.030 503.620 7.899 539.803 5.918 250.290 4.116
+2475.188 504.356 6.681 539.278 6.076 246.552 4.218
+2475.345 506.073 6.719 538.502 6.699 246.105 4.780
+2475.503 508.600 5.844 538.305 6.004 251.611 3.940
+2475.661 504.346 5.718 540.533 6.507 254.586 5.157
+2475.819 505.163 7.045 539.495 6.346 249.515 3.935
+2475.975 504.651 7.417 540.044 5.900 245.335 3.959
+2476.133 503.296 5.922 539.160 6.073 251.613 5.208
+2476.291 504.532 6.195 540.351 5.989 256.796 4.189
+2476.450 502.475 5.707 539.313 6.122 252.877 3.850
+2476.608 504.944 5.533 539.603 5.912 242.538 3.533
+2476.766 503.699 6.218 538.916 6.181 247.375 3.576
+2476.925 503.017 5.969 540.289 6.168 255.923 5.173
+2477.084 502.140 5.819 540.593 6.304 256.139 4.403
+2477.243 503.061 6.225 539.035 5.747 253.321 4.159
+2477.400 501.990 5.945 541.500 6.193 244.193 3.954
+2477.558 506.839 6.589 543.175 6.809 245.051 4.806
+2477.715 515.868 7.388 540.451 6.288 251.550 7.480
+2477.874 516.878 11.869 540.124 7.685 250.305 10.917
+2478.031 506.768 16.971 543.111 16.727 254.683 16.308
+2478.186 509.587 7.747 544.971 6.866 250.076 8.541
+2478.345 522.975 8.757 540.149 11.355 251.670 11.148
+2478.502 516.719 7.180 541.781 8.144 252.536 4.401
+2478.660 511.817 9.588 541.307 6.543 246.145 5.332
+2478.817 506.928 6.910 536.513 6.282 242.531 5.673
+2478.975 511.769 6.866 541.895 6.279 255.995 4.391
+2479.134 511.267 6.891 543.459 6.272 254.959 3.928
+2479.292 511.272 6.032 545.884 6.321 249.319 7.104
+2479.450 513.212 13.830 539.428 7.037 251.913 8.298
+2479.606 519.672 7.251 541.514 7.416 249.469 8.320
+2479.763 510.036 8.464 539.285 6.894 248.674 6.635
+2479.920 520.110 8.426 538.272 7.091 254.776 6.827
+2480.079 516.321 11.739 540.922 8.073 244.177 7.161
+2480.236 533.003 7.590 540.249 8.188 243.681 6.951
+2480.393 523.800 9.522 542.112 10.289 243.826 9.017
+2480.551 517.218 10.119 542.691 7.003 246.478 5.411
+2480.709 513.092 6.748 536.086 7.185 247.664 7.270
+2480.867 507.090 10.850 538.170 7.205 249.426 7.444
+2481.024 501.570 6.987 537.701 7.281 245.234 4.053
+2481.182 504.505 6.416 536.037 6.085 256.702 3.823
+2481.341 500.735 6.329 535.650 6.682 260.797 3.937
+2481.500 499.507 6.735 536.686 6.805 255.327 4.773
+2481.657 495.115 8.727 541.196 6.272 247.693 6.952
+2481.814 499.281 11.715 538.112 10.141 256.466 8.467
+2481.972 502.562 10.572 538.141 7.751 249.674 11.906
+2482.129 502.055 10.646 538.661 7.917 255.806 8.350
+2482.286 507.580 7.670 541.016 6.030 252.378 7.257
+2482.444 498.315 8.012 536.360 7.128 246.203 8.327
+2482.599 500.543 7.673 539.933 7.839 244.012 5.448
+2482.757 497.135 6.644 542.069 7.286 248.810 7.229
+2482.914 489.351 6.245 539.490 6.276 256.688 3.938
+2483.072 484.213 5.904 539.455 6.159 250.936 4.483
+2483.231 480.832 6.097 539.874 6.655 250.299 4.101
+2483.389 476.238 6.237 538.928 7.392 259.183 10.108
+2483.547 467.322 8.221 537.979 7.254 256.631 10.790
+2483.705 485.163 14.613 535.599 9.022 259.416 10.968
+2483.862 484.641 8.554 542.536 6.377 250.684 6.844
+2484.018 491.566 10.788 537.975 7.498 252.696 7.971
+2484.176 488.825 6.347 538.019 6.778 244.296 5.312
+2484.334 492.088 7.636 541.800 6.325 253.112 5.002
+2484.492 484.750 7.091 543.198 7.637 248.691 9.889
+2484.649 493.457 10.132 540.622 6.630 250.256 5.493
+2484.807 489.584 8.771 538.946 6.579 248.612 3.765
+2484.964 497.835 5.722 540.299 6.057 257.636 3.764
+2485.124 493.418 6.236 543.463 6.427 247.726 4.364
+2485.281 491.974 9.062 539.174 6.608 253.897 5.037
+2485.439 492.469 7.493 543.801 6.129 250.119 3.732
+2485.597 501.044 6.451 542.618 6.645 252.411 5.469
+2485.754 497.800 7.081 541.406 6.681 244.874 4.465
+2485.912 500.738 8.041 542.154 6.369 251.808 3.296
+2486.070 497.007 8.979 539.821 7.441 251.408 5.089
+2486.227 496.000 6.271 540.478 5.910 255.084 3.798
+2486.386 495.790 6.781 541.454 6.415 246.200 4.291
+2486.544 498.697 6.336 542.404 6.375 254.732 5.704
+2486.703 503.186 6.582 541.544 6.182 256.707 4.259
+2486.861 501.051 5.968 541.575 5.912 251.497 3.700
+2487.019 500.900 6.937 540.985 6.622 248.165 4.653
+2487.177 503.559 7.459 540.319 6.441 249.931 4.000
+2487.334 504.805 6.940 540.243 5.984 250.979 3.273
+2487.493 505.588 6.296 542.572 6.061 248.829 3.358
+2487.652 505.075 6.795 542.555 6.196 249.148 4.987
+2487.809 501.680 6.522 539.945 6.378 252.291 4.452
+2487.967 501.786 6.800 541.729 6.715 249.602 3.841
+2488.125 501.377 7.783 541.227 7.124 250.026 4.703
+2488.282 501.683 6.196 541.532 6.826 251.880 3.782
+2488.440 504.886 6.061 540.975 6.689 257.608 3.922
+2488.599 501.158 6.668 541.219 6.175 248.996 3.880
+2488.757 501.011 10.179 542.692 6.349 242.089 5.001
+2488.915 502.530 8.170 541.717 6.283 253.040 4.555
+2489.072 503.255 5.691 542.287 6.139 256.380 3.743
+2489.231 502.492 6.673 539.062 6.418 251.143 4.263
+2489.389 502.914 6.665 539.790 6.151 244.121 4.459
+2489.547 502.699 5.820 541.408 6.310 250.181 4.146
+2489.706 503.627 6.231 541.374 6.905 256.021 3.753
+2489.864 504.326 5.945 540.393 6.529 252.880 3.576
+2490.023 502.283 7.735 541.264 6.064 246.988 3.432
+2490.181 502.752 6.002 541.312 5.948 246.409 3.778
+2490.339 501.757 6.940 540.323 6.174 252.114 4.142
+2490.497 501.117 6.570 540.763 6.412 255.881 4.200
+2490.656 502.331 5.965 540.207 6.379 256.928 3.929
+2490.815 504.463 7.321 541.152 7.915 245.609 6.880
+2490.972 502.414 6.240 542.791 6.451 243.696 4.305
+2491.130 501.184 6.401 542.048 6.359 250.217 4.170
+2491.289 502.261 5.755 540.860 6.264 258.402 3.981
+2491.447 502.062 6.342 540.928 6.006 253.944 3.886
+2491.605 502.430 6.374 541.139 6.382 246.639 4.125
+2491.763 503.034 5.991 541.601 6.401 246.766 4.148
+2491.922 503.430 5.809 541.596 6.006 254.317 3.913
+2492.079 501.864 6.179 540.626 6.256 253.663 4.337
+2492.239 502.808 5.864 541.806 6.301 252.046 3.606
+2492.397 502.378 6.600 540.918 6.853 246.630 4.405
+2492.554 505.233 6.477 542.299 6.325 248.796 4.209
+2492.711 503.952 7.289 540.973 6.768 253.007 5.409
+2492.870 502.809 5.996 542.409 6.519 254.230 4.026
+2493.028 502.628 5.966 540.474 6.187 252.772 4.827
+2493.186 502.076 6.732 541.874 6.100 244.607 3.992
+2493.343 504.030 6.537 541.928 6.228 249.976 4.435
+2493.502 504.830 6.661 539.899 7.387 254.009 4.125
+2493.660 503.388 6.603 541.529 6.463 255.270 5.131
+2493.818 505.043 5.738 543.515 7.212 252.462 5.837
+2493.976 501.040 6.966 543.275 6.185 246.324 3.402
+2494.133 503.790 11.450 542.712 6.864 246.963 4.289
+2494.292 504.787 6.963 541.117 6.865 256.169 4.008
+2494.450 507.307 8.297 542.301 6.165 254.761 5.846
+2494.608 506.713 6.633 543.153 6.856 245.957 4.122
+2494.765 510.277 6.504 541.771 6.187 245.759 5.718
+2494.923 512.932 7.072 541.677 7.151 252.977 4.958
+2495.082 512.519 6.977 540.966 6.558 254.589 5.205
+2495.239 509.285 9.107 541.459 8.171 249.685 6.684
+2495.395 517.322 8.170 541.124 6.871 250.076 5.243
+2495.553 514.143 8.269 541.911 6.965 251.350 3.771
+2495.711 513.591 7.766 544.789 7.395 246.563 4.976
+2495.869 510.335 6.359 541.648 7.090 250.145 5.912
+2496.027 510.583 6.173 543.156 6.723 255.671 5.405
+2496.185 511.525 8.137 545.281 6.753 256.306 5.770
+2496.343 514.035 10.000 538.852 10.018 253.883 9.072
+2496.501 516.900 6.045 542.118 8.926 248.038 7.304
+2496.658 518.199 10.488 540.811 7.831 251.100 6.455
+2496.816 517.452 8.072 543.418 6.697 248.331 6.453
+2496.973 519.254 8.008 542.244 8.105 248.193 5.726
+2497.129 521.032 8.014 540.612 7.725 250.041 5.006
+2497.287 523.800 7.956 539.346 8.984 246.190 6.650
+2497.443 518.058 11.278 539.713 7.962 245.391 5.790
+2497.600 523.940 8.075 539.397 7.147 250.463 6.113
+2497.757 515.999 7.316 537.304 6.932 253.134 4.838
+2497.916 514.800 6.710 538.753 6.732 252.541 5.055
+2498.074 509.758 7.051 537.377 7.546 245.325 5.936
+2498.231 512.357 6.630 539.633 6.355 251.253 4.878
+2498.391 512.063 7.119 539.176 7.557 253.102 3.976
+2498.548 510.500 7.036 537.991 7.659 250.721 5.617
+2498.706 510.555 6.687 540.859 6.287 246.987 5.067
+2498.864 511.735 6.023 539.778 6.274 251.589 4.023
+2499.022 508.827 7.506 540.017 7.418 247.215 5.974
+2499.179 507.388 8.026 539.970 7.380 249.222 6.352
+2499.336 512.733 15.144 538.779 13.398 250.832 8.055
+2499.493 509.287 7.988 540.447 6.135 255.248 5.407
+2499.650 505.002 6.946 541.874 6.673 248.182 4.879
+2499.807 504.190 5.524 540.888 6.369 248.901 4.804
+2499.966 505.991 7.243 540.218 6.523 252.359 3.645
+2500.124 504.489 6.444 539.342 6.534 252.963 3.651
+2500.281 503.484 6.429 540.153 5.995 249.919 4.244
+2500.438 503.584 5.562 539.101 5.769 251.199 3.264
+2500.596 502.855 6.431 538.341 5.884 253.522 4.324
+2500.754 503.168 9.029 537.923 6.458 251.795 3.776
+2500.911 504.721 5.673 539.999 5.823 250.477 3.283
+2501.069 501.007 5.750 539.270 5.885 246.144 5.473
+2501.227 501.070 5.971 540.682 5.824 249.981 3.721
+2501.385 503.290 6.304 541.896 6.214 254.669 3.907
+2501.544 502.852 6.385 539.029 6.115 249.996 3.445
+2501.703 501.698 5.936 539.520 6.032 248.659 4.290
+2501.861 502.727 7.312 539.155 6.153 253.016 4.117
+2502.018 504.437 9.200 538.781 6.461 256.810 4.645
+2502.176 501.414 6.877 541.587 5.955 249.168 4.888
+2502.334 504.144 6.186 540.655 6.095 249.361 3.720
+2502.492 503.761 5.817 537.696 6.128 249.143 4.133
+2502.650 504.457 6.118 539.037 5.939 252.491 5.282
+2502.808 503.274 6.699 540.020 5.901 249.524 5.270
+2502.965 502.822 6.141 540.680 6.283 247.975 4.507
+2503.124 502.858 5.980 539.036 6.373 249.409 4.088
+2503.282 502.468 5.903 540.190 6.160 251.954 4.394
+2503.440 500.204 7.277 539.931 6.307 249.449 4.826
+2503.599 501.082 7.139 540.799 7.174 253.454 5.344
+2503.756 502.020 6.514 540.528 6.746 252.434 4.323
+2503.914 501.460 7.321 540.695 7.484 248.684 6.296
+2504.071 500.694 6.006 540.686 6.649 250.006 4.861
+2504.229 501.166 5.960 538.786 6.342 255.980 5.033
+2504.388 502.251 6.706 538.657 6.356 248.659 4.847
+2504.546 502.472 6.197 540.226 6.126 250.616 4.296
+2504.704 501.554 7.051 540.322 6.401 255.176 4.820
+2504.862 505.945 6.568 539.373 7.065 250.431 3.969
+2505.019 503.189 6.725 540.333 6.366 245.014 4.833
+2505.177 506.641 6.708 540.013 6.338 253.080 3.369
+2505.335 504.726 6.979 539.960 6.439 254.810 3.963
+2505.493 501.867 6.918 540.669 6.260 249.758 4.096
+2505.651 501.798 6.180 541.716 6.190 247.107 5.069
+2505.809 503.158 6.571 540.807 6.106 252.571 4.745
+2505.967 500.821 6.895 540.388 6.347 257.165 3.881
+2506.126 500.838 5.975 540.973 5.876 251.971 4.163
+2506.285 500.718 6.052 540.769 6.069 249.329 3.868
+2506.443 503.447 6.286 539.217 6.978 253.233 4.141
+2506.600 500.474 6.147 541.392 6.282 250.422 3.767
+2506.759 505.274 6.342 540.324 5.987 254.874 3.886
+2506.918 505.232 7.988 539.133 5.954 248.108 4.310
+2507.075 504.812 6.450 541.821 6.561 249.391 5.691
+2507.232 503.098 6.853 542.178 7.792 245.673 5.653
+2507.390 501.541 6.066 539.651 6.087 255.106 5.486
+2507.549 503.325 6.979 538.656 6.858 255.831 4.502
+2507.706 502.353 6.841 540.316 6.243 247.858 4.851
+2507.864 502.973 5.976 540.343 6.236 247.618 4.025
+2508.022 503.179 5.914 540.573 7.021 252.116 4.418
+2508.180 504.001 6.496 540.435 7.566 254.041 4.271
+2508.338 504.400 6.413 538.964 6.347 252.470 4.666
+2508.496 503.074 6.430 540.379 6.125 248.554 4.198
+2508.654 504.040 6.346 539.823 6.177 248.855 4.255
+2508.812 504.860 7.025 540.018 6.602 249.188 3.886
+2508.970 504.248 5.840 539.520 6.050 251.651 3.774
+2509.129 503.982 6.598 539.815 6.285 250.096 3.869
+2509.286 502.789 6.321 540.188 6.099 254.111 3.951
+2509.444 504.217 5.905 540.591 6.859 246.361 4.956
+2509.602 504.562 6.006 539.545 6.148 249.713 3.616
+2509.760 505.075 6.243 540.705 5.805 255.537 3.928
+2509.918 504.880 6.758 539.347 6.209 254.415 3.928
+2510.076 505.388 7.460 541.403 6.421 245.574 4.728
+2510.234 506.663 6.543 540.524 6.330 245.625 4.026
+2510.392 506.516 5.902 539.815 6.174 251.166 4.061
+2510.550 507.865 5.969 540.078 6.770 254.281 3.811
+2510.708 507.678 6.467 540.400 6.392 249.562 4.299
+2510.866 505.576 6.769 539.944 6.191 245.435 4.790
+2511.024 506.265 7.567 540.029 6.678 250.174 5.192
+2511.182 507.732 6.300 538.800 6.553 253.661 3.976
+2511.340 507.977 5.795 541.138 6.399 256.986 4.235
+2511.499 508.489 6.405 541.341 5.871 248.299 4.851
+2511.656 505.754 6.049 540.123 7.394 241.803 4.887
+2511.814 507.697 6.098 541.481 6.662 249.238 4.440
+2511.972 508.797 6.716 540.434 6.175 256.482 3.816
+2512.130 508.138 6.239 539.714 6.249 249.734 4.209
+2512.289 511.541 6.274 541.427 6.214 247.447 4.238
+2512.447 510.635 5.912 540.914 6.132 249.674 4.202
+2512.605 513.106 6.604 541.289 5.923 250.336 5.204
+2512.764 511.311 6.410 539.682 6.156 250.963 4.321
+2512.922 509.003 7.095 539.936 6.242 251.419 3.826
+2513.081 508.610 5.856 540.139 6.266 250.164 3.976
+2513.238 511.956 7.458 540.291 6.503 249.061 5.323
+2513.395 510.039 6.434 538.923 6.259 247.090 4.264
+2513.554 510.780 5.816 538.699 6.138 257.890 4.072
+2513.712 514.497 6.116 539.737 6.303 253.028 6.859
+2513.871 511.615 6.505 542.967 6.936 240.160 6.338
+2514.028 512.606 6.310 540.879 6.293 246.921 3.571
+2514.188 513.526 6.423 539.508 7.045 258.379 3.921
+2514.347 516.025 6.439 540.685 6.671 256.813 3.626
+2514.506 515.070 6.042 541.806 6.398 242.868 3.611
+2514.665 514.950 6.844 541.858 6.193 244.768 3.690
+2514.824 514.049 5.869 540.988 6.211 255.067 3.493
+2514.982 513.490 6.042 540.209 6.275 252.420 3.649
+2515.140 512.904 6.507 540.092 6.118 250.704 3.746
+2515.299 515.119 6.278 542.231 6.661 245.467 4.461
+2515.457 514.871 6.511 541.452 6.843 250.874 4.432
+2515.615 515.818 6.656 540.684 6.137 250.268 4.154
+2515.773 515.808 7.101 539.276 7.185 254.672 4.868
+2515.931 518.828 6.359 538.362 6.215 251.016 5.803
+2516.089 516.818 6.372 540.343 7.474 250.030 5.932
+2516.248 518.148 6.827 541.673 6.186 243.500 4.008
+2516.405 516.541 6.028 541.356 6.363 249.825 4.455
+2516.563 517.705 7.239 541.853 6.233 253.188 4.016
+2516.722 515.957 6.713 541.828 8.303 252.461 4.906
+2516.879 514.649 6.244 541.898 6.645 246.344 4.352
+2517.038 517.006 6.577 540.299 6.787 249.503 4.871
+2517.196 521.840 6.691 541.823 6.850 253.615 3.951
+2517.353 517.588 7.499 541.068 6.129 249.226 3.666
+2517.511 518.615 6.006 541.330 7.287 250.342 4.103
+2517.668 516.876 7.175 542.303 7.193 249.393 4.794
+2517.827 520.408 6.151 542.093 8.197 250.263 4.953
+2517.985 517.174 6.204 542.251 6.915 245.052 4.596
+2518.143 517.511 7.478 541.522 6.845 251.280 5.750
+2518.300 521.255 7.640 540.815 6.580 256.302 4.338
+2518.459 515.672 7.198 539.828 7.289 249.713 5.844
+2518.617 517.276 8.158 541.488 6.841 246.157 5.685
+2518.775 517.112 7.637 540.504 6.015 252.601 5.310
+2518.933 520.481 6.067 540.495 6.463 251.796 3.569
+2519.092 520.954 6.648 542.134 6.900 248.597 4.435
+2519.250 519.359 6.425 539.941 6.502 248.866 4.302
+2519.408 518.163 6.214 539.869 6.262 254.238 3.870
+2519.567 519.921 6.944 541.658 7.113 248.492 4.635
+2519.724 518.209 7.131 543.036 6.756 244.614 3.732
+2519.882 519.482 6.180 539.720 6.546 249.016 5.169
+2520.040 516.274 8.148 541.427 8.795 248.860 5.287
+2520.199 520.112 6.948 541.144 6.723 255.998 5.034
+2520.357 517.561 7.573 541.701 6.710 250.050 4.716
+2520.515 518.065 5.933 540.677 6.619 251.150 4.514
+2520.673 519.650 6.307 541.296 6.334 249.751 4.205
+2520.831 518.296 9.972 541.583 7.798 238.417 5.273
+2520.989 515.173 6.189 540.905 7.040 249.744 4.761
+2521.147 518.001 6.504 540.899 7.880 255.427 5.192
+2521.304 517.950 6.728 539.929 8.076 250.724 5.853
+2521.462 517.849 6.323 540.919 6.744 244.237 4.441
+2521.621 518.608 9.155 539.249 7.620 250.372 5.245
+2521.778 517.786 7.925 540.842 6.630 251.933 4.533
+2521.935 519.547 8.338 540.988 7.016 251.319 4.581
+2522.094 515.325 7.609 541.539 6.645 248.143 4.719
+2522.251 518.443 7.010 542.375 7.136 249.891 5.009
+2522.409 520.014 7.610 540.793 7.579 249.318 4.963
+2522.566 518.620 7.538 541.548 7.612 247.953 5.407
+2522.724 515.496 6.244 540.685 9.290 254.349 5.786
+2522.882 517.415 7.732 540.276 7.063 251.863 4.301
+2523.041 516.724 9.831 542.602 9.388 243.848 5.452
+2523.197 519.617 7.250 541.696 7.521 241.628 4.481
+2523.355 518.526 6.470 540.357 8.596 252.766 4.475
+2523.514 517.655 7.577 541.723 7.170 253.527 5.478
+2523.672 518.036 8.276 540.787 6.933 252.625 6.090
+2523.830 516.860 6.979 540.397 7.533 244.966 4.510
+2523.987 518.608 7.498 541.384 6.751 247.239 4.539
+2524.144 518.216 7.307 540.323 7.818 256.182 5.394
+2524.303 518.862 7.742 539.003 7.477 255.801 4.301
+2524.461 516.408 6.511 540.380 6.362 243.708 4.426
+2524.619 518.294 6.536 539.683 6.895 245.887 5.127
+2524.777 518.953 7.145 541.336 7.548 248.958 4.782
+2524.935 517.659 6.984 541.523 6.332 252.389 4.236
+2525.093 520.096 8.656 540.685 6.514 248.603 6.064
+2525.251 515.881 6.763 540.846 6.958 245.496 4.830
+2525.410 517.588 7.790 540.888 7.589 246.854 5.614
+2525.567 517.335 8.684 540.778 6.938 251.638 4.627
+2525.725 517.943 6.539 539.987 7.178 250.136 4.416
+2525.883 517.269 6.993 539.329 6.800 251.371 4.891
+2526.041 518.412 7.387 541.753 6.669 247.623 6.059
+2526.199 517.204 6.655 540.937 6.685 248.106 3.850
+2526.357 516.822 7.463 541.799 6.936 250.921 5.138
+2526.515 516.028 8.157 542.178 7.006 251.629 5.175
+2526.673 518.170 7.410 543.171 7.643 250.676 5.389
+2526.831 516.181 7.586 543.151 6.384 246.636 4.417
+2526.989 518.421 6.851 540.771 6.742 249.766 4.267
+2527.146 520.304 7.128 540.537 7.574 251.377 5.501
+2527.304 522.903 6.348 540.975 8.323 250.453 4.156
+2527.462 518.199 7.042 542.879 6.537 247.204 6.061
+2527.620 514.222 8.663 540.808 7.357 245.542 4.516
+2527.777 518.032 6.356 540.658 7.516 252.525 4.213
+2527.935 520.980 7.417 541.826 6.361 256.115 3.865
+2528.094 518.679 6.982 542.288 6.643 250.311 3.581
+2528.251 518.066 8.393 542.722 6.943 247.333 5.140
+2528.409 517.830 6.296 541.397 7.079 247.683 4.712
+2528.567 517.498 6.469 541.044 6.953 252.586 3.585
+2528.725 517.655 6.166 541.350 7.063 252.385 4.698
+2528.883 519.656 6.431 541.163 6.641 248.743 4.909
+2529.042 518.476 6.928 542.621 6.393 246.297 4.467
+2529.199 515.754 6.576 541.676 6.336 249.032 4.495
+2529.358 516.017 7.870 539.916 7.263 250.810 4.383
+2529.514 516.890 8.030 541.479 7.105 250.898 5.016
+2529.672 516.438 7.640 540.614 7.512 249.419 5.338
+2529.830 516.034 8.037 541.166 6.740 249.844 4.574
+2529.988 514.520 9.449 541.011 7.019 248.778 4.384
+2530.144 516.265 6.337 540.910 6.457 249.707 3.641
+2530.302 515.792 6.882 541.619 6.373 252.957 4.409
+2530.460 516.567 7.743 540.976 7.416 250.469 4.647
+2530.618 515.105 7.634 541.459 7.281 248.054 4.386
+2530.776 514.521 6.662 539.644 6.712 248.550 4.265
+2530.934 514.815 6.926 541.036 6.806 250.325 4.784
+2531.092 514.228 6.432 540.720 6.504 252.273 4.017
+2531.251 514.492 6.933 540.627 7.599 250.032 5.184
+2531.409 513.755 6.661 541.056 7.149 244.160 4.489
+2531.567 512.717 6.958 541.600 6.386 248.251 3.880
+2531.725 510.197 8.063 539.366 7.402 255.332 6.506
+2531.882 511.692 7.356 540.723 6.853 251.853 5.916
+2532.039 511.947 7.671 540.107 6.650 244.108 5.146
+2532.197 513.119 6.378 540.601 6.347 245.041 6.360
+2532.355 512.941 6.531 539.826 6.416 254.810 4.376
+2532.514 509.749 6.557 541.468 6.450 253.808 3.896
+2532.672 511.017 7.195 540.274 6.926 250.438 4.028
+2532.830 511.610 6.993 540.082 6.645 247.384 4.808
+2532.989 512.476 6.772 541.840 6.518 246.763 3.840
+2533.147 511.164 7.103 540.258 6.252 253.177 5.139
+2533.306 508.681 6.509 540.782 7.201 253.741 4.918
+2533.464 510.146 6.530 539.747 6.239 246.367 4.532
+2533.622 507.301 6.129 540.987 6.713 246.973 3.944
+2533.780 507.873 7.618 541.129 6.824 249.159 4.232
+2533.938 508.448 7.612 540.251 7.069 252.191 6.126
+2534.096 510.444 5.966 540.942 6.051 252.781 4.394
+2534.254 507.654 6.648 540.709 6.379 256.237 4.601
+2534.412 505.096 6.655 540.087 6.290 250.042 4.120
+2534.570 507.810 6.390 540.860 5.994 238.080 4.249
+2534.728 509.758 7.241 540.358 6.232 247.890 3.967
+2534.887 510.947 7.026 539.253 6.405 260.798 4.157
+2535.046 510.189 6.429 540.502 6.105 254.528 4.772
+2535.204 507.061 8.120 540.725 6.314 239.345 4.935
+2535.361 503.870 6.171 539.777 7.095 245.423 5.330
+2535.519 506.878 6.537 539.357 6.352 260.274 3.604
+2535.678 503.828 6.394 538.973 6.149 257.692 4.296
+2535.837 503.098 5.951 539.909 6.054 244.916 4.474
+2535.995 504.931 6.025 541.049 6.648 247.149 3.439
+2536.154 502.309 6.591 540.680 6.134 253.341 4.587
+2536.312 504.213 6.729 540.416 6.106 256.033 3.819
+2536.471 506.812 5.907 539.804 5.923 253.370 4.143
+2536.629 506.688 6.591 540.378 5.813 246.133 4.372
+2536.787 508.216 8.023 542.723 6.445 246.211 5.439
+2536.945 505.072 6.357 540.727 6.571 251.742 3.758
+2537.103 505.590 6.904 539.527 6.804 250.877 4.099
+2537.260 504.815 6.583 540.565 5.933 248.598 4.039
+2537.418 506.308 7.009 540.645 6.619 252.396 5.079
+2537.576 502.713 6.409 540.256 7.497 253.913 5.210
+2537.734 503.727 6.540 539.802 6.195 248.329 4.857
+2537.891 502.237 6.404 540.808 7.011 252.583 4.081
+2538.049 500.282 6.239 539.578 6.099 257.625 3.840
+2538.208 501.132 6.351 541.285 6.543 246.496 4.063
+2538.366 503.331 6.703 541.812 6.645 249.004 5.081
+2538.524 506.233 6.441 540.068 6.275 253.190 3.933
+2538.682 506.322 6.774 539.990 6.682 257.581 3.738
+2538.841 502.943 6.305 541.609 6.948 242.335 4.908
+2538.999 503.789 6.961 540.586 6.426 244.883 5.081
+2539.156 506.117 5.797 541.155 6.263 253.968 4.779
+2539.315 504.991 6.621 539.801 6.159 259.069 4.147
+2539.474 502.289 5.791 540.568 5.789 250.910 3.567
+2539.632 501.942 6.112 541.285 6.406 245.649 5.298
+2539.790 500.899 6.201 540.362 6.160 253.066 4.274
+2539.948 501.199 6.970 539.743 6.091 256.370 4.047
+2540.106 501.612 6.494 540.217 6.721 250.683 4.507
+2540.263 502.936 5.981 540.242 6.427 246.936 3.950
+2540.421 507.079 6.583 541.432 6.144 250.389 3.692
+2540.579 503.710 6.677 539.954 6.861 247.083 3.662
+2540.737 504.547 7.065 540.089 6.854 248.190 3.811
+2540.895 502.895 5.867 539.081 6.085 252.691 4.167
+2541.053 507.319 6.534 540.240 6.726 255.686 4.301
+2541.211 503.303 6.186 540.452 6.741 250.136 4.483
+2541.369 502.653 6.375 541.054 5.919 243.811 4.126
+2541.527 500.906 6.244 540.140 6.555 251.228 3.745
+2541.686 503.249 5.619 539.671 6.110 261.272 3.491
+2541.845 501.962 6.671 539.666 5.954 254.032 4.087
+2542.002 502.309 6.010 541.266 6.160 245.900 4.688
+2542.161 503.773 5.966 541.462 6.269 246.939 4.755
+2542.318 505.917 6.124 542.384 6.173 251.809 3.728
+2542.477 504.799 6.040 540.513 6.407 255.218 4.355
+2542.635 505.178 6.330 540.005 6.697 251.992 3.698
+2542.794 505.241 6.582 541.210 6.787 243.069 4.456
+2542.951 506.192 6.347 541.442 6.404 244.310 5.773
+2543.110 503.801 6.065 540.384 6.168 258.133 4.634
+2543.269 503.698 7.324 539.813 6.094 259.691 4.142
+2543.427 502.637 7.245 541.248 6.681 244.736 6.003
+2543.584 498.766 10.895 540.832 6.297 242.367 4.596
+2543.741 504.607 6.656 541.138 6.831 257.623 3.648
+2543.900 502.956 7.143 539.991 6.364 256.636 3.793
+2544.059 503.659 6.194 541.109 6.119 247.836 4.268
+2544.217 503.356 7.294 541.571 7.345 249.278 5.014
+2544.375 503.013 6.573 541.655 6.686 251.222 4.922
+2544.532 505.140 6.332 542.436 6.097 249.682 3.864
+2544.691 504.181 6.002 540.814 6.625 251.716 3.685
+2544.849 502.801 6.140 540.638 6.111 254.627 4.509
+2545.007 502.548 7.108 541.136 6.106 246.286 5.416
+2545.165 502.305 6.190 543.491 6.477 247.272 3.687
+2545.324 503.713 6.557 540.944 6.392 252.722 4.754
+2545.483 504.867 5.964 540.949 6.249 261.527 3.985
+2545.642 502.728 7.458 542.329 7.235 247.925 5.871
+2545.799 499.577 7.626 544.413 6.456 236.289 3.563
+2545.957 500.575 6.533 541.684 6.934 250.472 4.027
+2546.115 504.615 7.850 542.716 6.250 259.934 4.494
+2546.273 501.626 6.905 542.417 6.707 252.989 4.321
+2546.431 501.176 5.513 543.234 6.328 245.639 3.857
+2546.588 501.341 6.694 541.832 7.309 248.856 4.989
+2546.746 504.293 6.932 541.858 6.820 252.668 4.589
+2546.904 503.913 6.450 541.388 5.898 253.586 3.797
+2547.061 504.609 6.268 542.323 6.738 252.695 4.767
+2547.219 503.546 6.541 541.653 6.028 249.026 4.491
+2547.378 501.085 7.340 543.086 6.774 246.580 4.479
+2547.535 503.240 6.794 542.370 6.134 250.375 4.125
+2547.694 503.402 5.518 541.263 6.380 256.693 4.862
+2547.852 502.304 6.343 541.072 5.958 251.586 4.250
+2548.010 502.793 6.796 543.350 6.269 247.245 5.359
+2548.168 500.937 6.591 542.613 6.731 245.542 4.892
+2548.326 502.849 5.773 542.606 6.840 253.945 4.147
+2548.485 502.668 6.736 542.036 6.188 256.329 3.607
+2548.643 503.636 6.285 541.500 6.368 255.243 3.910
+2548.801 499.996 6.278 543.055 6.584 246.882 4.014
+2548.960 502.030 6.541 543.090 6.878 245.318 3.929
+2549.118 503.400 6.788 543.070 6.708 252.673 4.596
+2549.276 506.594 6.391 542.020 6.024 259.156 4.098
+2549.434 503.665 6.342 542.020 6.974 251.181 4.507
+2549.592 502.136 7.420 544.250 7.198 242.491 4.212
+2549.749 501.881 7.030 542.992 6.239 248.594 3.847
+2549.908 504.778 6.132 542.780 5.994 261.515 3.837
+2550.067 502.457 6.551 541.667 8.473 254.015 5.524
+2550.225 501.444 5.671 545.776 6.166 245.940 4.001
+2550.383 501.174 7.199 546.147 6.534 243.909 3.981
+2550.540 503.091 6.584 547.661 7.392 256.539 5.245
+2550.699 504.700 8.563 549.896 7.695 260.265 4.700
+2550.856 502.267 6.235 547.429 6.662 253.782 4.338
+2551.014 501.992 6.427 547.684 6.316 244.307 3.624
+2551.172 502.430 6.825 547.856 6.644 245.493 3.349
+2551.331 502.714 6.974 544.788 6.585 254.824 4.370
+2551.490 504.497 6.417 547.197 6.565 259.918 3.940
+2551.648 502.515 6.079 548.152 6.517 247.939 4.032
+2551.805 499.975 7.242 550.451 6.286 242.479 4.501
+2551.963 499.969 6.530 547.394 6.409 255.254 3.789
+2552.122 503.679 7.450 546.464 6.360 266.242 4.526
+2552.280 502.776 10.179 547.634 6.582 248.162 5.839
+2552.437 504.517 7.708 549.516 6.203 234.981 5.463
+2552.595 502.525 6.375 548.695 6.169 251.739 3.810
+2552.754 501.995 6.440 547.277 6.828 264.527 5.191
+2552.913 505.229 7.252 545.762 6.509 258.855 4.580
+2553.071 502.242 6.522 548.407 7.320 245.428 5.078
+2553.228 499.452 6.070 549.144 6.220 241.794 3.392
+2553.386 501.334 6.325 547.761 6.289 252.327 3.648
+2553.545 505.403 6.683 546.827 6.050 267.983 4.374
+2553.704 504.184 5.863 548.178 6.173 256.639 5.416
+2553.862 500.371 7.002 550.721 6.150 233.696 5.578
+2554.019 503.403 5.637 548.247 5.970 246.446 4.081
+2554.178 505.204 5.834 546.712 6.165 267.564 3.385
+2554.337 501.692 7.776 546.007 7.142 258.275 4.422
+2554.496 501.056 6.675 549.970 6.196 244.282 7.397
+2554.653 501.300 7.017 550.439 6.384 242.262 5.158
+2554.811 502.743 6.847 548.284 6.993 256.572 6.829
+2554.969 501.617 6.188 546.802 6.382 268.325 4.868
+2555.128 500.906 6.732 550.128 6.559 254.633 4.639
+2555.285 499.979 6.058 553.601 6.412 239.886 4.622
+2555.443 505.529 7.962 551.316 6.446 246.668 6.817
+2555.600 503.455 6.477 549.933 6.169 258.836 4.766
+2555.759 505.604 6.828 554.329 6.367 260.968 5.063
+2555.919 503.886 8.258 551.183 6.887 255.279 6.397
+2556.076 499.728 6.556 555.231 6.079 237.122 4.440
+2556.234 499.597 6.591 550.182 6.556 255.411 5.132
+2556.394 504.575 7.633 552.661 8.123 267.454 7.016
+2556.551 501.745 7.720 552.336 7.177 251.974 5.642
+2556.708 499.727 6.905 554.143 6.419 237.969 5.728
+2556.866 503.497 8.064 553.821 7.535 256.079 9.134
+2557.025 509.175 7.569 555.038 7.295 267.200 5.943
+2557.183 504.661 7.573 552.720 7.972 246.952 4.835
+2557.340 503.036 7.111 556.607 7.427 241.549 4.786
+2557.497 506.240 6.853 555.696 7.207 250.255 5.008
+2557.656 509.102 6.053 553.957 8.720 261.842 4.916
+2557.815 503.191 6.562 552.109 6.493 251.278 6.235
+2557.972 498.231 6.268 554.711 6.675 247.352 4.311
+2558.130 504.812 6.309 553.697 6.465 257.013 3.899
+2558.289 500.238 8.621 554.817 8.095 253.900 7.866
+2558.445 501.992 6.620 554.148 6.504 249.779 4.488
+2558.602 501.590 7.280 556.621 6.534 254.337 4.316
+2558.759 501.655 6.963 553.206 6.115 254.383 4.508
+2558.918 505.586 6.962 551.442 6.928 260.263 4.579
+2559.076 503.045 9.398 553.284 6.672 246.792 5.309
+2559.233 504.830 7.237 554.582 6.721 245.257 4.692
+2559.391 504.168 8.826 553.515 7.189 257.432 5.285
+2559.549 503.531 6.809 554.835 6.388 256.934 6.449
+2559.707 501.625 8.945 554.748 6.481 246.619 5.933
+2559.865 507.686 8.391 553.247 7.239 258.376 10.319
+2560.023 506.906 7.345 553.472 6.309 264.573 4.198
+2560.182 498.949 6.360 553.984 6.899 244.025 4.627
+2560.340 498.919 7.852 554.239 8.682 243.440 7.300
+2560.497 504.389 6.358 552.012 6.668 256.874 4.392
+2560.657 504.183 7.534 552.950 6.575 261.718 4.188
+2560.815 502.871 10.026 553.019 8.487 250.027 5.768
+2560.973 505.098 7.098 553.980 7.744 247.980 5.587
+2561.131 504.291 6.354 551.209 8.256 253.529 4.830
+2561.289 504.722 5.835 553.922 6.815 252.625 4.998
+2561.447 505.167 6.705 556.169 6.818 257.666 3.919
+2561.605 503.271 9.292 553.251 7.648 247.256 5.069
+2561.762 500.252 7.201 551.712 7.305 248.532 5.530
+2561.921 504.762 12.829 553.887 7.356 261.015 5.708
+2562.079 506.237 6.481 556.588 6.731 254.740 6.030
+2562.237 501.592 6.930 553.206 6.885 248.137 3.988
+2562.393 501.705 6.487 554.572 6.594 249.361 4.758
+2562.552 506.547 6.925 552.735 6.591 262.723 4.312
+2562.711 499.415 5.838 554.917 6.676 252.747 4.570
+2562.868 505.944 6.925 555.119 7.814 245.487 5.729
+2563.026 501.949 7.376 550.931 8.071 256.534 5.508
+2563.184 505.159 8.247 552.309 7.108 255.415 4.063
+2563.341 507.761 7.251 555.273 6.375 247.964 5.271
+2563.499 506.527 7.698 553.772 6.208 251.579 5.228
+2563.657 501.045 6.569 552.827 6.817 247.465 5.073
+2563.814 502.930 5.936 553.978 7.347 252.644 4.992
+2563.974 503.289 7.925 554.129 7.457 256.796 3.663
+2564.131 499.302 8.484 554.261 7.679 253.527 4.942
+2564.289 501.303 8.636 553.892 6.911 245.175 6.034
+2564.447 505.903 11.359 552.199 6.744 253.181 6.989
+2564.604 506.129 13.608 555.442 8.384 256.411 13.300
+2564.760 503.911 10.149 554.954 8.366 245.484 11.360
+2564.917 502.579 7.610 555.799 7.145 250.584 4.472
+2565.075 499.605 8.134 551.588 7.444 259.545 5.462
+2565.233 501.256 8.019 554.325 6.720 255.695 5.778
+2565.389 506.412 10.710 553.613 6.852 247.406 4.517
+2565.547 501.744 7.355 553.346 7.208 249.484 4.232
+2565.704 503.457 8.997 555.533 6.660 247.534 6.844
+2565.862 504.144 7.351 552.415 6.874 264.045 5.923
+2566.020 498.531 10.529 553.664 7.083 259.000 9.292
+2566.177 497.665 7.883 554.246 7.794 253.990 8.323
+2566.335 504.546 7.490 553.232 7.252 244.389 5.721
+2566.492 499.305 6.910 553.632 6.143 251.683 4.014
+2566.651 507.623 7.778 553.266 6.489 260.826 5.634
+2566.808 505.246 7.908 555.082 6.195 246.958 5.256
+2566.967 501.692 6.915 552.950 7.406 253.909 5.845
+2567.125 502.616 6.888 553.139 6.680 262.209 4.570
+2567.283 493.566 7.232 549.921 6.991 253.192 7.090
+2567.441 497.135 7.413 552.909 7.442 241.351 15.527
+2567.597 508.331 7.061 549.119 6.921 258.353 6.468
+2567.754 501.193 6.619 549.981 6.644 257.473 4.926
+2567.913 499.072 9.061 553.529 7.323 251.614 5.652
+2568.071 505.170 9.873 551.675 6.987 257.486 5.253
+2568.228 501.911 12.892 553.766 7.815 254.894 8.196
+2568.385 498.289 8.101 553.367 6.807 257.908 9.894
+2568.542 499.882 9.338 550.403 9.857 250.719 10.509
+2568.699 497.178 14.314 554.464 12.975 235.307 10.461
+2568.855 500.971 9.212 553.184 7.789 248.143 8.911
+2569.012 507.029 7.887 553.821 8.491 256.101 8.544
+2569.170 511.150 10.187 551.338 7.357 267.571 10.967
+2569.327 493.271 10.922 553.343 8.624 237.745 9.238
+2569.484 489.652 7.583 549.503 7.051 251.207 9.147
+2569.642 501.446 7.340 555.835 8.586 257.432 6.353
+2569.800 504.494 7.055 552.868 8.813 268.684 6.603
+2569.958 502.604 8.698 550.588 8.245 263.206 5.294
+2570.115 501.846 7.204 550.775 7.129 246.892 5.772
+2570.273 502.248 6.321 557.477 8.175 242.948 4.611
+2570.431 503.592 6.475 554.754 7.241 252.079 9.860
+2570.589 498.565 8.724 546.587 7.482 267.540 6.297
+2570.747 498.285 7.578 549.635 7.263 263.815 8.137
+2570.904 503.242 9.616 557.306 7.527 243.328 6.999
+2571.061 504.882 8.700 554.213 9.601 234.863 6.845
+2571.218 509.198 11.186 551.642 6.707 267.468 6.449
+2571.377 504.662 10.832 550.166 8.207 265.364 5.848
+2571.535 505.236 8.646 553.201 7.248 244.813 6.084
+2571.692 505.482 7.234 553.452 6.570 244.748 4.635
+2571.850 505.234 7.821 554.754 6.086 258.587 6.671
+2572.008 504.982 6.917 550.197 7.100 261.195 5.064
+2572.165 500.979 6.624 551.882 6.710 256.812 3.942
+2572.324 503.739 8.938 553.688 7.645 245.978 8.269
+2572.480 495.947 13.920 555.566 7.832 223.229 13.445
+2572.636 497.069 9.219 551.715 8.361 248.622 4.639
+2572.793 504.520 7.386 551.037 7.004 266.066 6.563
+2572.952 500.635 7.978 551.600 6.565 262.940 5.379
+2573.109 506.856 9.673 551.866 6.968 248.609 8.969
+2573.266 507.628 14.614 557.328 8.784 243.016 17.275
+2573.422 503.626 10.180 553.723 8.515 247.870 7.521
+2573.580 496.476 7.587 552.027 8.363 265.688 7.153
+2573.737 499.954 7.923 550.840 7.694 253.296 6.260
+2573.895 505.649 9.755 553.758 7.235 250.873 6.502
+2574.051 506.866 7.208 550.867 6.788 250.428 4.150
+2574.209 506.228 12.850 551.738 7.143 256.904 5.797
+2574.367 496.662 8.920 553.667 7.658 257.389 7.106
+2574.524 494.956 7.021 554.926 6.364 250.663 5.441
+2574.682 503.879 8.132 553.009 7.514 255.626 9.948
+2574.839 507.528 8.158 549.350 7.115 257.516 8.165
+2574.996 505.605 8.286 551.593 6.844 250.515 4.316
+2575.153 502.646 6.618 553.426 7.329 249.005 5.000
+2575.311 503.056 8.178 554.234 7.943 247.060 5.437
+2575.468 507.400 8.871 550.322 6.453 259.230 7.365
+2575.626 500.034 8.520 550.003 7.191 261.002 7.958
+2575.783 500.410 7.294 551.970 6.624 249.110 7.839
+2575.940 500.234 6.936 554.259 6.893 246.071 5.437
+2576.097 508.302 6.088 552.162 6.909 248.140 4.131
+2576.256 502.293 6.674 550.401 6.701 258.041 7.902
+2576.413 503.242 7.920 553.044 7.495 254.640 5.237
+2576.571 501.872 9.062 550.990 7.094 252.196 8.935
+2576.727 502.808 9.391 551.219 6.909 250.732 5.785
+2576.885 495.398 8.555 552.432 7.602 255.957 4.838
+2577.042 503.314 7.412 551.774 6.671 254.009 6.894
+2577.200 503.273 8.506 549.507 6.829 251.940 4.712
+2577.357 504.462 7.182 551.595 6.155 255.779 4.440
+2577.515 503.604 8.287 551.966 8.110 251.437 4.346
+2577.672 500.246 6.585 552.969 6.930 246.734 4.542
+2577.830 497.812 7.720 551.519 6.373 254.067 6.129
+2577.988 510.288 10.542 549.105 8.655 246.200 10.207
+2578.146 500.502 11.075 552.601 7.295 252.472 6.688
+2578.303 502.085 7.119 550.526 6.601 253.484 6.144
+2578.461 502.590 6.962 552.505 7.149 253.864 5.992
+2578.619 505.465 7.537 552.925 6.701 251.718 5.415
+2578.777 498.974 7.746 553.949 6.569 245.357 9.408
+2578.934 500.569 10.650 546.479 8.623 261.343 7.701
+2579.092 503.405 14.742 552.774 7.631 254.723 11.942
+2579.249 501.474 16.224 549.167 7.074 254.627 13.413
+2579.404 502.444 7.636 549.301 7.785 252.916 7.196
+2579.561 503.514 6.781 550.343 6.584 249.679 6.893
+2579.719 501.345 8.574 551.543 7.811 251.826 9.461
+2579.875 499.253 9.423 552.945 7.062 251.618 8.321
+2580.033 501.982 8.321 544.769 6.382 253.136 7.004
+2580.190 494.859 7.573 549.487 7.708 243.721 14.375
+2580.346 500.868 10.154 551.214 6.486 255.117 4.917
+2580.504 500.548 6.474 548.172 6.735 255.571 3.991
+2580.661 497.925 8.139 547.631 7.391 249.975 4.553
+2580.818 498.409 8.144 551.176 8.017 247.709 6.529
+2580.975 495.284 7.985 549.371 6.896 247.917 4.379
+2581.133 490.592 12.268 551.843 8.525 263.929 12.154
+2581.290 498.585 7.742 543.618 7.762 257.669 5.782
+2581.449 497.975 7.711 549.356 6.678 254.206 5.133
+2581.606 499.909 8.000 553.893 7.359 246.512 7.042
+2581.762 497.209 7.643 549.649 6.398 247.435 4.565
+2581.920 499.962 9.141 547.016 7.127 260.934 8.381
+2582.077 497.609 10.486 547.440 6.578 253.849 14.043
+2582.234 496.026 10.076 552.814 10.125 243.928 7.022
+2582.391 495.570 6.554 552.438 6.691 251.069 6.286
+2582.547 494.365 9.640 548.554 6.950 254.310 5.901
+2582.704 498.123 9.008 550.905 6.730 252.473 5.245
+2582.862 513.271 8.620 548.169 7.146 252.464 5.557
+2583.020 483.612 12.419 554.201 10.444 242.194 9.410
+2583.177 484.396 10.477 548.962 7.708 245.711 18.868
+2583.334 497.214 7.682 547.979 7.354 271.107 5.128
+2583.492 493.742 6.581 547.589 7.007 254.091 6.996
+2583.650 494.387 8.188 548.665 6.583 237.590 7.320
+2583.806 500.393 7.321 551.466 6.905 253.695 4.207
+2583.963 501.353 7.982 549.474 6.713 244.137 6.418
+2584.121 480.273 9.037 546.894 7.458 256.871 9.322
+2584.278 500.522 8.386 546.409 7.459 258.338 7.549
+2584.436 497.295 9.105 547.334 9.812 262.143 8.313
+2584.593 489.963 10.057 545.913 7.596 250.441 6.426
+2584.750 502.059 8.786 547.219 7.639 239.464 6.881
+2584.907 500.240 6.982 546.772 7.281 258.184 7.765
+2585.064 487.432 9.820 545.577 11.228 245.671 13.494
+2585.221 490.704 13.097 542.065 9.214 259.516 7.025
+2585.377 497.217 7.481 545.850 7.783 256.295 5.483
+2585.536 485.692 8.998 545.718 7.303 242.752 6.001
+2585.693 495.686 9.659 543.217 7.018 248.397 6.348
+2585.850 496.946 8.427 546.512 7.193 253.033 6.183
+2586.008 496.619 11.185 540.515 7.472 255.640 5.500
+2586.166 491.286 8.485 545.205 7.171 253.666 5.378
+2586.324 490.662 8.530 542.592 7.971 245.086 4.521
+2586.481 490.706 6.173 543.395 6.590 257.480 6.131
+2586.640 493.817 10.996 545.004 10.252 245.774 14.126
+2586.798 488.738 8.685 542.120 7.346 248.217 7.162
+2586.955 490.347 9.781 545.821 11.077 244.562 7.883
+2587.111 493.603 9.124 542.978 8.531 259.265 5.773
+2587.269 484.946 9.781 540.969 7.821 256.672 6.837
+2587.426 495.949 8.157 541.999 7.073 249.176 5.678
+2587.584 496.039 7.887 543.200 7.376 244.511 11.184
+2587.740 489.840 8.488 542.232 7.210 249.245 7.372
+2587.897 481.228 8.444 538.962 6.931 253.612 11.832
+2588.054 493.392 10.515 540.519 8.292 256.186 7.187
+2588.212 499.743 8.850 540.035 7.470 248.251 6.080
+2588.369 490.577 8.258 541.160 8.036 241.362 11.205
+2588.525 497.045 8.819 543.801 7.377 241.873 8.854
+2588.682 494.780 9.206 539.568 7.793 259.828 7.473
+2588.840 487.687 7.339 541.665 7.433 259.518 6.208
+2588.998 488.436 7.929 541.316 8.719 247.795 5.513
+2589.156 500.284 7.399 542.693 7.994 245.447 5.925
+2589.313 493.512 7.930 542.757 7.188 248.544 5.555
+2589.471 493.455 8.395 543.707 7.126 246.035 6.290
+2589.628 500.864 8.121 543.287 6.692 259.350 5.439
+2589.786 496.488 10.104 543.152 7.038 244.313 10.162
+2589.944 489.704 8.530 545.031 8.478 243.503 14.094
+2590.100 494.917 10.134 539.870 8.439 251.655 5.667
+2590.257 490.689 9.822 539.468 7.802 253.256 7.207
+2590.414 497.296 14.578 542.144 7.714 251.942 6.532
+2590.571 497.643 8.019 543.251 6.614 240.109 12.216
+2590.727 484.866 11.101 541.572 8.363 249.081 11.745
+2590.884 495.628 11.627 540.335 7.879 252.720 15.236
+2591.040 489.486 11.597 539.673 9.844 256.387 8.367
+2591.198 492.254 6.723 539.006 8.151 252.483 5.026
+2591.355 497.212 7.826 543.450 7.633 242.194 6.062
+2591.511 495.712 8.419 539.834 7.376 246.271 7.758
+2591.668 484.327 14.701 540.338 10.570 244.982 7.730
+2591.826 493.523 7.286 539.583 6.908 265.829 7.964
+2591.983 496.635 20.828 541.065 7.593 252.028 12.901
+2592.139 483.966 11.301 543.500 7.303 250.290 10.586
+2592.296 484.499 7.723 542.345 8.138 240.052 8.020
+2592.452 494.205 8.937 537.453 8.935 255.210 9.473
+2592.608 483.772 6.328 544.134 8.146 252.752 6.458
+2592.765 487.327 8.077 538.051 7.511 242.487 12.778
+2592.921 487.383 11.509 542.900 7.863 242.734 12.515
+2593.078 492.013 13.365 541.699 6.614 251.727 8.964
+2593.234 498.770 10.053 543.667 6.093 241.157 6.824
+2593.392 493.507 14.361 539.736 7.119 241.331 7.637
+2593.548 481.635 8.065 545.347 8.827 246.983 13.845
+2593.705 489.606 11.625 541.263 7.257 255.529 13.938
+2593.863 498.676 8.055 537.442 8.787 259.975 8.065
+2594.019 491.456 9.128 543.984 7.154 233.349 9.666
+2594.175 494.674 15.135 538.609 8.886 252.763 5.593
+2594.332 499.996 8.348 540.296 6.521 234.147 5.696
+2594.490 495.000 12.258 542.193 9.837 254.491 13.984
+2594.646 485.980 11.322 534.982 8.517 255.454 6.827
+2594.804 500.839 17.984 533.429 10.349 256.224 13.946
+2594.961 490.108 10.462 538.304 8.211 235.422 8.731
+2595.117 487.061 11.579 534.653 6.646 245.914 5.736
+2595.275 507.200 11.643 531.856 9.487 253.449 13.408
+2595.431 503.092 9.490 539.848 10.214 258.474 15.188
+2595.588 487.890 8.368 534.328 8.961 247.854 4.870
+2595.745 500.778 8.085 531.663 8.135 257.118 7.449
+2595.903 485.997 10.249 527.166 10.087 255.341 8.732
+2596.059 498.860 8.528 522.961 9.681 243.773 5.901
+2596.218 497.938 7.957 528.209 8.799 256.107 8.990
+2596.375 497.239 8.988 526.422 8.002 249.711 6.899
+2596.531 494.982 12.938 530.144 9.417 237.957 7.554
+2596.688 500.539 8.500 522.151 8.032 264.419 7.695
+2596.845 486.155 9.232 530.821 7.514 237.444 7.461
+2597.002 508.421 10.849 524.368 8.027 253.804 8.681
+2597.159 496.164 10.880 527.353 8.129 255.558 10.200
+2597.316 495.471 10.152 526.863 8.203 246.155 6.992
+2597.472 499.634 9.049 525.698 8.986 227.991 11.553
+2597.629 500.086 8.401 526.237 7.731 253.049 6.376
+2597.787 500.860 10.317 520.232 8.633 268.240 6.170
+2597.945 506.278 10.605 524.042 10.517 242.882 7.843
+2598.102 492.592 9.781 525.940 7.868 227.828 10.534
+2598.260 477.235 11.170 516.259 9.455 259.138 6.413
+2598.418 502.182 14.951 519.292 8.070 254.051 8.703
+2598.575 500.621 11.240 520.742 8.398 258.890 5.941
+2598.733 507.646 10.383 519.477 12.560 244.708 8.158
+2598.889 499.286 12.695 522.074 10.781 240.877 6.950
+2599.048 500.272 9.137 524.130 11.642 257.608 8.780
+2599.206 499.272 9.772 519.091 9.451 250.406 8.709
+2599.362 490.962 10.591 522.180 8.660 246.564 7.259
+2599.519 513.019 14.342 527.701 9.979 245.745 9.826
+2599.676 512.040 11.673 521.677 9.419 239.777 9.833
+2599.834 509.530 10.825 521.236 9.596 244.307 11.087
+2599.991 491.125 10.992 517.722 11.394 240.833 8.520
+2600.148 507.421 9.720 522.687 10.324 251.798 8.122
+2600.305 493.224 8.105 520.456 9.506 256.217 8.071
+2600.462 504.442 10.484 517.384 9.739 244.202 7.779
+2600.619 513.924 8.334 522.393 8.697 242.752 5.672
+2600.777 513.559 9.090 519.153 10.953 242.567 7.596
+2600.934 497.655 9.764 521.871 8.310 249.205 7.827
+2601.091 504.276 10.558 519.588 12.955 242.582 9.670
+2601.248 503.762 8.231 515.785 8.984 246.185 6.738
+2601.405 512.707 9.473 519.817 9.014 243.841 7.155
+2601.562 499.247 9.216 518.408 9.014 248.128 6.525
+2601.719 508.442 10.551 521.064 11.181 243.481 8.912
+2601.876 511.854 8.750 522.260 9.741 243.204 7.831
+2602.033 503.348 12.865 520.342 10.523 252.382 10.540
+2602.191 509.033 9.446 517.493 11.154 254.303 13.940
+2602.347 502.970 11.425 518.284 11.374 243.363 12.661
+2602.504 512.479 10.073 521.362 10.432 248.793 8.087
+2602.662 501.374 11.541 522.643 11.255 249.667 13.828
+2602.819 524.643 10.218 522.946 10.117 251.476 18.051
+2602.976 514.066 12.275 524.269 9.802 229.604 10.614
+2603.133 512.410 9.813 519.462 9.293 260.536 9.930
+2603.292 512.574 10.078 525.534 14.300 250.155 12.585
+2603.448 502.575 11.066 519.925 8.263 241.471 7.481
+2603.605 512.615 13.655 522.889 10.690 262.584 10.973
+2603.763 508.166 10.882 522.718 10.374 250.885 10.021
+2603.921 509.511 9.466 528.167 9.821 240.328 10.426
+2604.079 511.435 9.945 525.801 9.762 256.233 10.501
+2604.236 518.074 11.189 526.868 10.629 239.332 9.316
+2604.393 503.590 12.531 525.028 11.930 240.243 9.269
+2604.551 509.805 11.201 523.660 11.466 264.872 9.495
+2604.708 509.078 11.361 525.536 9.666 240.858 7.748
+2604.865 505.740 10.184 523.535 10.965 233.688 9.753
+2605.023 507.537 11.017 523.795 9.797 262.206 10.511
+2605.181 510.885 8.115 527.198 9.817 253.762 8.876
+2605.337 510.518 11.223 531.072 9.629 235.467 10.163
+2605.496 509.385 10.330 524.810 12.328 259.694 6.878
+2605.654 509.753 10.777 529.808 10.085 257.146 10.969
+2605.812 504.477 13.060 531.388 14.949 230.591 10.963
+2605.968 507.084 8.616 527.333 9.390 252.095 7.876
+2606.125 513.380 9.429 529.523 8.185 254.930 9.851
+2606.282 504.753 9.957 527.875 10.038 245.389 7.607
+2606.439 509.557 10.305 526.958 8.558 251.983 8.916
+2606.596 510.075 10.218 530.809 9.946 246.339 10.147
+2606.753 506.220 9.654 526.858 10.204 244.273 8.137
+2606.911 502.872 9.281 527.028 8.012 254.052 8.941
+2607.067 509.578 9.348 526.830 9.814 249.780 7.886
+2607.223 505.775 10.483 528.158 9.066 244.817 7.662
+2607.381 512.067 9.780 527.371 11.752 251.738 8.195
+2607.538 503.200 11.189 527.663 9.100 241.987 7.742
+2607.695 510.042 9.919 529.906 10.587 251.449 7.016
+2607.852 502.530 8.378 527.519 10.075 254.184 6.656
+2608.009 503.415 9.321 532.395 9.815 238.221 10.280
+2608.167 506.464 8.323 526.714 8.365 257.642 8.193
+2608.324 506.484 8.460 531.107 9.990 261.056 6.573
+2608.482 508.974 11.049 531.961 8.726 240.530 6.889
+2608.639 501.799 9.107 532.619 8.136 237.865 7.484
+2608.796 515.098 7.695 527.166 8.328 265.528 5.906
+2608.954 496.560 10.676 532.781 9.707 243.415 6.831
+2609.111 501.455 10.357 531.517 9.717 239.824 7.482
+2609.269 512.804 8.490 528.225 8.622 266.038 7.219
+2609.427 507.318 9.007 534.802 10.428 243.560 7.431
+2609.584 500.913 7.809 534.898 9.370 236.655 7.482
+2609.742 512.379 12.288 528.679 11.480 265.646 7.800
+2609.900 501.913 9.646 534.506 10.404 233.066 8.716
+2610.056 499.299 10.273 531.265 8.079 250.250 6.481
+2610.214 505.843 8.313 530.642 8.540 247.432 7.164
+2610.370 497.768 8.976 530.176 7.729 240.744 7.202
+2610.528 513.737 10.351 531.981 7.628 262.997 7.455
+2610.687 498.537 8.999 529.399 9.417 250.190 7.891
+2610.845 507.765 8.258 530.814 8.264 257.741 8.224
+2611.002 510.997 11.268 532.948 9.221 241.497 9.049
+2611.158 505.380 9.223 529.509 8.165 240.024 9.051
+2611.315 507.683 7.892 535.025 8.325 250.760 5.938
+2611.472 500.436 8.308 530.200 8.447 249.567 6.695
+2611.630 501.994 8.320 532.472 9.344 253.605 7.511
+2611.787 499.850 7.011 535.904 7.797 246.126 5.795
+2611.945 505.338 8.777 532.209 7.063 261.691 7.589
+2612.102 499.933 9.975 539.082 7.462 240.146 10.661
+2612.259 505.049 7.702 533.490 7.516 252.591 6.841
+2612.417 508.080 10.367 529.624 10.222 264.085 14.934
+2612.575 505.350 8.713 540.476 8.282 241.930 7.812
+2612.731 507.043 11.084 535.754 8.619 253.449 8.203
+2612.888 509.320 8.075 538.067 7.332 246.894 6.579
+2613.045 507.973 11.466 533.350 9.918 254.448 8.306
+2613.202 503.029 9.777 538.623 10.960 239.664 6.409
+2613.359 507.570 9.343 534.716 8.606 242.746 7.301
+2613.517 509.345 9.267 533.457 9.238 261.797 9.051
+2613.674 507.043 7.757 537.424 8.289 244.667 4.654
+2613.831 505.160 8.039 533.944 8.128 250.276 5.395
+2613.988 506.601 14.933 534.969 8.972 246.732 7.322
+2614.144 509.326 7.319 528.279 6.665 253.527 6.574
+2614.302 507.263 8.477 532.142 7.526 254.925 5.802
+2614.460 507.072 7.944 535.161 8.043 243.929 5.726
+2614.617 508.190 7.041 531.511 8.196 248.669 5.028
+2614.775 506.971 7.259 534.985 7.929 248.376 5.186
+2614.932 504.079 7.404 538.939 8.961 247.733 5.039
+2615.090 504.760 7.267 535.209 7.259 255.317 5.511
+2615.249 503.147 6.283 530.022 7.672 257.553 4.947
+2615.407 509.691 8.213 538.370 7.656 249.745 7.598
+2615.563 507.166 6.562 536.603 8.169 249.117 7.279
+2615.719 509.411 8.527 536.216 9.643 248.721 6.120
+2615.877 506.024 9.685 536.032 10.826 247.107 6.359
+2616.034 508.750 7.936 536.240 8.848 248.521 4.772
+2616.191 507.497 9.864 535.892 8.017 245.645 8.004
+2616.347 507.885 8.360 534.968 10.067 253.876 6.090
+2616.506 507.068 8.360 537.289 6.823 258.518 4.578
+2616.664 501.580 7.549 535.812 8.797 242.025 6.713
+2616.822 496.805 9.019 534.098 8.026 253.810 5.947
+2616.979 500.178 8.438 537.131 7.728 259.888 6.933
+2617.137 501.621 8.375 537.971 7.558 243.748 9.219
+2617.293 502.286 7.481 535.649 8.069 243.587 5.123
+2617.451 499.322 7.664 533.726 8.543 255.265 5.628
+2617.608 504.123 7.317 536.777 6.821 254.522 4.643
+2617.765 502.011 7.459 534.587 8.365 242.195 5.562
+2617.923 499.060 7.941 534.515 8.088 245.831 4.706
+2618.080 500.100 8.868 535.675 6.662 260.268 6.139
+2618.238 499.651 7.187 537.796 7.495 251.682 5.430
+2618.396 502.706 7.243 535.308 7.211 243.356 4.448
+2618.553 502.977 6.354 534.983 6.803 251.833 4.249
+2618.711 501.739 9.243 534.349 7.977 253.808 4.255
+2618.867 497.377 7.440 537.053 7.736 244.088 4.109
+2619.024 501.463 7.583 534.780 7.571 248.610 5.605
+2619.182 499.574 8.119 535.007 7.928 251.616 4.610
+2619.338 497.515 8.329 535.000 10.814 250.136 7.517
+2619.495 501.545 6.502 535.520 6.919 250.931 4.617
+2619.652 500.515 7.470 534.855 7.275 252.919 4.880
+2619.810 501.075 6.388 535.418 7.057 248.679 6.632
+2619.967 496.850 8.615 536.354 7.838 248.176 5.473
+2620.125 497.608 10.272 533.363 8.158 252.141 6.015
+2620.283 500.296 7.117 534.083 7.076 249.871 5.793
+2620.440 500.782 8.938 535.850 8.208 247.558 5.662
+2620.597 497.357 6.968 536.558 7.745 246.205 5.259
+2620.755 495.443 9.732 532.685 9.553 253.052 9.105
+2620.912 502.234 9.965 535.356 7.577 256.000 7.156
+2621.071 498.842 9.894 535.793 10.980 247.290 6.928
+2621.228 501.298 9.750 537.278 8.540 244.712 4.632
+2621.386 497.413 7.655 534.302 8.123 253.667 7.465
+2621.543 497.944 8.483 533.323 6.760 245.466 5.087
+2621.701 503.879 8.853 534.173 6.820 253.054 4.155
+2621.858 500.148 8.321 535.451 8.304 250.600 5.016
+2622.016 498.681 7.371 536.344 6.514 247.866 4.773
+2622.174 495.156 6.623 534.603 7.032 246.208 6.003
+2622.332 498.071 8.676 535.166 8.522 254.952 7.800
+2622.490 494.940 8.553 534.281 8.010 256.839 5.973
+2622.647 499.609 9.440 536.972 12.712 246.568 7.430
+2622.804 499.286 11.008 536.959 9.390 249.755 7.574
+2622.962 500.932 8.322 534.769 7.139 257.887 5.737
+2623.119 498.429 7.955 536.237 8.665 251.338 4.700
+2623.276 499.904 10.425 538.032 9.005 241.243 8.585
+2623.433 496.429 11.006 537.060 8.617 250.922 7.156
+2623.591 494.864 7.488 534.760 8.025 255.819 5.181
+2623.748 495.008 7.299 538.517 8.334 249.138 6.208
+2623.905 496.970 7.017 536.105 7.396 242.551 6.812
+2624.062 500.859 7.902 535.441 8.674 256.365 6.337
+2624.220 497.648 7.268 536.004 7.437 250.313 6.294
+2624.378 497.316 7.913 536.360 8.011 246.583 6.270
+2624.535 498.103 9.924 536.053 8.898 253.225 7.777
+2624.692 500.001 8.724 536.820 9.272 253.842 6.782
+2624.849 496.390 6.711 538.838 8.434 243.038 5.661
+2625.006 500.323 7.506 537.488 6.993 246.630 6.979
+2625.164 499.793 7.021 537.564 8.581 262.746 5.611
+2625.322 495.417 11.126 535.995 8.897 258.197 7.384
+2625.480 492.554 7.475 539.139 8.041 237.272 5.374
+2625.637 495.515 9.140 538.481 8.929 245.932 7.573
+2625.795 497.365 12.316 538.444 9.850 254.219 9.467
+2625.952 499.783 8.360 538.024 9.136 256.952 7.265
+2626.109 502.287 8.214 537.910 8.219 254.419 7.328
+2626.266 501.032 9.109 537.159 8.662 243.754 7.553
+2626.423 498.270 8.880 538.321 9.202 251.787 6.106
+2626.580 496.142 9.517 541.503 9.173 254.707 5.972
+2626.738 496.641 10.170 540.795 7.223 244.107 10.095
+2626.894 494.796 9.106 537.348 9.270 248.101 12.911
+2627.051 495.207 7.863 538.483 6.396 261.501 5.935
+2627.207 496.952 6.097 537.844 7.219 251.175 7.052
+2627.365 498.179 7.824 541.448 6.558 242.931 4.719
+2627.522 498.321 8.534 539.694 7.056 249.629 4.523
+2627.680 496.973 8.135 539.717 6.754 256.276 5.674
+2627.838 497.589 7.069 538.617 6.730 253.722 4.554
+2627.996 498.135 7.696 539.546 6.551 255.497 5.351
+2628.154 498.531 8.694 541.175 7.021 250.364 5.093
+2628.311 498.355 8.175 540.071 7.100 247.133 5.308
+2628.469 504.803 9.123 540.710 6.723 249.341 5.059
+2628.627 503.948 7.398 541.107 6.600 254.953 10.152
+2628.784 498.279 7.125 537.171 6.571 248.469 5.670
+2628.942 496.552 6.027 539.511 6.057 247.804 3.928
+2629.100 494.445 7.857 539.625 6.919 251.408 4.966
+2629.257 490.774 5.776 540.506 6.108 253.794 4.072
+2629.416 493.347 8.273 540.285 6.615 251.847 6.047
+2629.572 493.553 7.503 539.512 6.674 250.228 5.202
+2629.730 496.495 7.724 539.995 6.937 254.472 5.058
+2629.888 494.834 6.660 538.659 6.111 256.194 5.190
+2630.047 491.358 6.525 539.706 6.640 243.151 5.091
+2630.204 496.833 7.933 539.937 6.057 242.671 3.936
+2630.362 495.878 6.370 542.469 6.837 251.786 7.971
+2630.519 494.008 7.203 539.524 6.566 257.737 4.983
+2630.677 494.040 5.996 539.945 6.402 253.837 4.865
+2630.836 495.810 5.688 539.189 6.345 249.608 5.267
+2630.993 492.208 5.992 538.311 6.705 251.246 5.567
+2631.151 493.262 6.357 539.763 6.223 252.532 4.279
+2631.309 491.622 8.772 540.337 7.050 256.475 8.710
+2631.467 488.766 9.081 539.953 6.715 249.324 6.074
+2631.624 488.277 7.714 539.119 6.631 246.853 5.175
+2631.782 495.662 6.234 537.971 7.389 265.068 5.176
+2631.941 495.126 7.808 538.089 6.253 256.360 6.103
+2632.098 494.301 6.537 540.341 6.575 234.863 7.096
+2632.256 496.263 8.852 539.243 6.562 243.628 9.614
+2632.412 500.502 8.397 538.202 6.995 260.466 5.863
+2632.571 491.765 8.849 540.662 7.501 252.134 5.673
+2632.728 491.047 9.483 540.316 6.430 244.891 5.303
+2632.885 487.100 6.704 536.813 6.180 248.338 5.065
+2633.044 495.341 6.541 536.658 6.485 263.263 4.386
+2633.202 493.733 7.150 541.446 6.494 255.592 3.991
+2633.360 495.747 6.077 540.714 6.869 241.545 5.658
+2633.518 494.337 7.337 537.947 7.251 249.115 6.953
+2633.677 504.683 7.891 537.539 6.410 263.811 5.933
+2633.834 490.306 7.169 540.655 6.785 242.878 8.980
+2633.991 487.643 7.282 541.436 6.610 234.338 3.878
+2634.150 493.176 6.279 538.574 6.245 254.773 6.418
+2634.308 492.451 7.128 537.115 6.984 264.907 5.219
+2634.467 491.144 7.307 541.731 7.147 255.399 4.157
+2634.624 489.881 8.988 541.487 7.362 242.724 5.109
+2634.782 489.468 8.048 536.294 6.344 258.187 6.487
+2634.940 494.694 6.259 537.393 6.876 265.881 4.740
+2635.098 493.697 8.535 542.733 6.824 244.628 4.536
+2635.256 492.777 9.859 543.577 6.997 246.896 5.339
+2635.414 497.777 10.307 541.215 7.274 254.468 12.174
+2635.572 494.137 9.759 539.302 6.888 245.434 6.697
+2635.728 493.431 8.404 540.153 8.578 243.684 7.588
+2635.885 488.594 7.047 540.771 7.744 256.326 4.251
+2636.044 490.165 7.698 539.777 7.914 261.283 6.404
+2636.202 483.711 7.226 540.577 6.513 252.022 6.966
+2636.360 484.617 6.417 539.445 7.567 256.850 4.629
+2636.518 491.926 10.724 539.834 8.089 257.618 4.868
+2636.676 489.959 9.690 540.658 7.686 248.406 7.226
+2636.832 496.429 8.075 538.846 8.596 245.864 6.528
+2636.989 501.954 7.968 539.488 7.251 253.208 6.413
+2637.146 491.409 8.516 538.344 7.094 249.542 8.668
+2637.302 492.734 9.492 540.813 7.298 249.245 5.721
+2637.460 490.407 9.758 540.048 6.858 249.222 12.587
+2637.617 486.634 10.613 537.400 12.612 262.422 5.969
+2637.776 490.466 8.666 538.714 8.169 261.964 5.288
+2637.934 485.984 9.872 540.317 7.148 249.969 6.509
+2638.092 492.349 8.875 537.723 7.047 258.939 9.782
+2638.250 490.193 7.547 535.687 7.883 261.129 8.744
+2638.407 490.261 9.830 538.246 8.711 240.311 7.090
+2638.563 492.992 6.989 540.022 7.508 240.613 6.396
+2638.721 495.759 6.445 537.130 7.032 260.986 5.298
+2638.880 496.767 7.980 536.421 8.434 261.069 5.844
+2639.037 492.587 11.196 537.694 9.623 246.660 6.990
+2639.194 498.175 8.219 538.527 7.778 244.956 5.441
+2639.351 500.781 12.455 539.565 8.202 252.189 7.189
+2639.508 494.427 8.415 539.405 9.757 257.161 5.728
+2639.666 487.744 7.937 538.064 9.628 244.431 4.971
+2639.822 486.557 7.373 539.120 8.963 244.614 5.761
+2639.980 493.335 7.527 540.531 8.794 262.646 5.882
+2640.138 490.673 8.375 538.845 8.069 259.066 7.150
+2640.295 492.676 7.663 540.198 8.537 237.040 6.714
+2640.452 493.736 9.443 541.472 8.303 244.950 6.251
+2640.610 503.087 7.106 539.024 6.474 263.629 5.326
+2640.767 498.350 8.620 538.570 6.154 248.046 6.127
+2640.925 494.943 7.508 540.485 6.888 235.420 6.428
+2641.082 495.669 7.831 541.654 7.047 250.604 4.598
+2641.240 498.496 6.785 537.726 6.691 260.556 5.760
+2641.397 495.644 9.029 540.667 7.816 249.105 4.578
+2641.554 495.686 6.791 541.136 7.616 244.871 6.183
+2641.712 492.676 8.053 541.071 9.219 257.328 6.049
+2641.869 492.426 8.150 538.590 8.260 255.553 5.122
+2642.027 493.934 10.239 539.006 9.657 250.585 6.087
+2642.186 494.209 8.824 540.260 8.227 251.825 5.815
+2642.344 492.762 9.919 540.262 9.026 254.688 4.527
+2642.502 494.507 7.564 541.942 8.790 250.046 5.201
+2642.660 496.745 10.620 543.109 7.756 249.980 6.574
+2642.817 497.777 8.061 541.441 8.451 250.999 6.520
+2642.974 494.387 7.677 539.494 7.509 249.150 5.212
+2643.132 493.623 9.254 539.975 10.426 257.181 7.289
+2643.289 495.566 9.463 541.509 10.849 252.871 7.138
+2643.446 496.215 7.955 541.125 8.481 246.668 4.908
+2643.603 493.882 9.723 541.231 11.265 254.206 7.033
+2643.760 494.848 7.844 538.732 8.570 256.582 6.500
+2643.917 492.508 8.237 539.767 7.560 253.065 6.047
+2644.076 492.735 6.781 541.677 7.442 251.240 5.281
+2644.232 490.587 6.941 542.816 6.551 250.762 5.019
+2644.390 492.595 10.175 538.878 7.304 255.327 5.540
+2644.548 495.315 6.616 539.988 6.769 253.873 4.507
+2644.706 495.403 7.605 541.679 8.548 257.378 7.002
+2644.864 499.084 7.260 540.506 6.757 256.333 4.708
+2645.022 494.890 6.395 540.805 7.167 240.353 4.677
+2645.180 494.778 7.655 541.268 7.471 243.803 4.849
+2645.338 502.927 7.422 540.732 6.935 266.308 5.291
+2645.497 494.019 7.655 540.947 6.961 259.383 5.979
+2645.655 494.810 6.981 538.689 6.565 242.073 6.373
+2645.812 494.398 7.278 540.036 7.089 243.480 4.826
+2645.971 501.024 6.347 540.610 6.953 270.244 6.487
+2646.130 498.720 6.782 540.996 7.280 252.892 9.257
+2646.287 501.547 7.525 542.750 6.986 235.548 9.525
+2646.445 499.475 6.944 539.477 7.169 252.155 7.579
+2646.603 500.534 6.332 537.094 7.407 272.551 7.335
+2646.761 499.825 7.900 540.891 8.708 247.315 7.832
+2646.916 497.418 8.061 544.528 6.304 231.243 4.603
+2647.074 502.454 6.556 540.535 6.019 245.372 4.416
+2647.233 503.954 7.195 538.675 7.149 272.423 4.811
+2647.392 502.109 6.208 539.256 5.886 262.214 5.139
+2647.550 501.641 7.530 541.792 6.440 228.672 6.866
+2647.707 502.326 6.316 540.918 6.345 242.866 4.520
+2647.866 507.243 6.320 538.129 6.932 267.838 5.224
+2648.024 502.332 7.421 541.021 6.453 249.968 6.995
+2648.181 501.093 7.288 541.150 6.659 238.219 5.485
+2648.338 504.890 7.642 540.841 7.803 248.602 8.364
+2648.496 500.549 6.736 537.958 7.130 253.876 5.915
+2648.654 501.085 7.450 538.319 6.139 253.128 3.750
+2648.812 501.740 6.216 543.303 6.292 246.631 4.424
+2648.970 502.057 5.959 540.603 6.352 248.106 3.309
+2649.128 503.720 6.432 538.656 6.427 258.361 5.202
+2649.287 502.897 5.962 539.186 5.832 246.443 4.912
+2649.445 506.019 6.135 541.841 6.191 236.964 4.363
+2649.603 507.030 6.576 542.588 6.118 250.009 5.497
+2649.762 504.200 6.305 539.216 6.668 263.120 7.629
+2649.918 501.712 7.394 541.042 6.616 244.961 5.812
+2650.076 501.487 7.180 541.380 6.598 245.869 5.136
+2650.234 501.394 5.779 540.163 6.235 261.898 5.940
+2650.393 504.374 6.950 538.771 6.257 256.629 5.408
+2650.551 501.783 7.122 542.407 6.022 239.156 4.224
+2650.709 505.247 7.180 541.174 6.799 244.601 4.837
+2650.868 505.212 7.037 541.011 6.356 266.896 6.258
+2651.026 504.132 6.165 540.210 6.389 248.898 4.851
+2651.183 503.351 6.788 543.902 5.942 233.729 4.232
+2651.341 506.963 7.263 540.829 7.073 252.347 6.396
+2651.499 505.559 7.060 539.438 6.836 258.393 5.411
+2651.657 502.095 9.467 540.094 6.040 253.913 3.872
+2651.815 502.430 10.315 542.501 9.545 251.359 6.598
+2651.972 497.864 12.458 543.065 9.374 244.003 7.982
+2652.128 503.288 9.070 540.090 7.457 254.510 5.839
+2652.286 509.242 6.644 544.551 6.227 247.225 5.429
+2652.443 511.332 6.004 544.115 5.915 243.912 5.628
+2652.602 513.473 7.160 541.511 6.083 261.839 3.840
+2652.760 507.144 5.924 542.535 6.137 240.418 3.864
+2652.918 506.211 6.739 543.265 6.093 242.414 3.710
+2653.077 503.102 5.850 540.382 5.951 261.504 4.678
+2653.235 495.521 7.364 543.413 7.186 251.615 5.527
+2653.392 493.135 6.449 540.354 6.695 251.236 4.533
+2653.550 493.731 7.036 541.613 6.759 256.392 5.922
+2653.708 497.137 7.356 541.436 7.733 247.943 6.816
+2653.865 509.311 10.814 542.594 7.136 260.439 9.950
+2654.023 517.883 8.981 545.046 6.144 253.024 6.565
+2654.181 511.718 8.025 545.660 8.986 237.260 5.716
+2654.338 514.067 6.492 542.866 6.969 244.642 5.221
+2654.497 516.170 6.259 545.568 6.014 251.876 4.482
+2654.655 506.451 6.925 543.225 7.394 241.678 5.091
+2654.812 495.954 6.741 542.312 7.830 249.176 6.651
+2654.970 502.259 9.466 543.413 7.149 267.201 9.269
+2655.127 501.022 7.734 540.744 6.860 262.292 9.640
+2655.285 493.210 10.045 541.397 6.624 246.472 7.181
+2655.441 504.502 12.504 543.104 6.484 245.864 14.719
+2655.598 505.835 7.223 542.131 6.158 267.198 6.805
+2655.755 504.518 7.442 541.831 6.042 249.422 10.091
+2655.912 508.355 8.278 543.808 6.586 233.644 4.754
+2656.070 509.063 7.004 545.998 6.429 241.706 5.494
+2656.228 505.780 6.155 540.140 6.667 261.877 5.565
+2656.388 499.197 6.566 541.471 7.148 257.608 5.387
+2656.547 497.782 8.006 542.734 7.223 248.926 5.559
+2656.704 498.517 7.996 541.317 6.733 251.699 5.377
+2656.861 501.235 7.201 541.193 6.374 260.957 3.880
+2657.020 500.682 6.909 542.301 6.020 246.109 6.867
+2657.177 499.796 10.040 543.993 6.007 246.211 4.909
+2657.335 500.277 7.588 543.669 6.524 251.372 4.327
+2657.493 503.812 7.635 540.996 6.361 250.473 6.598
+2657.650 504.578 7.443 542.710 6.377 254.414 4.242
+2657.808 503.365 6.868 542.267 5.926 255.144 4.075
+2657.966 504.083 5.967 543.252 6.447 241.201 4.142
+2658.123 504.710 6.252 544.802 5.772 247.162 3.326
+2658.283 506.667 6.240 540.418 6.153 263.911 4.081
+2658.441 503.616 6.717 541.754 6.119 252.959 5.715
+2658.599 503.536 6.149 544.377 5.891 246.469 4.288
+2658.757 504.725 7.046 543.483 6.535 251.664 5.131
+2658.915 508.837 6.678 542.674 7.924 255.576 5.214
+2659.073 507.488 6.197 543.796 6.482 249.395 5.034
+2659.230 508.854 6.096 544.558 7.531 247.543 5.138
+2659.387 512.308 6.119 542.645 6.464 246.645 3.876
+2659.546 509.363 6.669 542.636 6.368 247.376 5.054
+2659.704 509.723 6.224 542.346 6.479 253.593 4.866
+2659.862 507.037 7.158 543.233 7.791 254.765 5.566
+2660.019 505.640 6.762 542.132 6.551 245.797 3.921
+2660.177 509.976 6.601 542.681 6.115 250.987 4.572
+2660.336 511.449 7.568 542.976 6.243 253.769 4.460
+2660.494 507.724 6.751 541.289 6.331 247.567 5.320
+2660.652 509.317 6.302 542.362 6.553 254.185 4.127
+2660.810 512.263 8.071 542.743 6.756 255.471 6.560
+2660.967 509.632 9.499 543.097 6.557 248.974 7.257
+2661.123 510.736 7.801 542.321 6.171 250.209 4.726
+2661.281 513.507 7.169 541.883 6.794 249.102 4.247
+2661.438 514.245 7.102 543.108 6.637 245.421 5.328
+2661.597 510.492 6.366 542.121 6.229 248.434 4.960
+2661.757 511.174 7.023 540.681 6.527 267.144 5.065
+2661.915 509.281 8.836 541.886 6.591 248.891 3.948
+2662.072 504.702 8.150 542.018 6.539 236.048 5.329
+2662.229 506.617 7.312 541.210 7.186 260.330 4.331
+2662.387 509.036 7.040 539.392 6.753 256.583 7.971
+2662.544 508.360 7.942 539.603 7.066 242.885 6.755
+2662.701 510.083 8.426 540.146 7.487 244.798 9.329
+2662.857 510.730 15.552 540.141 7.667 252.408 7.304
+2663.014 508.797 6.666 537.721 6.559 253.564 5.694
+2663.172 507.428 6.685 539.767 7.002 248.105 3.399
+2663.330 509.404 7.729 539.987 6.098 243.161 4.774
+2663.488 515.064 6.479 537.589 6.131 254.721 4.356
+2663.647 512.990 6.633 535.335 6.599 254.877 4.526
+2663.805 506.989 8.039 537.593 6.884 240.458 5.646
+2663.962 502.919 7.217 536.926 6.824 238.524 5.817
+2664.120 508.599 7.290 536.239 7.502 261.945 4.579
+2664.279 507.806 7.319 536.182 7.810 262.479 6.092
+2664.437 502.268 8.631 533.081 6.599 232.784 7.252
+2664.594 511.212 6.884 532.800 7.071 252.517 6.180
+2664.752 513.282 7.437 532.848 6.664 260.815 6.873
+2664.910 511.812 8.480 533.218 7.149 244.148 6.218
+2665.067 507.548 7.051 531.132 8.944 241.291 5.741
+2665.224 507.345 7.371 531.671 6.705 254.252 6.308
+2665.382 509.213 7.698 533.696 7.975 246.362 6.073
+2665.540 503.072 8.008 531.657 7.500 245.323 4.566
+2665.696 502.480 6.573 531.746 6.725 254.253 5.272
+2665.854 505.074 7.406 534.547 10.080 252.302 6.845
+2666.012 505.650 7.022 531.275 7.858 249.923 4.996
+2666.169 503.806 7.862 530.122 7.448 252.229 6.665
+2666.325 504.198 6.651 530.631 9.468 245.832 7.050
+2666.482 510.892 7.737 530.436 6.334 249.818 7.400
+2666.640 510.039 6.928 531.554 6.453 254.178 4.500
+2666.797 509.650 7.452 532.705 7.404 246.001 4.533
+2666.955 502.856 7.736 534.027 7.946 244.490 5.688
+2667.112 503.718 7.329 534.320 7.286 254.534 7.082
+2667.270 502.847 8.269 529.873 9.344 254.555 5.990
+2667.427 499.908 7.454 534.288 6.731 246.545 4.647
+2667.585 501.479 6.782 531.812 6.919 251.365 4.881
+2667.742 501.904 7.737 531.508 7.965 256.893 5.471
+2667.900 502.699 7.262 531.385 7.449 250.778 5.767
+2668.057 505.877 6.402 532.283 6.553 240.557 4.692
+2668.215 505.778 7.161 530.502 6.587 248.635 4.970
+2668.373 503.647 7.393 529.315 7.478 253.116 5.930
+2668.531 505.246 6.441 531.713 6.364 252.141 4.521
+2668.688 503.102 7.045 530.847 6.720 245.211 5.150
+2668.846 501.091 7.779 531.988 7.178 251.242 4.625
+2669.003 512.560 7.705 530.429 7.580 254.072 5.937
+2669.162 497.715 6.972 529.124 6.847 245.960 5.222
+2669.319 500.837 6.180 527.621 6.906 248.389 4.770
+2669.477 502.008 6.481 529.406 6.707 248.413 4.943
+2669.635 504.550 7.256 528.514 7.118 253.214 4.652
+2669.792 504.665 7.047 529.415 8.382 251.112 5.281
+2669.949 504.796 8.033 528.084 7.343 247.291 5.368
+2670.107 503.298 6.938 529.510 6.340 244.392 4.875
+2670.264 506.863 7.005 529.875 6.577 253.083 5.175
+2670.423 504.958 6.318 528.458 6.882 254.760 4.181
+2670.581 505.059 7.587 527.464 7.514 250.437 5.584
+2670.739 502.780 7.745 529.404 7.245 243.844 4.192
+2670.897 500.977 8.319 528.434 7.882 246.958 5.279
+2671.055 504.269 6.765 527.714 8.484 254.419 5.208
+2671.212 500.552 7.374 526.637 7.437 249.924 5.056
+2671.370 505.665 8.259 526.856 7.215 254.269 5.692
+2671.527 502.086 8.744 526.468 8.240 246.502 6.468
+2671.683 503.040 7.530 525.904 8.245 246.735 6.530
+2671.841 501.430 8.038 526.449 8.343 248.157 5.919
+2671.998 507.164 9.199 523.354 8.487 251.501 6.228
+2672.156 504.251 6.438 522.883 6.994 252.345 4.835
+2672.313 505.872 7.941 523.658 6.848 245.223 4.832
+2672.469 502.668 7.637 522.726 7.365 244.992 5.993
+2672.628 503.436 9.020 523.637 7.927 247.399 6.215
+2672.785 502.954 7.631 522.386 7.622 252.604 6.062
+2672.943 505.029 8.966 521.933 7.139 253.186 5.784
+2673.100 503.640 7.857 520.889 7.626 248.361 5.129
+2673.257 502.206 8.244 521.188 8.791 244.473 5.147
+2673.415 503.332 8.861 519.641 8.367 248.124 5.294
+2673.572 502.413 10.247 518.256 8.493 250.311 5.658
+2673.730 504.214 9.799 517.252 9.566 249.363 6.800
+2673.887 501.562 8.157 518.002 8.515 249.983 6.812
+2674.044 501.795 7.734 520.120 9.603 249.869 5.865
+2674.202 504.798 9.795 518.001 8.795 249.878 8.341
+2674.359 500.608 7.473 518.300 7.927 245.308 4.732
+2674.516 504.236 9.593 516.793 8.160 246.873 7.423
+2674.673 503.072 7.069 517.217 9.172 247.968 6.398
+2674.830 502.340 9.692 518.052 8.289 247.049 8.839
+2674.987 503.973 8.018 518.670 8.382 246.970 6.290
+2675.145 503.549 7.670 516.056 7.579 252.719 6.525
+2675.303 503.875 9.198 523.140 7.732 244.967 5.592
+2675.461 504.488 8.730 516.251 7.543 247.059 6.310
+2675.619 502.324 8.716 519.302 8.788 248.290 5.845
+2675.777 502.273 8.253 520.433 8.201 246.232 5.249
+2675.933 503.582 9.729 517.054 8.018 247.982 7.186
+2676.091 504.485 9.688 518.990 8.272 248.769 6.268
+2676.248 503.524 7.687 519.809 10.309 246.897 6.029
+2676.406 505.425 8.316 518.708 8.766 250.529 7.320
+2676.563 504.544 7.866 518.007 11.589 247.445 6.712
+2676.720 504.825 8.770 518.710 8.072 247.824 5.356
+2676.877 503.998 9.579 518.667 9.617 250.558 6.186
+2677.034 504.170 11.397 520.936 7.903 249.695 6.625
+2677.192 502.371 7.418 520.749 7.715 246.057 6.729
+2677.349 503.493 8.158 520.157 7.917 249.440 6.057
+2677.506 502.874 7.875 521.261 8.280 250.644 6.950
+2677.663 501.928 8.264 522.132 7.447 249.996 4.997
+2677.821 504.139 6.751 522.731 7.785 246.440 5.309
+2677.978 503.251 6.420 520.017 7.603 250.304 5.014
+2678.137 502.332 7.686 521.230 8.290 248.483 4.868
+2678.294 503.773 8.593 523.052 7.140 246.174 5.131
+2678.451 506.107 6.798 521.090 7.302 249.831 5.058
+2678.609 504.511 7.948 520.621 8.185 249.938 4.891
+2678.765 504.045 7.049 522.756 8.166 249.559 7.269
+2678.923 502.280 6.719 521.207 7.031 248.435 5.461
+2679.081 504.192 6.956 523.452 8.683 248.074 7.649
+2679.238 502.622 6.934 523.364 6.740 247.280 4.194
+2679.395 504.206 9.037 521.423 7.562 250.152 6.113
+2679.554 505.202 9.720 524.914 8.737 249.571 4.492
+2679.711 504.212 9.243 525.419 7.568 249.385 5.862
+2679.868 503.112 6.570 524.264 6.558 247.923 3.957
+2680.025 503.701 8.684 521.962 7.123 249.099 4.197
+2680.182 504.197 8.157 522.099 6.414 248.471 4.347
+2680.340 503.902 7.057 521.641 6.657 250.054 4.498
+2680.497 503.679 6.496 520.256 6.790 246.750 4.431
+2680.655 504.246 6.419 519.992 6.374 248.097 4.467
+2680.814 503.752 7.665 519.459 6.323 248.000 4.221
+2680.972 505.617 6.415 519.624 5.840 247.170 5.058
+2681.131 504.646 6.738 519.186 7.638 249.131 4.184
+2681.288 503.906 6.547 517.991 7.019 246.581 5.229
+2681.447 504.289 6.327 517.069 6.055 249.215 4.754
+2681.605 504.092 6.349 518.100 5.777 248.972 3.346
+2681.763 503.830 6.139 519.531 6.152 248.449 5.890
+2681.921 504.338 6.165 521.055 6.073 247.474 3.259
+2682.080 504.993 6.476 519.200 5.623 248.904 3.856
+2682.238 503.559 5.747 516.752 5.874 247.059 3.507
+2682.396 504.545 5.911 515.337 5.674 246.880 3.510
+2682.554 504.495 7.068 527.403 8.381 248.628 5.275
+2682.712 503.955 8.084 556.134 6.721 248.216 5.576
+2682.870 503.669 7.377 546.031 7.304 256.022 4.873
+2683.028 503.726 6.107 539.340 6.286 250.180 3.330
+2683.186 504.037 5.620 544.703 5.867 250.541 3.549
+2683.344 503.230 5.386 542.137 5.725 251.735 3.601
+2683.502 503.092 5.658 544.301 5.714 251.037 3.272
+2683.660 503.030 5.685 544.563 5.752 252.900 3.143
+2683.819 504.270 6.337 542.295 6.610 250.299 4.114
+2683.977 503.872 6.344 543.713 6.313 251.073 3.761
+2684.135 504.138 5.460 542.427 5.785 252.620 4.587
+2684.293 503.431 5.520 543.234 5.737 250.166 3.074
+2684.451 503.114 5.453 543.332 5.761 252.501 3.481
+2684.609 503.751 5.659 543.393 5.702 252.585 3.471
+2684.767 503.447 5.538 542.993 5.768 250.485 3.939
+2684.925 503.354 5.499 543.440 5.797 251.004 4.186
+2685.083 504.363 5.390 543.434 5.790 252.590 3.491
+2685.241 503.763 5.585 543.424 5.795 249.985 3.750
+2685.398 503.577 5.402 543.504 5.716 250.239 3.322
+2685.556 503.265 5.369 543.225 5.776 252.752 3.315
+2685.714 503.602 5.373 542.912 5.734 251.977 3.199
+2685.873 503.516 5.395 543.259 5.811 249.899 3.073
+2686.032 503.855 5.317 543.272 5.755 251.669 3.047
+2686.190 503.988 5.423 543.512 5.759 251.136 3.427
+2686.348 504.079 5.355 542.745 5.759 250.861 3.390
+2686.505 503.600 5.405 543.607 5.762 251.728 3.441
+2686.663 503.636 5.366 543.636 5.788 251.377 3.346
+2686.821 503.916 5.388 543.806 5.705 252.393 3.063
+2686.979 503.389 5.457 543.418 5.773 250.803 3.067
+2687.137 504.333 5.552 544.034 5.735 251.128 3.578
+2687.295 503.533 5.346 543.160 5.677 250.771 3.382
+2687.453 503.395 5.314 543.631 5.789 251.017 3.328
+2687.612 503.944 5.450 543.286 5.751 252.250 3.312
+2687.769 504.739 5.404 543.532 5.641 251.492 3.084
+2687.927 503.707 5.497 543.755 5.749 251.044 3.094
+2688.085 503.717 5.472 544.237 5.915 251.190 3.108
+2688.244 503.757 5.334 543.642 5.732 250.941 3.202
+2688.402 503.917 5.392 543.386 5.737 251.049 3.293
+2688.560 503.669 5.385 543.083 5.808 252.190 3.117
+2688.718 504.076 5.481 543.350 5.675 251.141 3.139
+2688.876 504.200 5.320 543.613 5.712 250.921 3.220
+2689.035 504.152 5.405 543.446 5.732 251.189 3.378
+2689.192 503.831 5.303 543.164 5.838 251.011 3.264
+2689.350 504.078 5.437 543.531 5.679 250.990 3.185
+2689.508 503.960 5.327 543.605 5.814 251.799 3.485
+2689.666 504.159 5.484 543.286 5.713 251.288 2.955
+2689.824 504.561 5.337 543.312 5.664 251.932 3.279
+2689.982 503.745 5.422 543.873 5.798 251.359 3.178
+2690.141 504.407 5.437 543.588 5.727 251.653 3.370
+2690.298 503.844 5.403 544.085 5.782 251.196 3.500
+2690.457 504.298 5.403 544.440 5.729 251.221 3.360
+2690.614 504.573 5.308 543.654 5.710 251.402 3.179
+2690.773 503.825 5.476 543.756 5.778 252.134 3.495
+2690.931 504.318 5.468 543.527 5.722 251.291 3.375
+2691.088 503.003 5.401 544.115 5.669 251.032 3.105
+2691.246 503.840 5.384 543.621 5.740 250.790 3.050
+2691.405 503.588 5.449 543.906 5.808 251.647 3.176
+2691.563 503.525 5.350 542.629 5.881 251.246 3.336
+2691.721 503.565 5.335 544.116 5.711 252.102 2.928
+2691.880 503.375 5.709 546.951 5.898 252.281 3.094
+2692.037 503.853 5.404 544.059 5.744 251.402 3.726
+2692.195 503.478 5.496 543.690 5.807 251.614 3.167
+2692.353 503.944 5.421 543.906 5.816 251.136 3.262
+2692.512 504.739 5.475 540.909 5.672 251.271 3.539
+2692.670 504.277 5.527 541.889 5.687 250.372 3.260
+2692.827 504.132 5.498 541.539 5.799 251.113 3.314
+2692.986 503.941 5.557 542.595 5.780 250.951 3.557
+2693.144 503.729 5.487 543.716 5.678 251.429 3.291
+2693.302 504.377 5.399 544.107 5.851 251.714 3.301
+2693.460 504.053 5.315 543.021 5.778 251.297 3.293
+2693.618 504.010 5.513 543.680 5.771 251.212 3.510
+2693.776 504.510 5.478 544.036 5.870 251.372 3.604
+2693.933 504.075 5.355 543.200 5.849 250.943 3.247
+2694.092 503.850 5.546 543.352 5.961 252.099 3.394
+2694.250 503.898 5.539 543.753 5.692 251.251 3.291
+2694.408 504.469 5.412 543.667 5.643 251.232 3.327
+2694.566 504.464 5.935 543.616 7.102 251.372 4.110
+2694.723 504.294 5.454 544.316 5.876 251.093 3.076
+2694.882 504.132 5.330 543.283 5.781 250.930 3.631
+2695.040 503.531 5.301 543.352 5.715 251.019 3.105
+2695.198 503.645 5.428 543.293 6.050 251.370 3.400
+2695.356 503.466 5.402 543.003 5.708 251.303 3.359
+2695.514 504.244 5.401 543.360 5.847 251.463 3.452
+2695.672 503.892 5.434 544.273 5.844 250.634 3.147
+2695.830 503.708 5.393 544.372 5.750 251.626 3.125
+2695.988 504.097 5.288 543.513 5.789 251.456 3.576
+2696.146 504.381 5.549 543.695 5.735 250.354 3.340
+2696.304 504.073 5.457 543.787 5.826 251.383 3.534
+2696.462 504.600 5.324 543.447 5.760 251.603 3.190
+2696.620 504.066 5.363 543.834 5.814 251.856 3.324
+2696.778 504.300 5.429 543.858 5.772 251.258 3.360
+2696.935 504.233 5.378 543.218 5.700 251.142 3.188
+2697.093 503.822 5.469 543.292 5.805 251.561 3.094
+2697.251 503.768 5.457 543.023 5.679 251.185 3.170
+2697.409 503.757 5.524 543.090 5.884 251.531 3.044
+2697.567 503.637 5.486 543.591 5.792 250.625 3.206
+2697.726 504.026 5.324 543.385 5.854 251.876 3.390
+2697.883 503.550 5.384 543.853 5.689 250.808 3.018
+2698.042 503.975 5.330 542.718 5.885 250.828 3.705
+2698.199 503.989 5.476 542.887 5.685 251.548 3.345
+2698.358 503.709 5.409 543.418 5.711 251.275 3.176
+2698.516 503.607 5.332 543.754 5.673 252.072 3.337
+2698.674 504.276 5.338 543.567 5.763 250.500 3.183
+2698.832 503.772 5.275 542.885 5.730 250.785 3.236
+2698.990 503.777 5.425 543.308 5.756 251.677 3.028
+2699.148 504.387 5.411 543.383 5.689 251.466 3.121
+2699.306 503.923 5.468 543.713 5.776 250.564 3.044
+2699.464 503.759 5.414 543.257 5.747 251.665 3.061
+2699.622 504.267 5.395 543.222 5.735 251.806 3.143
+2699.781 503.852 5.261 543.522 5.714 251.158 3.109
+2699.939 503.578 5.427 543.685 5.713 250.981 3.130
+2700.097 504.075 5.504 543.026 5.739 251.779 3.331
+2700.256 504.160 5.714 542.930 5.686 251.927 3.731
+2700.414 504.411 5.371 542.549 5.667 251.769 3.422
+2700.571 503.684 5.302 543.645 5.736 251.917 3.146
+2700.729 503.796 5.294 543.266 5.704 251.289 3.256
+2700.888 504.507 5.307 543.492 5.631 251.162 3.423
+2701.045 503.685 5.236 543.165 5.806 251.651 2.974
+2701.203 503.916 5.364 543.451 5.685 251.456 3.093
+2701.361 503.939 5.365 543.354 5.779 250.854 3.290
+2701.519 503.509 5.387 543.063 5.837 250.628 3.158
+2701.677 503.885 5.381 543.460 5.716 251.196 3.152
+2701.835 504.028 5.366 542.994 5.704 250.781 3.395
+2701.993 504.430 5.346 543.050 5.630 250.877 3.056
+2702.150 503.684 5.421 542.790 5.781 251.528 2.978
+2702.308 504.146 5.374 542.748 5.651 252.075 3.035
+2702.467 504.071 5.398 543.187 5.674 251.250 3.138
+2702.625 503.510 5.394 543.571 5.657 251.962 3.026
+2702.783 503.335 5.303 543.105 5.819 251.329 3.046
+2702.941 503.723 5.387 543.611 5.710 252.003 3.121
+2703.099 504.077 5.367 543.436 5.775 251.420 3.178
+2703.257 504.290 5.752 543.894 7.435 251.604 4.174
+2703.415 504.362 5.378 543.899 5.965 250.726 3.486
+2703.572 504.533 5.393 543.699 6.024 250.977 3.288
+2703.731 504.215 5.375 543.467 5.743 251.419 3.328
+2703.888 503.482 5.337 543.494 5.807 250.894 3.236
+2704.046 503.684 5.321 543.284 5.718 251.208 3.076
+2704.205 504.256 5.282 543.362 5.803 252.052 3.085
+2704.363 504.232 5.377 543.103 5.657 251.380 3.142
+2704.521 504.052 5.416 543.561 5.724 251.653 3.107
+2704.679 503.460 5.452 543.515 5.685 252.016 3.079
+2704.837 504.274 5.369 543.535 5.708 251.510 3.438
+2704.995 504.262 5.331 543.765 5.724 251.525 3.029
+2705.153 503.952 5.337 543.717 5.741 251.015 3.094
+2705.311 504.009 5.404 543.517 5.681 251.140 3.148
+2705.469 503.810 5.502 543.685 5.726 251.541 3.052
+2705.627 504.368 5.433 544.106 5.834 250.925 3.207
+2705.786 504.483 5.381 542.991 5.666 251.389 3.225
+2705.944 504.074 5.362 543.349 5.693 251.293 3.211
+2706.102 503.230 5.365 542.913 5.775 251.542 3.234
+2706.259 504.122 5.346 543.359 5.732 251.235 3.207
+2706.417 504.011 5.276 543.013 5.745 251.562 3.193
+2706.575 504.240 5.336 543.500 5.794 251.915 2.977
+2706.733 503.692 5.336 543.595 5.766 252.209 3.181
+2706.892 503.916 5.325 543.586 5.695 251.852 3.046
+2707.050 504.439 5.328 543.625 5.681 252.138 3.114
+2707.208 503.764 5.510 543.446 5.739 251.301 3.037
+2707.366 504.247 5.473 543.744 5.678 251.463 3.095
+2707.524 504.102 5.405 543.537 5.693 251.704 2.986
+2707.682 504.081 5.339 543.715 5.779 250.797 3.078
+2707.840 503.850 5.331 543.047 5.775 251.348 3.153
+2707.998 503.718 5.490 543.090 5.784 251.113 3.334
+2708.157 503.877 5.354 542.900 5.681 252.111 3.213
+2708.314 504.388 5.296 543.129 5.711 251.881 3.134
+2708.472 504.303 5.337 543.191 5.704 251.258 3.155
+2708.631 504.293 5.484 543.461 5.645 251.182 3.363
+2708.789 503.863 5.285 543.774 5.748 250.781 3.099
+2708.947 504.108 5.328 542.667 5.657 251.407 3.304
+2709.105 504.031 5.318 543.216 5.668 251.794 3.040
+2709.262 503.860 5.307 543.722 5.806 252.397 3.213
+2709.421 503.928 5.370 542.937 5.682 251.444 3.079
+2709.579 503.849 5.413 543.239 5.795 251.534 3.187
+2709.737 503.778 5.407 542.652 5.793 250.905 3.147
+2709.896 503.707 5.321 542.926 5.707 251.789 3.171
+2710.054 503.667 5.370 543.229 5.677 251.917 3.033
+2710.212 503.736 5.360 542.512 5.819 251.269 3.081
+2710.371 503.797 5.392 543.095 5.649 252.012 3.115
+2710.529 503.018 5.316 542.881 5.725 251.180 3.032
+2710.687 503.680 5.365 543.168 5.746 252.051 3.199
+2710.845 503.726 5.391 543.231 5.704 251.970 3.117
+2711.004 503.617 5.353 542.952 5.647 251.349 2.984
+2711.162 504.026 5.275 543.169 5.707 251.343 3.277
+2711.320 503.870 5.325 543.121 5.667 251.493 3.174
+2711.478 503.728 5.385 542.491 5.740 251.534 3.014
+2711.636 503.877 5.411 543.314 5.680 251.285 3.046
+2711.794 503.728 5.323 542.843 5.732 251.512 3.148
+2711.952 504.327 5.422 543.948 5.691 251.485 3.025
+2712.111 504.323 5.456 543.779 5.729 250.934 2.967
+2712.269 504.633 5.484 543.407 5.721 251.149 2.933
+2712.427 503.956 5.326 543.704 5.843 252.221 3.038
+2712.586 504.029 5.433 542.837 5.767 250.812 3.266
+2712.744 503.040 5.420 543.648 5.672 251.838 3.198
+2712.902 504.140 5.320 543.486 5.841 251.868 3.028
+2713.060 504.021 5.300 543.494 5.728 250.958 3.034
+2713.218 504.880 5.383 543.594 5.684 251.419 3.091
+2713.376 504.108 5.454 543.746 5.715 251.434 3.431
+2713.533 503.801 5.377 544.057 5.685 251.554 3.228
+2713.691 504.758 5.271 542.980 5.762 251.385 3.117
+2713.849 503.857 5.458 543.969 5.707 251.303 3.060
+2714.007 504.188 5.292 543.239 5.752 251.333 3.108
+2714.166 503.661 5.356 543.542 5.793 251.943 3.130
+2714.324 503.866 5.316 542.445 5.643 250.579 3.102
+2714.482 504.028 5.420 543.834 5.733 251.215 3.079
+2714.640 503.440 8.156 543.678 7.075 251.622 8.451
+2714.797 504.224 6.428 543.776 5.980 251.736 4.042
+2714.954 504.222 5.463 543.367 5.719 250.867 3.323
+2715.112 504.442 5.508 543.333 5.661 251.648 3.300
+2715.269 503.704 5.577 543.153 5.694 250.776 2.980
+2715.427 503.647 5.485 543.091 5.734 251.127 3.166
+2715.585 504.416 5.295 543.351 5.750 251.421 3.070
+2715.743 503.984 5.280 543.703 5.679 251.454 2.908
+2715.901 504.279 5.303 543.867 5.760 250.904 3.218
+2716.059 503.422 5.417 543.018 5.741 251.579 3.382
+2716.217 504.394 5.367 542.680 5.675 250.995 3.094
+2716.376 504.364 5.524 543.886 5.723 251.849 3.241
+2716.534 503.943 5.352 543.528 5.814 251.018 3.058
+2716.692 504.339 5.437 543.405 5.792 251.850 3.147
+2716.851 504.223 5.457 543.184 5.740 252.038 2.992
+2717.009 503.882 5.412 543.341 5.733 251.060 3.114
+2717.167 503.728 5.439 543.433 5.683 251.520 3.138
+2717.326 503.807 5.491 543.324 5.650 252.145 3.107
+2717.484 503.788 5.346 542.473 5.697 252.051 3.134
+2717.642 503.637 5.468 543.454 5.747 250.810 3.114
+2717.800 503.996 5.464 543.494 5.799 250.808 2.939
+2717.959 504.570 5.292 543.415 5.740 251.048 3.283
+2718.117 504.335 5.308 543.354 5.760 251.450 3.209
+2718.275 503.933 5.384 544.153 5.779 251.744 3.388
+2718.432 503.859 5.297 543.171 5.759 251.957 3.191
+2718.591 504.458 5.447 543.171 5.693 250.989 3.331
+2718.749 504.514 5.412 544.051 5.704 251.369 3.019
+2718.908 504.385 5.392 543.510 5.680 250.953 3.234
+2719.066 504.263 5.552 543.415 5.732 250.859 3.341
+2719.223 504.382 5.324 543.414 5.710 251.218 2.939
+2719.381 503.943 5.371 543.024 5.754 251.772 3.111
+2719.539 504.039 5.427 543.310 5.752 251.257 3.129
+2719.697 503.920 5.343 543.703 5.702 251.242 3.170
+2719.855 504.339 5.344 543.967 5.663 251.212 3.046
+2720.013 504.383 5.453 543.439 5.761 251.622 3.106
+2720.172 503.923 5.442 543.574 5.801 251.376 3.157
+2720.330 503.829 5.392 543.615 5.726 250.723 2.970
+2720.488 503.928 5.323 543.306 5.765 251.267 3.135
+2720.647 504.349 5.369 543.133 5.729 251.222 3.196
+2720.805 503.663 5.350 543.021 5.692 251.362 3.390
+2720.962 504.746 5.341 543.890 5.740 251.483 3.269
+2721.121 503.987 5.351 543.328 5.770 251.954 3.138
+2721.279 503.639 5.495 543.243 5.768 251.719 3.070
+2721.437 503.656 5.297 543.332 5.679 251.137 2.883
+2721.595 504.316 5.510 543.203 5.716 251.771 2.905
+2721.753 504.423 5.378 543.632 5.816 251.467 3.216
+2721.911 504.354 5.379 543.136 5.658 251.254 3.032
+2722.069 503.973 5.346 544.151 5.716 251.132 3.090
+2722.227 504.169 5.369 543.191 5.760 251.181 3.377
+2722.385 503.571 5.301 543.472 5.690 252.021 3.059
+2722.543 504.095 5.353 543.744 5.719 251.420 3.023
+2722.702 503.690 5.293 543.547 5.694 251.134 3.110
+2722.859 503.806 5.505 543.595 5.702 251.661 3.100
+2723.018 503.808 5.263 543.736 5.714 251.216 3.069
+2723.176 503.748 5.472 543.357 5.789 251.702 3.128
+2723.334 503.907 5.382 543.563 5.705 251.857 3.146
+2723.493 504.099 5.280 543.515 5.644 250.608 3.047
+2723.650 504.041 5.365 543.675 5.732 251.876 3.068
+2723.809 504.070 5.326 543.606 5.695 251.828 3.215
+2723.967 503.430 5.486 542.876 5.653 252.128 3.196
+2724.125 503.694 5.326 542.878 5.727 251.171 3.166
+2724.283 503.986 5.433 543.018 5.640 250.471 3.259
+2724.441 503.999 5.281 543.700 5.746 251.874 3.281
+2724.598 504.260 5.454 543.657 5.626 251.158 3.116
+2724.757 504.242 5.277 543.736 5.692 251.991 3.136
+2724.915 503.592 5.460 543.767 5.752 250.599 3.000
+2725.073 504.155 5.376 543.237 5.661 250.586 2.998
+2725.231 504.211 5.358 544.282 5.720 251.825 2.999
+2725.390 503.832 5.313 543.242 5.706 251.448 3.105
+2725.548 504.128 5.312 543.792 5.938 252.244 3.227
+2725.706 503.961 5.280 543.398 5.860 251.132 3.039
+2725.864 504.249 5.306 543.874 5.731 251.051 3.084
+2726.022 503.672 5.460 543.668 5.763 251.490 3.429
+2726.180 504.186 5.298 543.196 5.805 251.354 3.062
+2726.337 504.191 5.343 543.232 5.650 251.453 2.911
+2726.496 504.222 5.393 543.402 5.775 251.484 3.195
+2726.653 503.992 5.332 543.074 5.716 251.004 3.110
+2726.812 503.749 5.326 543.480 5.786 250.860 3.201
+2726.970 504.557 5.303 543.394 5.728 250.858 3.165
+2727.128 503.875 5.427 543.414 5.829 250.628 3.304
+2727.286 504.348 5.305 543.184 5.768 252.066 2.974
+2727.444 504.053 5.400 543.711 5.692 251.340 3.190
+2727.602 503.900 5.370 543.397 5.716 249.803 2.987
+2727.760 503.679 5.385 543.354 5.772 251.318 3.041
+2727.918 504.406 5.321 543.053 5.858 252.573 3.164
+2728.077 503.954 5.344 543.520 5.790 250.835 3.071
+2728.235 504.029 5.331 543.915 5.768 250.998 3.373
+2728.393 503.790 5.363 542.889 5.666 252.030 3.173
+2728.552 503.367 5.403 543.148 5.731 252.240 3.348
+2728.710 504.203 5.458 543.181 5.668 251.492 3.038
+2728.869 504.142 5.350 543.681 5.684 251.014 3.116
+2729.027 504.141 5.227 543.266 5.782 251.160 3.238
+2729.184 504.161 5.304 543.792 5.699 251.051 3.205
+2729.343 504.001 5.213 543.298 5.714 251.390 3.377
+2729.500 504.450 5.409 544.493 5.710 251.043 3.018
+2729.658 504.444 5.503 542.985 5.752 251.650 2.990
+2729.817 504.594 5.315 543.709 5.817 252.086 3.523
+2729.975 504.516 5.415 543.207 5.737 251.220 3.128
+2730.133 503.945 5.389 543.682 5.716 251.142 3.265
+2730.291 504.279 5.498 543.616 5.746 251.341 3.157
+2730.449 504.162 5.414 543.946 5.646 251.283 3.327
+2730.607 504.411 5.534 543.879 5.851 252.262 3.212
+2730.765 503.374 5.413 543.548 5.801 252.192 3.290
+2730.923 503.243 5.541 543.315 5.738 250.851 2.908
+2731.081 503.552 5.401 543.453 5.900 252.088 2.972
+2731.239 504.285 5.439 543.174 5.793 250.970 3.215
+2731.397 504.182 5.347 543.131 5.615 251.329 3.256
+2731.555 503.711 5.387 542.821 5.676 251.463 3.280
+2731.713 503.627 5.347 543.728 5.751 250.964 3.154
+2731.872 503.466 5.275 543.617 5.687 251.709 3.052
+2732.029 503.964 5.337 543.256 5.768 251.177 3.120
+2732.188 503.309 5.500 542.932 5.720 250.941 3.151
+2732.346 503.443 5.360 542.769 5.751 252.259 3.172
+2732.504 502.784 5.410 543.287 5.887 251.252 3.209
+2732.662 505.177 5.541 543.452 5.745 252.532 3.366
+2732.820 503.091 5.249 543.764 5.766 250.105 3.069
+2732.978 503.840 5.398 543.337 5.739 251.771 3.303
+2733.137 503.688 5.332 543.163 5.727 252.107 3.313
+2733.294 503.736 5.325 543.401 5.780 251.321 3.202
+2733.452 503.617 5.295 543.474 5.676 251.503 3.308
+2733.610 503.836 5.521 542.994 5.812 251.215 3.333
+2733.768 504.238 5.439 543.730 5.745 251.702 2.943
+2733.926 504.042 5.316 543.247 5.658 251.487 3.033
+2734.084 503.430 5.446 543.572 5.771 250.844 3.200
+2734.242 503.954 5.245 543.675 5.764 251.948 3.075
+2734.401 503.979 5.268 543.676 5.714 251.189 3.238
+2734.558 503.229 5.319 543.646 5.667 252.001 3.039
+2734.716 503.972 5.308 542.876 5.767 250.770 3.133
+2734.874 503.819 5.386 542.568 5.672 251.687 2.992
+2735.032 504.018 5.340 543.465 5.675 251.416 3.069
+2735.190 503.900 5.286 543.354 5.783 251.684 2.963
+2735.348 504.659 5.322 543.363 5.762 251.186 3.158
+2735.507 504.316 5.409 543.683 5.724 251.081 3.015
+2735.665 504.343 5.402 543.576 5.822 251.470 2.987
+2735.823 503.143 5.406 543.755 5.765 252.294 3.477
+2735.980 503.771 5.244 543.337 5.746 251.942 3.154
+2736.139 503.097 5.388 543.183 5.708 251.769 3.116
+2736.297 504.181 5.373 543.691 5.756 251.217 3.195
+2736.455 503.901 5.436 543.287 5.740 251.432 3.095
+2736.613 503.659 5.316 543.602 5.728 251.164 3.021
+2736.771 503.726 5.396 543.046 5.734 251.241 3.335
+2736.929 503.207 5.369 543.100 5.745 251.542 3.400
+2737.087 504.512 5.382 543.581 5.800 250.865 3.297
+2737.245 503.845 5.371 542.925 5.763 250.818 3.037
+2737.403 503.518 5.356 543.299 5.757 251.748 3.186
+2737.562 503.885 5.403 543.063 5.819 251.307 3.150
+2737.720 504.438 5.530 543.390 5.857 251.553 3.613
+2737.877 503.834 6.276 543.394 5.968 251.245 4.423
+2738.036 506.038 8.420 543.564 8.402 252.542 8.135
+2738.193 502.850 9.951 543.915 7.292 251.115 7.029
+2738.350 503.768 5.726 544.239 5.744 251.741 3.409
+2738.508 504.447 5.713 544.712 5.827 251.697 3.083
+2738.667 503.694 5.441 545.327 5.723 252.017 3.172
+2738.825 503.836 5.391 546.163 5.802 252.200 3.581
+2738.983 503.778 5.332 546.851 5.757 252.052 3.365
+2739.141 503.837 5.398 547.908 5.740 251.050 3.310
+2739.299 504.498 5.377 547.539 5.765 252.600 3.156
+2739.457 503.235 5.365 547.765 5.819 252.596 3.169
+2739.616 503.942 5.383 546.067 5.712 251.495 3.103
+2739.773 503.169 5.404 547.310 5.779 251.404 3.069
+2739.932 503.561 5.369 547.703 5.854 251.504 3.116
+2740.090 503.225 5.279 547.917 5.751 251.655 3.185
+2740.248 503.562 5.371 548.419 5.732 251.866 3.286
+2740.406 504.325 5.515 548.144 5.762 251.098 3.144
+2740.564 503.893 5.383 548.551 5.830 251.921 3.099
+2740.722 503.339 5.449 546.655 5.749 252.179 3.559
+2740.881 504.433 5.502 548.136 5.697 251.611 3.165
+2741.039 503.854 5.897 547.991 5.999 251.836 3.533
+2741.197 504.168 5.932 548.459 5.848 251.408 5.939
+2741.355 503.931 5.856 548.184 5.898 251.384 3.966
+2741.512 503.899 6.087 548.351 5.955 251.413 3.950
+2741.671 504.139 5.591 548.593 5.816 252.364 3.462
+2741.829 503.981 5.463 548.085 5.770 251.903 3.234
+2741.987 504.149 5.296 549.060 5.722 251.299 3.355
+2742.144 506.091 9.823 547.980 6.786 251.133 5.982
+2742.302 503.940 6.995 548.289 6.321 251.441 3.902
+2742.459 503.759 5.572 548.242 5.834 251.774 3.161
+2742.618 503.417 5.454 547.172 5.854 252.397 3.191
+2742.776 503.384 5.388 548.151 5.760 252.063 3.458
+2742.933 503.663 5.350 548.291 5.882 251.640 3.714
+2743.091 504.526 5.319 548.702 5.825 251.826 3.564
+2743.249 503.565 5.734 548.247 5.768 252.448 3.787
+2743.407 502.885 5.985 548.022 5.804 251.914 3.477
+2743.565 503.618 5.412 548.960 5.807 252.119 3.598
+2743.723 503.766 5.646 549.189 5.757 252.301 3.436
+2743.881 504.027 5.636 548.961 5.824 251.223 3.440
+2744.039 504.080 5.625 550.519 5.819 250.732 3.429
+2744.197 503.650 6.145 550.585 5.875 252.197 3.467
+2744.355 503.256 5.966 550.245 6.283 252.922 3.841
+2744.513 503.512 6.837 552.512 5.957 252.139 4.141
+2744.671 503.065 6.104 551.075 5.929 252.691 3.911
+2744.829 504.310 5.826 552.420 6.010 253.036 4.274
+2744.987 504.643 5.467 553.634 6.011 252.700 4.047
+2745.144 503.816 6.471 554.756 6.117 252.017 3.730
+2745.302 503.668 5.608 552.287 5.942 251.950 3.911
/Designs/Data_loggers/galileo_experiment/PrjInfo.txt
0,0 → 1,14
 
[InfoShortDescription.en]
Simple test of accelerometer module (GSENSE01A + PIC18F4550)
 
[InfoShortDescription.cs]
Jednoduche demo modulu GSENSE01A spolecne s PIC18F4550.
[InfoLongDescription.en]
This construction takes data from accelerometer and compute sum of quadratic error to determine accuracy then send result to the PC via USB. Its simple - this construction was created during trip on train :)
 
[InfoLongDescription.cs]
Mikroprocesor přímo čte hodnoty z akcelerometru a počítá střední kvadratickou odchylku jako odhad chyby. Potom odešle data do PC přes USB pro další zpracování. Zřízení bylo zkonstruováno během cesty vlakem.
 
[End]
/Designs/Data_loggers/galileo_experiment/galileo_experiment_Big.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Designs/Data_loggers/galileo_experiment/galileo_experiment_Small.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property