Skip to content

Instantly share code, notes, and snippets.

@avavdoshin
Created June 2, 2023 11:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avavdoshin/fd1d829924940b1064a06df8f0638691 to your computer and use it in GitHub Desktop.
Save avavdoshin/fd1d829924940b1064a06df8f0638691 to your computer and use it in GitHub Desktop.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes,
SysUtils,
Forms,
Controls,
Graphics,
mormot.core.base,
mormot.core.interfaces,
mormot.core.datetime,
mormot.core.unicode,
mormot.core.os,
mormot.orm.core,
mormot.orm.storage,
mormot.rest.sqlite3,
mormot.rest.core,
mormot.core.text,
mormot.rest.http.client,
mormot.db.core,
mormot.orm.base,
mormot.db.raw.sqlite3.static,
mormot.core.rtti,
mormot.core.data,
mormot.core.buffers,
mormot.core.json,
mormot.rest.server,
mormot.rest.memserver,
mormot.soa.core,
mormot.net.sock,
mormot.db.raw.sqlite3,
mormot.db.sql,
mormot.crypt.secure,
Dialogs,
StdCtrls;
type
TMyOrm1 = class(TOrm)
private
FGUID: RawUtf8;
FDateTime: TUnixMSTime;
FVersion: TRecordVersion;
FIntValue: int64;
public
class procedure InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions); override;
published
property GUID: RawUtf8 index 38 read FGUID write FGUID;
property DT: TUnixMSTime read FDateTime write FDateTime;
property IntValue: int64 read FIntValue write FIntValue;
property Version: TRecordVersion read FVersion write FVersion;
end;
TMyOrm2 = class(TOrm)
private
FGUID: RawUtf8;
FDateTime: TUnixMSTime;
FVersion: TRecordVersion;
FIntValue: int64;
public
class procedure InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions); override;
published
property GUID: RawUtf8 index 38 read FGUID write FGUID;
property DT: TUnixMSTime read FDateTime write FDateTime;
property IntValue: int64 read FIntValue write FIntValue;
property Version: TRecordVersion read FVersion write FVersion;
end;
TMyOrm3 = class(TOrm)
private
FGUID: RawUtf8;
FDateTime: TUnixMSTime;
FVersion: TRecordVersion;
FIntValue: int64;
public
class procedure InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions); override;
published
property GUID: RawUtf8 index 38 read FGUID write FGUID;
property DT: TUnixMSTime read FDateTime write FDateTime;
property IntValue: int64 read FIntValue write FIntValue;
property Version: TRecordVersion read FVersion write FVersion;
end;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Model: TOrmModel;
ORM: TRestServerDB;
public
end;
var
Form1: TForm1;
implementation
{$R *.frm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
i,l: integer;
Batch1: TRestBatch;
Batch2: TRestBatch;
Batch3: TRestBatch;
MyOrm1: TMyOrm1;
MyOrm2: TMyOrm2;
MyOrm3: TMyOrm3;
begin
Model := TOrmModel.Create([TAuthGroup, TAuthUser, TMyOrm1, TMyOrm2, TMyOrm3]);
ORM := TRestServerDB.Create(Model, ExtractFilePath(Application.ExeName)+'testdb.db3');
ORM.DB.Synchronous := smOff;
ORM.DB.LockingMode := lmExclusive;
Orm.Server.CreateMissingTables(0,[itoNoAutoCreateUsers]);
Batch1 := TRestBatch.Create(ORM.Orm, TMyOrm1, 0);
Batch2 := TRestBatch.Create(ORM.Orm, TMyOrm2, 0);
Batch3 := TRestBatch.Create(ORM.Orm, TMyOrm3, 0);
try
for i := 1 to 500 do
begin
l := Random(3);
if l=1 then
try
MyOrm1 := TMyOrm1.Create;
MyOrm1.GUID := TGuid.NewGuid.ToString;
MyOrm1.DT := DateTimeToUnixMSTime(Now);
MyOrm1.IntValue := random(10);
Batch1.Add(myOrm1, true);
finally
MyOrm1.Free;
end
else
if l=2 then
try
MyOrm2 := TMyOrm2.Create;
MyOrm2.GUID := TGuid.NewGuid.ToString;
MyOrm2.DT := DateTimeToUnixMSTime(Now);
MyOrm2.IntValue := random(10);
Batch2.Add(myOrm2, true);
finally
MyOrm2.Free;
end
else
try
MyOrm3 := TMyOrm3.Create;
MyOrm3.GUID := TGuid.NewGuid.ToString;
MyOrm3.DT := DateTimeToUnixMSTime(Now);
MyOrm3.IntValue := random(10);
Batch3.Add(myOrm3, true);
finally
MyOrm3.Free;
end;
sleep(1);
end;
if Batch1.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm1);
Orm.Orm.BatchSend(Batch1);
Orm.Orm.Commit;
end;
if Batch2.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm2);
Orm.Orm.BatchSend(Batch2);
Orm.Orm.Commit;
end;
if Batch3.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm3);
Orm.Orm.BatchSend(Batch3);
Orm.Orm.Commit;
end;
finally
Batch1.Free;
Batch2.Free;
Batch3.Free;
end;
Batch1 := TRestBatch.Create(ORM.Orm, TMyOrm1, 0);
Batch2 := TRestBatch.Create(ORM.Orm, TMyOrm2, 0);
Batch3 := TRestBatch.Create(ORM.Orm, TMyOrm3, 0);
try
for i := 1 to 300 do
begin
l := Random(3);
if l=1 then
try
MyOrm1 := TMyOrm1.CreateAndFillPrepare(Orm.Orm, 'IntValue=?', [random(10)]);
if myOrm1.FillOne then
begin
MyOrm1.DT := DateTimeToUnixMSTime(Now);
Batch1.Update(MyOrm1);
end;
finally
MyOrm1.Free;
end
else
if l=2 then
try
MyOrm2 := TMyOrm2.CreateAndFillPrepare(Orm.Orm, 'IntValue=?', [random(10)]);
if myOrm2.FillOne then
begin
MyOrm2.DT := DateTimeToUnixMSTime(Now);
Batch2.Update(MyOrm2);
end;
finally
MyOrm2.Free;
end
else
try
MyOrm3 := TMyOrm3.CreateAndFillPrepare(Orm.Orm, 'IntValue=?', [random(10)]);
if myOrm3.FillOne then
begin
MyOrm3.DT := DateTimeToUnixMSTime(Now);
Batch3.Update(MyOrm3);
end;
finally
MyOrm3.Free;
end;
sleep(1);
end;
if Batch1.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm1);
Orm.Orm.BatchSend(Batch1);
Orm.Orm.Commit;
end;
if Batch2.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm2);
Orm.Orm.BatchSend(Batch2);
Orm.Orm.Commit;
end;
if Batch3.Count>0 then
begin
Orm.Orm.TransactionBegin(TMyOrm3);
Orm.Orm.BatchSend(Batch3);
Orm.Orm.Commit;
end;
finally
Batch1.Free;
Batch2.Free;
Batch3.Free;
end;
Orm.Free;
end;
class procedure TMyOrm1.InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions);
begin
inherited InitializeTable(Server, FieldNames, Options);
if (FieldNames='') or (FieldNames='DT') then
begin
Server.CreateSqlIndex(TMyOrm1,'DT',false);
Server.CreateSqlIndex(TMyOrm1,'IntValue',false);
end;
end;
class procedure TMyOrm2.InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions);
begin
inherited InitializeTable(Server, FieldNames, Options);
if (FieldNames='') or (FieldNames='DT') then
begin
Server.CreateSqlIndex(TMyOrm2,'DT',false);
Server.CreateSqlIndex(TMyOrm2,'IntValue',false);
end;
end;
class procedure TMyOrm3.InitializeTable(const Server: IRestOrmServer; const FieldNames: RawUtf8; Options: TOrmInitializeTableOptions);
begin
inherited InitializeTable(Server, FieldNames, Options);
if (FieldNames='') or (FieldNames='DT') then
begin
Server.CreateSqlIndex(TMyOrm3,'DT',false);
Server.CreateSqlIndex(TMyOrm3,'IntValue',false);
end;
end;
(* Sample results after Select * from MyOrm1 order by DT
Versions should be also ordered ascending, but they don't
ID;GUID;DT;IntValue;Version
6;{C9E2DD25-F76A-4B9A-8D29-A909C0C10BDA};1 685 719 334 319,00;6;6
9;{26EB1DA4-5DB4-4755-A2C2-2D824FD44296};1 685 719 334 429,00;7;9
13;{1B748EEF-5BC6-4693-A20D-15C9B7F6559A};1 685 719 334 633,00;3;13
18;{AA631CFC-A2E2-4DA0-83C2-8C3508C3F7A2};1 685 719 334 819,00;5;18
20;{D6F77CC3-7F6C-4843-BA9E-E7F8772368DE};1 685 719 334 960,00;9;20
21;{BE8FDBC7-DF26-489B-A020-3399E88CFA29};1 685 719 335 083,00;7;21
23;{E4185435-C58E-4876-B20E-8E0B30909A9E};1 685 719 335 177,00;0;23
24;{7D240708-78D7-4B59-BBF5-5AE2DF462AFA};1 685 719 335 209,00;8;24
25;{4ADFA55C-6031-475E-9FEF-6C9D614EDEDB};1 685 719 335 225,00;7;25
27;{47B05D50-F206-4B1F-A7C5-849E8D8D11A6};1 685 719 335 255,00;2;27
28;{0BC7D620-053A-4C67-A9D4-1D43C7BCA9F1};1 685 719 335 285,00;9;28
29;{925F9BE8-7EE4-4A57-B994-0C24AF2D03E3};1 685 719 335 317,00;3;29
32;{570D3E15-34D2-491A-9FBD-908626164798};1 685 719 335 379,00;5;32
33;{8C657607-2280-4761-86F6-58E7CA82AF58};1 685 719 335 503,00;6;33
34;{3D3D0C5C-DB55-4D36-A4D7-9779D9D8FF8B};1 685 719 335 535,00;1;34
35;{2B07CE31-9837-464C-B5E5-7A621ACB1475};1 685 719 335 550,00;9;35
36;{7F57492A-DE6A-45A8-9F45-9CF447A9BA63};1 685 719 335 690,00;4;36
37;{88B3D68C-7ED0-47BC-9B97-395BB283696F};1 685 719 335 720,00;5;37
38;{8CBC58C6-231D-462E-B8E2-8E22BF084C39};1 685 719 335 766,00;0;38
39;{43E17A96-2DFA-4121-9D42-F6A29FAE0E92};1 685 719 335 875,00;3;39
40;{562B0F3D-7F13-4842-A9B8-DDF3068B956A};1 685 719 335 891,00;8;40
41;{833A5BA3-C319-41CA-BFDB-517E74B0624C};1 685 719 335 907,00;5;41
42;{5204BF6D-4CB3-4FC4-BE9F-2ED8F9CB885C};1 685 719 335 984,00;9;42
43;{D08A58E7-EEB1-4027-831C-97E503F5E941};1 685 719 336 062,00;2;43
44;{51CAB7CD-8BDA-47F8-82CB-88F84257C715};1 685 719 336 109,00;7;44
45;{7835A11B-6014-4C0F-B813-8A43C7E19F9A};1 685 719 336 124,00;8;45
46;{336933DB-194E-44A0-A844-249970F41E44};1 685 719 336 171,00;1;46
47;{822B7A81-77AB-424B-B911-1B2AB50F0CB8};1 685 719 336 202,00;9;47
48;{6145FB24-1F07-4A6D-9801-4BB52B2355DF};1 685 719 336 218,00;0;48
49;{8C008A70-3A5F-45A8-9642-6F67A82BC900};1 685 719 336 233,00;1;49
50;{C3FE9D69-D07E-4A5A-B631-4859C5A02359};1 685 719 336 264,00;8;50
51;{B1E1F56E-6F62-45E9-9E46-71828449E7F7};1 685 719 336 279,00;0;51
52;{9B5BABE0-3016-49A2-B1E0-A4140D3FA7FF};1 685 719 336 437,00;8;52
53;{E7C5D5A2-D1E8-4B7A-B3D8-5EB15CFCE90E};1 685 719 336 468,00;8;53
54;{892659F9-0A18-44BF-84D3-970B70496F78};1 685 719 336 482,00;0;54
55;{58654BAF-4B1C-4F7A-AF83-B4FB05BF47F5};1 685 719 336 513,00;9;55
56;{62BC306E-B03B-4E31-B24B-43863AB16024};1 685 719 336 544,00;7;56
57;{972F0B57-69C9-4BD4-B37E-22482D298084};1 685 719 336 622,00;7;57
58;{CAE61D58-4AC6-4CB6-BF10-DD26DD7D713D};1 685 719 336 636,00;1;58
59;{DFDA54D5-5795-405C-A1F1-A5564DD96D6F};1 685 719 336 714,00;2;59
60;{3CA0C6AE-3E61-4E8D-9A95-30D01BD2F95B};1 685 719 336 761,00;1;60
61;{8C5FFBCC-4434-48B2-AA56-80CDEB846D31};1 685 719 336 777,00;4;61
62;{B19CD6AC-D1AF-4638-A108-B9C7284D2CAD};1 685 719 336 808,00;5;62
63;{97B8187B-1A76-455B-8EA5-ED1B352C8BFA};1 685 719 336 823,00;5;63
64;{992ED9D4-39D4-4C2A-8BDE-EB4BBE875B6F};1 685 719 336 838,00;8;64
65;{9E90FD6D-5F8D-4E11-8BB0-BBA5F71821E7};1 685 719 336 869,00;4;65
66;{D2AE0BDD-CE9E-4B7F-8A26-9647C09D4AE0};1 685 719 336 900,00;8;66
67;{B5FB9548-3BFF-4137-AE0F-D8A4947FD0AE};1 685 719 336 931,00;3;67
68;{5B54D13A-A7EB-47CB-8672-C7277AEF1A8F};1 685 719 336 977,00;0;68
69;{5B3F68A8-303C-453D-9BBB-C79700328CF6};1 685 719 337 024,00;4;69
70;{EA48212F-F077-4685-97CD-491EC0D86547};1 685 719 337 057,00;0;70
71;{A06673C6-8C97-4661-BCFE-4C2167D4B107};1 685 719 337 121,00;4;71
72;{B243C62E-BDE4-4FC2-B7BF-57C281AD0604};1 685 719 337 137,00;0;72
73;{67350F06-7C5E-4E74-B99C-09190D963BDE};1 685 719 337 153,00;4;73
74;{C80C88A1-588A-49A9-B951-0EA05615A9F4};1 685 719 337 199,00;3;74
75;{AB6BAD7B-E267-4746-B80D-31E56A4058C6};1 685 719 337 353,00;7;75
76;{273E958D-B629-42AC-B7C3-14D8B254B83D};1 685 719 337 369,00;2;76
77;{B5667A87-2E20-41ED-895D-0DF3BD6B2CF0};1 685 719 337 478,00;7;77
78;{3AA39C77-2D88-43AA-A7D4-853DDC274FDE};1 685 719 337 620,00;2;78
79;{EB3B160C-5CEB-4C83-936F-A1F6A2E16210};1 685 719 337 652,00;7;79
80;{63128701-CCB6-46EF-BC22-5058791296A2};1 685 719 337 698,00;9;80
81;{DFAE1FD4-DC2F-44C1-981E-DCCA3304344A};1 685 719 337 713,00;8;81
82;{35172908-052E-46DB-BB76-CDACEAF5149F};1 685 719 337 729,00;3;82
83;{491066F4-41BC-41D0-AF0E-555D9838AE47};1 685 719 337 760,00;0;83
84;{5EA26C9D-6FD2-410D-B9A3-EDFC2CB22226};1 685 719 337 776,00;2;84
85;{D9892CAA-9814-48AA-8FCF-03198B6A9BD3};1 685 719 337 791,00;0;85
86;{6F2CADE7-ECC0-4519-9513-50FA759A2AE7};1 685 719 337 806,00;8;86
87;{3A37E727-0A7F-45C0-BD17-DB57019208E1};1 685 719 337 899,00;2;87
88;{500B8A18-9672-44B5-85E6-65E8185A2B90};1 685 719 337 915,00;7;88
89;{CC0F9021-C042-4C66-9556-4E62EA78B39C};1 685 719 338 054,00;5;89
90;{A9EE46A7-5C2B-4BA6-94E5-36E2A34287B9};1 685 719 338 069,00;7;90
91;{EE1A259C-5E5E-48C0-8951-7859ADD8E6F5};1 685 719 338 116,00;9;91
92;{C2EC0A20-4DB2-45A8-B234-C1766FF79CBA};1 685 719 338 131,00;0;92
93;{BD699CDA-7D9D-4E4A-A3A7-EF38F23ABA39};1 685 719 338 208,00;0;93
94;{A364194D-0361-487D-A8BB-81122034A36D};1 685 719 338 224,00;0;94
95;{CF25A6D7-7B76-4982-A666-3AF7E4626E5E};1 685 719 338 239,00;8;95
96;{8466F0DF-BD25-4FB7-A01B-4659DC9E4CB2};1 685 719 338 270,00;1;96
97;{B601328C-F913-472B-97A8-C70BAC95C621};1 685 719 338 364,00;8;97
98;{F52612B6-E9E2-4F52-8AEF-CE4FFBC28EA4};1 685 719 338 426,00;1;98
99;{402AD781-CD01-4442-B11D-0D62B49A7BBA};1 685 719 338 472,00;4;99
100;{D6FB6864-817E-46A1-A112-ED7D175B2678};1 685 719 338 519,00;5;100
101;{F9FB9A7D-DBA5-43D3-912F-D42435FD7B2A};1 685 719 338 613,00;0;101
102;{E82722AD-D34D-43DE-91CD-211992036856};1 685 719 338 644,00;6;102
103;{6671E36D-F996-416C-8E30-DDC3CC195D18};1 685 719 338 676,00;0;103
104;{1ED61D64-FD06-40B3-80D9-CE01FDB4077F};1 685 719 338 691,00;0;104
105;{BA6BCF97-BA22-42D3-9857-B34534CD029F};1 685 719 338 706,00;1;105
106;{52724887-0488-42E0-954A-8740DF2CFB08};1 685 719 338 722,00;2;106
107;{0A13D7DF-13B4-4410-BF46-F789DF06803A};1 685 719 338 753,00;0;107
108;{13DC160C-C92B-4573-B57E-67F7030B794F};1 685 719 338 784,00;6;108
109;{E346E409-E465-414A-AB7D-DE45CAA5127F};1 685 719 338 893,00;8;109
110;{9D67C5FE-3F63-4B85-8038-E64FA060F765};1 685 719 338 924,00;0;110
111;{A9E56B33-9BB7-446B-A15D-CF64B05795E3};1 685 719 338 954,00;2;111
112;{124859C6-17EF-4B0E-87C1-91B7CAEBB1FD};1 685 719 339 001,00;0;112
113;{7854CD52-FCFE-4B7C-AE9A-509B925A5ADC};1 685 719 339 048,00;8;113
114;{EAD55D4F-8CF3-43E0-B753-D4D99C27F540};1 685 719 339 063,00;0;114
115;{CFE0390E-205F-400D-816B-F257AF234385};1 685 719 339 094,00;3;115
116;{2ACDF9EB-F80E-4FCB-908F-56E96B3A89AC};1 685 719 339 125,00;7;116
117;{DC94AD70-C72F-4556-8491-CFEFC6722684};1 685 719 339 156,00;6;117
118;{F88E206B-0102-4E53-AD3E-0DF59385B6B9};1 685 719 339 172,00;4;118
119;{0CBE0AE7-5BCC-493B-BE3C-9E909D339965};1 685 719 339 219,00;5;119
120;{39AB4185-CD90-46A7-ABC4-AE0A32897445};1 685 719 339 297,00;2;120
121;{49B510D2-37AD-4629-BC79-0BDF40361AAB};1 685 719 339 360,00;9;121
122;{89F8573D-550E-4D6D-8828-05C8CDB1DB22};1 685 719 339 407,00;4;122
123;{98FDA70A-A503-4255-9A1A-20749C72921A};1 685 719 339 532,00;2;123
124;{9FCB0585-32F8-492C-B37D-4A56092949C2};1 685 719 339 547,00;7;124
125;{0EDC420F-A5DB-417A-A331-3C06184CA328};1 685 719 339 610,00;3;125
126;{E45FF784-1D12-4EC5-820E-144C96653137};1 685 719 339 673,00;6;126
127;{DF4EDA59-199A-4EB5-B148-E85905860C77};1 685 719 339 705,00;2;127
128;{81E8818E-DD50-41BA-BC12-C48955479D9E};1 685 719 339 752,00;9;128
129;{AD9F1F9A-7C2A-4D57-8E6E-B5A9167C93A4};1 685 719 339 814,00;4;129
130;{FCBA4AD9-65A0-4190-9A71-933831D91D12};1 685 719 339 877,00;0;130
131;{3BC612A0-B219-43D8-BF00-07F00506DDBD};1 685 719 340 001,00;8;131
132;{C0786EFD-F97D-4E77-B52B-C2E97E3504E2};1 685 719 340 017,00;5;132
133;{E784D7AC-EC6B-48AC-8837-CAE570D0EA30};1 685 719 340 064,00;6;133
134;{C157B593-92D6-4ED9-9031-7D51E12A2E0C};1 685 719 340 079,00;8;134
135;{7AAC29D1-50DB-4B7F-8D73-55388DDEADED};1 685 719 340 126,00;6;135
136;{1D4736FA-A491-4D9E-8FBA-5BB5277462E9};1 685 719 340 172,00;4;136
137;{BF833DC3-914D-4764-A485-5FD6399342A0};1 685 719 340 188,00;5;137
138;{F5EBEC9A-3EB2-4135-B5F0-2501C17E28D1};1 685 719 340 328,00;1;138
139;{C890BC7E-E395-41BA-A9FA-A3606C71A8C5};1 685 719 340 359,00;3;139
140;{00E640BB-A2C2-43A7-9C24-B420599F9E41};1 685 719 340 375,00;2;140
141;{612DD5FD-00D7-44D1-BE89-52D9F1D1EA25};1 685 719 340 467,00;0;141
142;{5A89558F-40AD-412C-9277-F5C509B08183};1 685 719 340 546,00;0;142
143;{C7081654-5074-40D5-931F-F3DD37FBA6C1};1 685 719 340 561,00;5;143
144;{45A5567B-FFE4-4D90-AD87-14E602D00F1E};1 685 719 340 592,00;9;144
145;{D5B0E05B-0D25-4ED0-AA80-A2B54680D15D};1 685 719 340 624,00;0;145
146;{DD93D06E-A043-4466-B464-4B9B0EEC67EC};1 685 719 340 670,00;1;146
147;{807C25EB-404A-4CD7-A6D3-6EB6171D9B95};1 685 719 340 749,00;4;147
148;{654DEEA4-E85F-4F75-B326-9414403781EA};1 685 719 340 764,00;0;148
149;{0F46C051-5664-41E7-AF6B-E58A26DC5A6C};1 685 719 340 810,00;7;149
150;{3104C524-BA7E-4D48-99BC-12E33A1657AC};1 685 719 340 857,00;6;150
151;{F38667AC-6BF6-4E15-9611-46FE109B291A};1 685 719 340 872,00;8;151
152;{9FE533F8-FF42-4454-BE5C-5C34007DC152};1 685 719 340 889,00;2;152
153;{803C3A5E-C121-47A5-BC90-100CF1260F7D};1 685 719 340 935,00;6;153
154;{0539B2B7-37B8-457E-ADE6-9EB4F304FC81};1 685 719 340 981,00;5;154
155;{DED7264F-4AD8-48E4-A9EB-5B2E423AD100};1 685 719 341 012,00;3;155
156;{D0550A29-C3F8-424F-8BAD-7CF5FFA81388};1 685 719 341 043,00;8;156
157;{D28F2B08-BE26-4529-873B-9DE55A07E567};1 685 719 341 075,00;8;157
158;{93AE2C73-4659-4286-80E5-263470FEBE4E};1 685 719 341 105,00;2;158
159;{F70162A2-7C31-4D0B-86AF-ACD18D06E089};1 685 719 341 136,00;1;159
160;{40A0787C-D234-49C7-A67E-79C975FE4C4D};1 685 719 341 167,00;3;160
161;{B5A3A589-B8DB-46EF-B5CC-D1AD01C3E206};1 685 719 341 340,00;8;161
162;{00037A51-702D-4B0F-B93A-B46D4E024607};1 685 719 341 416,00;6;162
163;{30D8F135-67F1-410C-99A6-A39EA9E92E92};1 685 719 341 447,00;6;163
164;{A070E779-6452-45F0-9329-4A21513B87DA};1 685 719 341 510,00;3;164
165;{B7365FA7-8BAE-478F-A7A9-461326AB62AB};1 685 719 341 526,00;8;165
166;{54A853C7-D576-4928-964C-357E7DFF054F};1 685 719 341 542,00;1;166
167;{4E4F2162-1E08-45E7-98B0-C16EE3F11A6E};1 685 719 341 557,00;7;167
168;{FA65A80A-A368-4E04-8FF1-D127B6C56125};1 685 719 341 604,00;2;168
169;{D5F1B937-1C83-40E8-A479-2DC03A6D7FE3};1 685 719 341 635,00;7;169
170;{C077AA19-B8E0-4C50-9B5B-C12C13C1AEB0};1 685 719 341 650,00;6;170
171;{08C0F9DB-BEC1-4F01-B89E-86B2BD954D19};1 685 719 341 666,00;5;171
172;{1B4C7625-9EA2-49C1-AF01-DD8F8A8D4FA2};1 685 719 341 729,00;2;172
173;{3E7E0196-0C02-47B4-B22D-DECAFC0C2612};1 685 719 341 744,00;7;173
174;{49BFA137-F66B-448F-8839-BFDCBE15EF70};1 685 719 341 854,00;6;174
175;{1D33A8EA-6402-4AFA-BD42-091C98439520};1 685 719 341 869,00;7;175
176;{8F366367-9A85-472B-84CF-480D9EB0C096};1 685 719 341 885,00;7;176
12;{10EB5705-DB81-49E4-B38A-748FB0C2032C};1 685 719 344 768,00;1;12 <- Starting from this point
11;{D089EAAB-7DFE-4D17-8200-8B203F0049EE};1 685 719 344 830,00;4;11
19;{C8EFC28E-95EB-4EAA-B6D6-4D5677668F8A};1 685 719 344 923,00;5;19
7;{AE3B31A0-F0A0-4548-B12A-D00B9F46D903};1 685 719 345 421,00;4;7
10;{0AF419EF-9997-476A-8E26-D798DDB40BFB};1 685 719 345 766,00;0;10
3;{DEB115B3-2037-49E2-9EAE-06D9EBCE0F6B};1 685 719 345 969,00;8;3
2;{5ACB4698-FA02-4B57-9EF3-6544A96D2177};1 685 719 346 015,00;9;2
1;{5325176A-0C22-46DD-99D1-EED84FD5235E};1 685 719 346 125,00;2;1
30;{A90639EF-726C-4E4E-BF08-49C9579EA306};1 685 719 346 140,00;1;30
8;{F9EADD85-899F-421A-98FD-742268512FAB};1 685 719 346 280,00;6;8
22;{E7807F57-CEB9-4A2F-9110-ABCABB688FDC};1 685 719 346 311,00;4;22
14;{69E1FEFB-0382-4088-9203-1100C2769F93};1 685 719 346 326,00;3;14
16;{B85CB26F-9744-44F1-94F2-3EBFAF98F22F};1 685 719 346 374,00;1;16
15;{24559A2C-5D9B-4227-B3E7-E51B493C4FF4};1 685 719 346 405,00;0;15
5;{BAD776DD-0728-4FBC-9358-71D44BA829AA};1 685 719 346 420,00;7;5
31;{47169F44-FDC1-4E62-AF05-7189145B2C99};1 685 719 346 451,00;0;31
26;{9CBBDECC-D95A-42A0-9E8C-E6FA1DB7F697};1 685 719 346 529,00;5;26
17;{63E4ACD1-B1CA-449A-86D6-7188089BACBA};1 685 719 346 545,00;9;17
4;{24E45D26-0A8A-4715-96FE-3D3AC9B283BF};1 685 719 346 576,00;2;4
*)
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment