Changeset 3

User picture

Author: Toster

(2009/02/15 16:00) About 3 years ago

  - poprawiono metody skoków (j***) teraz wyznaczaja poprawnie adress docelowy
  - zmiany w dzialaniu polecen sub, div teraz odpowiednio dst = dst - src i dst = dst / src wczesniej bylo na odwrot
  - rozszerzono kompilator: dodano sekcje Code, Data, Binary w kodzie zrodlowym
  - rozszerzono kompilator: rozne sekcje moga byc defaultowo ladowane pod rozne adresy w debugerze
  - pojawila sie dokumentacja w formacie LateX'a
  - rozszerzono loader plikow skompilowanych
  - pojawila sie konfigurowalna maszyna virtualna
  - wyseparowane podstawowe interfejsy/klasy bazowe dla urzadzenia dzialajacego jak zegar i manager pamieci

Affected files

Added Bin/VMachine.xml

Show contents

Added Documentation/Opis_pl.tex

Show contents

Updated TurboDelphi/Debuger.bdsproj Download diff

23
145
			<Language Name="RootDir"></Language>
145
			<Language Name="RootDir"></Language>
146
		</Language>
146
		</Language>
147
		<VersionInfo>
147
		<VersionInfo>
148
			<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
148
			<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
149
			<VersionInfo Name="AutoIncBuild">False</VersionInfo>
149
			<VersionInfo Name="AutoIncBuild">True</VersionInfo>
150
			<VersionInfo Name="MajorVer">1</VersionInfo>
150
			<VersionInfo Name="MajorVer">0</VersionInfo>
151
			<VersionInfo Name="MinorVer">0</VersionInfo>
151
			<VersionInfo Name="MinorVer">0</VersionInfo>
152
			<VersionInfo Name="Release">0</VersionInfo>
152
			<VersionInfo Name="Release">3</VersionInfo>
153
			<VersionInfo Name="Build">0</VersionInfo>
153
			<VersionInfo Name="Build">50</VersionInfo>
154
			<VersionInfo Name="Debug">False</VersionInfo>
154
			<VersionInfo Name="Debug">False</VersionInfo>
155
			<VersionInfo Name="PreRelease">False</VersionInfo>
155
			<VersionInfo Name="PreRelease">False</VersionInfo>
156
			<VersionInfo Name="Special">False</VersionInfo>
156
			<VersionInfo Name="Special">False</VersionInfo>
...
...
162
		<VersionInfoKeys>
162
		<VersionInfoKeys>
163
			<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
163
			<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
164
			<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
164
			<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
165
			<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
165
			<VersionInfoKeys Name="FileVersion">0.0.3.50</VersionInfoKeys>
166
			<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
166
			<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
167
			<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
167
			<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
168
			<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
168
			<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>

Updated TurboDelphi/Debuger.bdsproj.local Download diff

23
5
    <Transaction>2009-01-15 15:14:39.031.dfm,C:\Documents and Settings\zarnobar\My Documents\Borland Studio
Projects\Unit2.dfm=D:\Work\Borland\Gluton\TurboDelphi\DebugForm.dfm</Transaction>
5
    <Transaction>2009-01-15 15:14:39.031.dfm,C:\Documents and Settings\zarnobar\My Documents\Borland Studio
Projects\Unit2.dfm=D:\Work\Borland\Gluton\TurboDelphi\DebugForm.dfm</Transaction>
6
    <Transaction>2009-01-15 15:14:44.672.bdsproj,C:\Documents and Settings\zarnobar\My Documents\Borland Studio
Projects\Project1.bdsproj=D:\Work\Borland\Gluton\TurboDelphi\Debuger.bdsproj</Transaction>
6
    <Transaction>2009-01-15 15:14:44.672.bdsproj,C:\Documents and Settings\zarnobar\My Documents\Borland Studio
Projects\Project1.bdsproj=D:\Work\Borland\Gluton\TurboDelphi\Debuger.bdsproj</Transaction>
7
    <Transaction>2009-01-20 16:53:33.911.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\SouthBridge.pas</Transaction>
7
    <Transaction>2009-01-20 16:53:33.911.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\SouthBridge.pas</Transaction>
8
    <Transaction>2009-01-30
16:26:53.895.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\VirtualMachine.pas</Transaction>
9
    <Transaction>2009-02-06 15:01:57.935.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\NorthBridge.pas</Transaction>
10
    <Transaction>2009-02-06 15:17:46.970.pas,D:\Work\Borland\Gluton\Units\NorthBridge.pas=</Transaction>
11
    <Transaction>2009-02-11 13:41:20.281.pas,C:\Documents and Settings\zarnobar\Desktop\Gluton\TurboDelphi\Unit1.pas=C:\Documents and
Settings\zarnobar\Desktop\Gluton\Units\CoreDevices.pas</Transaction>
12
    <Transaction>2009-02-12 21:34:29.140.pas,C:\Documents and Settings\zarnobar\Desktop\Gluton\TurboDelphi\Unit1.pas=C:\Documents and
Settings\zarnobar\Desktop\Gluton\Units\SimpleGPU.pas</Transaction>
13
    <Transaction>2009-02-12 22:47:03.671.pas,C:\Documents and Settings\zarnobar\Desktop\Gluton\TurboDelphi\Unit1.pas=C:\Documents and
Settings\zarnobar\Desktop\Gluton\TurboDelphi\GPUOutputForm.pas</Transaction>
14
    <Transaction>2009-02-12 22:47:03.671.dfm,C:\Documents and Settings\zarnobar\Desktop\Gluton\TurboDelphi\Unit1.dfm=C:\Documents and
Settings\zarnobar\Desktop\Gluton\TurboDelphi\GPUOutputForm.dfm</Transaction>
8
  </Transactions>
15
  </Transactions>
9
</BorlandProject>
16
</BorlandProject>

Updated TurboDelphi/Debuger.dpr Download diff

23
11
  processor in '..\Units\processor.pas',
11
  processor in '..\Units\processor.pas',
12
  ProcessorCore in '..\Units\ProcessorCore.pas',
12
  ProcessorCore in '..\Units\ProcessorCore.pas',
13
  SimpleCore in '..\Units\SimpleCore.pas',
13
  SimpleCore in '..\Units\SimpleCore.pas',
14
  SouthBridge in '..\Units\SouthBridge.pas';
14
  SouthBridge in '..\Units\SouthBridge.pas',
15
  Linker in '..\Units\Linker.pas',
16
  VirtualMachine in '..\Units\VirtualMachine.pas',
17
  XMLHelpers in '..\Units\XMLHelpers.pas',
18
  XMLShader in '..\Units\XMLShader.pas',
19
  CoreDevices in '..\Units\CoreDevices.pas',
20
  SimpleGPU in '..\Units\SimpleGPU.pas',
21
  GPUOutputForm in 'GPUOutputForm.pas' {GPUOutput};
15
22
16
{$R *.res}
23
{$R *.res}
17
24
...
...
19
  ReportMemoryLeaksOnShutDown := DebugHook <> 0;
26
  ReportMemoryLeaksOnShutDown := DebugHook <> 0;
20
  Application.Initialize;
27
  Application.Initialize;
21
  Application.CreateForm(TForm2, Form2);
28
  Application.CreateForm(TForm2, Form2);
29
  Application.CreateForm(TGPUOutput, GPUOutput);
22
  Application.Run;
30
  Application.Run;
23
end.
31
end.

Updated TurboDelphi/DebugForm.dfm Download diff

23
67
        'Zero'
67
        'Zero'
68
        'Negative'
68
        'Negative'
69
        'Overflown'
69
        'Overflown'
70
        'Interrupt'
71
        'Debug'
70
        'Debug'
72
        'Panic'
71
        'Panic'
73
        'Irq')
72
        'Irq')
...
...
176
      Top = 0
175
      Top = 0
177
      Action = BreakpointClear
176
      Action = BreakpointClear
178
    end
177
    end
178
    object ToolButton16: TToolButton
179
      Left = 300
180
      Top = 0
181
      Action = ShowGPUOutput
182
    end
179
  end
183
  end
180
  object StatusBar1: TStatusBar
184
  object StatusBar1: TStatusBar
181
    Left = 0
185
    Left = 0
...
...
306
      ImageIndex = 11
310
      ImageIndex = 11
307
      OnExecute = ProcPauseProgramExecute
311
      OnExecute = ProcPauseProgramExecute
308
    end
312
    end
313
    object ShowGPUOutput: TAction
314
      Category = 'Utils'
315
      Caption = 'Show GPU output'
316
      OnExecute = ShowGPUOutputExecute
317
    end
309
  end
318
  end
310
  object MainMenu1: TMainMenu
319
  object MainMenu1: TMainMenu
311
    Images = ImageList1
320
    Images = ImageList1

Updated TurboDelphi/DebugForm.pas Download diff

23
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, Menus, ActnList, ImgList,
7
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, Menus, ActnList, ImgList,
8
  SimpleCore, processor, MemoryManager, Clock, CheckLst, ProcessorCore,
8
  SimpleCore, processor, MemoryManager, Clock, CheckLst, ProcessorCore,
9
  Compiler;
9
  Compiler, VirtualMachine, SimpleGPU;
10
10
11
type
11
type
12
   TRegisterInspector = class;
12
   TRegisterInspector = class;
...
...
96
    N8: TMenuItem;
96
    N8: TMenuItem;
97
    Stepover2: TMenuItem;
97
    Stepover2: TMenuItem;
98
    Pauseexecution1: TMenuItem;
98
    Pauseexecution1: TMenuItem;
99
    ToolButton16: TToolButton;
100
    ShowGPUOutput: TAction;
99
    procedure FormCreate(Sender: TObject);
101
    procedure FormCreate(Sender: TObject);
100
    procedure FormDestroy(Sender: TObject);
102
    procedure FormDestroy(Sender: TObject);
101
    procedure ProgramExitExecute(Sender: TObject);
103
    procedure ProgramExitExecute(Sender: TObject);
...
...
114
    procedure BreakpointAddressDelExecute(Sender: TObject);
116
    procedure BreakpointAddressDelExecute(Sender: TObject);
115
    procedure ProcRunCodeExecute(Sender: TObject);
117
    procedure ProcRunCodeExecute(Sender: TObject);
116
    procedure ProcPauseProgramExecute(Sender: TObject);
118
    procedure ProcPauseProgramExecute(Sender: TObject);
119
    procedure ShowGPUOutputExecute(Sender: TObject);
117
  private
120
  private
118
    { Private declarations }
121
    { Private declarations }
119
    fProcessor:   TProcessor;
122
    fVM:          TVirtualMachine;
120
    fMemory:      TMemMgr;
121
    fClock:       TClock;
122
123
123
    fRegInsp:     TRegisterInspector;
124
    fRegInsp:     TRegisterInspector;
124
    fMemInsp:     TMemoryInspector;
125
    fMemInsp:     TMemoryInspector;
...
...
126
    fMemDiss:     TMemDisassemble;
127
    fMemDiss:     TMemDisassemble;
127
    fBreakPoinMgr:TBreakpointMgr;
128
    fBreakPoinMgr:TBreakpointMgr;
128
    fExecutor:    TCodeExecutor;
129
    fExecutor:    TCodeExecutor;
130
    fGPU:         TSimpleGPU;
129
131
130
    procedure     UpdateAllInspectors;
132
    procedure     UpdateAllInspectors;
131
  public
133
  public
...
...
134
136
135
   TCodeExecutor = class
137
   TCodeExecutor = class
136
      public
138
      public
137
         constructor       Create(const proc: TProcessor; const Clock: TClock);
139
         constructor       Create(const proc: TProcessor; const VM: TVirtualMachine);
138
         procedure         Run;
140
         procedure         Run;
139
         procedure         StepOver;
141
         procedure         StepOver;
140
         procedure         Pause;
142
         procedure         Pause;
...
...
146
         fStopExecution:   boolean;
148
         fStopExecution:   boolean;
147
         fCore:            TSimpleCore;
149
         fCore:            TSimpleCore;
148
         fProcessor:       TProcessor;
150
         fProcessor:       TProcessor;
149
         fClock:           TClock;
151
         fVM:              TVirtualMachine;
150
152
151
         procedure         CoreErrorProc(const iType: TErrorType);
153
         procedure         CoreErrorProc(const iType: TErrorType);
152
   end;
154
   end;
...
...
207
         fCore:         TSimpleCore;
209
         fCore:         TSimpleCore;
208
         fDiss:         TGluDecompiler;
210
         fDiss:         TGluDecompiler;
209
         fVisibleLines: integer;
211
         fVisibleLines: integer;
210
         fDissStart:    integer;
212
//         fDissStart:    integer;
211
         fDissEnd:      integer;
213
//         fDissEnd:      integer;
212
         fBreakPointMgr:TBreakpointMgr;
214
         fBreakPointMgr:TBreakpointMgr;
213
215
214
         procedure      ListBoxDrawItem(Control: TWinControl; Index: Integer; R: TRect; State: TOwnerDrawState);
216
         procedure      ListBoxDrawItem(Control: TWinControl; Index: Integer; R: TRect; State: TOwnerDrawState);
...
...
239
241
240
implementation
242
implementation
241
243
244
uses GPUOutputForm;
245
242
{$R *.dfm}
246
{$R *.dfm}
243
247
244
{ TRegisterInspector }
248
{ TRegisterInspector }
...
...
359
363
360
procedure TForm2.FileOpenExecute(Sender: TObject);
364
procedure TForm2.FileOpenExecute(Sender: TObject);
361
var
365
var
362
   fil: TFileStream;
366
   EndOfSections: TStrings;
363
   t: integer;
367
   t: integer;
364
   b: byte;
365
begin
368
begin
366
   if OpenDialog1.Execute = false then exit;
369
   if OpenDialog1.Execute = false then exit;
367
   if FileExists(OpenDialog1.FileName) = false then exit;
370
   if FileExists(OpenDialog1.FileName) = false then exit;
368
371
369
   fil := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
372
   EndOfSections := TStringList.Create;
370
   for t := 0 to fil.Size-1 do begin
373
   fVM.LoadExecutable(OpenDialog1.FileName, EndOfSections);
371
      fil.Read(b, 1);
372
      fMemory.DebugHeapAccessor[t] := b;
373
   end;
374
374
375
   //dodajemy breakpointa na koncu kodu
375
   //dodajemy breakpointa na koncu kodu
376
   fBreakPoinMgr.ClearBreakpoints;
376
   fBreakPoinMgr.ClearBreakpoints;
377
   fBreakPoinMgr.AddBreakpoint(fil.Size);
377
   for t := 0 to EndOfSections.Count-1 do
378
      fBreakPoinMgr.AddBreakpoint( StrToInt(EndOfSections[t]) );
378
379
379
   FreeAndNil(fil);
380
   FreeAndNil(EndOfSections);
380
   fProcessor.Reset;
381
382
   fVM.Processor.Reset;
381
   UpdateAllInspectors;
383
   UpdateAllInspectors;
382
end;
384
end;
383
385
384
procedure TForm2.FormCreate(Sender: TObject);
386
procedure TForm2.FormCreate(Sender: TObject);
387
var
388
   VMFilename: string;
389
   part: TVMPart;
385
begin
390
begin
386
   //tworzymy procesor
387
   fProcessor := TProcessor.Create;
388
   fProcessor.AddCore( TSimpleCore.Create );
389
   fMemory := TMemMgr.Create(1024*1024, 50*1024, 50*1024);
390
   fProcessor.MemoryMgr := fMemory;
391
   fClock := TClock.Create;
392
   fClock.AddTickReciever(fMemory.ClockSynchronizer);
393
   fClock.AddTickReciever(fProcessor.ClockSynchronizer);
394
391
395
   //podlaczamy nasze bebechy
392
   //petla budujaca maszyne wirtualna, jak nie uda sie to nie jedziemy dalej
393
   VMFilename := 'VMachine.xml';
394
395
   repeat
396
      if FileExists(VMFilename) = false then begin
397
         ShowMessage('Can''t find default VM configuration (VMachine.xml), '+
398
                     'please select different one.');
399
         if OpenDialog1.Execute = false then Halt(0);
400
         VMFilename := OpenDialog1.FileName;
401
         continue;
402
      end;
403
404
      fVM := TVirtualMachine.Create;
405
      //----------- resejstrujemy klasy dla rdzeni
406
      fVM.RegisterProcessorClass(TSimpleCore);
407
408
      //----------- rejestrujemy klasy dla urzadzen mostka poludniowego
409
      fVm.RegisterSouthBridgeDevClass(TSimpleGPU);
410
411
      //------------------------------------------
412
      try
413
         fVM.BuildVM(VMFilename);
414
      except
415
         on e: Exception do begin
416
            ShowMessage('Error while building VM:'#13#10+e.Message+#13#10+
417
                        'Please select different VM configuration');
418
            FreeAndNil(fVM);
419
            if OpenDialog1.Execute = false then Halt(0);
420
            VMFilename := OpenDialog1.FileName;
421
         end;
422
      end;
423
   until fVM <> nil;
424
425
   part := fVM.FindVMPart('GPU');
426
   if part <> nil then
427
      fGPU := TSimpleGPU(part.RefObj);
428
   
429
   //podlaczamy bebechy debugera
396
   fRegInsp := TRegisterInspector.Create(ListBox2,
430
   fRegInsp := TRegisterInspector.Create(ListBox2,
397
      TSimpleCore(fProcessor.Core[0]));
431
      TSimpleCore(fVM.Processor.Core[0]));
398
   fRegInsp.Update;
432
   fRegInsp.Update;
399
433
400
   fMemInsp := TMemoryInspector.Create(ListBox3, fMemory);
434
   fMemInsp := TMemoryInspector.Create(ListBox3, fVM.Memory);
401
   fMemInsp.Update;
435
   fMemInsp.Update;
402
436
403
   fStatRegInsp := TStatusRegInspector.Create(CheckListBox1,
437
   fStatRegInsp := TStatusRegInspector.Create(CheckListBox1,
404
      TSimpleCore(fProcessor.Core[0]));
438
      TSimpleCore(fVM.Processor.Core[0]));
405
   fStatRegInsp.Update;
439
   fStatRegInsp.Update;
406
440
407
   fMemDiss := TMemDisassemble.Create(ListBox1, fMemory,
441
   fMemDiss := TMemDisassemble.Create(ListBox1, fVM.Memory,
408
      TSimpleCore(fProcessor.Core[0]));
442
      TSimpleCore(fVM.Processor.Core[0]));
409
   fMemDiss.Update;
443
   fMemDiss.Update;
410
444
411
   fExecutor := TCodeExecutor.Create(fProcessor, fClock);
445
   fExecutor := TCodeExecutor.Create(fVM.Processor, fVM);
412
446
413
   fBreakPoinMgr := TBreakpointMgr.Create(CheckListBox2, fExecutor);
447
   fBreakPoinMgr := TBreakpointMgr.Create(CheckListBox2, fExecutor);
414
   fMemDiss.fBreakPointMgr := fBreakPoinMgr;
448
   fMemDiss.fBreakPointMgr := fBreakPoinMgr;
...
...
416
450
417
procedure TForm2.FormDestroy(Sender: TObject);
451
procedure TForm2.FormDestroy(Sender: TObject);
418
begin
452
begin
419
    FreeAndNil(fProcessor);
453
   FreeAndNil(fVM);
420
    FreeAndNil(fMemory);
454
   FreeAndNil(fRegInsp);
421
    FreeAndNil(fClock);
455
   FreeAndNil(fMemInsp);
422
    FreeAndNil(fRegInsp);
456
   FreeAndNil(fStatRegInsp);
423
    FreeAndNil(fMemInsp);
457
   FreeAndNil(fMemDiss);
424
    FreeAndNil(fStatRegInsp);
458
   FreeAndNil(fBreakPoinMgr);
425
    FreeAndNil(fMemDiss);
459
   FreeAndNil(fExecutor);
426
    FreeAndNil(fBreakPoinMgr);
427
    FreeAndNil(fExecutor);
428
end;
460
end;
429
461
430
431
procedure TForm2.MemGoToAddressExecute(Sender: TObject);
462
procedure TForm2.MemGoToAddressExecute(Sender: TObject);
432
var
463
var
433
   s: string;
464
   s: string;
434
begin
465
begin
435
   s := InputBox('Goto address', 'Enter address to dump',
466
   s := InputBox('Goto address', 'Enter address to dump',
436
      '$' + IntToHex(fProcessor.Core[0].ProgramCount, 8));
467
      '$' + IntToHex(fVM.Processor.Core[0].ProgramCount, 8));
437
   if s = '' then exit;
468
   if s = '' then exit;
438
469
439
   try
470
   try
...
...
458
   i: integer;
489
   i: integer;
459
begin
490
begin
460
   s := InputBox('Address', 'Enter new program counter value',
491
   s := InputBox('Address', 'Enter new program counter value',
461
      '$'+IntToHex(fProcessor.Core[0].ProgramCount, 8) );
492
      '$'+IntToHex(fVM.Processor.Core[0].ProgramCount, 8) );
462
   if TryStrToInt(s, i) = false then begin
493
   if TryStrToInt(s, i) = false then begin
463
      beep;
494
      beep;
464
      exit;
495
      exit;
...
...
514
   Application.Terminate;
545
   Application.Terminate;
515
end;
546
end;
516
547
548
procedure TForm2.ShowGPUOutputExecute(Sender: TObject);
549
begin
550
   GPUOutput.show;
551
end;
552
517
procedure TForm2.UpdateAllInspectors;
553
procedure TForm2.UpdateAllInspectors;
518
begin
554
begin
519
   fRegInsp.Update;
555
   fRegInsp.Update;
...
...
521
   fStatRegInsp.Update;
557
   fStatRegInsp.Update;
522
   fMemDiss.Update;
558
   fMemDiss.Update;
523
   fBreakPoinMgr.Update;
559
   fBreakPoinMgr.Update;
524
   StatusBar1.Panels[0].Text := '$' + IntToHex(fProcessor.Core[0].ProgramCount, 8);
560
   //GPU jesli jest
561
   if fGPU <> nil then begin
562
      fGPU.RequestImage(GPUOutput.Buffer);
563
      GPUOutput.Refresh;
564
   end;
565
   StatusBar1.Panels[0].Text := '$' + IntToHex(fVM.Processor.Core[0].ProgramCount, 8);
525
end;
566
end;
526
567
527
{ TMemoryInspector }
568
{ TMemoryInspector }
...
...
636
procedure TStatusRegInspector.ListBoxDrawItem(Control: TWinControl;
677
procedure TStatusRegInspector.ListBoxDrawItem(Control: TWinControl;
637
  Index: Integer; R: TRect; State: TOwnerDrawState);
678
  Index: Integer; R: TRect; State: TOwnerDrawState);
638
const
679
const
639
   c: array[0..6] of TControlBits = (cbZero, cbNegative, cbOverflown,
680
   c: array[0..5] of TControlBits = (cbZero, cbNegative, cbOverflown,
640
      cbInterrupt, cbDebug, cbPanic, cbIrq);
681
      cbDebug, cbPanic, cbIrq);
641
var
682
var
642
   canv: TCanvas;
683
   canv: TCanvas;
643
   cb : TControlBits;
684
   cb : TControlBits;
...
...
662
703
663
procedure TStatusRegInspector.Update;
704
procedure TStatusRegInspector.Update;
664
const
705
const
665
   c: array[0..6] of TControlBits = (cbZero, cbNegative, cbOverflown,
706
   c: array[0..5] of TControlBits = (cbZero, cbNegative, cbOverflown,
666
      cbInterrupt, cbDebug, cbPanic, cbIrq);
707
      cbDebug, cbPanic, cbIrq);
667
var
708
var
668
   t: integer;
709
   t: integer;
669
begin
710
begin
...
...
919
960
920
{ TCodeExecutor }
961
{ TCodeExecutor }
921
962
922
constructor TCodeExecutor.Create(const proc: TProcessor; const Clock: TClock);
963
constructor TCodeExecutor.Create(const proc: TProcessor; const VM: TVirtualMachine);
923
var
964
var
924
   t: TErrorType;
965
   t: TErrorType;
925
begin
966
begin
926
   fProcessor := proc;
967
   fProcessor := proc;
927
   fCore := TSimpleCore(proc.core[0]);
968
   fCore := TSimpleCore(proc.core[0]);
928
   fClock := clock;
969
   fVM := VM;
929
970
930
   for t := Low(TErrorType) to High(TErrorType) do
971
   for t := Low(TErrorType) to High(TErrorType) do
931
      fProcessor.Core[0].DbgInterruptProc[t] := CoreErrorProc;
972
      fProcessor.Core[0].DbgInterruptProc[t] := CoreErrorProc;
...
...
972
      st := fProcessor.Core[0].ProgramCount;
1013
      st := fProcessor.Core[0].ProgramCount;
973
      repeat
1014
      repeat
974
         //czasami pojedyncza komenda moze zajac do 3 cykli naszego proca
1015
         //czasami pojedyncza komenda moze zajac do 3 cykli naszego proca
975
         fClock.Tick;
1016
         fVM.Tick;
976
         if cbPanic in fCore.StatusReg then break;
1017
         if cbPanic in fCore.StatusReg then break;
977
      until fProcessor.Core[0].ProgramCount <> st;
1018
      until fProcessor.Core[0].ProgramCount <> st;
978
1019
...
...
992
   st := fProcessor.Core[0].ProgramCount;
1033
   st := fProcessor.Core[0].ProgramCount;
993
   repeat
1034
   repeat
994
      //czasami pojedyncza komenda moze zajac do 3 cykli naszego proca
1035
      //czasami pojedyncza komenda moze zajac do 3 cykli naszego proca
995
      fClock.Tick;
1036
      fVM.Tick;
996
      if cbPanic in fCore.StatusReg then break;
1037
      if cbPanic in fCore.StatusReg then break;
997
   until fProcessor.Core[0].ProgramCount <> st;
1038
   until fProcessor.Core[0].ProgramCount <> st;
998
   form2.UpdateAllInspectors;
1039
   form2.UpdateAllInspectors;

Updated TurboDelphi/GluCompile.bdsproj Download diff

23
130
			<Directories Name="UsePackages">False</Directories>
130
			<Directories Name="UsePackages">False</Directories>
131
		</Directories>
131
		</Directories>
132
		<Parameters>
132
		<Parameters>
133
			<Parameters Name="RunParams">stack_test.txt stack_test.gcf</Parameters>
133
			<Parameters Name="RunParams">data_sec_test.txt data_sec_test.gcf -debugDump</Parameters>
134
			<Parameters Name="HostApplication"></Parameters>
134
			<Parameters Name="HostApplication"></Parameters>
135
			<Parameters Name="Launcher"></Parameters>
135
			<Parameters Name="Launcher"></Parameters>
136
			<Parameters Name="UseLauncher">False</Parameters>
136
			<Parameters Name="UseLauncher">False</Parameters>

Updated TurboDelphi/GluCompile.bdsproj.local Download diff

23
6
    <Transaction>2009-01-03 17:18:23.718.pas,X:\Gluton\TurboDelphi\Unit1.pas=X:\Gluton\Units\SimpleCore.pas</Transaction>
6
    <Transaction>2009-01-03 17:18:23.718.pas,X:\Gluton\TurboDelphi\Unit1.pas=X:\Gluton\Units\SimpleCore.pas</Transaction>
7
    <Transaction>2009-01-07 21:35:37.500.pas,X:\Gluton\TurboDelphi\Unit1.pas=X:\Gluton\Units\Compiler.pas</Transaction>
7
    <Transaction>2009-01-07 21:35:37.500.pas,X:\Gluton\TurboDelphi\Unit1.pas=X:\Gluton\Units\Compiler.pas</Transaction>
8
    <Transaction>2009-01-08
11:25:22.208.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\StateMachine.pas</Transaction>
8
    <Transaction>2009-01-08
11:25:22.208.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\StateMachine.pas</Transaction>
9
    <Transaction>2009-01-26 09:21:44.184.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\Linker.pas</Transaction>
10
    <Transaction>2009-01-26
10:01:32.451.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\Preprocessor.pas</Transaction>
11
    <Transaction>2009-01-29
12:34:48.018.pas,D:\Work\Borland\Gluton\TurboDelphi\Unit1.pas=D:\Work\Borland\Gluton\Units\DataCompiler.pas</Transaction>
9
  </Transactions>
12
  </Transactions>
10
</BorlandProject>
13
</BorlandProject>

Updated TurboDelphi/GluCompile.dpr Download diff

23
13
  Encjer in '..\Units\Encjer.pas',
13
  Encjer in '..\Units\Encjer.pas',
14
  Compiler in '..\Units\Compiler.pas',
14
  Compiler in '..\Units\Compiler.pas',
15
  StateMachine in '..\Units\StateMachine.pas',
15
  StateMachine in '..\Units\StateMachine.pas',
16
  SouthBridge in '..\Units\SouthBridge.pas';
16
  SouthBridge in '..\Units\SouthBridge.pas',
17
  Linker in '..\Units\Linker.pas',
18
  Preprocessor in '..\Units\Preprocessor.pas',
19
  DataCompiler in '..\Units\DataCompiler.pas',
20
  CoreDevices in '..\Units\CoreDevices.pas';
17
21
22
type
23
   TCompilerFlags = (cfDumpDebug);
24
18
var
25
var
26
   GLobalFlags: set of TCompilerFlags = [];
27
28
procedure ShowAndCleanMessages(const msg: TStringList);
29
var
30
   t: integer;
31
begin
32
   for t := 0 to msg.Count-1 do
33
      Writeln( msg[t] );
34
35
   msg.Clear;
36
end;
37
38
procedure BuildCodeSection(const secNr:integer; const sec: TPreprocesorSection;
39
   const messages: TStrings; const linker: TLinker);
40
var
41
   t: integer;
19
   en: TEntitier;
42
   en: TEntitier;
20
   t: integer;
21
   str: TStringStream;
22
   e: TEntity;
23
   comp: TGluCompiler;
43
   comp: TGluCompiler;
24
   outFile: TFileStream;
44
   lChunk: TLinkerChunk;
25
   inStr: TStrings;
45
26
   deb: TStrings;
46
   deb: TStrings;
47
   e: TEntity;
48
begin
49
   en := TEntitier.Create;
50
   deb := TStringList.Create;
51
   try
52
      //Jedzie encjer
53
      en.SrcLinesOffset := sec.SrcLineOffset;
54
      en.Parse(sec.DataStream);
55
      messages.add('Parser:');
56
      for t := 0 to en.Errors.Count-1 do
57
         messages.add(en.Errors[t]);
58
      messages.add(' Done.');
27
59
60
      if cfDumpDebug in GLobalFlags then begin
61
         //debug info
62
         for t := 0 to en.Entities.Count-1 do begin
63
            e := En.Entities[t];
64
            deb.Add( Format('%s: %s, %d', [EntityTypeToStr(e.fType), e.fSArg,
65
               e.fIArg]));
66
         end;
67
      end;
68
69
      //jedzie kompiler
70
      comp := TGluCompiler.Create(en, deb);
71
      comp.StartAddress := sec.StartAdd;
72
      lChunk := linker.AddChunk(lctCode, sec.Name);
73
      lChunk.StartAddress := sec.StartAdd;
74
      comp.Compile(lChunk.StorageStream);
75
76
      messages.add('Compiler:');
77
      for t := 0 to comp.Errors.Count-1 do
78
         messages.add(comp.Errors[t]);
79
      messages.add(' Done.');
80
81
      if cfDumpDebug in GLobalFlags then begin
82
         if sec.Name = '' then
83
            deb.SaveToFile('debugDump_sec_'+IntToStr(SecNr)+'.txt')
84
         else
85
            deb.SaveToFile('debugDump_'+sec.Name+'.txt');
86
      end;
87
      sec.ReleaseDataStream;
88
   finally
89
      FreeAndNil(en);
90
      FreeAndNil(deb);
91
      FreeAndNil(comp);
92
   end;
93
end;
94
95
procedure BuildDataSection(const secNr:integer; const sec: TPreprocesorSection;
96
   const messages: TStrings; const linker: TLinker);
97
var
98
   t: integer;
99
   en: TDataEntitier;
100
   comp: TGluDataCompiler;
101
   lChunk: TLinkerChunk;
102
begin
103
   en := TDataEntitier.Create;
104
   try
105
      //Jedzie encjer
106
      en.SrcLinesOffset := sec.SrcLineOffset;
107
      en.Parse(sec.DataStream);
108
      messages.add('Parser:');
109
      for t := 0 to en.Errors.Count-1 do
110
         messages.add(en.Errors[t]);
111
      messages.add(' Done.');
112
113
      //jedzie kompiler
114
      messages.add('Compiler:');
115
116
      comp := TGluDataCompiler.Create(en, messages);
117
      lChunk := linker.AddChunk(lctData, sec.Name);
118
      lChunk.StartAddress := sec.StartAdd;
119
      comp.Compile(lChunk.StorageStream);
120
121
      messages.add(' Done.');
122
123
      sec.ReleaseDataStream;
124
   finally
125
      FreeAndNil(en);
126
      FreeAndNil(comp);
127
   end;
128
end;
129
130
procedure BuildBinarySection(const secNr:integer; const sec: TPreprocesorSection;
131
   const messages: TStrings; const linker: TLinker);
132
var
133
   lChunk: TLinkerChunk;
134
begin
135
   try
136
      lChunk := linker.AddChunk(lctData, sec.Name);
137
      lChunk.StorageStream.CopyFrom(sec.DataStream, sec.DataStream.Size);
138
      lChunk.StartAddress := sec.StartAdd;
139
      sec.ReleaseDataStream;
140
   finally
141
142
   end;
143
end;
144
145
var
146
   t: integer;
147
   linker: TLinker;
148
   prep: TPreprocessor;
28
   srcFileName, dstFileName: string;
149
   srcFileName, dstFileName: string;
150
151
   messages: TStringList;
152
   inputStream: TFileStream;
29
begin
153
begin
154
   ReportMemoryLeaksOnShutDown := DebugHook <> 0;
30
   case ParamCount of
155
   case ParamCount of
31
      1: begin
156
      1: begin
32
         srcFileName := ParamStr(1);
157
         srcFileName := ParamStr(1);
...
...
37
         dstFileName := dstFileName + '.gcf';
162
         dstFileName := dstFileName + '.gcf';
38
      end;
163
      end;
39
164
40
      2: begin
165
      2..100: begin
41
         srcFileName := ParamStr(1);
166
         srcFileName := ParamStr(1);
42
         dstFileName := ParamStr(2);
167
         dstFileName := ParamStr(2);
168
         for t := 3 to ParamCount-1 do
169
            if ParamStr(t) = '-debugDump' then
170
               Include(GLobalFlags, cfDumpDebug);
43
      end;
171
      end;
44
      else begin
172
      else begin
45
         Writeln('Usage:');
173
         Writeln('Usage:');
46
         Writeln('   GluCompile.exe srcFilename [dstFilename]');
174
         Writeln('   GluCompile.exe srcFilename [dstFilename] [params]');
175
         Writeln('Params:');
176
         Writeln('  -debugDump - dump into files compiler verbose informations.');
47
         exit;
177
         exit;
48
      end;
178
      end;
49
   end;
179
   end;
50
180
51
   if FileExists(srcFileName) = false then begin
181
   if FileExists(srcFileName) = false then begin
52
      Writeln('Input file not exists:', srcFileName);
182
      Writeln('Input file not exists:'+ srcFileName);
53
      exit;
183
      exit;
54
   end;
184
   end;
185
   Writeln('GluCompile by The Tosters (http://thetosters.pl)');
186
   Writeln('   Preprocessor ver:' + PrepVer);
187
   Writeln('   Entitier ver:' + EntVer);
188
   Writeln('   Compiler ver:' + compVer);
189
   Writeln('   Linker ver:' + linkerVer);
190
   Writeln('Loading file:'+ srcFileName);
55
191
56
   ReportMemoryLeaksOnShutDown := DebugHook <> 0;
57
   inStr := TStringList.Create;
58
   inStr.LoadFromFile(srcFileName);
59
   Writeln('Loading file:', srcFileName);
60
   deb := TStringList.Create;
61
   str := TStringStream.Create('');
62
   str.WriteString(inStr.Text);
63
192
64
   str.Seek(0, soFromBeginning);
193
   inputStream := TFileStream.Create(srcFileName, fmOpenRead);
65
   en := TEntitier.Create;
194
   messages := TStringList.Create;
195
66
   try
196
   try
67
      en.Parse(str);
197
      //jedzie preprocesor
68
      Writeln('Parser:');
198
      prep := TPreprocessor.Create(inputStream, messages);
69
      for t := 0 to en.Errors.Count-1 do
199
      prep.Parse;
70
         Writeln(en.Errors[t]);
200
      ShowAndCleanMessages(messages);
71
      Writeln(' Done.');
201
      linker := TLinker.Create;
72
202
73
      for t := 0 to en.Entities.Count-1 do begin
203
      for t := 0 to prep.Count-1 do begin
74
         e := En.Entities[t];
204
         case prep.SectionType[t] of
75
         deb.Add( Format('%s: %s, %d', [EntityTypeToStr(e.fType), e.fSArg, e.fIArg]));
205
            pstUnknown: writeln(t+1, ': Unknown section type, skipping');
206
            pstCode: BuildCodeSection( t, prep.Section[t], messages, linker );
207
            pstData: BuildDataSection( t, prep.Section[t], messages, linker );
208
            pstBinary: BuildBinarySection( t, prep.Section[t], messages, linker );
209
         end;
210
         ShowAndCleanMessages(messages);
76
      end;
211
      end;
77
212
78
      comp := TGluCompiler.Create(en, deb);
213
      //jedzie linker
79
      outFile := TFileStream.Create(dstFileName, fmCreate);
214
      linker.WriteToFile(dstFileName, messages);
80
      comp.Compile(outFile);
215
      ShowAndCleanMessages(messages);
81
216
82
      Writeln('Compiler:');
83
      for t := 0 to comp.Errors.Count-1 do
84
         Writeln(comp.Errors[t]);
85
      Writeln(' Done.');
86
      Writeln('Writting output file:', dstFileName);
87
88
      deb.SaveToFile('debugDump.txt');
89
   finally
217
   finally
90
      if outFile <> nil then FreeAndNil(outFile);
218
      if linker <> nil then FreeAndNil(linker);
91
      if comp <> nil then FreeAndNil(comp);
219
      FreeAndNil(prep);
92
      FreeAndNil(str);
220
      FreeAndNil(messages);
93
      FreeAndNil(en);
221
      FreeAndNil(inputStream);
94
      FreeAndNil(deb);
95
      FreeAndNil(inStr);
96
   end;
222
   end;
223
   srcFileName := '';
224
   dstFileName := '';
225
   readln;
97
end.
226
end.

Added TurboDelphi/GPUOutputForm.dfm

Show contents

Added TurboDelphi/GPUOutputForm.pas

Show contents

Updated UML/GluCompile.uml Download diff

23
20
<XPD:OBJ name="Top" type="UMLCompositeState" guid="sk7l+sINMUe6Qd2pRaeKrwAA">
20
<XPD:OBJ name="Top" type="UMLCompositeState" guid="sk7l+sINMUe6Qd2pRaeKrwAA">
21
<XPD:ATTR name="Name" type="string">TOP</XPD:ATTR>
21
<XPD:ATTR name="Name" type="string">TOP</XPD:ATTR>
22
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
22
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
23
<XPD:ATTR name="#Subvertices" type="integer">17</XPD:ATTR>
23
<XPD:ATTR name="#Subvertices" type="integer">24</XPD:ATTR>
24
<XPD:OBJ name="Subvertices[0]" type="UMLCompositeState" guid="LHTzys3aTEOxUeJwy2jrkQAA">
24
<XPD:OBJ name="Subvertices[0]" type="UMLCompositeState" guid="LHTzys3aTEOxUeJwy2jrkQAA">
25
<XPD:ATTR name="Name" type="string">Text</XPD:ATTR>
25
<XPD:ATTR name="Name" type="string">Text</XPD:ATTR>
26
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
26
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
...
...
47
<XPD:OBJ name="Subvertices[1]" type="UMLSubmachineState" guid="cRzMrzlZAkmTPfgvSyWe/AAA">
47
<XPD:OBJ name="Subvertices[1]" type="UMLSubmachineState" guid="cRzMrzlZAkmTPfgvSyWe/AAA">
48
<XPD:ATTR name="Name" type="string">rawText</XPD:ATTR>
48
<XPD:ATTR name="Name" type="string">rawText</XPD:ATTR>
49
<XPD:REF name="ContainerState">LHTzys3aTEOxUeJwy2jrkQAA</XPD:REF>
49
<XPD:REF name="ContainerState">LHTzys3aTEOxUeJwy2jrkQAA</XPD:REF>
50
<XPD:ATTR name="#Outgoings" type="integer">1</XPD:ATTR>
50
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
51
<XPD:REF name="Views[0]">s3si5zO8lkyG/LL9HQ6rvAAA</XPD:REF>
52
<XPD:REF name="Views[1]">aX453XE6U0u7xke7XQrcRAAA</XPD:REF>
53
<XPD:ATTR name="#Outgoings" type="integer">3</XPD:ATTR>
51
<XPD:REF name="Outgoings[0]">CgKLG+dNe0KzOWotvw7ASwAA</XPD:REF>
54
<XPD:REF name="Outgoings[0]">CgKLG+dNe0KzOWotvw7ASwAA</XPD:REF>
55
<XPD:REF name="Outgoings[1]">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
56
<XPD:REF name="Outgoings[2]">xGRRqSt42028IARRk4a60wAA</XPD:REF>
57
<XPD:ATTR name="#Incomings" type="integer">2</XPD:ATTR>
58
<XPD:REF name="Incomings[0]">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
59
<XPD:REF name="Incomings[1]">xGRRqSt42028IARRk4a60wAA</XPD:REF>
52
</XPD:OBJ>
60
</XPD:OBJ>
53
</XPD:OBJ>
61
</XPD:OBJ>
54
<XPD:OBJ name="Subvertices[1]" type="UMLCompositeState" guid="zUdxevhEAUmWDBME23uS7AAA">
62
<XPD:OBJ name="Subvertices[1]" type="UMLCompositeState" guid="zUdxevhEAUmWDBME23uS7AAA">
...
...
90
<XPD:REF name="Outgoings[10]">sfoFVM5JvkeAyZYCgPvDWgAA</XPD:REF>
98
<XPD:REF name="Outgoings[10]">sfoFVM5JvkeAyZYCgPvDWgAA</XPD:REF>
91
<XPD:REF name="Outgoings[11]">xaG6kmKSPESWsScadf7YvAAA</XPD:REF>
99
<XPD:REF name="Outgoings[11]">xaG6kmKSPESWsScadf7YvAAA</XPD:REF>
92
<XPD:REF name="Outgoings[12]">nmNLBMi2JkOVmlcLfwAVqwAA</XPD:REF>
100
<XPD:REF name="Outgoings[12]">nmNLBMi2JkOVmlcLfwAVqwAA</XPD:REF>
93
<XPD:ATTR name="#Incomings" type="integer">5</XPD:ATTR>
101
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
94
<XPD:REF name="Incomings[0]">CDgBrzI/uUeNYLZmmkYffgAA</XPD:REF>
102
<XPD:REF name="Incomings[0]">CDgBrzI/uUeNYLZmmkYffgAA</XPD:REF>
95
<XPD:REF name="Incomings[1]">Rj6S5XnBBEK082gDzwCrKgAA</XPD:REF>
103
<XPD:REF name="Incomings[1]">Rj6S5XnBBEK082gDzwCrKgAA</XPD:REF>
96
<XPD:REF name="Incomings[2]">9QbZylvCj0a0rSyShovezgAA</XPD:REF>
104
<XPD:REF name="Incomings[2]">9QbZylvCj0a0rSyShovezgAA</XPD:REF>
97
<XPD:REF name="Incomings[3]">oBrvukF8G0ejgc/DAU2d4gAA</XPD:REF>
105
<XPD:REF name="Incomings[3]">oBrvukF8G0ejgc/DAU2d4gAA</XPD:REF>
98
<XPD:REF name="Incomings[4]">wWStxxL/Wkq9KaiwkezHFgAA</XPD:REF>
106
<XPD:REF name="Incomings[4]">wWStxxL/Wkq9KaiwkezHFgAA</XPD:REF>
107
<XPD:REF name="Incomings[5]">+Qh6MRFplkWFge2bkRctzwAA</XPD:REF>
99
</XPD:OBJ>
108
</XPD:OBJ>
100
<XPD:OBJ name="Subvertices[3]" type="UMLCompositeState" guid="STY99M0jsUOrVu3AIPW0wwAA">
109
<XPD:OBJ name="Subvertices[3]" type="UMLCompositeState" guid="STY99M0jsUOrVu3AIPW0wwAA">
101
<XPD:ATTR name="Name" type="string">ArgMarker</XPD:ATTR>
110
<XPD:ATTR name="Name" type="string">ArgMarker</XPD:ATTR>
...
...
130
<XPD:REF name="Views[9]">ER+FVZ7QT0axx65s+VBRlAAA</XPD:REF>
139
<XPD:REF name="Views[9]">ER+FVZ7QT0axx65s+VBRlAAA</XPD:REF>
131
<XPD:REF name="Views[10]">1JqBgRrBo06wO6G+LqE8iwAA</XPD:REF>
140
<XPD:REF name="Views[10]">1JqBgRrBo06wO6G+LqE8iwAA</XPD:REF>
132
<XPD:REF name="Views[11]">h2xsxe/Wu0iCYjKi9ruQZQAA</XPD:REF>
141
<XPD:REF name="Views[11]">h2xsxe/Wu0iCYjKi9ruQZQAA</XPD:REF>
133
<XPD:ATTR name="#Outgoings" type="integer">7</XPD:ATTR>
142
<XPD:ATTR name="#Outgoings" type="integer">8</XPD:ATTR>
134
<XPD:REF name="Outgoings[0]">Etni4FOJIUq1Jr2w+xf+xgAA</XPD:REF>
143
<XPD:REF name="Outgoings[0]">Etni4FOJIUq1Jr2w+xf+xgAA</XPD:REF>
135
<XPD:REF name="Outgoings[1]">Q6v+UUoENEe33bOsvwvpIwAA</XPD:REF>
144
<XPD:REF name="Outgoings[1]">Q6v+UUoENEe33bOsvwvpIwAA</XPD:REF>
136
<XPD:REF name="Outgoings[2]">h5VjsEhIp0mstL2rd9czMgAA</XPD:REF>
145
<XPD:REF name="Outgoings[2]">h5VjsEhIp0mstL2rd9czMgAA</XPD:REF>
...
...
138
<XPD:REF name="Outgoings[4]">Sb2ai0J+JEK0AAtF2WHZlAAA</XPD:REF>
147
<XPD:REF name="Outgoings[4]">Sb2ai0J+JEK0AAtF2WHZlAAA</XPD:REF>
139
<XPD:REF name="Outgoings[5]">Y1Uq9X6HR0S5/BH4w3MblAAA</XPD:REF>
148
<XPD:REF name="Outgoings[5]">Y1Uq9X6HR0S5/BH4w3MblAAA</XPD:REF>
140
<XPD:REF name="Outgoings[6]">SyP9314BAE+Lfp8zc3IdmQAA</XPD:REF>
149
<XPD:REF name="Outgoings[6]">SyP9314BAE+Lfp8zc3IdmQAA</XPD:REF>
141
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
150
<XPD:REF name="Outgoings[7]">Ys2kkLaDDU2pjMeeiHnQSwAA</XPD:REF>
151
<XPD:ATTR name="#Incomings" type="integer">7</XPD:ATTR>
142
<XPD:REF name="Incomings[0]">mtA7rfYO+0ufzn5SulpP9QAA</XPD:REF>
152
<XPD:REF name="Incomings[0]">mtA7rfYO+0ufzn5SulpP9QAA</XPD:REF>
143
<XPD:REF name="Incomings[1]">kZ6m027Crk6IqCSHCRdU7gAA</XPD:REF>
153
<XPD:REF name="Incomings[1]">kZ6m027Crk6IqCSHCRdU7gAA</XPD:REF>
144
<XPD:REF name="Incomings[2]">kns5tyA960678SyX2q3cIAAA</XPD:REF>
154
<XPD:REF name="Incomings[2]">kns5tyA960678SyX2q3cIAAA</XPD:REF>
145
<XPD:REF name="Incomings[3]">E+HvGPHzmkaQcXZYeQmOjgAA</XPD:REF>
155
<XPD:REF name="Incomings[3]">E+HvGPHzmkaQcXZYeQmOjgAA</XPD:REF>
146
<XPD:REF name="Incomings[4]">ggjNjMWpgUOUy2fz+F2DHQAA</XPD:REF>
156
<XPD:REF name="Incomings[4]">ggjNjMWpgUOUy2fz+F2DHQAA</XPD:REF>
147
<XPD:REF name="Incomings[5]">d3uq3LLK7U2gJjxcPQDBiwAA</XPD:REF>
157
<XPD:REF name="Incomings[5]">d3uq3LLK7U2gJjxcPQDBiwAA</XPD:REF>
158
<XPD:REF name="Incomings[6]">swnYmFb8QU+AQ0uocGx5egAA</XPD:REF>
148
</XPD:OBJ>
159
</XPD:OBJ>
149
<XPD:OBJ name="Subvertices[5]" type="UMLCompositeState" guid="So68m73ZjUeNQ5u/IOV9cgAA">
160
<XPD:OBJ name="Subvertices[5]" type="UMLCompositeState" guid="So68m73ZjUeNQ5u/IOV9cgAA">
150
<XPD:ATTR name="Name" type="string">Liczba hex</XPD:ATTR>
161
<XPD:ATTR name="Name" type="string">Liczba hex</XPD:ATTR>
...
...
162
<XPD:REF name="Views[9]">aAfXorBOoUyqrcCcyIw/0AAA</XPD:REF>
173
<XPD:REF name="Views[9]">aAfXorBOoUyqrcCcyIw/0AAA</XPD:REF>
163
<XPD:REF name="Views[10]">gG58PbtTTEqb5/9Rolh7aQAA</XPD:REF>
174
<XPD:REF name="Views[10]">gG58PbtTTEqb5/9Rolh7aQAA</XPD:REF>
164
<XPD:REF name="Views[11]">R5PZoZfsH0OjIhhFxqwcjgAA</XPD:REF>
175
<XPD:REF name="Views[11]">R5PZoZfsH0OjIhhFxqwcjgAA</XPD:REF>
165
<XPD:ATTR name="#Outgoings" type="integer">8</XPD:ATTR>
176
<XPD:ATTR name="#Outgoings" type="integer">9</XPD:ATTR>
166
<XPD:REF name="Outgoings[0]">W0ob5gAmR0qM+KCfbG5MTwAA</XPD:REF>
177
<XPD:REF name="Outgoings[0]">W0ob5gAmR0qM+KCfbG5MTwAA</XPD:REF>
167
<XPD:REF name="Outgoings[1]">6o0l0/coTEuawymcuau2aQAA</XPD:REF>
178
<XPD:REF name="Outgoings[1]">6o0l0/coTEuawymcuau2aQAA</XPD:REF>
168
<XPD:REF name="Outgoings[2]">X2UOha/8tU2Yr+AEvdKAFwAA</XPD:REF>
179
<XPD:REF name="Outgoings[2]">X2UOha/8tU2Yr+AEvdKAFwAA</XPD:REF>
...
...
171
<XPD:REF name="Outgoings[5]">6itoaBEcBUCM4bkNw0iUKQAA</XPD:REF>
182
<XPD:REF name="Outgoings[5]">6itoaBEcBUCM4bkNw0iUKQAA</XPD:REF>
172
<XPD:REF name="Outgoings[6]">B76jWtDPR0O2bETabeeKlgAA</XPD:REF>
183
<XPD:REF name="Outgoings[6]">B76jWtDPR0O2bETabeeKlgAA</XPD:REF>
173
<XPD:REF name="Outgoings[7]">kmAZi6svvEOkqvVcD79ENQAA</XPD:REF>
184
<XPD:REF name="Outgoings[7]">kmAZi6svvEOkqvVcD79ENQAA</XPD:REF>
174
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
185
<XPD:REF name="Outgoings[8]">s2eB4srbM0CyGGbVNivu9gAA</XPD:REF>
186
<XPD:ATTR name="#Incomings" type="integer">7</XPD:ATTR>
175
<XPD:REF name="Incomings[0]">z6NBlhuWaUKNdmAOj1ldMAAA</XPD:REF>
187
<XPD:REF name="Incomings[0]">z6NBlhuWaUKNdmAOj1ldMAAA</XPD:REF>
176
<XPD:REF name="Incomings[1]">pDdDZfFBsUm5FojXZUGuYAAA</XPD:REF>
188
<XPD:REF name="Incomings[1]">pDdDZfFBsUm5FojXZUGuYAAA</XPD:REF>
177
<XPD:REF name="Incomings[2]">qMHIwmZv2EOSNq9Pgc+7NQAA</XPD:REF>
189
<XPD:REF name="Incomings[2]">qMHIwmZv2EOSNq9Pgc+7NQAA</XPD:REF>
178
<XPD:REF name="Incomings[3]">fXfKWOsFJU2LNLY0wM1UOAAA</XPD:REF>
190
<XPD:REF name="Incomings[3]">fXfKWOsFJU2LNLY0wM1UOAAA</XPD:REF>
179
<XPD:REF name="Incomings[4]">5+L9OkaCSkqTLBhha3uoawAA</XPD:REF>
191
<XPD:REF name="Incomings[4]">5+L9OkaCSkqTLBhha3uoawAA</XPD:REF>
180
<XPD:REF name="Incomings[5]">J7Z9uZTY/kOilkmSeMDkQAAA</XPD:REF>
192
<XPD:REF name="Incomings[5]">J7Z9uZTY/kOilkmSeMDkQAAA</XPD:REF>
193
<XPD:REF name="Incomings[6]">NVtbuFkt0EqmH79rS7EYqwAA</XPD:REF>
181
</XPD:OBJ>
194
</XPD:OBJ>
182
<XPD:OBJ name="Subvertices[6]" type="UMLCompositeState" guid="13G1EXtJwU+8d28PnL4OVwAA">
195
<XPD:OBJ name="Subvertices[6]" type="UMLCompositeState" guid="13G1EXtJwU+8d28PnL4OVwAA">
183
<XPD:ATTR name="Name" type="string">Liczba bin</XPD:ATTR>
196
<XPD:ATTR name="Name" type="string">Liczba bin</XPD:ATTR>
...
...
195
<XPD:REF name="Views[9]">QmODXv5mLkSNK260Aa/IGwAA</XPD:REF>
208
<XPD:REF name="Views[9]">QmODXv5mLkSNK260Aa/IGwAA</XPD:REF>
196
<XPD:REF name="Views[10]">nkSUpEgZHEWi9PaQ1s5TnAAA</XPD:REF>
209
<XPD:REF name="Views[10]">nkSUpEgZHEWi9PaQ1s5TnAAA</XPD:REF>
197
<XPD:REF name="Views[11]">COx09HdGBke3pLtf94TMBgAA</XPD:REF>
210
<XPD:REF name="Views[11]">COx09HdGBke3pLtf94TMBgAA</XPD:REF>
198
<XPD:ATTR name="#Outgoings" type="integer">8</XPD:ATTR>
211
<XPD:ATTR name="#Outgoings" type="integer">9</XPD:ATTR>
199
<XPD:REF name="Outgoings[0]">mbbYomZJI0OwxuvcS8nuHQAA</XPD:REF>
212
<XPD:REF name="Outgoings[0]">mbbYomZJI0OwxuvcS8nuHQAA</XPD:REF>
200
<XPD:REF name="Outgoings[1]">EyEz6/nhB0ClhybPEjy3eAAA</XPD:REF>
213
<XPD:REF name="Outgoings[1]">EyEz6/nhB0ClhybPEjy3eAAA</XPD:REF>
201
<XPD:REF name="Outgoings[2]">o/n4NaE8b0q023dj94SZzAAA</XPD:REF>
214
<XPD:REF name="Outgoings[2]">o/n4NaE8b0q023dj94SZzAAA</XPD:REF>
...
...
204
<XPD:REF name="Outgoings[5]">zLgf4U7M4U+jeMyWWCx5mQAA</XPD:REF>
217
<XPD:REF name="Outgoings[5]">zLgf4U7M4U+jeMyWWCx5mQAA</XPD:REF>
205
<XPD:REF name="Outgoings[6]">7U7rGCgLAUi5YgOeJWW4PwAA</XPD:REF>
218
<XPD:REF name="Outgoings[6]">7U7rGCgLAUi5YgOeJWW4PwAA</XPD:REF>
206
<XPD:REF name="Outgoings[7]">52WIdUoR1EayHmoRytHIDgAA</XPD:REF>
219
<XPD:REF name="Outgoings[7]">52WIdUoR1EayHmoRytHIDgAA</XPD:REF>
207
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
220
<XPD:REF name="Outgoings[8]">YwhBOn43Aki7+xlRJw9siAAA</XPD:REF>
221
<XPD:ATTR name="#Incomings" type="integer">7</XPD:ATTR>
208
<XPD:REF name="Incomings[0]">aKv44z/oeUCM1Fj+thtG/AAA</XPD:REF>
222
<XPD:REF name="Incomings[0]">aKv44z/oeUCM1Fj+thtG/AAA</XPD:REF>
209
<XPD:REF name="Incomings[1]">MIb5iij1CEGuZgJFIySsqAAA</XPD:REF>
223
<XPD:REF name="Incomings[1]">MIb5iij1CEGuZgJFIySsqAAA</XPD:REF>
210
<XPD:REF name="Incomings[2]">hQITOokShkSP4W32WBIw5gAA</XPD:REF>
224
<XPD:REF name="Incomings[2]">hQITOokShkSP4W32WBIw5gAA</XPD:REF>
211
<XPD:REF name="Incomings[3]">u0ZnkI1vjEisPxx5bKj8uQAA</XPD:REF>
225
<XPD:REF name="Incomings[3]">u0ZnkI1vjEisPxx5bKj8uQAA</XPD:REF>
212
<XPD:REF name="Incomings[4]">vv4SbqSekEK7ewd7R3ElCQAA</XPD:REF>
226
<XPD:REF name="Incomings[4]">vv4SbqSekEK7ewd7R3ElCQAA</XPD:REF>
213
<XPD:REF name="Incomings[5]">M4PNi23qrU6WxSBlaJzDaAAA</XPD:REF>
227
<XPD:REF name="Incomings[5]">M4PNi23qrU6WxSBlaJzDaAAA</XPD:REF>
228
<XPD:REF name="Incomings[6]">GJACDIECT02Mu3vnI2SpDQAA</XPD:REF>
214
</XPD:OBJ>
229
</XPD:OBJ>
215
<XPD:OBJ name="Subvertices[7]" type="UMLCompositeState" guid="ka4AgEmis0+2oy4Il5RZCwAA">
230
<XPD:OBJ name="Subvertices[7]" type="UMLCompositeState" guid="ka4AgEmis0+2oy4Il5RZCwAA">
216
<XPD:ATTR name="Name" type="string">bracket (</XPD:ATTR>
231
<XPD:ATTR name="Name" type="string">bracket (</XPD:ATTR>
...
...
269
<XPD:OBJ name="Subvertices[9]" type="UMLCompositeState" guid="ivNQUB73jkqNE0REPaFYSAAA">
284
<XPD:OBJ name="Subvertices[9]" type="UMLCompositeState" guid="ivNQUB73jkqNE0REPaFYSAAA">
270
<XPD:ATTR name="Name" type="string">Minus</XPD:ATTR>
285
<XPD:ATTR name="Name" type="string">Minus</XPD:ATTR>
271
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
286
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
272
<XPD:ATTR name="#Views" type="integer">6</XPD:ATTR>
287
<XPD:ATTR name="#Views" type="integer">8</XPD:ATTR>
273
<XPD:REF name="Views[0]">xhlWfoH5b0WVsHhwWxyNjQAA</XPD:REF>
288
<XPD:REF name="Views[0]">xhlWfoH5b0WVsHhwWxyNjQAA</XPD:REF>
274
<XPD:REF name="Views[1]">67QTgVeomUajkD6MOBMj3gAA</XPD:REF>
289
<XPD:REF name="Views[1]">67QTgVeomUajkD6MOBMj3gAA</XPD:REF>
275
<XPD:REF name="Views[2]">V+97yucEI0S9AmJDcBdzOAAA</XPD:REF>
290
<XPD:REF name="Views[2]">V+97yucEI0S9AmJDcBdzOAAA</XPD:REF>
276
<XPD:REF name="Views[3]">NCM2bH1bKU+IsGg9RsKbyQAA</XPD:REF>
291
<XPD:REF name="Views[3]">NCM2bH1bKU+IsGg9RsKbyQAA</XPD:REF>
277
<XPD:REF name="Views[4]">50JV5NW9ok2gQdXXPgKWlQAA</XPD:REF>
292
<XPD:REF name="Views[4]">50JV5NW9ok2gQdXXPgKWlQAA</XPD:REF>
278
<XPD:REF name="Views[5]">Vo+kOipUkE2rTTpU5efQ4AAA</XPD:REF>
293
<XPD:REF name="Views[5]">Vo+kOipUkE2rTTpU5efQ4AAA</XPD:REF>
279
<XPD:ATTR name="#Outgoings" type="integer">6</XPD:ATTR>
294
<XPD:REF name="Views[6]">JgA/DAP2F0GVl2dsrHdeagAA</XPD:REF>
295
<XPD:REF name="Views[7]">O95WvPIeHkidMOC5cAUMDAAA</XPD:REF>
296
<XPD:ATTR name="#Outgoings" type="integer">7</XPD:ATTR>
280
<XPD:REF name="Outgoings[0]">kns5tyA960678SyX2q3cIAAA</XPD:REF>
297
<XPD:REF name="Outgoings[0]">kns5tyA960678SyX2q3cIAAA</XPD:REF>
281
<XPD:REF name="Outgoings[1]">qMHIwmZv2EOSNq9Pgc+7NQAA</XPD:REF>
298
<XPD:REF name="Outgoings[1]">qMHIwmZv2EOSNq9Pgc+7NQAA</XPD:REF>
282
<XPD:REF name="Outgoings[2]">hQITOokShkSP4W32WBIw5gAA</XPD:REF>
299
<XPD:REF name="Outgoings[2]">hQITOokShkSP4W32WBIw5gAA</XPD:REF>
283
<XPD:REF name="Outgoings[3]">E+HvGPHzmkaQcXZYeQmOjgAA</XPD:REF>
300
<XPD:REF name="Outgoings[3]">E+HvGPHzmkaQcXZYeQmOjgAA</XPD:REF>
284
<XPD:REF name="Outgoings[4]">fXfKWOsFJU2LNLY0wM1UOAAA</XPD:REF>
301
<XPD:REF name="Outgoings[4]">fXfKWOsFJU2LNLY0wM1UOAAA</XPD:REF>
285
<XPD:REF name="Outgoings[5]">u0ZnkI1vjEisPxx5bKj8uQAA</XPD:REF>
302
<XPD:REF name="Outgoings[5]">u0ZnkI1vjEisPxx5bKj8uQAA</XPD:REF>
286
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
303
<XPD:REF name="Outgoings[6]">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
304
<XPD:ATTR name="#Incomings" type="integer">7</XPD:ATTR>
287
<XPD:REF name="Incomings[0]">YOLkICXxoE6VDPmcfx1EQQAA</XPD:REF>
305
<XPD:REF name="Incomings[0]">YOLkICXxoE6VDPmcfx1EQQAA</XPD:REF>
288
<XPD:REF name="Incomings[1]">pYYQOx3X+kKbjFP/48On2wAA</XPD:REF>
306
<XPD:REF name="Incomings[1]">pYYQOx3X+kKbjFP/48On2wAA</XPD:REF>
289
<XPD:REF name="Incomings[2]">FTW7WVDNeEOx4u0nmgYg3QAA</XPD:REF>
307
<XPD:REF name="Incomings[2]">FTW7WVDNeEOx4u0nmgYg3QAA</XPD:REF>
290
<XPD:REF name="Incomings[3]">sfoFVM5JvkeAyZYCgPvDWgAA</XPD:REF>
308
<XPD:REF name="Incomings[3]">MtSg6/9QCUKlfHTl00PL+gAA</XPD:REF>
291
<XPD:REF name="Incomings[4]">MtSg6/9QCUKlfHTl00PL+gAA</XPD:REF>
309
<XPD:REF name="Incomings[4]">EniTot2Sa0mZI9OyIwn9mQAA</XPD:REF>
292
<XPD:REF name="Incomings[5]">EniTot2Sa0mZI9OyIwn9mQAA</XPD:REF>
310
<XPD:REF name="Incomings[5]">sfoFVM5JvkeAyZYCgPvDWgAA</XPD:REF>
311
<XPD:REF name="Incomings[6]">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
293
</XPD:OBJ>
312
</XPD:OBJ>
294
<XPD:OBJ name="Subvertices[10]" type="UMLCompositeState" guid="kPTCmUddM0mvyaaBBpA4UQAA">
313
<XPD:OBJ name="Subvertices[10]" type="UMLCompositeState" guid="kPTCmUddM0mvyaaBBpA4UQAA">
295
<XPD:ATTR name="Name" type="string">separator</XPD:ATTR>
314
<XPD:ATTR name="Name" type="string">separator</XPD:ATTR>
296
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
315
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
297
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
316
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
298
<XPD:REF name="Views[0]">XY/MEr5NtkGFggNomTXD5QAA</XPD:REF>
317
<XPD:REF name="Views[0]">XY/MEr5NtkGFggNomTXD5QAA</XPD:REF>
299
<XPD:REF name="Views[1]">zykA0fQ5R0m2A6U5CdUpOAAA</XPD:REF>
318
<XPD:REF name="Views[1]">zykA0fQ5R0m2A6U5CdUpOAAA</XPD:REF>
300
<XPD:ATTR name="#Outgoings" type="integer">7</XPD:ATTR>
319
<XPD:REF name="Views[2]">h2IXtTKJt0O8PLdMNS+rqgAA</XPD:REF>
320
<XPD:REF name="Views[3]">fNXR2fJnnkSZmpso6SExfAAA</XPD:REF>
321
<XPD:ATTR name="#Outgoings" type="integer">9</XPD:ATTR>
301
<XPD:REF name="Outgoings[0]">XVKJGHj/fkuSqRaw0frLeQAA</XPD:REF>
322
<XPD:REF name="Outgoings[0]">XVKJGHj/fkuSqRaw0frLeQAA</XPD:REF>
302
<XPD:REF name="Outgoings[1]">S8GnHUEKhEi6zO/EcL9q/AAA</XPD:REF>
323
<XPD:REF name="Outgoings[1]">S8GnHUEKhEi6zO/EcL9q/AAA</XPD:REF>
303
<XPD:REF name="Outgoings[2]">hMDbCIHmyEq8bbqpmN7kogAA</XPD:REF>
324
<XPD:REF name="Outgoings[2]">hMDbCIHmyEq8bbqpmN7kogAA</XPD:REF>
...
...
305
<XPD:REF name="Outgoings[4]">BnnGAHMfrEm3zAbqXkwcugAA</XPD:REF>
326
<XPD:REF name="Outgoings[4]">BnnGAHMfrEm3zAbqXkwcugAA</XPD:REF>
306
<XPD:REF name="Outgoings[5]">1RgWW85SWEKRkoMHgucBFAAA</XPD:REF>
327
<XPD:REF name="Outgoings[5]">1RgWW85SWEKRkoMHgucBFAAA</XPD:REF>
307
<XPD:REF name="Outgoings[6]">FTW7WVDNeEOx4u0nmgYg3QAA</XPD:REF>
328
<XPD:REF name="Outgoings[6]">FTW7WVDNeEOx4u0nmgYg3QAA</XPD:REF>
308
<XPD:ATTR name="#Incomings" type="integer">12</XPD:ATTR>
329
<XPD:REF name="Outgoings[7]">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
330
<XPD:REF name="Outgoings[8]">T6hTYD4uRkm8gA3bCpEbBQAA</XPD:REF>
331
<XPD:ATTR name="#Incomings" type="integer">13</XPD:ATTR>
309
<XPD:REF name="Incomings[0]">Etni4FOJIUq1Jr2w+xf+xgAA</XPD:REF>
332
<XPD:REF name="Incomings[0]">Etni4FOJIUq1Jr2w+xf+xgAA</XPD:REF>
310
<XPD:REF name="Incomings[1]">W0ob5gAmR0qM+KCfbG5MTwAA</XPD:REF>
333
<XPD:REF name="Incomings[1]">W0ob5gAmR0qM+KCfbG5MTwAA</XPD:REF>
311
<XPD:REF name="Incomings[2]">mbbYomZJI0OwxuvcS8nuHQAA</XPD:REF>
334
<XPD:REF name="Incomings[2]">mbbYomZJI0OwxuvcS8nuHQAA</XPD:REF>
...
...
318
<XPD:REF name="Incomings[9]">6itoaBEcBUCM4bkNw0iUKQAA</XPD:REF>
341
<XPD:REF name="Incomings[9]">6itoaBEcBUCM4bkNw0iUKQAA</XPD:REF>
319
<XPD:REF name="Incomings[10]">zLgf4U7M4U+jeMyWWCx5mQAA</XPD:REF>
342
<XPD:REF name="Incomings[10]">zLgf4U7M4U+jeMyWWCx5mQAA</XPD:REF>
320
<XPD:REF name="Incomings[11]">ekqpldwB10Wet8S5XRCoxwAA</XPD:REF>
343
<XPD:REF name="Incomings[11]">ekqpldwB10Wet8S5XRCoxwAA</XPD:REF>
344
<XPD:REF name="Incomings[12]">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
321
</XPD:OBJ>
345
</XPD:OBJ>
322
<XPD:OBJ name="Subvertices[11]" type="UMLPseudostate" guid="RgGjk3QhuEe49jtqJodYWgAA">
346
<XPD:OBJ name="Subvertices[11]" type="UMLPseudostate" guid="RgGjk3QhuEe49jtqJodYWgAA">
323
<XPD:ATTR name="Name" type="string">None</XPD:ATTR>
347
<XPD:ATTR name="Name" type="string">None</XPD:ATTR>
...
...
452
<XPD:ATTR name="#Incomings" type="integer">1</XPD:ATTR>
476
<XPD:ATTR name="#Incomings" type="integer">1</XPD:ATTR>
453
<XPD:REF name="Incomings[0]">VsZYuprSQUK+Aw4Xp8PzNQAA</XPD:REF>
477
<XPD:REF name="Incomings[0]">VsZYuprSQUK+Aw4Xp8PzNQAA</XPD:REF>
454
</XPD:OBJ>
478
</XPD:OBJ>
479
<XPD:OBJ name="Subvertices[17]" type="UMLPseudostate" guid="+Rtnrn3km0qcjHJTiMV/UgAA">
480
<XPD:ATTR name="Name" type="string">Initial1</XPD:ATTR>
481
<XPD:ATTR name="PseudostateKind" type="UMLPseudostateKind">pkInitial</XPD:ATTR>
482
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
483
<XPD:ATTR name="#Views" type="integer">1</XPD:ATTR>
484
<XPD:REF name="Views[0]">A+P+wcZSmE+KFNQ9ziuXjwAA</XPD:REF>
485
<XPD:ATTR name="#Outgoings" type="integer">2</XPD:ATTR>
486
<XPD:REF name="Outgoings[0]">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
487
<XPD:REF name="Outgoings[1]">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
455
</XPD:OBJ>
488
</XPD:OBJ>
456
<XPD:ATTR name="#OwnedDiagrams" type="integer">3</XPD:ATTR>
489
<XPD:OBJ name="Subvertices[18]" type="UMLCompositeState" guid="pha8f7KtxEiBBp48XDe5PwAA">
490
<XPD:ATTR name="Name" type="string">db command</XPD:ATTR>
491
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
492
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
493
<XPD:REF name="Views[0]">9tDDuDtPCEiYD7L/8RTulAAA</XPD:REF>
494
<XPD:REF name="Views[1]">uyqiRv3yjEyxhT8p84Zo+QAA</XPD:REF>
495
<XPD:ATTR name="#Outgoings" type="integer">2</XPD:ATTR>
496
<XPD:REF name="Outgoings[0]">+Qh6MRFplkWFge2bkRctzwAA</XPD:REF>
497
<XPD:REF name="Outgoings[1]">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
498
<XPD:ATTR name="#Incomings" type="integer">1</XPD:ATTR>
499
<XPD:REF name="Incomings[0]">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
500
</XPD:OBJ>
501
<XPD:OBJ name="Subvertices[19]" type="UMLCompositeState" guid="y2W8lwp6GkOeGT+gGo1vQgAA">
502
<XPD:ATTR name="Name" type="string">dbt command</XPD:ATTR>
503
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
504
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
505
<XPD:REF name="Views[0]">2vR7EDOYLk2Vw/wKZXhaiwAA</XPD:REF>
506
<XPD:REF name="Views[1]">mwcOCPOSxk6iNV6kUREbwgAA</XPD:REF>
507
<XPD:ATTR name="#Outgoings" type="integer">1</XPD:ATTR>
508
<XPD:REF name="Outgoings[0]">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
509
<XPD:ATTR name="#Incomings" type="integer">1</XPD:ATTR>
510
<XPD:REF name="Incomings[0]">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
511
</XPD:OBJ>
512
<XPD:OBJ name="Subvertices[20]" type="UMLPseudostate" guid="sB+mBRitCUSrY1UmC4bzxAAA">
513
<XPD:ATTR name="Name" type="string">Initial2</XPD:ATTR>
514
<XPD:ATTR name="PseudostateKind" type="UMLPseudostateKind">pkInitial</XPD:ATTR>
515
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
516
<XPD:ATTR name="#Views" type="integer">1</XPD:ATTR>
517
<XPD:REF name="Views[0]">HQm6oGwJzEK7oOejVqybiAAA</XPD:REF>
518
<XPD:ATTR name="#Outgoings" type="integer">5</XPD:ATTR>
519
<XPD:REF name="Outgoings[0]">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
520
<XPD:REF name="Outgoings[1]">swnYmFb8QU+AQ0uocGx5egAA</XPD:REF>
521
<XPD:REF name="Outgoings[2]">NVtbuFkt0EqmH79rS7EYqwAA</XPD:REF>
522
<XPD:REF name="Outgoings[3]">GJACDIECT02Mu3vnI2SpDQAA</XPD:REF>
523
<XPD:REF name="Outgoings[4]">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
524
<XPD:ATTR name="#Incomings" type="integer">2</XPD:ATTR>
525
<XPD:REF name="Incomings[0]">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
526
<XPD:REF name="Incomings[1]">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
527
</XPD:OBJ>
528
<XPD:OBJ name="Subvertices[21]" type="UMLCompositeState" guid="xeGnAWrSbkKWPAN4WZ6zjgAA">
529
<XPD:ATTR name="Name" type="string">SizeSepec</XPD:ATTR>
530
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
531
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
532
<XPD:REF name="Views[0]">+99ALHoD3ESIbHQQLRciRgAA</XPD:REF>
533
<XPD:REF name="Views[1]">TQlhJAmoXEmtTVzRqQj68AAA</XPD:REF>
534
<XPD:ATTR name="#Outgoings" type="integer">1</XPD:ATTR>
535
<XPD:REF name="Outgoings[0]">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
536
<XPD:ATTR name="#Incomings" type="integer">1</XPD:ATTR>
537
<XPD:REF name="Incomings[0]">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
538
</XPD:OBJ>
539
<XPD:OBJ name="Subvertices[22]" type="UMLCompositeState" guid="0fM/mZ5HKE2f+lrVD+4HoQAA">
540
<XPD:ATTR name="Name" type="string">EndLine</XPD:ATTR>
541
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
542
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
543
<XPD:REF name="Views[0]">kOhqt0eJ00uDdCYcstX59AAA</XPD:REF>
544
<XPD:REF name="Views[1]">7ewSYZGC60OlglU7Lj0hCwAA</XPD:REF>
545
<XPD:ATTR name="#Incomings" type="integer">6</XPD:ATTR>
546
<XPD:REF name="Incomings[0]">T6hTYD4uRkm8gA3bCpEbBQAA</XPD:REF>
547
<XPD:REF name="Incomings[1]">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
548
<XPD:REF name="Incomings[2]">Ys2kkLaDDU2pjMeeiHnQSwAA</XPD:REF>
549
<XPD:REF name="Incomings[3]">s2eB4srbM0CyGGbVNivu9gAA</XPD:REF>
550
<XPD:REF name="Incomings[4]">YwhBOn43Aki7+xlRJw9siAAA</XPD:REF>
551
<XPD:REF name="Incomings[5]">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
552
</XPD:OBJ>
553
<XPD:OBJ name="Subvertices[23]" type="UMLCompositeState" guid="Tb030w8LaUCrsa87BicFzQAA">
554
<XPD:ATTR name="Name" type="string">Digit</XPD:ATTR>
555
<XPD:REF name="ContainerState">sk7l+sINMUe6Qd2pRaeKrwAA</XPD:REF>
556
<XPD:ATTR name="#Views" type="integer">2</XPD:ATTR>
557
<XPD:REF name="Views[0]">swDlaHWYjk6sxWU4hSTlNgAA</XPD:REF>
558
<XPD:REF name="Views[1]">yJS8wTUSGUCc7grAWAT9QAAA</XPD:REF>
559
<XPD:ATTR name="#Outgoings" type="integer">2</XPD:ATTR>
560
<XPD:REF name="Outgoings[0]">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
561
<XPD:REF name="Outgoings[1]">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
562
<XPD:ATTR name="#Incomings" type="integer">2</XPD:ATTR>
563
<XPD:REF name="Incomings[0]">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
564
<XPD:REF name="Incomings[1]">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
565
</XPD:OBJ>
566
</XPD:OBJ>
567
<XPD:ATTR name="#OwnedDiagrams" type="integer">4</XPD:ATTR>
457
<XPD:OBJ name="OwnedDiagrams[0]" type="UMLStatechartDiagram" guid="TGtJRqaB7EayxD8jqD/mAQAA">
568
<XPD:OBJ name="OwnedDiagrams[0]" type="UMLStatechartDiagram" guid="TGtJRqaB7EayxD8jqD/mAQAA">
458
<XPD:ATTR name="Name" type="string">Src Operand flow</XPD:ATTR>
569
<XPD:ATTR name="Name" type="string">Src Operand flow</XPD:ATTR>
459
<XPD:REF name="DiagramOwner">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
570
<XPD:REF name="DiagramOwner">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
...
...
3982
</XPD:OBJ>
4093
</XPD:OBJ>
3983
</XPD:OBJ>
4094
</XPD:OBJ>
3984
</XPD:OBJ>
4095
</XPD:OBJ>
3985
<XPD:ATTR name="#Transitions" type="integer">94</XPD:ATTR>
4096
<XPD:OBJ name="OwnedDiagrams[3]" type="UMLStatechartDiagram" guid="ns2NY4p6TUSPvzrsPC923gAA">
4097
<XPD:ATTR name="Name" type="string">DataCompiler</XPD:ATTR>
4098
<XPD:REF name="DiagramOwner">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
4099
<XPD:OBJ name="DiagramView" type="UMLStatechartDiagramView" guid="akLICCSuJE+Zt94RmVDg3wAA">
4100
<XPD:REF name="Diagram">ns2NY4p6TUSPvzrsPC923gAA</XPD:REF>
4101
<XPD:ATTR name="#OwnedViews" type="integer">22</XPD:ATTR>
4102
<XPD:OBJ name="OwnedViews[0]" type="UMLPseudostateView" guid="A+P+wcZSmE+KFNQ9ziuXjwAA">
4103
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4104
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4105
<XPD:ATTR name="Left" type="integer">84</XPD:ATTR>
4106
<XPD:ATTR name="Top" type="integer">216</XPD:ATTR>
4107
<XPD:ATTR name="Width" type="integer">20</XPD:ATTR>
4108
<XPD:ATTR name="Height" type="integer">20</XPD:ATTR>
4109
<XPD:REF name="Model">+Rtnrn3km0qcjHJTiMV/UgAA</XPD:REF>
4110
</XPD:OBJ>
4111
<XPD:OBJ name="OwnedViews[1]" type="UMLStateView" guid="9tDDuDtPCEiYD7L/8RTulAAA">
4112
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4113
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4114
<XPD:ATTR name="Left" type="integer">144</XPD:ATTR>
4115
<XPD:ATTR name="Top" type="integer">192</XPD:ATTR>
4116
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4117
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4118
<XPD:REF name="Model">pha8f7KtxEiBBp48XDe5PwAA</XPD:REF>
4119
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="bGnsXU8IPkG0GbyisPDWSgAA">
4120
<XPD:OBJ name="NameLabel" type="LabelView" guid="4RRVvVc2yEi/x2HHOP77QAAA">
4121
<XPD:ATTR name="Text" type="string">db command</XPD:ATTR>
4122
</XPD:OBJ>
4123
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="zYCZrZSr3EaWYxPn/s/YNAAA">
4124
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4125
</XPD:OBJ>
4126
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="NvNvE4vh30+HloKuyETMpwAA">
4127
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4128
</XPD:OBJ>
4129
</XPD:OBJ>
4130
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="uyqiRv3yjEyxhT8p84Zo+QAA">
4131
<XPD:REF name="Model">pha8f7KtxEiBBp48XDe5PwAA</XPD:REF>
4132
</XPD:OBJ>
4133
</XPD:OBJ>
4134
<XPD:OBJ name="OwnedViews[2]" type="UMLStateView" guid="2vR7EDOYLk2Vw/wKZXhaiwAA">
4135
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4136
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4137
<XPD:ATTR name="Left" type="integer">156</XPD:ATTR>
4138
<XPD:ATTR name="Top" type="integer">336</XPD:ATTR>
4139
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4140
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4141
<XPD:REF name="Model">y2W8lwp6GkOeGT+gGo1vQgAA</XPD:REF>
4142
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="wDEpnjvnnUe4OKnZiVWCpQAA">
4143
<XPD:OBJ name="NameLabel" type="LabelView" guid="aFwwSvG1tUSo7xrkproQOAAA">
4144
<XPD:ATTR name="Text" type="string">dbt command</XPD:ATTR>
4145
</XPD:OBJ>
4146
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="GDzE5S9lwkGdmcPlDB5n/AAA">
4147
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4148
</XPD:OBJ>
4149
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="LqSs6axLe0OWRsYIvDDKvwAA">
4150
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4151
</XPD:OBJ>
4152
</XPD:OBJ>
4153
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="mwcOCPOSxk6iNV6kUREbwgAA">
4154
<XPD:REF name="Model">y2W8lwp6GkOeGT+gGo1vQgAA</XPD:REF>
4155
</XPD:OBJ>
4156
</XPD:OBJ>
4157
<XPD:OBJ name="OwnedViews[3]" type="UMLStateView" guid="JgA/DAP2F0GVl2dsrHdeagAA">
4158
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4159
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4160
<XPD:ATTR name="Left" type="integer">384</XPD:ATTR>
4161
<XPD:ATTR name="Top" type="integer">120</XPD:ATTR>
4162
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4163
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4164
<XPD:REF name="Model">ivNQUB73jkqNE0REPaFYSAAA</XPD:REF>
4165
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="nyee8FNtqECyDRoBelKBpgAA">
4166
<XPD:OBJ name="NameLabel" type="LabelView" guid="kJ6mXgAnqU2GTUNwmRNA8QAA">
4167
<XPD:ATTR name="Text" type="string">Minus</XPD:ATTR>
4168
</XPD:OBJ>
4169
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="bIc+7wsXC0ucQPCGanvmEQAA">
4170
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4171
</XPD:OBJ>
4172
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="TobA3/iEPEOjz7MaAV1kqAAA">
4173
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4174
</XPD:OBJ>
4175
</XPD:OBJ>
4176
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="O95WvPIeHkidMOC5cAUMDAAA">
4177
<XPD:REF name="Model">ivNQUB73jkqNE0REPaFYSAAA</XPD:REF>
4178
</XPD:OBJ>
4179
</XPD:OBJ>
4180
<XPD:OBJ name="OwnedViews[4]" type="UMLStateView" guid="h2IXtTKJt0O8PLdMNS+rqgAA">
4181
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4182
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4183
<XPD:ATTR name="Left" type="integer">639</XPD:ATTR>
4184
<XPD:ATTR name="Top" type="integer">144</XPD:ATTR>
4185
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4186
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4187
<XPD:REF name="Model">kPTCmUddM0mvyaaBBpA4UQAA</XPD:REF>
4188
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="8hx8mtgF8EK06OxIcpZgpAAA">
4189
<XPD:OBJ name="NameLabel" type="LabelView" guid="YCNEz1xuQk6l0CTFRisQiAAA">
4190
<XPD:ATTR name="Text" type="string">separator</XPD:ATTR>
4191
</XPD:OBJ>
4192
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="hLFV78+oekyr4YWh4roLRwAA">
4193
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4194
</XPD:OBJ>
4195
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="K9CSeUgctk+OyA0l2/HKegAA">
4196
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4197
</XPD:OBJ>
4198
</XPD:OBJ>
4199
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="fNXR2fJnnkSZmpso6SExfAAA">
4200
<XPD:REF name="Model">kPTCmUddM0mvyaaBBpA4UQAA</XPD:REF>
4201
</XPD:OBJ>
4202
</XPD:OBJ>
4203
<XPD:OBJ name="OwnedViews[5]" type="UMLTransitionView" guid="zniNJCOCLUyqOtfXhEc1dgAA">
4204
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4205
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4206
<XPD:ATTR name="Points" type="Points">103,223;144,217</XPD:ATTR>
4207
<XPD:REF name="Model">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
4208
<XPD:REF name="Head">9tDDuDtPCEiYD7L/8RTulAAA</XPD:REF>
4209
<XPD:REF name="Tail">A+P+wcZSmE+KFNQ9ziuXjwAA</XPD:REF>
4210
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="K8obOqKxSUWhbxy30+dsywAA">
4211
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4212
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4213
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4214
<XPD:REF name="Model">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
4215
</XPD:OBJ>
4216
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="sfB9btkxAUuP+cJ6JoPW+QAA">
4217
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4218
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4219
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4220
<XPD:REF name="Model">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
4221
</XPD:OBJ>
4222
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="3LKg12WDAk+/LG5zuG+VXwAA">
4223
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4224
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4225
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4226
<XPD:REF name="Model">jIdeb32uq0q364D04nIZ7gAA</XPD:REF>
4227
</XPD:OBJ>
4228
</XPD:OBJ>
4229
<XPD:OBJ name="OwnedViews[6]" type="UMLTransitionView" guid="j/g3OyQg8kShHCbd1ayvrgAA">
4230
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4231
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4232
<XPD:ATTR name="Points" type="Points">101,235;180,336</XPD:ATTR>
4233
<XPD:REF name="Model">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
4234
<XPD:REF name="Head">2vR7EDOYLk2Vw/wKZXhaiwAA</XPD:REF>
4235
<XPD:REF name="Tail">A+P+wcZSmE+KFNQ9ziuXjwAA</XPD:REF>
4236
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="duGC5AiFmUOBPqanVvlOUwAA">
4237
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4238
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4239
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4240
<XPD:REF name="Model">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
4241
</XPD:OBJ>
4242
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="7K2+aViKFkSjRd76SCH/3QAA">
4243
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4244
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4245
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4246
<XPD:REF name="Model">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
4247
</XPD:OBJ>
4248
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="Kb6WjIYFnEGIoHuOL35/ewAA">
4249
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4250
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4251
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4252
<XPD:REF name="Model">znwSI4250k+feVzFEw1a5QAA</XPD:REF>
4253
</XPD:OBJ>
4254
</XPD:OBJ>
4255
<XPD:OBJ name="OwnedViews[7]" type="UMLSubmachineStateView" guid="s3si5zO8lkyG/LL9HQ6rvAAA">
4256
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4257
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4258
<XPD:ATTR name="Left" type="integer">300</XPD:ATTR>
4259
<XPD:ATTR name="Top" type="integer">384</XPD:ATTR>
4260
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4261
<XPD:ATTR name="Height" type="integer">56</XPD:ATTR>
4262
<XPD:REF name="Model">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
4263
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="ncLkazW2oE6cYa9FOW1M8gAA">
4264
<XPD:OBJ name="NameLabel" type="LabelView" guid="TybOdy8IuE27LchRcn3REwAA">
4265
<XPD:ATTR name="Text" type="string">rawText</XPD:ATTR>
4266
</XPD:OBJ>
4267
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="BdNGUi/thUaQAB/ft3QkbQAA">
4268
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4269
</XPD:OBJ>
4270
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="S9pJT6LxykugoPF1h8uuEAAA">
4271
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4272
</XPD:OBJ>
4273
</XPD:OBJ>
4274
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="aX453XE6U0u7xke7XQrcRAAA">
4275
<XPD:REF name="Model">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
4276
</XPD:OBJ>
4277
<XPD:OBJ name="IncludeLabel" type="LabelView" guid="mCPYmlaoX0ynRYj/1vQhZQAA">
4278
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4279
</XPD:OBJ>
4280
</XPD:OBJ>
4281
<XPD:OBJ name="OwnedViews[8]" type="UMLTransitionView" guid="NQ1KZoX3l0S6EN7cqQwJQAAA">
4282
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4283
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4284
<XPD:ATTR name="Points" type="Points">235,371;300,396</XPD:ATTR>
4285
<XPD:REF name="Model">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
4286
<XPD:REF name="Head">s3si5zO8lkyG/LL9HQ6rvAAA</XPD:REF>
4287
<XPD:REF name="Tail">2vR7EDOYLk2Vw/wKZXhaiwAA</XPD:REF>
4288
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="vi6E5cRynE+PcDhNHW+GUQAA">
4289
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4290
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4291
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4292
<XPD:REF name="Model">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
4293
</XPD:OBJ>
4294
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="kd3dqKu1j0CLAUXXO65dvAAA">
4295
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4296
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4297
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4298
<XPD:REF name="Model">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
4299
</XPD:OBJ>
4300
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="z1mJuF1h/EeMtO2y7RlL5AAA">
4301
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4302
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4303
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4304
<XPD:REF name="Model">WS3IP6G9CEiaGuEv+DOG/AAA</XPD:REF>
4305
</XPD:OBJ>
4306
</XPD:OBJ>
4307
<XPD:OBJ name="OwnedViews[9]" type="UMLPseudostateView" guid="HQm6oGwJzEK7oOejVqybiAAA">
4308
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4309
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4310
<XPD:ATTR name="Left" type="integer">336</XPD:ATTR>
4311
<XPD:ATTR name="Top" type="integer">192</XPD:ATTR>
4312
<XPD:ATTR name="Width" type="integer">20</XPD:ATTR>
4313
<XPD:ATTR name="Height" type="integer">20</XPD:ATTR>
4314
<XPD:REF name="Model">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
4315
</XPD:OBJ>
4316
<XPD:OBJ name="OwnedViews[10]" type="UMLTransitionView" guid="Ywsv7kGFdES/kVYzod3QmwAA">
4317
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4318
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4319
<XPD:ATTR name="Points" type="Points">355,193;398,159</XPD:ATTR>
4320
<XPD:REF name="Model">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
4321
<XPD:REF name="Head">JgA/DAP2F0GVl2dsrHdeagAA</XPD:REF>
4322
<XPD:REF name="Tail">HQm6oGwJzEK7oOejVqybiAAA</XPD:REF>
4323
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="5hp/MEZkuUiuBAfnPaH92wAA">
4324
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4325
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4326
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4327
<XPD:REF name="Model">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
4328
</XPD:OBJ>
4329
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="24j7neadCE6p5A5TODI1kQAA">
4330
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4331
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4332
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4333
<XPD:REF name="Model">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
4334
</XPD:OBJ>
4335
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="dxRGrGufx02N4KqquSsDQAAA">
4336
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4337
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4338
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4339
<XPD:REF name="Model">imnaqLb3Rkm/zshfu5XyXAAA</XPD:REF>
4340
</XPD:OBJ>
4341
</XPD:OBJ>
4342
<XPD:OBJ name="OwnedViews[11]" type="UMLStateView" guid="+99ALHoD3ESIbHQQLRciRgAA">
4343
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4344
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4345
<XPD:ATTR name="Left" type="integer">240</XPD:ATTR>
4346
<XPD:ATTR name="Top" type="integer">192</XPD:ATTR>
4347
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4348
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4349
<XPD:REF name="Model">xeGnAWrSbkKWPAN4WZ6zjgAA</XPD:REF>
4350
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="roRSJONsmk+eZUuCecg30QAA">
4351
<XPD:OBJ name="NameLabel" type="LabelView" guid="PrreiV8ivkOyp+8DjyFDIgAA">
4352
<XPD:ATTR name="Text" type="string">SizeSepec</XPD:ATTR>
4353
</XPD:OBJ>
4354
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="8ce/lQhEfEOQtJZQfggm+wAA">
4355
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4356
</XPD:OBJ>
4357
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="TqrQzG3Q702ARynK9Vj93wAA">
4358
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4359
</XPD:OBJ>
4360
</XPD:OBJ>
4361
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="TQlhJAmoXEmtTVzRqQj68AAA">
4362
<XPD:REF name="Model">xeGnAWrSbkKWPAN4WZ6zjgAA</XPD:REF>
4363
</XPD:OBJ>
4364
</XPD:OBJ>
4365
<XPD:OBJ name="OwnedViews[12]" type="UMLTransitionView" guid="ljflMtabPUKkGxqWNALL9QAA">
4366
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4367
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4368
<XPD:ATTR name="Points" type="Points">223,211;240,211</XPD:ATTR>
4369
<XPD:REF name="Model">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
4370
<XPD:REF name="Head">+99ALHoD3ESIbHQQLRciRgAA</XPD:REF>
4371
<XPD:REF name="Tail">9tDDuDtPCEiYD7L/8RTulAAA</XPD:REF>
4372
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="Z/DW57cRAEOtaxdDfjcw4AAA">
4373
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4374
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4375
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4376
<XPD:REF name="Model">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
4377
</XPD:OBJ>
4378
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="kMU83pzuqUKNkeQgKtDsrgAA">
4379
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4380
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4381
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4382
<XPD:REF name="Model">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
4383
</XPD:OBJ>
4384
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="gcdXTauBlUy/PQjLEoOhvAAA">
4385
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4386
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4387
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4388
<XPD:REF name="Model">HoPF+SDDGEasrduotWR5ngAA</XPD:REF>
4389
</XPD:OBJ>
4390
</XPD:OBJ>
4391
<XPD:OBJ name="OwnedViews[13]" type="UMLTransitionView" guid="VmGXnttgpEO8u/khXQWgHQAA">
4392
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4393
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4394
<XPD:ATTR name="Points" type="Points">319,205;336,202</XPD:ATTR>
4395
<XPD:REF name="Model">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
4396
<XPD:REF name="Head">HQm6oGwJzEK7oOejVqybiAAA</XPD:REF>
4397
<XPD:REF name="Tail">+99ALHoD3ESIbHQQLRciRgAA</XPD:REF>
4398
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="XXGrM7B8oUOLkasEOHXcIgAA">
4399
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4400
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4401
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4402
<XPD:REF name="Model">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
4403
</XPD:OBJ>
4404
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="KVkVeWpiak6uOOGASxLRAQAA">
4405
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4406
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4407
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4408
<XPD:REF name="Model">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
4409
</XPD:OBJ>
4410
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="OzeLMtV2c0mCluMw+GjrtgAA">
4411
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4412
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4413
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4414
<XPD:REF name="Model">ymxIvv1IzE+/uCgYA2v+xwAA</XPD:REF>
4415
</XPD:OBJ>
4416
</XPD:OBJ>
4417
<XPD:OBJ name="OwnedViews[14]" type="UMLTransitionView" guid="hGXc7WU9u0KzNcT2NA+AkwAA">
4418
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4419
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4420
<XPD:ATTR name="Points" type="Points">639,144;396,24;348,192</XPD:ATTR>
4421
<XPD:REF name="Model">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
4422
<XPD:REF name="Head">HQm6oGwJzEK7oOejVqybiAAA</XPD:REF>
4423
<XPD:REF name="Tail">h2IXtTKJt0O8PLdMNS+rqgAA</XPD:REF>
4424
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="1Xld/Nbsg020UAm/FkvcVwAA">
4425
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4426
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4427
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4428
<XPD:REF name="Model">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
4429
</XPD:OBJ>
4430
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="rZ5TcnLfak2/JC+nfavJagAA">
4431
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4432
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4433
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4434
<XPD:REF name="Model">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
4435
</XPD:OBJ>
4436
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="CrSr0AgFI0qMaXSkkUhUzQAA">
4437
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4438
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4439
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4440
<XPD:REF name="Model">+1bmDZVYmEqwCKzuIaDgBwAA</XPD:REF>
4441
</XPD:OBJ>
4442
</XPD:OBJ>
4443
<XPD:OBJ name="OwnedViews[15]" type="UMLStateView" guid="kOhqt0eJ00uDdCYcstX59AAA">
4444
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4445
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4446
<XPD:ATTR name="Left" type="integer">720</XPD:ATTR>
4447
<XPD:ATTR name="Top" type="integer">240</XPD:ATTR>
4448
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4449
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4450
<XPD:REF name="Model">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
4451
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="HJz2MzdT3EWFK+OOVZzLNwAA">
4452
<XPD:OBJ name="NameLabel" type="LabelView" guid="6DGMmJkBh0eSlTsMxHNiOgAA">
4453
<XPD:ATTR name="Text" type="string">EndLine</XPD:ATTR>
4454
</XPD:OBJ>
4455
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="IQdi3SIn00KGOEn3LHn8FAAA">
4456
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4457
</XPD:OBJ>
4458
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="ERwBMee7dUCh/BGVo1ZcoAAA">
4459
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4460
</XPD:OBJ>
4461
</XPD:OBJ>
4462
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="7ewSYZGC60OlglU7Lj0hCwAA">
4463
<XPD:REF name="Model">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
4464
</XPD:OBJ>
4465
</XPD:OBJ>
4466
<XPD:OBJ name="OwnedViews[16]" type="UMLTransitionView" guid="zDzaj6a7JECFNNv04ewHJAAA">
4467
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4468
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4469
<XPD:ATTR name="Points" type="Points">379,397;720,273</XPD:ATTR>
4470
<XPD:REF name="Model">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
4471
<XPD:REF name="Head">kOhqt0eJ00uDdCYcstX59AAA</XPD:REF>
4472
<XPD:REF name="Tail">s3si5zO8lkyG/LL9HQ6rvAAA</XPD:REF>
4473
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="v55VsChKxESvXkSF63f41QAA">
4474
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4475
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4476
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4477
<XPD:REF name="Model">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
4478
</XPD:OBJ>
4479
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="3fWfvNY0KEyM40ECrcKFrQAA">
4480
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4481
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4482
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4483
<XPD:REF name="Model">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
4484
</XPD:OBJ>
4485
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="oPL23NW6YUK+Y9jPSffh/AAA">
4486
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4487
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4488
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4489
<XPD:REF name="Model">Ba3dEIcw3kWKkw1hrOyAnAAA</XPD:REF>
4490
</XPD:OBJ>
4491
</XPD:OBJ>
4492
<XPD:OBJ name="OwnedViews[17]" type="UMLStateView" guid="swDlaHWYjk6sxWU4hSTlNgAA">
4493
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4494
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4495
<XPD:ATTR name="Left" type="integer">432</XPD:ATTR>
4496
<XPD:ATTR name="Top" type="integer">192</XPD:ATTR>
4497
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
4498
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
4499
<XPD:REF name="Model">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
4500
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="LfSujmPvOUe/ELIxEgT5uAAA">
4501
<XPD:OBJ name="NameLabel" type="LabelView" guid="LZaxq1zCT02W26jH8I/ncwAA">
4502
<XPD:ATTR name="Text" type="string">Digit</XPD:ATTR>
4503
</XPD:OBJ>
4504
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="LbvEXuduM0WxsW2b4LRjIwAA">
4505
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4506
</XPD:OBJ>
4507
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="e+WBoML7YU29uH230QOMWAAA">
4508
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4509
</XPD:OBJ>
4510
</XPD:OBJ>
4511
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="yJS8wTUSGUCc7grAWAT9QAAA">
4512
<XPD:REF name="Model">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
4513
</XPD:OBJ>
4514
</XPD:OBJ>
4515
<XPD:OBJ name="OwnedViews[18]" type="UMLTransitionView" guid="yphHT1akukqBeOV+lyR/lgAA">
4516
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4517
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4518
<XPD:ATTR name="Points" type="Points">355,202;432,208</XPD:ATTR>
4519
<XPD:REF name="Model">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
4520
<XPD:REF name="Head">swDlaHWYjk6sxWU4hSTlNgAA</XPD:REF>
4521
<XPD:REF name="Tail">HQm6oGwJzEK7oOejVqybiAAA</XPD:REF>
4522
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="601qx3N6QEu686FrUK5uDQAA">
4523
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4524
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4525
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4526
<XPD:REF name="Model">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
4527
</XPD:OBJ>
4528
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="mkN0Q0gDKUu7wC54fID1mgAA">
4529
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4530
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4531
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4532
<XPD:REF name="Model">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
4533
</XPD:OBJ>
4534
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="tXGq15pYqUapEg36j76edgAA">
4535
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4536
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4537
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4538
<XPD:REF name="Model">DJ+j6fjOZkymqXvgf+sQLgAA</XPD:REF>
4539
</XPD:OBJ>
4540
</XPD:OBJ>
4541
<XPD:OBJ name="OwnedViews[19]" type="UMLTransitionView" guid="sNQJueA3j02F7WXdYcAoIQAA">
4542
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4543
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4544
<XPD:ATTR name="Points" type="Points">511,202;639,172</XPD:ATTR>
4545
<XPD:REF name="Model">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
4546
<XPD:REF name="Head">h2IXtTKJt0O8PLdMNS+rqgAA</XPD:REF>
4547
<XPD:REF name="Tail">swDlaHWYjk6sxWU4hSTlNgAA</XPD:REF>
4548
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="MtxV0aij5E+Y/OXVqHN44AAA">
4549
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4550
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4551
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4552
<XPD:REF name="Model">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
4553
</XPD:OBJ>
4554
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="496rEcTEvkyqQ70O5rdfYQAA">
4555
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4556
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4557
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4558
<XPD:REF name="Model">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
4559
</XPD:OBJ>
4560
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="R4xte4lrYUKV440SKlOdogAA">
4561
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4562
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4563
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4564
<XPD:REF name="Model">AdOT3CKQfEKgomOU6ohLzAAA</XPD:REF>
4565
</XPD:OBJ>
4566
</XPD:OBJ>
4567
<XPD:OBJ name="OwnedViews[20]" type="UMLTransitionView" guid="YanU7eL9VE2aU5sG+FPKtgAA">
4568
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4569
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4570
<XPD:ATTR name="Points" type="Points">436,159;458,192</XPD:ATTR>
4571
<XPD:REF name="Model">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
4572
<XPD:REF name="Head">swDlaHWYjk6sxWU4hSTlNgAA</XPD:REF>
4573
<XPD:REF name="Tail">JgA/DAP2F0GVl2dsrHdeagAA</XPD:REF>
4574
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="T4hKHMgoH0aLRF2yWqvjjwAA">
4575
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4576
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4577
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4578
<XPD:REF name="Model">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
4579
</XPD:OBJ>
4580
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="/LCCEk6cWkCODsim+AIlIAAA">
4581
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4582
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4583
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4584
<XPD:REF name="Model">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
4585
</XPD:OBJ>
4586
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="riX1RO8HrU2qKo+CnM3ebQAA">
4587
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4588
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4589
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4590
<XPD:REF name="Model">iJE+Bm7PdUS9+g0y/aJylwAA</XPD:REF>
4591
</XPD:OBJ>
4592
</XPD:OBJ>
4593
<XPD:OBJ name="OwnedViews[21]" type="UMLTransitionView" guid="frqeUnGAhESQzgr5cDO4PgAA">
4594
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
4595
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
4596
<XPD:ATTR name="Points" type="Points">511,218;720,253</XPD:ATTR>
4597
<XPD:REF name="Model">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
4598
<XPD:REF name="Head">kOhqt0eJ00uDdCYcstX59AAA</XPD:REF>
4599
<XPD:REF name="Tail">swDlaHWYjk6sxWU4hSTlNgAA</XPD:REF>
4600
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="QUjruw4og0GqRydvrxxh7AAA">
4601
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4602
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4603
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4604
<XPD:REF name="Model">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
4605
</XPD:OBJ>
4606
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="WH+UIsWA5kGkfsQmfQdBagAA">
4607
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4608
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
4609
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
4610
<XPD:REF name="Model">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
4611
</XPD:OBJ>
4612
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="sze1jRBJJ0+HPStHceO7OQAA">
4613
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
4614
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
4615
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
4616
<XPD:REF name="Model">iAYcx8AYmE6GHtzBSyeigAAA</XPD:REF>
4617
</XPD:OBJ>
4618
</XPD:OBJ>
4619
</XPD:OBJ>
4620
</XPD:OBJ>
4621
<XPD:ATTR name="#Transitions" type="integer">115</XPD:ATTR>
3986
<XPD:OBJ name="Transitions[0]" type="UMLTransition" guid="CgKLG+dNe0KzOWotvw7ASwAA">
4622
<XPD:OBJ name="Transitions[0]" type="UMLTransition" guid="CgKLG+dNe0KzOWotvw7ASwAA">
3987
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
4623
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
3988
<XPD:REF name="Source">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
4624
<XPD:REF name="Source">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
...
...
4850
<XPD:REF name="Views[2]">DIBGdCWK9Eel27gE6W7ViQAA</XPD:REF>
5486
<XPD:REF name="Views[2]">DIBGdCWK9Eel27gE6W7ViQAA</XPD:REF>
4851
<XPD:REF name="Views[3]">4qF6XNRe4kadhtxCQtjraQAA</XPD:REF>
5487
<XPD:REF name="Views[3]">4qF6XNRe4kadhtxCQtjraQAA</XPD:REF>
4852
</XPD:OBJ>
5488
</XPD:OBJ>
5489
<XPD:OBJ name="Transitions[94]" type="UMLTransition" guid="jIdeb32uq0q364D04nIZ7gAA">
5490
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5491
<XPD:REF name="Source">+Rtnrn3km0qcjHJTiMV/UgAA</XPD:REF>
5492
<XPD:REF name="Target">pha8f7KtxEiBBp48XDe5PwAA</XPD:REF>
5493
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5494
<XPD:REF name="Views[0]">zniNJCOCLUyqOtfXhEc1dgAA</XPD:REF>
5495
<XPD:REF name="Views[1]">K8obOqKxSUWhbxy30+dsywAA</XPD:REF>
5496
<XPD:REF name="Views[2]">sfB9btkxAUuP+cJ6JoPW+QAA</XPD:REF>
5497
<XPD:REF name="Views[3]">3LKg12WDAk+/LG5zuG+VXwAA</XPD:REF>
4853
</XPD:OBJ>
5498
</XPD:OBJ>
5499
<XPD:OBJ name="Transitions[95]" type="UMLTransition" guid="znwSI4250k+feVzFEw1a5QAA">
5500
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5501
<XPD:REF name="Source">+Rtnrn3km0qcjHJTiMV/UgAA</XPD:REF>
5502
<XPD:REF name="Target">y2W8lwp6GkOeGT+gGo1vQgAA</XPD:REF>
5503
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5504
<XPD:REF name="Views[0]">j/g3OyQg8kShHCbd1ayvrgAA</XPD:REF>
5505
<XPD:REF name="Views[1]">duGC5AiFmUOBPqanVvlOUwAA</XPD:REF>
5506
<XPD:REF name="Views[2]">7K2+aViKFkSjRd76SCH/3QAA</XPD:REF>
5507
<XPD:REF name="Views[3]">Kb6WjIYFnEGIoHuOL35/ewAA</XPD:REF>
4854
</XPD:OBJ>
5508
</XPD:OBJ>
5509
<XPD:OBJ name="Transitions[96]" type="UMLTransition" guid="+Qh6MRFplkWFge2bkRctzwAA">
5510
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5511
<XPD:REF name="Source">pha8f7KtxEiBBp48XDe5PwAA</XPD:REF>
5512
<XPD:REF name="Target">I5Q1JoUVpUCF0g5NjYqWfgAA</XPD:REF>
4855
</XPD:OBJ>
5513
</XPD:OBJ>
5514
<XPD:OBJ name="Transitions[97]" type="UMLTransition" guid="WS3IP6G9CEiaGuEv+DOG/AAA">
5515
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5516
<XPD:REF name="Source">y2W8lwp6GkOeGT+gGo1vQgAA</XPD:REF>
5517
<XPD:REF name="Target">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
5518
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5519
<XPD:REF name="Views[0]">NQ1KZoX3l0S6EN7cqQwJQAAA</XPD:REF>
5520
<XPD:REF name="Views[1]">vi6E5cRynE+PcDhNHW+GUQAA</XPD:REF>
5521
<XPD:REF name="Views[2]">kd3dqKu1j0CLAUXXO65dvAAA</XPD:REF>
5522
<XPD:REF name="Views[3]">z1mJuF1h/EeMtO2y7RlL5AAA</XPD:REF>
5523
</XPD:OBJ>
5524
<XPD:OBJ name="Transitions[98]" type="UMLTransition" guid="imnaqLb3Rkm/zshfu5XyXAAA">
5525
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5526
<XPD:REF name="Source">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5527
<XPD:REF name="Target">ivNQUB73jkqNE0REPaFYSAAA</XPD:REF>
5528
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5529
<XPD:REF name="Views[0]">Ywsv7kGFdES/kVYzod3QmwAA</XPD:REF>
5530
<XPD:REF name="Views[1]">5hp/MEZkuUiuBAfnPaH92wAA</XPD:REF>
5531
<XPD:REF name="Views[2]">24j7neadCE6p5A5TODI1kQAA</XPD:REF>
5532
<XPD:REF name="Views[3]">dxRGrGufx02N4KqquSsDQAAA</XPD:REF>
5533
</XPD:OBJ>
5534
<XPD:OBJ name="Transitions[99]" type="UMLTransition" guid="swnYmFb8QU+AQ0uocGx5egAA">
5535
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5536
<XPD:REF name="Source">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5537
<XPD:REF name="Target">MOrmDdWCvUeHoRutpsKE9AAA</XPD:REF>
5538
</XPD:OBJ>
5539
<XPD:OBJ name="Transitions[100]" type="UMLTransition" guid="NVtbuFkt0EqmH79rS7EYqwAA">
5540
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5541
<XPD:REF name="Source">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5542
<XPD:REF name="Target">So68m73ZjUeNQ5u/IOV9cgAA</XPD:REF>
5543
</XPD:OBJ>
5544
<XPD:OBJ name="Transitions[101]" type="UMLTransition" guid="GJACDIECT02Mu3vnI2SpDQAA">
5545
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5546
<XPD:REF name="Source">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5547
<XPD:REF name="Target">13G1EXtJwU+8d28PnL4OVwAA</XPD:REF>
5548
</XPD:OBJ>
5549
<XPD:OBJ name="Transitions[102]" type="UMLTransition" guid="HoPF+SDDGEasrduotWR5ngAA">
5550
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5551
<XPD:REF name="Source">pha8f7KtxEiBBp48XDe5PwAA</XPD:REF>
5552
<XPD:REF name="Target">xeGnAWrSbkKWPAN4WZ6zjgAA</XPD:REF>
5553
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5554
<XPD:REF name="Views[0]">ljflMtabPUKkGxqWNALL9QAA</XPD:REF>
5555
<XPD:REF name="Views[1]">Z/DW57cRAEOtaxdDfjcw4AAA</XPD:REF>
5556
<XPD:REF name="Views[2]">kMU83pzuqUKNkeQgKtDsrgAA</XPD:REF>
5557
<XPD:REF name="Views[3]">gcdXTauBlUy/PQjLEoOhvAAA</XPD:REF>
5558
</XPD:OBJ>
5559
<XPD:OBJ name="Transitions[103]" type="UMLTransition" guid="ymxIvv1IzE+/uCgYA2v+xwAA">
5560
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5561
<XPD:REF name="Source">xeGnAWrSbkKWPAN4WZ6zjgAA</XPD:REF>
5562
<XPD:REF name="Target">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5563
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5564
<XPD:REF name="Views[0]">VmGXnttgpEO8u/khXQWgHQAA</XPD:REF>
5565
<XPD:REF name="Views[1]">XXGrM7B8oUOLkasEOHXcIgAA</XPD:REF>
5566
<XPD:REF name="Views[2]">KVkVeWpiak6uOOGASxLRAQAA</XPD:REF>
5567
<XPD:REF name="Views[3]">OzeLMtV2c0mCluMw+GjrtgAA</XPD:REF>
5568
</XPD:OBJ>
5569
<XPD:OBJ name="Transitions[104]" type="UMLTransition" guid="+1bmDZVYmEqwCKzuIaDgBwAA">
5570
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5571
<XPD:REF name="Source">kPTCmUddM0mvyaaBBpA4UQAA</XPD:REF>
5572
<XPD:REF name="Target">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5573
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5574
<XPD:REF name="Views[0]">hGXc7WU9u0KzNcT2NA+AkwAA</XPD:REF>
5575
<XPD:REF name="Views[1]">1Xld/Nbsg020UAm/FkvcVwAA</XPD:REF>
5576
<XPD:REF name="Views[2]">rZ5TcnLfak2/JC+nfavJagAA</XPD:REF>
5577
<XPD:REF name="Views[3]">CrSr0AgFI0qMaXSkkUhUzQAA</XPD:REF>
5578
</XPD:OBJ>
5579
<XPD:OBJ name="Transitions[105]" type="UMLTransition" guid="T6hTYD4uRkm8gA3bCpEbBQAA">
5580
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5581
<XPD:REF name="Source">kPTCmUddM0mvyaaBBpA4UQAA</XPD:REF>
5582
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5583
</XPD:OBJ>
5584
<XPD:OBJ name="Transitions[106]" type="UMLTransition" guid="Ba3dEIcw3kWKkw1hrOyAnAAA">
5585
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5586
<XPD:REF name="Source">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
5587
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5588
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5589
<XPD:REF name="Views[0]">zDzaj6a7JECFNNv04ewHJAAA</XPD:REF>
5590
<XPD:REF name="Views[1]">v55VsChKxESvXkSF63f41QAA</XPD:REF>
5591
<XPD:REF name="Views[2]">3fWfvNY0KEyM40ECrcKFrQAA</XPD:REF>
5592
<XPD:REF name="Views[3]">oPL23NW6YUK+Y9jPSffh/AAA</XPD:REF>
5593
</XPD:OBJ>
5594
<XPD:OBJ name="Transitions[107]" type="UMLTransition" guid="xGRRqSt42028IARRk4a60wAA">
5595
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5596
<XPD:REF name="Source">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
5597
<XPD:REF name="Target">cRzMrzlZAkmTPfgvSyWe/AAA</XPD:REF>
5598
</XPD:OBJ>
5599
<XPD:OBJ name="Transitions[108]" type="UMLTransition" guid="Ys2kkLaDDU2pjMeeiHnQSwAA">
5600
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5601
<XPD:REF name="Source">MOrmDdWCvUeHoRutpsKE9AAA</XPD:REF>
5602
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5603
</XPD:OBJ>
5604
<XPD:OBJ name="Transitions[109]" type="UMLTransition" guid="s2eB4srbM0CyGGbVNivu9gAA">
5605
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5606
<XPD:REF name="Source">So68m73ZjUeNQ5u/IOV9cgAA</XPD:REF>
5607
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5608
</XPD:OBJ>
5609
<XPD:OBJ name="Transitions[110]" type="UMLTransition" guid="YwhBOn43Aki7+xlRJw9siAAA">
5610
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5611
<XPD:REF name="Source">13G1EXtJwU+8d28PnL4OVwAA</XPD:REF>
5612
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5613
</XPD:OBJ>
5614
<XPD:OBJ name="Transitions[111]" type="UMLTransition" guid="DJ+j6fjOZkymqXvgf+sQLgAA">
5615
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5616
<XPD:REF name="Source">sB+mBRitCUSrY1UmC4bzxAAA</XPD:REF>
5617
<XPD:REF name="Target">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
5618
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5619
<XPD:REF name="Views[0]">yphHT1akukqBeOV+lyR/lgAA</XPD:REF>
5620
<XPD:REF name="Views[1]">601qx3N6QEu686FrUK5uDQAA</XPD:REF>
5621
<XPD:REF name="Views[2]">mkN0Q0gDKUu7wC54fID1mgAA</XPD:REF>
5622
<XPD:REF name="Views[3]">tXGq15pYqUapEg36j76edgAA</XPD:REF>
5623
</XPD:OBJ>
5624
<XPD:OBJ name="Transitions[112]" type="UMLTransition" guid="AdOT3CKQfEKgomOU6ohLzAAA">
5625
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5626
<XPD:REF name="Source">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
5627
<XPD:REF name="Target">kPTCmUddM0mvyaaBBpA4UQAA</XPD:REF>
5628
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5629
<XPD:REF name="Views[0]">sNQJueA3j02F7WXdYcAoIQAA</XPD:REF>
5630
<XPD:REF name="Views[1]">MtxV0aij5E+Y/OXVqHN44AAA</XPD:REF>
5631
<XPD:REF name="Views[2]">496rEcTEvkyqQ70O5rdfYQAA</XPD:REF>
5632
<XPD:REF name="Views[3]">R4xte4lrYUKV440SKlOdogAA</XPD:REF>
5633
</XPD:OBJ>
5634
<XPD:OBJ name="Transitions[113]" type="UMLTransition" guid="iJE+Bm7PdUS9+g0y/aJylwAA">
5635
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5636
<XPD:REF name="Source">ivNQUB73jkqNE0REPaFYSAAA</XPD:REF>
5637
<XPD:REF name="Target">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
5638
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5639
<XPD:REF name="Views[0]">YanU7eL9VE2aU5sG+FPKtgAA</XPD:REF>
5640
<XPD:REF name="Views[1]">T4hKHMgoH0aLRF2yWqvjjwAA</XPD:REF>
5641
<XPD:REF name="Views[2]">/LCCEk6cWkCODsim+AIlIAAA</XPD:REF>
5642
<XPD:REF name="Views[3]">riX1RO8HrU2qKo+CnM3ebQAA</XPD:REF>
5643
</XPD:OBJ>
5644
<XPD:OBJ name="Transitions[114]" type="UMLTransition" guid="iAYcx8AYmE6GHtzBSyeigAAA">
5645
<XPD:REF name="StateMachine">5FtMF1tok0KPKwIo7zINQwAA</XPD:REF>
5646
<XPD:REF name="Source">Tb030w8LaUCrsa87BicFzQAA</XPD:REF>
5647
<XPD:REF name="Target">0fM/mZ5HKE2f+lrVD+4HoQAA</XPD:REF>
5648
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
5649
<XPD:REF name="Views[0]">frqeUnGAhESQzgr5cDO4PgAA</XPD:REF>
5650
<XPD:REF name="Views[1]">QUjruw4og0GqRydvrxxh7AAA</XPD:REF>
5651
<XPD:REF name="Views[2]">WH+UIsWA5kGkfsQmfQdBagAA</XPD:REF>
5652
<XPD:REF name="Views[3]">sze1jRBJJ0+HPStHceO7OQAA</XPD:REF>
5653
</XPD:OBJ>
5654
</XPD:OBJ>
5655
</XPD:OBJ>
5656
</XPD:OBJ>
4856
</XPD:BODY>
5657
</XPD:BODY>
4857
</XPD:PROJECT>
5658
</XPD:PROJECT>

Updated Units/Clock.pas Download diff

23
4
   {$MODE Delphi}
4
   {$MODE Delphi}
5
{$EndIf}
5
{$EndIf}
6
6
7
{$M+}
7
interface
8
interface
8
9
9
uses Classes, SysUtils;
10
uses Classes, SysUtils, CoreDevices;
10
11
11
type
12
type
12
   TTickReciever = class {$ifndef FPC} abstract {$ENDIF}
13
      public
14
         procedure   Tick; virtual; abstract;
15
   end;
16
13
17
   TClock = class
14
   TClock = class(TCoreClockDev)
18
      public
15
      public
19
         constructor    Create;
16
         constructor    Create;
20
         destructor     Destroy;override;
17
         destructor     Destroy;override;
21
18
22
         procedure      AddTickReciever(const rcv: TTickReciever);
19
         procedure      AddTickReciever(const rcv: TTickReciever);override;
23
         procedure      DelTickReciever(const rcv: TTickReciever);
20
         procedure      DelTickReciever(const rcv: TTickReciever);override;
24
         procedure      Tick;
21
         procedure      Tick;override;
25
      private
22
      private
26
         fRecievers:    TList;
23
         fRecievers:    TList;
27
         fTickCount:    integer;
24
         fTickCount:    integer;
...
...
57
var
54
var
58
   t: integer;
55
   t: integer;
59
begin
56
begin
57
   Inc(fTickCount);
60
   for t := 0 to fRecievers.Count -1 do
58
   for t := 0 to fRecievers.Count -1 do
61
      TTickReciever(fRecievers[t]).Tick;
59
      TTickReciever(fRecievers[t]).Tick;
62
end;
60
end;

Updated Units/Compiler.pas Download diff

File was changed - ok, show the diff

Added Units/CoreDevices.pas

Show contents

Added Units/DataCompiler.pas

Show contents

Updated Units/Encjer.pas Download diff

File was changed - ok, show the diff

Added Units/Linker.pas

Show contents

Updated Units/MemoryManager.pas Download diff

File was changed - ok, show the diff

Added Units/Preprocessor.pas

Show contents

Updated Units/processor.pas Download diff

File was changed - ok, show the diff

Updated Units/ProcessorCore.pas Download diff

File was changed - ok, show the diff

Updated Units/SimpleCore.pas Download diff

File was changed - ok, show the diff

Added Units/SimpleGPU.pas

Show contents

Updated Units/SouthBridge.pas Download diff

File was changed - ok, show the diff

Added Units/VirtualMachine.pas

Show contents

Added Units/XMLHelpers.pas

Show contents

Added Units/XMLShader.pas

Show contents