Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
trkall
/
bes_labs_2020
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a0a3bb6a
authored
May 14, 2020
by
trkall
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lab 4
parent
f6436be7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
2115 additions
and
96 deletions
Labware/Lab3_4C123/os.c
Labware/Lab4_Fitness_4C123/Lab4.uvguix.Tref
Labware/Lab4_Fitness_4C123/Lab4.uvoptx
Labware/Lab4_Fitness_4C123/Lab4.uvprojx
Labware/Lab4_Fitness_4C123/RTE/RTE_Components.h → Labware/Lab4_Fitness_4C123/RTE/_Target/RTE_Components.h
Labware/Lab4_Fitness_4C123/os.c
Labware/Lab4_Fitness_4C123/osasm.s
Labware/Lab3_4C123/os.c
View file @
a0a3bb6a
...
@@ -88,7 +88,7 @@ int OS_AddThreads(void(*thread0)(void),
...
@@ -88,7 +88,7 @@ int OS_AddThreads(void(*thread0)(void),
void
(
*
thread3
)(
void
),
void
(
*
thread3
)(
void
),
void
(
*
thread4
)(
void
),
void
(
*
thread4
)(
void
),
void
(
*
thread5
)(
void
)){
void
(
*
thread5
)(
void
)){
// **similar to Lab 2. initialize as not blocked, not sleeping****
// **similar to Lab 2. initialize as not blocked, not sleeping****
// initialize TCB circular list
// initialize TCB circular list
tcbs
[
0
].
next
=
&
tcbs
[
1
];
tcbs
[
0
].
next
=
&
tcbs
[
1
];
tcbs
[
1
].
next
=
&
tcbs
[
2
];
tcbs
[
1
].
next
=
&
tcbs
[
2
];
...
@@ -119,8 +119,8 @@ int OS_AddThreads(void(*thread0)(void),
...
@@ -119,8 +119,8 @@ int OS_AddThreads(void(*thread0)(void),
SetInitialStack
(
5
);
SetInitialStack
(
5
);
Stacks
[
5
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread5
);
Stacks
[
5
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread5
);
return
1
;
// successful
return
1
;
// successful
}
}
//******** OS_AddPeriodicEventThread ***************
//******** OS_AddPeriodicEventThread ***************
...
...
Labware/Lab4_Fitness_4C123/Lab4.uvguix.Tref
0 → 100644
View file @
a0a3bb6a
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectGui
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"project_guix.xsd"
>
<SchemaVersion>
-6.1
</SchemaVersion>
<Header>
### uVision Project, (C) Keil Software
</Header>
<PrjGuiSettings>
<LastAddFilePath></LastAddFilePath>
</PrjGuiSettings>
<ViewPool/>
<SECTreeCtrl>
<View>
<WinId>
38003
</WinId>
<ViewName>
Registers
</ViewName>
<TableColWidths>
115 45
</TableColWidths>
</View>
<View>
<WinId>
346
</WinId>
<ViewName>
Code Coverage
</ViewName>
<TableColWidths>
665 160
</TableColWidths>
</View>
<View>
<WinId>
204
</WinId>
<ViewName>
Performance Analyzer
</ViewName>
<TableColWidths>
825
</TableColWidths>
</View>
</SECTreeCtrl>
<TreeListPane>
<View>
<WinId>
35141
</WinId>
<ViewName>
Event Statistics
</ViewName>
<UserString></UserString>
<TableColWidths>
200 50 700
</TableColWidths>
</View>
<View>
<WinId>
1506
</WinId>
<ViewName>
Symbols
</ViewName>
<UserString></UserString>
<TableColWidths>
56 56 56
</TableColWidths>
</View>
<View>
<WinId>
1936
</WinId>
<ViewName>
Watch 1
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
1937
</WinId>
<ViewName>
Watch 2
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
1935
</WinId>
<ViewName>
Call Stack + Locals
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
2506
</WinId>
<ViewName>
Trace Data
</ViewName>
<UserString></UserString>
<TableColWidths>
75 135 130 95 70 230 200 150
</TableColWidths>
</View>
<View>
<WinId>
466
</WinId>
<ViewName>
Source Browser
</ViewName>
<UserString>
500
</UserString>
<TableColWidths>
300
</TableColWidths>
</View>
</TreeListPane>
<CompViewPool/>
<WindowSettings>
<LogicAnalizer>
<ShowLACursor>
0
</ShowLACursor>
<ShowSignalInfo>
0
</ShowSignalInfo>
<ShowCycles>
0
</ShowCycles>
<LeftSideBarSize>
50
</LeftSideBarSize>
<TimeBaseIndex>
16
</TimeBaseIndex>
</LogicAnalizer>
</WindowSettings>
<WinLayoutEx>
<sActiveDebugView></sActiveDebugView>
<WindowPosition>
<length>
44
</length>
<flags>
0
</flags>
<showCmd>
1
</showCmd>
<MinPosition>
<xPos>
-32000
</xPos>
<yPos>
-32000
</yPos>
</MinPosition>
<MaxPosition>
<xPos>
-1
</xPos>
<yPos>
-1
</yPos>
</MaxPosition>
<NormalPosition>
<Top>
37
</Top>
<Left>
379
</Left>
<Right>
1404
</Right>
<Bottom>
563
</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>
0
</RegID>
<MDITabState>
<Len>
253
</Len>
<Data>
0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000100000000000000010000003B433A5C55736572735C547265665C6265735F6C6162735F323032305C4C6162776172655C4C6162345F4669746E6573735F34433132335C6F732E6300000000046F732E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000008B0300006D0000004E05000055020000
</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
<ViewType>
0
</ViewType>
<ViewName>
Build
</ViewName>
<Window>
<RegID>
-1
</RegID>
<PaneID>
-1
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
AE0000004F000000F1030000B3000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1005
</RegID>
<PaneID>
1005
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000300000001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
109
</RegID>
<PaneID>
109
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000300000001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1465
</RegID>
<PaneID>
1465
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0000000074010000F1030000D5010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1466
</RegID>
<PaneID>
1466
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1467
</RegID>
<PaneID>
1467
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1468
</RegID>
<PaneID>
1468
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1506
</RegID>
<PaneID>
1506
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
16384
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000C3000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1913
</RegID>
<PaneID>
1913
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1935
</RegID>
<PaneID>
1935
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000BC010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1936
</RegID>
<PaneID>
1936
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1937
</RegID>
<PaneID>
1937
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1939
</RegID>
<PaneID>
1939
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1940
</RegID>
<PaneID>
1940
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1941
</RegID>
<PaneID>
1941
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1942
</RegID>
<PaneID>
1942
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
195
</RegID>
<PaneID>
195
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000300000001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
196
</RegID>
<PaneID>
196
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000300000001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
197
</RegID>
<PaneID>
197
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000004F020000FA0100009F020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
198
</RegID>
<PaneID>
198
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0000000060010000F1030000D5010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
199
</RegID>
<PaneID>
199
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000052020000EE03000086020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
203
</RegID>
<PaneID>
203
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
AE00000063000000F1030000B3000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
204
</RegID>
<PaneID>
204
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
221
</RegID>
<PaneID>
221
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000000000000000000000000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
2506
</RegID>
<PaneID>
2506
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4703000063000000F10300006D010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
2507
</RegID>
<PaneID>
2507
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0000000074010000F1030000C4010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
343
</RegID>
<PaneID>
343
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
346
</RegID>
<PaneID>
346
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35141
</RegID>
<PaneID>
35141
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
AE00000063000000F1030000B3000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35824
</RegID>
<PaneID>
35824
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35885
</RegID>
<PaneID>
35885
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35886
</RegID>
<PaneID>
35886
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35887
</RegID>
<PaneID>
35887
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35888
</RegID>
<PaneID>
35888
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35889
</RegID>
<PaneID>
35889
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35890
</RegID>
<PaneID>
35890
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35891
</RegID>
<PaneID>
35891
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35892
</RegID>
<PaneID>
35892
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35893
</RegID>
<PaneID>
35893
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35894
</RegID>
<PaneID>
35894
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35895
</RegID>
<PaneID>
35895
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35896
</RegID>
<PaneID>
35896
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35897
</RegID>
<PaneID>
35897
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35898
</RegID>
<PaneID>
35898
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35899
</RegID>
<PaneID>
35899
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35900
</RegID>
<PaneID>
35900
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35901
</RegID>
<PaneID>
35901
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35902
</RegID>
<PaneID>
35902
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35903
</RegID>
<PaneID>
35903
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35904
</RegID>
<PaneID>
35904
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35905
</RegID>
<PaneID>
35905
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
38003
</RegID>
<PaneID>
38003
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000A7000000BC010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
38007
</RegID>
<PaneID>
38007
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000004F020000F10300009F020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
436
</RegID>
<PaneID>
436
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000052020000EE03000086020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
437
</RegID>
<PaneID>
437
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
440
</RegID>
<PaneID>
440
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
463
</RegID>
<PaneID>
463
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000052020000EE03000086020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
466
</RegID>
<PaneID>
466
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000052020000EE03000086020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000001C010000F0010000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
470
</RegID>
<PaneID>
470
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
B100000066000000EE0300009A000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
53000000690000004B020000CA000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50000
</RegID>
<PaneID>
50000
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50001
</RegID>
<PaneID>
50001
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50002
</RegID>
<PaneID>
50002
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50003
</RegID>
<PaneID>
50003
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50004
</RegID>
<PaneID>
50004
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50005
</RegID>
<PaneID>
50005
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50006
</RegID>
<PaneID>
50006
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50007
</RegID>
<PaneID>
50007
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50008
</RegID>
<PaneID>
50008
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50009
</RegID>
<PaneID>
50009
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50010
</RegID>
<PaneID>
50010
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50011
</RegID>
<PaneID>
50011
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50012
</RegID>
<PaneID>
50012
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50013
</RegID>
<PaneID>
50013
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50014
</RegID>
<PaneID>
50014
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50015
</RegID>
<PaneID>
50015
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50016
</RegID>
<PaneID>
50016
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50017
</RegID>
<PaneID>
50017
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50018
</RegID>
<PaneID>
50018
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50019
</RegID>
<PaneID>
50019
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
4A03000066000000EE030000EC000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59392
</RegID>
<PaneID>
59392
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0000000000000000FA0100001C000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59393
</RegID>
<PaneID>
0
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000009F020000FA010000B2020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59399
</RegID>
<PaneID>
59399
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
1
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000001C000000E701000038000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59400
</RegID>
<PaneID>
59400
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
2
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000380000006F02000054000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
824
</RegID>
<PaneID>
824
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000077010000EE030000AB010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
5300000069000000FD000000F6000000
</Data>
</RectRecentFloat>
</Window>
<DockMan>
<Len>
3312
</Len>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAE000000B3000000F1030000B7000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000053000000690000004B020000CA000000AE0000004F000000F1030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F000000470300006D010000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000005300000069000000FD000000F6000000470300004F000000F10300006D01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF330000004F00000037000000370200000100000002000010040000000100000058FFFFFFE8010000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000005300000069000000FD000000F6000000000000004F00000033000000370200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005C010000F10300006001000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000005300000069000000FD000000F60000000000000060010000F1030000D501000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF901000060010000FD010000D501000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000037020000FA0100003B020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000053000000690000004B020000CA000000000000003B020000FA0100009F0200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
2548
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000034F757496000000000000000100034F757400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
<Data>
2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
1423
</Len>
<Data>
2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ToolBar>
<RegID>
59399
</RegID>
<Name>
Build
</Name>
<Buttons>
<Len>
972
</Len>
<Data>
00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000065461726765749600000000000000010006546172676574000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
583
</Len>
<Data>
1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
583
</Len>
<Data>
1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ToolBar>
<RegID>
59400
</RegID>
<Name>
Debug
</Name>
<Buttons>
<Len>
2373
</Len>
<Data>
00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
898
</Len>
<Data>
1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
898
</Len>
<Data>
1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ControlBarsSummary>
<Bars>
0
</Bars>
<ScreenCX>
1366
</ScreenCX>
<ScreenCY>
768
</ScreenCY>
</ControlBarsSummary>
</ViewEx>
</WinLayoutEx>
<MDIGroups>
<Orientation>
1
</Orientation>
<ActiveMDIGroup>
0
</ActiveMDIGroup>
<MDIGroup>
<Size>
100
</Size>
<ActiveTab>
0
</ActiveTab>
<Doc>
<Name>
.\os.c
</Name>
<ColumnNumber>
28
</ColumnNumber>
<TopLine>
1
</TopLine>
<CurrentLine>
12
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
</MDIGroup>
</MDIGroups>
</ProjectGui>
Labware/Lab4_Fitness_4C123/Lab4.uvoptx
View file @
a0a3bb6a
...
@@ -100,7 +100,10 @@
...
@@ -100,7 +100,10 @@
<tRSysVw>
1
</tRSysVw>
<tRSysVw>
1
</tRSysVw>
<sRunDeb>
0
</sRunDeb>
<sRunDeb>
0
</sRunDeb>
<sLrtime>
0
</sLrtime>
<sLrtime>
0
</sLrtime>
<nTsel>
3
</nTsel>
<bEvRecOn>
1
</bEvRecOn>
<bSchkAxf>
0
</bSchkAxf>
<bTchkAxf>
0
</bTchkAxf>
<nTsel>
-1
</nTsel>
<sDll></sDll>
<sDll></sDll>
<sDllPa></sDllPa>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgDll></sDlgDll>
...
@@ -202,6 +205,17 @@
...
@@ -202,6 +205,17 @@
</DebugFlag>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<LintConfigFile></LintConfigFile>
<bLintAuto>
0
</bLintAuto>
<bAutoGenD>
0
</bAutoGenD>
<LntExFlags>
0
</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
</TargetOption>
</TargetOption>
</Target>
</Target>
...
@@ -216,7 +230,6 @@
...
@@ -216,7 +230,6 @@
<FileNumber>
1
</FileNumber>
<FileNumber>
1
</FileNumber>
<FileType>
1
</FileType>
<FileType>
1
</FileType>
<tvExp>
0
</tvExp>
<tvExp>
0
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
.\Lab4.c
</PathWithFileName>
<PathWithFileName>
.\Lab4.c
</PathWithFileName>
...
@@ -229,7 +242,6 @@
...
@@ -229,7 +242,6 @@
<FileNumber>
2
</FileNumber>
<FileNumber>
2
</FileNumber>
<FileType>
1
</FileType>
<FileType>
1
</FileType>
<tvExp>
0
</tvExp>
<tvExp>
0
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
..\inc\BSP.c
</PathWithFileName>
<PathWithFileName>
..\inc\BSP.c
</PathWithFileName>
...
@@ -242,7 +254,6 @@
...
@@ -242,7 +254,6 @@
<FileNumber>
3
</FileNumber>
<FileNumber>
3
</FileNumber>
<FileType>
2
</FileType>
<FileType>
2
</FileType>
<tvExp>
0
</tvExp>
<tvExp>
0
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
.\osasm.s
</PathWithFileName>
<PathWithFileName>
.\osasm.s
</PathWithFileName>
...
@@ -255,7 +266,6 @@
...
@@ -255,7 +266,6 @@
<FileNumber>
4
</FileNumber>
<FileNumber>
4
</FileNumber>
<FileType>
1
</FileType>
<FileType>
1
</FileType>
<tvExp>
1
</tvExp>
<tvExp>
1
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
.\os.c
</PathWithFileName>
<PathWithFileName>
.\os.c
</PathWithFileName>
...
@@ -268,7 +278,6 @@
...
@@ -268,7 +278,6 @@
<FileNumber>
5
</FileNumber>
<FileNumber>
5
</FileNumber>
<FileType>
1
</FileType>
<FileType>
1
</FileType>
<tvExp>
0
</tvExp>
<tvExp>
0
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
..\inc\Profile.c
</PathWithFileName>
<PathWithFileName>
..\inc\Profile.c
</PathWithFileName>
...
@@ -289,7 +298,6 @@
...
@@ -289,7 +298,6 @@
<FileNumber>
6
</FileNumber>
<FileNumber>
6
</FileNumber>
<FileType>
3
</FileType>
<FileType>
3
</FileType>
<tvExp>
0
</tvExp>
<tvExp>
0
</tvExp>
<Focus>
1
</Focus>
<tvExpOptDlg>
0
</tvExpOptDlg>
<tvExpOptDlg>
0
</tvExpOptDlg>
<bDave2>
0
</bDave2>
<bDave2>
0
</bDave2>
<PathWithFileName>
.\texas.o
</PathWithFileName>
<PathWithFileName>
.\texas.o
</PathWithFileName>
...
...
Labware/Lab4_Fitness_4C123/Lab4.uvprojx
View file @
a0a3bb6a
...
@@ -10,11 +10,12 @@
...
@@ -10,11 +10,12 @@
<TargetName>
Target
</TargetName>
<TargetName>
Target
</TargetName>
<ToolsetNumber>
0x4
</ToolsetNumber>
<ToolsetNumber>
0x4
</ToolsetNumber>
<ToolsetName>
ARM-ADS
</ToolsetName>
<ToolsetName>
ARM-ADS
</ToolsetName>
<uAC6>
0
</uAC6>
<TargetOption>
<TargetOption>
<TargetCommonOption>
<TargetCommonOption>
<Device>
TM4C123GH6PM
</Device>
<Device>
TM4C123GH6PM
</Device>
<Vendor>
Texas Instruments
</Vendor>
<Vendor>
Texas Instruments
</Vendor>
<PackID>
Keil.TM4C_DFP.1.
0
.0
</PackID>
<PackID>
Keil.TM4C_DFP.1.
1
.0
</PackID>
<PackURL>
http://www.keil.com/pack/
</PackURL>
<PackURL>
http://www.keil.com/pack/
</PackURL>
<Cpu>
IROM(0x00000000,0x040000) IRAM(0x20000000,0x008000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
</Cpu>
<Cpu>
IROM(0x00000000,0x040000) IRAM(0x20000000,0x008000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec></FlashUtilSpec>
...
@@ -84,6 +85,8 @@
...
@@ -84,6 +85,8 @@
<UserProg2Name></UserProg2Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>
0
</UserProg1Dos16Mode>
<UserProg1Dos16Mode>
0
</UserProg1Dos16Mode>
<UserProg2Dos16Mode>
0
</UserProg2Dos16Mode>
<UserProg2Dos16Mode>
0
</UserProg2Dos16Mode>
<nStopA1X>
0
</nStopA1X>
<nStopA2X>
0
</nStopA2X>
</AfterMake>
</AfterMake>
<SelectedForBatchBuild>
0
</SelectedForBatchBuild>
<SelectedForBatchBuild>
0
</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString></SVCSIdString>
...
@@ -122,47 +125,6 @@
...
@@ -122,47 +125,6 @@
<HexOffset>
0
</HexOffset>
<HexOffset>
0
</HexOffset>
<Oh166RecLen>
16
</Oh166RecLen>
<Oh166RecLen>
16
</Oh166RecLen>
</OPTHX>
</OPTHX>
<Simulator>
<UseSimulator>
0
</UseSimulator>
<LoadApplicationAtStartup>
1
</LoadApplicationAtStartup>
<RunToMain>
1
</RunToMain>
<RestoreBreakpoints>
1
</RestoreBreakpoints>
<RestoreWatchpoints>
1
</RestoreWatchpoints>
<RestoreMemoryDisplay>
1
</RestoreMemoryDisplay>
<RestoreFunctions>
1
</RestoreFunctions>
<RestoreToolbox>
1
</RestoreToolbox>
<LimitSpeedToRealTime>
0
</LimitSpeedToRealTime>
<RestoreSysVw>
1
</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>
1
</UseTarget>
<LoadApplicationAtStartup>
1
</LoadApplicationAtStartup>
<RunToMain>
1
</RunToMain>
<RestoreBreakpoints>
1
</RestoreBreakpoints>
<RestoreWatchpoints>
1
</RestoreWatchpoints>
<RestoreMemoryDisplay>
1
</RestoreMemoryDisplay>
<RestoreFunctions>
0
</RestoreFunctions>
<RestoreToolbox>
1
</RestoreToolbox>
<RestoreTracepoints>
1
</RestoreTracepoints>
<RestoreSysVw>
1
</RestoreSysVw>
</Target>
<RunDebugAfterBuild>
0
</RunDebugAfterBuild>
<TargetSelection>
3
</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<Driver>
BIN\lmidk-agdi.dll
</Driver>
</TargetDlls>
</DebugOption>
</DebugOption>
<Utilities>
<Utilities>
<Flash1>
<Flash1>
...
@@ -170,7 +132,7 @@
...
@@ -170,7 +132,7 @@
<UseExternalTool>
0
</UseExternalTool>
<UseExternalTool>
0
</UseExternalTool>
<RunIndependent>
0
</RunIndependent>
<RunIndependent>
0
</RunIndependent>
<UpdateFlashBeforeDebugging>
1
</UpdateFlashBeforeDebugging>
<UpdateFlashBeforeDebugging>
1
</UpdateFlashBeforeDebugging>
<Capability>
1
</Capability>
<Capability>
0
</Capability>
<DriverSelection>
4096
</DriverSelection>
<DriverSelection>
4096
</DriverSelection>
</Flash1>
</Flash1>
<bUseTDR>
1
</bUseTDR>
<bUseTDR>
1
</bUseTDR>
...
@@ -221,12 +183,14 @@
...
@@ -221,12 +183,14 @@
<hadXRAM>
0
</hadXRAM>
<hadXRAM>
0
</hadXRAM>
<uocXRam>
0
</uocXRam>
<uocXRam>
0
</uocXRam>
<RvdsVP>
1
</RvdsVP>
<RvdsVP>
1
</RvdsVP>
<RvdsMve>
0
</RvdsMve>
<hadIRAM2>
0
</hadIRAM2>
<hadIRAM2>
0
</hadIRAM2>
<hadIROM2>
0
</hadIROM2>
<hadIROM2>
0
</hadIROM2>
<StupSel>
8
</StupSel>
<StupSel>
8
</StupSel>
<useUlib>
0
</useUlib>
<useUlib>
0
</useUlib>
<EndSel>
0
</EndSel>
<EndSel>
0
</EndSel>
<uLtcg>
0
</uLtcg>
<uLtcg>
0
</uLtcg>
<nSecure>
0
</nSecure>
<RoSelD>
3
</RoSelD>
<RoSelD>
3
</RoSelD>
<RwSelD>
3
</RwSelD>
<RwSelD>
3
</RwSelD>
<CodeSel>
0
</CodeSel>
<CodeSel>
0
</CodeSel>
...
@@ -360,7 +324,15 @@
...
@@ -360,7 +324,15 @@
<uThumb>
0
</uThumb>
<uThumb>
0
</uThumb>
<uSurpInc>
0
</uSurpInc>
<uSurpInc>
0
</uSurpInc>
<uC99>
1
</uC99>
<uC99>
1
</uC99>
<uGnu>
0
</uGnu>
<useXO>
0
</useXO>
<useXO>
0
</useXO>
<v6Lang>
1
</v6Lang>
<v6LangP>
1
</v6LangP>
<vShortEn>
1
</vShortEn>
<vShortWch>
1
</vShortWch>
<v6Lto>
0
</v6Lto>
<v6WtE>
0
</v6WtE>
<v6Rtti>
0
</v6Rtti>
<VariousControls>
<VariousControls>
<MiscControls></MiscControls>
<MiscControls></MiscControls>
<Define></Define>
<Define></Define>
...
@@ -378,6 +350,7 @@
...
@@ -378,6 +350,7 @@
<NoWarn>
0
</NoWarn>
<NoWarn>
0
</NoWarn>
<uSurpInc>
0
</uSurpInc>
<uSurpInc>
0
</uSurpInc>
<useXO>
0
</useXO>
<useXO>
0
</useXO>
<uClangAs>
0
</uClangAs>
<VariousControls>
<VariousControls>
<MiscControls></MiscControls>
<MiscControls></MiscControls>
<Define></Define>
<Define></Define>
...
...
Labware/Lab4_Fitness_4C123/RTE/RTE_Components.h
→
Labware/Lab4_Fitness_4C123/RTE/
_Target/
RTE_Components.h
View file @
a0a3bb6a
/*
/*
* Auto generated Run-Time-Environment Co
mponent Co
nfiguration File
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
* *** Do not modify ! ***
*
*
* Project: 'Lab4'
* Project: 'Lab4'
...
@@ -11,4 +11,11 @@
...
@@ -11,4 +11,11 @@
#define RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "TM4C123.h"
#endif
/* RTE_COMPONENTS_H */
#endif
/* RTE_COMPONENTS_H */
Labware/Lab4_Fitness_4C123/os.c
View file @
a0a3bb6a
...
@@ -13,20 +13,32 @@
...
@@ -13,20 +13,32 @@
// function definitions in osasm.s
// function definitions in osasm.s
void
StartOS
(
void
);
void
StartOS
(
void
);
void
static
runperiodicevents
(
void
);
#define FIFOSIZE 10 // can be any size
#define NUMTHREADS 8 // maximum number of threads
#define NUMTHREADS 8 // maximum number of threads
#define NUMPERIODIC 2 // maximum number of periodic threads
#define NUMPERIODIC 2 // maximum number of periodic threads
#define STACKSIZE 100 // number of 32-bit words in stack per thread
#define STACKSIZE 100 // number of 32-bit words in stack per thread
struct
tcb
{
struct
tcb
{
int32_t
*
sp
;
// pointer to stack (valid for threads not running
int32_t
*
sp
;
// pointer to stack (valid for threads not running
struct
tcb
*
next
;
// linked-list pointer
struct
tcb
*
next
;
// linked-list pointer
int32_t
*
blocked
;
// from lab 3
int32_t
sleeping
;
// lab 3
uint8_t
priority
;
// 0 is the highest priority, 254 is the lowest
//*FILL THIS IN****
//*FILL THIS IN****
};
};
struct
ptcb
{
//for periodic events
uint32_t
period
;
// rate
uint64_t
counter
;
void
(
*
thread
)();
//thread pointer
};
typedef
struct
tcb
tcbType
;
typedef
struct
tcb
tcbType
;
tcbType
tcbs
[
NUMTHREADS
];
tcbType
tcbs
[
NUMTHREADS
];
tcbType
*
RunPt
;
tcbType
*
RunPt
;
int32_t
Stacks
[
NUMTHREADS
][
STACKSIZE
];
int32_t
Stacks
[
NUMTHREADS
][
STACKSIZE
];
void
static
runperiodicevents
(
void
);
// ******** OS_Init ************
// ******** OS_Init ************
// Initialize operating system, disable interrupts
// Initialize operating system, disable interrupts
...
@@ -39,13 +51,33 @@ void OS_Init(void){
...
@@ -39,13 +51,33 @@ void OS_Init(void){
BSP_Clock_InitFastest
();
// set processor clock to fastest speed
BSP_Clock_InitFastest
();
// set processor clock to fastest speed
// perform any initializations needed,
// perform any initializations needed,
// set up periodic timer to run runperiodicevents to implement sleeping
// set up periodic timer to run runperiodicevents to implement sleeping
BSP_PeriodicTask_Init
(
&
runperiodicevents
,
1000
,
1
);
}
}
void
SetInitialStack
(
int
i
){
void
SetInitialStack
(
int
i
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// **Same as Lab 2 and Lab 3****
// **Same as Lab 2 and Lab 3****
if
(
i
>=
NUMTHREADS
)
// if i is bigger than the amount of threads
return
;
tcbs
[
i
].
sp
=
&
Stacks
[
i
][
STACKSIZE
-
16
];
// Thread stack pointer
Stacks
[
i
][
STACKSIZE
-
1
]
=
0x01000000
;
// Enable thumb bit in PSR
// Stack[i][STACKSIZE-2] is for PC
Stacks
[
i
][
STACKSIZE
-
3
]
=
0x14141414
;
// R14 (LR)
Stacks
[
i
][
STACKSIZE
-
4
]
=
0x12121212
;
// R12
Stacks
[
i
][
STACKSIZE
-
5
]
=
0x03030303
;
// R3
Stacks
[
i
][
STACKSIZE
-
6
]
=
0x02020202
;
// R2
Stacks
[
i
][
STACKSIZE
-
7
]
=
0x01010101
;
// R1
Stacks
[
i
][
STACKSIZE
-
8
]
=
0x00000000
;
// R0
Stacks
[
i
][
STACKSIZE
-
9
]
=
0x11111111
;
// R11
Stacks
[
i
][
STACKSIZE
-
10
]
=
0x10101010
;
// R10
Stacks
[
i
][
STACKSIZE
-
11
]
=
0x09090909
;
// R9
Stacks
[
i
][
STACKSIZE
-
12
]
=
0x08080808
;
// R8
Stacks
[
i
][
STACKSIZE
-
13
]
=
0x07070707
;
// R7
Stacks
[
i
][
STACKSIZE
-
14
]
=
0x06060606
;
// R6
Stacks
[
i
][
STACKSIZE
-
15
]
=
0x05050505
;
// R5
Stacks
[
i
][
STACKSIZE
-
16
]
=
0x04040404
;
// R4
}
}
//******** OS_AddThreads ***************
//******** OS_AddThreads ***************
...
@@ -63,16 +95,70 @@ int OS_AddThreads(void(*thread0)(void), uint32_t p0,
...
@@ -63,16 +95,70 @@ int OS_AddThreads(void(*thread0)(void), uint32_t p0,
void
(
*
thread6
)(
void
),
uint32_t
p6
,
void
(
*
thread6
)(
void
),
uint32_t
p6
,
void
(
*
thread7
)(
void
),
uint32_t
p7
){
void
(
*
thread7
)(
void
),
uint32_t
p7
){
// **similar to Lab 3. initialize priority field****
// **similar to Lab 3. initialize priority field****
int32_t
sc
;
sc
=
StartCritical
();
tcbs
[
0
].
priority
=
p0
;
// set priority
tcbs
[
1
].
priority
=
p1
;
tcbs
[
2
].
priority
=
p2
;
tcbs
[
3
].
priority
=
p3
;
tcbs
[
4
].
priority
=
p4
;
tcbs
[
5
].
priority
=
p5
;
tcbs
[
6
].
priority
=
p6
;
tcbs
[
7
].
priority
=
p7
;
tcbs
[
0
].
next
=
&
tcbs
[
1
];
// list
tcbs
[
1
].
next
=
&
tcbs
[
2
];
tcbs
[
2
].
next
=
&
tcbs
[
3
];
tcbs
[
3
].
next
=
&
tcbs
[
4
];
tcbs
[
4
].
next
=
&
tcbs
[
5
];
tcbs
[
5
].
next
=
&
tcbs
[
6
];
tcbs
[
6
].
next
=
&
tcbs
[
7
];
tcbs
[
7
].
next
=
&
tcbs
[
0
];
// initialize RunPt, thread 0 will run first
RunPt
=
&
tcbs
[
0
];
// initialize stacks, including initial PC
SetInitialStack
(
0
);
Stacks
[
0
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread0
);
// PC
SetInitialStack
(
1
);
Stacks
[
1
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread1
);
SetInitialStack
(
2
);
Stacks
[
2
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread2
);
SetInitialStack
(
3
);
Stacks
[
3
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread3
);
SetInitialStack
(
4
);
Stacks
[
4
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread4
);
SetInitialStack
(
5
);
Stacks
[
5
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread5
);
SetInitialStack
(
6
);
Stacks
[
6
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread6
);
SetInitialStack
(
7
);
Stacks
[
7
][
STACKSIZE
-
2
]
=
(
int32_t
)(
thread7
);
EndCritical
(
sc
);
return
1
;
// successful
return
1
;
// successful
}
}
void
static
runperiodicevents
(
void
){
void
static
runperiodicevents
(
void
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// **DECREMENT SLEEP COUNTERS
// **DECREMENT SLEEP COUNTERS
// In Lab 4, handle periodic events in RealTimeEvents
// In Lab 4, handle periodic events in RealTimeEvents
int
i
;
for
(
i
=
0
;
i
<
NUMTHREADS
;
i
++
){
if
(
tcbs
[
i
].
sleeping
){
tcbs
[
i
].
sleeping
--
;
}
}
}
}
//******** OS_Launch ***************
//******** OS_Launch ***************
...
@@ -94,7 +180,18 @@ void Scheduler(void){ // every time slice
...
@@ -94,7 +180,18 @@ void Scheduler(void){ // every time slice
// look at all threads in TCB list choose
// look at all threads in TCB list choose
// highest priority thread not blocked and not sleeping
// highest priority thread not blocked and not sleeping
// If there are multiple highest priority (not blocked, not sleeping) run these round robin
// If there are multiple highest priority (not blocked, not sleeping) run these round robin
uint32_t
max
=
255
;
tcbType
*
pt
;
tcbType
*
maxPt
;
pt
=
RunPt
;
// get highest thread not blocked or sleeping
do
{
pt
=
pt
->
next
;
// skips at least one
if
((
pt
->
priority
<
max
)
&&
((
pt
->
blocked
)
==
0
)
&&
((
pt
->
sleeping
)
==
0
)){
max
=
pt
->
priority
;
maxPt
=
pt
;
}
}
while
(
RunPt
!=
pt
);
// iterate over all threads
RunPt
=
maxPt
;
}
}
//******** OS_Suspend ***************
//******** OS_Suspend ***************
...
@@ -117,7 +214,8 @@ void OS_Sleep(uint32_t sleepTime){
...
@@ -117,7 +214,8 @@ void OS_Sleep(uint32_t sleepTime){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// set sleep parameter in TCB, same as Lab 3
// set sleep parameter in TCB, same as Lab 3
// suspend, stops running
// suspend, stops running
RunPt
->
sleeping
=
sleepTime
;
OS_Suspend
();
}
}
// ******** OS_InitSemaphore ************
// ******** OS_InitSemaphore ************
...
@@ -128,7 +226,9 @@ void OS_Sleep(uint32_t sleepTime){
...
@@ -128,7 +226,9 @@ void OS_Sleep(uint32_t sleepTime){
void
OS_InitSemaphore
(
int32_t
*
semaPt
,
int32_t
value
){
void
OS_InitSemaphore
(
int32_t
*
semaPt
,
int32_t
value
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
DisableInterrupts
();
(
*
semaPt
)
=
value
;
EnableInterrupts
();
}
}
// ******** OS_Wait ************
// ******** OS_Wait ************
...
@@ -140,7 +240,14 @@ void OS_InitSemaphore(int32_t *semaPt, int32_t value){
...
@@ -140,7 +240,14 @@ void OS_InitSemaphore(int32_t *semaPt, int32_t value){
void
OS_Wait
(
int32_t
*
semaPt
){
void
OS_Wait
(
int32_t
*
semaPt
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
DisableInterrupts
();
(
*
semaPt
)
=
(
*
semaPt
)
-
1
;
if
((
*
semaPt
)
<
0
){
RunPt
->
blocked
=
semaPt
;
EnableInterrupts
();
OS_Suspend
();
// run the thread switcher
}
EnableInterrupts
();
}
}
// ******** OS_Signal ************
// ******** OS_Signal ************
...
@@ -152,7 +259,17 @@ void OS_Wait(int32_t *semaPt){
...
@@ -152,7 +259,17 @@ void OS_Wait(int32_t *semaPt){
void
OS_Signal
(
int32_t
*
semaPt
){
void
OS_Signal
(
int32_t
*
semaPt
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
tcbType
*
pt
;
DisableInterrupts
();
(
*
semaPt
)
=
(
*
semaPt
)
+
1
;
if
((
*
semaPt
)
<=
0
){
pt
=
RunPt
->
next
;
// search for a thread that is blocked on this semaphore
while
(
pt
->
blocked
!=
semaPt
){
pt
=
pt
->
next
;
}
pt
->
blocked
=
0
;
// wakeup this thread
}
EnableInterrupts
();
}
}
#define FSIZE 10 // can be any size
#define FSIZE 10 // can be any size
...
@@ -174,7 +291,9 @@ uint32_t LostData; // number of lost pieces of data
...
@@ -174,7 +291,9 @@ uint32_t LostData; // number of lost pieces of data
void
OS_FIFO_Init
(
void
){
void
OS_FIFO_Init
(
void
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
PutI
=
GetI
=
0
;
// Empty
OS_InitSemaphore
(
&
CurrentSize
,
0
);
LostData
=
0
;
}
}
// ******** OS_FIFO_Put ************
// ******** OS_FIFO_Put ************
...
@@ -187,8 +306,15 @@ void OS_FIFO_Init(void){
...
@@ -187,8 +306,15 @@ void OS_FIFO_Init(void){
int
OS_FIFO_Put
(
uint32_t
data
){
int
OS_FIFO_Put
(
uint32_t
data
){
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
if
(
CurrentSize
==
FIFOSIZE
){
return
0
;
// success
LostData
++
;
return
-
1
;
// full
}
else
{
Fifo
[
PutI
]
=
data
;
// Put
PutI
=
(
PutI
+
1
)
%
FIFOSIZE
;
OS_Signal
(
&
CurrentSize
);
return
0
;
// success
}
}
}
// ******** OS_FIFO_Get ************
// ******** OS_FIFO_Get ************
...
@@ -198,17 +324,22 @@ int OS_FIFO_Put(uint32_t data){
...
@@ -198,17 +324,22 @@ int OS_FIFO_Put(uint32_t data){
// this function may interrupt itself.
// this function may interrupt itself.
// Inputs: none
// Inputs: none
// Outputs: data retrieved
// Outputs: data retrieved
uint32_t
OS_FIFO_Get
(
void
){
uint32_t
data
;
uint32_t
OS_FIFO_Get
(
void
){
uint32_t
data
;
// ****IMPLEMENT THIS****
// ****IMPLEMENT THIS****
// Same as Lab 3
// Same as Lab 3
return
data
;
OS_Wait
(
&
CurrentSize
);
// block if empty
data
=
Fifo
[
GetI
];
// get
GetI
=
(
GetI
+
1
)
%
FIFOSIZE
;
// place to get next
return
data
;
}
}
// *****periodic events****************
// *****periodic events****************
int32_t
*
PeriodicSemaphore0
;
int32_t
*
PeriodicSemaphore0
;
uint32_t
Period0
;
// time between signals
uint32_t
Period0
;
// time between signals
int32_t
*
PeriodicSemaphore1
;
int32_t
*
PeriodicSemaphore1
;
uint32_t
Period1
;
// time between signals
uint32_t
Period1
;
// time between signals
void
RealTimeEvents
(
void
){
int
flag
=
0
;
void
RealTimeEvents
(
void
){
int
flag
=
0
;
static
int32_t
realCount
=
-
10
;
// let all the threads execute once
static
int32_t
realCount
=
-
10
;
// let all the threads execute once
// Note to students: we had to let the system run for a time so all user threads ran at least one
// Note to students: we had to let the system run for a time so all user threads ran at least one
// before signalling the periodic tasks
// before signalling the periodic tasks
...
@@ -260,22 +391,23 @@ int32_t *edgeSemaphore;
...
@@ -260,22 +391,23 @@ int32_t *edgeSemaphore;
void
OS_EdgeTrigger_Init
(
int32_t
*
semaPt
,
uint8_t
priority
){
void
OS_EdgeTrigger_Init
(
int32_t
*
semaPt
,
uint8_t
priority
){
edgeSemaphore
=
semaPt
;
edgeSemaphore
=
semaPt
;
//***IMPLEMENT THIS***
//***IMPLEMENT THIS***
// 1) activate clock for Port D
// allow time for clock to stabilize
SYSCTL_RCGCGPIO_R
|=
0x08
;
// 1) activate clock for Port D
// 2) no need to unlock PD6
while
((
SYSCTL_PRGPIO_R
&
0x08
)
==
0
){};
// allow time for clock to stabilize
// 3) disable analog on PD6
// 2) no need to unlock PD6
// 4) configure PD6 as GPIO
GPIO_PORTD_AMSEL_R
&=
~
0x40
;
// 3) disable analog on PD6
// 5) make PD6 input
GPIO_PORTD_PCTL_R
&=
~
0x0F000000
;
// 4) configure PD6 as GPIO
// 6) disable alt funct on PD6
GPIO_PORTD_DIR_R
&=
~
0x40
;
// 5) make PD6 input
// disable pull-up on PD6
GPIO_PORTD_AFSEL_R
&=
~
0x40
;
// 6) disable alt funct on PD6
// 7) enable digital I/O on PD6
GPIO_PORTD_PUR_R
&=
~
0x40
;
// disable pull-up on PD6
// (d) PD6 is edge-sensitive
GPIO_PORTD_DEN_R
|=
0x40
;
// 7) enable digital I/O on PD6
// PD6 is not both edges
GPIO_PORTD_IS_R
&=
~
0x40
;
// (d) PD6 is edge-sensitive
// PD6 is falling edge event
GPIO_PORTD_IBE_R
&=
~
0x40
;
// PD6 is not both edges
// (e) clear PD6 flag
GPIO_PORTD_IEV_R
&=
~
0x40
;
// PD6 is falling edge event
// (f) arm interrupt on PD6
GPIO_PORTD_ICR_R
=
0x40
;
// (e) clear PD6 flag
// priority on Port D edge trigger is NVIC_PRI0_R 31 29
GPIO_PORTD_IM_R
|=
0x40
;
// (f) arm interrupt on PD6
// enable is bit 3 in NVIC_EN0_R
NVIC_PRI0_R
=
(
NVIC_PRI0_R
&
0x1FFFFFFF
)
|
((
uint32_t
)(
priority
)
<<
29
);
// priority on Port D edge trigger is NVIC_PRI0_R 31 29
NVIC_EN0_R
=
0x00000008
;
// enable is bit 3 in NVIC_EN0_R
}
}
// ******** OS_EdgeTrigger_Restart ************
// ******** OS_EdgeTrigger_Restart ************
...
@@ -285,14 +417,15 @@ void OS_EdgeTrigger_Init(int32_t *semaPt, uint8_t priority){
...
@@ -285,14 +417,15 @@ void OS_EdgeTrigger_Init(int32_t *semaPt, uint8_t priority){
// Outputs: none
// Outputs: none
void
OS_EdgeTrigger_Restart
(
void
){
void
OS_EdgeTrigger_Restart
(
void
){
//***IMPLEMENT THIS***
//***IMPLEMENT THIS***
// rearm interrupt 3 in NVIC
GPIO_PORTD_IM_R
|=
0x40
;
// rearm interrupt 3 in NVIC
// clear flag6
GPIO_PORTD_ICR_R
=
0x40
;
// clear flag6
}
}
void
GPIOPortD_Handler
(
void
){
void
GPIOPortD_Handler
(
void
){
//***IMPLEMENT THIS***
//***IMPLEMENT THIS***
// step 1 acknowledge by clearing flag
GPIO_PORTD_ICR_R
=
0x40
;
// step 1 acknowledge by clearing flag
// step 2 signal semaphore (no need to run scheduler)
OS_Signal
(
edgeSemaphore
);
// step 2 signal semaphore (no need to run scheduler)
// step 3 disarm interrupt to prevent bouncing to create multiple signals
GPIO_PORTD_IM_R
&=
~
0x40
;
// step 3 disarm interrupt to prevent bouncing to create multiple signals
OS_Suspend
();
}
}
Labware/Lab4_Fitness_4C123/osasm.s
View file @
a0a3bb6a
...
@@ -20,12 +20,32 @@
...
@@ -20,12 +20,32 @@
SysTick_Handler ; 1) Saves R0-R3,R12,LR,PC,PSR
SysTick_Handler ; 1) Saves R0-R3,R12,LR,PC,PSR
CPSID I ; 2) Prevent interrupt during switch
CPSID I ; 2) Prevent interrupt during switch
;YOU IMPLEMENT THIS (same as Lab 3)
PUSH {R4-R11} ; 3) Save remaining regs r4-11
LDR R0, =RunPt ; 4) R0=pointer to RunPt, old thread
LDR R1, [R0] ; R1 = RunPt
STR SP, [R1] ; 5) Save SP into TCB
PUSH {R0,LR}
BL Scheduler
POP {R0,LR}
LDR R1, [R0] ; 6) R1 = RunPt, new thread
LDR SP, [R1] ; 7) new thread SP; SP = RunPt->sp;
POP {R4-R11} ; 8) restore regs r4-11
CPSIE I ; 9) tasks run with interrupts enabled
CPSIE I ; 9) tasks run with interrupts enabled
BX LR ; 10) restore R0-R3,R12,LR,PC,PSR
BX LR ; 10) restore R0-R3,R12,LR,PC,PSR
StartOS
StartOS
;YOU IMPLEMENT THIS (same as Lab 3)
LDR R0, =RunPt ; Load addr of RunPt into R0
LDR R1, [R0] ; Load value of RunPt into R1
LDR SP, [R1] ; Load thread's SP from TCB into CPU SP
POP {R4-R11} ; Pop R4 - R11 from new SP (SP now points to R0 location)
POP {R0-R3} ; Pop R0 - R3 from SP (SP now points to R12 location)
POP {R12} ; Pop R12 (SP now points to LR (R14))
ADD SP, SP, #4 ; Skip LR by incrementing SP (SP now points to PC)
; - LR is invalid since this is the initial run
POP {LR} ; Pop PC (R15) into LR (SP now points to PSR)
; - PC should have already been initialized to start of tasks function
; - Popping directly into LR means that task will run when we BX LR
ADD SP, SP, #4 ; Skip PSR by incr. SP (SP now points to bottom of tasks stack)
CPSIE I ; Enable interrupts at processor level
CPSIE I ; Enable interrupts at processor level
BX LR ; start first thread
BX LR ; start first thread
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment