Compare commits

...

33 Commits

Author SHA1 Message Date
71020bc340 RWC sjekk for diska løpere 2023-12-07 00:00:08 +01:00
bbcc332166 Finner ut av koder som mangler 2023-12-06 23:04:41 +01:00
6f822c52eb La til lesing av mtr statusmelding 2023-12-05 22:39:12 +01:00
5e899fca62 Fikser fra løpsdagen 2023-12-02 13:25:17 +01:00
a75af1a99b La til støtte for starttid i tidsberegninga 2023-11-28 16:38:04 +01:00
18f49c1a0c Bug fikser med totaltid og strekktid 2023-11-28 01:34:18 +01:00
4048cfe94f la til forklaring i csven 2023-11-28 01:33:53 +01:00
a39c5e4615 La til gen kommando 2023-11-28 01:33:25 +01:00
f1612cf838 Starta på søke tui 2023-11-24 00:42:02 +01:00
24f8c30c81 Fiksa gaflinger 2023-11-24 00:41:38 +01:00
95f10000bb Småforbedringer 2023-11-21 22:34:40 +01:00
056b97c0e2 Oppdaterte requirements 2023-11-21 22:33:31 +01:00
568c935a55 La til git og fargelegging 2023-11-21 22:32:14 +01:00
c280c5f6a0 La til __main__ entrypoint 2023-11-20 15:00:32 +01:00
7fab832321 mtr simulator 2023-11-19 17:54:43 +01:00
9e35cc55af Første veson av mtr leser 2023-11-19 17:54:27 +01:00
3894eb7284 Starta på innganspunktet for programmet, lagde en init funksjon 2023-11-17 21:52:44 +01:00
de4f288a4a Fiksa iof xml import 2023-11-17 21:52:19 +01:00
7591523b37 Lagde funskjoner for å lese inn og ut seperate csv, mtr og db filer 2023-11-17 21:49:33 +01:00
e5a672ac70 Starta på yaml io for separate mtr og config filer 2023-11-17 13:55:21 +01:00
3f4051426e Fiksa strekktidsgenerering 2023-11-08 17:31:11 +01:00
bf0b400708 Dytta xml koden inn i egen fil. 2023-11-07 15:57:44 +01:00
d008355498 Opprenskning 2023-11-07 14:24:45 +01:00
c94aafe981 Startet på strekktids pdf og utregning av strekktider generelt 2023-11-06 23:12:08 +01:00
c4e2178c03 Glemte å legge til pdf.py 2023-11-06 15:19:03 +01:00
8621e07dcf Fiksa pdf resultatliste 2023-11-06 15:15:04 +01:00
275f4b0f78 Fortsatte på produce_class_result funksjonen 2023-11-05 17:32:04 +01:00
145902624f La til requirements.txt 2023-11-05 17:30:55 +01:00
aa61d7a415 Starta på en felles resultat generator 2023-11-03 18:42:30 +01:00
8516bfd313 Starta å refaktorere metodene som leser ttime filer 2023-11-02 22:58:16 +01:00
c70d816756 Opprydning🧹 2023-11-02 22:57:28 +01:00
60824e5bd3 Starta på TUI 2023-09-10 22:39:21 +02:00
bc611e91e9 La til toml konfigurasjon og iof xml løype lasting 2023-09-08 08:50:30 +02:00
43 changed files with 2734 additions and 3165 deletions

202
cli.py
View File

@ -1,202 +0,0 @@
#!/usr/bin/env python
import otime
import argparse
import datetime
from rich import print
from rich import inspect
from rich.console import Console
from rich.columns import Columns
from rich.table import Table
def print_runners(Runners):
table = Table(title="Runners")
table.add_column("Name", justify="right", style="cyan", no_wrap=True)
table.add_column("club", style="magenta")
table.add_column("card", style="red")
table.add_column("class", justify="right", style="green")
table.add_column("start_time", justify="right", style="green")
table.add_column("fork", justify="right", style="green")
table.add_column("Status", justify="right", style="blue")
for i in Runners:
try:
o_class = i.o_class.name
except:
o_class = ''
table.add_row(i.fullname(), i.club ,str(i.card), o_class, i.start_time, str(i.fork), i.status())
console = Console()
console.print(table)
def print_time(Runners):
table = Table(title="Time")
table.add_column("Name", justify="right", style="cyan", no_wrap=True)
table.add_column("club", style="magenta")
table.add_column("splits", style="red")
table.add_column("Check", style="green")
table.add_column("Time", justify="right", style="blue")
for i in Runners:
try:
tottime = datetime.timedelta(seconds = i.totaltime())
except:
tottime = 0
table.add_row(i.fullname(), i.o_class.name, str(i.splits), str(i.check_codes()), str(tottime))
console = Console()
console.print(table)
def print_class_result(runners, o_class):
table = Table(title=o_class.name)
table.add_column("Pos", style="red", no_wrap=True)
table.add_column("Name", justify="right", style="cyan", no_wrap=True)
table.add_column("Club", style="magenta")
table.add_column("Time", justify="right", style="blue")
pos = 0
if o_class:
runners = otime.get_runners_in_class(runners, o_class)
runners_ok = []
runners_dsq = []
for n in runners:
if n.status() == 'OK':
runners_ok.append(n)
elif n.status() == 'Disqualified':
runners_dsq.append(n)
runners_ok.sort(key=lambda x: x.totaltime())
for i in runners_ok:
#if i.status() == 'OK':
pos += 1
table.add_row(str(pos)+'.',i.fullname(), i.club, str(datetime.timedelta(seconds=i.totaltime())))
for i in runners_dsq:
table.add_row('Dsq',i.fullname(), i.club, '')
console = Console()
console.print(table)
def print_class_splits(runners, o_class):
table = Table(title=o_class.name)
table.add_column("Pos", style="red", no_wrap=True)
table.add_column("Name", justify="right", style="cyan", no_wrap=True)
table.add_column("club", style="magenta")
if o_class:
for i in o_class.course.codes:
table.add_column(str(i))
runners = otime.get_runners_in_class(runners, o_class)
runners_ok = []
runners_dsq = []
for n in runners:
if n.status() == 'OK':
runners_ok.append(n)
elif n.status() == 'Disqualified':
runners_dsq.append(n)
runners_ok.sort(key=lambda x: x.totaltime())
pos = 0
for i in runners_ok:
splits = i.res_splits()
pos += 1
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
table.add_row(str(pos)+'.', i.fullname(), i.club, *list_string)
for i in runners_dsq:
splits = i.res_splits()
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
table.add_row('Dsq', i.fullname(), i.club, *list_string)
console = Console()
console.print(table)
def print_o_classes(class_list):
table = Table(title="Classes")
table.add_column("Class", justify="right", style="cyan", no_wrap=True)
table.add_column("Course", style="magenta")
table.add_column("Controls", justify="right", style="green")
for i in class_list:
table.add_row(i.name, i.course.name , str(i.course.codes))
console = Console()
console.print(table)
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--debug',
action='store_true',
help='Print debug info'
)
subparsers = parser.add_subparsers(dest='command')
show_runners = subparsers.add_parser('show_runners', help='show a table of runners')
show_runners.add_argument('--ttcnf', required=True, help='ttime configuration file')
show_runners.add_argument('--ttdb', required=True, help='ttime database file')
show_runners.add_argument('--mtr', required=True, help='mtr csv file')
show_runner = subparsers.add_parser('show_runner', help='show a table of runners')
show_runner.add_argument('--ttcnf', required=True, help='ttime configuration file')
show_runner.add_argument('--ttdb', required=True, help='ttime database file')
show_runner.add_argument('--mtr', required=True, help='mtr csv file')
show_runner.add_argument('--runner', required=True, help='Which runner to print')
show_runners = subparsers.add_parser('show_result', help='show a table of runners')
show_runners.add_argument('--ttcnf', required=True, help='ttime configuration file')
show_runners.add_argument('--ttdb', required=True, help='ttime database file')
show_runners.add_argument('--mtr', required=True, help='mtr csv file')
show_runners.add_argument('--class', dest='o_class_str', help='Which class to show. Prints all classes if not set')
show_runners.add_argument('--splits', action='store_true', help='Shows split times')
show_classes = subparsers.add_parser('show_classes', help='show a table of classes')
show_classes.add_argument('--ttcnf', required=True, help='ttime configuration file')
create_xml = subparsers.add_parser('create_xml', help='Create xml result file')
create_xml.add_argument('--ttcnf', required=True, help='ttime configuration file')
create_xml.add_argument('--ttdb', required=True, help='ttime database file')
create_xml.add_argument('--mtr', required=True, help='mtr csv file')
create_xml.add_argument('--file', required=True, help='Filename for result file')
args = parser.parse_args()
if args.command == 'show_runners':
event = otime.Event(0, 'NoName')
event.import_ttime_cnf(open(args.ttcnf, encoding='latin-1'))
event.import_ttime_db(open(args.ttdb, encoding='latin-1'))
event.import_mtr_file(open(args.mtr, encoding='latin-1'))
event.match_runners_cards()
print_runners(event.runners)
elif args.command == 'show_runner':
event = otime.Event(0, 'NoName')
event.import_ttime_cnf(open(args.ttcnf, encoding='latin-1'))
event.import_ttime_db(open(args.ttdb, encoding='latin-1'))
event.import_mtr_file(open(args.mtr, encoding='latin-1'))
event.match_runners_cards()
for n in event.runners:
if args.runner == n.fullname():
inspect(n)
break
else:
print('Runner not found. Use full name.')
elif args.command == 'show_result':
event = otime.Event(0, 'NoName')
event.import_ttime_cnf(open(args.ttcnf, encoding='latin-1'))
event.import_ttime_db(open(args.ttdb, encoding='latin-1'))
event.import_mtr_file(open(args.mtr, encoding='latin-1'))
event.match_runners_cards()
for n in event.o_classes:
if args.o_class_str == n.name:
sel_classes = [n]
break
else:
sel_classes = event.o_classes
for o_class in sel_classes:
if args.splits:
print_class_splits(event.runners, o_class)
else:
print_class_result(event.runners, o_class)
elif args.command == 'show_classes':
event = otime.Event(0, 'NoName')
event.import_ttime_cnf(open(args.ttcnf, encoding='latin-1'))
print_o_classes(event.o_classes)
elif args.command == 'create_xml':
event = otime.Event(0, 'NoName')
event.import_ttime_cnf(open(args.ttcnf, encoding='latin-1'))
event.import_ttime_db(open(args.ttdb, encoding='latin-1'))
event.import_mtr_file(open(args.mtr, encoding='latin-1'))
event.match_runners_cards()
event.get_xml_res().write(args.file)
if __name__ == "__main__":
main()

View File

@ -1,8 +0,0 @@
config = {
'event_name': 'KOK 2-dagers testing',
'port': '/dev/pts/2',
'cnf_file': 'k2ds/tt.cnf',
'db_file': 'k2ds/db.csv',
'xml_res_file': 'Resultater.xml',
'otime_file': 'test.otime'
}

21
dev.py
View File

@ -1,21 +0,0 @@
import otime
import mtr
from rich import print
from rich import inspect
from rich.console import Console
from rich.columns import Columns
from rich.table import Table
if __name__ == "__main__":
event = otime.Event(0, 'testevent')
event.import_xml_entries('k2ds/entries.xml')
event.import_mtr_file(open('k2ds/mtr.txt', 'r'))
event.match_all()
for runner in event.runners:
print(runner.fullname(), runner.fee.name)
with open('test.otime', 'w') as f:
f.write(event.create_json_file())
event.create_invoices('test.pdf')

View File

@ -1,179 +0,0 @@
#!/usr/bin/env python
import otime
from config import config
import datetime
import os
from time import sleep
import serial
import pickle
import argparse
from difflib import Differ
from rich import print
from rich import inspect
from rich.console import Console
from rich.columns import Columns
from rich.table import Table
from rich.panel import Panel
from rich.console import Group
def save(obj):
f = open(config['otime_file'], "wb")
pickle.dump(obj,f)
f.close()
def start_parse():
parser = argparse.ArgumentParser(description='Event manager')
subparsers = parser.add_subparsers(dest='command')
open_event = subparsers.add_parser('continue', help='Open pickle')
open_event.add_argument('--file', help='.otime file')
args = parser.parse_args()
if args.command == 'continue':
print('Later ' + args.file)
else:
print('Starter fra scratch')
start_event()
def start_event():
global event
event = otime.Event(0, config['event_name'])
event.import_ttime_cnf(config['cnf_file'])
event.import_ttime_db(config['db_file'])
save(event)
global db_file
global db_file_u
db_file = open(config['db_file'], 'r', encoding='latin_1').read().splitlines()
def load_event(ot_file):
global event
f = open(ot_file, "r")
event = pickle.load(f)
f.close()
global db_file
global db_file_u
db_file = open(config['db_file'], 'r', encoding='latin_1').read().splitlines()
def assign_card_r_to_runner(runners, card_r):
for n in runners:
if n.card == card_r.card:
n.card_r = card_r
print(runner_info(n))
break
else:
cont = f'Brikke ikke registrert på noen løper\nId: {card_r.card}\nPoster: {card_r.controls}'
panel = Panel.fit(cont, title=str(card_r.card), border_style='white')
print(panel)
def runner_info(runner):
time = str(datetime.timedelta(seconds=runner.totaltime()))
if runner.status() == 'Disqualified':
dsqp = Panel.fit(f'Løype: {runner.o_class.course.codes}\nRegistrert: {runner.card_r.controls}', border_style='red')
cont = Group(f'Status: {runner.status()}',dsqp)
panel = Panel.fit(cont, title=runner.fullname(), border_style='red')
elif runner.status() == 'OK':
cont = f'Status: {runner.status()}\nTid: {time}'
panel = Panel.fit(cont, title=runner.fullname(), border_style='green')
elif runner.status() == 'Active':
cont = ''
panel = Panel.fit(cont, title=runner.fullname())
return panel
def read_db_changes():
global event
global db_file
global db_file_u
print('DB file changed')
db_file_u = open(config['db_file'], 'r', encoding='latin_1').read().splitlines()
d = Differ()
result = list(d.compare(db_file, db_file_u))
db_file = db_file_u
added_raw = []
removed_raw = []
added = []
removed = []
changed = []
for line in result:
if line[:1] == '+':
clean = str(line).replace('+ ', '').split(';')
runner = otime.Runner.from_string(clean, event.o_classes)
if runner.first != None:
added_raw.append(runner)
elif line[:1] == '-':
clean = str(line).replace('- ', '').split(';')
runner = otime.Runner.from_string(clean, event.o_classes)
if runner.first != None:
removed_raw.append(runner)
for plus in added_raw:
for index, minus in enumerate(removed_raw):
if plus.id == minus.id:
changed.append(plus)
removed_raw[index] = plus
break
added = [x for x in added_raw if x not in changed]
removed = [x for x in removed_raw if x not in changed]
#print(len(added_raw),len(removed_raw))
#print(len(added),len(removed),len(changed))
event.runners.extend(added)
for n in added:
print(f'[green]Added: {n.fullname()}, {n.o_class.name}, {n.card}[green]')
if n.status != 'Active':
print(runner_info(n))
for r in removed:
for n in event.runners:
if n.id == r.id:
print(f'[red]Removed: {n.fullname()}, {n.o_class.name}, {n.card}')
event.runners.remove(n)
for change in changed:
for i, n in enumerate(event.runners):
if n.id == runner.id:
event.runners[i] = runner
print(f'[blue]Changed: {runner.fullname()}, {runner.o_class.name}, {runner.card}')
if n.status != 'Active':
print(runner_info(n))
event.match_runners_cards()
event.get_xml_res().write(config['xml_res_file'])
def read_mtr(mtr):
global event
if mtr.in_waiting > 0:
mtr.read_until(expected=b'\xFF\xFF\xFF\xFF')
size = mtr.read(size=1)
if size == b'\xe6':
meat = mtr.read(229)
full = b'\xFF\xFF\xFF\xFF' + size + meat
card_r = otime.CardDump.from_mtr_bytes(full)
event.card_dumps.append(card_r)
assign_card_r_to_runner(event.runners, card_r)
elif size == b'\x37':
meat = mtr.read(55)
status = mtrreader.MtrStatusMessage(meat)
inspect(status)
print(status.year(),status.month(),status.day(),status.hours(),status.minutes())
event.get_xml_res().write(config['xml_res_file'])
def main():
global event
global db_file
global db_file_u
mtr = serial.Serial(port=config['port'], baudrate=9600, timeout=40)
db_file_date = os.path.getctime(config['db_file'])
while True:
if db_file_date != os.path.getctime(config['db_file']):
db_file_date = os.path.getctime(config['db_file'])
read_db_changes()
read_mtr(mtr)
sleep(0.1)
db_file_u = None
if __name__ == "__main__":
start_parse()
main()

View File

@ -1,135 +0,0 @@
5776;X;Helmersen, Ragnhild Mathea;D17AL;Fet OL;A,16201,3,71,5776,W,0.026087,U,10:30:00;201888
12568;X;Johnsen, Mina Akiko;D17AL;Sturla, IF;A,16201,5,133,12568,W,0.061083,U,10:32:00;212043
21451;X;Hvenekilde, Tale Nordby;D17AL;Oppsal Orientering;A,16201,3,268,21451,W,0.093699,U,10:34:00;506980
38537;X;Solli, Ida Olea;D17AL;Mo OK;A,16201,10,222,38537,W,0.101712,U,10:36:00;212966
14408;X;Sebjørnsen, Heidi Kristina;D17AL;Fossum IF;A,16201,3,80,14408,W,0.158452,U,10:38:00;515039
16422;X;Klausen, Ylva;D17 AK;Sturla, IF;A,16201,5,133,16422,W,0.207650,U,10:40:00;519429
25647;;Scheele, Oda;D17AL;Nydalens SK;A,16201,3,245,25647,W,0.208781,U,10:42:00;515044
25812;;Tumelionis, Gunde;D17AL;Fossum IF;A,16201,3,80,25812,W,0.274077,U,10:44:00;228473
14340;X;Wik, Maria Strømdal;D17AL;Freidig;A,16201,15,320,14340,W,0.306082,U,10:46:00;508554
21484;X;Mosland, Ingeborg Roll;D17AL;Oppsal Orientering;A,16201,3,268,21484,W,0.326798,U,10:48:00;212069
694;X;Kvarme, Marie;D17 AK;Sturla, IF;A,16201,5,133,694,W,0.411518,U,10:50:00;507448
26686;X;Hunstad, Johanna Lovise;D17AL;Bodø og Omegn IF Orientering;A,16201,10,45,26686,W,0.418258,U,10:52:00;256285
2383;X;Kittilsen, Tora;D17AL;Freidig;A,16201,15,320,2383,W,0.428461,U,10:54:00;511855
4658;X;Jacobsen-Gaski, Anna;D17AL;Bardu IL;A,16201,17,35,4658,W,0.443662,U,10:56:00;504136
31395;X;Scheele, Marie;D17AL;Nydalens SK;A,16201,3,245,31395,W,0.504686,U,10:58:00;515045
16585;X;Eisvang, Frida Hovgaard;D17AL;OK Moss;A,16201,20,252,16585,W,0.544919,U,11:00:00;513398
35485;X;Skalstad, Ragnhild;D17 AK;Sturla, IF;A,16201,5,133,35485,W,0.265811,U,11:00:00;253296
12611;;Nomeland, Trygve Børte;H17AL;Kristiansand OK;A,16201,4,189,12611,W,0.086410,U,12:00:00;512445
5451;X;Nygårdseter, Sten Åge;H55;Vegårshei IL;A,16201,4,371,5451,W,0.030191,U,11:01:00;206436
2885;X;Dalsøren, Stig;H45;Kristiansand OK;A,16201,4,189,2885,W,0.332001,U,11:02:00;229985
5996;X;Wiklund, Inga Skaarer;D17AL;Nydalens SK;A,16201,3,245,5996,W,0.553106,U,11:02:00;511747
7408;X;Bjorvand, Siri;D55;Birkenes IL;A,16201,4,40,7408,W,0.117037,U,11:03:00;511473
1930;X;Bråten, Arnhild U.;D45;Vegårshei IL;A,16201,4,371,1930,W,0.773981,U,11:04:00;507023
1474;X;Storhov, Mathea Spets;D17AL;Freidig;A,16201,15,320,1474,W,0.572619,U,11:04:00;511410
914;X;Haugskott, Sigrid;D17 AK;OL Trollelg;A,16201,15,262,914,W,0.713275,U,11:05:00;512805
3595;X;Myrland, Jørn;H55;Notodden OL;A,16201,19,243,3595,W,0.044007,U,11:05:00;517487
820;;Stormoen, Håvar Birkeland;H17AL;Kristiansand OK;A,16201,4,189,820,W,0.095024,U,11:05:00;504431
30033;X;Isnes Tyse, Oda;D17AL;Eiker OL;A,16201,5,64,30033,W,0.582367,U,11:06:00;514702
16632;X;Wiig, Svein Erik;H45;Søgne og Songdalen OK;A,16201,4,341,16632,W,0.351271,U,11:06:00;216713
1893;X;Nygårdseter, Emma Smeland;D55;Vegårshei IL;A,16201,4,371,1893,W,0.162069,U,11:07:00;206435
8029;X;Sæstad, Reidar;H65;Kristiansand OK;A,16201,4,189,8029,W,0.115957,U,11:07:00;257393
31018;X;Hott, Kasper;H13-14;Kristiansand OK;A,16201,4,189,31018,W,0.262271,U,11:08:00;213724
3510;X;Nissen, Solveig Louise;D17AL;Freidig;A,16201,15,320,3510,W,0.681690,U,11:08:00;511332
156;X;Bråten, Geir;H55;Vegårshei IL;A,16201,4,371,156,W,0.290594,U,11:09:00;245669
3104;X;Danielsen, Vegard;H17AL;Kristiansand OK;A,16201,4,189,3104,W,0.277210,U,11:09:00;509049
2735;X;Helland-Hansen, Vida;D17 AK;Tyrving IL;A,16201,3,163,2735,W,0.828157,U,11:10:00;511344
13271;X;Tellesbø, Janna Sofie;D17AL;Østmarka OK;A,16201,3,388,13271,W,0.694913,U,11:10:00;516878
17763;X;Flaa, Sigmund Javenes;H15-16;Birkenes IL;A,16201,4,40,17763,W,0.381759,U,11:11:00;255325
21539;X;Raaen, Trine Marit Justad;D55;Lierbygda OL;A,16201,5,201,21539,W,0.267405,U,11:11:00;506935
6920;X;Sørensen, Kjell Walter;H65;IK Grane Arendal Orientering;A,16201,4,135,6920,W,0.121509,U,11:11:00;503611
9301;X;White, Astrid;D17AL;Søgne og Songdalen OK;A,16201,4,341,9301,W,0.698835,U,11:12:00;510279
1400;X;Gjelsten, Ståle;H17AL;Kristiansand OK;A,16201,4,189,1400,W,0.350956,U,11:13:00;506629
6154;X;Zeiner-Gundersen, Richard;H55;Lierbygda OL;A,16201,5,201,6154,W,0.299488,U,11:13:00;507044
25664;X;Johannessen, Nils Egil;H75;IL Høvdingen;A,16201,4,145,25664,W,0.493419,U,11:14:00;507767
20657;X;Lunde, Magnus Hennig;H11-12;OK Sør;A,16201,4,257,20657,W,0.843827,U,11:14:00;203484
37419;;Nygård Thorseng, Elise;D17AL;Fossum IF;A,16201,3,80,37419,W,0.726727,U,11:14:00;213111
6345;X;Christiansen, Marianne Fruseth;D55;OL Tønsberg og omegn;A,16201,19,264,6345,W,0.414680,U,11:15:00;181863
22630;X;Johannessen, Fabian;H15-16;Kristiansand OK;A,16201,4,189,22630,W,0.755650,U,11:15:00;506791
17015;X;Leiren, Malin Nordgård;D17 AK;Byåsen IL;A,16201,15,51,17015,W,0.949384,U,11:15:00;212099
6896;X;Simonsen, Øyvin;H65;IL Imås;A,16201,4,148,6896,W,0.188689,U,11:15:00;504631
21239;X;Hole, Anja;D17AL;Førde IL;A,16201,14,87,21239,W,0.744655,U,11:16:00;512427
7536;;Myhre, Roar;H45;Kristiansand OK;A,16201,4,189,7536,W,0.757031,U,11:16:00;237895
5306;X;Christiansen, Tor Ivar;H55;OL Tønsberg og omegn;A,16201,19,264,5306,W,0.618160,U,11:17:00;511369
14996;X;Håland, Kjell Arne;H17AL;OK Sør;A,16201,4,257,14996,W,0.407345,U,11:17:00;227057
33765;X;Kjeldsen, Hedda;D17 AK;Sturla, IF;A,16201,5,133,33765,W,0.762553,U,11:18:00;500401
1189;X;Revhaug, Helge;H75;Ringerike OL;A,16201,5,285,1189,W,0.500018,U,11:23:00;510674
6554;X;Sætran, Bjørn Idar;H45;IF Trauma;A,16201,4,134,6554,W,0.977432,U,11:18:00;216677
34936;X;Helgemo, Johan;H9-10;Kristiansand OK;A,16201,4,189,34936,W,0.589151,U,11:19:00;247982
6333;X;Moe, Dag;H65;Kristiansand OK;A,16201,4,189,6333,W,0.330405,U,11:19:00;184578
2317;X;Wiig, Eli Marie;D55;Porsgrunn OL;A,16201,19,278,2317,W,0.809467,U,11:19:00;241874
25555;X;Lind-Larsen, Erika;D17AL;OK Moss;A,16201,20,252,25555,W,0.771927,U,11:20:00;513390
7740;X;Lunde, Hege Hennig;D35;OK Sør;A,16201,4,257,7740,W,0.163543,U,11:20:00;226945
2340;X;Håversen, Håkon;H55;IK Grane Arendal Orientering;A,16201,4,135,2340,W,0.731708,U,11:21:00;258681
231;X;Scheie, Stein-Erik;H17AL;OK Sør;A,16201,4,257,231,W,0.411591,U,11:21:00;204755
8030;X;Bredland, Floke;H75;Søgne og Songdalen OK;A,16201,4,341,8030,W,0.647924,U,11:22:00;239482
17399;X;Høyer, Tuva;D17AL;Fossum IF;A,16201,3,80,17399,W,0.783538,U,11:22:00;225161
6907;X;Jørgensen, Magne Reier;H65;Kristiansand OK;A,16201,4,189,6907,W,0.561063,U,11:23:00;255211
4135;X;Taksdal, Anna;D17AL;Ganddal IL;A,16201,13,88,4135,W,0.795444,U,11:24:00;508199
37242;X;van der Eynden, Oda Lohne;D35;Søgne og Songdalen OK;A,16201,4,341,37242,W,0.986033,U,11:24:00;401024
2220;X;Lamark, Øyvind;H17AL;Ganddal IL;A,16201,13,88,2220,W,0.649161,U,11:25:00;509450
5361;X;Løe, Petter;H55;Notodden OL;A,16201,19,243,5361,W,0.941176,U,11:25:00;511451
384;X;Stormoen, Åsulv Birkeland;H35;Birkenes IL;A,16201,4,40,384,W,0.638565,U,11:25:00;231504
35100;X;Böhm, Ulrik Mascali;H17 AK;Kristiansand OK;A,16201,4,189,35100,W,0.999467,U,11:26:00;247654
2400;X;Götsch Iversen, Elisa;D17AL;IL BUL-Tromsø;A,16201,17,146,2400,W,0.806391,U,11:26:00;509544
507;X;Hansen, Svein Harald;H65;OK Silsand;A,16201,17,254,507,W,0.609192,U,11:27:00;506352
2222;X;Lamark, Ingrid;D17AL;Ganddal IL;A,16201,13,88,2222,W,0.827720,U,11:28:00;509447
28822;X;Hadland, Lars Audun;H55;Oddersjaa SSK;A,16201,4,248,28822,W,0.980565,U,11:29:00;212974
40278;X;Nilsen, Mathias William;H17AL;Kristiansand OK;A,16201,4,189,40278,W,0.659014,U,11:29:00;517508
16970;;Hagen, Kathinka Zahl;D17AL;Fossum IF;A,16201,3,80,16970,W,0.970029,U,11:30:00;512626
8437;X;Hansen, John;H65;Kristiansand OK;A,16201,4,189,8437,W,0.717891,U,11:31:00;208727
6933;X;Bredland, Else-Margrethe;D75;Søgne og Songdalen OK;A,16201,4,341,6933,W,0.341176,U,11:32:00;239378
13949;X;Torp, Selma Lothine Fridheim;D17AL;Sandnes IL (Rogaland);A,16201,13,303,13949,W,0.991020,U,11:32:00;212133
12637;X;Sundquist, Carl Tore;H45;Øyestad IF allianse;A,16201,4,393,12637,W,0.975060,U,11:33:00;246581
15220;X;Tørå, Glenn;H17AL;Kristiansand OK;A,16201,4,189,15220,W,0.735018,U,11:33:00;510996
6905;X;Haarr, Dagfinn;H65;Oddersjaa SSK;A,16201,4,248,6905,W,0.861087,U,11:35:00;238125
3040;X;Martens, Eirik Heddeland;H17AL;Kristiansand OK;A,16201,4,189,3040,W,0.920023,U,11:37:00;510877
18948;X;Aune, Stine;A-kort åpen;Nidarøst OK;A,16201,15,253,18948;213563
34179;X;Bøen, Sofie;N1- åpen;Kristiansand OK;A,16201,4,189,34179;517409
35061;X;Dalsøren, Fabian;N2 åpen 9-16;Kristiansand OK;A,16201,4,189,35061;247082
16351;;Eikedalen, Hans-Petter;A-lang åpen;Porsgrunn OL;A,16201,19,278,16351;249917
28601;X;Flaa, Mette Javenes;C åpen 17-;Birkenes IL;A,16201,4,40,28601;225005
24007;X;Flaa, Per Johan;C åpen 17-;Birkenes IL;A,16201,4,40,24007;203292
34953;X;Grøvan, Eirik Svarstad;N2 åpen 9-16;Kristiansand OK;A,16201,4,189,34953;247550
38962;X;Gunnes, Julia;N1- åpen;Kristiansand OK;A,16201,4,189,38962;255629
34937;X;Helgemo, Matilda;N1- åpen;Kristiansand OK;A,16201,4,189,34937;247435
41547;X;Henrik Fidjestad Andreasen;N2 åpen 9-16;OK Sør;A,0,0,257,0;227046
9919;X;Holo, Signe;A-kort åpen;Fossum IF;A,16201,3,80,9919;514902
39044;X;Holte tversland, Mia;N1- åpen;Kristiansand OK;A,16201,4,189,39044;
18662;X;Kalleson, Tina;A-kort åpen;Oppsal Orientering;A,16201,3,268,18662;513329
39139;X;Kjelsrud, Frida Wigstøl;N1- åpen;Kristiansand OK;A,16201,4,189,39139;247197
34787;X;Kuhnle, Vibeke Irgens;N1- åpen;Kristiansand OK;A,16201,4,189,34787;247180
14618;X;Nolte, Anna Aurora;A-kort åpen;Freidig;A,16201,15,320,14618;514841
41541;X;Nordhassel, Jenny Marie Dyrdahl;N1- åpen;Kristiansand OK;A,16201,4,189,41541;249911
25846;X;Nyberg-Hansen, Hedvig;A-kort åpen;Fossum IF;A,16201,3,80,25846;225566
4703;X;Samuelsen Skiri, Kaja;A-kort åpen;Bodø og Omegn IF Orientering;A,16201,10,45,4703;515181
34507;X;Stormoen, Brage Glende;N1- åpen;Birkenes IL;A,16201,4,40,34507;245548
3359;X;Sønsterudbråten, Pernille;A-kort åpen;Lillomarka OL;A,16201,3,203,3359;519493
9819;X;Veggan, Katrine Bjordal;A-kort åpen;Oppsal Orientering;A,16201,3,268,9819;517129
30301;X;Yuan, Boyan;A-lang åpen;Kristiansand OK;A,16201,4,189,30301;510994
1;X;Lamark, Trond;A-kort åpen;Ganddal IL;;509448
2;X;Graff Wiik, Marthe;A-kort åpen;Sturla, IF;;211867
3;X;Thortveit, Ståle;A-lang åpen;Søgne og Songdalen OK;;197885
4;X;Økstad, Siri;B åpen 17-;Oddersjaa SSK;;185940
5;X;Moe, Oddbjørg;B åpen 17-;Kristiansand OK;;173450
6;X;Alvestad, Stig;A-lang åpen;IK Grane Arendal Orientering;;517490
7;X;Dalsøren, Kaspian;N1- åpen;Kristiansand OK;;247062
8;X;Åmdal, Mari Fjørbu;B åpen 17-;Kristiansand OK;;515238
9;X;Ringot, Paul;B åpen 17-;Kristiansand OK;;518732
10;X;Mollestad, Andreas;N1- åpen;Kristiansand OK;;512524
11;X;Tversland, Mia Holte;N1- åpen;KOK;;249912
12;X;Ribe, Ane;B åpen 17-;Søgne og Songdalen OK;;510314
13;X;Nerland, Wilmer Ribe;N1- åpen;Søgne og Songdalen OK;;255744
14;X;Risdal, Johannes;N1- åpen;Søgne og Songdalen OK;;244910
15;X;Ribe, Wilhelm;C åpen 17-;Søgne og Songdalen OK;;249905
16;X;Johansen, Kai;A-lang åpen;Øyestad IF allianse;;251366
17;X;Moe, Jostein;A-lang åpen;Torridal;;226027
18;X;Damsgaard, Julia B.;N1- åpen;Hisøy OK;;193048
19;X;Damsgaard, Ingrid B.;N1- åpen;Hisøy OK;;233687
20;X;Damsgaard, Hanna B.;C åpen 17-;Hisøy OK;;223503
21;X;Neumann, Karoline;C åpen 17-;Kristiansand OK;;518331
22;X;Tortveit, Kristian;C åpen 17-;Kristiansand OK;;248227
23;X;Tortveit, Karoline;N1- åpen;Kristiansand OK;;249929
24;X;W. Fuglestad, Oliver;C åpen 17-;Kristiansand OK;;60730
25;X;W. Kjelsrud, Emil;N1- åpen;Kristiansand OK;;255638
26;X;Strøm, Leon;N1- åpen;Kristiansand OK;;249913
1 5776 X Helmersen, Ragnhild Mathea D17AL Fet OL A,16201,3,71,5776,W,0.026087,U,10:30:00 201888
2 12568 X Johnsen, Mina Akiko D17AL Sturla, IF A,16201,5,133,12568,W,0.061083,U,10:32:00 212043
3 21451 X Hvenekilde, Tale Nordby D17AL Oppsal Orientering A,16201,3,268,21451,W,0.093699,U,10:34:00 506980
4 38537 X Solli, Ida Olea D17AL Mo OK A,16201,10,222,38537,W,0.101712,U,10:36:00 212966
5 14408 X Sebjørnsen, Heidi Kristina D17AL Fossum IF A,16201,3,80,14408,W,0.158452,U,10:38:00 515039
6 16422 X Klausen, Ylva D17 AK Sturla, IF A,16201,5,133,16422,W,0.207650,U,10:40:00 519429
7 25647 Scheele, Oda D17AL Nydalens SK A,16201,3,245,25647,W,0.208781,U,10:42:00 515044
8 25812 Tumelionis, Gunde D17AL Fossum IF A,16201,3,80,25812,W,0.274077,U,10:44:00 228473
9 14340 X Wik, Maria Strømdal D17AL Freidig A,16201,15,320,14340,W,0.306082,U,10:46:00 508554
10 21484 X Mosland, Ingeborg Roll D17AL Oppsal Orientering A,16201,3,268,21484,W,0.326798,U,10:48:00 212069
11 694 X Kvarme, Marie D17 AK Sturla, IF A,16201,5,133,694,W,0.411518,U,10:50:00 507448
12 26686 X Hunstad, Johanna Lovise D17AL Bodø og Omegn IF Orientering A,16201,10,45,26686,W,0.418258,U,10:52:00 256285
13 2383 X Kittilsen, Tora D17AL Freidig A,16201,15,320,2383,W,0.428461,U,10:54:00 511855
14 4658 X Jacobsen-Gaski, Anna D17AL Bardu IL A,16201,17,35,4658,W,0.443662,U,10:56:00 504136
15 31395 X Scheele, Marie D17AL Nydalens SK A,16201,3,245,31395,W,0.504686,U,10:58:00 515045
16 16585 X Eisvang, Frida Hovgaard D17AL OK Moss A,16201,20,252,16585,W,0.544919,U,11:00:00 513398
17 35485 X Skalstad, Ragnhild D17 AK Sturla, IF A,16201,5,133,35485,W,0.265811,U,11:00:00 253296
18 12611 Nomeland, Trygve Børte H17AL Kristiansand OK A,16201,4,189,12611,W,0.086410,U,12:00:00 512445
19 5451 X Nygårdseter, Sten Åge H55 Vegårshei IL A,16201,4,371,5451,W,0.030191,U,11:01:00 206436
20 2885 X Dalsøren, Stig H45 Kristiansand OK A,16201,4,189,2885,W,0.332001,U,11:02:00 229985
21 5996 X Wiklund, Inga Skaarer D17AL Nydalens SK A,16201,3,245,5996,W,0.553106,U,11:02:00 511747
22 7408 X Bjorvand, Siri D55 Birkenes IL A,16201,4,40,7408,W,0.117037,U,11:03:00 511473
23 1930 X Bråten, Arnhild U. D45 Vegårshei IL A,16201,4,371,1930,W,0.773981,U,11:04:00 507023
24 1474 X Storhov, Mathea Spets D17AL Freidig A,16201,15,320,1474,W,0.572619,U,11:04:00 511410
25 914 X Haugskott, Sigrid D17 AK OL Trollelg A,16201,15,262,914,W,0.713275,U,11:05:00 512805
26 3595 X Myrland, Jørn H55 Notodden OL A,16201,19,243,3595,W,0.044007,U,11:05:00 517487
27 820 Stormoen, Håvar Birkeland H17AL Kristiansand OK A,16201,4,189,820,W,0.095024,U,11:05:00 504431
28 30033 X Isnes Tyse, Oda D17AL Eiker OL A,16201,5,64,30033,W,0.582367,U,11:06:00 514702
29 16632 X Wiig, Svein Erik H45 Søgne og Songdalen OK A,16201,4,341,16632,W,0.351271,U,11:06:00 216713
30 1893 X Nygårdseter, Emma Smeland D55 Vegårshei IL A,16201,4,371,1893,W,0.162069,U,11:07:00 206435
31 8029 X Sæstad, Reidar H65 Kristiansand OK A,16201,4,189,8029,W,0.115957,U,11:07:00 257393
32 31018 X Hott, Kasper H13-14 Kristiansand OK A,16201,4,189,31018,W,0.262271,U,11:08:00 213724
33 3510 X Nissen, Solveig Louise D17AL Freidig A,16201,15,320,3510,W,0.681690,U,11:08:00 511332
34 156 X Bråten, Geir H55 Vegårshei IL A,16201,4,371,156,W,0.290594,U,11:09:00 245669
35 3104 X Danielsen, Vegard H17AL Kristiansand OK A,16201,4,189,3104,W,0.277210,U,11:09:00 509049
36 2735 X Helland-Hansen, Vida D17 AK Tyrving IL A,16201,3,163,2735,W,0.828157,U,11:10:00 511344
37 13271 X Tellesbø, Janna Sofie D17AL Østmarka OK A,16201,3,388,13271,W,0.694913,U,11:10:00 516878
38 17763 X Flaa, Sigmund Javenes H15-16 Birkenes IL A,16201,4,40,17763,W,0.381759,U,11:11:00 255325
39 21539 X Raaen, Trine Marit Justad D55 Lierbygda OL A,16201,5,201,21539,W,0.267405,U,11:11:00 506935
40 6920 X Sørensen, Kjell Walter H65 IK Grane Arendal Orientering A,16201,4,135,6920,W,0.121509,U,11:11:00 503611
41 9301 X White, Astrid D17AL Søgne og Songdalen OK A,16201,4,341,9301,W,0.698835,U,11:12:00 510279
42 1400 X Gjelsten, Ståle H17AL Kristiansand OK A,16201,4,189,1400,W,0.350956,U,11:13:00 506629
43 6154 X Zeiner-Gundersen, Richard H55 Lierbygda OL A,16201,5,201,6154,W,0.299488,U,11:13:00 507044
44 25664 X Johannessen, Nils Egil H75 IL Høvdingen A,16201,4,145,25664,W,0.493419,U,11:14:00 507767
45 20657 X Lunde, Magnus Hennig H11-12 OK Sør A,16201,4,257,20657,W,0.843827,U,11:14:00 203484
46 37419 Nygård Thorseng, Elise D17AL Fossum IF A,16201,3,80,37419,W,0.726727,U,11:14:00 213111
47 6345 X Christiansen, Marianne Fruseth D55 OL Tønsberg og omegn A,16201,19,264,6345,W,0.414680,U,11:15:00 181863
48 22630 X Johannessen, Fabian H15-16 Kristiansand OK A,16201,4,189,22630,W,0.755650,U,11:15:00 506791
49 17015 X Leiren, Malin Nordgård D17 AK Byåsen IL A,16201,15,51,17015,W,0.949384,U,11:15:00 212099
50 6896 X Simonsen, Øyvin H65 IL Imås A,16201,4,148,6896,W,0.188689,U,11:15:00 504631
51 21239 X Hole, Anja D17AL Førde IL A,16201,14,87,21239,W,0.744655,U,11:16:00 512427
52 7536 Myhre, Roar H45 Kristiansand OK A,16201,4,189,7536,W,0.757031,U,11:16:00 237895
53 5306 X Christiansen, Tor Ivar H55 OL Tønsberg og omegn A,16201,19,264,5306,W,0.618160,U,11:17:00 511369
54 14996 X Håland, Kjell Arne H17AL OK Sør A,16201,4,257,14996,W,0.407345,U,11:17:00 227057
55 33765 X Kjeldsen, Hedda D17 AK Sturla, IF A,16201,5,133,33765,W,0.762553,U,11:18:00 500401
56 1189 X Revhaug, Helge H75 Ringerike OL A,16201,5,285,1189,W,0.500018,U,11:23:00 510674
57 6554 X Sætran, Bjørn Idar H45 IF Trauma A,16201,4,134,6554,W,0.977432,U,11:18:00 216677
58 34936 X Helgemo, Johan H9-10 Kristiansand OK A,16201,4,189,34936,W,0.589151,U,11:19:00 247982
59 6333 X Moe, Dag H65 Kristiansand OK A,16201,4,189,6333,W,0.330405,U,11:19:00 184578
60 2317 X Wiig, Eli Marie D55 Porsgrunn OL A,16201,19,278,2317,W,0.809467,U,11:19:00 241874
61 25555 X Lind-Larsen, Erika D17AL OK Moss A,16201,20,252,25555,W,0.771927,U,11:20:00 513390
62 7740 X Lunde, Hege Hennig D35 OK Sør A,16201,4,257,7740,W,0.163543,U,11:20:00 226945
63 2340 X Håversen, Håkon H55 IK Grane Arendal Orientering A,16201,4,135,2340,W,0.731708,U,11:21:00 258681
64 231 X Scheie, Stein-Erik H17AL OK Sør A,16201,4,257,231,W,0.411591,U,11:21:00 204755
65 8030 X Bredland, Floke H75 Søgne og Songdalen OK A,16201,4,341,8030,W,0.647924,U,11:22:00 239482
66 17399 X Høyer, Tuva D17AL Fossum IF A,16201,3,80,17399,W,0.783538,U,11:22:00 225161
67 6907 X Jørgensen, Magne Reier H65 Kristiansand OK A,16201,4,189,6907,W,0.561063,U,11:23:00 255211
68 4135 X Taksdal, Anna D17AL Ganddal IL A,16201,13,88,4135,W,0.795444,U,11:24:00 508199
69 37242 X van der Eynden, Oda Lohne D35 Søgne og Songdalen OK A,16201,4,341,37242,W,0.986033,U,11:24:00 401024
70 2220 X Lamark, Øyvind H17AL Ganddal IL A,16201,13,88,2220,W,0.649161,U,11:25:00 509450
71 5361 X Løe, Petter H55 Notodden OL A,16201,19,243,5361,W,0.941176,U,11:25:00 511451
72 384 X Stormoen, Åsulv Birkeland H35 Birkenes IL A,16201,4,40,384,W,0.638565,U,11:25:00 231504
73 35100 X Böhm, Ulrik Mascali H17 AK Kristiansand OK A,16201,4,189,35100,W,0.999467,U,11:26:00 247654
74 2400 X Götsch Iversen, Elisa D17AL IL BUL-Tromsø A,16201,17,146,2400,W,0.806391,U,11:26:00 509544
75 507 X Hansen, Svein Harald H65 OK Silsand A,16201,17,254,507,W,0.609192,U,11:27:00 506352
76 2222 X Lamark, Ingrid D17AL Ganddal IL A,16201,13,88,2222,W,0.827720,U,11:28:00 509447
77 28822 X Hadland, Lars Audun H55 Oddersjaa SSK A,16201,4,248,28822,W,0.980565,U,11:29:00 212974
78 40278 X Nilsen, Mathias William H17AL Kristiansand OK A,16201,4,189,40278,W,0.659014,U,11:29:00 517508
79 16970 Hagen, Kathinka Zahl D17AL Fossum IF A,16201,3,80,16970,W,0.970029,U,11:30:00 512626
80 8437 X Hansen, John H65 Kristiansand OK A,16201,4,189,8437,W,0.717891,U,11:31:00 208727
81 6933 X Bredland, Else-Margrethe D75 Søgne og Songdalen OK A,16201,4,341,6933,W,0.341176,U,11:32:00 239378
82 13949 X Torp, Selma Lothine Fridheim D17AL Sandnes IL (Rogaland) A,16201,13,303,13949,W,0.991020,U,11:32:00 212133
83 12637 X Sundquist, Carl Tore H45 Øyestad IF allianse A,16201,4,393,12637,W,0.975060,U,11:33:00 246581
84 15220 X Tørå, Glenn H17AL Kristiansand OK A,16201,4,189,15220,W,0.735018,U,11:33:00 510996
85 6905 X Haarr, Dagfinn H65 Oddersjaa SSK A,16201,4,248,6905,W,0.861087,U,11:35:00 238125
86 3040 X Martens, Eirik Heddeland H17AL Kristiansand OK A,16201,4,189,3040,W,0.920023,U,11:37:00 510877
87 18948 X Aune, Stine A-kort åpen Nidarøst OK A,16201,15,253,18948 213563
88 34179 X Bøen, Sofie N1- åpen Kristiansand OK A,16201,4,189,34179 517409
89 35061 X Dalsøren, Fabian N2 åpen 9-16 Kristiansand OK A,16201,4,189,35061 247082
90 16351 Eikedalen, Hans-Petter A-lang åpen Porsgrunn OL A,16201,19,278,16351 249917
91 28601 X Flaa, Mette Javenes C åpen 17- Birkenes IL A,16201,4,40,28601 225005
92 24007 X Flaa, Per Johan C åpen 17- Birkenes IL A,16201,4,40,24007 203292
93 34953 X Grøvan, Eirik Svarstad N2 åpen 9-16 Kristiansand OK A,16201,4,189,34953 247550
94 38962 X Gunnes, Julia N1- åpen Kristiansand OK A,16201,4,189,38962 255629
95 34937 X Helgemo, Matilda N1- åpen Kristiansand OK A,16201,4,189,34937 247435
96 41547 X Henrik Fidjestad Andreasen N2 åpen 9-16 OK Sør A,0,0,257,0 227046
97 9919 X Holo, Signe A-kort åpen Fossum IF A,16201,3,80,9919 514902
98 39044 X Holte tversland, Mia N1- åpen Kristiansand OK A,16201,4,189,39044
99 18662 X Kalleson, Tina A-kort åpen Oppsal Orientering A,16201,3,268,18662 513329
100 39139 X Kjelsrud, Frida Wigstøl N1- åpen Kristiansand OK A,16201,4,189,39139 247197
101 34787 X Kuhnle, Vibeke Irgens N1- åpen Kristiansand OK A,16201,4,189,34787 247180
102 14618 X Nolte, Anna Aurora A-kort åpen Freidig A,16201,15,320,14618 514841
103 41541 X Nordhassel, Jenny Marie Dyrdahl N1- åpen Kristiansand OK A,16201,4,189,41541 249911
104 25846 X Nyberg-Hansen, Hedvig A-kort åpen Fossum IF A,16201,3,80,25846 225566
105 4703 X Samuelsen Skiri, Kaja A-kort åpen Bodø og Omegn IF Orientering A,16201,10,45,4703 515181
106 34507 X Stormoen, Brage Glende N1- åpen Birkenes IL A,16201,4,40,34507 245548
107 3359 X Sønsterudbråten, Pernille A-kort åpen Lillomarka OL A,16201,3,203,3359 519493
108 9819 X Veggan, Katrine Bjordal A-kort åpen Oppsal Orientering A,16201,3,268,9819 517129
109 30301 X Yuan, Boyan A-lang åpen Kristiansand OK A,16201,4,189,30301 510994
110 1 X Lamark, Trond A-kort åpen Ganddal IL 509448
111 2 X Graff Wiik, Marthe A-kort åpen Sturla, IF 211867
112 3 X Thortveit, Ståle A-lang åpen Søgne og Songdalen OK 197885
113 4 X Økstad, Siri B åpen 17- Oddersjaa SSK 185940
114 5 X Moe, Oddbjørg B åpen 17- Kristiansand OK 173450
115 6 X Alvestad, Stig A-lang åpen IK Grane Arendal Orientering 517490
116 7 X Dalsøren, Kaspian N1- åpen Kristiansand OK 247062
117 8 X Åmdal, Mari Fjørbu B åpen 17- Kristiansand OK 515238
118 9 X Ringot, Paul B åpen 17- Kristiansand OK 518732
119 10 X Mollestad, Andreas N1- åpen Kristiansand OK 512524
120 11 X Tversland, Mia Holte N1- åpen KOK 249912
121 12 X Ribe, Ane B åpen 17- Søgne og Songdalen OK 510314
122 13 X Nerland, Wilmer Ribe N1- åpen Søgne og Songdalen OK 255744
123 14 X Risdal, Johannes N1- åpen Søgne og Songdalen OK 244910
124 15 X Ribe, Wilhelm C åpen 17- Søgne og Songdalen OK 249905
125 16 X Johansen, Kai A-lang åpen Øyestad IF allianse 251366
126 17 X Moe, Jostein A-lang åpen Torridal 226027
127 18 X Damsgaard, Julia B. N1- åpen Hisøy OK 193048
128 19 X Damsgaard, Ingrid B. N1- åpen Hisøy OK 233687
129 20 X Damsgaard, Hanna B. C åpen 17- Hisøy OK 223503
130 21 X Neumann, Karoline C åpen 17- Kristiansand OK 518331
131 22 X Tortveit, Kristian C åpen 17- Kristiansand OK 248227
132 23 X Tortveit, Karoline N1- åpen Kristiansand OK 249929
133 24 X W. Fuglestad, Oliver C åpen 17- Kristiansand OK 60730
134 25 X W. Kjelsrud, Emil N1- åpen Kristiansand OK 255638
135 26 X Strøm, Leon N1- åpen Kristiansand OK 249913

File diff suppressed because one or more lines are too long

View File

@ -1,119 +0,0 @@
"M","0","14917","517409","27.03.22 11:04:39.000","27.03.22 11:04:37.000",517409,0000,0000,000,00000,071,00030,158,00148,032,00224,062,00295,157,00439,084,00501,064,00624,079,00731,063,00977,100,01028,249,01060,250,01077,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000001
"M","0","14917","514902","27.03.22 11:16:06.000","27.03.22 11:16:04.000",514902,0000,0000,000,00000,037,00519,100,01779,249,01857,250,01864,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000002
"M","0","14917","512524","27.03.22 11:27:49.000","27.03.22 11:27:47.000",512524,0000,0000,000,00000,071,00029,158,00130,032,00176,062,00243,157,00410,084,00493,064,00621,079,00787,063,01031,100,01177,249,01217,250,01229,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000003
"M","0","14917","193048","27.03.22 11:33:38.000","27.03.22 11:33:36.000",193048,0000,0000,000,00000,071,00014,158,00121,032,00155,062,00217,157,00373,084,00429,064,00552,079,00638,063,00835,100,00897,249,00929,250,00940,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000004
"M","0","14917","233687","27.03.22 11:33:43.000","27.03.22 11:33:41.000",233687,0000,0000,000,00000,071,00015,158,00118,032,00152,062,00214,157,00369,084,00427,064,00549,079,00636,063,00845,100,00896,249,00933,250,00944,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000005
"M","0","14917","513329","27.03.22 11:34:33.000","27.03.22 11:34:31.000",513329,0000,0000,000,00000,037,00297,151,00892,092,01323,106,01531,082,01695,161,02320,118,02778,080,03122,091,03486,085,03576,077,03676,100,03767,249,03804,250,03811,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000006
"M","0","14917","245548","27.03.22 11:38:18.000","27.03.22 11:38:17.000",245548,0000,0000,000,00000,071,00017,158,00102,032,00139,062,00185,157,00302,084,00372,064,00466,079,00548,063,00735,100,00798,249,00823,250,00832,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000007
"M","0","14917","247180","27.03.22 11:39:49.000","27.03.22 11:39:47.000",247180,0000,0000,000,00000,071,00018,158,00126,032,00168,062,00232,157,00369,084,00450,064,00570,079,00665,063,00903,100,00990,249,01039,250,01047,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000008
"M","0","14917","255638","27.03.22 11:42:49.000","27.03.22 11:42:48.000",255638,0000,0000,000,00000,071,00012,158,00163,032,00203,062,00273,157,00448,084,00538,064,00665,079,00795,063,01031,249,01161,250,01172,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000009
"M","0","14917","249913","27.03.22 11:42:55.000","27.03.22 11:42:53.000",249913,0000,0000,000,00000,071,00026,158,00172,032,00213,062,00280,157,00458,084,00545,064,00679,079,00808,063,01043,249,01164,250,01181,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000010
"M","0","14917","249912","27.03.22 11:47:36.000","27.03.22 11:47:34.000",249912,0000,0000,000,00000,071,00062,158,00194,032,00251,062,00346,157,00563,084,00669,064,00841,079,00987,063,01348,100,01424,249,01457,250,01468,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000011
"M","0","14917","247197","27.03.22 11:47:46.000","27.03.22 11:47:44.000",247197,0000,0000,000,00000,071,00052,158,00194,032,00252,062,00360,157,00571,084,00665,064,00841,079,00986,063,01348,100,01420,249,01458,250,01481,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000012
"M","0","14917","247435","27.03.22 11:47:59.000","27.03.22 11:47:57.000",247435,0000,0000,000,00000,071,00045,158,00202,032,00260,062,00358,157,00564,084,00677,064,00852,079,00997,063,01359,100,01432,249,01466,250,01496,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000013
"M","0","14917","206435","27.03.22 11:48:08.000","27.03.22 11:48:06.000",206435,0000,0000,000,00000,093,00344,096,00539,105,00690,055,00925,118,01407,059,01650,160,02106,085,02207,077,02313,100,02404,249,02434,250,02468,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000014
"M","0","14917","519429","27.03.22 11:49:09.000","27.03.22 11:49:07.000",519429,0000,0000,000,00000,037,00316,151,00975,092,01459,106,01667,082,01819,161,02374,118,02899,080,03456,091,03797,085,03919,077,04020,100,04116,249,04141,250,04147,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000015
"M","0","14917","507448","27.03.22 11:49:23.000","27.03.22 11:49:22.000",507448,0000,0000,000,00000,037,00301,151,00814,092,01215,106,01421,082,01584,161,02165,118,02657,080,02857,091,03209,085,03331,077,03411,100,03515,249,03546,250,03562,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000016
"M","0","14917","255629","27.03.22 11:49:53.000","27.03.22 11:49:51.000",255629,0000,0000,000,00000,071,00027,158,00149,032,00209,062,00264,157,00459,084,00551,064,00764,079,00932,063,01191,100,01304,249,01358,250,01365,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000017
"M","0","14917","249911","27.03.22 11:50:02.000","27.03.22 11:50:01.000",249911,0000,0000,000,00000,071,00059,158,00183,032,00221,062,00290,157,00483,084,00588,064,00808,079,00952,063,01200,100,01319,249,01366,250,01389,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000018
"M","0","14917","206436","27.03.22 11:50:10.000","27.03.22 11:50:08.000",206436,0000,0000,000,00000,037,00308,151,00731,092,01044,033,01390,118,02177,080,02406,091,02686,085,02754,077,02837,100,02913,249,02938,250,02948,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000019
"M","0","14917","229985","27.03.22 11:51:16.000","27.03.22 11:51:15.000",229985,0000,0000,000,00000,037,00260,151,00668,092,00947,106,01085,082,01205,161,01677,118,02157,080,02375,091,02627,085,02700,077,02780,100,02855,249,02879,250,02954,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000020
"M","0","14917","211867","27.03.22 11:53:39.000","27.03.22 11:53:37.000",211867,0000,0000,000,00000,151,01481,092,02032,106,02343,082,02489,161,03210,118,03668,080,03909,091,04375,100,04800,249,04832,250,04837,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000021
"M","0","14917","213724","27.03.22 11:54:11.000","27.03.22 11:54:09.000",213724,0000,0000,000,00000,093,00352,096,00531,105,00716,055,00971,118,01492,059,02048,160,02415,085,02551,077,02630,100,02741,249,02761,250,02769,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000022
"M","0","14917","511473","27.03.22 11:54:19.000","27.03.22 11:54:18.000",511473,0000,0000,000,00000,093,00431,096,00624,105,00784,055,01110,118,01677,059,01994,160,02508,085,02644,052,02880,100,03028,249,03067,250,03077,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000023
"M","0","14917","184578","27.03.22 11:55:51.000","27.03.22 11:55:27.000",184578,0000,0000,250,00057,093,00318,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000024
"M","0","14917","503611","27.03.22 11:55:52.000","27.03.22 11:55:40.000",503611,0000,0000,000,00000,093,00379,096,00521,105,00677,055,00937,118,01489,059,01861,160,02247,085,02374,077,02460,100,02581,249,02619,250,02679,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000025
"M","0","14917","257393","27.03.22 11:56:04.000","27.03.22 11:56:02.000",257393,0000,0000,000,00000,093,00403,096,00566,105,00745,055,01033,118,01572,059,02105,160,02481,085,02617,077,02703,100,02824,249,02865,250,02941,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000026
"M","0","14917","249929","27.03.22 11:57:56.000","27.03.22 11:57:54.000",249929,0000,0000,000,00000,071,00044,158,00180,032,00252,062,00345,157,00578,084,00710,064,00916,079,01101,063,01709,100,01771,249,01835,250,01844,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000027
"M","0","14917","247062","27.03.22 11:58:08.000","27.03.22 11:58:07.000",247062,0000,0000,000,00000,071,00042,158,00178,032,00252,062,00346,157,00566,084,00701,064,00916,079,01101,063,01702,100,01764,249,01836,250,01853,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000028
"M","0","14917","212043","27.03.22 11:58:16.000","27.03.22 11:58:14.000",212043,0000,0000,000,00000,037,00331,151,00842,092,01288,081,01789,087,02070,103,02616,106,02797,082,02934,161,03493,118,04016,080,04207,158,04653,091,04852,054,04907,085,04982,077,05047,100,05136,249,05161,250,05173,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000029
"M","0","14917","512805","27.03.22 11:58:21.000","27.03.22 11:58:20.000",512805,0000,0000,000,00000,037,00262,151,00749,092,01135,106,01369,082,01504,161,02005,118,02409,080,02599,091,02889,085,03004,077,03076,100,03161,249,03186,250,03200,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000030
"M","0","14917","504631","27.03.22 11:58:38.000","27.03.22 11:58:37.000",504631,0000,0000,000,00000,093,00391,096,00536,105,00736,055,00999,118,01470,059,01761,160,02133,085,02271,052,02423,100,02566,249,02603,250,02616,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000031
"M","0","14917","515039","27.03.22 11:59:50.000","27.03.22 11:59:48.000",515039,0000,0000,000,00000,037,00294,151,00802,092,01230,081,01764,087,02070,103,02616,106,02782,082,02919,161,03451,118,03875,080,04062,158,04398,091,04581,054,04633,085,04720,077,04796,100,04878,249,04901,250,04907,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000032
"M","0","14917","212966","27.03.22 12:00:18.000","27.03.22 12:00:16.000",212966,0000,0000,000,00000,037,00432,151,00946,092,01340,081,01874,087,02195,103,02763,106,02911,082,03043,161,03568,118,03990,080,04188,158,04514,091,04693,054,04742,085,04868,077,04942,100,05025,249,05050,250,05056,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000033
"M","0","14917","201888","27.03.22 12:00:37.000","27.03.22 12:00:35.000",201888,0000,0000,000,00000,037,00326,151,00854,092,01355,081,01912,087,02224,103,02729,106,02924,082,03070,161,03609,118,04147,080,04333,158,04792,091,05071,054,05123,085,05224,077,05307,100,05397,249,05428,250,05435,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000034
"M","0","14917","227046","27.03.22 12:01:16.000","27.03.22 12:01:15.000",227046,0000,0000,000,00000,102,00379,109,00797,105,01011,164,01421,162,01623,163,01785,062,01986,157,02265,063,02703,100,02784,249,02811,250,02834,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000035
"M","0","14917","185940","27.03.22 12:01:31.000","27.03.22 12:01:30.000",185940,0000,0000,000,00000,093,00446,096,00587,105,00777,055,01158,118,01743,059,02314,160,02719,085,02832,077,02925,100,03045,249,03080,250,03089,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000036
"M","0","14917","506935","27.03.22 12:01:37.000","27.03.22 12:01:35.000",506935,0000,0000,000,00000,093,00405,096,00543,105,00732,055,01059,118,01765,059,02214,160,02669,085,02783,077,02887,100,02990,249,03025,250,03034,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000037
"M","0","14917","241874","27.03.22 12:01:46.000","27.03.22 12:01:45.000",241874,0000,0000,000,00000,093,00388,096,00595,105,00769,055,01041,118,01516,059,01768,160,02164,085,02305,077,02398,100,02508,249,02547,250,02564,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000038
"M","0","14917","514841","27.03.22 12:03:45.000","27.03.22 12:03:44.000",514841,0000,0000,000,00000,037,00300,151,00756,092,01173,106,01381,082,01534,161,02079,118,02609,080,02821,091,03116,085,03192,077,03271,100,03369,249,03395,250,03403,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000039
"M","0","14917","510674","27.03.22 12:04:05.000","27.03.22 12:04:03.000",510674,0000,0000,000,00000,093,00440,096,00645,105,00819,055,01105,118,01585,059,01898,160,02382,085,02508,077,02613,100,02725,249,02753,250,02762,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000040
"M","0","14917","507044","27.03.22 12:04:11.000","27.03.22 12:04:09.000",507044,0000,0000,000,00000,037,00287,151,00816,092,01292,033,01448,118,02267,080,02450,091,02768,085,02848,077,02922,100,03027,249,03057,250,03069,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000041
"M","0","14917","212069","27.03.22 12:04:27.000","27.03.22 12:04:25.000",212069,0000,0000,000,00000,037,00230,151,00658,092,00976,081,01463,087,01791,103,02213,106,02365,082,02474,161,03197,118,03538,080,03740,158,04069,091,04225,054,04276,085,04373,077,04467,100,04556,249,04580,250,04586,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000042
"M","0","14917","506980","27.03.22 12:04:48.000","27.03.22 12:04:46.000",506980,0000,0000,000,00000,037,00333,151,00888,092,01386,081,01987,087,02268,103,02810,106,03006,082,03155,161,03872,118,04301,080,04489,158,04822,091,05053,054,05110,085,05233,077,05310,100,05404,249,05434,250,05446,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000043
"M","0","14917","181863","27.03.22 12:05:06.000","27.03.22 12:05:05.000",181863,0000,0000,000,00000,093,00361,096,00565,105,00710,055,00949,118,01450,059,02221,160,02639,085,02751,077,02844,100,02956,249,02997,250,03004,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000044
"M","0","14917","511369","27.03.22 12:05:43.000","27.03.22 12:05:41.000",511369,0000,0000,000,00000,037,00294,151,00782,092,01186,033,01294,118,02072,080,02289,091,02613,085,02698,077,02776,100,02875,249,02911,250,02920,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000045
"M","0","14917","507023","27.03.22 12:06:01.000","27.03.22 12:05:59.000",507023,0000,0000,000,00000,037,00282,151,01153,092,01674,033,01779,118,02786,080,03010,091,03306,085,03431,077,03521,100,03679,249,03712,250,03719,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000046
"M","0","14917","509049","27.03.22 12:06:07.000","27.03.22 12:06:05.000",509049,0000,0000,000,00000,037,00215,151,00552,092,00851,081,01223,087,01430,103,01792,106,01899,082,01997,161,02363,118,02666,080,02821,158,03057,091,03180,054,03234,085,03287,077,03334,100,03395,249,03418,250,03425,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000047
"M","0","14917","216713","27.03.22 12:06:19.000","27.03.22 12:06:17.000",216713,0000,0000,000,00000,037,00269,151,00788,092,01238,106,01450,082,01596,161,02225,118,02709,080,02921,091,03281,085,03400,077,03475,100,03569,249,03601,250,03617,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000048
"M","0","14917","506352","27.03.22 12:06:33.000","27.03.22 12:06:31.000",506352,0000,0000,000,00000,093,00323,096,00463,105,00592,055,00872,118,01306,059,01590,160,01999,085,02138,077,02223,100,02321,249,02351,250,02371,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000049
"M","0","14917","247082","27.03.22 12:06:42.000","27.03.22 12:06:40.000",247082,0000,0000,000,00000,102,00396,109,00891,105,01056,164,01567,162,01745,163,01880,062,01996,157,02153,063,02689,100,02789,250,02839,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000050
"M","0","14917","247550","27.03.22 12:07:04.000","27.03.22 12:07:02.000",247550,0000,0000,000,00000,102,00417,109,00900,105,01054,164,01583,162,01749,163,01887,062,02003,157,02161,063,02707,100,02794,249,02854,250,02861,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000051
"M","0","14917","247082","27.03.22 12:07:10.000","27.03.22 12:07:08.000",247082,0000,0000,000,00000,102,00396,109,00891,105,01056,164,01567,162,01745,163,01880,062,01996,157,02153,063,02689,100,02789,250,02839,249,02857,250,02867,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000052
"M","0","14917","517487","27.03.22 12:09:20.000","27.03.22 12:09:18.000",517487,0000,0000,000,00000,037,00427,151,01057,092,01597,033,01715,118,02806,080,03078,091,03460,085,03588,077,03683,100,03813,249,03853,250,03858,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000053
"M","0","14917","255744","27.03.22 12:09:36.000","27.03.22 12:09:34.000",255744,0000,0000,000,00000,071,00015,158,00127,032,00180,062,00251,157,00406,084,00482,064,00651,079,00806,063,01046,100,01099,249,01130,250,01147,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000054
"M","0","14917","249910","27.03.22 12:09:41.000","27.03.22 12:09:40.000",249910,0000,0000,000,00000,071,00017,158,00133,032,00184,062,00256,157,00411,084,00487,064,00643,079,00810,063,01015,100,01094,249,01130,250,01152,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000055
"M","0","14917","507767","27.03.22 12:09:50.000","27.03.22 12:09:48.000",507767,0000,0000,000,00000,093,00456,096,00664,105,00887,055,01192,118,01906,059,02293,160,02875,085,03090,077,03220,100,03358,249,03399,250,03408,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000056
"M","0","14917","216677","27.03.22 12:10:06.000","27.03.22 12:10:04.000",216677,0000,0000,000,00000,037,00269,151,00711,092,01086,106,01249,082,01393,161,01913,118,02368,080,02552,091,02825,085,02908,077,02975,100,03071,249,03102,250,03123,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000057
"M","0","14917","511451","27.03.22 12:10:31.000","27.03.22 12:10:29.000",511451,0000,0000,000,00000,037,00260,151,00690,092,01082,033,01183,118,01922,080,02097,091,02394,085,02471,077,02548,100,02655,249,02684,250,02729,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000058
"M","0","14917","208727","27.03.22 12:10:44.000","27.03.22 12:10:42.000",208727,0000,0000,000,00000,093,00332,096,00453,105,00598,055,00801,118,01238,059,01658,160,02009,085,02154,077,02240,100,02339,249,02374,250,02382,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000059
"M","0","14917","500401","27.03.22 12:14:49.000","27.03.22 12:14:48.000",500401,0000,0000,000,00000,037,00273,151,00795,092,01229,106,01418,082,01547,161,02074,118,02568,080,02772,091,03061,085,03191,077,03280,100,03371,249,03394,250,03406,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000060
"M","0","14917","511344","27.03.22 12:16:04.000","27.03.22 12:16:02.000",511344,0000,0000,000,00000,037,00488,151,01457,161,02143,091,03337,085,03615,100,03925,249,03955,250,03962,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000061
"M","0","14917","258681","27.03.22 12:16:12.000","27.03.22 12:16:10.000",258681,0000,0000,000,00000,037,00286,151,00873,092,01410,033,01545,118,02339,080,02573,091,02957,085,03083,077,03165,100,03268,249,03301,250,03310,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000062
"M","0","14917","510314","27.03.22 12:16:16.000","27.03.22 12:16:14.000",510314,0000,0000,000,00000,093,00402,096,00956,105,01127,055,01371,118,01995,059,02599,160,02941,085,03089,077,03175,100,03271,249,03302,250,03313,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000063
"M","0","14917","255325","27.03.22 12:16:36.000","27.03.22 12:16:34.000",255325,0000,0000,000,00000,037,00412,151,00995,092,01498,106,01691,082,01875,161,02457,118,02934,080,03205,091,03547,085,03674,077,03772,100,03888,249,03916,250,03934,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000064
"M","0","14917","231504","27.03.22 12:16:55.000","27.03.22 12:16:54.000",231504,0000,0000,000,00000,037,00249,151,00714,092,01147,106,01304,082,01469,161,01917,118,02359,080,02545,091,02819,085,02916,077,02989,100,03075,249,03106,250,03113,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000065
"M","0","14917","506791","27.03.22 12:17:07.000","27.03.22 12:17:06.000",506791,0000,0000,000,00000,037,00278,151,01010,092,01446,106,01681,082,01833,161,02481,118,02976,080,03150,091,03429,085,03524,077,03591,100,03682,249,03710,250,03725,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000066
"M","0","14917","508554","27.03.22 12:17:44.000","27.03.22 12:17:42.000",508554,0000,0000,000,00000,037,00530,151,01328,092,01946,081,02431,087,02699,103,03138,106,03302,082,03435,161,03993,118,04390,080,04639,158,05006,091,05227,054,05270,085,05344,077,05405,100,05468,249,05493,250,05501,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000067
"M","0","14917","511747","27.03.22 12:17:47.000","27.03.22 12:17:46.000",511747,0000,0000,000,00000,037,00278,151,00745,092,01130,081,01616,087,01871,103,02304,106,02483,082,02610,161,03136,118,03539,080,03742,158,04099,091,04266,054,04312,085,04379,077,04445,100,04509,249,04537,250,04546,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000068
"M","0","14917","212099","27.03.22 12:18:40.000","27.03.22 12:18:39.000",212099,0000,0000,000,00000,037,00271,151,01042,092,01547,106,01748,082,01884,161,02455,118,02972,080,03162,091,03485,085,03563,077,03682,100,03784,249,03813,250,03819,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000069
"M","0","14917","245669","27.03.22 12:18:47.000","27.03.22 12:18:46.000",245669,0000,0000,000,00000,037,00362,151,01083,092,01803,033,01937,118,02861,080,03512,091,03860,085,03955,077,04052,100,04149,249,04179,250,04185,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000070
"M","0","14917","518331","27.03.22 12:19:15.000","27.03.22 12:19:13.000",518331,0000,0000,000,00000,102,00268,096,00613,105,00871,055,01413,163,01575,074,01911,059,02152,084,02549,085,02774,063,03082,100,03150,249,03183,250,03189,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000071
"M","0","14917","203484","27.03.22 12:19:53.000","27.03.22 12:19:51.000",203484,0000,0000,000,00000,102,00247,096,00664,105,00969,055,01787,163,01966,074,02274,059,02930,084,03365,085,03607,063,03839,100,03887,249,03915,250,03951,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000072
"M","0","14917","213563","27.03.22 12:21:10.000","27.03.22 12:21:09.000",213563,0000,0000,000,00000,037,00417,151,01121,092,01676,106,01909,082,02067,161,02658,118,03200,080,03529,091,04014,085,04098,077,04190,100,04290,249,04321,250,04329,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000073
"M","0","14917","212974","27.03.22 12:21:49.000","27.03.22 12:21:47.000",212974,0000,0000,000,00000,037,00290,151,00867,092,01287,033,01418,118,02285,080,02490,091,02824,085,02925,077,02999,100,03108,249,03141,250,03166,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000074
"M","0","14917","238125","27.03.22 12:22:01.000","27.03.22 12:21:59.000",238125,0000,0000,000,00000,093,00466,096,00634,105,00890,055,01190,118,01700,059,02009,160,02457,085,02614,077,02727,100,02855,249,02900,250,02913,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000075
"M","0","14917","511410","27.03.22 12:23:01.000","27.03.22 12:23:00.000",511410,0000,0000,000,00000,037,00262,151,00775,092,01149,081,01649,087,01936,103,02405,106,02559,082,02694,161,03202,118,03642,080,03851,158,04183,091,04397,054,04450,085,04529,077,04606,100,04705,249,04732,250,04740,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000076
"M","0","14917","225005","27.03.22 12:23:17.000","27.03.22 12:23:16.000",225005,0000,0000,000,00000,102,00385,096,00969,105,01538,055,02260,163,02424,074,02715,059,03063,084,03482,085,03650,063,03893,100,03978,249,04021,250,04035,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000077
"M","0","14917","255211","27.03.22 12:24:14.000","27.03.22 12:24:13.000",255211,0000,0000,000,00000,093,00418,096,00593,105,00809,055,01187,118,01840,059,02620,160,03118,085,03290,077,03480,100,03619,249,03664,250,03672,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000078
"M","0","14917","517490","27.03.22 12:24:39.000","27.03.22 12:24:37.000",517490,0000,0000,000,00000,037,00223,151,00605,092,00939,081,01327,087,01537,103,01944,106,02072,082,02182,161,02626,118,02987,080,03180,158,03486,091,03637,054,03684,085,03752,077,03825,100,03903,249,03932,250,03937,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000079
"M","0","14917","506629","27.03.22 12:24:44.000","27.03.22 12:24:42.000",506629,0000,0000,000,00000,037,00232,151,00582,092,00885,249,02547,250,04302,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000080
"M","0","14917","504136","27.03.22 12:25:09.000","27.03.22 12:25:07.000",504136,0000,0000,000,00000,037,00284,151,01021,092,01400,081,02147,087,02420,103,02894,106,03056,082,03211,161,03743,118,04268,080,04453,158,04833,091,05025,054,05074,085,05148,077,05218,100,05309,249,05342,250,05347,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000081
"M","0","14917","225161","27.03.22 12:26:44.000","27.03.22 12:26:42.000",225161,0000,0000,000,00000,037,00289,151,00935,092,01530,081,02308,087,02838,103,03420,106,03600,082,03741,161,04324,118,04920,080,05165,158,05571,091,05750,054,05798,085,05891,077,06013,100,06127,249,06157,250,06162,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000082
"M","0","14917","223503","27.03.22 12:28:48.000","27.03.22 12:28:46.000",223503,0000,0000,000,00000,102,00322,096,00873,105,01209,055,01683,163,01828,074,02324,059,02591,084,03081,085,03310,063,03491,100,03544,249,03578,250,03585,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000083
"M","0","14917","246581","27.03.22 12:29:27.000","27.03.22 12:29:25.000",246581,0000,0000,000,00000,037,00283,151,00760,092,01159,106,01318,082,01477,161,02024,118,02520,080,02743,091,03056,085,03148,077,03246,100,03344,249,03377,250,03384,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000084
"M","0","14917","517129","27.03.22 12:29:32.000","27.03.22 12:29:30.000",517129,0000,0000,000,00000,037,00420,151,01186,092,01766,106,02004,082,02266,161,03079,118,03632,080,03921,091,04309,085,04412,077,04499,100,04608,249,04643,250,04650,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000085
"M","0","14917","515181","27.03.22 12:31:21.000","27.03.22 12:31:20.000",515181,0000,0000,000,00000,037,00543,151,01276,092,01832,106,02070,082,02248,161,03032,118,03663,080,03895,091,04250,085,04357,077,04457,100,04583,249,04615,250,04639,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000086
"M","0","14917","519493","27.03.22 12:31:29.000","27.03.22 12:31:27.000",519493,0000,0000,000,00000,037,00666,151,01400,092,01957,106,02194,082,02366,161,03150,118,03789,080,04018,091,04376,085,04480,077,04582,100,04706,249,04739,250,04767,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000087
"M","0","14917","509450","27.03.22 12:31:43.000","27.03.22 12:31:41.000",509450,0000,0000,000,00000,037,00219,151,00588,092,00880,081,01291,087,01524,103,01935,106,02070,082,02190,161,02621,118,03014,080,03218,158,03508,091,03674,054,03712,085,03797,077,03863,100,03940,249,03968,250,04001,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000088
"M","0","14917","508199","27.03.22 12:32:00.000","27.03.22 12:31:59.000",508199,0000,0000,000,00000,037,00240,151,00651,092,00971,081,01395,087,01677,103,02076,106,02216,082,02338,161,02797,118,03129,080,03307,158,03598,091,03756,054,03802,085,03880,077,03947,100,04032,249,04060,250,04078,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000089
"M","0","14917","197885","27.03.22 12:32:44.000","27.03.22 12:32:42.000",197885,0000,0000,000,00000,037,00364,151,00833,092,01165,081,01621,087,02029,103,02602,106,02757,082,02879,161,03363,118,03741,080,04052,158,04351,091,04510,054,04555,085,04641,077,04718,100,04816,249,04848,250,04902,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000090
"M","0","14917","509448","27.03.22 12:32:50.000","27.03.22 12:32:48.000",509448,0000,0000,000,00000,037,00324,151,00958,092,01449,106,01660,082,01817,161,02544,118,03024,080,03246,091,03547,085,03669,077,03755,100,03860,249,03894,250,03947,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000091
"M","0","14917","511855","27.03.22 12:32:55.000","27.03.22 12:32:53.000",511855,0000,0000,000,00000,037,00377,151,01001,092,01453,081,02011,087,02362,103,02941,106,03126,082,03296,161,04000,118,04566,080,04814,158,05205,091,05442,054,05520,085,05647,077,05741,100,05846,249,05882,250,05934,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000092
"M","0","14917","515238","27.03.22 12:33:07.000","27.03.22 12:33:04.000",515238,0000,0000,000,00000,093,00523,096,00726,105,00937,055,01286,118,02173,059,02945,160,03640,085,03917,077,04063,100,04180,249,04219,250,04264,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000093
"M","0","14917","515045","27.03.22 12:35:02.000","27.03.22 12:35:00.000",515045,0000,0000,000,00000,037,00289,151,01265,092,01666,081,02387,087,02854,103,03393,106,03561,082,03706,161,04244,118,04734,080,04922,158,05234,091,05447,054,05494,085,05561,077,05693,100,05779,249,05813,250,05819,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000094
"M","0","14917","514702","27.03.22 12:38:03.000","27.03.22 12:38:01.000",514702,0000,0000,000,00000,037,00306,151,01027,092,01488,081,02213,087,02516,103,03040,106,03218,082,03363,161,03943,118,04351,080,04642,158,04918,091,05089,054,05141,085,05264,077,05390,100,05482,249,05513,250,05521,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000095
"M","0","14917","256285","27.03.22 12:38:38.000","27.03.22 12:38:36.000",256285,0000,0000,000,00000,037,00535,151,01242,092,01747,081,02377,087,02752,103,03422,106,03616,082,03848,161,04607,118,05133,080,05363,158,05725,091,05942,054,05988,085,06116,077,06242,100,06344,249,06374,250,06396,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000096
"M","0","14917","509544","27.03.22 12:38:42.000","27.03.22 12:38:40.000",509544,0000,0000,000,00000,037,00269,151,00687,092,01050,081,01490,087,01778,103,02257,106,02420,082,02537,161,03000,118,03420,080,03579,158,03852,091,04017,054,04101,085,04174,077,04242,100,04320,249,04347,250,04360,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000097
"M","0","14917","204755","27.03.22 12:38:51.000","27.03.22 12:38:49.000",204755,0000,0000,250,00009,054,00238,085,00318,077,00392,161,01589,118,01986,080,02155,158,02426,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000098
"M","0","14917","513398","27.03.22 12:39:05.000","27.03.22 12:39:03.000",513398,0000,0000,000,00000,037,00376,151,00912,092,01384,081,01946,087,02267,103,02913,106,03077,082,03251,161,03924,118,04412,080,04659,158,05045,091,05254,054,05529,085,05634,077,05789,100,05899,249,05928,250,05942,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000099
"M","0","14917","173450","27.03.22 12:39:16.000","27.03.22 12:39:15.000",173450,0000,0000,000,00000,093,00597,096,00926,105,01279,055,02566,118,03295,059,04229,160,05122,085,05379,077,05519,100,05766,249,05815,250,05834,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000100
"M","0","14917","510877","27.03.22 12:39:28.000","27.03.22 12:39:26.000",510877,0000,0000,000,00000,037,00224,151,00573,092,00966,081,01391,087,01610,103,01991,106,02110,082,02221,161,02615,118,02939,080,03074,158,03328,091,03465,054,03510,085,03575,077,03629,100,03695,249,03723,250,03746,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000101
"M","0","14917","510279","27.03.22 12:42:54.000","27.03.22 12:42:52.000",510279,0000,0000,000,00000,037,00277,151,00754,092,01212,081,01978,087,02245,103,02794,106,02971,082,03120,161,03660,118,04121,080,04512,158,04910,091,05083,054,05132,085,05252,077,05319,100,05412,249,05442,250,05452,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000102
"M","0","14917","511332","27.03.22 12:43:02.000","27.03.22 12:43:00.000",511332,0000,0000,000,00000,037,00604,151,01164,092,01600,081,02358,087,02635,103,03164,106,03339,082,03477,161,04041,118,04566,080,04778,158,05156,091,05337,054,05389,085,05494,077,05563,100,05655,249,05684,250,05699,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000103
"M","0","14917","253296","27.03.22 12:43:13.000","27.03.22 12:43:12.000",253296,0000,0000,000,00000,037,00395,151,02528,092,03131,106,03392,082,03571,161,04339,118,04988,080,05264,091,05720,085,05943,077,06032,100,06140,249,06169,250,06191,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000104
"M","0","14917","513390","27.03.22 12:43:18.000","27.03.22 12:43:17.000",513390,0000,0000,000,00000,037,00292,151,00880,092,01265,081,01780,087,02064,103,02561,106,02717,082,02865,161,03406,118,03909,080,04112,158,04434,091,04630,054,04679,085,04757,077,04841,100,04944,249,04975,250,04996,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000105
"M","0","14917","247982","27.03.22 12:44:52.000","27.03.22 12:44:51.000",247982,0000,0000,000,00000,102,03408,109,03683,105,03851,164,04109,162,04317,163,04430,062,04592,157,04792,063,05073,100,05110,249,05142,250,05150,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000106
"M","0","14917","226027","27.03.22 12:45:51.000","27.03.22 12:45:49.000",226027,0000,0000,250,00005,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000107
"M","0","14917","227057","27.03.22 12:46:14.000","27.03.22 12:46:13.000",227057,0000,0000,000,00000,037,00321,151,00813,092,01279,081,01820,087,02092,103,02630,106,02810,082,03001,161,03592,118,04163,080,04400,158,04768,091,04980,054,05056,085,05134,077,05211,100,05305,249,05339,250,05352,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000108
"M","0","14917","509447","27.03.22 12:51:05.000","27.03.22 12:51:03.000",509447,0000,0000,000,00000,037,00260,151,00816,092,01327,081,01916,087,02197,103,02748,106,02893,082,03042,161,03556,118,03976,080,04179,158,04499,091,04678,054,04722,085,04793,077,04869,100,04945,249,04975,250,04983,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000109
"M","0","14917","518732","27.03.22 12:51:35.000","27.03.22 12:51:34.000",518732,0000,0000,000,00000,093,00729,096,01138,105,01571,055,02399,118,03205,059,03819,160,05033,085,05323,077,05521,100,05775,249,05817,250,05852,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000110
"M","0","14917","401024","27.03.22 12:52:07.000","27.03.22 12:52:06.000",401024,0000,0000,000,00000,037,00574,151,01334,092,02073,033,02231,118,03665,080,04362,091,04858,085,04992,077,05098,100,05236,249,05277,250,05284,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000111
"M","0","14917","512427","27.03.22 12:55:31.000","27.03.22 12:55:30.000",512427,0000,0000,000,00000,037,00293,151,00924,092,01371,081,01887,087,02243,103,02813,106,03041,082,03215,161,03907,118,04533,080,04757,158,05241,091,05458,054,05554,085,05692,077,05797,100,05923,249,05958,250,05969,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000112
"M","0","14917","248227","27.03.22 12:58:45.000","27.03.22 12:58:43.000",248227,0000,0000,000,00000,102,00702,096,01292,105,01836,055,02648,163,02986,074,03317,059,03643,084,04140,085,04573,063,04792,100,04878,249,04918,250,04930,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000113
"M","0","14917","060730","27.03.22 12:59:00.000","27.03.22 12:58:58.000",060730,0000,0000,000,00000,102,00710,096,01291,105,01834,055,02671,163,02998,074,03328,059,03654,084,04151,085,04570,063,04801,100,04891,250,04948,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000114
"M","0","14917","203292","27.03.22 13:00:33.000","27.03.22 13:00:31.000",203292,0000,0000,000,00000,102,00684,096,02260,105,03154,055,04265,163,04439,074,05137,059,05566,084,05929,085,06075,249,06855,250,06869,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000115
"M","0","14917","060730","27.03.22 13:00:45.000","27.03.22 13:00:43.000",060730,0000,0000,000,00000,102,00710,096,01291,105,01834,055,02671,163,02998,074,03328,059,03654,084,04151,085,04570,063,04801,100,04891,250,04948,249,05004,250,05011,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000116
"M","0","14917","251366","27.03.22 13:00:48.000","27.03.22 13:00:46.000",251366,0000,0000,000,00000,037,00460,151,00983,092,01450,081,02172,087,02640,103,03201,106,03378,161,04064,118,04607,080,04922,158,05379,091,05616,054,05680,085,05777,077,05870,100,05996,249,06036,250,06043,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000117
"M","0","14917","510994","27.03.22 13:01:22.000","27.03.22 13:01:20.000",510994,0000,0000,000,00000,151,03476,100,06119,249,06185,250,06194,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000118
"M","0","14917","517508","27.03.22 13:22:37.000","27.03.22 13:22:35.000",517508,0000,0000,000,00000,037,00631,151,01122,092,01664,081,02233,087,02868,103,03712,106,03907,082,04115,161,04700,073,06144,100,06714,249,06750,250,06757,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000119

View File

@ -1,9 +0,0 @@
# Auto generated ttime configuration file.
-codes "37,151,92,81,87,103,106,82,161,118,80,158,91,54,85,77,100,249;37,151,92,106,82,161,118,80,91,85,77,100,249;37,151,92,33,118,80,91,85,77,100,249;93,96,105,55,118,59,160,85,77,100,249;102,96,105,55,163,74,59,84,85,63,100,249;102,109,105,164,162,163,62,157,63,100,249;71,158,32,62,157,84,64,79,63,100,249"
-courses "A-lang åpen,D17AL,H17AL;A-kort åpen,D17 AK,H15-16,H17 AK,H35,H45;D35,D45,H55;B åpen 17-,D55,D75,H13-14,H65,H75;C åpen 17-,H11-12;H9-10,N2 åpen 9-16;N1- åpen"
-database "Z:/sdb.csv"
-emit "Z:/mtr.txt"
-wxml "Z:/res_1_ttime.xml"
-htmlres "C:/Users/KOK/Documents/results.html"
-port COM5
-start "D17AL,10:30:00,02:00,;H17AL,11:01:00,04:00,;D17 AK,11:00:00,05:00,;H15-16,11:11:00,04:00,;H17 AK,11:26:00,04:00,;H35,11:25:00,04:00,;H45,11:02:00,04:00,;D35,11:20:00,04:00,;D45,11:04:00,04:00,;H55,11:01:00,04:00,;D55,11:03:00,04:00,;D75,11:32:00,04:00,;H13-14,11:08:00,04:00,;H65,11:07:00,04:00,;H75,11:14:00,04:00,;H11-12,11:14:00,04:00,;H9-10,11:19:00,04:00,"

19
mtr.py
View File

@ -1,19 +0,0 @@
import otime
import serial
from time import sleep
def dump_all(port):
mtr = serial.Serial(port, baudrate=9600, timeout=40)
# dump all command
mtr.write(b'/SA')
card_dumps = []
sleep(0.4)
while mtr.in_waiting > 0:
mtr.read_until(expected=b'\xFF\xFF\xFF\xFF')
size = mtr.read(size=1)
if size == b'\xe6':
meat = mtr.read(229)
full = b'\xFF\xFF\xFF\xFF' + size + meat
card_r = otime.CardDump.from_mtr_bytes(full)
card_dumps.append(card_r)
return card_dumps

View File

@ -1,200 +0,0 @@
#!/usr/bin/env python3
import argparse
import logging
import logging.handlers
import os
import serial
import sys
from datetime import datetime, timedelta
import time
import mtrreader
import mtrlog
def create_argparser():
argparser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
argparser.add_argument(
'-p',
'--serial-port',
default='/dev/ttyMTR',
help="Serial port device of MTR")
argparser.add_argument(
'-t',
'--serial-port-polling-timeout',
metavar='TIMEOUT',
type=int,
help=(
'Number of seconds to spend polling MTR for status before '
'giving up. (Exits with status code {} on timeout.)'.format(
exit_code_serial_port_unresponsive)))
argparser.add_argument(
'-f',
'--output-file-name',
default="mtr-{}.log",
help=(
'Name of output file in the "MTR log file" format read by '
'tTime (See http://ttime.no. Format described at '
'http://ttime.no/rs232.pdf.) '
'A {} in the filename will be replaced with a timestamp in '
'the ISO 8601 combined date and time basic format.'))
argparser.add_argument(
'-d',
'--destination',
nargs='+',
metavar='DEST_ARG',
help=(
"Send MTR log file to a destination. Supported destinations: "
"an HTTP URL (accepting POST form uploads) or "
"'dropbox path/to/apitokenfile [/upload/dir]'"))
argparser.add_argument(
'-l',
'--log',
nargs='+',
metavar='LOG_ARG',
default=['syslog', '/dev/log', 'local0'],
help=(
"Configure logging. LOG_ARG can be a log file path or the "
"default (using multiple values) 'syslog [SOCKET] [FACILITY]' "
"where SOCKET is '/dev/log' and FACILITY is 'local0' by "
"default."))
return argparser
def initialize_logging():
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
if args.log[0] == 'syslog':
address = args.log[1] if len(args.log) >= 2 else '/dev/log'
facility = args.log[2] if len(args.log) >= 3 else 'local0'
syslog_handler = logging.handlers.SysLogHandler(
address=address,
facility=facility)
syslog_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
logger.addHandler(syslog_handler)
else:
log_file = args.log[0]
file_handler = logging.handlers.WatchedFileHandler(log_file)
file_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
logger.addHandler(file_handler)
return logger
def should_poll_mtr_for_status(timeout_uptime):
no_timeout_set = timeout_uptime is None
return no_timeout_set or uptime() < timeout_uptime
def uptime():
with open('/proc/uptime', 'r') as f:
uptime_seconds = float(f.readline().split()[0])
return timedelta(seconds=uptime_seconds)
def is_status_response(messages):
return (len(messages) == 1
and isinstance(messages[0], mtrreader.MtrStatusMessage))
def serial_port_with_live_mtr(
port, polling_timeout_secs, retry_wait_time_secs, serial_timeout_secs):
if polling_timeout_secs is None:
polling_timeout_uptime = None
logger.info("Polling serial port %s forever", port)
else:
polling_timeout_uptime = (
uptime() + timedelta(seconds=polling_timeout_secs))
logger.info(
"Polling serial port %s for status for %s seconds (until "
"uptime is %s)",
port, polling_timeout_secs, polling_timeout_uptime)
while should_poll_mtr_for_status(polling_timeout_uptime):
try:
serial_port = serial.Serial(
port=port, baudrate=9600, timeout=serial_timeout_secs)
logger.info(
"Opened serial port %s, sending 'status' command '/ST'...",
port)
mtr_reader_status = mtrreader.MtrReader(serial_port)
mtr_reader_status.send_status_command()
messages = mtr_reader_status.receive()
if is_status_response(messages):
logger.info(
"MTR status response received, ID is %d",
messages[0].mtr_id())
return serial_port
except serial.SerialException:
# Just log the error, the device could have been suddenly
# connected and could be responding next time.
logger.info((
"MTR status polling failed; Serial port %s was closed or "
"couldn't be opened"), port)
logger.info(
"Retrying MTR status polling in %d seconds",
retry_wait_time_secs)
time.sleep(retry_wait_time_secs)
logger.info(
"No status response received on serial port %s in %d seconds. "
"Giving up.",
port, polling_timeout_secs)
return None
def write_mtr_log_file(log_lines, output_filename):
with open(output_filename, 'wb') as output_file:
for log_line in log_lines:
output_file.write(("%s\n" % log_line).encode('utf-8'))
logger.info("Wrote log file %s", output_filename)
return output_filename
def upload_mtr_log_file_dropbox(log_file_name, upload_dir, token):
dbx = dropbox.Dropbox(token)
with open(log_file_name, 'rb') as f:
upload_filename = os.path.basename(f.name)
dbx.files_upload(f.read(), upload_dir + "/" + upload_filename)
return
def upload_mtr_log_file_http(log_file_name, url):
with open(log_file_name, 'rb') as f:
requests.post(url, files={'file': f})
return
exit_code_serial_port_unresponsive = 100
argparser = create_argparser()
args = argparser.parse_args()
logger = initialize_logging()
serial_port = serial_port_with_live_mtr(
args.serial_port,
polling_timeout_secs=args.serial_port_polling_timeout,
retry_wait_time_secs=5,
serial_timeout_secs=3)
if serial_port is None:
logger.info(
"Serial port is unresponsive, exiting... (status=%d)",
exit_code_serial_port_unresponsive)
sys.exit(exit_code_serial_port_unresponsive)
mtr_reader = mtrreader.MtrReader(serial_port)
destination_args = args.destination
dropbox_api_token = None
output_filename = (
args.output_file_name.format(datetime.now().strftime('%Y%m%dT%H%M%S')))
mtr_reader.send_spool_all_command()
data_messages = mtr_reader.receive()
datetime_extracted = datetime.now()
log_lines = mtrlog.MtrLogFormatter().format_all(
data_messages, datetime_extracted)
mtr_log_file_name = write_mtr_log_file(log_lines, output_filename)

View File

@ -1,47 +0,0 @@
import logging
logger = logging.getLogger()
class MtrLogFormatter:
def format_all(self, data_messages, datetime_extracted):
log_lines = []
for data_message in data_messages:
log_lines.append(self.format(data_message, datetime_extracted))
return log_lines
def format(self, msg, datetime_extracted):
log_line = []
log_line.append('"M"')
log_line.append('"0"')
log_line.append('"%d"' % msg.mtr_id())
log_line.append('"%06d"' % msg.card_id())
print('"%06d"' % msg.card_id())
log_line.append(
'"%s"' % datetime_extracted.strftime('%d.%m.%y %H:%M:%S.000'))
log_line.append(
'"%02d.%02d.%02d %02d:%02d:%02d.%03d"' % (
msg.day(),
msg.month(),
msg.year(),
msg.hours(),
msg.minutes(),
msg.seconds(),
msg.milliseconds()))
log_line.append('%06d' % msg.card_id())
log_line.append('%04d' % 0) # skipped product week
log_line.append('%04d' % 0) # skipped product year
controls = []
for (control_code, time_at_control) in msg.splits():
log_line.append('%03d' % control_code)
controls.append('%03d' % control_code)
log_line.append('%05d' % time_at_control)
print(controls)
log_line.append('%07d' % msg.packet_num())
log_line_str = ",".join(log_line)
logger.info("Converted message to log line format: %s", log_line_str)
return log_line_str

View File

@ -1,276 +0,0 @@
# From http://ttime.no/rs232.pdf
#
# MESSAGE DESCRIPTION:
# ====================
#
# MTR--datamessage
# ---------------
# Fieldname # bytes
# Preamble 4 FFFFFFFF(hex) (4 "FF"'s never occur "inside" a message).
# (Can be used to "resynchronize" logic if a connection is
# broken)
# Package-size 1 number of bytes excluding preamble (=230)
# Package-type 1 'M' as "MTR-datamessage"
# MTR-id 2 Serial number of MTR2; Least significant byte first
# Timestamp 6 Binary Year, Month, Day, Hour, Minute, Second
# TS-milliseconds 2 Milliseconds NOT YET USED, WILL BE 0 IN THIS VERSION
# Package# 4 Binary Counter, from 1 and up; Least sign byte first
# Card-id 3 Binary, Least sign byte first
# Producweek 1 0-53 ; 0 when package is retrived from "history"
# Producyear 1 94-99,0-..X ; 0 when package is retrived from "history"
# ECardHeadSum 1 Headchecksum from card; 0 when package is retrived from
# "history"
# The following fields are repeated 50 times:
# CodeN 1 ControlCode; unused positions have 0
# TimeN 2 Time binary seconds. Least sign. first, Most sign. last;
# unused:0
# ASCII-string 56 Various info depending on ECard-type; 20h (all spaces)
# when retr. from "history" (See ASCII-String)
# Checksum 1 Binary SUM (MOD 256) of all bytes including Preamble
# NULL-Filler 1 Binary 0 (to avoid potential 5 FF's. Making it easier to
# hunt PREAMBLE
# ---------------------------------------
# Size 234
#
# Status-message
# --------------
# Fieldname # bytes
# Preamble 4 FFFFFFFF(hex) (FFFFFFFF never occur elsewhere within
# a frame).
# Package-size 1 number of bytes excluding preamble (=55)
# Package-type 1 'S' as "Status-message" (0x53)
# MTR-id 2 Serial number of MTR2.
# CurrentTime 6 Binary Year, Month, Day, Hour, Minute, Second
# CurrentMilliseconds 2 Milliseconds NOT YET USED, WILL BE 0 IN THIS VERSION
# BatteryStatus 1 1 if battery low. 0 if battery OK.
# RecentPackage# 4 if this is 0, then ALL following # should be ignored!
# OldestPackage# 4 note: If RecentPack==0 then this is still 1! meaning:
# Number of packages in MTR is
# "RecentPackage# - OldestPackage# + 1"
# CurrentSessionStart# 4 Current session is from here to RecentPackage
# (if NOT = 0)
# Prev1SessStart# 4 Prev session was from Prev1SessStart# to
# CurrentSessionStart# - 1
# Prev2SessStart# 4
# Prev3SessStart# 4
# Prev4SessStart# 4
# Prev5SessStart# 4
# Prev6SessStart# 4
# Prev7SessStart# 4
# Checksum 1 Binary SUM (MOD 256) of all bytes including Preamble
# NULL-Filler 1 Binary 0 (to avoid potential 5 FF's. Making it easier
# to hunt PREAMBLE
# ---------------------------------------
# Size 59
import logging
logger = logging.getLogger()
def extend_with(old_items, new_items):
old_items.extend(new_items)
return new_items
def checksum_of(message_bytes):
return sum(message_bytes) % 256
class MtrReader:
def __init__(self, serial_port):
self.serial_port = serial_port
def send_status_command(self):
self.serial_port.write(b'/ST')
def send_spool_all_command(self):
self.serial_port.write(b'/SA')
def receive(self):
messages = []
timed_out = False
PREAMBLE = b'\xFF\xFF\xFF\xFF'
while not timed_out:
preamble_buffer = bytearray()
while preamble_buffer != PREAMBLE:
if len(preamble_buffer) == len(PREAMBLE):
# make room for incoming byte
preamble_buffer.pop(0)
bytes_read_waiting = self.serial_port.read()
timed_out = len(bytes_read_waiting) == 0
if timed_out:
logger.debug(
'Timed out, returning %d messages', len(messages))
return messages
preamble_buffer.extend(bytes_read_waiting)
logger.debug(
'Byte read waiting (hex): %s '
'(current preamble buffer: %s)',
bytes_read_waiting.hex(),
preamble_buffer.hex())
logger.debug('Saw preable, start package parsing')
message_bytes = bytearray()
message_bytes.extend(preamble_buffer)
package_size_numbytes = 1
package_type_numbytes = 1
package_size = int.from_bytes(
extend_with(
message_bytes,
self.serial_port.read(package_size_numbytes)),
'little')
package_type = int.from_bytes(
extend_with(
message_bytes,
self.serial_port.read(package_type_numbytes)),
'little')
num_remaining_bytes_expected = (
package_size
- package_size_numbytes
- package_type_numbytes)
remaining_bytes = self.serial_port.read(
num_remaining_bytes_expected)
if len(remaining_bytes) < num_remaining_bytes_expected:
logger.warning('Did not receive expected number of bytes')
continue
message_bytes.extend(remaining_bytes)
msg = None
if (package_type == ord('M')):
msg = MtrDataMessage(message_bytes)
elif package_type == ord('S'):
msg = MtrStatusMessage(message_bytes)
else:
logger.warning('Got unsupported package type %d', package_type)
continue
logger.info(
"Got message number %d (hex): %s",
len(messages) + 1, message_bytes.hex())
if not msg.is_checksum_valid():
logger.warning("Message has incorrect checksum")
continue
messages.append(msg)
return messages
class MtrStatusMessage:
def __init__(self, message_bytes):
self.message_bytes = message_bytes
def mtr_id(self):
return int.from_bytes(self.message_bytes[6:8], 'little')
def year(self):
return int.from_bytes(self.message_bytes[8:9], 'little')
def month(self):
return int.from_bytes(self.message_bytes[9:10], 'little')
def day(self):
return int.from_bytes(self.message_bytes[10:11], 'little')
def hours(self):
return int.from_bytes(self.message_bytes[11:12], 'little')
def minutes(self):
return int.from_bytes(self.message_bytes[12:13], 'little')
def seconds(self):
return int.from_bytes(self.message_bytes[13:14], 'little')
def milliseconds(self):
return int.from_bytes(self.message_bytes[14:16], 'little')
def battery_status(self):
return int.from_bytes(self.message_bytes[16:17], 'little')
# package number fields not supported (yet)
def is_checksum_valid(self):
checksum = int.from_bytes(self.message_bytes[57:58], 'little')
# calculate checksum for message bytes up until checksum
calculated_checksum = checksum_of(self.message_bytes[:57])
logger.debug(
"Calculated checksum %d, read %d",
calculated_checksum, checksum)
return checksum == calculated_checksum
class MtrDataMessage:
def __init__(self, message_bytes):
self.message_bytes = message_bytes
def mtr_id(self):
return int.from_bytes(self.message_bytes[6:8], 'little')
def year(self):
return int.from_bytes(self.message_bytes[8:9], 'little')
def month(self):
return int.from_bytes(self.message_bytes[9:10], 'little')
def day(self):
return int.from_bytes(self.message_bytes[10:11], 'little')
def hours(self):
return int.from_bytes(self.message_bytes[11:12], 'little')
def minutes(self):
return int.from_bytes(self.message_bytes[12:13], 'little')
def seconds(self):
return int.from_bytes(self.message_bytes[13:14], 'little')
def milliseconds(self):
return int.from_bytes(self.message_bytes[14:16], 'little')
def packet_num(self):
return int.from_bytes(self.message_bytes[16:20], 'little')
def card_id(self):
return int.from_bytes(self.message_bytes[20:23], 'little')
# product week (1 byte)
# product year (1 byte)
# ecard head checksum (1 byte)
def splits(self):
splits = []
splits_offset = 26
code_numbytes = 1
time_numbytes = 2
split_numbytes = code_numbytes + time_numbytes
for split_index in range(50):
code_offset = splits_offset + split_index * split_numbytes
time_offset = code_offset + code_numbytes
code = int.from_bytes(
self.message_bytes[code_offset:code_offset+code_numbytes],
'little')
time = int.from_bytes(
self.message_bytes[time_offset:time_offset+time_numbytes],
'little')
splits.append((code, time))
return splits
def ascii_string(self):
return self.message_bytes[176:232].decode('ascii')
def is_checksum_valid(self):
checksum = int.from_bytes(self.message_bytes[232:233], 'little')
# calculate checksum for message bytes up until checksum
calculated_checksum = checksum_of(self.message_bytes[:232])
logger.debug(
"Calculated checksum %d, read %d",
calculated_checksum, checksum)
return checksum == calculated_checksum

938
otime.py
View File

@ -1,938 +0,0 @@
from copy import copy
import datetime
import csv
import re
import json
import io
import xml.etree.ElementTree as ET
# from fpdf import FPDF
# The event object stores all the event data.
# A .otime file is more or less just a json dump of the Event object.
class Event:
def __init__(self, eventid, name, start_time=None, end_time=None,
organiser=None, courses=[], o_classes=[], runners=[],
card_dumps=[], fees=[]):
self.id = eventid
self.name = name
self.start_time = start_time
self.end_time = end_time
self.organiser = organiser
self.courses = courses
self.o_classes = o_classes
self.runners = runners
self.card_dumps = card_dumps
self.fees = fees
def add_course(self, *args):
for n in args:
self.courses.append(n)
def add_o_class(self, *args):
for n in args:
self.o_classes.append(n)
def add_runners(self, *args):
for n in args:
self.runners.append(n)
def add_fees(self, *args):
for n in args:
self.fees.append(n)
def import_xml_entries(self, xml_file):
self.add_runners(*runners_from_xml_entries(xml_file))
self.add_fees(*fees_from_xml_entries(xml_file))
def from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
event_el = root.find(f'./{url}Event')
event_id = int(event_el.find(f'./{url}Id').text)
name = event_el.find(f'./{url}Name').text
organiser = event_el.find(f'./{url}Organiser/{url}Name').text
start_ds = event_el.find(f'./{url}StartTime/{url}Date').text
start_ts = event_el.find(f'./{url}StartTime/{url}Time').text[:-1]
start_time = datetime.datetime.fromisoformat(f'{start_ds}T{start_ts}')
end_ds = event_el.find(f'./{url}EndTime/{url}Date').text
end_ts = event_el.find(f'./{url}EndTime/{url}Time').text[:-1]
end_time = datetime.datetime.fromisoformat(f'{end_ds}T{end_ts}')
runners = runners_from_xml_entries(xml_file)
fees = fees_from_xml_entries(xml_file)
return Event(event_id, name, organiser=organiser, runners=runners,
fees=fees, start_time=start_time, end_time=end_time)
def import_ttime_cnf(self, ttime_file):
self.add_course(*courses_from_ttime_conf(ttime_file))
if isinstance(ttime_file, io.TextIOBase):
ttime_file.seek(0)
self.add_o_class(*classes_from_ttime_conf(ttime_file, self.courses))
def import_ttime_db(self, ttime_file):
if type(ttime_file) == str:
f_list = ttime_file.splitlines()
elif isinstance(ttime_file, io.TextIOBase):
csvreader = csv.reader(ttime_file, delimiter=';',)
runnerarray = []
for row in f_list:
if len(row) == 0 or row[1] == '':
continue
runnerarray.append(Runner.from_string(row, self.o_classes))
self.runners = runnerarray
def import_mtr_file(self, mtr_file):
self.card_dumps = CardDump.list_from_mtr_f(mtr_file)
def match_runners_cards(self):
for r in self.runners:
for d in self.card_dumps:
if r.card == d.card:
r.card_r = d
def match_runners_o_classes(self):
for r in self.runners:
for c in self.o_classes:
if r.o_class_str == c.name:
r.o_class = c
def match_o_classes_courses(self):
for oc in self.o_classes:
for c in self.courses:
if oc.course_str == c.name:
oc.course = c
def match_runners_fees(self):
for r in self.runners:
for f in self.fees:
if r.fee_id == f.id:
r.fee = f
def match_all(self):
self.match_runners_cards()
self.match_runners_o_classes()
self.match_o_classes_courses()
self.match_runners_fees()
def get_xml_res(self):
root = ET.Element('ResultList')
root.set('xmlns', 'http://www.orienteering.org/datastandard/3.0')
root.set('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance')
root.set('iofVersion', '3.0')
root.set('createTime', datetime.datetime.now().isoformat(timespec='seconds'))
root.set('creator', 'oTime')
root.set('status', 'Complete')
tree = ET.ElementTree(root)
event = ET.SubElement(root, 'Event')
xml_child(event, 'Id', self.id)
xml_child(event, 'Name', self.name)
for i in self.o_classes:
print('Hmmmmmm')
# <ClassResult>
class_result = ET.SubElement(root, 'ClassResult')
# <Class>
t = ET.SubElement(class_result, 'Class')
xml_child(t, 'Name', i.name)
# <PersonResult>
runners_same_c = get_runners_in_class(self.runners, i)
runners_ranked = rank_runners(runners_same_c, i)
# Put the OK runners first and Active last
runners_sorted = [i for i in runners_same_c if i not in runners_ranked]
runners_ranked.extend(runners_sorted)
for n in runners_ranked:
if n.status() == 'Active':
continue
person_result = ET.SubElement(class_result, 'PersonResult')
# <Person>
person = ET.SubElement(person_result, 'Person')
xml_child(person, 'Id', n.id)
# <Name>
name = ET.SubElement(person, 'Name')
xml_child(name, 'Family', n.last)
xml_child(name, 'Given', n.first)
# </Name>
# </Person>
# <Organisation>
org = ET.SubElement(person_result, 'Organisation')
xml_child(org, 'Id', n.club_id)
xml_child(org, 'Name', n.club)
country = ET.SubElement(org, 'Country')
# TODO: hent land fra løperobjektet
country.text = 'Norway'
country.set('code', 'NOR')
# </Organisation>
# <Result>
result = ET.SubElement(person_result, 'Result')
# TODO: Dette bør skrives om til å bruke Runner metoder så mye som mulig.
if hasattr(n, 'card_r') and len(n.card_r.splits) > 2:
xml_child(result, 'StartTime', n.card_r.s_time.isoformat())
xml_child(result, 'FinishTime', n.card_r.f_time.isoformat())
xml_child(result, 'Time', n.totaltime())
if n.status() == 'OK':
# <TimeBehind>
xml_child(result, 'TimeBehind', n.totaltime() - runners_ranked[0].totaltime())
# </TimeBehind>
xml_child(result, 'Position', n.rank(self.runners))
xml_child(result, 'Status', n.status())
# <SplitTime>
# TODO: ta utgangspunkt i løypa, ikke det brikka har stempla
for code, split in zip(n.card_r.controls, n.card_r.splits):
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
xml_child(st, 'Time', split)
if code == n.res_codes()[-1]:
break
# </SplitTime>
elif n.status() == 'Disqualified':
xml_child(result, 'Status', n.status())
for code, split in zip(n.res_codes(), n.res_splits()):
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
if split is not None:
xml_child(st, 'Time', split)
else:
xml_child(result, 'Status', n.status())
else:
xml_child(result, 'Status', n.status())
# </Result>
# </PersonResult>
# </Class>
ET.indent(root, space=' ', level=0)
return tree
def create_json_file(self):
rdicts = []
for runner in self.runners:
rdicts.append(runner.asdict())
cdicts = []
for course in self.courses:
cdicts.append(course.asdict())
ocdicts = []
for o_class in self.o_classes:
ocdicts.append(o_class.asdict())
ddicts = []
for dump in self.card_dumps:
ddicts.append(dump.asdict())
fdicts = []
for fee in self.fees:
fdicts.append(fee.asdict())
json_data = {
'id': self.id,
'name': self.name,
'orginser': self.organiser,
'start_time': self.start_time.isoformat(),
'end_time': self.end_time.isoformat(),
'runners': rdicts,
'courses': cdicts,
'o_classes': ocdicts,
'card_dumps': ddicts,
'fees': fdicts
}
return json.dumps(json_data, sort_keys=True, indent=4)
# Get event object from .otime json file
def from_json(f):
data = json.load(f)
runners = []
for r in data['runners']:
runners.append(Runner(r['id'], r['first'], r['last'], club_id=r['club_id'],
club=r['club'], country=r['country'], card=r['card'],
o_class_str=r['o_class_str'], fork=r['fork'],
start_time=r['start_time'], fee_id=int(r['fee_id'])))
courses = []
for c in data['courses']:
courses.append(Course(c['name'], c['codes'], forked=c['forked'],
variations=c['variations']))
o_classes = []
for c in data['o_classes']:
o_classes.append(OClass(c['name'], c['course_str'], None))
card_dumps = []
for d in data['card_dumps']:
card_dumps.append(CardDump(d['card'], d['controls'], d['splits'],
datetime.datetime.fromisoformat(d['read_time']),
datetime.datetime.fromisoformat(d['s_time']),
datetime.datetime.fromisoformat(d['f_time'])))
fees = []
for f in data['fees']:
fees.append(Fee(f['id'], f['name'], f['currency'], f['amount'],
from_birth_date=f['from_birth_date'],
to_birth_date=f['to_birth_date']))
return Event(data['id'], data['name'], organiser=data['orginiser'],
start_time=datetime.datetime.fromisoformat(data['start_time']),
end_time=datetime.datetime.fromisoformat(data['end_time']),
runners=runners, courses=courses, o_classes=o_classes,
card_dumps=card_dumps, fees=fees)
def create_start_list_pdf(self, file_name):
pdf = FPDF()
pdf.add_page()
pdf.add_font("LiberationSans", fname="data/fonts/LiberationSans-Regular.ttf")
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 2
col_width = pdf.epw / 4 # distribute content evenly
for runner in self.runners:
pdf.multi_cell(col_width, line_height, runner.fullname(), border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.o_class_str, border=1, ln=3, max_line_height=pdf.font_size)
pdf.multi_cell(col_width, line_height, str(runner.card), border=1, ln=3, max_line_height=pdf.font_size)
if runner.start_time is not None:
pdf.multi_cell(col_width, line_height, str(runner.start_time), border=1, ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', border=1, ln=3, max_line_height=pdf.font_size)
pdf.ln(line_height)
pdf.output(file_name)
def create_all_invoices(self, filename_prefix):
clubs = [x.club for x in self.runners if x.club != self.runners[self.runners.index(x)-1].club and x.club is not None]
for club in clubs:
self.create_club_invoice(club, filename_prefix + club + '.pdf')
def create_club_invoice(self, club, file_name):
# Get only runners in specified club
runners_ic = [x for x in self.runners if x.club == club]
payments = [x.fee.amount for x in runners_ic]
subtotal = sum(payments)
# Dict of runners in each fee
fee_dict = {}
for fee in self.fees:
fee_dict.update({fee.name: [x for x in runners_ic if x.fee.name == fee.name]})
if len(fee_dict[fee.name]) == 0:
fee_dict.pop(fee.name)
pdf = PDF()
pdf.set_title(f'Faktura {self.name} {club}')
pdf.set_producer('oTime 0.0.1')
pdf.set_creator('oTime 0.0.1')
pdf.set_creation_date()
pdf.add_page()
pdf.add_font("LiberationSans", fname="data/fonts/LiberationSans-Regular.ttf")
pdf.add_font("LiberationSans-Bold", fname="data/fonts/LiberationSans-Bold.ttf")
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
# Topp venstre:
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(pdf.epw / 2, line_height, self.name, align='L')
pdf.ln(0.2)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(pdf.epw / 2, line_height, self.organiser, align='L')
pdf.ln(14)
pdf.multi_cell(pdf.epw / 2, line_height, club, align='L')
pdf.ln()
# Topp høyre:
pdf.set_xy(-pdf.epw / 3, 10)
pdf.set_font("LiberationSans-Bold", size=20)
pdf.multi_cell(pdf.epw, line_height, 'Faktura', align='L')
pdf.set_xy(-pdf.epw / 3, 20)
# Dato
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Dato:', align='L')
pdf.set_xy(-pdf.epw / 3, 20)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, datetime.date.today().strftime('%d.%m.%Y'), align='R')
# Nummer
pdf.set_xy(-pdf.epw / 3, 20 + line_height)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Nummer:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height)
pdf.multi_cell(0, line_height, '1', align='R')
# Kundeid
pdf.set_xy(-pdf.epw / 3, 20 + line_height*2)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Kundeid:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height*2)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, '123', align='R')
# Forfall
pdf.set_xy(-pdf.epw / 3, 20 + line_height*3)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Forfall:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height*3)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, datetime.date.today().strftime('%d.08.%Y'), align='R')
pdf.set_xy(-pdf.epw, 20 + line_height*5)
pdf.set_font("LiberationSans-Bold", size=10)
date = self.start_time.strftime('%d.%m.%Y')
pdf.multi_cell(0, line_height, f'Kontingentliste {self.name} dato: {date}', align='R')
pdf.ln()
pdf.set_font("LiberationSans", size=10)
# Tabell
line_height = pdf.font_size * 2
col_width = pdf.epw / 8 # distribute content evenly
# Top row
pdf.set_fill_color(191, 191, 191)
pdf.set_draw_color(191, 191, 191)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(col_width, line_height, 'Startnr', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width*2, line_height, 'Navn', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Klasse', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Brikke', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
# pdf.multi_cell(col_width, line_height, 'Starttid', border=1, ln=3,max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Resultat', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Plass', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Kontigent', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.ln()
pdf.set_draw_color(0, 0, 0)
for runners in fee_dict.values():
pdf.set_font("LiberationSans-Bold", size=11)
pdf.multi_cell(len(runners[0].fee.name)*2.3, pdf.font_size * 1.1, runners[0].fee.name, border='B', align='L')
pdf.set_font("LiberationSans", size=8)
line_height = pdf.font_size * 1.6
pdf.ln()
for runner in runners:
pdf.multi_cell(col_width, line_height, runner.id, ln=3, max_line_height=pdf.font_size, align='L') # Start Number
pdf.multi_cell(col_width*2, line_height, f'{runner.last}, {runner.first}', ln=3, max_line_height=pdf.font_size, align='L') # Name
pdf.multi_cell(col_width, line_height, runner.o_class_str, ln=3, max_line_height=pdf.font_size, align='L') # Class
pdf.multi_cell(col_width, line_height, str(runner.card), ln=3, max_line_height=pdf.font_size) # card
# Starttime:
#if runner.start_time != None:
# pdf.multi_cell(col_width, line_height, str(runner.start_time), ln=3, max_line_height=pdf.font_size)
#else:
# pdf.multi_cell(col_width, line_height, 'Fristart', ln=3, max_line_height=pdf.font_size)
# Time used:
if runner.status() == 'OK':
pdf.multi_cell(col_width, line_height, str(datetime.timedelta(seconds=runner.totaltime())), ln=3, max_line_height=pdf.font_size)
elif runner.status() == 'Disqualified':
pdf.multi_cell(col_width, line_height, 'DSQ', ln=3, max_line_height=pdf.font_size)
elif runner.status() == 'Active':
pdf.multi_cell(col_width, line_height, 'DNS', ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, runner.status(), ln=3, max_line_height=pdf.font_size)
# Rank:
if runner.status() == 'OK':
pdf.multi_cell(col_width, line_height, str(runner.rank(self.runners)) + '.', ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', ln=3, max_line_height=pdf.font_size)
pdf.multi_cell(col_width, line_height, str(runner.fee.amount), ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln(line_height)
pdf.set_draw_color(0, 0, 0)
# sum
pdf.set_font("LiberationSans-Bold", size=10)
pdf.set_x(col_width*8)
pdf.cell(0, line_height, 'Sum ' + str(subtotal), border='TB', align='R')
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
pdf.ln(20)
pdf.multi_cell(0, line_height, 'Antall løpere ' + str(len(runners_ic)), ln=3, max_line_height=pdf.font_size, align='L')
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Total sum', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, str(subtotal), ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln()
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Betalt', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, '0', ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln()
pdf.set_font("LiberationSans-Bold", size=10)
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Skyldig', border='B', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, str(subtotal), border='B',ln=3, max_line_height=pdf.font_size, align='R')
pdf.output(file_name)
"""
class PDF(FPDF):
def footer(self):
self.set_y(-15)
self.set_font("LiberationSans", size=10)
self.set_fill_color(191, 191, 191)
self.set_draw_color(191, 191, 191)
col_width = self.epw / 3
self.cell(col_width, 7, 'oTime', border=1, align='L', fill=True)
self.cell(col_width, 7, datetime.datetime.now().strftime('%d.%m.%Y %H:%M:%S'), border=1, align='C', fill=True)
self.cell(col_width, 7, f"Side {self.page_no()} av {{nb}}", border=1, align='R', fill=True)
"""
# The runner object stores all the data specific to a runner.
class Runner:
def __init__(self, runner_id, first, last, club=None, club_id=None,
country=None, card=None, o_class_str=None, o_class=None,
fork=0, start_time=None, fee_id=None, fee=None):
self.id = runner_id
self.first = first
self.last = last
self.club = club
self.club_id = club_id
self.country = country
self.card = card
self.o_class_str = o_class_str
self.o_class = o_class
self.fork = fork
self.start_time = start_time
self.fee_id = fee_id
self.fee = fee
def from_string(tt_line, o_classes):
#https://web.archive.org/web/20191229124046/http://wiki.ttime.no/index.php/Developer
eventorid = tt_line[0]
country = ''
name = tt_line[2].split(',')
try:
first = name[1].strip()
except:
first = ''
last = name[0]
try:
club = tt_line[4]
except:
club = "None"
try:
card = int(tt_line[6])
except:
card = 0
runner_o_class = None
try:
raw_class_str = tt_line[3]
except:
# VELDIG MIDLERTIDIG
runner_o_class = None
else:
if raw_class_str != '':
for i in o_classes:
if i.name == raw_class_str:
runner_o_class = i
break
else:
runner_o_class = None
# TODO: Gjør sånn at den lager nye o klasser om den ikke finnes fra før
options = tt_line[5].split(',')
try:
club_id = options[options.index('A')+3]
except:
club_id = 0
try:
start_time = options[options.index('U')+1]
except:
start_time = None
return Runner(eventorid, first, last, club=club, club_id=club_id,
country=country, card=card, o_class_str=raw_class_str,
o_class=runner_o_class, start_time=start_time)
def fullname(self):
return '{} {}'.format(self.first, self.last)
def check_codes(self):
return contains(self.res_codes(), self.card_r.controls)
def totaltime(self):
f_control = self.res_codes()[-1]
try:
index = self.card_r.controls.index(f_control)
return self.card_r.splits[index]
except:
return 0
def status(self):
if hasattr(self, 'card_r') is False or self.o_class is None:
return 'Active'
elif self.check_codes():
return 'OK'
elif self.check_codes() is False:
return 'Disqualified'
# TODO: må forbedres
def rank(self, allrunners):
c_ranked = rank_runners(allrunners, self.o_class)
try:
return c_ranked.index(self) + 1
except ValueError:
return None
def res_codes(self):
if self.o_class.course.forked is False:
return self.o_class.course.codes
else:
return self.o_class.course.variations[self.fork]
# TODO: Mange bugs med løyper som har samme post flere ganger
# Used for making result files and tables
def res_splits(self):
if self.status() == 'OK':
splits_cpy = self.card_r.splits.copy()
for control in self.card_r.controls:
if control not in self.res_codes():
index = self.card_r.controls.index(control)
split = self.card_r.splits[index]
splits_cpy.remove(split)
return splits_cpy
else:
splits_cpy = self.card_r.splits.copy()
for control in self.card_r.controls:
if control not in self.res_codes():
index = self.card_r.controls.index(control)
split = self.card_r.splits[index]
splits_cpy.remove(split)
punches = self.card_r.controls.copy()
splits = []
for code in self.res_codes():
if punches[0] == code:
splits.append(splits_cpy[0])
splits_cpy.pop(0)
punches.pop(0)
continue
else:
splits.append(None)
return splits
def asdict(self):
return {
'id': self.id,
'first': self.first,
'last': self.last,
'club_id': self.club_id,
'club': self.club,
'country': self.country,
'card': self.card,
'o_class_str': self.o_class_str,
'fork' : self.fork,
'start_time': self.start_time,
'fee_id': self.fee_id
}
class CardDump:
def __init__(self, card, controls, splits, read_time, s_time, f_time):
self.card = card
self.controls = controls
self.splits = splits
self.read_time = read_time
self.s_time = s_time
self.f_time = f_time
def __repr__(self):
return f'card({self.card}) controls({self.controls}) splits({self.splits})'
def from_mtr_bytes(datamsg):
card = int.from_bytes(datamsg[20:23], 'little')
#Extract codes and splits:
controls = []
splits = []
splits_offset = 26
code_numbytes = 1
time_numbytes = 2
split_numbytes = code_numbytes + time_numbytes
for split_index in range(50):
code_offset = splits_offset + split_index * split_numbytes
time_offset = code_offset + code_numbytes
code = int.from_bytes(datamsg[code_offset:code_offset+code_numbytes], 'little')
time = int.from_bytes(datamsg[time_offset:time_offset+time_numbytes], 'little')
if code != 0:
controls.append(code)
splits.append(time)
# Extract start time:
year = int.from_bytes(datamsg[8:9], 'little')
month = int.from_bytes(datamsg[9:10], 'little')
day = int.from_bytes(datamsg[10:11], 'little')
hours = int.from_bytes(datamsg[11:12], 'little')
minutes = int.from_bytes(datamsg[12:13], 'little')
seconds = int.from_bytes(datamsg[13:14], 'little')
milliseconds = int.from_bytes(datamsg[14:16], 'little')
read_time = datetime.datetime(year, month, day, hours, minutes, seconds, milliseconds)
if len(controls) > 2:
s_time = read_time - datetime.timedelta(seconds=splits[-1])
f_time = read_time - (datetime.timedelta(seconds=splits[-1]) + datetime.timedelta(seconds=splits[-2]))
else:
s_time = read_time
f_time = read_time
return(CardDump(card, controls, splits, read_time, s_time, f_time))
def list_from_mtr_f(mtr_f):
if type(mtr_f) == str:
f_list = mtr_f.splitlines()
rows = []
cards = []
# hver rad er brikkenummer med tilhørende info
csvreader = csv.reader(f_list)
for row in csvreader:
if len(row) == 0:
continue
rows.append(row)
controls = []
splits = []
# postkodene kommer på oddetall fra og med den 11. De blir hevet inn i controls
for item in row[11::2]:
if item == '250':
controls.append(int(item))
break
elif item == '000':
break
else:
controls.append(int(item))
# strekktidene kommer på partall fra og med den 12. De blir hevet i splits.
for item in row[12::2]:
if item == '00000':
break
else:
splits.append(int(item))
# looper gjonnom løperobjektene og legger til poster og strekktider + start og sluttid
# usikker på om dette er riktig klokeslett
tl = row[5].split(' ')
tl[0] = tl[0].split('.')
tl[0][2] = '20' + tl[0][2]
tl[0] = list(map(int, tl[0]))
tl[1] = tl[1].split(':')
tl[1][2] = float(tl[1][2])
tl[1] = list(map(int, tl[1]))
read_time = datetime.datetime(tl[0][2], tl[0][1], tl[0][0], tl[1][0], tl[1][1], tl[1][2])
if len(controls) > 2 and len(splits) > 2:
s_time = read_time - datetime.timedelta(seconds=splits[-1])
f_time = read_time - (datetime.timedelta(seconds=splits[-1]) + datetime.timedelta(seconds=splits[-2]))
else:
s_time = read_time
f_time = read_time
cards.append(CardDump(int(row[6]), controls, splits, read_time, s_time, f_time))
return cards
def asdict(self):
return {
'card': self.card,
'controls': self.controls,
'splits': self.splits,
'read_time': self.read_time.isoformat(),
's_time': self.s_time.isoformat(),
'f_time': self.f_time.isoformat()
}
# Stored in Event.courses
class Course:
def __init__(self, name, codes, forked=False, variations=None):
self.name = name
self.codes = codes
self.forked = forked
self.variations = variations
def __repr__(self):
return f'name({self.name})'
def asdict(self):
return {
'name': self.name,
'codes': self.codes,
'forked': self.forked,
'variations': self.variations
}
# Stored in Event.o_classes
class OClass:
def __init__(self, name, course_str, course):
self.name = name
self.course_str = course_str
self.course = course
def __repr__(self):
return f'name({self.name})'
def asdict(self):
return {
'name': self.name,
'course_str': self.course_str
}
class Fee:
def __init__(self, fee_id, name, currency, amount, from_birth_date=None,
to_birth_date=None):
self.id = fee_id
self.name = name
self.currency = currency
self.amount = amount
self.from_birth_date = from_birth_date
self.to_birth_date = to_birth_date
def asdict(self):
return {
'id': self.id,
'name': self.name,
'currency': self.currency,
'amount': self.amount,
'from_birth_date': self.from_birth_date,
'to_birth_date': self.to_birth_date
}
# TODO: Take string instead of file.
def courses_from_ttime_conf(ttime_file):
if type(ttime_file) == str:
conf = ttime_file.splitlines()
elif isinstance(ttime_file, io.TextIOBase):
conf = ttime_file.readlines()
courses = []
for line in conf:
if '-codes' in line:
code_list = re.search(r'(?<=\")(.*?)(?=\")', line).group().split(';')
loops = 0
for n in code_list:
n = n.split(',')
loops += 1
n = list(map(int, n))
courses.append(Course('course_'+str(loops), n))
return courses
def classes_from_ttime_conf(ttime_file, courses):
if type(ttime_file) == str:
conf = ttime_file.splitlines()
elif isinstance(ttime_file, io.TextIOBase):
conf = ttime_file.readlines()
o_classes = []
for line in conf:
if '-courses' in line:
raw_courselist = re.search(r'(?<=\")(.*?)(?=\")', line).group().split(';')
loops = 0
for n in raw_courselist:
split = n.split(',')
for i in split:
o_classes.append(OClass(i, courses[loops].name, courses[loops]))
loops += 1
return o_classes
def runners_from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
runners = []
person_entries = root.findall(f'./{url}PersonEntry')
for p_entry in person_entries:
rid = p_entry[1][0].text
person = p_entry.find(f'./{url}Person')
name = person.find(f'./{url}Name')
first = name.find(f'./{url}Given').text
last = name.find(f'./{url}Family').text
organisation = p_entry.find(f'./{url}Organisation')
if organisation is not None:
club_id = organisation.find(f'./{url}Id').text
club_name = organisation.find(f'./{url}Name').text
club_name_short = organisation.find(f'./{url}ShortName').text
country = organisation.find(f'./{url}Country').attrib['code']
else:
club_id = club_name = club_name_short = country = None
class_el = p_entry.find(f'./{url}Class')
class_str = class_el.find(f'./{url}Name').text
fee_id = int(p_entry.find(f'./{url}AssignedFee/{url}Fee/{url}Id').text)
try:
card = int(p_entry.find(f'./{url}ControlCard').text)
except AttributeError:
card = None
start_time = None
runners.append(Runner(rid, first, last, club=club_name, club_id=club_id,
country=country,card=card, o_class_str=class_str,
start_time=start_time, fee_id=fee_id))
return runners
def fees_from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
allfees = root.findall(f'.//{url}Fee')
added_ids = []
fee_objs = []
for fee in allfees:
f_id = int(fee.find(f'./{url}Id').text)
if f_id not in added_ids:
added_ids.append(f_id)
fee_id = f_id
name = fee.find(f'./{url}Name').text
currency = fee.find(f'./{url}Amount').attrib['currency']
amount = int(fee.find(f'./{url}Amount').text)
try:
from_birth_date = fee.find(f'./{url}FromDateOfBirth').text
except AttributeError:
from_birth_date = None
try:
to_birth_date = fee.find(f'./{url}ToDateOfBirth').text
except AttributeError:
to_birth_date = None
fee_objs.append(Fee(fee_id, name, currency, amount,
from_birth_date=from_birth_date, to_birth_date=to_birth_date))
return fee_objs
# Checks if small list is in big list
def contains(small, big):
valid = True
mark = 0
map_bl = []
for i in small:
for n, control in enumerate(big[mark:]):
if i == control:
mark += n
map_bl.append(mark)
break
else:
valid = False
if valid:
return map_bl
else:
return False
def get_runners_in_class(runners, o_class):
# Filters out runner objects that dont have the correct o_class
list_filtrd = []
for i in runners:
if i.o_class == o_class:
list_filtrd.append(i)
return list_filtrd
def rank_runners(allrunners, o_class):
runners = get_runners_in_class(allrunners, o_class)
runners_ranked = []
for i in runners:
if i.status() == 'OK':
runners_ranked.append(i)
runners_ranked.sort(key=lambda x: x.totaltime())
return runners_ranked
# Used to make creating xml files easier
def xml_child(parent, tag, content):
e = ET.SubElement(parent, tag)
e.text = str(content)

2
otime/__main__.py Normal file
View File

@ -0,0 +1,2 @@
from cli import main
main()

178
otime/cli.py Normal file
View File

@ -0,0 +1,178 @@
import argparse
import file_io
import datetime
import iof_xml
import serial
import subprocess
import os
import otime
import iof_xml
import pdf
from pdf import format_m_s
from rich import print
import search_tui
from rich.traceback import install
from rich import inspect
install(show_locals=True)
# Main entrypoint for now. Cli with two options; init will make the files needed and run will start the program from the specified directory
def main():
parser = argparse.ArgumentParser(description='Otime very alpha version 😁')
subparsers = parser.add_subparsers(dest='command')
parser_init = subparsers.add_parser('init', help='Create project files')
parser_init.add_argument('--entries', required=True, dest='entries_file', action='store', default='./',
help='The xml file with entries')
parser_init.add_argument('--courses', required=True, dest='courses_file', action='store', default='./',
help='The xml with courses')
parser_init.add_argument('--dir', required=False, dest='dir', action='store', default='./',
help='Specify a directort, if not set the files are created in the current directory')
parser_init = subparsers.add_parser('run', help='run otime')
parser_init.add_argument('--dir', required=False, dest='dir', action='store', default='./', help='specify a directory')
parser_init.add_argument('--port', required=False, dest='port', action='store', help='specify a serial port')
parser_init.add_argument('--xml', required=False, dest='xml_path', action='store', default=None, help='Where the xml result file should be saved')
parser_init = subparsers.add_parser('gen', help='Generate result files')
parser_init.add_argument('--dir', required=False, dest='dir', action='store', default='./', help='specify a directory')
parser_init.add_argument('--xml', required=False, dest='xml_path', action='store', default=None, help='Where the xml result file should be saved')
parser_init = subparsers.add_parser('view', help='View otime data')
parser_init.add_argument('--dir', required=False, dest='dir', action='store', default='./', help='specify a directory')
parser_init.add_argument('--xml', required=False, dest='xml_path', action='store', default=None, help='Where the xml result file should be saved')
parser_init = subparsers.add_parser('mtr', help='run mtr commands')
parser_init.add_argument('--port', required=True, dest='port', action='store', help='specify a serial port')
parser_init.add_argument('--spool', required=False, dest='mtr_spool', action='store_true', help='Spool all mtr data')
parser_init.add_argument('--status', required=False, dest='mtr_status', action='store_true', help='Spool all mtr data')
args = parser.parse_args()
try:
if not args.xml_path:
args.xml_path = args.dir + '/output'
except AttributeError:
pass
match args.command:
case 'init':
init_dir(args.dir, args.entries_file, args.courses_file)
case 'run':
run(args.port, args.dir, args.xml_path)
case 'view':
search_tui.main(args.dir)
case 'gen':
gen(args.dir, args.xml_path)
case 'mtr':
mtr = serial.Serial(port=args.port, baudrate=9600, timeout=40)
if args.mtr_spool:
mtr.write(b'/SA')
if args.mtr_status:
mtr.write(b'/ST')
case other:
parser.print_help()
def init_dir(project_dir, entries_xml_file, courses_xml_file):
# Lager mappe med en config fil, en csv fil med løpere og en fil med mtr data
csv_db_path = project_dir + '/runners.csv'
config_path = project_dir + '/config.yaml'
mtr_path = project_dir + 'mtr.yaml'
event = iof_xml.event_from_xml_entries(entries_xml_file)
event.courses = iof_xml.courses_from_xml(courses_xml_file)
print(f'Read {len(event.runners)} runners, {len(event.card_dumps)} ecards, {len(event.courses)} courses and {len(event.o_classes)} classes')
print('Remember to manually link the courses and classes in the config file')
file_io.write_runners_csv(event, csv_db_path)
file_io.write_config(event, config_path)
file_io.write_card_dumps(event, mtr_path)
os.makedirs(project_dir+'/output')
subprocess.run(['git', 'init', project_dir])
subprocess.run(['git', 'add', './*'], cwd=project_dir)
subprocess.run(['git', 'commit', '-m', f'Project initiated by otime'], cwd=project_dir)
def run(port='/dev/ttyUSB0', project_dir='./', xml_path='./output/'):
mtr = serial.Serial(port=port, baudrate=9600, timeout=40)
config_path = project_dir + '/config.yaml'
mtr_path = project_dir + '/mtr.yaml'
csv_path = project_dir + '/runners.csv'
while True:
if mtr.in_waiting > 0:
block = mtr.read_until(expected=b'\xFF\xFF\xFF\xFF')
size = block[0]
if size == 230:
event = file_io.event_from_yaml_and_csv(config_path, mtr_path, csv_path)
message = b'\xFF\xFF\xFF\xFF' + block[:230]
if not is_checksum_valid(message):
print('[red]Checksum is not valid![red]')
try:
print(otime.CardDump.from_mtr_bytes(message))
print(runner_info(event, card_dump))
except Exception as error:
print(error)
else:
card_dump = otime.CardDump.from_mtr_bytes(message)
event.card_dumps.append(card_dump)
file_io.write_card_dumps(event, mtr_path)
print(runner_info(event, card_dump))
subprocess.run(['git', 'add', './*'], cwd=project_dir, stdout=subprocess.DEVNULL)
subprocess.run(['git', 'commit', '-m', f'Added {card_dump.card}'], cwd=project_dir, stdout=subprocess.DEVNULL)
iof_xml.create_result_file(event, xml_path + '/results.xml')
pdf.create_result_list(event, project_dir + '/output/results.pdf')
elif size == 55:
message = b'\xFF\xFF\xFF\xFF' + block[:55]
mtr_id = int.from_bytes(message[6:8], 'little')
year = int.from_bytes(message[8:9], 'little')
month = int.from_bytes(message[9:10], 'little')
day = int.from_bytes(message[10:11], 'little')
hours =int.from_bytes(message[11:12], 'little')
minutes = int.from_bytes(message[12:13], 'little')
seconds = int.from_bytes(message[13:14], 'little')
milliseconds =int.from_bytes(message[14:16], 'little')
battery_status = int.from_bytes(message[16:17], 'little')
time = datetime.datetime(year, month, day, hours, minutes, seconds, milliseconds)
print(f'MTR status message: id: {mtr_id}, time: {time}, battery: {battery_status}')
else:
print('Data not found!')
print(block)
def gen(project_dir='./', xml_path='./output/'):
config_path = project_dir + '/config.yaml'
mtr_path = project_dir + '/mtr.yaml'
csv_path = project_dir + '/runners.csv'
event = file_io.event_from_yaml_and_csv(config_path, mtr_path, csv_path)
subprocess.run(['git', 'add', './*'], cwd=project_dir, stdout=subprocess.DEVNULL)
subprocess.run(['git', 'commit', '-m', f'Manually run'], cwd=project_dir, stdout=subprocess.DEVNULL)
iof_xml.create_result_file(event, xml_path + '/results.xml')
pdf.create_result_list(event, project_dir + '/output/results.pdf')
def runner_info(event, card_dump):
runner = next((i for i in event.runners if str(i.card_id) == str(card_dump.card)), None)
if runner is None:
return f'[orange_red1]No runner with ecard {card_dump.card}! It matches these courses: {otime.find_courses_matching_controls(card_dump.controls, event.courses)}[/orange_red1] {card_dump}'
result = event.get_runner_result(runner.id)
if result is None:
return '🧐 Dette skal ikke skje...'
if result.status == 'OK':
result_text = f'[green]Place: {result.place}. Time: [bold][yellow]{format_m_s(result.total_time)}[/yellow][/bold][/green]'
elif result.status == 'MissingPunch':
result_text = f'[red]Missed control(s): {result.missed_controls}! Time: [bold][yellow]{format_m_s(result.total_time)}[/yellow][/bold][/red]'
else:
result_text = f'[blue]{result.status}, Time: [bold][yellow]{result.total_time}[/yellow][/bold][/blue]'
return result_text + f' [blue]{result.fullname()}[/blue], {result.o_class}, {result.club}, [italic]Card: {result.card_id}[/italic]'
def is_checksum_valid(message):
# Hentet fra https://github.com/knutsiem/mtr-log-extractor
checksum = int.from_bytes(message[232:233], 'little')
# calculate checksum for message bytes up until checksum
calculated_checksum = sum(message[:232]) % 256
return checksum == calculated_checksum
if __name__ == '__main__':
main()

55
otime/file_io.py Normal file
View File

@ -0,0 +1,55 @@
from yaml import load, dump
try:
from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
from yaml import Loader, Dumper
from copy import deepcopy
import otime
# Disse funksjonene er for å kunne lese og skrive seperate config, mtr og databasefiler.
def write_config(event, file_path):
output_event = deepcopy(event)
output_event.runners = []
output_event.card_dumps = []
with open(file_path, 'w') as f:
dump(output_event, f)
def write_card_dumps(event, file_path):
card_dumps = deepcopy(event.card_dumps)
with open(file_path, 'w') as f:
dump(card_dumps, f)
def write_runners_csv(event, file_path):
with open(file_path, 'w') as f:
f.write('ID;Status;Fornavn, Etternavn;Klasse;klubb;Brikke;Gafling;Starttid\n')
for i in event.runners:
f.write(f'{i.id};{i.status_override};{i.first}, {i.last};{i.o_class};{i.club};{i.card_id};{i.fork};{i.start_time}\n')
def event_from_yaml_and_csv(config_path, mtr_path, csv_path):
try:
with open(mtr_path, 'r') as f:
card_dumps = load(f, Loader=Loader)
except FileNotFoundError:
card_dumps=[]
with open(config_path, 'r') as f:
event = load(f, Loader=Loader)
with open(csv_path, 'r') as f:
data = [i.split(';') for i in f.readlines()]
data.pop(0)
for i in data: i[2] = i[2].split(',')
for i in data:
# Setter starttid til None hvis den ikke er satt
if len(i[7]) > 8:
i[7] = i[7]
else:
i[7] = None
# Sjekk om brikkenummer er tomt
if i[5] == '':
i[5] = 0
runners = [otime.Runner(id=i[0], status_override=i[1], first=i[2][0], last=i[2][1].strip(), o_class=i[3], club=i[4], card_id=int(i[5]), fork=int(i[6]), start_time=i[7]) for i in data]
event.card_dumps = card_dumps
event.runners = runners
return event

212
otime/iof_xml.py Normal file
View File

@ -0,0 +1,212 @@
import datetime
import xml.etree.ElementTree as ET
import otime
def xml_child(parent, tag, content):
# Used to make creating xml files easier
e = ET.SubElement(parent, tag)
e.text = str(content)
def create_result_file(event, file_path, o_classes=[]):
results = event.get_result(o_classes)
root = ET.Element('ResultList')
root.set('xmlns', 'http://www.orienteering.org/datastandard/3.0')
root.set('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance')
root.set('iofVersion', '3.0')
root.set('createTime', datetime.datetime.now().isoformat(timespec='seconds'))
root.set('creator', 'oTime')
#root.set('status', 'Complete')
tree = ET.ElementTree(root)
xml_event = ET.SubElement(root, 'Event')
xml_child(xml_event, 'Id', event.id)
xml_child(xml_event, 'Name', event.name)
for i in results:
# <ClassResult>
class_result = ET.SubElement(root, 'ClassResult')
# <Class>
t = ET.SubElement(class_result, 'Class')
xml_child(t, 'Name', i.name)
# <PersonResult>
for n in i.runner_results:
if n.status == 'DidNotStart':
continue
person_result = ET.SubElement(class_result, 'PersonResult')
# <Person>
person = ET.SubElement(person_result, 'Person')
xml_child(person, 'Id', n.id)
# <Name>
name = ET.SubElement(person, 'Name')
xml_child(name, 'Family', n.last)
xml_child(name, 'Given', n.first)
# </Name>
# </Person>
# <Organisation>
org = ET.SubElement(person_result, 'Organisation')
xml_child(org, 'Id', n.club_id)
xml_child(org, 'Name', n.club)
country = ET.SubElement(org, 'Country')
# TODO: hent land fra løperobjektet
country.text = 'Norway'
country.set('code', 'NOR')
# </Organisation>
# <Result>
result = ET.SubElement(person_result, 'Result')
if n.status == 'OK' or n.status == 'MissingPunch':
xml_child(result, 'StartTime', n.start_time.isoformat())
xml_child(result, 'FinishTime', n.end_time.isoformat())
xml_child(result, 'Time', n.total_time)
if n.status == 'OK':
# <TimeBehind>
xml_child(result, 'TimeBehind', n.total_time - i.runner_results[0].total_time)
# </TimeBehind>
xml_child(result, 'Position', n.place)
xml_child(result, 'Status', n.status)
# <SplitTime>
# TODO: ta utgangspunkt i løypa, ikke det brikka har stempla
for code, split in zip(i.course.codes[n.fork][:-1], n.splits[:-1]):
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
xml_child(st, 'Time', split)
# </SplitTime>
elif n.status == 'MissingPunch':
xml_child(result, 'Status', n.status)
for code, split in zip(i.course.codes[n.fork][:-1], n.splits[:-1]):
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
if split != 0: xml_child(st, 'Time', split)
else:
xml_child(result, 'Status', n.status)
else:
xml_child(result, 'Status', n.status)
# </Result>
# </PersonResult>
# </Class>
ET.indent(root, space=' ', level=0)
tree.write(file_path)
def runners_from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
runners = []
person_entries = root.findall(f'./{url}PersonEntry')
for p_entry in person_entries:
rid = p_entry[1][0].text
person = p_entry.find(f'./{url}Person')
name = person.find(f'./{url}Name')
first = name.find(f'./{url}Given').text
last = name.find(f'./{url}Family').text
organisation = p_entry.find(f'./{url}Organisation')
if organisation is not None:
club_id = organisation.find(f'./{url}Id').text
club_name = organisation.find(f'./{url}Name').text
club_name_short = organisation.find(f'./{url}ShortName').text
country = organisation.find(f'./{url}Country').attrib['code']
else:
club_id = club_name = club_name_short = country = None
class_el = p_entry.find(f'./{url}Class')
class_str = class_el.find(f'./{url}Name').text
fee_id = int(p_entry.find(f'./{url}AssignedFee/{url}Fee/{url}Id').text)
try:
card = int(p_entry.find(f'./{url}ControlCard').text)
except AttributeError:
card = None
start_time = None
runners.append(otime.Runner(rid, first, last, club=club_name, club_id=club_id,
country=country,card_id=card, o_class=class_str,
start_time=start_time, fee_id=fee_id))
return runners
def fees_from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
allfees = root.findall(f'.//{url}Fee')
added_ids = []
fee_objs = []
for fee in allfees:
f_id = int(fee.find(f'./{url}Id').text)
if f_id not in added_ids:
added_ids.append(f_id)
fee_id = f_id
name = fee.find(f'./{url}Name').text
currency = fee.find(f'./{url}Amount').attrib['currency']
amount = int(fee.find(f'./{url}Amount').text)
try:
from_birth_date = fee.find(f'./{url}FromDateOfBirth').text
except AttributeError:
from_birth_date = None
try:
to_birth_date = fee.find(f'./{url}ToDateOfBirth').text
except AttributeError:
to_birth_date = None
fee_objs.append(otime.Fee(fee_id, name, currency, amount,
from_birth_date=from_birth_date, to_birth_date=to_birth_date))
return fee_objs
def courses_from_xml(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
allcourses = root.findall(f'.//{url}Course')
courseobjs = []
for c in allcourses:
name = c.find(f'./{url}Name').text
controls = []
allcontrols = c.findall(f'./{url}CourseControl')
for n in allcontrols:
controls.append(n.find(f'./{url}Control').text)
controls.remove('STA1')
controls.remove('FIN1')
controls = [int(l) for l in controls]
courseobjs.append(otime.Course(name, [controls]))
return courseobjs
def event_from_xml_entries(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
url = '{http://www.orienteering.org/datastandard/3.0}'
event_el = root.find(f'./{url}Event')
event_id = int(event_el.find(f'./{url}Id').text)
name = event_el.find(f'./{url}Name').text
organiser = event_el.find(f'./{url}Organiser/{url}Name').text
start_ds = event_el.find(f'./{url}StartTime/{url}Date').text
start_ts = event_el.find(f'./{url}StartTime/{url}Time').text[:-1]
start_time = datetime.datetime.fromisoformat(f'{start_ds}T{start_ts}')
end_ds = event_el.find(f'./{url}EndTime/{url}Date').text
end_ts = event_el.find(f'./{url}EndTime/{url}Time').text[:-1]
end_time = datetime.datetime.fromisoformat(f'{end_ds}T{end_ts}')
person_entries = root.findall(f'./{url}PersonEntry')
class_names = []
for p_entry in person_entries:
class_names.append(p_entry.find(f'./{url}Class/{url}Name').text)
o_classes = [otime.OClass(i, []) for i in set(class_names)]
runners = runners_from_xml_entries(xml_file)
# TODO: fiks fees
#fees = fees_from_xml_entries(xml_file)
fees = []
return otime.Event(event_id, name, organiser=organiser, runners=runners,
fees=fees, start_time=start_time, end_time=end_time, o_classes=o_classes)

473
otime/otime.py Normal file
View File

@ -0,0 +1,473 @@
import copy
import datetime
import re
import xml.etree.ElementTree as etree
class Runner:
def __init__(self, id: int, first: str, last: str, club=None, club_id=None,
country=None, card_id=None, o_class_str=None, o_class=None,
fork=0, start_time=None, fee_id=None, fee=None, status_override=''):
self.id = id
self.first = first
self.last = last
self.club = club
self.club_id = club_id
self.country = country
self.card_id = card_id
self.o_class = o_class
self.fork = fork
self.start_time = start_time
self.fee_id = fee_id
self.status_override = status_override
def __repr__(self):
return(f'name({self.fullname()})')
def from_ttime_string(ttime_db_line):
# Reads 1 line of a ttime db
#https://web.archive.org/web/20191229124046/http://wiki.ttime.no/index.php/Developer
runner_data = ttime_db_line.split(';')
eventorid = runner_data[0]
country = ''
name = runner_data[2].split(',')
try:
first = name[1].strip()
except:
first = ''
last = name[0]
try:
club = runner_data[4]
except:
club = ''
try:
card = int(runner_data[6])
except:
card = 0
try:
o_class = runner_data[3]
except:
o_class = ''
options = runner_data[5].split(',')
try:
club_id = options[options.index('A')+3]
except:
club_id = 0
try:
start_time = options[options.index('U')+1]
except:
start_time = None
return Runner(eventorid, first, last, club=club, club_id=club_id,
country=country, card_id=card, o_class=o_class, start_time=start_time)
def fullname(self):
return '{} {}'.format(self.first, self.last)
class CardDump:
def __init__(self, card, controls, splits, read_time, s_time, f_time):
self.card = card
self.controls = controls
self.splits = splits
self.read_time = read_time
self.s_time = s_time
self.f_time = f_time
def __repr__(self):
return f'card({self.card}) controls({self.controls}) splits({self.splits})'
def from_mtr_bytes(datamsg):
card = int.from_bytes(datamsg[20:23], 'little')
#Extract codes and splits:
controls = []
splits = []
splits_offset = 26
code_numbytes = 1
time_numbytes = 2
split_numbytes = code_numbytes + time_numbytes
for split_index in range(50):
code_offset = splits_offset + split_index * split_numbytes
time_offset = code_offset + code_numbytes
code = int.from_bytes(datamsg[code_offset:code_offset+code_numbytes], 'little')
time = int.from_bytes(datamsg[time_offset:time_offset+time_numbytes], 'little')
if code != 0:
controls.append(code)
splits.append(time)
# Extract start time:
year = 2000 + int.from_bytes(datamsg[8:9], 'little')
month = int.from_bytes(datamsg[9:10], 'little')
day = int.from_bytes(datamsg[10:11], 'little')
hours = int.from_bytes(datamsg[11:12], 'little')
minutes = int.from_bytes(datamsg[12:13], 'little')
seconds = int.from_bytes(datamsg[13:14], 'little')
milliseconds = int.from_bytes(datamsg[14:16], 'little')
read_time = datetime.datetime(year, month, day, hours, minutes, seconds, milliseconds)
if len(controls) > 2:
s_time = read_time - datetime.timedelta(seconds=splits[-1])
f_time = read_time - (datetime.timedelta(seconds=splits[-1]) + datetime.timedelta(seconds=splits[-2]))
else:
s_time = read_time
f_time = read_time
return(CardDump(card, controls, splits, read_time, s_time, f_time))
def list_from_mtr_f(mtr_file):
with open(mtr_file) as f:
data = [i.replace('"','').split(',') for i in f.readlines()]
cards = []
# hver rad er brikkenummer med tilhørende info
for row in data:
controls = []
splits = []
# postkodene kommer på oddetall fra og med den 11. De blir hevet inn i controls
for item in row[11::2]:
if item == '250':
controls.append(int(item))
break
elif item == '000':
break
else:
controls.append(int(item))
# strekktidene kommer på partall fra og med den 12. De blir hevet i splits.
for item in row[12::2]:
if item == '00000':
break
else:
splits.append(int(item))
# looper gjonnom løperobjektene og legger til poster og strekktider + start og sluttid
# usikker på om dette er riktig klokeslett
tl = row[5].split(' ')
tl[0] = tl[0].split('.')
tl[0][2] = '20' + tl[0][2]
tl[0] = list(map(int, tl[0]))
tl[1] = tl[1].split(':')
tl[1][2] = float(tl[1][2])
tl[1] = list(map(int, tl[1]))
read_time = datetime.datetime(tl[0][2], tl[0][1], tl[0][0], tl[1][0], tl[1][1], tl[1][2])
if len(controls) > 2 and len(splits) > 2:
s_time = read_time - datetime.timedelta(seconds=splits[-1])
f_time = read_time - (datetime.timedelta(seconds=splits[-1]) + datetime.timedelta(seconds=splits[-2]))
else:
s_time = read_time
f_time = read_time
# Remove mtr from splits:
if controls[-1] == 250:
controls.pop(-1)
splits.pop(-1)
cards.append(CardDump(int(row[6]), controls, splits, read_time, s_time, f_time))
return cards
# Stored in Event.courses
class Course:
def __init__(self, name, codes, forked=False):
self.name = name
# Codes is a list of courses
self.codes = codes
self.forked = forked
def __repr__(self):
return f'name({self.name})'
# Stored in Event.o_classes
class OClass:
def __init__(self, name, course):
self.name = name
self.course = course
def __repr__(self):
return f'name({self.name})'
class RunnerResult:
def __init__(self, runner_id: int, first: str, last: str, status: str, place: int, total_time: int, splits: list[int], end_time,
club=None, club_id=None, country=None, card_id=None, o_class=None, controls=None, fork=0, start_time=datetime.datetime(1973, 1, 1), fee_id=None, missed_controls=None, ran_other_course=None):
self.id = runner_id
self.first = first
self.last = last
self.club = club
self.club_id = club_id
self.country = country
self.card_id = card_id
self.o_class = o_class
self.controls = controls
self.fork = fork
self.start_time = start_time
self.fee_id = fee_id
self.status = status
self.place = place
self.total_time = total_time
self.splits = splits
self.end_time = end_time
# List of controls missed
self.missed_controls = missed_controls
# If the runner ran other course it is named here
self.ran_other_course = ran_other_course
def fullname(self):
return f'{self.first} {self.last}'
class ClassResult:
def __init__(self, name: str, course: Course, runner_results: list[RunnerResult]):
self.name = name
self.course = course
self.runner_results = runner_results
class Event:
def __init__(self, eventid=0, name=None, start_time=None, end_time=None,
organiser=None, courses=[], o_classes=[], runners=[],
card_dumps=[], fees=[]):
self.id = eventid
self.name = name
self.start_time = start_time
self.end_time = end_time
self.organiser = organiser
self.courses = courses
self.o_classes = o_classes
self.runners = runners
self.card_dumps = card_dumps
self.fees = fees
def __repr__(self):
return(f'id({self.id}), name({self.name}), organiser({self.organiser}), courses({self.courses}), o_classes({self.o_classes}), runners({self.runners})')
def add_course(self, *args):
for n in args:
self.courses.append(n)
def add_o_class(self, *args):
for n in args:
self.o_classes.append(n)
def add_runners(self, *args):
for n in args:
self.runners.append(n)
def get_runners_in_o_class(self, o_class: str) -> list[Runner]:
return [i for i in self.runners if i.o_class == o_class]
def add_fees(self, *args):
for n in args:
self.fees.append(n)
def get_course(self, name):
return next((copy.copy(i) for i in self.courses if i.name == name), None)
def get_o_class(self, name):
return next((copy.copy(i) for i in self.o_classes if i.name == name), None)
def get_card_dump(self, id):
return next((copy.copy(i) for i in self.card_dumps if i.card == id), None)
def get_runner(self, id):
return next((copy.copy(i) for i in self.runners if i.id == id), None)
def get_runner_status(self, id):
# https://github.com/international-orienteering-federation/datastandard-v3/blob/24eb108e4c6b5e2904e5f8f0e49142e45e2c5230/IOF.xsd#L2903C3-L2903C3
runner = self.get_runner(id)
if runner.status_override: return runner.status_override
o_class = self.get_o_class(runner.o_class)
if not o_class:
return 'Inactive'
course = self.get_course(o_class.course)
if not self.get_card_dump(runner.card_id):
return 'Active'
if contains(course.codes[runner.fork], self.get_card_dump(runner.card_id).controls):
return 'OK'
else:
return 'MissingPunch'
def get_runner_result(self, runner_id):
runner = self.get_runner(runner_id)
return next((i for i in produce_class_result(self, runner.o_class).runner_results if i.id == runner_id), None)
def get_runner_o_class(self, id):
runner = self.get_runner(id)
return next((copy.copy(i) for i in self.o_classes if i.name == runner.o_class), None)
def get_runner_time(self, id):
runner = self.get_runner(id)
card_dump = self.get_card_dump(runner.card_id)
course = self.get_course(self.get_runner_o_class(id).course)
if card_dump == None or course == None:
return False
f_control = course.codes[runner.fork][-1]
# TODO: Må gjøres mer robust
if f_control not in card_dump.controls:
# Hvis løperen ikke har vært på sistepost tar vi siste stempling istedet
return card_dump.splits[-1]
index = card_dump.controls.index(f_control)
# Hvis løperen ikke har en startid spesifisert brukes brikketid
if runner.start_time is None:
return card_dump.splits[index]
#Hvis det er en startid finner jeg tidsforskjellen mellom brikkestart og faktisk start og trekker den fra totaltida
else:
time_list = runner.start_time.split(':') # hour, minute, second
start_datetime = self.start_time.replace(hour=int(time_list[0]), minute=int(time_list[1]), second=int(time_list[2]))
diff = start_datetime - card_dump.s_time
return card_dump.splits[index] - diff.total_seconds()
def get_runner_splits(self, id):
# Tida brukt frem til hver post, ikke tida fra forrige post
try:
runner = self.get_runner(id)
card_dump = self.get_card_dump(runner.card_id)
course = self.get_course(self.get_o_class(runner.o_class).course)
codes = course.codes[runner.fork]
except AttributeError:
return None
if card_dump == None:
return None
split_iter = zip(card_dump.controls, card_dump.splits).__iter__()
splits = [0] * len(codes)
for n, control in enumerate(codes):
if control not in card_dump.controls:
continue
while True:
try:
punched_control, split = next(split_iter)
except StopIteration:
break
if punched_control == control:
splits[n] = split
break
return splits
def get_runner_controls(self, id):
try:
return self.get_card_dump(self.get_runner(id).card_id).controls
except AttributeError:
return None
def get_runner_end_clock(self, id):
try:
return self.get_card_dump(self.get_runner(id).card_id).f_time
except AttributeError:
return None
def get_result(self, o_classes: list[str] = []) -> list[ClassResult]:
if not o_classes:
o_classes = [i.name for i in self.o_classes]
return [produce_class_result(self, i) for i in o_classes]
def read_xml_entries(self, xml_file):
self.add_runners(*runners_from_xml_entries(xml_file))
self.add_fees(*fees_from_xml_entries(xml_file))
# Må endres
def read_xml_courses(self, xml_file):
self.courses = courses_from_xml(xml_file)
def read_ttime_cnf(self, ttime_file):
self.add_course(*courses_from_ttime_conf(ttime_file))
self.add_o_class(*classes_from_ttime_conf(ttime_file, self.courses))
def read_ttime_db(self, ttime_file):
with open(ttime_file) as f:
data = f.readlines()
self.runners = [Runner.from_ttime_string(i) for i in data if i]
def read_mtr_file(self, mtr_file):
self.card_dumps = CardDump.list_from_mtr_f(mtr_file)
def create_start_list_pdf(self, file_path):
pdf.create_start_list(copy.deepcopy(self), file_path)
def create_result_pdf(self, file_path):
pdf.create_result_list(copy.deepcopy(self), file_path)
class Fee:
def __init__(self, fee_id, name, currency, amount, from_birth_date=None,
to_birth_date=None):
self.id = fee_id
self.name = name
self.currency = currency
self.amount = amount
self.from_birth_date = from_birth_date
self.to_birth_date = to_birth_date
def produce_class_result(event, o_class_name) -> ClassResult:
o_class = event.get_o_class(o_class_name)
runners = event.get_runners_in_o_class(o_class_name)
ok_runners = [i for i in runners if event.get_runner_status(i.id) == 'OK']
ok_runners.sort(key=lambda i: event.get_runner_time(i.id))
dsq_runners = [i for i in runners if event.get_runner_status(i.id) == 'MissingPunch' or event.get_runner_status(i.id) == 'Disqualified']
other_runners = [i for i in runners if i not in ok_runners and i not in dsq_runners]
results = [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), ok_runners.index(i)+1, event.get_runner_time(i.id), event.get_runner_splits(i.id),
event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id), start_time=event.get_card_dump(i.card_id).s_time) for i in ok_runners]
results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id),
event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id),
start_time=event.get_card_dump(i.card_id).s_time,
missed_controls=find_missed_controls(event.get_runner_controls(i.id), event.get_course(o_class.course).codes[i.fork]),
ran_other_course=find_courses_matching_controls(event.get_card_dump(i.card_id).controls, event.courses))
for i in dsq_runners]
results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id),
event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id)) for i in other_runners]
return ClassResult(o_class.name, event.get_course(o_class.course), results)
# TODO: Take string instead of file.
def courses_from_ttime_conf(ttime_file):
with open(ttime_file, 'r') as f:
data = f.readlines()
courses = []
for line in data:
if '-codes' in line:
code_list = re.search(r'(?<=\")(.*?)(?=\")', line).group().split(';')
loops = 0
for n in code_list:
n = n.split(',')
loops += 1
n = list(map(int, n))
courses.append(Course('course_'+str(loops), [n]))
return courses
def classes_from_ttime_conf(ttime_file, courses):
with open(ttime_file, 'r') as f:
data = f.readlines()
o_classes = []
for line in data:
if '-courses' in line:
raw_courselist = re.search(r'(?<=\")(.*?)(?=\")', line).group().split(';')
loops = 0
for n in raw_courselist:
split = n.split(',')
for i in split:
o_classes.append(OClass(i, courses[loops].name))
loops += 1
return o_classes
# Checks if small list is in big list
def contains(small, big):
valid = True
mark = 0
map_bl = []
for i in small:
for n, control in enumerate(big[mark:]):
if i == control:
mark += n
map_bl.append(mark)
break
else:
valid = False
if valid:
return map_bl
else:
return False
def find_missed_controls(punches, codes):
return [i for i in codes if i not in punches]
def find_courses_matching_controls(controls, courses):
matches = []
for i in courses:
for fork in i.codes:
if contains(fork, controls):
matches.append(i.name)
return matches

239
otime/pdf.py Normal file
View File

@ -0,0 +1,239 @@
import datetime
from fpdf import FPDF
def format_m_s(seconds):
if seconds == 0: return ''
minutes, seconds = divmod(seconds, 60)
return f'{minutes:02}:{seconds:02}'
def create_result_list(event, file_path, o_classes=[]):
results = event.get_result(o_classes)
pdf = FPDF()
pdf.add_page()
pdf.add_font("LiberationSans", fname="otime/data/fonts/LiberationSans-Regular.ttf")
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
col_width = pdf.epw / 4 # distribute content evenly
for class_result in results:
pdf.write(txt=class_result.name)
pdf.ln(line_height)
for runner in class_result.runner_results:
if runner.status == 'OK':
pdf.multi_cell(col_width, line_height, str(runner.place), border=1, ln=3, max_line_height=pdf.font_size, align='L')
else:
pdf.multi_cell(col_width, line_height, runner.status, border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.fullname(), border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.club, border=1, ln=3, max_line_height=pdf.font_size)
if runner.status == 'OK':
pdf.multi_cell(col_width, line_height, format_m_s(runner.total_time), border=1, ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', border=1, ln=3, max_line_height=pdf.font_size)
pdf.ln(line_height)
pdf.output(file_path)
def create_split_result_list(event, file_path, o_classes=[]):
results = event.get_result(o_classes)
pdf = FPDF()
pdf.add_page(orientation='L')
pdf.add_font("LiberationSans", fname="otime/data/fonts/LiberationSans-Regular.ttf")
pdf.set_font("LiberationSans", size=8)
line_height = pdf.font_size * 1.5
col_width = pdf.epw / 4 # distribute content evenly
for class_result in results:
col_width = 10
pdf.write(txt=class_result.name)
pdf.ln(line_height)
for runner in class_result.runner_results:
if runner.status == 'OK':
pdf.multi_cell(5, line_height, str(runner.place), border=1, ln=3, max_line_height=pdf.font_size, align='L')
else:
pdf.multi_cell(5, line_height, runner.status, border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(30, line_height, runner.fullname(), border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(30, line_height, runner.club, border=1, ln=3, max_line_height=pdf.font_size)
if runner.status == 'OK' or runner.status == 'MissingPunch':
for split in runner.splits:
pdf.multi_cell(col_width, line_height, format_m_s(split), border=1, ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', border=1, ln=3, max_line_height=pdf.font_size)
pdf.ln(line_height)
pdf.output(file_path)
def create_all_invoices(self, filename_prefix):
clubs = [x.club for x in self.runners if x.club != self.runners[self.runners.index(x)-1].club and x.club is not None]
for club in clubs:
self.create_club_invoice(club, filename_prefix + club + '.pdf')
def create_club_invoice(self, club, file_name):
# Get only runners in specified club
runners_ic = [x for x in self.runners if x.club == club]
payments = [x.fee.amount for x in runners_ic]
subtotal = sum(payments)
# Dict of runners in each fee
fee_dict = {}
for fee in self.fees:
fee_dict.update({fee.name: [x for x in runners_ic if x.fee.name == fee.name]})
if len(fee_dict[fee.name]) == 0:
fee_dict.pop(fee.name)
pdf = PDF()
pdf.set_title(f'Faktura {self.name} {club}')
pdf.set_producer('oTime 0.0.1')
pdf.set_creator('oTime 0.0.1')
pdf.set_creation_date()
pdf.add_page()
pdf.add_font("LiberationSans", fname="data/fonts/LiberationSans-Regular.ttf")
pdf.add_font("LiberationSans-Bold", fname="data/fonts/LiberationSans-Bold.ttf")
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
# Topp venstre:
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(pdf.epw / 2, line_height, self.name, align='L')
pdf.ln(0.2)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(pdf.epw / 2, line_height, self.organiser, align='L')
pdf.ln(14)
pdf.multi_cell(pdf.epw / 2, line_height, club, align='L')
pdf.ln()
# Topp høyre:
pdf.set_xy(-pdf.epw / 3, 10)
pdf.set_font("LiberationSans-Bold", size=20)
pdf.multi_cell(pdf.epw, line_height, 'Faktura', align='L')
pdf.set_xy(-pdf.epw / 3, 20)
# Dato
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Dato:', align='L')
pdf.set_xy(-pdf.epw / 3, 20)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, datetime.date.today().strftime('%d.%m.%Y'), align='R')
# Nummer
pdf.set_xy(-pdf.epw / 3, 20 + line_height)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Nummer:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height)
pdf.multi_cell(0, line_height, '1', align='R')
# Kundeid
pdf.set_xy(-pdf.epw / 3, 20 + line_height*2)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Kundeid:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height*2)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, '123', align='R')
# Forfall
pdf.set_xy(-pdf.epw / 3, 20 + line_height*3)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(0, line_height, 'Forfall:', align='L')
pdf.set_xy(-pdf.epw / 3, 20 + line_height*3)
pdf.set_font("LiberationSans", size=10)
pdf.multi_cell(0, line_height, datetime.date.today().strftime('%d.08.%Y'), align='R')
pdf.set_xy(-pdf.epw, 20 + line_height*5)
pdf.set_font("LiberationSans-Bold", size=10)
date = self.start_time.strftime('%d.%m.%Y')
pdf.multi_cell(0, line_height, f'Kontingentliste {self.name} dato: {date}', align='R')
pdf.ln()
pdf.set_font("LiberationSans", size=10)
# Tabell
line_height = pdf.font_size * 2
col_width = pdf.epw / 8 # distribute content evenly
# Top row
pdf.set_fill_color(191, 191, 191)
pdf.set_draw_color(191, 191, 191)
pdf.set_font("LiberationSans-Bold", size=10)
pdf.multi_cell(col_width, line_height, 'Startnr', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width*2, line_height, 'Navn', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Klasse', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Brikke', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
# pdf.multi_cell(col_width, line_height, 'Starttid', border=1, ln=3,max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Resultat', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Plass', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.multi_cell(col_width, line_height, 'Kontigent', border=1, ln=3, max_line_height=pdf.font_size, align='L', fill=True)
pdf.ln()
pdf.set_draw_color(0, 0, 0)
for runners in fee_dict.values():
pdf.set_font("LiberationSans-Bold", size=11)
pdf.multi_cell(len(runners[0].fee.name)*2.3, pdf.font_size * 1.1, runners[0].fee.name, border='B', align='L')
pdf.set_font("LiberationSans", size=8)
line_height = pdf.font_size * 1.6
pdf.ln()
for runner in runners:
pdf.multi_cell(col_width, line_height, runner.id, ln=3, max_line_height=pdf.font_size, align='L') # Start Number
pdf.multi_cell(col_width*2, line_height, f'{runner.last}, {runner.first}', ln=3, max_line_height=pdf.font_size, align='L') # Name
pdf.multi_cell(col_width, line_height, runner.o_class_str, ln=3, max_line_height=pdf.font_size, align='L') # Class
pdf.multi_cell(col_width, line_height, str(runner.card), ln=3, max_line_height=pdf.font_size) # card
# Starttime:
#if runner.start_time != None:
# pdf.multi_cell(col_width, line_height, str(runner.start_time), ln=3, max_line_height=pdf.font_size)
#else:
# pdf.multi_cell(col_width, line_height, 'Fristart', ln=3, max_line_height=pdf.font_size)
# Time used:
if runner.status() == 'OK':
pdf.multi_cell(col_width, line_height, str(datetime.timedelta(seconds=runner.totaltime())), ln=3, max_line_height=pdf.font_size)
elif runner.status() == 'Disqualified':
pdf.multi_cell(col_width, line_height, 'DSQ', ln=3, max_line_height=pdf.font_size)
elif runner.status() == 'Active':
pdf.multi_cell(col_width, line_height, 'DNS', ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, runner.status(), ln=3, max_line_height=pdf.font_size)
# Rank:
if runner.status() == 'OK':
pdf.multi_cell(col_width, line_height, str(runner.rank(self.runners)) + '.', ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', ln=3, max_line_height=pdf.font_size)
pdf.multi_cell(col_width, line_height, str(runner.fee.amount), ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln(line_height)
pdf.set_draw_color(0, 0, 0)
# sum
pdf.set_font("LiberationSans-Bold", size=10)
pdf.set_x(col_width*8)
pdf.cell(0, line_height, 'Sum ' + str(subtotal), border='TB', align='R')
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
pdf.ln(20)
pdf.multi_cell(0, line_height, 'Antall løpere ' + str(len(runners_ic)), ln=3, max_line_height=pdf.font_size, align='L')
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Total sum', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, str(subtotal), ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln()
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Betalt', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, '0', ln=3, max_line_height=pdf.font_size, align='R')
pdf.ln()
pdf.set_font("LiberationSans-Bold", size=10)
pdf.set_x(col_width*7)
pdf.multi_cell(col_width, line_height, 'Skyldig', border='B', ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(0, line_height, str(subtotal), border='B',ln=3, max_line_height=pdf.font_size, align='R')
pdf.output(file_name)
"""
class PDF(FPDF):
def footer(self):
self.set_y(-15)
self.set_font("LiberationSans", size=10)
self.set_fill_color(191, 191, 191)
self.set_draw_color(191, 191, 191)
col_width = self.epw / 3
self.cell(col_width, 7, 'oTime', border=1, align='L', fill=True)
self.cell(col_width, 7, datetime.datetime.now().strftime('%d.%m.%Y %H:%M:%S'), border=1, align='C', fill=True)
self.cell(col_width, 7, f"Side {self.page_no()} av {{nb}}", border=1, align='R', fill=True)
"""

30
otime/search_tui.py Normal file
View File

@ -0,0 +1,30 @@
from textual.app import App, ComposeResult
from textual.widgets import DataTable
import otime
import file_io
from pdf import format_m_s
global ROWS
class TableApp(App):
def compose(self) -> ComposeResult:
yield DataTable()
def on_mount(self) -> None:
global ROWS
table = self.query_one(DataTable)
table.add_columns(*ROWS[0])
table.add_rows(ROWS[1:])
def main(path):
event = file_io.event_from_yaml_and_csv(path + '/config.yaml', path + '/mtr.yaml', path + '/runners.csv')
result = event.get_result()
global ROWS
ROWS = []
for o_class in result:
ROWS += [(str(i.id), str(i.place), i.fullname(), i.o_class, i.club, str(i.card_id), format_m_s(i.total_time), str(i.controls)) for i in o_class.runner_results]
print(ROWS)
app = TableApp()
app.run()
if __name__ == "__main__":
main()

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
fpdf2
pyserial
rich

View File

@ -1,62 +0,0 @@
11595;X;Aasrum, Camilla;Damer A-kort;Kristiansand OK;A,15154,4,189,11595;86252;;
10520;X;Balchen, Eirik Glad;Herrer A-kort;Oddersjaa SSK;A,15154,4,248,10520;503969;;
25273;X;Beckmann, Benedicte;Damer A-kort;Kristiansand OK;A,15154,4,189,25273;212044;;
30872;X;Birkeland, Kristian;Herrer A-kort;Birkenes IL;A,15154,4,40,30872;225002;;
34463;X;Birkeland, Per Are;Herrer A-kort;Birkenes IL;A,15154,4,40,34463;515883;;
7439;X;Birkenes, Espen;Herrer A-kort;Birkenes IL;A,15154,4,40,7439;203397;;
25720;X;Birkenes, Lars;Herrer A-kort;Birkenes IL;A,15154,4,40,25720;225105;;
7408;X;Bjorvand, Siri;Damer A-kort;Birkenes IL;A,15154,4,40,7408;511473;;
190;X;Bjørnsen, Jack;Herrer A-kort;Kristiansand OK;A,15154,4,189,190;510880;;
6557;X;Blandkjenn, Jan;Herrer A-kort;Kristiansand OK;A,15154,4,189,6557;220759;;
10323;X;Daland, Linn Carina;Damer A-kort;Kristiansand OK;A,15154,4,189,10323;510983;;
2885;X;Dalsøren, Stig;Herrer A-lang;Kristiansand OK;A,15154,4,189,2885;229985;;
3104;X;Danielsen, Vegard;Herrer A-lang;Kristiansand OK;A,15154,4,189,3104;509049;;
28601;X;Flaa, Mette Javenes;Damer C;Birkenes IL;A,15154,4,40,28601;225005;;
24007;X;Flaa, Per Johan;Herrer C;Birkenes IL;A,15154,4,40,24007;203292;;
17763;X;Flaa, Sigmund Javenes;Herrer A-kort;Birkenes IL;A,15154,4,40,17763;224819;;
1400;X;Gjelsten, Ståle;Herrer A-lang;Kristiansand OK;A,15154,4,189,1400;506629;;
8437;X;Hansen, John;Herrer A-kort;Kristiansand OK;A,15154,4,189,8437;208727;;
26200;X;Harstad Arntsen, Kajsa;Damer A-kort;Heming Orientering;A,15154,3,114,26200;233748;;
6762;X;Heivoll, Reidar;Herrer A-kort;Søgne og Songdalen OK;A,15154,4,341,6762;511474;;
22630;X;Johannessen, Fabian;Herrer A-kort;Kristiansand OK;A,15154,4,189,22630;506791;;
8062;X;Johannessen, Nils Arne;Herrer A-kort;Kristiansand OK;A,15154,4,189,8062;512690;;
6907;X;Jørgensen, Magne Reier;Herrer A-kort;Kristiansand OK;A,15154,4,189,6907;255211;;
18753;X;Knutsen, Arild;Herrer A-kort;Søgne og Songdalen OK;A,15154,4,341,18753;197924;;
6924;X;Kostøl, Ole;Herrer A-kort;Kristiansand OK;A,15154,4,189,6924;184222;;
29758;X;Kuhnle, Eivind Irgens;Herrer C;Kristiansand OK;A,15154,4,189,29758;224394;;
7026;X;Mulen, Ingvild;Damer A-kort;Kristiansand OK;A,15154,4,189,7026;510878;;
7499;X;Myhre, Stein;Herrer A-kort;Bærums Skiklub;A,15154,3,33,7499;207798;;
33810;X;Ness-Jensen, Eivind;Herrer A-lang;Frol IL;A,15154,11,84,33810;248758;;
36494;X;Ness-Jensen, Trym;Herrer C;Frol IL;A,15154,11,84,36494;247677;;
36264;X;Ness-Jensen, Tuva;Damer C;Frol IL;A,15154,11,84,36264;247218;;
24983;X;Nilsen, Therese;Damer A-kort;IL Imås;A,15154,4,148,24983;236001;;
18599;X;Nygård, Emil;Herrer A-kort;Birkenes IL;A,15154,4,40,18599;225087;;
21539;X;Raaen, Trine Marit Justad;Damer A-kort;Lierbygda OL;A,15154,5,201,21539;506935;;
9432;X;Rasmussen, Henning;Herrer A-kort;OL Tønsberg og omegn;A,15154,19,264,9432;506632;;
13618;X;Ribe, Erlend;Herrer A-kort;;A,15154,0,,13618;198060;;
7426;X;Runde, David;Herrer A-lang;Kristiansand OK;A,15154,4,189,7426;510984;;
14837;X;Runde, John;Herrer A-lang;NTNUI;A,15154,15,244,14837;504087;;
12144;X;Runde, Pål;Herrer A-kort;Kristiansand OK;A,15154,4,189,12144;182054;;
6896;X;Simonsen, Øyvin;Herrer A-kort;IL Imås;A,15154,4,148,6896;504631;;
31942;X;Solheim, Espen;Herrer A-kort;IF Trauma;A,15154,4,134,31942;509140;;
31962;X;Solheim, Vilde Haslekås;Damer A-kort;IF Trauma;A,15154,4,134,31962;246953;;
820;X;Stormoen, Håvar Birkeland;Herrer A-lang;Kristiansand OK;A,15154,4,189,820;504431;;
901;X;Strand, Erling;Herrer A-kort;Bergens TF;A,15154,8,37,901;186000;;
6920;X;Sørensen, Kjell Walter;Herrer A-kort;IK Grane Arendal Orientering;A,15154,4,135,6920;503611;;
13638;X;Takle, Brage;Herrer A-lang;Kristiansand OK;A,15154,4,189,13638;510998;;
8151;X;Torgersen, Per W.;Herrer A-lang;Oddersjaa SSK;A,15154,4,248,8151;185934;;
17591;X;Tømt, Henrik Andreas;Herrer A-lang;IL Imås;A,15154,4,148,17591;207732;;
6523;X;Tømt, Per Kristian;Herrer A-lang;IL Imås;A,15154,4,148,6523;206546;;
18730;X;Tømt, Sandra Sofie;Damer C;IL Imås;A,15154,4,148,18730;246774;;
30302;X;Tørå, Thea;Nybegynner;Kristiansand OK;A,15154,4,189,30302;247987;;
26818;X;Tørå, Tobias;Nybegynner;Kristiansand OK;A,15154,4,189,26818;248089;;
466;X;Værp, Thorbjørn;Herrer A-kort;Kristiansand OK;A,15154,4,189,466;507857;;
13795;X;Ytterbø, Astrid;Damer A-kort;Asker Skiklubb;A,15154,3,26,13795;507040;;
3682;X;Ytterbø, Per Anders;Herrer A-kort;Asker Skiklubb;A,15154,3,26,3682;501115;;
6154;X;Zeiner-Gundersen, Richard;Herrer A-lang;Lierbygda OL;A,15154,5,201,6154;507044;;
7251;X;Økstad, Siri;Damer A-kort;Oddersjaa SSK;A,15154,4,248,7251;185940;;
36495;X;Andersen, Pål;Herrer A-kort;Søgne og Songdalen OK;A,0,0,341,0;253839;;
36496;X;Strand, Anette;Damer A-kort;Bergens TF;A,0,0,37,0;245739;;
36497;X;Vassbø, Halvard;Herrer A-lang;Vindbjart;A,0,0,540,0;204836;;
36498;X;Kvaase, Asle;Herrer A-kort;Høvdingen;;165351;;
36499;X;Wensaas, Elisabeth;Nybegynner;Høvdingen;;255737;;
1 11595 X Aasrum, Camilla Damer A-kort Kristiansand OK A,15154,4,189,11595 86252
2 10520 X Balchen, Eirik Glad Herrer A-kort Oddersjaa SSK A,15154,4,248,10520 503969
3 25273 X Beckmann, Benedicte Damer A-kort Kristiansand OK A,15154,4,189,25273 212044
4 30872 X Birkeland, Kristian Herrer A-kort Birkenes IL A,15154,4,40,30872 225002
5 34463 X Birkeland, Per Are Herrer A-kort Birkenes IL A,15154,4,40,34463 515883
6 7439 X Birkenes, Espen Herrer A-kort Birkenes IL A,15154,4,40,7439 203397
7 25720 X Birkenes, Lars Herrer A-kort Birkenes IL A,15154,4,40,25720 225105
8 7408 X Bjorvand, Siri Damer A-kort Birkenes IL A,15154,4,40,7408 511473
9 190 X Bjørnsen, Jack Herrer A-kort Kristiansand OK A,15154,4,189,190 510880
10 6557 X Blandkjenn, Jan Herrer A-kort Kristiansand OK A,15154,4,189,6557 220759
11 10323 X Daland, Linn Carina Damer A-kort Kristiansand OK A,15154,4,189,10323 510983
12 2885 X Dalsøren, Stig Herrer A-lang Kristiansand OK A,15154,4,189,2885 229985
13 3104 X Danielsen, Vegard Herrer A-lang Kristiansand OK A,15154,4,189,3104 509049
14 28601 X Flaa, Mette Javenes Damer C Birkenes IL A,15154,4,40,28601 225005
15 24007 X Flaa, Per Johan Herrer C Birkenes IL A,15154,4,40,24007 203292
16 17763 X Flaa, Sigmund Javenes Herrer A-kort Birkenes IL A,15154,4,40,17763 224819
17 1400 X Gjelsten, Ståle Herrer A-lang Kristiansand OK A,15154,4,189,1400 506629
18 8437 X Hansen, John Herrer A-kort Kristiansand OK A,15154,4,189,8437 208727
19 26200 X Harstad Arntsen, Kajsa Damer A-kort Heming Orientering A,15154,3,114,26200 233748
20 6762 X Heivoll, Reidar Herrer A-kort Søgne og Songdalen OK A,15154,4,341,6762 511474
21 22630 X Johannessen, Fabian Herrer A-kort Kristiansand OK A,15154,4,189,22630 506791
22 8062 X Johannessen, Nils Arne Herrer A-kort Kristiansand OK A,15154,4,189,8062 512690
23 6907 X Jørgensen, Magne Reier Herrer A-kort Kristiansand OK A,15154,4,189,6907 255211
24 18753 X Knutsen, Arild Herrer A-kort Søgne og Songdalen OK A,15154,4,341,18753 197924
25 6924 X Kostøl, Ole Herrer A-kort Kristiansand OK A,15154,4,189,6924 184222
26 29758 X Kuhnle, Eivind Irgens Herrer C Kristiansand OK A,15154,4,189,29758 224394
27 7026 X Mulen, Ingvild Damer A-kort Kristiansand OK A,15154,4,189,7026 510878
28 7499 X Myhre, Stein Herrer A-kort Bærums Skiklub A,15154,3,33,7499 207798
29 33810 X Ness-Jensen, Eivind Herrer A-lang Frol IL A,15154,11,84,33810 248758
30 36494 X Ness-Jensen, Trym Herrer C Frol IL A,15154,11,84,36494 247677
31 36264 X Ness-Jensen, Tuva Damer C Frol IL A,15154,11,84,36264 247218
32 24983 X Nilsen, Therese Damer A-kort IL Imås A,15154,4,148,24983 236001
33 18599 X Nygård, Emil Herrer A-kort Birkenes IL A,15154,4,40,18599 225087
34 21539 X Raaen, Trine Marit Justad Damer A-kort Lierbygda OL A,15154,5,201,21539 506935
35 9432 X Rasmussen, Henning Herrer A-kort OL Tønsberg og omegn A,15154,19,264,9432 506632
36 13618 X Ribe, Erlend Herrer A-kort A,15154,0,,13618 198060
37 7426 X Runde, David Herrer A-lang Kristiansand OK A,15154,4,189,7426 510984
38 14837 X Runde, John Herrer A-lang NTNUI A,15154,15,244,14837 504087
39 12144 X Runde, Pål Herrer A-kort Kristiansand OK A,15154,4,189,12144 182054
40 6896 X Simonsen, Øyvin Herrer A-kort IL Imås A,15154,4,148,6896 504631
41 31942 X Solheim, Espen Herrer A-kort IF Trauma A,15154,4,134,31942 509140
42 31962 X Solheim, Vilde Haslekås Damer A-kort IF Trauma A,15154,4,134,31962 246953
43 820 X Stormoen, Håvar Birkeland Herrer A-lang Kristiansand OK A,15154,4,189,820 504431
44 901 X Strand, Erling Herrer A-kort Bergens TF A,15154,8,37,901 186000
45 6920 X Sørensen, Kjell Walter Herrer A-kort IK Grane Arendal Orientering A,15154,4,135,6920 503611
46 13638 X Takle, Brage Herrer A-lang Kristiansand OK A,15154,4,189,13638 510998
47 8151 X Torgersen, Per W. Herrer A-lang Oddersjaa SSK A,15154,4,248,8151 185934
48 17591 X Tømt, Henrik Andreas Herrer A-lang IL Imås A,15154,4,148,17591 207732
49 6523 X Tømt, Per Kristian Herrer A-lang IL Imås A,15154,4,148,6523 206546
50 18730 X Tømt, Sandra Sofie Damer C IL Imås A,15154,4,148,18730 246774
51 30302 X Tørå, Thea Nybegynner Kristiansand OK A,15154,4,189,30302 247987
52 26818 X Tørå, Tobias Nybegynner Kristiansand OK A,15154,4,189,26818 248089
53 466 X Værp, Thorbjørn Herrer A-kort Kristiansand OK A,15154,4,189,466 507857
54 13795 X Ytterbø, Astrid Damer A-kort Asker Skiklubb A,15154,3,26,13795 507040
55 3682 X Ytterbø, Per Anders Herrer A-kort Asker Skiklubb A,15154,3,26,3682 501115
56 6154 X Zeiner-Gundersen, Richard Herrer A-lang Lierbygda OL A,15154,5,201,6154 507044
57 7251 X Økstad, Siri Damer A-kort Oddersjaa SSK A,15154,4,248,7251 185940
58 36495 X Andersen, Pål Herrer A-kort Søgne og Songdalen OK A,0,0,341,0 253839
59 36496 X Strand, Anette Damer A-kort Bergens TF A,0,0,37,0 245739
60 36497 X Vassbø, Halvard Herrer A-lang Vindbjart A,0,0,540,0 204836
61 36498 X Kvaase, Asle Herrer A-kort Høvdingen 165351
62 36499 X Wensaas, Elisabeth Nybegynner Høvdingen 255737

View File

@ -1,351 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<CourseData>
<IOFVersion version="2.0.3" />
<ModifyDate>
<Date>2021-07-06</Date>
<Clock>17:18</Clock>
</ModifyDate>
<Map>
<Scale>10000</Scale>
<MapPosition x="-382.61" y="301.33" />
</Map>
<StartPoint>
<StartPointCode>STA1</StartPointCode>
<ControlPosition x="445934" y="6453146" />
<MapPosition x="-73.36" y="29.96" />
</StartPoint>
<StartPoint>
<StartPointCode>STA2</StartPointCode>
<ControlPosition x="445809" y="6452679" />
<MapPosition x="-82.73" y="-17.38" />
</StartPoint>
<Control>
<ControlCode>35</ControlCode>
<ControlPosition x="445776" y="6453203" />
<MapPosition x="-89.45" y="34.7" />
</Control>
<Control>
<ControlCode>91</ControlCode>
<ControlPosition x="445600" y="6453513" />
<MapPosition x="-109.03" y="64.48" />
</Control>
<Control>
<ControlCode>76</ControlCode>
<ControlPosition x="445687" y="6453751" />
<MapPosition x="-101.97" y="88.73" />
</Control>
<Control>
<ControlCode>75</ControlCode>
<ControlPosition x="445339" y="6453837" />
<MapPosition x="-137.19" y="95.07" />
</Control>
<Control>
<ControlCode>107</ControlCode>
<ControlPosition x="444509" y="6454122" />
<MapPosition x="-221.9" y="118.08" />
</Control>
<Control>
<ControlCode>116</ControlCode>
<ControlPosition x="444990" y="6454041" />
<MapPosition x="-173.43" y="113.17" />
</Control>
<Control>
<ControlCode>119</ControlCode>
<ControlPosition x="445032" y="6454224" />
<MapPosition x="-170.43" y="131.69" />
</Control>
<Control>
<ControlCode>95</ControlCode>
<ControlPosition x="444636" y="6454250" />
<MapPosition x="-210.03" y="131.72" />
</Control>
<Control>
<ControlCode>51</ControlCode>
<ControlPosition x="444871" y="6453514" />
<MapPosition x="-181.78" y="59.78" />
</Control>
<Control>
<ControlCode>109</ControlCode>
<ControlPosition x="445716" y="6452741" />
<MapPosition x="-92.47" y="-11.85" />
</Control>
<Control>
<ControlCode>44</ControlCode>
<ControlPosition x="445859" y="6452545" />
<MapPosition x="-76.89" y="-30.41" />
</Control>
<Control>
<ControlCode>150</ControlCode>
<ControlPosition x="445717" y="6452474" />
<MapPosition x="-90.61" y="-38.43" />
</Control>
<Control>
<ControlCode>143</ControlCode>
<ControlPosition x="445487" y="6452635" />
<MapPosition x="-114.59" y="-23.88" />
</Control>
<Control>
<ControlCode>113</ControlCode>
<ControlPosition x="445643" y="6452651" />
<MapPosition x="-99.18" y="-21.25" />
</Control>
<Control>
<ControlCode>70</ControlCode>
<ControlPosition x="445721" y="6452798" />
<MapPosition x="-92.37" y="-6.1" />
</Control>
<Control>
<ControlCode>54</ControlCode>
<ControlPosition x="445322" y="6452799" />
<MapPosition x="-132.15" y="-8.61" />
</Control>
<Control>
<ControlCode>97</ControlCode>
<ControlPosition x="445217" y="6453008" />
<MapPosition x="-143.95" y="11.55" />
</Control>
<Control>
<ControlCode>45</ControlCode>
<ControlPosition x="445953" y="6452803" />
<MapPosition x="-69.16" y="-4.05" />
</Control>
<Control>
<ControlCode>147</ControlCode>
<ControlPosition x="445350" y="6452984" />
<MapPosition x="-130.59" y="10.05" />
</Control>
<Control>
<ControlCode>39</ControlCode>
<ControlPosition x="445456" y="6452950" />
<MapPosition x="-119.74" y="7.36" />
</Control>
<Control>
<ControlCode>139</ControlCode>
<ControlPosition x="445134" y="6452747" />
<MapPosition x="-150.6" y="-15.05" />
</Control>
<Control>
<ControlCode>78</ControlCode>
<ControlPosition x="445180" y="6452651" />
<MapPosition x="-145.35" y="-24.25" />
</Control>
<FinishPoint>
<FinishPointCode>FIN1</FinishPointCode>
<ControlPosition x="445808" y="6452681" />
<MapPosition x="-82.9" y="-17.19" />
</FinishPoint>
<Course>
<CourseName>A lang</CourseName>
<CourseId>0</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>4400</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>35</ControlCode>
<LegLength>282</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>91</ControlCode>
<LegLength>356</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>76</ControlCode>
<LegLength>253</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>75</ControlCode>
<LegLength>358</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>116</ControlCode>
<LegLength>405</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>119</ControlCode>
<LegLength>188</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>95</ControlCode>
<LegLength>396</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>107</ControlCode>
<LegLength>181</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>51</ControlCode>
<LegLength>708</LegLength>
</CourseControl>
<CourseControl>
<Sequence>10</Sequence>
<ControlCode>109</ControlCode>
<LegLength>1145</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>110</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>A-kort</CourseName>
<CourseId>1</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>3400</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>35</ControlCode>
<LegLength>282</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>91</ControlCode>
<LegLength>356</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>76</ControlCode>
<LegLength>253</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>75</ControlCode>
<LegLength>358</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>116</ControlCode>
<LegLength>405</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>51</ControlCode>
<LegLength>540</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>109</ControlCode>
<LegLength>1145</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>110</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>N</CourseName>
<CourseId>2</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>2000</CourseLength>
<StartPointCode>STA2</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>44</ControlCode>
<LegLength>143</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>150</ControlCode>
<LegLength>159</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>143</ControlCode>
<LegLength>280</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>113</ControlCode>
<LegLength>156</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>54</ControlCode>
<LegLength>353</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>97</ControlCode>
<LegLength>234</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>39</ControlCode>
<LegLength>246</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>70</ControlCode>
<LegLength>305</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>146</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>C</CourseName>
<CourseId>3</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>2400</CourseLength>
<StartPointCode>STA2</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>150</ControlCode>
<LegLength>225</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>113</ControlCode>
<LegLength>192</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>78</ControlCode>
<LegLength>463</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>139</ControlCode>
<LegLength>106</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>54</ControlCode>
<LegLength>195</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>147</ControlCode>
<LegLength>187</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>39</ControlCode>
<LegLength>112</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>45</ControlCode>
<LegLength>519</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>109</ControlCode>
<LegLength>246</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>110</DistanceToFinish>
</CourseVariation>
</Course>
</CourseData>

View File

@ -1,47 +0,0 @@
"M","0","14917","509049","06.07.21 18:15:38.000","06.07.21 18:15:20.000",509049,0000,0000,000,00000,035,00098,091,00260,076,00411,075,00567,116,00824,119,00929,095,01116,107,01213,051,01587,169,02082,046,02133,250,02159,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000004
"M","0","14917","507857","06.07.21 18:24:14.000","06.07.21 18:23:56.000",507857,0000,0000,000,00000,035,00173,091,00451,076,00691,075,00988,116,01461,051,01928,169,02986,046,03068,250,03089,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000005
"M","0","14917","510983","06.07.21 18:24:22.000","06.07.21 18:24:04.000",510983,0000,0000,000,00000,035,00183,091,00476,076,00717,075,01001,116,01428,051,02113,169,03195,046,03280,250,03290,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000006
"M","0","14917","248089","06.07.21 18:28:22.000","06.07.21 18:28:04.000",248089,0000,0000,000,00000,044,00062,150,00298,143,00617,144,00721,054,01091,097,01467,039,01733,070,02015,099,02016,046,02137,250,02164,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000007
"M","0","14917","507044","06.07.21 18:28:56.000","06.07.21 18:28:37.000",507044,0000,0000,000,00000,035,00183,091,00419,076,00650,075,00996,116,01377,119,01543,095,01862,107,01988,051,02767,169,03595,046,03673,250,03682,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000008
"M","0","14917","506935","06.07.21 18:29:04.000","06.07.21 18:28:46.000",506935,0000,0000,000,00000,035,00228,091,00514,076,00861,075,01192,116,01727,051,02369,169,03627,046,03717,250,03725,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000009
"M","0","14917","204836","06.07.21 18:29:46.000","06.07.21 18:29:28.000",204836,0000,0000,000,00000,031,00090,032,00261,033,00457,034,00555,035,00865,036,01017,032,01197,037,01245,038,01364,039,01493,040,01599,054,01689,053,01763,050,01812,140,01827,250,01847,250,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000010
"M","0","14917","225002","06.07.21 18:37:08.000","06.07.21 18:36:50.000",225002,0000,0000,000,00000,035,00137,091,00359,076,00549,075,00873,116,01192,051,01615,169,02257,046,02486,250,02492,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000011
"M","0","14917","506632","06.07.21 18:37:22.000","06.07.21 18:37:04.000",506632,0000,0000,000,00000,035,00136,091,00361,076,00662,075,00981,116,01421,051,01867,169,02663,046,02741,250,02753,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000012
"M","0","14917","515883","06.07.21 18:37:48.000","06.07.21 18:37:30.000",515883,0000,0000,000,00000,035,00381,091,00622,076,00871,075,01179,116,01507,051,01913,169,02762,046,02833,250,02876,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000013
"M","0","14917","197924","06.07.21 18:38:01.000","06.07.21 18:37:43.000",197924,0000,0000,000,00000,035,00293,091,00680,076,00911,075,01159,116,01505,051,02151,169,03084,046,03153,250,03178,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000014
"M","0","14917","184222","06.07.21 18:38:21.000","06.07.21 18:38:03.000",184222,0000,0000,000,00000,035,00143,091,00354,076,00521,075,00734,116,01060,051,01428,169,02108,046,02182,250,02225,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000015
"M","0","14917","510984","06.07.21 18:38:31.000","06.07.21 18:38:13.000",510984,0000,0000,000,00000,035,00116,091,00306,076,00459,075,00654,116,00966,119,01097,095,01348,107,01472,051,01993,169,02642,046,02706,250,02723,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000016
"M","0","14917","507040","06.07.21 18:38:41.000","06.07.21 18:38:23.000",507040,0000,0000,000,00000,035,00201,091,00409,076,00614,075,00910,116,01299,051,02228,169,03010,046,03081,250,03097,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000017
"M","0","14917","225087","06.07.21 18:38:47.000","06.07.21 18:38:29.000",225087,0000,0000,000,00000,035,00125,091,00326,076,00518,075,00748,116,01115,051,01440,169,02106,046,02171,250,02188,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000018
"M","0","14917","501115","06.07.21 18:38:52.000","06.07.21 18:38:34.000",501115,0000,0000,000,00000,035,00177,091,00464,076,00764,075,01232,116,01637,051,02369,169,03331,046,03409,250,03425,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000019
"M","0","14917","511474","06.07.21 18:39:07.000","06.07.21 18:38:49.000",511474,0000,0000,000,00000,035,00144,091,00357,076,00560,075,00787,116,01131,051,01511,169,02259,046,02340,250,02351,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000020
"M","0","14917","506629","06.07.21 18:40:58.000","06.07.21 18:40:40.000",506629,0000,0000,000,00000,035,00101,091,00252,076,00396,075,00571,116,00821,119,00937,095,01158,107,01255,051,01739,169,02371,046,02425,250,02433,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000021
"M","0","14917","203397","06.07.21 18:41:53.000","06.07.21 18:41:35.000",203397,0000,0000,000,00000,035,00130,091,00316,076,00485,075,00713,116,01099,051,01488,169,02155,046,02224,250,02233,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000022
"M","0","14917","225105","06.07.21 18:42:06.000","06.07.21 18:41:48.000",225105,0000,0000,000,00000,035,00152,091,00457,076,00662,075,00956,116,01330,051,01841,169,02619,046,02683,250,02690,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000023
"M","0","14917","255211","06.07.21 18:42:43.000","06.07.21 18:42:24.000",255211,0000,0000,000,00000,035,00190,091,00500,076,00828,075,01154,116,01698,051,02269,169,03399,046,03503,250,03513,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000024
"M","0","14917","504431","06.07.21 18:43:07.000","06.07.21 18:42:49.000",504431,0000,0000,000,00000,035,00130,091,00307,076,00460,075,00659,116,00974,119,01104,095,01356,107,01464,051,01960,169,02612,046,02675,250,02687,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000025
"M","0","14917","503611","06.07.21 18:43:51.000","06.07.21 18:43:33.000",503611,0000,0000,000,00000,035,00193,091,00493,076,00723,075,01019,116,01499,051,02035,169,03167,046,03270,250,03278,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000026
"M","0","14917","503969","06.07.21 18:45:48.000","06.07.21 18:45:30.000",503969,0000,0000,000,00000,035,00123,091,00316,076,00487,075,00722,116,01040,051,01619,169,02310,046,02376,250,02387,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000027
"M","0","14917","511473","06.07.21 18:48:21.000","06.07.21 18:48:03.000",511473,0000,0000,000,00000,035,00218,091,00539,076,00818,075,01230,116,01790,051,02855,169,04123,046,04242,250,04252,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000028
"M","0","14917","504087","06.07.21 18:50:44.000","06.07.21 18:50:26.000",504087,0000,0000,000,00000,035,00148,091,00405,076,00612,075,01088,116,01481,051,02462,046,03370,250,03376,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000029
"M","0","14917","185934","06.07.21 18:52:24.000","06.07.21 18:52:06.000",185934,0000,0000,000,00000,035,00207,091,00609,076,00844,075,01138,116,01550,119,01782,095,02093,107,02256,051,02939,169,03857,046,03951,250,03958,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000030
"M","0","14917","207798","06.07.21 18:53:00.000","06.07.21 18:52:42.000",207798,0000,0000,000,00000,035,00246,091,00547,076,00836,075,01216,116,01779,051,02407,169,03762,046,03879,250,03887,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000031
"M","0","14917","198060","06.07.21 18:53:37.000","06.07.21 18:53:19.000",198060,0000,0000,000,00000,035,00123,091,00352,076,00547,075,00791,116,01139,051,01587,169,02687,046,02775,250,02784,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000032
"M","0","14917","225005","06.07.21 18:58:44.000","06.07.21 18:58:26.000",225005,0000,0000,000,00000,150,00385,144,00900,078,01269,139,01399,054,02809,147,03221,039,03342,046,04013,250,04028,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000033
"M","0","14917","253839","06.07.21 19:05:14.000","06.07.21 19:04:55.000",253839,0000,0000,000,00000,035,00205,091,00854,076,01154,075,01573,116,02149,051,03003,169,04771,046,04901,250,04909,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000034
"M","0","14917","203292","06.07.21 19:06:02.000","06.07.21 19:05:44.000",203292,0000,0000,000,00000,150,00459,144,00649,078,01001,139,01142,250,04335,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000035
"M","0","14917","224819","06.07.21 19:07:54.000","06.07.21 19:07:36.000",224819,0000,0000,000,00000,035,00170,091,00652,076,00916,075,01274,116,01726,051,02644,169,03768,046,03845,250,03850,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000036
"M","0","14917","185940","06.07.21 19:10:00.000","06.07.21 19:09:42.000",185940,0000,0000,000,00000,035,00231,091,00661,076,00973,075,01383,116,02400,169,04881,046,04999,250,05007,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000037
"M","0","14917","510880","06.07.21 19:10:22.000","06.07.21 19:10:04.000",510880,0000,0000,000,00000,035,00192,091,00494,076,00836,075,01191,116,01734,051,02440,169,03597,046,03727,250,03748,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000038
"M","0","14917","204836","06.07.21 19:21:01.000","06.07.21 19:20:43.000",204836,0000,0000,000,00000,035,00134,091,00327,076,00496,075,00702,116,00956,119,01084,095,01332,107,01427,051,01940,169,02542,046,02611,250,02616,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000039
"M","0","14917","206546","06.07.21 19:21:09.000","06.07.21 19:20:50.000",206546,0000,0000,250,00009,051,00850,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000040
"M","0","14917","165351","06.07.21 19:27:55.000","06.07.21 19:27:37.000",165351,0000,0000,000,00000,035,00110,091,00335,076,00560,075,00812,116,01158,051,01600,169,02287,046,02363,250,02373,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000041
"M","0","14917","207732","06.07.21 19:29:43.000","06.07.21 19:29:24.000",207732,0000,0000,000,00000,035,00143,091,00394,076,00597,075,00886,116,01227,119,01402,095,01750,107,01875,051,02714,169,03498,046,03548,250,03564,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000042
"M","0","14917","086252","06.07.21 19:30:50.000","06.07.21 19:30:32.000",086252,0000,0000,000,00000,035,00154,091,00399,076,00628,075,00991,116,01423,051,02243,169,03407,046,03512,250,03521,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000043
"M","0","14917","245739","06.07.21 19:30:59.000","06.07.21 19:30:41.000",245739,0000,0000,000,00000,035,00366,091,00662,076,00934,075,01350,116,01933,051,02763,169,03944,046,04039,250,04054,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000044
"M","0","14917","186000","06.07.21 19:31:14.000","06.07.21 19:30:56.000",186000,0000,0000,000,00000,035,00245,091,00598,076,00923,075,01360,116,02005,051,02688,169,04109,046,04220,250,04231,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000045
"M","0","14917","246774","06.07.21 19:36:04.000","06.07.21 19:35:46.000",246774,0000,0000,000,00000,150,00279,144,00580,078,01013,139,01162,054,01627,147,02823,039,02955,045,03875,169,04263,046,04385,250,04394,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000046
"M","0","14917","255737","06.07.21 19:37:12.000","06.07.21 19:36:54.000",255737,0000,0000,000,00000,044,00049,150,00200,143,00467,144,00719,097,02533,039,02769,070,03031,099,03032,046,03184,250,03433,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000047
"M","0","14917","236001","06.07.21 19:38:18.000","06.07.21 19:38:00.000",236001,0000,0000,000,00000,035,00341,091,00783,076,01182,250,04032,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000048
"M","0","14917","248758","06.07.21 19:59:05.000","06.07.21 19:58:47.000",248758,0000,0000,000,00000,035,00153,091,00399,076,00638,075,00946,116,01354,119,01549,095,02102,107,02251,051,02917,169,03777,046,03864,250,03873,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000049
"M","0","14917","212044","06.07.21 20:02:44.000","06.07.21 20:02:26.000",212044,0000,0000,000,00000,035,00173,091,00450,076,00867,075,01317,116,01792,051,02395,169,03546,046,03655,250,03747,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000050
1 M 0 14917 509049 06.07.21 18:15:38.000 06.07.21 18:15:20.000 509049 0000 0000 000 00000 035 00098 091 00260 076 00411 075 00567 116 00824 119 00929 095 01116 107 01213 051 01587 169 02082 046 02133 250 02159 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000004
2 M 0 14917 507857 06.07.21 18:24:14.000 06.07.21 18:23:56.000 507857 0000 0000 000 00000 035 00173 091 00451 076 00691 075 00988 116 01461 051 01928 169 02986 046 03068 250 03089 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000005
3 M 0 14917 510983 06.07.21 18:24:22.000 06.07.21 18:24:04.000 510983 0000 0000 000 00000 035 00183 091 00476 076 00717 075 01001 116 01428 051 02113 169 03195 046 03280 250 03290 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000006
4 M 0 14917 248089 06.07.21 18:28:22.000 06.07.21 18:28:04.000 248089 0000 0000 000 00000 044 00062 150 00298 143 00617 144 00721 054 01091 097 01467 039 01733 070 02015 099 02016 046 02137 250 02164 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000007
5 M 0 14917 507044 06.07.21 18:28:56.000 06.07.21 18:28:37.000 507044 0000 0000 000 00000 035 00183 091 00419 076 00650 075 00996 116 01377 119 01543 095 01862 107 01988 051 02767 169 03595 046 03673 250 03682 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000008
6 M 0 14917 506935 06.07.21 18:29:04.000 06.07.21 18:28:46.000 506935 0000 0000 000 00000 035 00228 091 00514 076 00861 075 01192 116 01727 051 02369 169 03627 046 03717 250 03725 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000009
7 M 0 14917 204836 06.07.21 18:29:46.000 06.07.21 18:29:28.000 204836 0000 0000 000 00000 031 00090 032 00261 033 00457 034 00555 035 00865 036 01017 032 01197 037 01245 038 01364 039 01493 040 01599 054 01689 053 01763 050 01812 140 01827 250 01847 250 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000010
8 M 0 14917 225002 06.07.21 18:37:08.000 06.07.21 18:36:50.000 225002 0000 0000 000 00000 035 00137 091 00359 076 00549 075 00873 116 01192 051 01615 169 02257 046 02486 250 02492 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000011
9 M 0 14917 506632 06.07.21 18:37:22.000 06.07.21 18:37:04.000 506632 0000 0000 000 00000 035 00136 091 00361 076 00662 075 00981 116 01421 051 01867 169 02663 046 02741 250 02753 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000012
10 M 0 14917 515883 06.07.21 18:37:48.000 06.07.21 18:37:30.000 515883 0000 0000 000 00000 035 00381 091 00622 076 00871 075 01179 116 01507 051 01913 169 02762 046 02833 250 02876 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000013
11 M 0 14917 197924 06.07.21 18:38:01.000 06.07.21 18:37:43.000 197924 0000 0000 000 00000 035 00293 091 00680 076 00911 075 01159 116 01505 051 02151 169 03084 046 03153 250 03178 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000014
12 M 0 14917 184222 06.07.21 18:38:21.000 06.07.21 18:38:03.000 184222 0000 0000 000 00000 035 00143 091 00354 076 00521 075 00734 116 01060 051 01428 169 02108 046 02182 250 02225 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000015
13 M 0 14917 510984 06.07.21 18:38:31.000 06.07.21 18:38:13.000 510984 0000 0000 000 00000 035 00116 091 00306 076 00459 075 00654 116 00966 119 01097 095 01348 107 01472 051 01993 169 02642 046 02706 250 02723 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000016
14 M 0 14917 507040 06.07.21 18:38:41.000 06.07.21 18:38:23.000 507040 0000 0000 000 00000 035 00201 091 00409 076 00614 075 00910 116 01299 051 02228 169 03010 046 03081 250 03097 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000017
15 M 0 14917 225087 06.07.21 18:38:47.000 06.07.21 18:38:29.000 225087 0000 0000 000 00000 035 00125 091 00326 076 00518 075 00748 116 01115 051 01440 169 02106 046 02171 250 02188 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000018
16 M 0 14917 501115 06.07.21 18:38:52.000 06.07.21 18:38:34.000 501115 0000 0000 000 00000 035 00177 091 00464 076 00764 075 01232 116 01637 051 02369 169 03331 046 03409 250 03425 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000019
17 M 0 14917 511474 06.07.21 18:39:07.000 06.07.21 18:38:49.000 511474 0000 0000 000 00000 035 00144 091 00357 076 00560 075 00787 116 01131 051 01511 169 02259 046 02340 250 02351 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000020
18 M 0 14917 506629 06.07.21 18:40:58.000 06.07.21 18:40:40.000 506629 0000 0000 000 00000 035 00101 091 00252 076 00396 075 00571 116 00821 119 00937 095 01158 107 01255 051 01739 169 02371 046 02425 250 02433 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000021
19 M 0 14917 203397 06.07.21 18:41:53.000 06.07.21 18:41:35.000 203397 0000 0000 000 00000 035 00130 091 00316 076 00485 075 00713 116 01099 051 01488 169 02155 046 02224 250 02233 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000022
20 M 0 14917 225105 06.07.21 18:42:06.000 06.07.21 18:41:48.000 225105 0000 0000 000 00000 035 00152 091 00457 076 00662 075 00956 116 01330 051 01841 169 02619 046 02683 250 02690 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000023
21 M 0 14917 255211 06.07.21 18:42:43.000 06.07.21 18:42:24.000 255211 0000 0000 000 00000 035 00190 091 00500 076 00828 075 01154 116 01698 051 02269 169 03399 046 03503 250 03513 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000024
22 M 0 14917 504431 06.07.21 18:43:07.000 06.07.21 18:42:49.000 504431 0000 0000 000 00000 035 00130 091 00307 076 00460 075 00659 116 00974 119 01104 095 01356 107 01464 051 01960 169 02612 046 02675 250 02687 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000025
23 M 0 14917 503611 06.07.21 18:43:51.000 06.07.21 18:43:33.000 503611 0000 0000 000 00000 035 00193 091 00493 076 00723 075 01019 116 01499 051 02035 169 03167 046 03270 250 03278 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000026
24 M 0 14917 503969 06.07.21 18:45:48.000 06.07.21 18:45:30.000 503969 0000 0000 000 00000 035 00123 091 00316 076 00487 075 00722 116 01040 051 01619 169 02310 046 02376 250 02387 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000027
25 M 0 14917 511473 06.07.21 18:48:21.000 06.07.21 18:48:03.000 511473 0000 0000 000 00000 035 00218 091 00539 076 00818 075 01230 116 01790 051 02855 169 04123 046 04242 250 04252 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000028
26 M 0 14917 504087 06.07.21 18:50:44.000 06.07.21 18:50:26.000 504087 0000 0000 000 00000 035 00148 091 00405 076 00612 075 01088 116 01481 051 02462 046 03370 250 03376 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000029
27 M 0 14917 185934 06.07.21 18:52:24.000 06.07.21 18:52:06.000 185934 0000 0000 000 00000 035 00207 091 00609 076 00844 075 01138 116 01550 119 01782 095 02093 107 02256 051 02939 169 03857 046 03951 250 03958 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000030
28 M 0 14917 207798 06.07.21 18:53:00.000 06.07.21 18:52:42.000 207798 0000 0000 000 00000 035 00246 091 00547 076 00836 075 01216 116 01779 051 02407 169 03762 046 03879 250 03887 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000031
29 M 0 14917 198060 06.07.21 18:53:37.000 06.07.21 18:53:19.000 198060 0000 0000 000 00000 035 00123 091 00352 076 00547 075 00791 116 01139 051 01587 169 02687 046 02775 250 02784 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000032
30 M 0 14917 225005 06.07.21 18:58:44.000 06.07.21 18:58:26.000 225005 0000 0000 000 00000 150 00385 144 00900 078 01269 139 01399 054 02809 147 03221 039 03342 046 04013 250 04028 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000033
31 M 0 14917 253839 06.07.21 19:05:14.000 06.07.21 19:04:55.000 253839 0000 0000 000 00000 035 00205 091 00854 076 01154 075 01573 116 02149 051 03003 169 04771 046 04901 250 04909 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000034
32 M 0 14917 203292 06.07.21 19:06:02.000 06.07.21 19:05:44.000 203292 0000 0000 000 00000 150 00459 144 00649 078 01001 139 01142 250 04335 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000035
33 M 0 14917 224819 06.07.21 19:07:54.000 06.07.21 19:07:36.000 224819 0000 0000 000 00000 035 00170 091 00652 076 00916 075 01274 116 01726 051 02644 169 03768 046 03845 250 03850 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000036
34 M 0 14917 185940 06.07.21 19:10:00.000 06.07.21 19:09:42.000 185940 0000 0000 000 00000 035 00231 091 00661 076 00973 075 01383 116 02400 169 04881 046 04999 250 05007 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000037
35 M 0 14917 510880 06.07.21 19:10:22.000 06.07.21 19:10:04.000 510880 0000 0000 000 00000 035 00192 091 00494 076 00836 075 01191 116 01734 051 02440 169 03597 046 03727 250 03748 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000038
36 M 0 14917 204836 06.07.21 19:21:01.000 06.07.21 19:20:43.000 204836 0000 0000 000 00000 035 00134 091 00327 076 00496 075 00702 116 00956 119 01084 095 01332 107 01427 051 01940 169 02542 046 02611 250 02616 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000039
37 M 0 14917 206546 06.07.21 19:21:09.000 06.07.21 19:20:50.000 206546 0000 0000 250 00009 051 00850 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000040
38 M 0 14917 165351 06.07.21 19:27:55.000 06.07.21 19:27:37.000 165351 0000 0000 000 00000 035 00110 091 00335 076 00560 075 00812 116 01158 051 01600 169 02287 046 02363 250 02373 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000041
39 M 0 14917 207732 06.07.21 19:29:43.000 06.07.21 19:29:24.000 207732 0000 0000 000 00000 035 00143 091 00394 076 00597 075 00886 116 01227 119 01402 095 01750 107 01875 051 02714 169 03498 046 03548 250 03564 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000042
40 M 0 14917 086252 06.07.21 19:30:50.000 06.07.21 19:30:32.000 086252 0000 0000 000 00000 035 00154 091 00399 076 00628 075 00991 116 01423 051 02243 169 03407 046 03512 250 03521 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000043
41 M 0 14917 245739 06.07.21 19:30:59.000 06.07.21 19:30:41.000 245739 0000 0000 000 00000 035 00366 091 00662 076 00934 075 01350 116 01933 051 02763 169 03944 046 04039 250 04054 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000044
42 M 0 14917 186000 06.07.21 19:31:14.000 06.07.21 19:30:56.000 186000 0000 0000 000 00000 035 00245 091 00598 076 00923 075 01360 116 02005 051 02688 169 04109 046 04220 250 04231 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000045
43 M 0 14917 246774 06.07.21 19:36:04.000 06.07.21 19:35:46.000 246774 0000 0000 000 00000 150 00279 144 00580 078 01013 139 01162 054 01627 147 02823 039 02955 045 03875 169 04263 046 04385 250 04394 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000046
44 M 0 14917 255737 06.07.21 19:37:12.000 06.07.21 19:36:54.000 255737 0000 0000 000 00000 044 00049 150 00200 143 00467 144 00719 097 02533 039 02769 070 03031 099 03032 046 03184 250 03433 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000047
45 M 0 14917 236001 06.07.21 19:38:18.000 06.07.21 19:38:00.000 236001 0000 0000 000 00000 035 00341 091 00783 076 01182 250 04032 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000048
46 M 0 14917 248758 06.07.21 19:59:05.000 06.07.21 19:58:47.000 248758 0000 0000 000 00000 035 00153 091 00399 076 00638 075 00946 116 01354 119 01549 095 02102 107 02251 051 02917 169 03777 046 03864 250 03873 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000049
47 M 0 14917 212044 06.07.21 20:02:44.000 06.07.21 20:02:26.000 212044 0000 0000 000 00000 035 00173 091 00450 076 00867 075 01317 116 01792 051 02395 169 03546 046 03655 250 03747 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000050

View File

@ -1,9 +0,0 @@
# Auto generated ttime configuration file.
-codes "35,91,76,75,116,119,95,107,51,169,46;35,91,76,75,116,51,169,46;44,150,143,144,54,97,39,70,46;150,144,78,139,54,147,39,45,169,46"
-courses "Herrer A-lang;Damer A-kort,Herrer A-kort;Nybegynner;Damer C,Herrer C"
-database "C:/Users/trygve/Documents/sc_2021_ttime/db_eventor.csv"
-emit "C:/Users/trygve/Documents/sc_2021_ttime/mtr.txt.txt"
-wxml "//dav.trygve.me@SSL/DavWWWRoot/Resultater.xml"
-htmlres "results.html"
-htmlsplit "splittimes.html"
-port COM3

View File

@ -1,38 +0,0 @@
import serial
import mtrreader
from rich import inspect
import mtrlog
from datetime import datetime
import binascii
import otime
mtr = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=40)
def main():
pree = mtr.read_until(expected=b'\xFF\xFF\xFF\xFF')
size = mtr.read(size=1)
if size == b'\xe6':
meat = mtr.read(229)
print('START')
full = b'\xFF\xFF\xFF\xFF' + size + meat
print(binascii.hexlify(full))
msg = mtrreader.MtrDataMessage(full)
f = mtrlog.MtrLogFormatter
#print(f.format(f, msg, datetime.now()))
#card_r_from_mtr_bytes(full)
inspect(otime.card_punch.from_mtr_bytes(full))
print('END')
elif size == b'\x37':
meat = mtr.read(55)
status = mtrreader.MtrStatusMessage(meat)
inspect(status)
print(status.year(),status.month(),status.day(),status.hours(),status.minutes())
main()
def send_status_command(mtr):
mtr.write(b'/ST')
if __name__ == '__main__':
#send_status_command(mtr)
main()

View File

@ -0,0 +1,2 @@
#!/bin/bash
socat -d -d pty,rawer,b9600 pty,rawer,b9600

View File

@ -1,3 +1,5 @@
import sys
sys.path.insert(0, '../../otime')
import argparse
import serial
import otime
@ -17,10 +19,10 @@ def main():
args = argparser.parse_args()
port = serial.Serial(port=args.port, baudrate=9600)
event = otime.event(0, 'NoName')
event.import_mtr_file(args.file)
event = otime.Event(0, 'NoName')
event.read_mtr_file(args.file)
for card in event.card_punches:
for card in event.card_dumps:
input('Press enter to send next card')
if args.verbose == True:
inspect(card)
@ -73,4 +75,4 @@ def card_to_bytes(card):
return msg
if __name__ == '__main__':
main()
main()

View File

@ -0,0 +1,632 @@
<?xml version="1.0" encoding="utf-8"?>
<CourseData xmlns="http://www.orienteering.org/datastandard/3.0" iofVersion="3.0" createTime="2023-07-21T22:04:10.2457657+02:00" creator="Purple Pen version 3.4.1">
<Event>
<Name>Sommercup 3 2023</Name>
</Event>
<RaceCourseData>
<Map>
<Scale>5000</Scale>
<MapPositionTopLeft x="554.47" y="-177.25" />
<MapPositionBottomRight x="692.79" y="-369.33" />
</Map>
<Control type="Start">
<Id>STA1</Id>
<Position lng="8.0325647364199977" lat="58.149244295853094" />
<MapPosition x="611" y="-253.09" />
</Control>
<Control type="Control">
<Id>144</Id>
<Position lng="8.03499900755055" lat="58.14787024882547" />
<MapPosition x="639.22" y="-284.09" />
</Control>
<Control type="Control">
<Id>149</Id>
<Position lng="8.0356561499559387" lat="58.145967340260484" />
<MapPosition x="646.35" y="-326.57" />
</Control>
<Control type="Control">
<Id>97</Id>
<Position lng="8.0378436728081422" lat="58.148107760064974" />
<MapPosition x="672.78" y="-279.28" />
</Control>
<Control type="Control">
<Id>103</Id>
<Position lng="8.0360008606351734" lat="58.147370196098493" />
<MapPosition x="650.85" y="-295.39" />
</Control>
<Control type="Control">
<Id>101</Id>
<Position lng="8.0355523755463274" lat="58.14559175907" />
<MapPosition x="645" y="-334.92" />
</Control>
<Control type="Control">
<Id>90</Id>
<Position lng="8.03400116974127" lat="58.146171185066841" />
<MapPosition x="626.93" y="-321.75" />
</Control>
<Control type="Control">
<Id>92</Id>
<Position lng="8.037920589403484" lat="58.147115867672035" />
<MapPosition x="673.37" y="-301.38" />
</Control>
<Control type="Control">
<Id>58</Id>
<Position lng="8.0309530672863474" lat="58.151044212250568" />
<MapPosition x="592.6" y="-212.74" />
</Control>
<Control type="Control">
<Id>31</Id>
<Position lng="8.0331378896304528" lat="58.151633896822609" />
<MapPosition x="618.51" y="-199.98" />
</Control>
<Control type="Control">
<Id>57</Id>
<Position lng="8.0302424086319544" lat="58.150300886183452" />
<MapPosition x="584" y="-229.17" />
</Control>
<Control type="Control">
<Id>117</Id>
<Position lng="8.035556432214376" lat="58.148411258327947" />
<MapPosition x="645.95" y="-272.14" />
</Control>
<Control type="Control">
<Id>142</Id>
<Position lng="8.0365230924736046" lat="58.148481196814345" />
<MapPosition x="657.35" y="-270.74" />
</Control>
<Control type="Control">
<Id>145</Id>
<Position lng="8.0363472980037187" lat="58.147945771039794" />
<MapPosition x="655.11" y="-282.64" />
</Control>
<Control type="Control">
<Id>44</Id>
<Position lng="8.0350591413137611" lat="58.147369304193369" />
<MapPosition x="639.76" y="-295.26" />
</Control>
<Control type="Control">
<Id>143</Id>
<Position lng="8.034073018408165" lat="58.147580029389005" />
<MapPosition x="628.22" y="-290.4" />
</Control>
<Control type="Control">
<Id>79</Id>
<Position lng="8.0366980493101252" lat="58.14685271886821" />
<MapPosition x="658.89" y="-307.03" />
</Control>
<Control type="Control">
<Id>106</Id>
<Position lng="8.0327779013974716" lat="58.147034162100653" />
<MapPosition x="612.8" y="-302.33" />
</Control>
<Control type="Control">
<Id>77</Id>
<Position lng="8.0367979953104989" lat="58.14883365867427" />
<MapPosition x="660.7" y="-262.94" />
</Control>
<Control type="Control">
<Id>48</Id>
<Position lng="8.0348013268232" lat="58.148715229049564" />
<MapPosition x="637.16" y="-265.24" />
</Control>
<Control type="Control">
<Id>118</Id>
<Position lng="8.03197142023774" lat="58.148678408040652" />
<MapPosition x="603.83" y="-265.59" />
</Control>
<Control type="Control">
<Id>55</Id>
<Position lng="8.0327348916329768" lat="58.151065104941317" />
<MapPosition x="613.58" y="-212.57" />
</Control>
<Control type="Control">
<Id>82</Id>
<Position lng="8.031512751007698" lat="58.150263077918389" />
<MapPosition x="598.94" y="-230.23" />
</Control>
<Control type="Control">
<Id>53</Id>
<Position lng="8.0313666570997064" lat="58.149110867807259" />
<MapPosition x="596.85" y="-255.86" />
</Control>
<Control type="Control">
<Id>52</Id>
<Position lng="8.0322493655393181" lat="58.152061531720946" />
<MapPosition x="608.18" y="-190.31" />
</Control>
<Control type="Control">
<Id>80</Id>
<Position lng="8.0298507978211617" lat="58.150581185788226" />
<MapPosition x="579.48" y="-222.86" />
</Control>
<Control type="Control">
<Id>59</Id>
<Position lng="8.0298617333084277" lat="58.151256560207671" />
<MapPosition x="579.82" y="-207.83" />
</Control>
<Control type="Control">
<Id>91</Id>
<Position lng="8.0354699440400381" lat="58.14721847398765" />
<MapPosition x="644.55" y="-298.68" />
</Control>
<Control type="Control">
<Id>63</Id>
<Position lng="8.03626480733685" lat="58.149405035587733" />
<MapPosition x="654.61" y="-250.13" />
</Control>
<Control type="Control">
<Id>56</Id>
<Position lng="8.03370406333622" lat="58.149676057790785" />
<MapPosition x="624.55" y="-243.67" />
</Control>
<Control type="Control">
<Id>54</Id>
<Position lng="8.03191788599621" lat="58.149594600771721" />
<MapPosition x="603.49" y="-245.18" />
</Control>
<Control type="Control">
<Id>61</Id>
<Position lng="8.0322226572704309" lat="58.15085453951724" />
<MapPosition x="607.48" y="-217.18" />
</Control>
<Control type="Control">
<Id>65</Id>
<Position lng="8.0342302154182867" lat="58.14910616635661" />
<MapPosition x="630.56" y="-256.44" />
</Control>
<Control type="Control">
<Id>105</Id>
<Position lng="8.0371868228530285" lat="58.147186024709271" />
<MapPosition x="664.75" y="-299.69" />
</Control>
<Control type="Finish">
<Id>FIN1</Id>
<Position lng="8.0305476762617225" lat="58.150000653056168" />
<MapPosition x="587.49" y="-235.9" />
</Control>
<Course>
<Name>A-lang</Name>
<Length>3200</Length>
<CourseControl type="Start">
<Control>STA1</Control>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>1</MapText>
<LegLength>240</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>117</Control>
<MapText>2</MapText>
<LegLength>69</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>142</Control>
<MapText>3</MapText>
<LegLength>57</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>145</Control>
<MapText>4</MapText>
<LegLength>61</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>5</MapText>
<LegLength>80</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>44</Control>
<MapText>6</MapText>
<LegLength>56</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>143</Control>
<MapText>7</MapText>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>8</MapText>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>103</Control>
<MapText>9</MapText>
<LegLength>81</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>79</Control>
<MapText>10</MapText>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>149</Control>
<MapText>11</MapText>
<LegLength>116</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>101</Control>
<MapText>12</MapText>
<LegLength>42</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>90</Control>
<MapText>13</MapText>
<LegLength>112</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>106</Control>
<MapText>14</MapText>
<LegLength>120</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>79</Control>
<MapText>15</MapText>
<LegLength>232</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>92</Control>
<MapText>16</MapText>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>97</Control>
<MapText>17</MapText>
<LegLength>111</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>77</Control>
<MapText>18</MapText>
<LegLength>102</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>48</Control>
<MapText>19</MapText>
<LegLength>118</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>118</Control>
<MapText>20</MapText>
<LegLength>167</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>53</Control>
<MapText>21</MapText>
<LegLength>60</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>82</Control>
<MapText>22</MapText>
<LegLength>129</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>55</Control>
<MapText>23</MapText>
<LegLength>115</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>24</MapText>
<LegLength>105</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>31</Control>
<MapText>25</MapText>
<LegLength>144</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>52</Control>
<MapText>26</MapText>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>27</MapText>
<LegLength>137</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>80</Control>
<MapText>28</MapText>
<LegLength>83</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>59</Control>
<MapText>29</MapText>
<LegLength>75</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>30</MapText>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>57</Control>
<MapText>31</MapText>
<LegLength>93</LegLength>
</CourseControl>
<CourseControl type="Finish" specialInstruction="FunnelTapedRoute">
<Control>FIN1</Control>
<LegLength>38</LegLength>
</CourseControl>
</Course>
<Course>
<Name>A-kort</Name>
<Length>2600</Length>
<CourseControl type="Start">
<Control>STA1</Control>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>1</MapText>
<LegLength>240</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>145</Control>
<MapText>2</MapText>
<LegLength>80</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>142</Control>
<MapText>3</MapText>
<LegLength>61</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>117</Control>
<MapText>4</MapText>
<LegLength>57</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>5</MapText>
<LegLength>69</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>103</Control>
<MapText>6</MapText>
<LegLength>81</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>79</Control>
<MapText>7</MapText>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>149</Control>
<MapText>8</MapText>
<LegLength>116</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>101</Control>
<MapText>9</MapText>
<LegLength>42</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>90</Control>
<MapText>10</MapText>
<LegLength>112</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>106</Control>
<MapText>11</MapText>
<LegLength>120</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>79</Control>
<MapText>12</MapText>
<LegLength>232</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>92</Control>
<MapText>13</MapText>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>97</Control>
<MapText>14</MapText>
<LegLength>111</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>77</Control>
<MapText>15</MapText>
<LegLength>102</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>48</Control>
<MapText>16</MapText>
<LegLength>118</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>118</Control>
<MapText>17</MapText>
<LegLength>167</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>53</Control>
<MapText>18</MapText>
<LegLength>60</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>82</Control>
<MapText>19</MapText>
<LegLength>129</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>55</Control>
<MapText>20</MapText>
<LegLength>115</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>21</MapText>
<LegLength>105</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>80</Control>
<MapText>22</MapText>
<LegLength>83</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>59</Control>
<MapText>23</MapText>
<LegLength>75</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>24</MapText>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>57</Control>
<MapText>25</MapText>
<LegLength>93</LegLength>
</CourseControl>
<CourseControl type="Finish" specialInstruction="FunnelTapedRoute">
<Control>FIN1</Control>
<LegLength>38</LegLength>
</CourseControl>
</Course>
<Course>
<Name>N</Name>
<Length>1300</Length>
<CourseControl type="Start">
<Control>STA1</Control>
</CourseControl>
<CourseControl type="Control">
<Control>65</Control>
<MapText>1</MapText>
<LegLength>130</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>48</Control>
<MapText>2</MapText>
<LegLength>55</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>3</MapText>
<LegLength>95</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>91</Control>
<MapText>4</MapText>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>97</Control>
<MapText>5</MapText>
<LegLength>171</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>63</Control>
<MapText>6</MapText>
<LegLength>172</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>56</Control>
<MapText>7</MapText>
<LegLength>154</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>54</Control>
<MapText>8</MapText>
<LegLength>106</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>61</Control>
<MapText>9</MapText>
<LegLength>141</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>10</MapText>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>57</Control>
<MapText>11</MapText>
<LegLength>93</LegLength>
</CourseControl>
<CourseControl type="Finish" specialInstruction="FunnelTapedRoute">
<Control>FIN1</Control>
<LegLength>38</LegLength>
</CourseControl>
</Course>
<Course>
<Name>C</Name>
<Length>1500</Length>
<CourseControl type="Start">
<Control>STA1</Control>
</CourseControl>
<CourseControl type="Control">
<Control>48</Control>
<MapText>1</MapText>
<LegLength>175</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>97</Control>
<MapText>2</MapText>
<LegLength>191</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>105</Control>
<MapText>3</MapText>
<LegLength>110</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>103</Control>
<MapText>4</MapText>
<LegLength>73</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>91</Control>
<MapText>5</MapText>
<LegLength>36</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>144</Control>
<MapText>6</MapText>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>143</Control>
<MapText>7</MapText>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>53</Control>
<MapText>8</MapText>
<LegLength>233</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>54</Control>
<MapText>9</MapText>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>55</Control>
<MapText>10</MapText>
<LegLength>171</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>31</Control>
<MapText>11</MapText>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>58</Control>
<MapText>12</MapText>
<LegLength>144</LegLength>
</CourseControl>
<CourseControl type="Control">
<Control>57</Control>
<MapText>13</MapText>
<LegLength>93</LegLength>
</CourseControl>
<CourseControl type="Finish" specialInstruction="FunnelTapedRoute">
<Control>FIN1</Control>
<LegLength>38</LegLength>
</CourseControl>
</Course>
</RaceCourseData>
</CourseData>

115
test_files/sc3_23/db.csv Normal file
View File

@ -0,0 +1,115 @@
32799;X;Ahlbäck, Johan;Herrer A-lang;Wing OK;A,18618,15,379,32799;250596
34456;X;Andersen, Pål;Herrer A-lang;Søgne og Songdalen OK;A,18618,4,341,34456;253839
10520;X;Balchen, Eirik Glad;Herrer A-lang;Oddersjaa SSK;A,18618,4,248,10520;249929
9500;;Balchen, Frank Glad;Herrer A-kort;Oddersjaa SSK;A,18618,4,248,9500;515307
38237;X;Balchen, Nora Sandvand;Nybegynner;Oddersjaa SSK;A,18618,4,248,38237;251359
37658;X;Balchen, Ulrik Sandvand;Nybegynner;Oddersjaa SSK;A,18618,4,248,37658;255744
25273;X;Beckmann, Benedicte;Damer A-kort;Kristiansand OK;A,18618,4,189,25273;212044
30872;X;Birkeland, Kristian;Herrer A-lang;Birkenes IL;A,18618,4,40,30872;261030
34463;X;Birkeland, Per Are;Herrer A-lang;Birkenes IL;A,18618,4,40,34463;515883
7615;X;Bjørgum, Jon A;Herrer A-kort;IL Vindbjart;A,18618,4,166,7615;508819
190;X;Bjørnsen, Jack;Herrer A-kort;Kristiansand OK;A,18618,4,189,190;510880
6557;X;Blandkjenn, Jan;Herrer A-kort;Kristiansand OK;A,18618,4,189,6557;261416
35100;X;Böhm, Ulrik Mascali;Herrer A-lang;Kristiansand OK;A,18618,4,189,35100;247654
29280;X;Bøen, Christian;Herrer A-lang;Kristiansand OK;A,18618,4,189,29280;259979
2902;X;Bøen, Silje;Damer A-kort;Kristiansand OK;A,18618,4,189,2902;260788
13515;X;Børte, Gro;Damer A-kort;Kristiansand OK;A,18618,4,189,13515;512809
28601;X;Flaa, Mette Javenes;Damer A-kort;Birkenes IL;A,18618,4,40,28601;521029
24007;;Flaa, Per Johan;Herrer A-kort;Birkenes IL;A,18618,4,40,24007;255325
17763;X;Flaa, Sigmund Javenes;Herrer A-lang;Birkenes IL;A,18618,4,40,17763;521030
1400;X;Gjelsten, Ståle;Herrer A-lang;Kristiansand OK;A,18618,4,189,1400;506629
26200;X;Harstad Arntsen, Kajsa;Damer A-lang;Heming Orientering;A,18618,3,114,26200;233748
6762;X;Heivoll, Reidar;Herrer A-kort;Søgne og Songdalen OK;A,18618,4,341,6762;511474
6903;X;Hodne, Erik;Herrer A-kort;Oddersjaa SSK;A,18618,4,248,6903;511333
14996;X;Håland, Kjell Arne;Herrer A-lang;OK Sør;A,18618,4,257,14996;525046
8062;X;Johannessen, Nils Arne;Herrer A-lang;Kristiansand OK;A,18618,4,189,8062;512690
7432;X;Jonsmyr, Svein Roar;Herrer A-kort;Birkenes IL;A,18618,4,40,7432;203394
6907;X;Jørgensen, Magne Reier;Herrer A-kort;Kristiansand OK;A,18618,4,189,6907;255211
18662;X;Kalleson, Tina;Damer A-lang;Oppsal Orientering;A,18618,3,268,18662;255632
21788;X;Keskin, Aydin;Herrer C;Torridal IL;A,18618,4,352,21788;241013
25031;X;Killingmo, Lene Anett;Damer A-kort;OK Øst;A,18618,3,258,25031;514688
4627;X;Kittelsen, Rune;Herrer A-kort;Kristiansand OK;A,18618,4,189,4627;402905
29758;X;Kuhnle, Eivind Irgens;Herrer A-lang;Kristiansand OK;A,18618,4,189,29758;521042
7062;X;Larsen, Per;Herrer A-kort;Kristiansand OK;A,18618,4,189,7062;527382
1764;X;Laugen, Jan Petter;Herrer A-kort;IL Imås;A,18618,4,148,1764;517441
13170;X;Laugen, Kari Timenes;Damer A-kort;IL Imås;A,18618,4,148,13170;511781
52598;X;Loka, Daniel;Herrer C;;A,18618,0,,52598;259973
7848;X;Mestad, Kristin;Damer A-kort;Torridal IL;A,18618,4,352,7848;243222
7037;X;Mestad, Mette;Damer A-kort;Torridal IL;A,18618,4,352,7037;236434
6333;X;Moe, Dag;Herrer A-kort;Kristiansand OK;A,18618,4,189,6333;519875
28130;X;Moe, Dag Jørgen;Nybegynner;Torridal IL;A,18618,4,352,28130;519898
11548;X;Moe, Else;Damer C;Torridal IL;A,18618,4,352,11548;243121
5575;X;Moe, Jostein;Herrer A-lang;Torridal IL;A,18618,4,352,5575;519899
6335;X;Moe, Oddbjørg;Damer C;Kristiansand OK;A,18618,4,189,6335;519874
43585;X;Mollestad, Andreas;Herrer C;Kristiansand OK;A,18618,4,189,43585;260802
13746;X;Mollestad, Gunnar;Herrer A-lang;Kristiansand OK;A,18618,4,189,13746;266477
22756;X;Mollestad, Markus;Herrer A-lang;Kristiansand OK;A,18618,4,189,22756;212198
7026;X;Mulen, Ingvild;Damer A-kort;Kristiansand OK;A,18618,4,189,7026;510878
22979;X;Ribe, Anne Karin;Damer A-kort;Søgne og Songdalen OK;A,18618,4,341,22979;510423
8790;X;Ribe, Kristen;Herrer A-kort;Søgne og Songdalen OK;A,18618,4,341,8790;529329
36242;X;Solås, Arnt Egil;Herrer A-kort;Søgne og Songdalen OK;A,18618,4,341,36242;513623
28866;X;Solås, Frank;Herrer C;Søgne og Songdalen OK;A,18618,4,341,28866;520934
901;X;Strand, Erling;Herrer A-kort;Bergens TF;A,18618,8,37,901;268438
12712;X;Sundtjønn, Gunhild Aamli;Damer A-kort;Årvoll IL;A,18618,3,400,12712;265575
1042;X;Sundtjønn, Tone Aamli;Damer A-lang;Lillomarka OL;A,18618,3,203,1042;265937
12711;X;Sundtjønn, Tore;Herrer A-kort;Årvoll IL;A,18618,3,400,12711;237782
8584;X;Syvertsen, Svein Olav;Herrer A-kort;IL Høvdingen;A,18618,4,145,8584;229995
8029;X;Sæstad, Reidar;Herrer A-kort;Kristiansand OK;A,18618,4,189,8029;257393
6554;X;Sætran, Bjørn Idar;Herrer A-kort;IF Trauma;A,18618,4,134,6554;216677
34350;X;Sævig, Christian;Herrer A-kort;Afry BIL Kristiansand;A,18618,0,1798,34350;247823
7457;X;Thisted, Martin;Herrer C;Kristiansand OK;A,18618,4,189,7457;184307
20257;;Thisted, Ulrik;Herrer C;Kristiansand OK;A,18618,4,189,20257;184335
24049;X;Tobiassen, Marius;Herrer A-lang;IK Grane Arendal Orientering;A,18618,4,135,24049;516150
6523;X;Tømt, Per Kristian;Herrer A-lang;IL Imås;A,18618,4,148,6523;515210
27869;X;Udø, Inger Aurebekk;Damer A-kort;Torridal IL;A,18618,4,352,27869;86197
27870;X;Udø, Tuva Aurebekk;Damer A-kort;Torridal IL;A,18618,4,352,27870;86173
11494;X;Vaaje, Lars Peder;Herrer A-kort;Marnardal IL;A,18618,4,216,11494;515687
9249;X;Vassbø, Halvor;Herrer A-lang;IL Vindbjart;A,18618,4,166,9249;236736
25;X;Sedláček, Patrik;Herrer A-kort;Czech Republic;;263065
26;X;Junek, Matouš;Herrer A-kort;Czech Republic;;263090
27;X;Zápotocký, Jiří;Herrer A-kort;Czech Republic;;263083
28;X;Teringl, Vojtěch;Herrer A-lang;Czech Republic;;263082
29;X;Štrait, Vilém;Herrer A-kort;Czech Republic;;263074
30;X;Kuchař, Ondřej;Herrer A-lang;Czech Republic;;263081
31;X;Sedláček, Jaroslav;Herrer A-lang;Czech Republic;;263086
32;X;Kožina, Štěpán;Herrer A-lang;Czech Republic;;263089
33;X;Kabát, Martin;Herrer A-lang;Czech Republic;;263064
34;X;Čtrnáct, Franta;Herrer A-lang;Czech Republic;;263070
35;X;Gajda, Martin;Herrer A-lang;Czech Republic;;263073
36;X;Titz, Adam;Herrer A-lang;Czech Republic;;263085
37;X;Měšťan, Ondra;Herrer A-lang;Czech Republic;;263088
38;;Houska, Jindra;Herrer A-lang;Czech Republic;;263071
39;X;Navrátil, Šimon;Herrer A-lang;Czech Republic;;263079
40;X;Kabát, Honza;Herrer A-lang;Czech Republic;;263076
41;X;Landovský, Tomáš;Herrer A-lang;Czech Republic;;263072
42;X;Gajda, Jan;Herrer A-lang;Czech Republic;;263066
1;X;Vondráčková, Bětka;Damer A-kort;Czech Republic;;263091
2;X;Havlová, Tereza;Damer A-kort;Czech Republic;;263078
3;X;Mišeková, Kateřina;Damer A-kort;Czech Republic;;263067
4;X;Gregorová, Alice;Damer A-kort;Czech Republic;;263069
5;X;Janošíková, Marie;Damer A-kort;Czech Republic;;263062
6;X;Koubová, Hanka;Damer A-lang;Czech Republic;;263077
7;X;Škáchová, Viki;Damer A-lang;Czech Republic;;263084
8;X;Měšťanová, Terka;Damer A-lang;Czech Republic;;263075
9;X;Kotková, Adéla;Damer A-lang;Czech Republic;;263092
10;X;Housková, Bára;Damer A-lang;Czech Republic;;263063
11;X;Bambousková, Julča;Damer A-lang;Czech Republic;;263080
12;X;Lošťáková, Sára;Damer A-lang;Czech Republic;;263068
13;X;Štěpová, Kačka;Damer A-lang;Czech Republic;;249910
14;X;Magazu, Annabelle;Damer A-lang;Czech Republic;;255629
15;X;Štemberová, Bára;Damer A-lang;Czech Republic;;249905
16;X;Tomášková, Linda;Damer A-lang;Czech Republic;;259976
17;X;Krejčova, Lucka;Damer A-lang;Czech Republic;;251361
18;X;Kodejšová, Markéta;Damer A-lang;Czech Republic;;259974
19;X;Bartošová, Marie;Damer A-lang;Czech Republic;;249918
20;X;Arnoštová, Veronika;Damer A-lang;Czech Republic;;255638
21;X;Škáchová, Majda;Damer A-lang;Czech Republic;;259997
22;X;Plochová, Dominika;Damer A-lang;Czech Republic;;249916
23;X;Gregorová, Kamila;Damer A-lang;Czech Republic;;259978
24;X;Landovská, Petra;Damer A-lang;Czech Republic;;249911
25;X;Elleder David;Herrer A-lang;Czech Republic;;249917
26;X;Kvaase, Asle;Herrer A-lang;;;187059
27;X;Hodne, Håkon;Nybegynner;Oddersjaa SSK;;251252
28;X;Hodne, Eirik;Herrer A-lang;Oddersjaa SSK;;268492
29;X;Knutsen, Arild;Herrer A-kort;Søgne og Songdalen OK;;197924
30;X;Strand, Anette;Damer A-kort;Bergens TF;;245739
1 32799 X Ahlbäck, Johan Herrer A-lang Wing OK A,18618,15,379,32799 250596
2 34456 X Andersen, Pål Herrer A-lang Søgne og Songdalen OK A,18618,4,341,34456 253839
3 10520 X Balchen, Eirik Glad Herrer A-lang Oddersjaa SSK A,18618,4,248,10520 249929
4 9500 Balchen, Frank Glad Herrer A-kort Oddersjaa SSK A,18618,4,248,9500 515307
5 38237 X Balchen, Nora Sandvand Nybegynner Oddersjaa SSK A,18618,4,248,38237 251359
6 37658 X Balchen, Ulrik Sandvand Nybegynner Oddersjaa SSK A,18618,4,248,37658 255744
7 25273 X Beckmann, Benedicte Damer A-kort Kristiansand OK A,18618,4,189,25273 212044
8 30872 X Birkeland, Kristian Herrer A-lang Birkenes IL A,18618,4,40,30872 261030
9 34463 X Birkeland, Per Are Herrer A-lang Birkenes IL A,18618,4,40,34463 515883
10 7615 X Bjørgum, Jon A Herrer A-kort IL Vindbjart A,18618,4,166,7615 508819
11 190 X Bjørnsen, Jack Herrer A-kort Kristiansand OK A,18618,4,189,190 510880
12 6557 X Blandkjenn, Jan Herrer A-kort Kristiansand OK A,18618,4,189,6557 261416
13 35100 X Böhm, Ulrik Mascali Herrer A-lang Kristiansand OK A,18618,4,189,35100 247654
14 29280 X Bøen, Christian Herrer A-lang Kristiansand OK A,18618,4,189,29280 259979
15 2902 X Bøen, Silje Damer A-kort Kristiansand OK A,18618,4,189,2902 260788
16 13515 X Børte, Gro Damer A-kort Kristiansand OK A,18618,4,189,13515 512809
17 28601 X Flaa, Mette Javenes Damer A-kort Birkenes IL A,18618,4,40,28601 521029
18 24007 Flaa, Per Johan Herrer A-kort Birkenes IL A,18618,4,40,24007 255325
19 17763 X Flaa, Sigmund Javenes Herrer A-lang Birkenes IL A,18618,4,40,17763 521030
20 1400 X Gjelsten, Ståle Herrer A-lang Kristiansand OK A,18618,4,189,1400 506629
21 26200 X Harstad Arntsen, Kajsa Damer A-lang Heming Orientering A,18618,3,114,26200 233748
22 6762 X Heivoll, Reidar Herrer A-kort Søgne og Songdalen OK A,18618,4,341,6762 511474
23 6903 X Hodne, Erik Herrer A-kort Oddersjaa SSK A,18618,4,248,6903 511333
24 14996 X Håland, Kjell Arne Herrer A-lang OK Sør A,18618,4,257,14996 525046
25 8062 X Johannessen, Nils Arne Herrer A-lang Kristiansand OK A,18618,4,189,8062 512690
26 7432 X Jonsmyr, Svein Roar Herrer A-kort Birkenes IL A,18618,4,40,7432 203394
27 6907 X Jørgensen, Magne Reier Herrer A-kort Kristiansand OK A,18618,4,189,6907 255211
28 18662 X Kalleson, Tina Damer A-lang Oppsal Orientering A,18618,3,268,18662 255632
29 21788 X Keskin, Aydin Herrer C Torridal IL A,18618,4,352,21788 241013
30 25031 X Killingmo, Lene Anett Damer A-kort OK Øst A,18618,3,258,25031 514688
31 4627 X Kittelsen, Rune Herrer A-kort Kristiansand OK A,18618,4,189,4627 402905
32 29758 X Kuhnle, Eivind Irgens Herrer A-lang Kristiansand OK A,18618,4,189,29758 521042
33 7062 X Larsen, Per Herrer A-kort Kristiansand OK A,18618,4,189,7062 527382
34 1764 X Laugen, Jan Petter Herrer A-kort IL Imås A,18618,4,148,1764 517441
35 13170 X Laugen, Kari Timenes Damer A-kort IL Imås A,18618,4,148,13170 511781
36 52598 X Loka, Daniel Herrer C A,18618,0,,52598 259973
37 7848 X Mestad, Kristin Damer A-kort Torridal IL A,18618,4,352,7848 243222
38 7037 X Mestad, Mette Damer A-kort Torridal IL A,18618,4,352,7037 236434
39 6333 X Moe, Dag Herrer A-kort Kristiansand OK A,18618,4,189,6333 519875
40 28130 X Moe, Dag Jørgen Nybegynner Torridal IL A,18618,4,352,28130 519898
41 11548 X Moe, Else Damer C Torridal IL A,18618,4,352,11548 243121
42 5575 X Moe, Jostein Herrer A-lang Torridal IL A,18618,4,352,5575 519899
43 6335 X Moe, Oddbjørg Damer C Kristiansand OK A,18618,4,189,6335 519874
44 43585 X Mollestad, Andreas Herrer C Kristiansand OK A,18618,4,189,43585 260802
45 13746 X Mollestad, Gunnar Herrer A-lang Kristiansand OK A,18618,4,189,13746 266477
46 22756 X Mollestad, Markus Herrer A-lang Kristiansand OK A,18618,4,189,22756 212198
47 7026 X Mulen, Ingvild Damer A-kort Kristiansand OK A,18618,4,189,7026 510878
48 22979 X Ribe, Anne Karin Damer A-kort Søgne og Songdalen OK A,18618,4,341,22979 510423
49 8790 X Ribe, Kristen Herrer A-kort Søgne og Songdalen OK A,18618,4,341,8790 529329
50 36242 X Solås, Arnt Egil Herrer A-kort Søgne og Songdalen OK A,18618,4,341,36242 513623
51 28866 X Solås, Frank Herrer C Søgne og Songdalen OK A,18618,4,341,28866 520934
52 901 X Strand, Erling Herrer A-kort Bergens TF A,18618,8,37,901 268438
53 12712 X Sundtjønn, Gunhild Aamli Damer A-kort Årvoll IL A,18618,3,400,12712 265575
54 1042 X Sundtjønn, Tone Aamli Damer A-lang Lillomarka OL A,18618,3,203,1042 265937
55 12711 X Sundtjønn, Tore Herrer A-kort Årvoll IL A,18618,3,400,12711 237782
56 8584 X Syvertsen, Svein Olav Herrer A-kort IL Høvdingen A,18618,4,145,8584 229995
57 8029 X Sæstad, Reidar Herrer A-kort Kristiansand OK A,18618,4,189,8029 257393
58 6554 X Sætran, Bjørn Idar Herrer A-kort IF Trauma A,18618,4,134,6554 216677
59 34350 X Sævig, Christian Herrer A-kort Afry BIL Kristiansand A,18618,0,1798,34350 247823
60 7457 X Thisted, Martin Herrer C Kristiansand OK A,18618,4,189,7457 184307
61 20257 Thisted, Ulrik Herrer C Kristiansand OK A,18618,4,189,20257 184335
62 24049 X Tobiassen, Marius Herrer A-lang IK Grane Arendal Orientering A,18618,4,135,24049 516150
63 6523 X Tømt, Per Kristian Herrer A-lang IL Imås A,18618,4,148,6523 515210
64 27869 X Udø, Inger Aurebekk Damer A-kort Torridal IL A,18618,4,352,27869 86197
65 27870 X Udø, Tuva Aurebekk Damer A-kort Torridal IL A,18618,4,352,27870 86173
66 11494 X Vaaje, Lars Peder Herrer A-kort Marnardal IL A,18618,4,216,11494 515687
67 9249 X Vassbø, Halvor Herrer A-lang IL Vindbjart A,18618,4,166,9249 236736
68 25 X Sedláček, Patrik Herrer A-kort Czech Republic 263065
69 26 X Junek, Matouš Herrer A-kort Czech Republic 263090
70 27 X Zápotocký, Jiří Herrer A-kort Czech Republic 263083
71 28 X Teringl, Vojtěch Herrer A-lang Czech Republic 263082
72 29 X Štrait, Vilém Herrer A-kort Czech Republic 263074
73 30 X Kuchař, Ondřej Herrer A-lang Czech Republic 263081
74 31 X Sedláček, Jaroslav Herrer A-lang Czech Republic 263086
75 32 X Kožina, Štěpán Herrer A-lang Czech Republic 263089
76 33 X Kabát, Martin Herrer A-lang Czech Republic 263064
77 34 X Čtrnáct, Franta Herrer A-lang Czech Republic 263070
78 35 X Gajda, Martin Herrer A-lang Czech Republic 263073
79 36 X Titz, Adam Herrer A-lang Czech Republic 263085
80 37 X Měšťan, Ondra Herrer A-lang Czech Republic 263088
81 38 Houska, Jindra Herrer A-lang Czech Republic 263071
82 39 X Navrátil, Šimon Herrer A-lang Czech Republic 263079
83 40 X Kabát, Honza Herrer A-lang Czech Republic 263076
84 41 X Landovský, Tomáš Herrer A-lang Czech Republic 263072
85 42 X Gajda, Jan Herrer A-lang Czech Republic 263066
86 1 X Vondráčková, Bětka Damer A-kort Czech Republic 263091
87 2 X Havlová, Tereza Damer A-kort Czech Republic 263078
88 3 X Mišeková, Kateřina Damer A-kort Czech Republic 263067
89 4 X Gregorová, Alice Damer A-kort Czech Republic 263069
90 5 X Janošíková, Marie Damer A-kort Czech Republic 263062
91 6 X Koubová, Hanka Damer A-lang Czech Republic 263077
92 7 X Škáchová, Viki Damer A-lang Czech Republic 263084
93 8 X Měšťanová, Terka Damer A-lang Czech Republic 263075
94 9 X Kotková, Adéla Damer A-lang Czech Republic 263092
95 10 X Housková, Bára Damer A-lang Czech Republic 263063
96 11 X Bambousková, Julča Damer A-lang Czech Republic 263080
97 12 X Lošťáková, Sára Damer A-lang Czech Republic 263068
98 13 X Štěpová, Kačka Damer A-lang Czech Republic 249910
99 14 X Magazu, Annabelle Damer A-lang Czech Republic 255629
100 15 X Štemberová, Bára Damer A-lang Czech Republic 249905
101 16 X Tomášková, Linda Damer A-lang Czech Republic 259976
102 17 X Krejčova, Lucka Damer A-lang Czech Republic 251361
103 18 X Kodejšová, Markéta Damer A-lang Czech Republic 259974
104 19 X Bartošová, Marie Damer A-lang Czech Republic 249918
105 20 X Arnoštová, Veronika Damer A-lang Czech Republic 255638
106 21 X Škáchová, Majda Damer A-lang Czech Republic 259997
107 22 X Plochová, Dominika Damer A-lang Czech Republic 249916
108 23 X Gregorová, Kamila Damer A-lang Czech Republic 259978
109 24 X Landovská, Petra Damer A-lang Czech Republic 249911
110 25 X Elleder David Herrer A-lang Czech Republic 249917
111 26 X Kvaase, Asle Herrer A-lang 187059
112 27 X Hodne, Håkon Nybegynner Oddersjaa SSK 251252
113 28 X Hodne, Eirik Herrer A-lang Oddersjaa SSK 268492
114 29 X Knutsen, Arild Herrer A-kort Søgne og Songdalen OK 197924
115 30 X Strand, Anette Damer A-kort Bergens TF 245739

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
https://eventor.orientering.no/Events/Show/18618

View File

@ -0,0 +1,636 @@
<?xml version="1.0" encoding="utf-8"?>
<CourseData>
<IOFVersion version="2.0.3" />
<ModifyDate>
<Date>2023-07-18</Date>
<Clock>18:58</Clock>
</ModifyDate>
<Map>
<Scale>5000</Scale>
<MapPosition x="554.47" y="-177.25" />
</Map>
<StartPoint>
<StartPointCode>STA1</StartPointCode>
<ControlPosition x="443055" y="6445735" />
<MapPosition x="611" y="-253.09" />
</StartPoint>
<Control>
<ControlCode>144</ControlCode>
<ControlPosition x="443196" y="6445580" />
<MapPosition x="639.22" y="-284.09" />
</Control>
<Control>
<ControlCode>149</ControlCode>
<ControlPosition x="443232" y="6445367" />
<MapPosition x="646.35" y="-326.57" />
</Control>
<Control>
<ControlCode>97</ControlCode>
<ControlPosition x="443364" y="6445604" />
<MapPosition x="672.78" y="-279.28" />
</Control>
<Control>
<ControlCode>103</ControlCode>
<ControlPosition x="443254" y="6445523" />
<MapPosition x="650.85" y="-295.39" />
</Control>
<Control>
<ControlCode>101</ControlCode>
<ControlPosition x="443225" y="6445325" />
<MapPosition x="645" y="-334.92" />
</Control>
<Control>
<ControlCode>90</ControlCode>
<ControlPosition x="443135" y="6445391" />
<MapPosition x="626.93" y="-321.75" />
</Control>
<Control>
<ControlCode>92</ControlCode>
<ControlPosition x="443367" y="6445493" />
<MapPosition x="673.37" y="-301.38" />
</Control>
<Control>
<ControlCode>58</ControlCode>
<ControlPosition x="442963" y="6445936" />
<MapPosition x="592.6" y="-212.74" />
</Control>
<Control>
<ControlCode>31</ControlCode>
<ControlPosition x="443093" y="6446000" />
<MapPosition x="618.51" y="-199.98" />
</Control>
<Control>
<ControlCode>57</ControlCode>
<ControlPosition x="442920" y="6445854" />
<MapPosition x="584" y="-229.17" />
</Control>
<Control>
<ControlCode>117</ControlCode>
<ControlPosition x="443230" y="6445639" />
<MapPosition x="645.95" y="-272.14" />
</Control>
<Control>
<ControlCode>142</ControlCode>
<ControlPosition x="443287" y="6445646" />
<MapPosition x="657.35" y="-270.74" />
</Control>
<Control>
<ControlCode>145</ControlCode>
<ControlPosition x="443276" y="6445587" />
<MapPosition x="655.11" y="-282.64" />
</Control>
<Control>
<ControlCode>44</ControlCode>
<ControlPosition x="443199" y="6445524" />
<MapPosition x="639.76" y="-295.26" />
</Control>
<Control>
<ControlCode>143</ControlCode>
<ControlPosition x="443141" y="6445548" />
<MapPosition x="628.22" y="-290.4" />
</Control>
<Control>
<ControlCode>79</ControlCode>
<ControlPosition x="443294" y="6445465" />
<MapPosition x="658.89" y="-307.03" />
</Control>
<Control>
<ControlCode>106</ControlCode>
<ControlPosition x="443064" y="6445488" />
<MapPosition x="612.8" y="-302.33" />
</Control>
<Control>
<ControlCode>77</ControlCode>
<ControlPosition x="443304" y="6445685" />
<MapPosition x="660.7" y="-262.94" />
</Control>
<Control>
<ControlCode>48</ControlCode>
<ControlPosition x="443186" y="6445674" />
<MapPosition x="637.16" y="-265.24" />
</Control>
<Control>
<ControlCode>118</ControlCode>
<ControlPosition x="443019" y="6445672" />
<MapPosition x="603.83" y="-265.59" />
</Control>
<Control>
<ControlCode>55</ControlCode>
<ControlPosition x="443068" y="6445937" />
<MapPosition x="613.58" y="-212.57" />
</Control>
<Control>
<ControlCode>82</ControlCode>
<ControlPosition x="442995" y="6445849" />
<MapPosition x="598.94" y="-230.23" />
</Control>
<Control>
<ControlCode>53</ControlCode>
<ControlPosition x="442984" y="6445721" />
<MapPosition x="596.85" y="-255.86" />
</Control>
<Control>
<ControlCode>52</ControlCode>
<ControlPosition x="443041" y="6446048" />
<MapPosition x="608.18" y="-190.31" />
</Control>
<Control>
<ControlCode>80</ControlCode>
<ControlPosition x="442897" y="6445886" />
<MapPosition x="579.48" y="-222.86" />
</Control>
<Control>
<ControlCode>59</ControlCode>
<ControlPosition x="442899" y="6445961" />
<MapPosition x="579.82" y="-207.83" />
</Control>
<Control>
<ControlCode>91</ControlCode>
<ControlPosition x="443223" y="6445507" />
<MapPosition x="644.55" y="-298.68" />
</Control>
<Control>
<ControlCode>63</ControlCode>
<ControlPosition x="443273" y="6445749" />
<MapPosition x="654.61" y="-250.13" />
</Control>
<Control>
<ControlCode>56</ControlCode>
<ControlPosition x="443123" y="6445782" />
<MapPosition x="624.55" y="-243.67" />
</Control>
<Control>
<ControlCode>54</ControlCode>
<ControlPosition x="443017" y="6445774" />
<MapPosition x="603.49" y="-245.18" />
</Control>
<Control>
<ControlCode>61</ControlCode>
<ControlPosition x="443037" y="6445914" />
<MapPosition x="607.48" y="-217.18" />
</Control>
<Control>
<ControlCode>65</ControlCode>
<ControlPosition x="443153" y="6445718" />
<MapPosition x="630.56" y="-256.44" />
</Control>
<Control>
<ControlCode>105</ControlCode>
<ControlPosition x="443324" y="6445502" />
<MapPosition x="664.75" y="-299.69" />
</Control>
<FinishPoint>
<FinishPointCode>FIN1</FinishPointCode>
<ControlPosition x="442937" y="6445820" />
<MapPosition x="587.49" y="-235.9" />
</FinishPoint>
<Course>
<CourseName>A-lang</CourseName>
<CourseId>0</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>3200</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>144</ControlCode>
<LegLength>240</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>117</ControlCode>
<LegLength>69</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>142</ControlCode>
<LegLength>57</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>145</ControlCode>
<LegLength>61</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>144</ControlCode>
<LegLength>80</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>44</ControlCode>
<LegLength>56</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>143</ControlCode>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>144</ControlCode>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>103</ControlCode>
<LegLength>81</LegLength>
</CourseControl>
<CourseControl>
<Sequence>10</Sequence>
<ControlCode>79</ControlCode>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl>
<Sequence>11</Sequence>
<ControlCode>149</ControlCode>
<LegLength>116</LegLength>
</CourseControl>
<CourseControl>
<Sequence>12</Sequence>
<ControlCode>101</ControlCode>
<LegLength>42</LegLength>
</CourseControl>
<CourseControl>
<Sequence>13</Sequence>
<ControlCode>90</ControlCode>
<LegLength>112</LegLength>
</CourseControl>
<CourseControl>
<Sequence>14</Sequence>
<ControlCode>106</ControlCode>
<LegLength>120</LegLength>
</CourseControl>
<CourseControl>
<Sequence>15</Sequence>
<ControlCode>79</ControlCode>
<LegLength>232</LegLength>
</CourseControl>
<CourseControl>
<Sequence>16</Sequence>
<ControlCode>92</ControlCode>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl>
<Sequence>17</Sequence>
<ControlCode>97</ControlCode>
<LegLength>111</LegLength>
</CourseControl>
<CourseControl>
<Sequence>18</Sequence>
<ControlCode>77</ControlCode>
<LegLength>102</LegLength>
</CourseControl>
<CourseControl>
<Sequence>19</Sequence>
<ControlCode>48</ControlCode>
<LegLength>118</LegLength>
</CourseControl>
<CourseControl>
<Sequence>20</Sequence>
<ControlCode>118</ControlCode>
<LegLength>167</LegLength>
</CourseControl>
<CourseControl>
<Sequence>21</Sequence>
<ControlCode>53</ControlCode>
<LegLength>60</LegLength>
</CourseControl>
<CourseControl>
<Sequence>22</Sequence>
<ControlCode>82</ControlCode>
<LegLength>129</LegLength>
</CourseControl>
<CourseControl>
<Sequence>23</Sequence>
<ControlCode>55</ControlCode>
<LegLength>115</LegLength>
</CourseControl>
<CourseControl>
<Sequence>24</Sequence>
<ControlCode>58</ControlCode>
<LegLength>105</LegLength>
</CourseControl>
<CourseControl>
<Sequence>25</Sequence>
<ControlCode>31</ControlCode>
<LegLength>144</LegLength>
</CourseControl>
<CourseControl>
<Sequence>26</Sequence>
<ControlCode>52</ControlCode>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl>
<Sequence>27</Sequence>
<ControlCode>58</ControlCode>
<LegLength>137</LegLength>
</CourseControl>
<CourseControl>
<Sequence>28</Sequence>
<ControlCode>80</ControlCode>
<LegLength>83</LegLength>
</CourseControl>
<CourseControl>
<Sequence>29</Sequence>
<ControlCode>59</ControlCode>
<LegLength>75</LegLength>
</CourseControl>
<CourseControl>
<Sequence>30</Sequence>
<ControlCode>58</ControlCode>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl>
<Sequence>31</Sequence>
<ControlCode>57</ControlCode>
<LegLength>93</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>38</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>A-kort</CourseName>
<CourseId>1</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>2600</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>144</ControlCode>
<LegLength>240</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>145</ControlCode>
<LegLength>80</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>142</ControlCode>
<LegLength>61</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>117</ControlCode>
<LegLength>57</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>144</ControlCode>
<LegLength>69</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>103</ControlCode>
<LegLength>81</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>79</ControlCode>
<LegLength>71</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>149</ControlCode>
<LegLength>116</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>101</ControlCode>
<LegLength>42</LegLength>
</CourseControl>
<CourseControl>
<Sequence>10</Sequence>
<ControlCode>90</ControlCode>
<LegLength>112</LegLength>
</CourseControl>
<CourseControl>
<Sequence>11</Sequence>
<ControlCode>106</ControlCode>
<LegLength>120</LegLength>
</CourseControl>
<CourseControl>
<Sequence>12</Sequence>
<ControlCode>79</ControlCode>
<LegLength>232</LegLength>
</CourseControl>
<CourseControl>
<Sequence>13</Sequence>
<ControlCode>92</ControlCode>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl>
<Sequence>14</Sequence>
<ControlCode>97</ControlCode>
<LegLength>111</LegLength>
</CourseControl>
<CourseControl>
<Sequence>15</Sequence>
<ControlCode>77</ControlCode>
<LegLength>102</LegLength>
</CourseControl>
<CourseControl>
<Sequence>16</Sequence>
<ControlCode>48</ControlCode>
<LegLength>118</LegLength>
</CourseControl>
<CourseControl>
<Sequence>17</Sequence>
<ControlCode>118</ControlCode>
<LegLength>167</LegLength>
</CourseControl>
<CourseControl>
<Sequence>18</Sequence>
<ControlCode>53</ControlCode>
<LegLength>60</LegLength>
</CourseControl>
<CourseControl>
<Sequence>19</Sequence>
<ControlCode>82</ControlCode>
<LegLength>129</LegLength>
</CourseControl>
<CourseControl>
<Sequence>20</Sequence>
<ControlCode>55</ControlCode>
<LegLength>115</LegLength>
</CourseControl>
<CourseControl>
<Sequence>21</Sequence>
<ControlCode>58</ControlCode>
<LegLength>105</LegLength>
</CourseControl>
<CourseControl>
<Sequence>22</Sequence>
<ControlCode>58</ControlCode>
<LegLength>0</LegLength>
</CourseControl>
<CourseControl>
<Sequence>23</Sequence>
<ControlCode>80</ControlCode>
<LegLength>83</LegLength>
</CourseControl>
<CourseControl>
<Sequence>24</Sequence>
<ControlCode>59</ControlCode>
<LegLength>75</LegLength>
</CourseControl>
<CourseControl>
<Sequence>25</Sequence>
<ControlCode>58</ControlCode>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl>
<Sequence>26</Sequence>
<ControlCode>57</ControlCode>
<LegLength>93</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>38</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>N</CourseName>
<CourseId>2</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>1300</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>65</ControlCode>
<LegLength>130</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>48</ControlCode>
<LegLength>55</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>144</ControlCode>
<LegLength>95</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>91</ControlCode>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>97</ControlCode>
<LegLength>171</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>63</ControlCode>
<LegLength>172</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>56</ControlCode>
<LegLength>154</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>54</ControlCode>
<LegLength>106</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>61</ControlCode>
<LegLength>141</LegLength>
</CourseControl>
<CourseControl>
<Sequence>10</Sequence>
<ControlCode>58</ControlCode>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl>
<Sequence>11</Sequence>
<ControlCode>57</ControlCode>
<LegLength>93</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>38</DistanceToFinish>
</CourseVariation>
</Course>
<Course>
<CourseName>C</CourseName>
<CourseId>3</CourseId>
<CourseVariation>
<CourseVariationId>0</CourseVariationId>
<CourseLength>1500</CourseLength>
<StartPointCode>STA1</StartPointCode>
<CourseControl>
<Sequence>1</Sequence>
<ControlCode>48</ControlCode>
<LegLength>175</LegLength>
</CourseControl>
<CourseControl>
<Sequence>2</Sequence>
<ControlCode>97</ControlCode>
<LegLength>191</LegLength>
</CourseControl>
<CourseControl>
<Sequence>3</Sequence>
<ControlCode>105</ControlCode>
<LegLength>110</LegLength>
</CourseControl>
<CourseControl>
<Sequence>4</Sequence>
<ControlCode>103</ControlCode>
<LegLength>73</LegLength>
</CourseControl>
<CourseControl>
<Sequence>5</Sequence>
<ControlCode>91</ControlCode>
<LegLength>36</LegLength>
</CourseControl>
<CourseControl>
<Sequence>6</Sequence>
<ControlCode>144</ControlCode>
<LegLength>78</LegLength>
</CourseControl>
<CourseControl>
<Sequence>7</Sequence>
<ControlCode>143</ControlCode>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl>
<Sequence>8</Sequence>
<ControlCode>53</ControlCode>
<LegLength>233</LegLength>
</CourseControl>
<CourseControl>
<Sequence>9</Sequence>
<ControlCode>54</ControlCode>
<LegLength>63</LegLength>
</CourseControl>
<CourseControl>
<Sequence>10</Sequence>
<ControlCode>55</ControlCode>
<LegLength>171</LegLength>
</CourseControl>
<CourseControl>
<Sequence>11</Sequence>
<ControlCode>31</ControlCode>
<LegLength>68</LegLength>
</CourseControl>
<CourseControl>
<Sequence>12</Sequence>
<ControlCode>58</ControlCode>
<LegLength>144</LegLength>
</CourseControl>
<CourseControl>
<Sequence>13</Sequence>
<ControlCode>57</ControlCode>
<LegLength>93</LegLength>
</CourseControl>
<FinishPointCode>FIN1</FinishPointCode>
<DistanceToFinish>38</DistanceToFinish>
</CourseVariation>
</Course>
</CourseData>

110
test_files/sc3_23/mtr.csv Executable file
View File

@ -0,0 +1,110 @@
"M","0","14917","255744","18.07.23 17:47:22.000","18.07.23 17:46:40.000",255744,0000,0000,000,00000,065,00058,048,00120,144,00265,091,00386,097,00514,063,00621,056,00713,054,00817,061,00944,058,01016,057,01125,249,01137,099,01138,250,01145,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000001
"M","0","14917","251359","18.07.23 17:51:18.000","18.07.23 17:50:36.000",251359,0000,0000,000,00000,065,00078,048,00158,144,00324,091,00458,097,00590,063,00700,056,00806,054,00922,061,01036,058,01141,057,01323,249,01342,099,01343,250,01354,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000002
"M","0","14917","255744","18.07.23 17:52:52.000","18.07.23 17:52:11.000",255744,0000,0000,000,00000,065,00058,048,00120,144,00265,091,00386,097,00514,063,00621,056,00713,054,00817,061,00944,058,01016,057,01125,249,01137,099,01138,250,01476,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000003
"M","0","14917","251359","18.07.23 17:53:00.000","18.07.23 17:52:18.000",251359,0000,0000,000,00000,065,00078,048,00158,144,00324,091,00458,097,00590,063,00700,056,00806,054,00922,061,01036,058,01141,057,01323,249,01342,099,01343,250,01456,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000004
"M","0","14917","251252","18.07.23 17:59:18.000","18.07.23 17:58:36.000",251252,0000,0000,000,00000,065,00133,048,00213,144,00422,091,00571,097,00788,063,00946,056,01084,249,01291,250,01311,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000005
"M","0","14917","511333","18.07.23 17:59:32.000","18.07.23 17:58:50.000",511333,0000,0000,000,00000,249,01271,250,01300,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000006
"M","0","14917","263083","18.07.23 18:13:50.000","18.07.23 18:13:08.000",263083,0000,0000,000,00000,144,00127,145,00185,142,00220,117,00257,144,00303,103,00353,079,00389,149,00473,101,00509,090,00613,106,00744,079,00849,092,00956,097,01043,077,01109,048,01181,118,01281,053,01344,082,01422,055,01471,058,01519,080,01584,059,01625,058,01657,057,01699,249,01708,099,01709,250,01720,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000007
"M","0","14917","268492","18.07.23 18:14:10.000","18.07.23 18:13:29.000",268492,0000,0000,000,00000,144,00129,117,00255,142,00283,145,00340,144,00390,044,00465,143,00501,144,00538,103,00590,079,00627,149,00768,101,00844,090,00911,106,00981,079,01077,092,01151,097,01234,077,01337,048,01421,118,01521,053,01558,082,01617,055,01670,058,01721,031,01804,052,01850,058,01919,080,01974,059,02013,058,02044,057,02084,249,02093,099,02094,250,02104,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000008
"M","0","14917","250596","18.07.23 18:15:11.000","18.07.23 18:14:30.000",250596,0000,0000,000,00000,144,00131,117,00180,142,00219,145,00267,144,00352,044,00391,143,00550,144,00591,103,00636,079,00744,149,00844,101,00899,090,01429,079,01637,092,01693,097,01771,077,01883,048,01979,118,02084,082,02174,055,02227,058,02279,031,02360,052,02412,058,02485,080,02542,059,02606,058,02643,057,02696,249,02707,099,02707,250,02714,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000009
"M","0","14917","510878","18.07.23 18:16:31.000","18.07.23 18:15:50.000",510878,0000,0000,000,00000,144,00222,145,00385,142,00485,117,00564,144,00643,103,00713,079,00807,149,00954,101,01042,090,01188,106,01426,079,01586,092,01770,097,01892,077,02060,048,02186,118,02303,053,02350,082,02436,055,02504,058,02579,080,02650,059,02714,058,02763,057,02828,249,02842,250,02848,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000010
"M","0","14917","261416","18.07.23 18:16:36.000","18.07.23 18:15:55.000",261416,0000,0000,000,00000,144,00174,145,00345,142,00402,117,00509,144,00566,103,00634,079,00704,149,00851,101,00899,090,01036,106,01156,079,01370,092,01533,097,01641,048,01779,118,01888,053,01933,082,02018,055,02087,058,02162,080,02239,059,02307,058,02354,057,02417,249,02431,099,02431,250,02439,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000011
"M","0","14917","263065","18.07.23 18:18:28.000","18.07.23 18:17:46.000",263065,0000,0000,000,00000,144,00132,145,00224,142,00340,117,00369,144,00416,091,00457,103,00511,079,00549,149,00640,101,00720,090,00794,106,00883,079,00981,092,01107,097,01180,077,01332,048,01413,118,01509,053,01538,082,01598,055,01645,058,01691,080,01763,059,01803,058,01834,057,01874,249,01882,099,01883,250,01894,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000012
"M","0","14917","521042","18.07.23 18:18:49.000","18.07.23 18:18:08.000",521042,0000,0000,000,00000,144,00145,117,00205,142,00367,145,00404,144,00456,044,00496,143,00617,144,00647,103,00721,079,00767,149,00854,101,00909,090,01017,106,01145,079,01253,092,01378,097,01462,077,01681,048,01750,118,01909,053,01951,082,02024,055,02099,058,02161,031,02266,052,02346,058,02409,080,02482,059,02522,058,02559,057,02605,249,02615,099,02616,250,02629,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000013
"M","0","14917","260788","18.07.23 18:19:01.000","18.07.23 18:18:20.000",260788,0000,0000,000,00000,144,00186,145,00275,142,00374,117,00426,144,00488,103,00548,079,00607,149,00717,101,00813,090,00983,106,01100,079,01214,092,01333,097,01438,077,01506,048,01610,118,01804,053,01841,082,01927,055,01992,058,02052,080,02154,059,02211,058,02256,057,02316,249,02328,099,02328,250,02341,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000014
"M","0","14917","251359","18.07.23 18:19:15.000","18.07.23 18:18:34.000",251359,0000,0000,000,00000,065,00078,048,00193,144,00434,091,00502,097,00638,063,00728,056,00823,054,00884,061,00994,058,01083,057,01155,249,01173,099,01174,250,01186,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000015
"M","0","14917","255632","18.07.23 18:19:26.000","18.07.23 18:18:44.000",255632,0000,0000,000,00000,144,00144,117,00313,142,00380,144,00491,044,00533,143,00607,144,00649,103,00701,079,00746,149,00878,101,00923,090,01010,106,01095,079,01214,092,01290,097,01398,077,01513,048,01596,118,01693,053,01727,082,01794,055,01861,058,01917,031,02011,052,02066,058,02154,080,02243,059,02290,058,02329,057,02372,249,02382,099,02383,250,02396,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000016
"M","0","14917","263090","18.07.23 18:19:46.000","18.07.23 18:19:04.000",263090,0000,0000,000,00000,144,00153,145,00252,142,00389,117,00423,144,00473,103,00547,079,00588,149,00687,101,00785,090,00873,106,00954,079,01059,092,01144,097,01226,077,01363,048,01483,053,01618,082,01682,055,01737,058,01795,080,01850,059,01901,058,01939,057,01977,249,01987,099,01988,250,02015,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000017
"M","0","14917","519898","18.07.23 18:20:12.000","18.07.23 18:19:30.000",519898,0000,0000,000,00000,065,00042,048,00101,144,00238,091,00350,097,00460,063,00529,056,00601,054,00673,061,00759,058,00815,057,00885,249,00900,099,00901,250,00904,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000018
"M","0","14917","263086","18.07.23 18:21:49.000","18.07.23 18:21:08.000",263086,0000,0000,000,00000,117,00284,142,00320,145,00362,144,00410,044,00521,143,00569,144,00604,103,00652,079,00700,149,00799,101,00832,090,00976,106,01050,079,01132,092,01257,097,01324,077,01385,048,01472,118,01564,053,01599,082,01652,055,01700,058,01748,031,01809,052,01852,058,01902,080,01981,059,02019,058,02054,057,02099,249,02109,099,02110,250,02124,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000019
"M","0","14917","263089","18.07.23 18:22:18.000","18.07.23 18:21:36.000",263089,0000,0000,000,00000,144,00121,117,00250,142,00357,145,00392,144,00458,143,00522,044,00653,143,00691,103,00774,079,00827,149,00926,101,00967,090,01165,106,01235,079,01332,092,01430,097,01497,077,01560,048,01642,118,01733,053,01761,082,01816,055,01869,058,01911,031,01973,052,02021,058,02074,080,02142,059,02199,058,02235,057,02273,249,02282,099,02283,250,02318,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000020
"M","0","14917","263070","18.07.23 18:22:30.000","18.07.23 18:21:49.000",263070,0000,0000,000,00000,144,00129,117,00261,142,00299,145,00419,144,00484,143,00559,044,00679,143,00713,144,00754,103,00800,079,00851,149,00950,101,00988,090,01162,106,01237,079,01333,092,01375,097,01449,077,01533,048,01615,118,01692,053,01733,082,01798,055,01847,058,01896,031,01964,052,02022,058,02078,080,02175,059,02232,058,02272,057,02310,249,02320,099,02321,250,02360,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000021
"M","0","14917","233748","18.07.23 18:23:05.000","18.07.23 18:22:23.000",233748,0000,0000,000,00000,144,00195,117,00411,142,00470,145,00542,144,00651,044,00694,143,00783,144,00836,103,00956,079,01047,149,01229,101,01282,090,01368,106,01521,092,01889,097,02013,077,02112,048,02245,118,02382,053,02421,082,02523,055,02586,058,02652,031,02771,052,02835,058,02902,080,02971,059,03034,058,03081,057,03148,249,03161,099,03161,250,03168,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000022
"M","0","14917","187059","18.07.23 18:23:34.000","18.07.23 18:22:52.000",187059,0000,0000,000,00000,144,00150,117,00202,142,00243,145,00297,044,00485,143,00587,144,00636,103,00697,079,00740,149,00906,101,00969,090,01074,106,01149,079,01261,092,01342,097,01434,077,01586,048,01668,118,01760,053,01792,082,01863,055,01917,058,01980,031,02052,052,02121,058,02202,080,02254,059,02314,058,02358,057,02425,249,02438,099,02439,250,02448,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000023
"M","0","14917","259973","18.07.23 18:24:05.000","18.07.23 18:23:23.000",259973,0000,0000,000,00000,048,00060,097,00187,105,00235,103,00268,091,00283,144,00333,143,00374,053,00533,054,00589,055,00673,031,00702,058,00771,057,00831,249,00840,250,00852,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000024
"M","0","14917","203394","18.07.23 18:24:13.000","18.07.23 18:23:31.000",203394,0000,0000,000,00000,144,00177,145,00305,142,00388,117,00450,144,00516,103,00582,079,00637,149,00794,101,00845,090,00961,106,01332,105,01479,092,01642,097,01766,077,01887,048,02005,118,02151,053,02190,082,02353,055,02425,058,02507,080,02570,059,02634,058,02690,057,02759,249,02774,250,02790,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000025
"M","0","14917","263084","18.07.23 18:24:51.000","18.07.23 18:24:09.000",263084,0000,0000,000,00000,144,00146,117,00202,142,00302,145,00355,144,00413,044,00454,143,00529,144,00576,103,00626,079,00670,149,00800,101,00857,090,00939,106,01026,079,01138,092,01227,097,01316,077,01453,048,01543,118,01642,053,01680,082,01750,055,01807,058,01861,031,01933,052,01985,058,02046,080,02102,059,02147,058,02183,057,02228,249,02240,099,02241,250,02256,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000026
"M","0","14917","263072","18.07.23 18:24:58.000","18.07.23 18:24:17.000",263072,0000,0000,000,00000,144,00149,117,00207,142,00324,145,00360,144,00417,044,00456,143,00538,144,00579,103,00630,079,00673,101,00862,090,00941,106,01029,079,01140,092,01230,097,01321,077,01459,048,01545,118,01644,053,01683,082,01752,055,01809,058,01865,031,01937,052,01989,058,02048,080,02104,059,02151,058,02186,057,02229,249,02241,099,02242,250,02261,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000027
"M","0","14917","402905","18.07.23 18:25:17.000","18.07.23 18:24:36.000",402905,0000,0000,000,00000,144,00185,145,00296,142,00419,117,00502,144,00587,103,00713,079,00772,149,00950,101,01005,090,01147,106,01255,079,01387,092,01584,097,01715,077,01801,048,02068,053,02292,082,02389,055,02473,058,02556,059,02720,080,02802,059,02868,058,02926,057,02987,249,03002,250,03031,254,00195,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000028
"M","0","14917","257393","18.07.23 18:25:24.000","18.07.23 18:24:43.000",257393,0000,0000,000,00000,144,00186,145,00288,142,00370,117,00464,144,00544,091,00608,103,00654,079,00761,149,01106,101,01165,090,01325,106,01454,079,01720,092,01845,097,01955,077,02043,048,02297,118,02422,053,02546,082,02638,055,02715,058,02783,080,03028,059,03087,058,03155,057,03222,249,03239,250,03270,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000029
"M","0","14917","249917","18.07.23 18:25:53.000","18.07.23 18:25:11.000",249917,0000,0000,000,00000,144,00212,117,00348,142,00372,145,00419,044,00506,143,00554,103,00637,079,00680,149,00768,101,00806,090,00866,106,00941,079,01037,092,01098,097,01169,077,01238,048,01311,118,01388,053,01423,082,01492,055,01544,058,01588,031,01663,052,01712,058,01765,080,01803,059,01843,058,01876,057,01913,249,01929,099,01930,250,01978,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000030
"M","0","14917","263066","18.07.23 18:26:01.000","18.07.23 18:25:19.000",263066,0000,0000,000,00000,144,00105,117,00157,142,00207,145,00248,144,00300,044,00328,143,00384,144,00426,103,00473,079,00509,149,00598,101,00642,090,00727,106,00803,092,00981,097,01042,077,01128,048,01201,118,01277,053,01304,082,01358,055,01403,058,01445,031,01506,052,01548,058,01601,080,01641,059,01683,058,01717,057,01753,249,01766,099,01766,250,01819,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000031
"M","0","14917","255211","18.07.23 18:26:19.000","18.07.23 18:25:37.000",255211,0000,0000,000,00000,144,00264,145,00384,142,00491,117,00583,144,00666,103,00769,079,00861,149,01033,101,01090,090,01253,106,01369,079,01523,092,01671,097,01831,077,01946,048,02081,118,02309,053,02404,082,02628,055,02714,058,02807,080,02923,059,03000,058,03061,057,03162,249,03179,099,03180,250,03186,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000032
"M","0","14917","259979","18.07.23 18:27:06.000","18.07.23 18:26:24.000",259979,0000,0000,000,00000,144,00106,117,00199,142,00228,145,00264,144,00310,044,00368,143,00406,144,00435,103,00476,079,00505,149,00570,101,00600,090,00664,106,00728,079,00797,092,00840,097,00898,077,00954,048,01016,118,01100,053,01129,082,01183,055,01224,058,01265,031,01316,052,01360,058,01404,080,01446,059,01477,058,01507,057,01546,249,01555,250,01562,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000033
"M","0","14917","263082","18.07.23 18:27:48.000","18.07.23 18:27:07.000",263082,0000,0000,000,00000,144,00147,117,00191,142,00237,145,00280,144,00326,044,00354,143,00403,144,00438,103,00487,079,00528,149,00659,101,00692,090,00765,106,00839,079,00937,092,01013,097,01074,077,01169,048,01236,118,01308,053,01336,082,01397,055,01445,058,01495,031,01562,052,01610,058,01688,057,01736,080,01796,059,01839,058,01885,057,01926,249,01938,099,01939,250,01951,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000034
"M","0","14917","263074","18.07.23 18:29:02.000","18.07.23 18:28:20.000",263074,0000,0000,000,00000,144,00158,117,00301,142,00328,145,00377,044,00453,143,00498,103,00584,079,00616,149,00748,101,00780,090,00854,106,00926,079,01026,092,01103,097,01180,077,01257,048,01343,118,01425,053,01462,082,01526,055,01582,058,01641,031,01714,052,01857,058,01925,080,01977,059,02022,058,02061,057,02098,249,02108,099,02109,250,02117,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000035
"M","0","14917","243222","18.07.23 18:29:16.000","18.07.23 18:28:34.000",243222,0000,0000,000,00000,144,00168,145,00250,142,00457,117,00527,144,00581,103,00789,079,00831,149,00944,101,01011,090,01181,106,01292,079,01444,092,01570,097,01692,077,01882,048,02000,118,02116,053,02171,082,02345,055,02417,058,02482,080,02645,059,02700,058,02748,057,02795,249,02807,099,02808,250,02816,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000036
"M","0","14917","263085","18.07.23 18:29:27.000","18.07.23 18:28:46.000",263085,0000,0000,000,00000,144,00222,117,00282,145,00364,144,00431,143,00483,044,00578,143,00622,144,00665,103,00709,079,00752,101,00929,090,01121,106,01189,079,01288,092,01396,097,01467,077,01528,048,01617,118,01810,053,01851,082,01935,055,02023,058,02091,031,02199,052,02278,058,02400,080,02512,059,02565,058,02610,057,02676,249,02692,250,02707,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000037
"M","0","14917","263069","18.07.23 18:29:59.000","18.07.23 18:29:17.000",263069,0000,0000,000,00000,144,00161,145,00263,142,00306,117,00352,144,00402,103,00462,079,00556,149,00687,101,00748,090,00972,106,01049,079,01173,092,01342,097,01445,077,01553,048,01651,118,01765,053,01801,082,01875,055,01947,058,02002,059,02051,080,02098,058,02152,057,02197,249,02208,099,02209,250,02220,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000038
"M","0","14917","263079","18.07.23 18:30:05.000","18.07.23 18:29:23.000",263079,0000,0000,000,00000,144,00120,117,00161,142,00199,145,00249,144,00313,044,00343,143,00398,144,00436,103,00480,079,00519,149,00602,101,00634,090,00705,106,00778,079,00869,092,00919,097,00999,077,01157,048,01222,118,01297,053,01322,082,01394,055,01441,058,01483,031,01550,052,01591,058,01637,080,01677,059,01716,058,01752,057,01785,249,01794,250,01807,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000039
"M","0","14917","263081","18.07.23 18:30:41.000","18.07.23 18:29:59.000",263081,0000,0000,000,00000,144,00148,117,00198,142,00257,145,00313,144,00361,044,00393,143,00441,144,00477,103,00527,079,00564,149,00688,101,00722,090,00947,106,01031,079,01157,092,01298,097,01377,077,01472,048,01548,118,01624,053,01651,082,01722,055,01773,058,01820,031,01876,052,01918,058,01969,080,02011,059,02074,058,02107,057,02148,249,02157,250,02167,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000040
"M","0","14917","263062","18.07.23 18:31:00.000","18.07.23 18:30:19.000",263062,0000,0000,000,00000,144,00188,145,00254,142,00303,117,00411,144,00469,103,00536,079,00590,149,00722,101,00757,090,00947,106,01027,079,01183,092,01244,097,01330,077,01453,048,01558,118,01668,053,01712,082,01788,055,01859,058,01916,059,01964,080,02010,059,02083,058,02119,057,02170,249,02180,099,02181,250,02190,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000041
"M","0","14917","263073","18.07.23 18:31:24.000","18.07.23 18:30:43.000",263073,0000,0000,000,00000,144,00119,142,00180,117,00216,142,00249,145,00285,144,00328,044,00358,143,00398,144,00430,103,00475,079,00508,149,00582,101,00616,090,00703,106,00776,079,00855,092,00897,097,00963,077,01084,048,01156,118,01227,053,01251,082,01299,055,01340,058,01388,031,01449,052,01499,058,01548,080,01590,059,01626,058,01656,057,01692,249,01703,099,01704,250,01732,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000042
"M","0","14917","249916","18.07.23 18:31:45.000","18.07.23 18:31:03.000",249916,0000,0000,000,00000,144,00223,117,00391,142,00538,145,00587,144,00672,044,00724,143,00786,144,00839,103,00903,079,00946,149,01057,101,01110,090,01285,106,01403,079,01535,092,01666,097,01777,077,01957,048,02088,118,02222,053,02272,082,02406,055,02478,058,02556,031,02644,052,02721,058,02799,080,02861,059,02917,058,02960,057,03009,249,03023,099,03023,250,03031,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000043
"M","0","14917","263067","18.07.23 18:31:55.000","18.07.23 18:31:13.000",263067,0000,0000,000,00000,144,00219,145,00400,142,00442,117,00513,144,00569,103,00673,079,00724,149,00879,101,00936,090,01174,079,01383,092,01468,097,01582,077,01668,048,01780,118,01883,053,01935,082,02015,055,02075,058,02152,080,02254,059,02325,058,02368,057,02429,249,02442,099,02443,250,02457,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000044
"M","0","14917","216677","18.07.23 18:33:04.000","18.07.23 18:32:22.000",216677,0000,0000,000,00000,144,00153,145,00219,142,00274,117,00321,144,00394,103,00463,079,00513,149,00626,101,00674,090,00773,106,00892,079,01036,092,01168,097,01277,077,01348,048,01435,118,01538,053,01575,082,01647,055,01706,058,01766,080,01829,059,01873,058,01915,057,01967,249,01978,250,01988,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000045
"M","0","14917","259978","18.07.23 18:33:26.000","18.07.23 18:32:44.000",259978,0000,0000,000,00000,144,00166,117,00235,145,00394,144,00458,143,00559,044,00758,143,00797,144,00843,103,00907,079,00955,149,01062,101,01110,090,01252,106,01356,079,01472,092,01580,097,01679,077,01760,048,01846,118,01941,082,02032,055,02091,058,02146,031,02239,052,02301,058,02360,080,02418,059,02463,058,02502,057,02549,249,02559,099,02560,250,02573,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000046
"M","0","14917","527382","18.07.23 18:34:06.000","18.07.23 18:33:25.000",527382,0000,0000,000,00000,144,00244,145,00520,142,00605,117,00687,144,00782,103,00882,079,00950,149,01114,101,01220,090,01378,106,01532,079,01721,092,01865,097,02042,077,02209,048,02376,118,02550,053,02717,082,02856,055,02940,058,03048,080,03149,059,03233,058,03301,057,03402,249,03418,099,03419,250,03426,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000047
"M","0","14917","243121","18.07.23 18:34:31.000","18.07.23 18:33:49.000",243121,0000,0000,000,00000,048,00103,097,00361,105,00492,103,00559,091,00596,044,00650,143,00825,053,01034,054,01101,055,01217,031,01280,058,01434,057,01508,249,01524,099,01525,250,01530,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000048
"M","0","14917","241013","18.07.23 18:35:44.000","18.07.23 18:35:02.000",241013,0000,0000,000,00000,048,00094,097,00299,105,00394,103,00475,091,00516,144,00743,143,00956,053,01215,054,01275,055,01392,031,01450,058,01553,057,01624,249,01640,099,01641,250,01653,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000049
"M","0","14917","249905","18.07.23 18:36:25.000","18.07.23 18:35:43.000",249905,0000,0000,000,00000,144,00134,117,00265,145,00428,044,00542,143,00605,144,00651,091,00701,079,00886,103,00939,079,00977,149,01084,101,01133,090,01294,106,01388,079,01497,092,01602,097,01714,077,01802,048,01886,118,02019,053,02063,082,02150,055,02215,058,02274,031,02434,052,02500,058,02563,059,02629,058,02688,057,02755,249,02767,250,02779,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000050
"M","0","14917","263091","18.07.23 18:37:10.000","18.07.23 18:36:28.000",263091,0000,0000,000,00000,144,00233,145,00291,142,00350,117,00461,144,00517,044,00585,103,00646,079,00736,149,00888,101,00944,090,01069,106,01185,079,01307,092,01439,097,01568,077,01698,118,02027,053,02083,082,02171,055,02249,058,02324,080,02391,059,02460,058,02513,057,02569,249,02585,099,02586,250,02602,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000051
"M","0","14917","263078","18.07.23 18:37:19.000","18.07.23 18:36:38.000",263078,0000,0000,000,00000,144,00233,145,00357,142,00416,117,00469,144,00554,103,00630,079,00680,149,00846,101,00898,090,01120,106,01209,105,01403,092,01518,097,01683,077,01817,048,02013,118,02146,053,02202,082,02299,055,02375,058,02452,080,02520,059,02588,058,02641,057,02696,249,02713,099,02714,250,02734,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000052
"M","0","14917","263092","18.07.23 18:37:23.000","18.07.23 18:36:42.000",263092,0000,0000,000,00000,144,00197,117,00363,142,00461,145,00522,144,00603,044,00667,143,00762,144,00819,103,00881,079,00933,149,01072,101,01121,090,01297,092,01613,097,01731,077,01834,048,01924,118,02042,053,02080,082,02164,055,02261,058,02343,031,02497,052,02579,058,02661,080,02733,059,02792,058,02840,057,02890,249,02904,099,02905,250,02927,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000053
"M","0","14917","516150","18.07.23 18:37:46.000","18.07.23 18:37:04.000",516150,0000,0000,000,00000,144,00166,117,00221,142,00321,145,00497,144,00553,044,00606,143,00676,144,00734,103,00793,079,00845,149,00960,101,01006,090,01184,106,01274,079,01373,092,01627,097,01732,077,01811,048,01890,118,02005,053,02044,082,02141,055,02211,058,02316,031,02384,052,02443,058,02510,080,02563,059,02612,058,02660,057,02720,249,02732,250,02743,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000054
"M","0","14917","263075","18.07.23 18:38:07.000","18.07.23 18:37:26.000",263075,0000,0000,000,00000,144,00221,117,00388,145,00605,142,00672,144,00796,143,00857,144,00933,103,01021,079,01078,149,01252,101,01302,090,01507,106,01642,079,01780,092,01916,097,02056,077,02201,048,02322,118,02446,053,02486,082,02567,055,02642,058,02703,031,02791,052,02855,058,02917,080,02976,059,03030,058,03082,057,03135,249,03147,099,03148,250,03158,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000055
"M","0","14917","236434","18.07.23 18:39:06.000","18.07.23 18:38:25.000",236434,0000,0000,000,00000,144,00209,103,00290,145,00369,117,00424,142,00479,117,00527,144,00596,103,00662,079,00716,149,00878,101,00948,090,01150,106,01269,079,01465,092,01714,097,01825,077,01950,048,02383,118,02625,053,02672,082,02791,055,02883,058,02965,080,03053,059,03109,058,03188,057,03258,249,03270,099,03271,250,03282,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000056
"M","0","14917","212044","18.07.23 18:39:13.000","18.07.23 18:38:31.000",212044,0000,0000,000,00000,144,00242,145,00369,142,00438,117,00574,144,00654,044,00749,079,00879,101,01059,090,01308,106,01420,079,01558,092,01725,097,01884,077,01964,048,02087,118,02298,053,02348,082,02481,055,02567,058,02640,080,02729,059,02793,058,02864,057,02935,099,02951,250,02969,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000057
"M","0","14917","260802","18.07.23 18:39:30.000","18.07.23 18:38:49.000",260802,0000,0000,000,00000,048,00082,097,00244,105,00315,103,00383,091,00425,144,00560,143,00807,053,00982,054,01041,055,01154,031,01211,058,01351,057,01415,249,01431,099,01431,250,01462,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000058
"M","0","14917","255629","18.07.23 18:40:07.000","18.07.23 18:39:25.000",255629,0000,0000,000,00000,144,00182,117,00269,142,00462,145,00518,144,00588,044,00638,143,00699,144,00754,103,00825,079,00934,149,01103,101,01153,090,01372,106,01501,079,01652,092,01782,097,01937,077,02085,048,02201,118,02324,053,02370,082,02451,055,02521,058,02586,031,02672,052,02736,058,02810,080,02959,059,03007,058,03061,057,03117,249,03131,250,03151,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000059
"M","0","14917","251361","18.07.23 18:40:13.000","18.07.23 18:39:32.000",251361,0000,0000,000,00000,144,00140,142,00251,117,00345,142,00383,145,00448,144,00504,044,00538,143,00614,144,00652,103,00701,079,00773,149,00862,101,00903,090,01070,106,01187,079,01285,092,01416,097,01511,077,01630,048,01718,118,01807,053,01848,082,01924,055,01980,058,02038,031,02121,052,02177,058,02239,059,02282,080,02333,059,02378,058,02416,057,02453,249,02463,250,02480,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000060
"M","0","14917","263076","18.07.23 18:40:45.000","18.07.23 18:40:03.000",263076,0000,0000,000,00000,144,00189,117,00263,142,00332,145,00391,144,00483,044,00540,143,00627,144,00673,103,00747,079,00809,149,01090,101,01246,090,01359,106,01506,079,01684,092,01777,097,01917,077,02134,048,02263,118,02408,053,02460,082,02637,055,02717,058,02794,031,02894,052,02988,058,03062,080,03136,059,03207,058,03259,057,03332,249,03350,250,03358,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000061
"M","0","14917","512809","18.07.23 18:40:55.000","18.07.23 18:40:13.000",512809,0000,0000,000,00000,144,00181,145,00349,142,00416,117,00517,144,00632,103,00757,079,00831,092,00977,097,01095,077,01203,048,01314,118,01463,053,01506,082,01591,055,01653,058,01718,080,01876,059,01941,058,01992,057,02066,249,02081,250,02088,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000062
"M","0","14917","515687","18.07.23 18:41:06.000","18.07.23 18:40:25.000",515687,0000,0000,000,00000,144,00209,145,00410,142,00468,117,00543,144,00619,103,00706,079,00761,149,00932,101,00992,090,01100,106,01256,092,01544,097,01668,077,01806,048,01937,118,02076,082,02216,055,02290,058,02372,080,02476,059,02553,058,02612,057,02679,249,02694,250,02705,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000063
"M","0","14917","259976","18.07.23 18:42:43.000","18.07.23 18:42:01.000",259976,0000,0000,000,00000,144,00372,044,00470,103,00553,079,00631,092,00819,249,01414,099,01415,250,01457,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000064
"M","0","14917","263077","18.07.23 18:42:56.000","18.07.23 18:42:14.000",263077,0000,0000,000,00000,144,00145,117,00216,145,00268,144,00330,143,00396,044,00492,144,00538,103,00595,079,00635,149,00771,101,00841,090,00938,106,01196,079,01311,092,01435,097,01558,077,01699,048,01800,118,01949,082,02073,055,02135,058,02203,031,02281,052,02345,058,02416,080,02479,059,02533,058,02583,057,02645,249,02661,250,02699,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000065
"M","0","14917","263088","18.07.23 18:43:05.000","18.07.23 18:42:23.000",263088,0000,0000,000,00000,144,00140,117,00204,142,00247,145,00294,144,00359,044,00394,143,00534,144,00567,103,00627,079,00665,149,00805,101,00858,090,01022,106,01152,079,01284,092,01359,097,01481,077,01619,048,01724,118,01854,053,01896,082,01978,055,02049,058,02105,031,02187,052,02254,058,02321,080,02392,059,02447,058,02497,057,02556,249,02574,099,02574,250,02620,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000066
"M","0","14917","259997","18.07.23 18:43:14.000","18.07.23 18:42:32.000",259997,0000,0000,000,00000,144,00158,117,00278,142,00360,145,00412,144,00484,143,00550,044,00621,143,00663,144,00709,103,00765,079,00804,149,00934,101,00986,090,01175,106,01282,079,01413,092,01485,097,01608,077,01749,048,01854,118,02010,053,02045,082,02115,055,02179,058,02243,031,02329,052,02393,058,02469,080,02527,059,02583,058,02626,099,02710,250,02763,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000067
"M","0","14917","197924","18.07.23 18:43:26.000","18.07.23 18:42:44.000",197924,0000,0000,000,00000,144,00205,145,00379,117,00450,144,00718,103,00781,079,00843,149,00987,101,01034,090,01275,106,01386,079,01534,092,01805,097,01964,077,02098,048,02232,118,02347,053,02429,055,02609,058,02685,059,02770,058,02823,080,02939,059,03003,058,03050,057,03126,249,03181,099,03182,250,03191,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000068
"M","0","14917","261030","18.07.23 18:44:14.000","18.07.23 18:43:32.000",261030,0000,0000,000,00000,144,00140,117,00244,142,00312,145,00382,144,00429,044,00461,143,00528,144,00568,103,00621,079,00761,149,00857,101,00909,090,00982,106,01079,079,01170,092,01318,097,01402,077,01506,048,01660,118,01754,053,01786,082,01849,055,01902,058,01952,031,02020,052,02073,058,02138,080,02193,059,02243,058,02281,057,02330,249,02337,250,02343,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000069
"M","0","14917","508819","18.07.23 18:44:41.000","18.07.23 18:43:59.000",508819,0000,0000,000,00000,144,00290,145,00430,117,00630,144,00735,103,00896,079,01021,149,01240,101,01473,090,01618,106,01813,079,02082,092,02337,097,02513,077,02684,048,02828,053,03052,082,03150,055,03233,058,03336,080,03526,059,03614,058,03685,057,03806,249,03824,099,03825,250,03836,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000070
"M","0","14917","253839","18.07.23 18:45:34.000","18.07.23 18:44:52.000",253839,0000,0000,000,00000,144,00268,117,00380,142,00472,145,00564,144,00668,044,00764,143,00873,144,00926,103,01074,079,01175,149,01572,101,01621,090,01935,106,02093,079,02334,092,02676,097,02829,077,02957,048,03099,118,03284,053,03357,082,03474,055,03587,058,03683,031,03862,052,03961,058,04070,080,04208,059,04286,058,04352,057,04451,249,04469,099,04470,250,04528,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000071
"M","0","14917","510880","18.07.23 18:45:46.000","18.07.23 18:45:05.000",510880,0000,0000,000,00000,144,00165,142,00251,145,00317,142,00363,117,00411,144,00473,103,00534,079,00583,149,00686,101,00730,090,00825,106,00955,079,01110,092,01191,097,01295,077,01374,048,01466,118,01582,053,01626,082,01718,055,01788,058,01867,080,01927,059,01996,058,02050,057,02101,249,02117,250,02146,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000072
"M","0","14917","506629","18.07.23 18:46:18.000","18.07.23 18:45:37.000",506629,0000,0000,000,00000,144,00116,117,00171,142,00284,145,00337,144,00383,044,00420,143,00495,144,00522,103,00567,079,00607,149,00697,101,00732,090,00803,106,00868,079,00943,092,01000,097,01069,077,01125,048,01202,118,01269,053,01295,082,01351,055,01397,058,01437,031,01487,052,01530,058,01583,080,01625,059,01663,058,01692,057,01733,249,01740,250,01746,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000073
"M","0","14917","249929","18.07.23 18:46:31.000","18.07.23 18:45:49.000",249929,0000,0000,000,00000,144,00151,117,00411,142,00449,145,00499,144,00556,044,00603,143,00726,144,00766,103,00823,079,00871,149,00961,101,01005,090,01079,106,01167,079,01272,092,01418,097,01496,077,01593,048,01747,053,01876,082,01938,055,01992,058,02045,031,02119,052,02262,058,02322,080,02392,059,02471,058,02504,057,02542,249,02552,250,02563,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000074
"M","0","14917","511781","18.07.23 18:46:54.000","18.07.23 18:46:12.000",511781,0000,0000,000,00000,144,00244,117,00361,145,00734,142,00863,117,00944,144,01033,103,01163,079,01449,250,02117,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000075
"M","0","14917","229995","18.07.23 18:47:14.000","18.07.23 18:46:33.000",229995,0000,0000,000,00000,144,00263,145,00405,142,00514,117,00595,144,00697,103,00880,079,00979,149,01357,101,01429,090,01581,106,01938,079,02154,092,02252,097,02453,077,02721,048,03069,118,03290,053,03375,082,03529,055,03640,058,03749,080,03879,059,03973,058,04061,057,04159,249,04186,250,04195,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000076
"M","0","14917","515210","18.07.23 18:47:21.000","18.07.23 18:46:39.000",515210,0000,0000,000,00000,117,00281,142,00381,145,00450,144,00522,044,00573,143,00684,103,00797,079,00839,149,00928,101,00974,090,01046,106,01143,079,01247,092,01375,097,01463,077,01571,048,01808,118,01903,053,01937,082,02007,055,02068,058,02128,031,02210,052,02263,058,02348,080,02412,059,02460,058,02505,057,02557,249,02572,099,02573,250,02585,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000077
"M","0","14917","259974","18.07.23 18:47:28.000","18.07.23 18:46:47.000",259974,0000,0000,000,00000,144,00201,117,00270,142,00318,145,00373,144,00433,143,00505,044,00605,143,00649,144,00697,103,00815,079,00868,149,00980,101,01039,090,01199,106,01321,079,01453,092,01626,097,01716,077,01800,048,02029,118,02133,053,02169,055,02301,058,02360,031,02453,052,02509,058,02568,080,02649,059,02699,058,02744,057,02786,099,02799,250,02818,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000078
"M","0","14917","249918","18.07.23 18:48:00.000","18.07.23 18:47:19.000",249918,0000,0000,000,00000,144,00180,117,00371,142,00414,145,00467,144,00540,044,00584,143,00665,144,00711,103,00820,079,00872,149,00986,101,01029,090,01115,106,01207,079,01319,092,01609,097,01734,077,01797,048,01890,118,02037,053,02080,082,02176,055,02238,058,02295,031,02381,052,02431,058,02488,080,02538,059,02578,058,02617,057,02661,249,02672,099,02673,250,02685,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000079
"M","0","14917","265937","18.07.23 18:48:13.000","18.07.23 18:47:32.000",265937,0000,0000,000,00000,144,00180,117,00258,142,00302,145,00355,144,00421,044,00475,143,00594,144,00645,103,00723,079,00766,149,00869,101,00917,090,01023,106,01212,079,01348,092,01449,097,01555,077,01630,048,01722,118,01819,053,01856,082,01933,055,01992,058,02062,031,02146,052,02209,058,02283,080,02342,059,02399,058,02446,057,02510,249,02522,099,02522,250,02544,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000080
"M","0","14917","237782","18.07.23 18:48:22.000","18.07.23 18:47:41.000",237782,0000,0000,000,00000,144,00173,145,00256,142,00312,117,00365,144,00433,103,00509,079,00559,101,00814,149,00869,101,00917,090,01023,106,01169,079,01307,092,01432,097,01528,077,01663,048,01750,118,01859,053,01906,082,01995,055,02070,058,02143,080,02210,059,02275,058,02328,057,02385,249,02399,099,02400,250,02427,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000081
"M","0","14917","265575","18.07.23 18:48:32.000","18.07.23 18:47:50.000",265575,0000,0000,000,00000,144,00187,145,00274,142,00375,117,00439,144,00507,103,00584,079,00633,149,00943,101,00990,090,01097,106,01242,079,01380,092,01496,097,01602,077,01729,048,01823,118,01936,053,01978,082,02068,055,02144,058,02217,080,02282,059,02349,058,02401,057,02462,249,02477,099,02478,250,02507,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000082
"M","0","14917","255638","18.07.23 18:48:41.000","18.07.23 18:47:59.000",255638,0000,0000,000,00000,144,00170,117,00239,142,00340,145,00407,144,00486,044,00533,143,00625,144,00673,103,00742,079,00794,149,00914,101,00976,090,01073,106,01184,079,01300,092,01354,097,01467,077,01536,048,01620,118,01737,053,01779,082,01854,055,01932,058,02002,031,02098,052,02157,058,02218,080,02267,059,02317,058,02358,057,02403,249,02415,099,02416,250,02450,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000083
"M","0","14917","515883","18.07.23 18:48:51.000","18.07.23 18:48:09.000",515883,0000,0000,000,00000,144,00172,117,00247,142,00286,145,00355,144,00419,044,00841,143,00885,144,00948,103,01020,079,01151,149,01272,101,01330,090,01443,106,01620,079,01727,092,01854,097,01951,077,02071,048,02291,118,02401,053,02447,082,02521,055,02582,058,02651,031,02735,052,02802,058,02876,080,02945,059,03004,058,03044,057,03115,249,03127,099,03128,250,03166,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000084
"M","0","14917","212198","18.07.23 18:50:05.000","18.07.23 18:49:24.000",212198,0000,0000,000,00000,144,00138,117,00279,142,00352,145,00389,144,00436,044,00466,143,00519,144,00552,103,00634,079,00687,149,00773,101,00849,090,00941,106,01025,079,01114,092,01173,097,01251,077,01314,048,01385,118,01466,053,01506,082,01568,055,01630,058,01683,031,01770,052,01818,058,01887,080,01939,059,01982,058,02021,057,02072,249,02082,250,02125,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000085
"M","0","14917","519874","18.07.23 18:51:43.000","18.07.23 18:51:02.000",519874,0000,0000,000,00000,048,00140,097,00422,105,00583,103,00647,091,00767,144,00915,143,01162,053,01402,054,01514,055,01653,031,02178,058,02364,057,02466,249,02488,099,02489,250,02495,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000086
"M","0","14917","520934","18.07.23 18:52:05.000","18.07.23 18:51:23.000",520934,0000,0000,000,00000,048,00202,097,00495,105,00627,103,00746,091,00810,144,00946,143,01118,053,01392,054,01496,055,01650,031,01802,058,02015,057,02108,249,02130,250,02143,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000087
"M","0","14917","519875","18.07.23 18:56:21.000","18.07.23 18:53:00.000",519875,0000,0000,000,00000,144,00199,145,00326,142,00389,117,00474,144,00554,103,00673,079,00766,149,00916,101,00992,090,01172,106,01298,079,01624,092,01738,097,01848,077,02039,048,02139,118,02269,053,02337,082,02476,055,02546,058,02621,059,02702,080,02840,059,02908,058,02957,057,03024,249,03107,099,03107,250,03113,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000088
"M","0","14917","086173","18.07.23 18:56:21.000","18.07.23 18:54:22.000",086173,0000,0000,000,00000,144,00266,145,00379,142,00462,144,00904,103,00990,079,01070,149,01351,101,01388,090,01706,106,01942,079,02249,092,02538,097,02668,077,02821,048,02950,118,03096,053,03156,082,03404,055,03499,058,03586,080,03727,059,03844,058,03895,057,03964,249,03976,250,03982,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000089
"M","0","14917","249910","18.07.23 18:56:26.000","18.07.23 18:55:45.000",249910,0000,0000,000,00000,144,00180,117,00248,142,00397,145,00472,144,00535,044,00588,143,00649,144,00693,103,00748,079,00812,149,00917,101,00985,090,01203,106,01326,079,01475,092,01641,097,01737,077,01892,048,01984,118,02090,053,02128,082,02221,055,02282,058,02337,059,02395,080,02457,059,02514,058,02572,057,02626,249,02639,099,02640,250,02710,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000090
"M","0","14917","529329","18.07.23 18:56:50.000","18.07.23 18:56:08.000",529329,0000,0000,000,00000,144,00190,145,00302,142,00353,117,00405,144,00481,103,00555,079,00609,149,00802,101,00855,090,00956,106,01142,079,01296,092,01418,097,01524,077,01804,048,01912,118,02042,053,02097,082,02179,055,02251,058,02324,080,02400,059,02458,058,02523,057,02574,249,02589,099,02590,250,02666,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000091
"M","0","14917","514688","18.07.23 18:57:08.000","18.07.23 18:56:27.000",514688,0000,0000,000,00000,144,00332,145,00774,142,00860,117,00990,144,01124,103,02110,079,02256,149,02564,101,02828,090,03030,106,03300,092,03716,097,04006,077,04288,048,04511,053,04725,250,05141,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000092
"M","0","14917","519899","18.07.23 18:57:24.000","18.07.23 18:56:42.000",519899,0000,0000,000,00000,144,00122,117,00174,142,00228,145,00269,144,00318,044,00346,143,00408,103,00501,079,00536,149,00620,101,00674,090,00748,106,00834,079,00917,092,00981,097,01060,077,01185,048,01251,118,01391,053,01423,082,01476,055,01519,058,01565,031,01632,052,01681,058,01733,080,01776,059,01814,058,01848,057,01880,249,01889,250,01895,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000093
"M","0","14917","184307","18.07.23 19:00:14.000","18.07.23 18:59:32.000",184307,0000,0000,250,00014,249,00096,099,00097,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000094
"M","0","14917","086197","18.07.23 19:01:11.000","18.07.23 19:00:29.000",086197,0000,0000,000,00000,144,00287,145,00394,142,00479,144,00628,103,00738,149,01329,101,01380,090,01694,106,01880,079,02812,092,02907,097,03061,077,03242,048,03374,118,03547,053,03616,082,03764,055,03855,058,03947,059,04147,058,04209,057,04302,249,04316,250,04323,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000095
"M","0","14917","263068","18.07.23 19:01:23.000","18.07.23 19:00:41.000",263068,0000,0000,000,00000,144,00173,117,00343,142,00414,145,00470,144,00526,044,00571,143,00724,144,00758,103,00808,079,00848,149,01014,101,01088,090,01190,106,01348,105,01473,079,01556,092,01666,097,01750,077,01816,048,01923,118,02065,053,02113,082,02193,055,02258,058,02323,052,02393,031,02537,052,02591,058,02659,080,02727,059,02786,057,02845,249,02857,099,02858,250,02874,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000096
"M","0","14917","263080","18.07.23 19:01:40.000","18.07.23 19:00:58.000",263080,0000,0000,000,00000,144,00215,117,00283,142,00606,145,00678,144,00744,044,00780,143,00892,144,00943,103,01024,079,01085,149,01220,101,01371,090,01558,106,01783,079,01908,092,01951,097,02045,077,02226,048,02354,118,02473,053,02524,057,02716,249,02733,099,02734,250,02741,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000097
"M","0","14917","511474","18.07.23 19:02:38.000","18.07.23 19:01:57.000",511474,0000,0000,000,00000,144,00183,145,00351,142,00528,117,00594,144,00669,103,00773,079,00904,149,01043,101,01102,090,01250,106,01368,079,01530,092,01625,097,01733,077,01946,048,02060,118,02185,053,02234,082,02319,055,02383,058,02450,080,02520,059,02581,058,02632,057,02694,249,02707,250,02719,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000098
"M","0","14917","263063","18.07.23 19:02:56.000","18.07.23 19:02:15.000",263063,0000,0000,000,00000,144,00196,117,00286,142,00396,145,00464,144,00556,143,00660,044,00735,143,00825,144,00878,103,00951,079,01055,149,01205,101,01299,090,01424,106,01640,079,01787,092,01906,097,02014,077,02158,048,02305,118,02404,082,02542,055,02618,058,02684,031,02775,052,02841,058,02914,080,02988,059,03046,058,03097,057,03156,249,03170,099,03171,250,03196,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000099
"M","0","14917","249911","18.07.23 19:05:48.000","18.07.23 19:05:06.000",249911,0000,0000,000,00000,144,00171,145,00391,117,00499,144,00591,103,00672,079,00736,101,00946,079,01248,092,01456,097,01628,077,01770,048,01868,118,02002,053,02055,250,02170,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000100
"M","0","14917","247654","18.07.23 19:08:28.000","18.07.23 19:07:46.000",247654,0000,0000,000,00000,144,00186,117,00292,142,00356,145,00429,144,00512,044,00564,143,00651,144,00691,103,00768,079,00843,149,00965,101,01048,090,01279,106,01484,079,01630,092,01673,097,01765,077,01924,048,02026,118,02157,053,02197,082,02275,055,02349,058,02405,031,02477,052,02546,058,02619,080,02679,059,02736,058,02777,057,02842,249,02852,250,02858,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000101
"M","0","14917","510423","18.07.23 19:09:52.000","18.07.23 19:09:10.000",510423,0000,0000,000,00000,144,00292,145,00454,142,00568,117,00670,144,00817,103,00976,079,01054,149,01260,101,01369,090,01650,106,01819,079,02039,092,02169,097,02350,077,02521,048,02706,118,02901,053,02957,082,03074,055,03172,058,03280,080,03395,059,03488,058,03557,057,03645,249,03663,250,03669,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000102
"M","0","14917","245739","18.07.23 19:10:23.000","18.07.23 19:09:40.000",245739,0000,0000,000,00000,144,00263,145,00371,142,00450,117,00543,091,00765,103,00828,079,00901,149,01078,101,01338,090,01638,106,01897,079,02165,092,02349,097,02519,077,02685,048,02880,118,03085,053,03144,082,03283,055,03387,058,03490,080,03610,059,03696,058,03771,057,03858,249,03887,099,03888,250,03896,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000103
"M","0","14917","268438","18.07.23 19:13:24.000","18.07.23 19:12:42.000",268438,0000,0000,000,00000,144,00278,145,00373,142,00440,117,00767,144,00857,044,00934,103,01056,079,01202,149,01464,101,01556,090,01772,106,01916,079,02126,092,02365,097,02556,077,02690,048,02871,118,03055,053,03123,082,03276,055,03365,058,03473,080,03674,059,03769,058,03854,057,03950,249,03978,250,03983,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000104
"M","0","14917","512690","18.07.23 19:14:11.000","18.07.23 19:13:29.000",512690,0000,0000,000,00000,144,00169,117,00239,142,00440,145,00569,144,00629,044,00669,143,00718,144,00793,103,00886,079,00925,149,01041,101,01093,090,01191,106,01291,079,01400,092,01449,097,01532,077,01674,048,01761,118,01854,053,01886,082,01964,055,02045,058,02104,031,02180,052,02245,058,02327,080,02393,059,02447,058,02497,057,02543,249,02557,250,02563,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000105
"M","0","14917","266477","18.07.23 19:14:50.000","18.07.23 19:14:08.000",266477,0000,0000,000,00000,144,00184,117,00273,142,00512,145,00596,144,00679,044,00733,143,00829,144,00867,103,00945,079,01003,149,01130,101,01224,090,01454,106,01646,079,01828,092,01989,097,02123,077,02276,048,02400,118,02506,053,02546,082,02616,055,02696,058,02771,031,02931,052,03001,058,03064,080,03192,059,03250,058,03298,057,03354,249,03368,099,03369,250,03412,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000106
"M","0","14917","247823","18.07.23 19:19:01.000","18.07.23 19:18:19.000",247823,0000,0000,000,00000,144,00222,145,00527,142,00571,117,01092,144,01156,091,01219,103,01378,079,01432,149,01622,101,01685,090,01878,106,02009,079,02137,092,02355,097,02486,077,02661,048,02809,118,02945,053,02996,082,03142,055,03217,058,03297,080,03372,059,03433,058,03489,057,03566,249,03577,099,03578,250,03583,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000107
"M","0","14917","521030","18.07.23 19:19:30.000","18.07.23 19:18:48.000",521030,0000,0000,000,00000,144,00165,117,00232,142,00301,145,00437,144,00510,044,00556,143,00642,144,00684,091,00746,079,00913,149,01176,101,01213,090,01356,106,01451,079,01612,092,01731,097,01818,077,01897,048,02014,118,02180,053,02217,082,02405,055,02488,058,02550,031,02644,052,02739,058,02832,059,02899,080,02960,059,03007,058,03073,057,03130,249,03138,250,03144,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000108
"M","0","14917","517441","18.07.23 19:20:42.000","18.07.23 19:20:00.000",517441,0000,0000,000,00000,144,00291,145,00521,142,00600,117,00691,144,00798,103,00897,079,00973,149,01243,101,01505,090,01763,106,01894,079,02091,092,02205,097,02377,077,02589,048,02747,118,02921,053,02971,082,03093,055,03204,058,03295,059,03377,080,03459,058,03540,057,03616,249,03645,099,03646,250,03650,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000109
"M","0","14917","525046","18.07.23 19:28:54.000","18.07.23 19:28:12.000",525046,0000,0000,000,00000,144,00183,117,00242,142,00332,145,00378,144,00443,044,00475,143,00670,144,00763,103,00853,079,00899,149,01007,101,01052,090,01165,106,01308,079,01490,092,01566,097,01699,077,01920,048,02432,118,02545,053,02591,082,02673,055,02738,058,02807,031,02937,052,03051,058,03139,080,03204,059,03259,058,03315,057,03372,249,03388,250,03395,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,000,00000,0000110
1 M 0 14917 255744 18.07.23 17:47:22.000 18.07.23 17:46:40.000 255744 0000 0000 000 00000 065 00058 048 00120 144 00265 091 00386 097 00514 063 00621 056 00713 054 00817 061 00944 058 01016 057 01125 249 01137 099 01138 250 01145 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000001
2 M 0 14917 251359 18.07.23 17:51:18.000 18.07.23 17:50:36.000 251359 0000 0000 000 00000 065 00078 048 00158 144 00324 091 00458 097 00590 063 00700 056 00806 054 00922 061 01036 058 01141 057 01323 249 01342 099 01343 250 01354 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000002
3 M 0 14917 255744 18.07.23 17:52:52.000 18.07.23 17:52:11.000 255744 0000 0000 000 00000 065 00058 048 00120 144 00265 091 00386 097 00514 063 00621 056 00713 054 00817 061 00944 058 01016 057 01125 249 01137 099 01138 250 01476 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000003
4 M 0 14917 251359 18.07.23 17:53:00.000 18.07.23 17:52:18.000 251359 0000 0000 000 00000 065 00078 048 00158 144 00324 091 00458 097 00590 063 00700 056 00806 054 00922 061 01036 058 01141 057 01323 249 01342 099 01343 250 01456 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000004
5 M 0 14917 251252 18.07.23 17:59:18.000 18.07.23 17:58:36.000 251252 0000 0000 000 00000 065 00133 048 00213 144 00422 091 00571 097 00788 063 00946 056 01084 249 01291 250 01311 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000005
6 M 0 14917 511333 18.07.23 17:59:32.000 18.07.23 17:58:50.000 511333 0000 0000 000 00000 249 01271 250 01300 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000006
7 M 0 14917 263083 18.07.23 18:13:50.000 18.07.23 18:13:08.000 263083 0000 0000 000 00000 144 00127 145 00185 142 00220 117 00257 144 00303 103 00353 079 00389 149 00473 101 00509 090 00613 106 00744 079 00849 092 00956 097 01043 077 01109 048 01181 118 01281 053 01344 082 01422 055 01471 058 01519 080 01584 059 01625 058 01657 057 01699 249 01708 099 01709 250 01720 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000007
8 M 0 14917 268492 18.07.23 18:14:10.000 18.07.23 18:13:29.000 268492 0000 0000 000 00000 144 00129 117 00255 142 00283 145 00340 144 00390 044 00465 143 00501 144 00538 103 00590 079 00627 149 00768 101 00844 090 00911 106 00981 079 01077 092 01151 097 01234 077 01337 048 01421 118 01521 053 01558 082 01617 055 01670 058 01721 031 01804 052 01850 058 01919 080 01974 059 02013 058 02044 057 02084 249 02093 099 02094 250 02104 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000008
9 M 0 14917 250596 18.07.23 18:15:11.000 18.07.23 18:14:30.000 250596 0000 0000 000 00000 144 00131 117 00180 142 00219 145 00267 144 00352 044 00391 143 00550 144 00591 103 00636 079 00744 149 00844 101 00899 090 01429 079 01637 092 01693 097 01771 077 01883 048 01979 118 02084 082 02174 055 02227 058 02279 031 02360 052 02412 058 02485 080 02542 059 02606 058 02643 057 02696 249 02707 099 02707 250 02714 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000009
10 M 0 14917 510878 18.07.23 18:16:31.000 18.07.23 18:15:50.000 510878 0000 0000 000 00000 144 00222 145 00385 142 00485 117 00564 144 00643 103 00713 079 00807 149 00954 101 01042 090 01188 106 01426 079 01586 092 01770 097 01892 077 02060 048 02186 118 02303 053 02350 082 02436 055 02504 058 02579 080 02650 059 02714 058 02763 057 02828 249 02842 250 02848 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000010
11 M 0 14917 261416 18.07.23 18:16:36.000 18.07.23 18:15:55.000 261416 0000 0000 000 00000 144 00174 145 00345 142 00402 117 00509 144 00566 103 00634 079 00704 149 00851 101 00899 090 01036 106 01156 079 01370 092 01533 097 01641 048 01779 118 01888 053 01933 082 02018 055 02087 058 02162 080 02239 059 02307 058 02354 057 02417 249 02431 099 02431 250 02439 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000011
12 M 0 14917 263065 18.07.23 18:18:28.000 18.07.23 18:17:46.000 263065 0000 0000 000 00000 144 00132 145 00224 142 00340 117 00369 144 00416 091 00457 103 00511 079 00549 149 00640 101 00720 090 00794 106 00883 079 00981 092 01107 097 01180 077 01332 048 01413 118 01509 053 01538 082 01598 055 01645 058 01691 080 01763 059 01803 058 01834 057 01874 249 01882 099 01883 250 01894 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000012
13 M 0 14917 521042 18.07.23 18:18:49.000 18.07.23 18:18:08.000 521042 0000 0000 000 00000 144 00145 117 00205 142 00367 145 00404 144 00456 044 00496 143 00617 144 00647 103 00721 079 00767 149 00854 101 00909 090 01017 106 01145 079 01253 092 01378 097 01462 077 01681 048 01750 118 01909 053 01951 082 02024 055 02099 058 02161 031 02266 052 02346 058 02409 080 02482 059 02522 058 02559 057 02605 249 02615 099 02616 250 02629 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000013
14 M 0 14917 260788 18.07.23 18:19:01.000 18.07.23 18:18:20.000 260788 0000 0000 000 00000 144 00186 145 00275 142 00374 117 00426 144 00488 103 00548 079 00607 149 00717 101 00813 090 00983 106 01100 079 01214 092 01333 097 01438 077 01506 048 01610 118 01804 053 01841 082 01927 055 01992 058 02052 080 02154 059 02211 058 02256 057 02316 249 02328 099 02328 250 02341 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000014
15 M 0 14917 251359 18.07.23 18:19:15.000 18.07.23 18:18:34.000 251359 0000 0000 000 00000 065 00078 048 00193 144 00434 091 00502 097 00638 063 00728 056 00823 054 00884 061 00994 058 01083 057 01155 249 01173 099 01174 250 01186 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000015
16 M 0 14917 255632 18.07.23 18:19:26.000 18.07.23 18:18:44.000 255632 0000 0000 000 00000 144 00144 117 00313 142 00380 144 00491 044 00533 143 00607 144 00649 103 00701 079 00746 149 00878 101 00923 090 01010 106 01095 079 01214 092 01290 097 01398 077 01513 048 01596 118 01693 053 01727 082 01794 055 01861 058 01917 031 02011 052 02066 058 02154 080 02243 059 02290 058 02329 057 02372 249 02382 099 02383 250 02396 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000016
17 M 0 14917 263090 18.07.23 18:19:46.000 18.07.23 18:19:04.000 263090 0000 0000 000 00000 144 00153 145 00252 142 00389 117 00423 144 00473 103 00547 079 00588 149 00687 101 00785 090 00873 106 00954 079 01059 092 01144 097 01226 077 01363 048 01483 053 01618 082 01682 055 01737 058 01795 080 01850 059 01901 058 01939 057 01977 249 01987 099 01988 250 02015 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000017
18 M 0 14917 519898 18.07.23 18:20:12.000 18.07.23 18:19:30.000 519898 0000 0000 000 00000 065 00042 048 00101 144 00238 091 00350 097 00460 063 00529 056 00601 054 00673 061 00759 058 00815 057 00885 249 00900 099 00901 250 00904 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000018
19 M 0 14917 263086 18.07.23 18:21:49.000 18.07.23 18:21:08.000 263086 0000 0000 000 00000 117 00284 142 00320 145 00362 144 00410 044 00521 143 00569 144 00604 103 00652 079 00700 149 00799 101 00832 090 00976 106 01050 079 01132 092 01257 097 01324 077 01385 048 01472 118 01564 053 01599 082 01652 055 01700 058 01748 031 01809 052 01852 058 01902 080 01981 059 02019 058 02054 057 02099 249 02109 099 02110 250 02124 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000019
20 M 0 14917 263089 18.07.23 18:22:18.000 18.07.23 18:21:36.000 263089 0000 0000 000 00000 144 00121 117 00250 142 00357 145 00392 144 00458 143 00522 044 00653 143 00691 103 00774 079 00827 149 00926 101 00967 090 01165 106 01235 079 01332 092 01430 097 01497 077 01560 048 01642 118 01733 053 01761 082 01816 055 01869 058 01911 031 01973 052 02021 058 02074 080 02142 059 02199 058 02235 057 02273 249 02282 099 02283 250 02318 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000020
21 M 0 14917 263070 18.07.23 18:22:30.000 18.07.23 18:21:49.000 263070 0000 0000 000 00000 144 00129 117 00261 142 00299 145 00419 144 00484 143 00559 044 00679 143 00713 144 00754 103 00800 079 00851 149 00950 101 00988 090 01162 106 01237 079 01333 092 01375 097 01449 077 01533 048 01615 118 01692 053 01733 082 01798 055 01847 058 01896 031 01964 052 02022 058 02078 080 02175 059 02232 058 02272 057 02310 249 02320 099 02321 250 02360 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000021
22 M 0 14917 233748 18.07.23 18:23:05.000 18.07.23 18:22:23.000 233748 0000 0000 000 00000 144 00195 117 00411 142 00470 145 00542 144 00651 044 00694 143 00783 144 00836 103 00956 079 01047 149 01229 101 01282 090 01368 106 01521 092 01889 097 02013 077 02112 048 02245 118 02382 053 02421 082 02523 055 02586 058 02652 031 02771 052 02835 058 02902 080 02971 059 03034 058 03081 057 03148 249 03161 099 03161 250 03168 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000022
23 M 0 14917 187059 18.07.23 18:23:34.000 18.07.23 18:22:52.000 187059 0000 0000 000 00000 144 00150 117 00202 142 00243 145 00297 044 00485 143 00587 144 00636 103 00697 079 00740 149 00906 101 00969 090 01074 106 01149 079 01261 092 01342 097 01434 077 01586 048 01668 118 01760 053 01792 082 01863 055 01917 058 01980 031 02052 052 02121 058 02202 080 02254 059 02314 058 02358 057 02425 249 02438 099 02439 250 02448 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000023
24 M 0 14917 259973 18.07.23 18:24:05.000 18.07.23 18:23:23.000 259973 0000 0000 000 00000 048 00060 097 00187 105 00235 103 00268 091 00283 144 00333 143 00374 053 00533 054 00589 055 00673 031 00702 058 00771 057 00831 249 00840 250 00852 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000024
25 M 0 14917 203394 18.07.23 18:24:13.000 18.07.23 18:23:31.000 203394 0000 0000 000 00000 144 00177 145 00305 142 00388 117 00450 144 00516 103 00582 079 00637 149 00794 101 00845 090 00961 106 01332 105 01479 092 01642 097 01766 077 01887 048 02005 118 02151 053 02190 082 02353 055 02425 058 02507 080 02570 059 02634 058 02690 057 02759 249 02774 250 02790 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000025
26 M 0 14917 263084 18.07.23 18:24:51.000 18.07.23 18:24:09.000 263084 0000 0000 000 00000 144 00146 117 00202 142 00302 145 00355 144 00413 044 00454 143 00529 144 00576 103 00626 079 00670 149 00800 101 00857 090 00939 106 01026 079 01138 092 01227 097 01316 077 01453 048 01543 118 01642 053 01680 082 01750 055 01807 058 01861 031 01933 052 01985 058 02046 080 02102 059 02147 058 02183 057 02228 249 02240 099 02241 250 02256 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000026
27 M 0 14917 263072 18.07.23 18:24:58.000 18.07.23 18:24:17.000 263072 0000 0000 000 00000 144 00149 117 00207 142 00324 145 00360 144 00417 044 00456 143 00538 144 00579 103 00630 079 00673 101 00862 090 00941 106 01029 079 01140 092 01230 097 01321 077 01459 048 01545 118 01644 053 01683 082 01752 055 01809 058 01865 031 01937 052 01989 058 02048 080 02104 059 02151 058 02186 057 02229 249 02241 099 02242 250 02261 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000027
28 M 0 14917 402905 18.07.23 18:25:17.000 18.07.23 18:24:36.000 402905 0000 0000 000 00000 144 00185 145 00296 142 00419 117 00502 144 00587 103 00713 079 00772 149 00950 101 01005 090 01147 106 01255 079 01387 092 01584 097 01715 077 01801 048 02068 053 02292 082 02389 055 02473 058 02556 059 02720 080 02802 059 02868 058 02926 057 02987 249 03002 250 03031 254 00195 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000028
29 M 0 14917 257393 18.07.23 18:25:24.000 18.07.23 18:24:43.000 257393 0000 0000 000 00000 144 00186 145 00288 142 00370 117 00464 144 00544 091 00608 103 00654 079 00761 149 01106 101 01165 090 01325 106 01454 079 01720 092 01845 097 01955 077 02043 048 02297 118 02422 053 02546 082 02638 055 02715 058 02783 080 03028 059 03087 058 03155 057 03222 249 03239 250 03270 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000029
30 M 0 14917 249917 18.07.23 18:25:53.000 18.07.23 18:25:11.000 249917 0000 0000 000 00000 144 00212 117 00348 142 00372 145 00419 044 00506 143 00554 103 00637 079 00680 149 00768 101 00806 090 00866 106 00941 079 01037 092 01098 097 01169 077 01238 048 01311 118 01388 053 01423 082 01492 055 01544 058 01588 031 01663 052 01712 058 01765 080 01803 059 01843 058 01876 057 01913 249 01929 099 01930 250 01978 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000030
31 M 0 14917 263066 18.07.23 18:26:01.000 18.07.23 18:25:19.000 263066 0000 0000 000 00000 144 00105 117 00157 142 00207 145 00248 144 00300 044 00328 143 00384 144 00426 103 00473 079 00509 149 00598 101 00642 090 00727 106 00803 092 00981 097 01042 077 01128 048 01201 118 01277 053 01304 082 01358 055 01403 058 01445 031 01506 052 01548 058 01601 080 01641 059 01683 058 01717 057 01753 249 01766 099 01766 250 01819 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000031
32 M 0 14917 255211 18.07.23 18:26:19.000 18.07.23 18:25:37.000 255211 0000 0000 000 00000 144 00264 145 00384 142 00491 117 00583 144 00666 103 00769 079 00861 149 01033 101 01090 090 01253 106 01369 079 01523 092 01671 097 01831 077 01946 048 02081 118 02309 053 02404 082 02628 055 02714 058 02807 080 02923 059 03000 058 03061 057 03162 249 03179 099 03180 250 03186 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000032
33 M 0 14917 259979 18.07.23 18:27:06.000 18.07.23 18:26:24.000 259979 0000 0000 000 00000 144 00106 117 00199 142 00228 145 00264 144 00310 044 00368 143 00406 144 00435 103 00476 079 00505 149 00570 101 00600 090 00664 106 00728 079 00797 092 00840 097 00898 077 00954 048 01016 118 01100 053 01129 082 01183 055 01224 058 01265 031 01316 052 01360 058 01404 080 01446 059 01477 058 01507 057 01546 249 01555 250 01562 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000033
34 M 0 14917 263082 18.07.23 18:27:48.000 18.07.23 18:27:07.000 263082 0000 0000 000 00000 144 00147 117 00191 142 00237 145 00280 144 00326 044 00354 143 00403 144 00438 103 00487 079 00528 149 00659 101 00692 090 00765 106 00839 079 00937 092 01013 097 01074 077 01169 048 01236 118 01308 053 01336 082 01397 055 01445 058 01495 031 01562 052 01610 058 01688 057 01736 080 01796 059 01839 058 01885 057 01926 249 01938 099 01939 250 01951 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000034
35 M 0 14917 263074 18.07.23 18:29:02.000 18.07.23 18:28:20.000 263074 0000 0000 000 00000 144 00158 117 00301 142 00328 145 00377 044 00453 143 00498 103 00584 079 00616 149 00748 101 00780 090 00854 106 00926 079 01026 092 01103 097 01180 077 01257 048 01343 118 01425 053 01462 082 01526 055 01582 058 01641 031 01714 052 01857 058 01925 080 01977 059 02022 058 02061 057 02098 249 02108 099 02109 250 02117 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000035
36 M 0 14917 243222 18.07.23 18:29:16.000 18.07.23 18:28:34.000 243222 0000 0000 000 00000 144 00168 145 00250 142 00457 117 00527 144 00581 103 00789 079 00831 149 00944 101 01011 090 01181 106 01292 079 01444 092 01570 097 01692 077 01882 048 02000 118 02116 053 02171 082 02345 055 02417 058 02482 080 02645 059 02700 058 02748 057 02795 249 02807 099 02808 250 02816 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000036
37 M 0 14917 263085 18.07.23 18:29:27.000 18.07.23 18:28:46.000 263085 0000 0000 000 00000 144 00222 117 00282 145 00364 144 00431 143 00483 044 00578 143 00622 144 00665 103 00709 079 00752 101 00929 090 01121 106 01189 079 01288 092 01396 097 01467 077 01528 048 01617 118 01810 053 01851 082 01935 055 02023 058 02091 031 02199 052 02278 058 02400 080 02512 059 02565 058 02610 057 02676 249 02692 250 02707 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000037
38 M 0 14917 263069 18.07.23 18:29:59.000 18.07.23 18:29:17.000 263069 0000 0000 000 00000 144 00161 145 00263 142 00306 117 00352 144 00402 103 00462 079 00556 149 00687 101 00748 090 00972 106 01049 079 01173 092 01342 097 01445 077 01553 048 01651 118 01765 053 01801 082 01875 055 01947 058 02002 059 02051 080 02098 058 02152 057 02197 249 02208 099 02209 250 02220 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000038
39 M 0 14917 263079 18.07.23 18:30:05.000 18.07.23 18:29:23.000 263079 0000 0000 000 00000 144 00120 117 00161 142 00199 145 00249 144 00313 044 00343 143 00398 144 00436 103 00480 079 00519 149 00602 101 00634 090 00705 106 00778 079 00869 092 00919 097 00999 077 01157 048 01222 118 01297 053 01322 082 01394 055 01441 058 01483 031 01550 052 01591 058 01637 080 01677 059 01716 058 01752 057 01785 249 01794 250 01807 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000039
40 M 0 14917 263081 18.07.23 18:30:41.000 18.07.23 18:29:59.000 263081 0000 0000 000 00000 144 00148 117 00198 142 00257 145 00313 144 00361 044 00393 143 00441 144 00477 103 00527 079 00564 149 00688 101 00722 090 00947 106 01031 079 01157 092 01298 097 01377 077 01472 048 01548 118 01624 053 01651 082 01722 055 01773 058 01820 031 01876 052 01918 058 01969 080 02011 059 02074 058 02107 057 02148 249 02157 250 02167 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000040
41 M 0 14917 263062 18.07.23 18:31:00.000 18.07.23 18:30:19.000 263062 0000 0000 000 00000 144 00188 145 00254 142 00303 117 00411 144 00469 103 00536 079 00590 149 00722 101 00757 090 00947 106 01027 079 01183 092 01244 097 01330 077 01453 048 01558 118 01668 053 01712 082 01788 055 01859 058 01916 059 01964 080 02010 059 02083 058 02119 057 02170 249 02180 099 02181 250 02190 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000041
42 M 0 14917 263073 18.07.23 18:31:24.000 18.07.23 18:30:43.000 263073 0000 0000 000 00000 144 00119 142 00180 117 00216 142 00249 145 00285 144 00328 044 00358 143 00398 144 00430 103 00475 079 00508 149 00582 101 00616 090 00703 106 00776 079 00855 092 00897 097 00963 077 01084 048 01156 118 01227 053 01251 082 01299 055 01340 058 01388 031 01449 052 01499 058 01548 080 01590 059 01626 058 01656 057 01692 249 01703 099 01704 250 01732 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000042
43 M 0 14917 249916 18.07.23 18:31:45.000 18.07.23 18:31:03.000 249916 0000 0000 000 00000 144 00223 117 00391 142 00538 145 00587 144 00672 044 00724 143 00786 144 00839 103 00903 079 00946 149 01057 101 01110 090 01285 106 01403 079 01535 092 01666 097 01777 077 01957 048 02088 118 02222 053 02272 082 02406 055 02478 058 02556 031 02644 052 02721 058 02799 080 02861 059 02917 058 02960 057 03009 249 03023 099 03023 250 03031 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000043
44 M 0 14917 263067 18.07.23 18:31:55.000 18.07.23 18:31:13.000 263067 0000 0000 000 00000 144 00219 145 00400 142 00442 117 00513 144 00569 103 00673 079 00724 149 00879 101 00936 090 01174 079 01383 092 01468 097 01582 077 01668 048 01780 118 01883 053 01935 082 02015 055 02075 058 02152 080 02254 059 02325 058 02368 057 02429 249 02442 099 02443 250 02457 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000044
45 M 0 14917 216677 18.07.23 18:33:04.000 18.07.23 18:32:22.000 216677 0000 0000 000 00000 144 00153 145 00219 142 00274 117 00321 144 00394 103 00463 079 00513 149 00626 101 00674 090 00773 106 00892 079 01036 092 01168 097 01277 077 01348 048 01435 118 01538 053 01575 082 01647 055 01706 058 01766 080 01829 059 01873 058 01915 057 01967 249 01978 250 01988 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000045
46 M 0 14917 259978 18.07.23 18:33:26.000 18.07.23 18:32:44.000 259978 0000 0000 000 00000 144 00166 117 00235 145 00394 144 00458 143 00559 044 00758 143 00797 144 00843 103 00907 079 00955 149 01062 101 01110 090 01252 106 01356 079 01472 092 01580 097 01679 077 01760 048 01846 118 01941 082 02032 055 02091 058 02146 031 02239 052 02301 058 02360 080 02418 059 02463 058 02502 057 02549 249 02559 099 02560 250 02573 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000046
47 M 0 14917 527382 18.07.23 18:34:06.000 18.07.23 18:33:25.000 527382 0000 0000 000 00000 144 00244 145 00520 142 00605 117 00687 144 00782 103 00882 079 00950 149 01114 101 01220 090 01378 106 01532 079 01721 092 01865 097 02042 077 02209 048 02376 118 02550 053 02717 082 02856 055 02940 058 03048 080 03149 059 03233 058 03301 057 03402 249 03418 099 03419 250 03426 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000047
48 M 0 14917 243121 18.07.23 18:34:31.000 18.07.23 18:33:49.000 243121 0000 0000 000 00000 048 00103 097 00361 105 00492 103 00559 091 00596 044 00650 143 00825 053 01034 054 01101 055 01217 031 01280 058 01434 057 01508 249 01524 099 01525 250 01530 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000048
49 M 0 14917 241013 18.07.23 18:35:44.000 18.07.23 18:35:02.000 241013 0000 0000 000 00000 048 00094 097 00299 105 00394 103 00475 091 00516 144 00743 143 00956 053 01215 054 01275 055 01392 031 01450 058 01553 057 01624 249 01640 099 01641 250 01653 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000049
50 M 0 14917 249905 18.07.23 18:36:25.000 18.07.23 18:35:43.000 249905 0000 0000 000 00000 144 00134 117 00265 145 00428 044 00542 143 00605 144 00651 091 00701 079 00886 103 00939 079 00977 149 01084 101 01133 090 01294 106 01388 079 01497 092 01602 097 01714 077 01802 048 01886 118 02019 053 02063 082 02150 055 02215 058 02274 031 02434 052 02500 058 02563 059 02629 058 02688 057 02755 249 02767 250 02779 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000050
51 M 0 14917 263091 18.07.23 18:37:10.000 18.07.23 18:36:28.000 263091 0000 0000 000 00000 144 00233 145 00291 142 00350 117 00461 144 00517 044 00585 103 00646 079 00736 149 00888 101 00944 090 01069 106 01185 079 01307 092 01439 097 01568 077 01698 118 02027 053 02083 082 02171 055 02249 058 02324 080 02391 059 02460 058 02513 057 02569 249 02585 099 02586 250 02602 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000051
52 M 0 14917 263078 18.07.23 18:37:19.000 18.07.23 18:36:38.000 263078 0000 0000 000 00000 144 00233 145 00357 142 00416 117 00469 144 00554 103 00630 079 00680 149 00846 101 00898 090 01120 106 01209 105 01403 092 01518 097 01683 077 01817 048 02013 118 02146 053 02202 082 02299 055 02375 058 02452 080 02520 059 02588 058 02641 057 02696 249 02713 099 02714 250 02734 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000052
53 M 0 14917 263092 18.07.23 18:37:23.000 18.07.23 18:36:42.000 263092 0000 0000 000 00000 144 00197 117 00363 142 00461 145 00522 144 00603 044 00667 143 00762 144 00819 103 00881 079 00933 149 01072 101 01121 090 01297 092 01613 097 01731 077 01834 048 01924 118 02042 053 02080 082 02164 055 02261 058 02343 031 02497 052 02579 058 02661 080 02733 059 02792 058 02840 057 02890 249 02904 099 02905 250 02927 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000053
54 M 0 14917 516150 18.07.23 18:37:46.000 18.07.23 18:37:04.000 516150 0000 0000 000 00000 144 00166 117 00221 142 00321 145 00497 144 00553 044 00606 143 00676 144 00734 103 00793 079 00845 149 00960 101 01006 090 01184 106 01274 079 01373 092 01627 097 01732 077 01811 048 01890 118 02005 053 02044 082 02141 055 02211 058 02316 031 02384 052 02443 058 02510 080 02563 059 02612 058 02660 057 02720 249 02732 250 02743 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000054
55 M 0 14917 263075 18.07.23 18:38:07.000 18.07.23 18:37:26.000 263075 0000 0000 000 00000 144 00221 117 00388 145 00605 142 00672 144 00796 143 00857 144 00933 103 01021 079 01078 149 01252 101 01302 090 01507 106 01642 079 01780 092 01916 097 02056 077 02201 048 02322 118 02446 053 02486 082 02567 055 02642 058 02703 031 02791 052 02855 058 02917 080 02976 059 03030 058 03082 057 03135 249 03147 099 03148 250 03158 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000055
56 M 0 14917 236434 18.07.23 18:39:06.000 18.07.23 18:38:25.000 236434 0000 0000 000 00000 144 00209 103 00290 145 00369 117 00424 142 00479 117 00527 144 00596 103 00662 079 00716 149 00878 101 00948 090 01150 106 01269 079 01465 092 01714 097 01825 077 01950 048 02383 118 02625 053 02672 082 02791 055 02883 058 02965 080 03053 059 03109 058 03188 057 03258 249 03270 099 03271 250 03282 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000056
57 M 0 14917 212044 18.07.23 18:39:13.000 18.07.23 18:38:31.000 212044 0000 0000 000 00000 144 00242 145 00369 142 00438 117 00574 144 00654 044 00749 079 00879 101 01059 090 01308 106 01420 079 01558 092 01725 097 01884 077 01964 048 02087 118 02298 053 02348 082 02481 055 02567 058 02640 080 02729 059 02793 058 02864 057 02935 099 02951 250 02969 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000057
58 M 0 14917 260802 18.07.23 18:39:30.000 18.07.23 18:38:49.000 260802 0000 0000 000 00000 048 00082 097 00244 105 00315 103 00383 091 00425 144 00560 143 00807 053 00982 054 01041 055 01154 031 01211 058 01351 057 01415 249 01431 099 01431 250 01462 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000058
59 M 0 14917 255629 18.07.23 18:40:07.000 18.07.23 18:39:25.000 255629 0000 0000 000 00000 144 00182 117 00269 142 00462 145 00518 144 00588 044 00638 143 00699 144 00754 103 00825 079 00934 149 01103 101 01153 090 01372 106 01501 079 01652 092 01782 097 01937 077 02085 048 02201 118 02324 053 02370 082 02451 055 02521 058 02586 031 02672 052 02736 058 02810 080 02959 059 03007 058 03061 057 03117 249 03131 250 03151 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000059
60 M 0 14917 251361 18.07.23 18:40:13.000 18.07.23 18:39:32.000 251361 0000 0000 000 00000 144 00140 142 00251 117 00345 142 00383 145 00448 144 00504 044 00538 143 00614 144 00652 103 00701 079 00773 149 00862 101 00903 090 01070 106 01187 079 01285 092 01416 097 01511 077 01630 048 01718 118 01807 053 01848 082 01924 055 01980 058 02038 031 02121 052 02177 058 02239 059 02282 080 02333 059 02378 058 02416 057 02453 249 02463 250 02480 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000060
61 M 0 14917 263076 18.07.23 18:40:45.000 18.07.23 18:40:03.000 263076 0000 0000 000 00000 144 00189 117 00263 142 00332 145 00391 144 00483 044 00540 143 00627 144 00673 103 00747 079 00809 149 01090 101 01246 090 01359 106 01506 079 01684 092 01777 097 01917 077 02134 048 02263 118 02408 053 02460 082 02637 055 02717 058 02794 031 02894 052 02988 058 03062 080 03136 059 03207 058 03259 057 03332 249 03350 250 03358 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000061
62 M 0 14917 512809 18.07.23 18:40:55.000 18.07.23 18:40:13.000 512809 0000 0000 000 00000 144 00181 145 00349 142 00416 117 00517 144 00632 103 00757 079 00831 092 00977 097 01095 077 01203 048 01314 118 01463 053 01506 082 01591 055 01653 058 01718 080 01876 059 01941 058 01992 057 02066 249 02081 250 02088 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000062
63 M 0 14917 515687 18.07.23 18:41:06.000 18.07.23 18:40:25.000 515687 0000 0000 000 00000 144 00209 145 00410 142 00468 117 00543 144 00619 103 00706 079 00761 149 00932 101 00992 090 01100 106 01256 092 01544 097 01668 077 01806 048 01937 118 02076 082 02216 055 02290 058 02372 080 02476 059 02553 058 02612 057 02679 249 02694 250 02705 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000063
64 M 0 14917 259976 18.07.23 18:42:43.000 18.07.23 18:42:01.000 259976 0000 0000 000 00000 144 00372 044 00470 103 00553 079 00631 092 00819 249 01414 099 01415 250 01457 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000064
65 M 0 14917 263077 18.07.23 18:42:56.000 18.07.23 18:42:14.000 263077 0000 0000 000 00000 144 00145 117 00216 145 00268 144 00330 143 00396 044 00492 144 00538 103 00595 079 00635 149 00771 101 00841 090 00938 106 01196 079 01311 092 01435 097 01558 077 01699 048 01800 118 01949 082 02073 055 02135 058 02203 031 02281 052 02345 058 02416 080 02479 059 02533 058 02583 057 02645 249 02661 250 02699 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000065
66 M 0 14917 263088 18.07.23 18:43:05.000 18.07.23 18:42:23.000 263088 0000 0000 000 00000 144 00140 117 00204 142 00247 145 00294 144 00359 044 00394 143 00534 144 00567 103 00627 079 00665 149 00805 101 00858 090 01022 106 01152 079 01284 092 01359 097 01481 077 01619 048 01724 118 01854 053 01896 082 01978 055 02049 058 02105 031 02187 052 02254 058 02321 080 02392 059 02447 058 02497 057 02556 249 02574 099 02574 250 02620 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000066
67 M 0 14917 259997 18.07.23 18:43:14.000 18.07.23 18:42:32.000 259997 0000 0000 000 00000 144 00158 117 00278 142 00360 145 00412 144 00484 143 00550 044 00621 143 00663 144 00709 103 00765 079 00804 149 00934 101 00986 090 01175 106 01282 079 01413 092 01485 097 01608 077 01749 048 01854 118 02010 053 02045 082 02115 055 02179 058 02243 031 02329 052 02393 058 02469 080 02527 059 02583 058 02626 099 02710 250 02763 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000067
68 M 0 14917 197924 18.07.23 18:43:26.000 18.07.23 18:42:44.000 197924 0000 0000 000 00000 144 00205 145 00379 117 00450 144 00718 103 00781 079 00843 149 00987 101 01034 090 01275 106 01386 079 01534 092 01805 097 01964 077 02098 048 02232 118 02347 053 02429 055 02609 058 02685 059 02770 058 02823 080 02939 059 03003 058 03050 057 03126 249 03181 099 03182 250 03191 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000068
69 M 0 14917 261030 18.07.23 18:44:14.000 18.07.23 18:43:32.000 261030 0000 0000 000 00000 144 00140 117 00244 142 00312 145 00382 144 00429 044 00461 143 00528 144 00568 103 00621 079 00761 149 00857 101 00909 090 00982 106 01079 079 01170 092 01318 097 01402 077 01506 048 01660 118 01754 053 01786 082 01849 055 01902 058 01952 031 02020 052 02073 058 02138 080 02193 059 02243 058 02281 057 02330 249 02337 250 02343 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000069
70 M 0 14917 508819 18.07.23 18:44:41.000 18.07.23 18:43:59.000 508819 0000 0000 000 00000 144 00290 145 00430 117 00630 144 00735 103 00896 079 01021 149 01240 101 01473 090 01618 106 01813 079 02082 092 02337 097 02513 077 02684 048 02828 053 03052 082 03150 055 03233 058 03336 080 03526 059 03614 058 03685 057 03806 249 03824 099 03825 250 03836 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000070
71 M 0 14917 253839 18.07.23 18:45:34.000 18.07.23 18:44:52.000 253839 0000 0000 000 00000 144 00268 117 00380 142 00472 145 00564 144 00668 044 00764 143 00873 144 00926 103 01074 079 01175 149 01572 101 01621 090 01935 106 02093 079 02334 092 02676 097 02829 077 02957 048 03099 118 03284 053 03357 082 03474 055 03587 058 03683 031 03862 052 03961 058 04070 080 04208 059 04286 058 04352 057 04451 249 04469 099 04470 250 04528 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000071
72 M 0 14917 510880 18.07.23 18:45:46.000 18.07.23 18:45:05.000 510880 0000 0000 000 00000 144 00165 142 00251 145 00317 142 00363 117 00411 144 00473 103 00534 079 00583 149 00686 101 00730 090 00825 106 00955 079 01110 092 01191 097 01295 077 01374 048 01466 118 01582 053 01626 082 01718 055 01788 058 01867 080 01927 059 01996 058 02050 057 02101 249 02117 250 02146 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000072
73 M 0 14917 506629 18.07.23 18:46:18.000 18.07.23 18:45:37.000 506629 0000 0000 000 00000 144 00116 117 00171 142 00284 145 00337 144 00383 044 00420 143 00495 144 00522 103 00567 079 00607 149 00697 101 00732 090 00803 106 00868 079 00943 092 01000 097 01069 077 01125 048 01202 118 01269 053 01295 082 01351 055 01397 058 01437 031 01487 052 01530 058 01583 080 01625 059 01663 058 01692 057 01733 249 01740 250 01746 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000073
74 M 0 14917 249929 18.07.23 18:46:31.000 18.07.23 18:45:49.000 249929 0000 0000 000 00000 144 00151 117 00411 142 00449 145 00499 144 00556 044 00603 143 00726 144 00766 103 00823 079 00871 149 00961 101 01005 090 01079 106 01167 079 01272 092 01418 097 01496 077 01593 048 01747 053 01876 082 01938 055 01992 058 02045 031 02119 052 02262 058 02322 080 02392 059 02471 058 02504 057 02542 249 02552 250 02563 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000074
75 M 0 14917 511781 18.07.23 18:46:54.000 18.07.23 18:46:12.000 511781 0000 0000 000 00000 144 00244 117 00361 145 00734 142 00863 117 00944 144 01033 103 01163 079 01449 250 02117 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000075
76 M 0 14917 229995 18.07.23 18:47:14.000 18.07.23 18:46:33.000 229995 0000 0000 000 00000 144 00263 145 00405 142 00514 117 00595 144 00697 103 00880 079 00979 149 01357 101 01429 090 01581 106 01938 079 02154 092 02252 097 02453 077 02721 048 03069 118 03290 053 03375 082 03529 055 03640 058 03749 080 03879 059 03973 058 04061 057 04159 249 04186 250 04195 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000076
77 M 0 14917 515210 18.07.23 18:47:21.000 18.07.23 18:46:39.000 515210 0000 0000 000 00000 117 00281 142 00381 145 00450 144 00522 044 00573 143 00684 103 00797 079 00839 149 00928 101 00974 090 01046 106 01143 079 01247 092 01375 097 01463 077 01571 048 01808 118 01903 053 01937 082 02007 055 02068 058 02128 031 02210 052 02263 058 02348 080 02412 059 02460 058 02505 057 02557 249 02572 099 02573 250 02585 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000077
78 M 0 14917 259974 18.07.23 18:47:28.000 18.07.23 18:46:47.000 259974 0000 0000 000 00000 144 00201 117 00270 142 00318 145 00373 144 00433 143 00505 044 00605 143 00649 144 00697 103 00815 079 00868 149 00980 101 01039 090 01199 106 01321 079 01453 092 01626 097 01716 077 01800 048 02029 118 02133 053 02169 055 02301 058 02360 031 02453 052 02509 058 02568 080 02649 059 02699 058 02744 057 02786 099 02799 250 02818 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000078
79 M 0 14917 249918 18.07.23 18:48:00.000 18.07.23 18:47:19.000 249918 0000 0000 000 00000 144 00180 117 00371 142 00414 145 00467 144 00540 044 00584 143 00665 144 00711 103 00820 079 00872 149 00986 101 01029 090 01115 106 01207 079 01319 092 01609 097 01734 077 01797 048 01890 118 02037 053 02080 082 02176 055 02238 058 02295 031 02381 052 02431 058 02488 080 02538 059 02578 058 02617 057 02661 249 02672 099 02673 250 02685 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000079
80 M 0 14917 265937 18.07.23 18:48:13.000 18.07.23 18:47:32.000 265937 0000 0000 000 00000 144 00180 117 00258 142 00302 145 00355 144 00421 044 00475 143 00594 144 00645 103 00723 079 00766 149 00869 101 00917 090 01023 106 01212 079 01348 092 01449 097 01555 077 01630 048 01722 118 01819 053 01856 082 01933 055 01992 058 02062 031 02146 052 02209 058 02283 080 02342 059 02399 058 02446 057 02510 249 02522 099 02522 250 02544 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000080
81 M 0 14917 237782 18.07.23 18:48:22.000 18.07.23 18:47:41.000 237782 0000 0000 000 00000 144 00173 145 00256 142 00312 117 00365 144 00433 103 00509 079 00559 101 00814 149 00869 101 00917 090 01023 106 01169 079 01307 092 01432 097 01528 077 01663 048 01750 118 01859 053 01906 082 01995 055 02070 058 02143 080 02210 059 02275 058 02328 057 02385 249 02399 099 02400 250 02427 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000081
82 M 0 14917 265575 18.07.23 18:48:32.000 18.07.23 18:47:50.000 265575 0000 0000 000 00000 144 00187 145 00274 142 00375 117 00439 144 00507 103 00584 079 00633 149 00943 101 00990 090 01097 106 01242 079 01380 092 01496 097 01602 077 01729 048 01823 118 01936 053 01978 082 02068 055 02144 058 02217 080 02282 059 02349 058 02401 057 02462 249 02477 099 02478 250 02507 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000082
83 M 0 14917 255638 18.07.23 18:48:41.000 18.07.23 18:47:59.000 255638 0000 0000 000 00000 144 00170 117 00239 142 00340 145 00407 144 00486 044 00533 143 00625 144 00673 103 00742 079 00794 149 00914 101 00976 090 01073 106 01184 079 01300 092 01354 097 01467 077 01536 048 01620 118 01737 053 01779 082 01854 055 01932 058 02002 031 02098 052 02157 058 02218 080 02267 059 02317 058 02358 057 02403 249 02415 099 02416 250 02450 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000083
84 M 0 14917 515883 18.07.23 18:48:51.000 18.07.23 18:48:09.000 515883 0000 0000 000 00000 144 00172 117 00247 142 00286 145 00355 144 00419 044 00841 143 00885 144 00948 103 01020 079 01151 149 01272 101 01330 090 01443 106 01620 079 01727 092 01854 097 01951 077 02071 048 02291 118 02401 053 02447 082 02521 055 02582 058 02651 031 02735 052 02802 058 02876 080 02945 059 03004 058 03044 057 03115 249 03127 099 03128 250 03166 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000084
85 M 0 14917 212198 18.07.23 18:50:05.000 18.07.23 18:49:24.000 212198 0000 0000 000 00000 144 00138 117 00279 142 00352 145 00389 144 00436 044 00466 143 00519 144 00552 103 00634 079 00687 149 00773 101 00849 090 00941 106 01025 079 01114 092 01173 097 01251 077 01314 048 01385 118 01466 053 01506 082 01568 055 01630 058 01683 031 01770 052 01818 058 01887 080 01939 059 01982 058 02021 057 02072 249 02082 250 02125 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000085
86 M 0 14917 519874 18.07.23 18:51:43.000 18.07.23 18:51:02.000 519874 0000 0000 000 00000 048 00140 097 00422 105 00583 103 00647 091 00767 144 00915 143 01162 053 01402 054 01514 055 01653 031 02178 058 02364 057 02466 249 02488 099 02489 250 02495 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000086
87 M 0 14917 520934 18.07.23 18:52:05.000 18.07.23 18:51:23.000 520934 0000 0000 000 00000 048 00202 097 00495 105 00627 103 00746 091 00810 144 00946 143 01118 053 01392 054 01496 055 01650 031 01802 058 02015 057 02108 249 02130 250 02143 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000087
88 M 0 14917 519875 18.07.23 18:56:21.000 18.07.23 18:53:00.000 519875 0000 0000 000 00000 144 00199 145 00326 142 00389 117 00474 144 00554 103 00673 079 00766 149 00916 101 00992 090 01172 106 01298 079 01624 092 01738 097 01848 077 02039 048 02139 118 02269 053 02337 082 02476 055 02546 058 02621 059 02702 080 02840 059 02908 058 02957 057 03024 249 03107 099 03107 250 03113 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000088
89 M 0 14917 086173 18.07.23 18:56:21.000 18.07.23 18:54:22.000 086173 0000 0000 000 00000 144 00266 145 00379 142 00462 144 00904 103 00990 079 01070 149 01351 101 01388 090 01706 106 01942 079 02249 092 02538 097 02668 077 02821 048 02950 118 03096 053 03156 082 03404 055 03499 058 03586 080 03727 059 03844 058 03895 057 03964 249 03976 250 03982 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000089
90 M 0 14917 249910 18.07.23 18:56:26.000 18.07.23 18:55:45.000 249910 0000 0000 000 00000 144 00180 117 00248 142 00397 145 00472 144 00535 044 00588 143 00649 144 00693 103 00748 079 00812 149 00917 101 00985 090 01203 106 01326 079 01475 092 01641 097 01737 077 01892 048 01984 118 02090 053 02128 082 02221 055 02282 058 02337 059 02395 080 02457 059 02514 058 02572 057 02626 249 02639 099 02640 250 02710 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000090
91 M 0 14917 529329 18.07.23 18:56:50.000 18.07.23 18:56:08.000 529329 0000 0000 000 00000 144 00190 145 00302 142 00353 117 00405 144 00481 103 00555 079 00609 149 00802 101 00855 090 00956 106 01142 079 01296 092 01418 097 01524 077 01804 048 01912 118 02042 053 02097 082 02179 055 02251 058 02324 080 02400 059 02458 058 02523 057 02574 249 02589 099 02590 250 02666 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000091
92 M 0 14917 514688 18.07.23 18:57:08.000 18.07.23 18:56:27.000 514688 0000 0000 000 00000 144 00332 145 00774 142 00860 117 00990 144 01124 103 02110 079 02256 149 02564 101 02828 090 03030 106 03300 092 03716 097 04006 077 04288 048 04511 053 04725 250 05141 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000092
93 M 0 14917 519899 18.07.23 18:57:24.000 18.07.23 18:56:42.000 519899 0000 0000 000 00000 144 00122 117 00174 142 00228 145 00269 144 00318 044 00346 143 00408 103 00501 079 00536 149 00620 101 00674 090 00748 106 00834 079 00917 092 00981 097 01060 077 01185 048 01251 118 01391 053 01423 082 01476 055 01519 058 01565 031 01632 052 01681 058 01733 080 01776 059 01814 058 01848 057 01880 249 01889 250 01895 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000093
94 M 0 14917 184307 18.07.23 19:00:14.000 18.07.23 18:59:32.000 184307 0000 0000 250 00014 249 00096 099 00097 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000094
95 M 0 14917 086197 18.07.23 19:01:11.000 18.07.23 19:00:29.000 086197 0000 0000 000 00000 144 00287 145 00394 142 00479 144 00628 103 00738 149 01329 101 01380 090 01694 106 01880 079 02812 092 02907 097 03061 077 03242 048 03374 118 03547 053 03616 082 03764 055 03855 058 03947 059 04147 058 04209 057 04302 249 04316 250 04323 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000095
96 M 0 14917 263068 18.07.23 19:01:23.000 18.07.23 19:00:41.000 263068 0000 0000 000 00000 144 00173 117 00343 142 00414 145 00470 144 00526 044 00571 143 00724 144 00758 103 00808 079 00848 149 01014 101 01088 090 01190 106 01348 105 01473 079 01556 092 01666 097 01750 077 01816 048 01923 118 02065 053 02113 082 02193 055 02258 058 02323 052 02393 031 02537 052 02591 058 02659 080 02727 059 02786 057 02845 249 02857 099 02858 250 02874 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000096
97 M 0 14917 263080 18.07.23 19:01:40.000 18.07.23 19:00:58.000 263080 0000 0000 000 00000 144 00215 117 00283 142 00606 145 00678 144 00744 044 00780 143 00892 144 00943 103 01024 079 01085 149 01220 101 01371 090 01558 106 01783 079 01908 092 01951 097 02045 077 02226 048 02354 118 02473 053 02524 057 02716 249 02733 099 02734 250 02741 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000097
98 M 0 14917 511474 18.07.23 19:02:38.000 18.07.23 19:01:57.000 511474 0000 0000 000 00000 144 00183 145 00351 142 00528 117 00594 144 00669 103 00773 079 00904 149 01043 101 01102 090 01250 106 01368 079 01530 092 01625 097 01733 077 01946 048 02060 118 02185 053 02234 082 02319 055 02383 058 02450 080 02520 059 02581 058 02632 057 02694 249 02707 250 02719 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000098
99 M 0 14917 263063 18.07.23 19:02:56.000 18.07.23 19:02:15.000 263063 0000 0000 000 00000 144 00196 117 00286 142 00396 145 00464 144 00556 143 00660 044 00735 143 00825 144 00878 103 00951 079 01055 149 01205 101 01299 090 01424 106 01640 079 01787 092 01906 097 02014 077 02158 048 02305 118 02404 082 02542 055 02618 058 02684 031 02775 052 02841 058 02914 080 02988 059 03046 058 03097 057 03156 249 03170 099 03171 250 03196 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000099
100 M 0 14917 249911 18.07.23 19:05:48.000 18.07.23 19:05:06.000 249911 0000 0000 000 00000 144 00171 145 00391 117 00499 144 00591 103 00672 079 00736 101 00946 079 01248 092 01456 097 01628 077 01770 048 01868 118 02002 053 02055 250 02170 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000100
101 M 0 14917 247654 18.07.23 19:08:28.000 18.07.23 19:07:46.000 247654 0000 0000 000 00000 144 00186 117 00292 142 00356 145 00429 144 00512 044 00564 143 00651 144 00691 103 00768 079 00843 149 00965 101 01048 090 01279 106 01484 079 01630 092 01673 097 01765 077 01924 048 02026 118 02157 053 02197 082 02275 055 02349 058 02405 031 02477 052 02546 058 02619 080 02679 059 02736 058 02777 057 02842 249 02852 250 02858 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000101
102 M 0 14917 510423 18.07.23 19:09:52.000 18.07.23 19:09:10.000 510423 0000 0000 000 00000 144 00292 145 00454 142 00568 117 00670 144 00817 103 00976 079 01054 149 01260 101 01369 090 01650 106 01819 079 02039 092 02169 097 02350 077 02521 048 02706 118 02901 053 02957 082 03074 055 03172 058 03280 080 03395 059 03488 058 03557 057 03645 249 03663 250 03669 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000102
103 M 0 14917 245739 18.07.23 19:10:23.000 18.07.23 19:09:40.000 245739 0000 0000 000 00000 144 00263 145 00371 142 00450 117 00543 091 00765 103 00828 079 00901 149 01078 101 01338 090 01638 106 01897 079 02165 092 02349 097 02519 077 02685 048 02880 118 03085 053 03144 082 03283 055 03387 058 03490 080 03610 059 03696 058 03771 057 03858 249 03887 099 03888 250 03896 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000103
104 M 0 14917 268438 18.07.23 19:13:24.000 18.07.23 19:12:42.000 268438 0000 0000 000 00000 144 00278 145 00373 142 00440 117 00767 144 00857 044 00934 103 01056 079 01202 149 01464 101 01556 090 01772 106 01916 079 02126 092 02365 097 02556 077 02690 048 02871 118 03055 053 03123 082 03276 055 03365 058 03473 080 03674 059 03769 058 03854 057 03950 249 03978 250 03983 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000104
105 M 0 14917 512690 18.07.23 19:14:11.000 18.07.23 19:13:29.000 512690 0000 0000 000 00000 144 00169 117 00239 142 00440 145 00569 144 00629 044 00669 143 00718 144 00793 103 00886 079 00925 149 01041 101 01093 090 01191 106 01291 079 01400 092 01449 097 01532 077 01674 048 01761 118 01854 053 01886 082 01964 055 02045 058 02104 031 02180 052 02245 058 02327 080 02393 059 02447 058 02497 057 02543 249 02557 250 02563 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000105
106 M 0 14917 266477 18.07.23 19:14:50.000 18.07.23 19:14:08.000 266477 0000 0000 000 00000 144 00184 117 00273 142 00512 145 00596 144 00679 044 00733 143 00829 144 00867 103 00945 079 01003 149 01130 101 01224 090 01454 106 01646 079 01828 092 01989 097 02123 077 02276 048 02400 118 02506 053 02546 082 02616 055 02696 058 02771 031 02931 052 03001 058 03064 080 03192 059 03250 058 03298 057 03354 249 03368 099 03369 250 03412 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000106
107 M 0 14917 247823 18.07.23 19:19:01.000 18.07.23 19:18:19.000 247823 0000 0000 000 00000 144 00222 145 00527 142 00571 117 01092 144 01156 091 01219 103 01378 079 01432 149 01622 101 01685 090 01878 106 02009 079 02137 092 02355 097 02486 077 02661 048 02809 118 02945 053 02996 082 03142 055 03217 058 03297 080 03372 059 03433 058 03489 057 03566 249 03577 099 03578 250 03583 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000107
108 M 0 14917 521030 18.07.23 19:19:30.000 18.07.23 19:18:48.000 521030 0000 0000 000 00000 144 00165 117 00232 142 00301 145 00437 144 00510 044 00556 143 00642 144 00684 091 00746 079 00913 149 01176 101 01213 090 01356 106 01451 079 01612 092 01731 097 01818 077 01897 048 02014 118 02180 053 02217 082 02405 055 02488 058 02550 031 02644 052 02739 058 02832 059 02899 080 02960 059 03007 058 03073 057 03130 249 03138 250 03144 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000108
109 M 0 14917 517441 18.07.23 19:20:42.000 18.07.23 19:20:00.000 517441 0000 0000 000 00000 144 00291 145 00521 142 00600 117 00691 144 00798 103 00897 079 00973 149 01243 101 01505 090 01763 106 01894 079 02091 092 02205 097 02377 077 02589 048 02747 118 02921 053 02971 082 03093 055 03204 058 03295 059 03377 080 03459 058 03540 057 03616 249 03645 099 03646 250 03650 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000109
110 M 0 14917 525046 18.07.23 19:28:54.000 18.07.23 19:28:12.000 525046 0000 0000 000 00000 144 00183 117 00242 142 00332 145 00378 144 00443 044 00475 143 00670 144 00763 103 00853 079 00899 149 01007 101 01052 090 01165 106 01308 079 01490 092 01566 097 01699 077 01920 048 02432 118 02545 053 02591 082 02673 055 02738 058 02807 031 02937 052 03051 058 03139 080 03204 059 03259 058 03315 057 03372 249 03388 250 03395 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000 00000 0000110

View File

@ -0,0 +1,33 @@
import sys
sys.path.insert(0, '../../otime')
import otime
import pdf
import iof_xml
import file_io
def ttime_testing():
event = otime.Event(0, 'TEEEST', start_time=None, end_time=None,organiser='Tygbe')
event.read_ttime_cnf('tt.cnf')
event.read_ttime_db('db.csv')
event.read_mtr_file('mtr.csv')
pdf.create_split_result_list(event, 'output/result.pdf')
iof_xml.create_result_file(event, '/home/trygve/Prosjekter/simple-liveresults/resultater/Resultater.xml')
print(event.get_runner_status('1400'))
results = event.get_result()
print([pdf.format_m_s(i) for i in event.get_runner_splits('17')])
print([pdf.format_m_s(i) for i in event.get_card_dump(event.get_runner('17').card_id).splits])
file_io.write_config(event, 'output/config.yaml')
file_io.write_card_dumps(event, 'output/mtr.yaml')
file_io.write_runners_csv(event, 'output/runners.csv')
print(file_io.event_from_yaml_and_csv('output/config.yaml', 'output/mtr.yaml', 'output/runners.csv'))
def xml_testing():
event = iof_xml.event_from_xml_entries('entries.xml')
event.courses = iof_xml.courses_from_xml('course.xml')
file_io.write_config(event, 'output/config.yaml')
file_io.write_card_dumps(event, 'output/mtr.yaml')
file_io.write_runners_csv(event, 'output/runners.csv')
print(file_io.event_from_yaml_and_csv('output/config.yaml', 'output/mtr.yaml', 'output/runners.csv'))
if __name__ == '__main__':
xml_testing()

6
test_files/sc3_23/tt.cnf Normal file
View File

@ -0,0 +1,6 @@
# Auto generated ttime configuration file.
-codes "144,117,142,145,144,44,143,144,103,79,149,101,90,106,79,92,97,77,48,118,53,82,55,58,31,52,58,80,59,58,57,249;144,145,142,117,144,103,79,149,101,90,106,79,92,97,77,48,118,53,82,55,58,80,59,58,57,249;65,48,144,91,97,63,56,54,61,58,57,249;48,97,105,103,91,144,143,53,54,55,31,58,57,249"
-courses "Damer A-lang,Herrer A-lang;Damer A-kort,Herrer A-kort;Nybegynner;Damer C,Herrer C"
-database "S:/sc3/db.csv"
-emit "S:/sc3/mtr.csv"
-port COM5

View File

@ -1,3 +0,0 @@
#!/bin/bash
socat -d -d pty,rawer,b9600 pty,rawer,b9600

View File

@ -1,55 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>File System Examples</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- paths:
- ./otime.py
- ./ps_ttime.py
</py-env>
</head>
<label for="tt-cnf">tTime konfigurasjons-fil:</label>
<input type="file" id="tt-cnf" name="tt-cnf">
<div style="border:2px inset #AAA;cursor:text;height:50px;overflow:auto;width:600px; resize:both">
<div id="tt-cnf-cnt">
</div>
</div>
<br>
<label for="tt-db">tTime database:</label>
<input type="file" id="tt-db" name="tt-db">
<div style="border:2px inset #AAA;cursor:text;height:50px;overflow:auto;width:600px; resize:both">
<div id="tt-db-cnt">
</div>
</div>
<br>
<label for="mtr">MTR logfil:</label>
<input type="file" id="mtr" name="mtr">
<div style="border:2px inset #AAA;cursor:text;height:50px;overflow:auto;width:600px; resize:both">
<div id="mtr-cnt">
</div>
</div>
<button type="button" id="xml-btn">Lag xml resultater!</button>
<p>File Content:</p>
<div style="border:2px inset #AAA;cursor:text;height:50px;overflow:auto;width:600px; resize:both">
<div id="xml-cnt">
</div>
</div>
<py-script>
from ps_ttime import main
main()
</py-script>
</body>
</html>

View File

@ -1,66 +0,0 @@
import otime
import asyncio
from js import document, FileReader
from pyodide import create_proxy
import xml.etree.ElementTree as ET
global event
event = otime.Event(0, 'PlaceHolder')
async def process_conf(f_event):
global event
file_list = f_event.target.files.to_py()
for f in file_list:
data = await f.text()
document.getElementById('tt-cnf-cnt').innerHTML = data
event.import_ttime_cnf(data)
for c in event.o_classes:
print(c.name, c.course.name)
async def process_db(f_event):
global event
file_list = f_event.target.files.to_py()
for f in file_list:
data = await f.text()
document.getElementById('tt-db-cnt').innerHTML = data
event.import_ttime_db(data)
async def process_mtr(f_event):
global event
file_list = f_event.target.files.to_py()
for f in file_list:
data = await f.text()
document.getElementById('mtr-cnt').innerHTML = data
event.import_mtr_file(data)
async def create_xml(f_event):
global event
event.match_all()
xml_res = ET.tostring(event.get_xml_res().getroot(), encoding='unicode', method='xml', xml_declaration=True)
#xml_res = dir(event.get_xml_res())
document.getElementById('xml-cnt').innerHTML = xml_res.replace('&', '&amp').replace('<', '&lt').replace('>', '&gt')
def main():
global event
# Create a Python proxy for the callback function
# process_file() is your function to process events from FileReader
cnf_f_event = create_proxy(process_conf)
ec = document.getElementById("tt-cnf")
ec.addEventListener("change", cnf_f_event, False)
db_f_event = create_proxy(process_db)
ed = document.getElementById("tt-db")
ed.addEventListener("change", db_f_event, False)
mtr_f_event = create_proxy(process_mtr)
em = document.getElementById("mtr")
em.addEventListener("change", mtr_f_event, False)
xml_btn_call = create_proxy(create_xml)
eb = document.getElementById("xml-btn")
eb.addEventListener("click", xml_btn_call, False)

194
wizard.py
View File

@ -1,194 +0,0 @@
import otime
import cli
import sys
from rich import inspect
def main():
global event
while True:
print(''' 1. import
2. export
3. edit
4. view tables
5. exit''')
try:
opt = int(input('Choose an option (1-4): '))
except ValueError:
print('Not a valid option!')
continue
match opt:
case 1:
import_menu()
case 2:
export_menu()
case 3:
print('edit')
case 4:
table_menu()
case 5:
print('Goodbye!')
sys.exit()
def import_menu():
global event
while True:
try:
print(''' 1. import otime file
2. Import xml EntryList
3. Import mtr file (Latin-1)
4. Import mtr file (utf-8)
5. Import ttime db (Latin-1)
6. Import ttime db (utf-8)
7. Import ttime config (Latin-1)
8. Import ttime config (utf-8)
9. Match runners with cards and classes, and o_classes with courses
10. Back''')
try:
opt = int(input('Choose an option (1-10): '))
except ValueError:
print('Not a valid option!')
continue
match opt:
case 1:
n = len(event.runners)
filename = input('File: ')
f = open(filename, 'r')
event = otime.Event.from_json(f)
nn = len(event.runners)
print('Added '+ str(nn-n) +' runners')
case 2:
n = len(event.runners)
filename = input('File: ')
f = open(filename, 'r')
event.import_xml_entries(f)
nn = len(event.runners)
print('Added '+ str(nn-n) +' runners')
case 3:
n = len(event.card_dumps)
filename = input('File: ')
f = open(filename, 'r', encoding='latin_1')
event.import_mtr_file(f)
nn = len(event.card_dumps)
print('Added '+ str(nn-n) +' cards')
case 4:
n = len(event.card_dumps)
filename = input('File: ')
f = open(filename, 'r')
event.import_mtr_file(f)
nn = len(event.card_dumps)
print('Added '+ str(nn-n) +' cards')
case 5:
n = len(event.runners)
filename = input('File: ')
f = open(filename, 'r', encoding='latin_1')
event.import_ttime_db(f)
nn = len(event.runners)
print('Added '+ str(nn-n) +' runners')
case 6:
n = len(event.runners)
filename = input('File: ')
f = open(filename, 'r')
event.import_ttime_db(f)
nn = len(event.runners)
print('Added '+ str(nn-n) +' runners')
case 7:
n = len(event.courses)
k = len(event.o_classes)
filename = input('File: ')
f = open(filename, 'r', encoding='latin-1')
event.import_ttime_cnf(f)
nn = len(event.courses)
kk = len(event.o_classes)
print('Added '+ str(nn-n) +' courses and '+ str(kk-k) +' classes')
case 8:
n = len(event.courses)
k = len(event.o_classes)
filename = input('File: ')
f = open(filename, 'r')
event.import_ttime_cnf(f)
nn = len(event.courses)
kk = len(event.o_classes)
print('Added '+ str(nn-n) +' courses and '+ str(kk-k) +' classes')
case 9:
event.match_all()
case 10:
break
except FileNotFoundError:
print('No such file or directory!')
except IsADirectoryError:
print('This is a directory, not a file!')
def export_menu():
global event
while True:
try:
print(''' 1. Export otime file
2. Export iof 3.0 xml file
2. Back''')
try:
opt = int(input('Choose an option (1-2): '))
except ValueError:
print('Not a valid option!')
continue
match opt:
case 1:
filename = input('File: ')
f = open(filename, 'w')
f.write(event.create_json_file())
case 2:
filename = input('File: ')
event.get_xml_res().write(filename)
case 3:
break
except FileNotFoundError:
print('No such file or directory!')
except IsADirectoryError:
print('This is a directory, not a file!')
def table_menu():
global event
while True:
print(''' 1. View runners
2. View courses and classes
3. Show result
4. Show splits
5. back''')
try:
opt = int(input('Choose an option (1-6): '))
except ValueError:
print('Not a valid option!')
continue
match opt:
case 1:
cli.print_runners(event.runners)
case 2:
cli.print_o_classes(event.o_classes)
case 3:
for o_class in event.o_classes:
cli.print_class_result(event.runners, o_class)
case 4:
for o_class in event.o_classes:
cli.print_class_splits(event.runners, o_class)
case 5:
break
if __name__ == "__main__":
global event
event = otime.Event('0','NoName')
main()

View File

@ -1,181 +0,0 @@
import sys
import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw
import otime
class MainWindow(Gtk.ApplicationWindow):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_default_size(500, 300)
self.set_title("ttime xml resultat generator")
self.box1 = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
self.box1.set_halign(Gtk.Align.CENTER)
self.box2 = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.mclamp = Adw.Clamp()
self.box1.append(self.mclamp)
self.mclamp.set_child(self.box2)
self.mainlist = Gtk.ListBox()
self.mainlist.set_selection_mode(Gtk.SelectionMode.NONE)
self.mainlist.set_margin_top(16)
self.mainlist.set_margin_bottom(8)
self.mainlist.get_style_context().add_class('boxed-list')
self.set_child(self.box1)
self.box2.append(self.mainlist)
self.cnf_row = Adw.ActionRow()
self.cnf_row.set_title('tTime konfigurasjons-fil')
self.cnf_row.set_subtitle('Ingen fil valgt')
self.mainlist.append(self.cnf_row)
self.cnf_btn_box = Gtk.Box()
self.cnf_f_btn = Gtk.Button(label='tTime konfigurasjon')
self.cnf_f_btn.set_valign(Gtk.Align.CENTER)
self.cnf_f_btn.set_icon_name("document-open-symbolic")
self.cnf_btn_box.append(self.cnf_f_btn)
self.cnf_row.add_suffix(self.cnf_btn_box)
self.cnf_f_dialog = Gtk.FileChooserNative.new(title="Velg konfigurasfila",
parent=self, action=Gtk.FileChooserAction.OPEN)
self.cnf_f_dialog.connect("response", self.sel_cnf)
self.cnf_f_btn.connect("clicked", self.show_cnf_dialog)
self.db_row = Adw.ActionRow()
self.db_row.set_title('tTime database-fil')
self.db_row.set_subtitle('Ingen fil valgt')
self.mainlist.append(self.db_row)
self.db_btn_box = Gtk.Box()
self.db_f_btn = Gtk.Button(label='tTime database')
self.db_f_btn.set_valign(Gtk.Align.CENTER)
self.db_f_btn.set_icon_name("document-open-symbolic")
self.db_btn_box.append(self.db_f_btn)
self.db_row.add_suffix(self.db_btn_box)
self.db_f_dialog = Gtk.FileChooserNative.new(title="Velg databasefila",
parent=self, action=Gtk.FileChooserAction.OPEN)
self.db_f_dialog.connect("response", self.sel_db)
self.db_f_btn.connect("clicked", self.show_db_dialog)
self.mtr_row = Adw.ActionRow()
self.mtr_row.set_title('MTR fil')
self.mtr_row.set_subtitle('Ingen fil valgt')
self.mainlist.append(self.mtr_row)
self.mtr_btn_box = Gtk.Box()
self.mtr_f_btn = Gtk.Button(label='mtr')
self.mtr_f_btn.set_valign(Gtk.Align.CENTER)
self.mtr_f_btn.set_icon_name("document-open-symbolic")
self.mtr_btn_box.append(self.mtr_f_btn)
self.mtr_row.add_suffix(self.mtr_btn_box)
self.mtr_f_dialog = Gtk.FileChooserNative.new(title="Velg mtr fila",
parent=self, action=Gtk.FileChooserAction.OPEN)
self.mtr_f_dialog.connect("response", self.sel_mtr)
self.mtr_f_btn.connect("clicked", self.show_mtr_dialog)
self.save_btn = Gtk.Button(label="Generer xml fil")
self.save_btn.set_halign(Gtk.Align.CENTER)
self.save_btn.get_style_context().add_class('suggested-action')
self.box2.append(self.save_btn)
self.save_dialog = Gtk.FileChooserNative.new(title="lagre xml resultat fil",
parent=self, action=Gtk.FileChooserAction.SAVE)
self.text_buffer = Gtk.TextBuffer()
self.info_text = Gtk.TextView.new()
self.info_text.set_editable(False)
self.info_text.set_margin_top(8)
self.mainlist.get_style_context().add_class('card')
self.info_text.set_buffer(self.text_buffer)
self.box2.append(self.info_text)
self.viewstyle = self.info_text.get_style_context()
print(self.viewstyle.has_class('view'))
self.save_dialog.connect("response", self.save_xml)
self.save_btn.connect("clicked", self.show_save_dialog)
self.toast_overlay = Adw.ToastOverlay()
self.box2.append(self.toast_overlay)
self.save_toast = Adw.Toast.new('Fil lagra')
self.save_toast.set_timeout(8)
def show_cnf_dialog(self, button):
self.cnf_f_dialog.show()
def show_db_dialog(self, button):
self.db_f_dialog.show()
def show_mtr_dialog(self, button):
self.mtr_f_dialog.show()
def show_save_dialog(self, button):
self.save_dialog.show()
def sel_cnf(self, dialog, response):
if response == Gtk.ResponseType.ACCEPT:
file = dialog.get_file()
filename = file.get_path()
self.cnf_row.set_subtitle(filename)
global ttime_cnf_file
ttime_cnf_file = filename # Here you could handle opening or saving the file
def sel_db(self, dialog, response):
if response == Gtk.ResponseType.ACCEPT:
file = dialog.get_file()
filename = file.get_path()
self.db_row.set_subtitle(filename)
global ttime_db_file
ttime_db_file = filename # Here you could handle opening or saving the file
def sel_mtr(self, dialog, response):
if response == Gtk.ResponseType.ACCEPT:
file = dialog.get_file()
filename = file.get_path()
self.mtr_row.set_subtitle(filename)
global mtr_file
mtr_file = filename
def save_xml(self, dialog, response):
print(ttime_cnf_file, ttime_db_file, mtr_file)
if response == Gtk.ResponseType.ACCEPT:
file = dialog.get_file()
filename = file.get_path()
event = otime.event(0, 'NoName')
event.import_ttime_cnf(ttime_cnf_file)
event.import_ttime_db(ttime_db_file)
event.import_mtr_file(mtr_file)
event.match_runners_cards()
event.get_xml_res().write(filename)
runners_ok = 0
for n in event.runners:
if n.status() == 'OK':
runners_ok += 1
runners_dsq = 0
for n in event.runners:
if n.status() == 'Disqualified':
runners_dsq += 1
self.text_buffer.set_text(f'Antall påmeldte: {len(event.runners)} \nAntall godkjente: {runners_ok} \nAntall dsq: {runners_dsq}')
self.save_toast = Adw.Toast.new('Fil lagra i: '+filename)
self.save_toast.set_timeout(8)
self.toast_overlay.add_toast(self.save_toast)
class MyApp(Adw.Application):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.connect('activate', self.on_activate)
def on_activate(self, app):
self.win = MainWindow(application=app)
self.win.present()
ttime_cnf_file = ''
ttime_db_file = ''
mtr_file = ''
def main():
app = MyApp(application_id='me.trygve.gtktest')
app.run(sys.argv)
if __name__ == '__main__':
main()